@quotemedia.com/streamer 2.5.0 → 2.21.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.
@@ -322,52 +322,52 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
322
322
 
323
323
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
324
324
 
325
- /**
326
- * Generic payload container with metadata.
327
- * @constructor
325
+ /**
326
+ * Generic payload container with metadata.
327
+ * @constructor
328
328
  */
329
329
  var SMessage = function SMessage() {
330
330
  _classCallCheck(this, SMessage);
331
331
 
332
- /**
333
- * Message type to distinguish different message types.
334
- * @type {string}
332
+ /**
333
+ * Message type to distinguish different message types.
334
+ * @type {string}
335
335
  */
336
336
  this.type = _codec2["default"].TYPE;
337
337
 
338
- /**
339
- * Sequence number may be used for flow control.
340
- * @type {number}
338
+ /**
339
+ * Sequence number may be used for flow control.
340
+ * @type {number}
341
341
  */
342
342
  this.sequencenumber = null;
343
343
 
344
- /**
345
- * Timestamp may be used for latency measuring.
346
- * @type {number}
344
+ /**
345
+ * Timestamp may be used for latency measuring.
346
+ * @type {number}
347
347
  */
348
348
  this.timestamp = null;
349
349
 
350
- /**
351
- * Id may be used for request response matching.
352
- * @type {number}
350
+ /**
351
+ * Id may be used for request response matching.
352
+ * @type {number}
353
353
  */
354
354
  this.id = null;
355
355
 
356
- /**
357
- * Encoding of <code>payload</code>.
358
- * @type {string}
356
+ /**
357
+ * Encoding of <code>payload</code>.
358
+ * @type {string}
359
359
  */
360
360
  this.encoding = null;
361
361
 
362
- /**
363
- * Mime type of <code>payload</code>.
364
- * @type {string}
362
+ /**
363
+ * Mime type of <code>payload</code>.
364
+ * @type {string}
365
365
  */
366
366
  this.mimetype = null;
367
367
 
368
- /**
369
- * Payload encoded with <code>encoding</code> and serialized with <code>mimetype</code>.
370
- * @type {string}
368
+ /**
369
+ * Payload encoded with <code>encoding</code> and serialized with <code>mimetype</code>.
370
+ * @type {string}
371
371
  */
372
372
  this.payload = null;
373
373
  };
@@ -450,6 +450,8 @@ var Stream = function () {
450
450
 
451
451
  this.pendingsubscriptions = {};
452
452
  this.pendingUnsubscriptions = {};
453
+ this.pendingExchangeSubscriptions = {};
454
+ this.pendingExchangeUnsubscriptions = {};
453
455
 
454
456
  this.on("error", function (err) {
455
457
  _this.log.warn(err);
@@ -525,6 +527,55 @@ var Stream = function () {
525
527
  });
526
528
  };
527
529
 
530
+ Stream.prototype.subscribeExchange = function subscribeExchange(exchanges, optsOrCallback, callbackOrNothing) {
531
+ var _this3 = this;
532
+
533
+ exchanges = (Array.isArray(exchanges) ? exchanges : [exchanges]).map(function (e) {
534
+ return e.toUpperCase();
535
+ });
536
+
537
+ var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
538
+ var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
539
+
540
+ if (this.isClosed()) {
541
+ var event = events.error("Stream is disconnected", {
542
+ code: -1,
543
+ reason: "Already disconnected"
544
+ });
545
+ this.events.fire("error", event);
546
+ if (callback) {
547
+ callback(event);
548
+ }
549
+ return;
550
+ }
551
+
552
+ var exchangeSub = {
553
+ callback: callback,
554
+ mimetype: this.format,
555
+ id: [],
556
+ result: {
557
+ subscribed: [],
558
+ rejected: []
559
+ }
560
+ };
561
+ //check for empty string
562
+ if (exchanges.length === 0) {
563
+ callback(null, exchangeSub.result);
564
+ }
565
+
566
+ var requests = this.prepareExchangeSubscriptionRequest(exchanges, exchangeSub, _streamerApi.messages.control.Action.SUBSCRIBE, opts);
567
+
568
+ requests.forEach(function (request) {
569
+ var id = _this3.requestid.next();
570
+ exchangeSub.id.push(id);
571
+ exchangeSub.exchange = request.exchange;
572
+ exchangeSub.conflation = request.conflation;
573
+ _this3.pendingExchangeSubscriptions[id] = exchangeSub;
574
+ request.id = id;
575
+ _this3.send(request);
576
+ });
577
+ };
578
+
528
579
  Stream.prototype.getSessionStats = function getSessionStats() {
529
580
  if (this.isClosed()) {
530
581
  var event = events.error("Stream is disconnected", {
@@ -539,7 +590,7 @@ var Stream = function () {
539
590
  };
540
591
 
541
592
  Stream.prototype.unsubscribe = function unsubscribe(symbols, types, optsOrCallback, callbackOrNothing) {
542
- var _this3 = this;
593
+ var _this4 = this;
543
594
 
544
595
  symbols = (Array.isArray(symbols) ? symbols : [symbols]).map(function (s) {
545
596
  return s.toUpperCase();
@@ -581,12 +632,61 @@ var Stream = function () {
581
632
 
582
633
  var requests = this._prepareSubscriptionRequests(symbols, unsubscription, _streamerApi.messages.control.Action.UNSUBSCRIBE, opts);
583
634
  requests.forEach(function (request) {
584
- var id = _this3.requestid.next();
635
+ var id = _this4.requestid.next();
585
636
  unsubscription.ids.push(id);
586
- _this3.pendingUnsubscriptions[id] = unsubscription;
637
+ _this4.pendingUnsubscriptions[id] = unsubscription;
587
638
  request.id = id;
588
639
 
589
- _this3.send(request);
640
+ _this4.send(request);
641
+ });
642
+ };
643
+
644
+ Stream.prototype.unsubscribeExchange = function unsubscribeExchange(exchanges, optsOrCallback, callbackOrNothing) {
645
+ var _this5 = this;
646
+
647
+ exchanges = (Array.isArray(exchanges) ? exchanges : [exchanges]).map(function (e) {
648
+ return e.toUpperCase();
649
+ });
650
+
651
+ var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
652
+ var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
653
+
654
+ if (this.isClosed()) {
655
+ var event = events.error("Stream is disconnected", {
656
+ code: -1,
657
+ reason: "Already disconnected"
658
+ });
659
+ this.events.fire("error", event);
660
+ if (callback) {
661
+ callback(event);
662
+ }
663
+ return;
664
+ }
665
+
666
+ var exchangeSub = {
667
+ callback: callback,
668
+ mimetype: this.format,
669
+ id: [],
670
+ result: {
671
+ subscribed: [],
672
+ rejected: []
673
+ }
674
+ };
675
+ //check for empty string
676
+ if (exchanges.length === 0) {
677
+ callback(null, exchangeSub.result);
678
+ }
679
+
680
+ var requests = this.prepareExchangeSubscriptionRequest(exchanges, exchangeSub, _streamerApi.messages.control.Action.UNSUBSCRIBE, opts);
681
+
682
+ requests.forEach(function (request) {
683
+ var id = _this5.requestid.next();
684
+ exchangeSub.id.push(id);
685
+ exchangeSub.exchange = request.exchange;
686
+ exchangeSub.conflation = request.conflation;
687
+ _this5.pendingExchangeUnsubscriptions[id] = exchangeSub;
688
+ request.id = id;
689
+ _this5.send(request);
590
690
  });
591
691
  };
592
692
 
@@ -632,6 +732,26 @@ var Stream = function () {
632
732
  return msg;
633
733
  };
634
734
 
735
+ Stream.prototype.prepareExchangeSubscriptionRequest = function prepareExchangeSubscriptionRequest(exchanges, exchangeSub, action, opts) {
736
+ var requests = [];
737
+ var numberOfExchanges = exchanges.length;
738
+ for (var i = 0; i < numberOfExchanges; i++) {
739
+ requests.push(this.buildExchangeRequest(exchanges[i], exchangeSub, action, opts));
740
+ }
741
+ return requests;
742
+ };
743
+
744
+ Stream.prototype.buildExchangeRequest = function buildExchangeRequest(exchange, sub, action, opts) {
745
+ var msg = new _streamerApi.messages.control.ExchangeSubscribeMessage();
746
+ msg.action = action;
747
+ msg.exchange = exchange;
748
+ msg.mimetype = sub.mimetype;
749
+ if (opts) {
750
+ msg.conflation = opts.conflation;
751
+ }
752
+ return msg;
753
+ };
754
+
635
755
  Stream.prototype._getUpdatedNumberOfEntitlements = function _getUpdatedNumberOfEntitlements(numberOfSubscriptionTypes, currentApproximateNumberOfEntitlements, symbol, isSubscribeToOrderbook) {
636
756
  var result = currentApproximateNumberOfEntitlements;
637
757
  if (isSubscribeToOrderbook && symbol.endsWith(CONSOLIDATED_SYMBOL_SUFFIX)) {
@@ -652,9 +772,15 @@ var Stream = function () {
652
772
  case _streamerApi.messages.MessageTypeNames.ctrl.SUBSCRIBE_RESPONSE:
653
773
  this.onSubscribeResponse(msg);
654
774
  break;
775
+ case _streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_RESPONSE:
776
+ this.onExchangeSubscribeResponse(msg);
777
+ break;
655
778
  case _streamerApi.messages.MessageTypeNames.ctrl.UNSUBSCRIBE_RESPONSE:
656
779
  this.onUnsubscribeResponse(msg);
657
780
  break;
781
+ case _streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_UNSUBSCRIBE_RESPONSE:
782
+ this.onExchangeUnsubscribeResponse(msg);
783
+ break;
658
784
  case _streamerApi.messages.MessageTypeNames.ctrl.CONNECT_RESPONSE:
659
785
  this.onConnectResponse(msg);
660
786
  break;
@@ -717,12 +843,12 @@ var Stream = function () {
717
843
  var _key = key,
718
844
  symbol = _key.symbol,
719
845
  marketdatatype = _key.marketdatatype,
720
- _entitlement = _key.entitlement;
846
+ entitlement = _key.entitlement;
721
847
 
722
848
  key = { symbol: symbol, type: marketdatatype };
723
- if (_entitlement !== 'NA') {
849
+ if (entitlement !== 'NA') {
724
850
  this.log.debug('SUBSCRIBED <' + symbol + ', ' + marketdatatype + '>');
725
- key.entitlement = _entitlement;
851
+ key.entitlement = entitlement;
726
852
  result.subscribed.push(key);
727
853
  } else {
728
854
  this.log.warn('NOT ENTITLED <' + symbol + ',' + marketdatatype + '>');
@@ -778,6 +904,32 @@ var Stream = function () {
778
904
  }
779
905
  };
780
906
 
907
+ Stream.prototype.onExchangeSubscribeResponse = function onExchangeSubscribeResponse(msg) {
908
+ var exchangeSub = this.pendingExchangeSubscriptions[msg.__id];
909
+ var callback = exchangeSub.callback;
910
+
911
+ (0, _utils.removeFromArray)(exchangeSub.id, msg.__id);
912
+ delete this.pendingExchangeSubscriptions[msg.__id];
913
+
914
+ console.log(msg);
915
+ if (msg.code != 200) {
916
+ var event = events.error("Error subscribing", {
917
+ code: msg.code,
918
+ reason: msg.reason
919
+ });
920
+ this.events.fire("error", event);
921
+ if (callback) {
922
+ exchangeSub.callback(event);
923
+ }
924
+ return;
925
+ }
926
+ if (exchangeSub.id.length === 0) {
927
+ if (callback) {
928
+ callback(null, exchangeSub);
929
+ }
930
+ }
931
+ };
932
+
781
933
  Stream.prototype.onUnsubscribeResponse = function onUnsubscribeResponse(msg) {
782
934
  var unsubscription = this.pendingUnsubscriptions[msg.__id];
783
935
  var callback = unsubscription.callback;
@@ -815,6 +967,32 @@ var Stream = function () {
815
967
  }
816
968
  };
817
969
 
970
+ Stream.prototype.onExchangeUnsubscribeResponse = function onExchangeUnsubscribeResponse(msg) {
971
+ var exchangeSub = this.pendingExchangeUnsubscriptions[msg.__id];
972
+ var callback = exchangeSub.callback;
973
+
974
+ (0, _utils.removeFromArray)(exchangeSub.id, msg.__id);
975
+ delete this.pendingExchangeUnsubscriptions[msg.__id];
976
+
977
+ console.log(msg);
978
+ if (msg.code != 200) {
979
+ var event = events.error("Error unsubscribing", {
980
+ code: msg.code,
981
+ reason: msg.reason
982
+ });
983
+ this.events.fire("error", event);
984
+ if (callback) {
985
+ exchangeSub.callback(event);
986
+ }
987
+ return;
988
+ }
989
+ if (exchangeSub.id.length === 0) {
990
+ if (callback) {
991
+ callback(null, exchangeSub);
992
+ }
993
+ }
994
+ };
995
+
818
996
  Stream.prototype.onConnectResponse = function onConnectResponse(msg) {
819
997
  if (msg.code != 200) {
820
998
  var event = events.error("Connection failed", {
@@ -1119,6 +1297,10 @@ var StreamingService = function () {
1119
1297
  headers["X-atmo-protocol"] = false;
1120
1298
  }
1121
1299
 
1300
+ if (this.config.updatesOnly === 'true') {
1301
+ headers['X-Stream-UpdatesOnly'] = true;
1302
+ }
1303
+
1122
1304
  Object.assign(headers, this.config.credentials.getHeaders());
1123
1305
 
1124
1306
  var request = {
@@ -1225,38 +1407,38 @@ exports["default"] = UShortId;
1225
1407
 
1226
1408
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1227
1409
 
1228
- /*
1229
- * Copyright 2015 Async-IO.org
1230
- *
1231
- * Licensed under the Apache License, Version 2.0 (the "License");
1232
- * you may not use this file except in compliance with the License.
1233
- * You may obtain a copy of the License at
1234
- *
1235
- * http://www.apache.org/licenses/LICENSE-2.0
1236
- *
1237
- * Unless required by applicable law or agreed to in writing, software
1238
- * distributed under the License is distributed on an "AS IS" BASIS,
1239
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1240
- * See the License for the specific language governing permissions and
1241
- * limitations under the License.
1410
+ /*
1411
+ * Copyright 2015 Async-IO.org
1412
+ *
1413
+ * Licensed under the Apache License, Version 2.0 (the "License");
1414
+ * you may not use this file except in compliance with the License.
1415
+ * You may obtain a copy of the License at
1416
+ *
1417
+ * http://www.apache.org/licenses/LICENSE-2.0
1418
+ *
1419
+ * Unless required by applicable law or agreed to in writing, software
1420
+ * distributed under the License is distributed on an "AS IS" BASIS,
1421
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1422
+ * See the License for the specific language governing permissions and
1423
+ * limitations under the License.
1242
1424
  */
1243
- /**
1244
- * Added binary message processing that reads from the blob.
1245
- * Tweaked implementation to support binary messages with streaming protocol:
1246
- * - edited message calculation logic to support multiple messages that could be read from stream at once
1247
- * without message size being pre-appended;
1248
- * - override mimetype to be able to retrieve original byte array;
1249
- * - don't trim string representation of binary messages.
1425
+ /**
1426
+ * Added binary message processing that reads from the blob.
1427
+ * Tweaked implementation to support binary messages with streaming protocol:
1428
+ * - edited message calculation logic to support multiple messages that could be read from stream at once
1429
+ * without message size being pre-appended;
1430
+ * - override mimetype to be able to retrieve original byte array;
1431
+ * - don't trim string representation of binary messages.
1250
1432
  */
1251
- /**
1252
- * Atmosphere.js
1253
- * https://github.com/Atmosphere/atmosphere-javascript
1254
- *
1255
- * API reference
1256
- * https://github.com/Atmosphere/atmosphere/wiki/jQuery.atmosphere.js-API
1257
- *
1258
- * Highly inspired by
1259
- * - Portal by Donghwan Kim http://flowersinthesand.github.io/portal/
1433
+ /**
1434
+ * Atmosphere.js
1435
+ * https://github.com/Atmosphere/atmosphere-javascript
1436
+ *
1437
+ * API reference
1438
+ * https://github.com/Atmosphere/atmosphere/wiki/jQuery.atmosphere.js-API
1439
+ *
1440
+ * Highly inspired by
1441
+ * - Portal by Donghwan Kim http://flowersinthesand.github.io/portal/
1260
1442
  */
1261
1443
  (function (root, factory) {
1262
1444
  if (typeof define === "function" && define.amd) {
@@ -1296,41 +1478,41 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1296
1478
  onClientTimeout: function onClientTimeout(request) {},
1297
1479
  onOpenAfterResume: function onOpenAfterResume(request) {},
1298
1480
 
1299
- /**
1300
- * Creates an object based on an atmosphere subscription that exposes functions defined by the Websocket interface.
1301
- *
1302
- * @class WebsocketApiAdapter
1303
- * @param {Object} request the request object to build the underlying subscription
1304
- * @constructor
1481
+ /**
1482
+ * Creates an object based on an atmosphere subscription that exposes functions defined by the Websocket interface.
1483
+ *
1484
+ * @class WebsocketApiAdapter
1485
+ * @param {Object} request the request object to build the underlying subscription
1486
+ * @constructor
1305
1487
  */
1306
1488
  WebsocketApiAdapter: function WebsocketApiAdapter(request) {
1307
1489
  var _socket, _adapter;
1308
1490
 
1309
- /**
1310
- * Overrides the onMessage callback in given request.
1311
- *
1312
- * @method onMessage
1313
- * @param {Object} e the event object
1491
+ /**
1492
+ * Overrides the onMessage callback in given request.
1493
+ *
1494
+ * @method onMessage
1495
+ * @param {Object} e the event object
1314
1496
  */
1315
1497
  request.onMessage = function (e) {
1316
1498
  _adapter.onmessage({ data: e.responseBody });
1317
1499
  };
1318
1500
 
1319
- /**
1320
- * Overrides the onMessagePublished callback in given request.
1321
- *
1322
- * @method onMessagePublished
1323
- * @param {Object} e the event object
1501
+ /**
1502
+ * Overrides the onMessagePublished callback in given request.
1503
+ *
1504
+ * @method onMessagePublished
1505
+ * @param {Object} e the event object
1324
1506
  */
1325
1507
  request.onMessagePublished = function (e) {
1326
1508
  _adapter.onmessage({ data: e.responseBody });
1327
1509
  };
1328
1510
 
1329
- /**
1330
- * Overrides the onOpen callback in given request to proxy the event to the adapter.
1331
- *
1332
- * @method onOpen
1333
- * @param {Object} e the event object
1511
+ /**
1512
+ * Overrides the onOpen callback in given request to proxy the event to the adapter.
1513
+ *
1514
+ * @method onOpen
1515
+ * @param {Object} e the event object
1334
1516
  */
1335
1517
  request.onOpen = function (e) {
1336
1518
  _adapter.onopen(e);
@@ -1360,10 +1542,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1360
1542
 
1361
1543
  AtmosphereRequest: function AtmosphereRequest(options) {
1362
1544
 
1363
- /**
1364
- * {Object} Request parameters.
1365
- *
1366
- * @private
1545
+ /**
1546
+ * {Object} Request parameters.
1547
+ *
1548
+ * @private
1367
1549
  */
1368
1550
  var _request = {
1369
1551
  timeout: 300000,
@@ -1428,10 +1610,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1428
1610
  onOpenAfterResume: function onOpenAfterResume(request) {}
1429
1611
  };
1430
1612
 
1431
- /**
1432
- * {Object} Request's last response.
1433
- *
1434
- * @private
1613
+ /**
1614
+ * {Object} Request's last response.
1615
+ *
1616
+ * @private
1435
1617
  */
1436
1618
  var _response = {
1437
1619
  status: 200,
@@ -1449,101 +1631,101 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1449
1631
  ffTryingReconnect: false
1450
1632
  };
1451
1633
 
1452
- /**
1453
- * {websocket} Opened web socket.
1454
- *
1455
- * @private
1634
+ /**
1635
+ * {websocket} Opened web socket.
1636
+ *
1637
+ * @private
1456
1638
  */
1457
1639
  var _websocket = null;
1458
1640
 
1459
- /**
1460
- * {SSE} Opened SSE.
1461
- *
1462
- * @private
1641
+ /**
1642
+ * {SSE} Opened SSE.
1643
+ *
1644
+ * @private
1463
1645
  */
1464
1646
  var _sse = null;
1465
1647
 
1466
- /**
1467
- * {XMLHttpRequest, ActiveXObject} Opened ajax request (in case of http-streaming or long-polling)
1468
- *
1469
- * @private
1648
+ /**
1649
+ * {XMLHttpRequest, ActiveXObject} Opened ajax request (in case of http-streaming or long-polling)
1650
+ *
1651
+ * @private
1470
1652
  */
1471
1653
  var _activeRequest = null;
1472
1654
 
1473
- /**
1474
- * {Object} Object use for streaming with IE.
1475
- *
1476
- * @private
1655
+ /**
1656
+ * {Object} Object use for streaming with IE.
1657
+ *
1658
+ * @private
1477
1659
  */
1478
1660
  var _ieStream = null;
1479
1661
 
1480
- /**
1481
- * {Object} Object use for jsonp transport.
1482
- *
1483
- * @private
1662
+ /**
1663
+ * {Object} Object use for jsonp transport.
1664
+ *
1665
+ * @private
1484
1666
  */
1485
1667
  var _jqxhr = null;
1486
1668
 
1487
- /**
1488
- * {boolean} If request has been subscribed or not.
1489
- *
1490
- * @private
1669
+ /**
1670
+ * {boolean} If request has been subscribed or not.
1671
+ *
1672
+ * @private
1491
1673
  */
1492
1674
  var _subscribed = true;
1493
1675
 
1494
- /**
1495
- * {number} Number of test reconnection.
1496
- *
1497
- * @private
1676
+ /**
1677
+ * {number} Number of test reconnection.
1678
+ *
1679
+ * @private
1498
1680
  */
1499
1681
  var _requestCount = 0;
1500
1682
 
1501
- /**
1502
- * The Heartbeat interval send by the server.
1503
- * @type {int}
1504
- * @private
1683
+ /**
1684
+ * The Heartbeat interval send by the server.
1685
+ * @type {int}
1686
+ * @private
1505
1687
  */
1506
1688
  var _heartbeatInterval = 0;
1507
1689
 
1508
- /**
1509
- * The Heartbeat bytes send by the server.
1510
- * @type {string}
1511
- * @private
1690
+ /**
1691
+ * The Heartbeat bytes send by the server.
1692
+ * @type {string}
1693
+ * @private
1512
1694
  */
1513
1695
  var _heartbeatPadding = 'X';
1514
1696
 
1515
- /**
1516
- * {boolean} If request is currently aborted.
1517
- *
1518
- * @private
1697
+ /**
1698
+ * {boolean} If request is currently aborted.
1699
+ *
1700
+ * @private
1519
1701
  */
1520
1702
  var _abortingConnection = false;
1521
1703
 
1522
- /**
1523
- * A local "channel' of communication.
1524
- *
1525
- * @private
1704
+ /**
1705
+ * A local "channel' of communication.
1706
+ *
1707
+ * @private
1526
1708
  */
1527
1709
  var _localSocketF = null;
1528
1710
 
1529
- /**
1530
- * The storage used.
1531
- *
1532
- * @private
1711
+ /**
1712
+ * The storage used.
1713
+ *
1714
+ * @private
1533
1715
  */
1534
1716
  var _storageService;
1535
1717
 
1536
- /**
1537
- * Local communication
1538
- *
1539
- * @private
1718
+ /**
1719
+ * Local communication
1720
+ *
1721
+ * @private
1540
1722
  */
1541
1723
  var _localStorageService = null;
1542
1724
 
1543
- /**
1544
- * A Unique ID
1545
- *
1546
- * @private
1725
+ /**
1726
+ * A Unique ID
1727
+ *
1728
+ * @private
1547
1729
  */
1548
1730
  var guid = atmosphere.util.now();
1549
1731
 
@@ -1553,21 +1735,21 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1553
1735
  /** Key for connection sharing */
1554
1736
  var _sharingKey;
1555
1737
 
1556
- /**
1557
- * {boolean} If window beforeUnload event has been called.
1558
- * Flag will be reset after 5000 ms
1559
- *
1560
- * @private
1738
+ /**
1739
+ * {boolean} If window beforeUnload event has been called.
1740
+ * Flag will be reset after 5000 ms
1741
+ *
1742
+ * @private
1561
1743
  */
1562
1744
  var _beforeUnloadState = false;
1563
1745
 
1564
1746
  // Automatic call to subscribe
1565
1747
  _subscribe(options);
1566
1748
 
1567
- /**
1568
- * Initialize atmosphere request object.
1569
- *
1570
- * @private
1749
+ /**
1750
+ * Initialize atmosphere request object.
1751
+ *
1752
+ * @private
1571
1753
  */
1572
1754
  function _init() {
1573
1755
  _subscribed = true;
@@ -1580,20 +1762,20 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1580
1762
  _ieStream = null;
1581
1763
  }
1582
1764
 
1583
- /**
1584
- * Re-initialize atmosphere object.
1585
- *
1586
- * @private
1765
+ /**
1766
+ * Re-initialize atmosphere object.
1767
+ *
1768
+ * @private
1587
1769
  */
1588
1770
  function _reinit() {
1589
1771
  _clearState();
1590
1772
  _init();
1591
1773
  }
1592
1774
 
1593
- /**
1594
- * Returns true if the given level is equal or above the configured log level.
1595
- *
1596
- * @private
1775
+ /**
1776
+ * Returns true if the given level is equal or above the configured log level.
1777
+ *
1778
+ * @private
1597
1779
  */
1598
1780
  function _canLog(level) {
1599
1781
  if (level == 'debug') {
@@ -1615,9 +1797,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1615
1797
  }
1616
1798
  }
1617
1799
 
1618
- /**
1619
- *
1620
- * @private
1800
+ /**
1801
+ *
1802
+ * @private
1621
1803
  */
1622
1804
  function _verifyStreamingLength(ajaxRequest, rq) {
1623
1805
  // Wait to be sure we have the full message before closing.
@@ -1627,10 +1809,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1627
1809
  return false;
1628
1810
  }
1629
1811
 
1630
- /**
1631
- * Disconnect
1632
- *
1633
- * @private
1812
+ /**
1813
+ * Disconnect
1814
+ *
1815
+ * @private
1634
1816
  */
1635
1817
  function _disconnect() {
1636
1818
  if (_request.enableProtocol && !_request.disableDisconnect && !_request.firstMessage) {
@@ -1667,10 +1849,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1667
1849
  }
1668
1850
  }
1669
1851
 
1670
- /**
1671
- * Close request.
1672
- *
1673
- * @private
1852
+ /**
1853
+ * Close request.
1854
+ *
1855
+ * @private
1674
1856
  */
1675
1857
  function _close() {
1676
1858
  _debug("Closing (AtmosphereRequest._close() called)");
@@ -1757,12 +1939,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1757
1939
  }
1758
1940
  }
1759
1941
 
1760
- /**
1761
- * Subscribe request using request transport. <br>
1762
- * If request is currently opened, this one will be closed.
1763
- *
1764
- * @param {Object} Request parameters.
1765
- * @private
1942
+ /**
1943
+ * Subscribe request using request transport. <br>
1944
+ * If request is currently opened, this one will be closed.
1945
+ *
1946
+ * @param {Object} Request parameters.
1947
+ * @private
1766
1948
  */
1767
1949
  function _subscribe(options) {
1768
1950
  _reinit();
@@ -1775,21 +1957,21 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1775
1957
  }
1776
1958
  }
1777
1959
 
1778
- /**
1779
- * Check if web socket is supported (check for custom implementation provided by request object or browser implementation).
1780
- *
1781
- * @returns {boolean} True if web socket is supported, false otherwise.
1782
- * @private
1960
+ /**
1961
+ * Check if web socket is supported (check for custom implementation provided by request object or browser implementation).
1962
+ *
1963
+ * @returns {boolean} True if web socket is supported, false otherwise.
1964
+ * @private
1783
1965
  */
1784
1966
  function _supportWebsocket() {
1785
1967
  return _request.webSocketImpl != null || window.WebSocket || window.MozWebSocket;
1786
1968
  }
1787
1969
 
1788
- /**
1789
- * Check if server side events (SSE) is supported (check for custom implementation provided by request object or browser implementation).
1790
- *
1791
- * @returns {boolean} True if web socket is supported, false otherwise.
1792
- * @private
1970
+ /**
1971
+ * Check if server side events (SSE) is supported (check for custom implementation provided by request object or browser implementation).
1972
+ *
1973
+ * @returns {boolean} True if web socket is supported, false otherwise.
1974
+ * @private
1793
1975
  */
1794
1976
  function _supportSSE() {
1795
1977
  // Origin parts
@@ -1805,11 +1987,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1805
1987
  return window.EventSource && (!crossOrigin || !atmosphere.util.browser.safari || atmosphere.util.browser.vmajor >= 7);
1806
1988
  }
1807
1989
 
1808
- /**
1809
- * Open request using request transport. <br>
1810
- * If request transport is 'websocket' but websocket can't be opened, request will automatically reconnect using fallback transport.
1811
- *
1812
- * @private
1990
+ /**
1991
+ * Open request using request transport. <br>
1992
+ * If request transport is 'websocket' but websocket can't be opened, request will automatically reconnect using fallback transport.
1993
+ *
1994
+ * @private
1813
1995
  */
1814
1996
  function _execute() {
1815
1997
  // Shared across multiple tabs/windows.
@@ -2223,8 +2405,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
2223
2405
  _storageService = storageService;
2224
2406
  }
2225
2407
 
2226
- /**
2227
- * @private
2408
+ /**
2409
+ * @private
2228
2410
  */
2229
2411
  function _open(state, transport, request) {
2230
2412
  if (_request.shared && transport !== 'local') {
@@ -2258,11 +2440,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
2258
2440
  }
2259
2441
  }
2260
2442
 
2261
- /**
2262
- * Execute request using jsonp transport.
2263
- *
2264
- * @param request {Object} request Request parameters, if undefined _request object will be used.
2265
- * @private
2443
+ /**
2444
+ * Execute request using jsonp transport.
2445
+ *
2446
+ * @param request {Object} request Request parameters, if undefined _request object will be used.
2447
+ * @private
2266
2448
  */
2267
2449
  function _jsonp(request) {
2268
2450
  // When CORS is enabled, make sure we force the proper transport.
@@ -2392,12 +2574,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
2392
2574
  _jqxhr.open();
2393
2575
  }
2394
2576
 
2395
- /**
2396
- * Build websocket object.
2397
- *
2398
- * @param location {string} Web socket url.
2399
- * @returns {websocket} Web socket object.
2400
- * @private
2577
+ /**
2578
+ * Build websocket object.
2579
+ *
2580
+ * @param location {string} Web socket url.
2581
+ * @returns {websocket} Web socket object.
2582
+ * @private
2401
2583
  */
2402
2584
  function _getWebSocket(location) {
2403
2585
  if (_request.webSocketImpl != null) {
@@ -2413,32 +2595,32 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
2413
2595
  }
2414
2596
  }
2415
2597
 
2416
- /**
2417
- * Build web socket url from request url.
2418
- *
2419
- * @return {string} Web socket url (start with "ws" or "wss" for secure web socket).
2420
- * @private
2598
+ /**
2599
+ * Build web socket url from request url.
2600
+ *
2601
+ * @return {string} Web socket url (start with "ws" or "wss" for secure web socket).
2602
+ * @private
2421
2603
  */
2422
2604
  function _buildWebSocketUrl() {
2423
2605
  return _attachHeaders(_request, atmosphere.util.getAbsoluteURL(_request.webSocketUrl || _request.url)).replace(/^http/, "ws");
2424
2606
  }
2425
2607
 
2426
- /**
2427
- * Build SSE url from request url.
2428
- *
2429
- * @return a url with Atmosphere's headers
2430
- * @private
2608
+ /**
2609
+ * Build SSE url from request url.
2610
+ *
2611
+ * @return a url with Atmosphere's headers
2612
+ * @private
2431
2613
  */
2432
2614
  function _buildSSEUrl() {
2433
2615
  var url = _attachHeaders(_request);
2434
2616
  return url;
2435
2617
  }
2436
2618
 
2437
- /**
2438
- * Open SSE. <br>
2439
- * Automatically use fallback transport if SSE can't be opened.
2440
- *
2441
- * @private
2619
+ /**
2620
+ * Open SSE. <br>
2621
+ * Automatically use fallback transport if SSE can't be opened.
2622
+ *
2623
+ * @private
2442
2624
  */
2443
2625
  function _executeSSE(sseOpened) {
2444
2626
 
@@ -2519,9 +2701,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
2519
2701
 
2520
2702
  // https://github.com/remy/polyfills/blob/master/EventSource.js
2521
2703
  // Since we polling.
2522
- /* if (_sse.URL) {
2523
- _sse.interval = 100;
2524
- _sse.URL = _buildSSEUrl();
2704
+ /* if (_sse.URL) {
2705
+ _sse.interval = 100;
2706
+ _sse.URL = _buildSSEUrl();
2525
2707
  } */
2526
2708
 
2527
2709
  if (!skipCallbackInvocation) {
@@ -2570,11 +2752,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
2570
2752
  };
2571
2753
  }
2572
2754
 
2573
- /**
2574
- * Open web socket. <br>
2575
- * Automatically use fallback transport if web socket can't be opened.
2576
- *
2577
- * @private
2755
+ /**
2756
+ * Open web socket. <br>
2757
+ * Automatically use fallback transport if web socket can't be opened.
2758
+ *
2759
+ * @private
2578
2760
  */
2579
2761
  function _executeWebSocket(webSocketOpened) {
2580
2762
 
@@ -2913,12 +3095,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
2913
3095
  _invokeCallback();
2914
3096
  }
2915
3097
 
2916
- /**
2917
- * Track received message and make sure callbacks/functions are only invoked when the complete message has been received.
2918
- *
2919
- * @param message
2920
- * @param request
2921
- * @param response
3098
+ /**
3099
+ * Track received message and make sure callbacks/functions are only invoked when the complete message has been received.
3100
+ *
3101
+ * @param message
3102
+ * @param request
3103
+ * @param response
2922
3104
  */
2923
3105
  function _trackMessageSize(message, request, response) {
2924
3106
  // skip message tracking for binary messages
@@ -2977,11 +3159,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
2977
3159
  return false;
2978
3160
  }
2979
3161
 
2980
- /**
2981
- * Reconnect request with fallback transport. <br>
2982
- * Used in case websocket can't be opened.
2983
- *
2984
- * @private
3162
+ /**
3163
+ * Reconnect request with fallback transport. <br>
3164
+ * Used in case websocket can't be opened.
3165
+ *
3166
+ * @private
2985
3167
  */
2986
3168
  function _reconnectWithFallbackTransport(errorMessage) {
2987
3169
  atmosphere.util.log(_request.logLevel, [errorMessage]);
@@ -3010,13 +3192,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
3010
3192
  }
3011
3193
  }
3012
3194
 
3013
- /**
3014
- * Get url from request and attach headers to it.
3015
- *
3016
- * @param request {Object} request Request parameters, if undefined _request object will be used.
3017
- *
3018
- * @returns {Object} Request object, if undefined, _request object will be used.
3019
- * @private
3195
+ /**
3196
+ * Get url from request and attach headers to it.
3197
+ *
3198
+ * @param request {Object} request Request parameters, if undefined _request object will be used.
3199
+ *
3200
+ * @returns {Object} Request object, if undefined, _request object will be used.
3201
+ * @private
3020
3202
  */
3021
3203
  function _attachHeaders(request, url) {
3022
3204
  var rq = _request;
@@ -3101,11 +3283,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
3101
3283
  }
3102
3284
  }
3103
3285
 
3104
- /**
3105
- * Execute ajax request. <br>
3106
- *
3107
- * @param request {Object} request Request parameters, if undefined _request object will be used.
3108
- * @private
3286
+ /**
3287
+ * Execute ajax request. <br>
3288
+ *
3289
+ * @param request {Object} request Request parameters, if undefined _request object will be used.
3290
+ * @private
3109
3291
  */
3110
3292
  function _executeRequest(request) {
3111
3293
  var rq = _request;
@@ -3398,12 +3580,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
3398
3580
  _reconnect(ajaxRequest, rq, 500);
3399
3581
  }
3400
3582
 
3401
- /**
3402
- * Do ajax request.
3403
- *
3404
- * @param ajaxRequest Ajax request.
3405
- * @param request Request parameters.
3406
- * @param create If ajax request has to be open.
3583
+ /**
3584
+ * Do ajax request.
3585
+ *
3586
+ * @param ajaxRequest Ajax request.
3587
+ * @param request Request parameters.
3588
+ * @param create If ajax request has to be open.
3407
3589
  */
3408
3590
  function _doRequest(ajaxRequest, request, create) {
3409
3591
  // Prevent Android to cache request
@@ -3780,12 +3962,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
3780
3962
  };
3781
3963
  }
3782
3964
 
3783
- /**
3784
- * Send message. <br>
3785
- * Will be automatically dispatch to other connected.
3786
- *
3787
- * @param {Object, string} Message to send.
3788
- * @private
3965
+ /**
3966
+ * Send message. <br>
3967
+ * Will be automatically dispatch to other connected.
3968
+ *
3969
+ * @param {Object, string} Message to send.
3970
+ * @private
3789
3971
  */
3790
3972
  function _push(message) {
3791
3973
 
@@ -3841,22 +4023,22 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
3841
4023
  }
3842
4024
  }
3843
4025
 
3844
- /**
3845
- * Send a message using currently opened ajax request (using http-streaming or long-polling). <br>
3846
- *
3847
- * @param {string, Object} Message to send. This is an object, string message is saved in data member.
3848
- * @private
4026
+ /**
4027
+ * Send a message using currently opened ajax request (using http-streaming or long-polling). <br>
4028
+ *
4029
+ * @param {string, Object} Message to send. This is an object, string message is saved in data member.
4030
+ * @private
3849
4031
  */
3850
4032
  function _pushAjaxMessage(message) {
3851
4033
  var rq = _getPushRequest(message);
3852
4034
  _executeRequest(rq);
3853
4035
  }
3854
4036
 
3855
- /**
3856
- * Send a message using currently opened ie streaming (using http-streaming or long-polling). <br>
3857
- *
3858
- * @param {string, Object} Message to send. This is an object, string message is saved in data member.
3859
- * @private
4037
+ /**
4038
+ * Send a message using currently opened ie streaming (using http-streaming or long-polling). <br>
4039
+ *
4040
+ * @param {string, Object} Message to send. This is an object, string message is saved in data member.
4041
+ * @private
3860
4042
  */
3861
4043
  function _pushIE(message) {
3862
4044
  if (_request.enableXDR && atmosphere.util.checkCORSSupport()) {
@@ -3869,11 +4051,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
3869
4051
  }
3870
4052
  }
3871
4053
 
3872
- /**
3873
- * Send a message using jsonp transport. <br>
3874
- *
3875
- * @param {string, Object} Message to send. This is an object, string message is saved in data member.
3876
- * @private
4054
+ /**
4055
+ * Send a message using jsonp transport. <br>
4056
+ *
4057
+ * @param {string, Object} Message to send. This is an object, string message is saved in data member.
4058
+ * @private
3877
4059
  */
3878
4060
  function _pushJsonp(message) {
3879
4061
  _pushAjaxMessage(message);
@@ -3887,11 +4069,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
3887
4069
  return msg;
3888
4070
  }
3889
4071
 
3890
- /**
3891
- * Build request use to push message using method 'POST' <br>. Transport is defined as 'polling' and 'suspend' is set to false.
3892
- *
3893
- * @return {Object} Request object use to push message.
3894
- * @private
4072
+ /**
4073
+ * Build request use to push message using method 'POST' <br>. Transport is defined as 'polling' and 'suspend' is set to false.
4074
+ *
4075
+ * @return {Object} Request object use to push message.
4076
+ * @private
3895
4077
  */
3896
4078
  function _getPushRequest(message) {
3897
4079
  var msg = _getStringMessage(message);
@@ -3933,9 +4115,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
3933
4115
  return rq;
3934
4116
  }
3935
4117
 
3936
- /**
3937
- * Send a message using currently opened websocket. <br>
3938
- *
4118
+ /**
4119
+ * Send a message using currently opened websocket. <br>
4120
+ *
3939
4121
  */
3940
4122
  function _pushWebSocket(message) {
3941
4123
  var msg = atmosphere.util.isBinary(message) ? message : _getStringMessage(message);
@@ -4083,10 +4265,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
4083
4265
  }
4084
4266
  }
4085
4267
 
4086
- /**
4087
- * Invoke request callbacks.
4088
- *
4089
- * @private
4268
+ /**
4269
+ * Invoke request callbacks.
4270
+ *
4271
+ * @private
4090
4272
  */
4091
4273
  function _invokeCallback() {
4092
4274
  var call = function call(index, func) {
@@ -4800,6 +4982,22 @@ var EnterpriseTokenCredentials = function () {
4800
4982
  return EnterpriseTokenCredentials;
4801
4983
  }();
4802
4984
 
4985
+ var DataToolCredentials = function () {
4986
+ function DataToolCredentials(token) {
4987
+ _classCallCheck(this, DataToolCredentials);
4988
+
4989
+ this.data_token = token;
4990
+ }
4991
+
4992
+ DataToolCredentials.prototype.getHeaders = function getHeaders() {
4993
+ return {
4994
+ "X-Stream-DataTool-Token": this.data_token
4995
+ };
4996
+ };
4997
+
4998
+ return DataToolCredentials;
4999
+ }();
5000
+
4803
5001
  function asCredentials(credentials) {
4804
5002
  var keys = Object.keys(credentials);
4805
5003
  if ((0, _arrayEqual2["default"])(keys, ["sid"])) {
@@ -4808,6 +5006,8 @@ function asCredentials(credentials) {
4808
5006
  return new EnterpriseTokenCredentials(credentials.wmid, credentials.token);
4809
5007
  } else if ((0, _arrayEqual2["default"])(keys, ["wmid"])) {
4810
5008
  return new WebmasterIpCredentials(credentials.wmid);
5009
+ } else if ((0, _arrayEqual2["default"])(keys, ["data_token"])) {
5010
+ return new DataToolCredentials(credentials.data_token);
4811
5011
  } else {
4812
5012
  throw new Error("Misconfigured credentials, should be one of {sid}, {wmid,token}, or {wmid}");
4813
5013
  }
@@ -4922,21 +5122,21 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
4922
5122
 
4923
5123
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } }
4924
5124
 
4925
- /*
4926
- Note: Usage of formatters can cause a potential performance penalty
5125
+ /*
5126
+ Note: Usage of formatters can cause a potential performance penalty
4927
5127
  */
4928
5128
 
4929
5129
  /* Keep synchronized with com.quotemedia.streamer.client.fmt.FmtMessage */
4930
5130
 
4931
5131
  var fmt = {};
4932
5132
 
4933
- /**
4934
- * Creates a new message formatter.
4935
- * @constructor
5133
+ /**
5134
+ * Creates a new message formatter.
5135
+ * @constructor
4936
5136
  */
4937
5137
  fmt.Formatter = function () {
4938
- /**
4939
- * Formatters by message type.
5138
+ /**
5139
+ * Formatters by message type.
4940
5140
  */
4941
5141
  this.formatters = {};
4942
5142
  this.formatters[fmt.Formatter._UNKOWNTYPE] = this._fmtunknown;
@@ -4953,6 +5153,9 @@ fmt.Formatter = function () {
4953
5153
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.STATS_RESPONSE] = this._fmtstatsresponse;
4954
5154
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.INITIAL_DATA_SENT] = this._fmtinitialdatasent;
4955
5155
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.RESUBSCRIBE_MESSAGE] = this._fmtresubscribeMessage;
5156
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_SUBSCRIBE] = this._fmtexchangesubscribe;
5157
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_RESPONSE] = this._fmtexchangesubscriberesponse;
5158
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_UNSUBSCRIBE_RESPONSE] = this._fmtexchangeunsubscriberesponse;
4956
5159
 
4957
5160
  //
4958
5161
  this.formatters[_streamerApi.messages.MessageTypeNames.data.QUOTE] = this._fmtquote;
@@ -4971,6 +5174,7 @@ fmt.Formatter = function () {
4971
5174
  this.formatters[_streamerApi.messages.MessageTypeNames.data.LIMITUPLIMITDOWN] = this._fmtlimituplimitdown;
4972
5175
  this.formatters[_streamerApi.messages.MessageTypeNames.data.IVGREEKS] = this._fmtivgreeks;
4973
5176
  this.formatters[_streamerApi.messages.MessageTypeNames.data.IMBALANCESTATUS] = this._fmtimbalancestatus;
5177
+ this.formatters[_streamerApi.messages.MessageTypeNames.data.ALERT] = this._fmtalert;
4974
5178
  };
4975
5179
 
4976
5180
  fmt.Formatter._UNKOWNTYPE = '__UNKNOWN__';
@@ -5097,6 +5301,8 @@ fmt.Formatter.prototype._fmtpricedata = function (val) {
5097
5301
  s.append(val.postMarketChange);
5098
5302
  s.sep();
5099
5303
  s.append(val.postMarketPercentChange);
5304
+ s.sep();
5305
+ s.append(val.lastTradeExcode);
5100
5306
  return s.toString();
5101
5307
  };
5102
5308
  fmt.Formatter.prototype._fmtlastsale = function (val) {
@@ -5143,6 +5349,8 @@ fmt.Formatter.prototype._fmtivgreeks = function (val) {
5143
5349
  var s = new fmt.StringBuilder();
5144
5350
  s.append('IVG');
5145
5351
  s.sep();
5352
+ s.datetime(val.lastCalculation);
5353
+ s.sep();
5146
5354
  s.append(val.symbol);
5147
5355
  s.sep();
5148
5356
  s.append(val.locateCode);
@@ -5159,11 +5367,17 @@ fmt.Formatter.prototype._fmtivgreeks = function (val) {
5159
5367
  s.sep();
5160
5368
  s.append(val.midIV);
5161
5369
  s.sep();
5162
- s.append(val.midIVChange);
5370
+ s.append(val.midIVChange.toFixed(5));
5163
5371
  s.sep();
5164
5372
  s.append(val.bidIV);
5165
5373
  s.sep();
5166
5374
  s.append(val.askIV);
5375
+ s.sep();
5376
+ s.append(val.mark);
5377
+ s.sep();
5378
+ s.append(val.intrinsicValue);
5379
+ s.sep();
5380
+ s.append(val.extrinsicValue);
5167
5381
  return s.toString();
5168
5382
  };
5169
5383
 
@@ -5184,6 +5398,14 @@ fmt.Formatter.prototype._fmtimbalancestatus = function (val) {
5184
5398
  s.append(val.size);
5185
5399
  s.sep();
5186
5400
  s.append(val.side);
5401
+ s.sep();
5402
+ s.append(val.pairedVolume);
5403
+ s.sep();
5404
+ s.append(val.nearIndicativePrice);
5405
+ s.sep();
5406
+ s.append(val.farIndicativePrice);
5407
+ s.sep();
5408
+ s.append(val.priceVariation);
5187
5409
  return s.toString();
5188
5410
  };
5189
5411
 
@@ -5395,6 +5617,10 @@ fmt.Formatter.prototype._fmtsymbolinfo = function (val) {
5395
5617
  s.append(val.haltIndicator);
5396
5618
  s.sep();
5397
5619
  s.append(val.regSHOStatus);
5620
+ s.sep();
5621
+ s.append(val.pqe);
5622
+ s.sep();
5623
+ s.append(val.caveatEmptor);
5398
5624
  return s.toString();
5399
5625
  };
5400
5626
 
@@ -5411,6 +5637,14 @@ fmt.Formatter.prototype._fmtsymbolstatus = function (val) {
5411
5637
  s.append(val.haltIndicator);
5412
5638
  s.sep();
5413
5639
  s.append(val.regSHOStatus);
5640
+ s.sep();
5641
+ s.append(val.closingCalculatedPrice);
5642
+ s.sep();
5643
+ s.datetime(val.effectiveTime);
5644
+ s.sep();
5645
+ s.datetime(val.openingTime);
5646
+ s.sep();
5647
+ s.append(val.note);
5414
5648
  return s.toString();
5415
5649
  };
5416
5650
 
@@ -5433,6 +5667,27 @@ fmt.Formatter.prototype._fmtderivativeinfo = function (val) {
5433
5667
  s.append(val.contractSize);
5434
5668
  s.sep();
5435
5669
  s.append(val.callPutIndicator);
5670
+ s.sep();
5671
+ s.append(val.minTickSize);
5672
+ return s.toString();
5673
+ };
5674
+
5675
+ fmt.Formatter.prototype._fmtalert = function (val) {
5676
+ var s = new fmt.StringBuilder();
5677
+ s.append('A');
5678
+ s.sep();
5679
+ s.datetime(val.timestamp);
5680
+ s.sep();
5681
+ s.append(val.symbol);
5682
+ s.sep();
5683
+ s.append(val.locateCode);
5684
+ s.sep();
5685
+ s.append(val.instrumentType);
5686
+ s.sep();
5687
+ s.append(val.alertId);
5688
+ s.sep();
5689
+ s.append(val.triggerValue);
5690
+
5436
5691
  return s.toString();
5437
5692
  };
5438
5693
 
@@ -5451,6 +5706,13 @@ fmt.Formatter.prototype._fmtsubscribe = function (val) {
5451
5706
  return s.toString();
5452
5707
  };
5453
5708
 
5709
+ fmt.Formatter.prototype._fmtexchangesubscribe = function (val) {
5710
+ var s = new fmt.StringBuilder();
5711
+ s.append('EXCHANGE SUBSCRIBE');
5712
+ // TODO
5713
+ return s.toString();
5714
+ };
5715
+
5454
5716
  fmt.Formatter.prototype._fmtstats = function (val) {
5455
5717
  var s = new fmt.StringBuilder();
5456
5718
  s.append('STATS');
@@ -5466,6 +5728,15 @@ fmt.Formatter.prototype._fmtsubscriberesponse = function (val) {
5466
5728
  return s.toString();
5467
5729
  };
5468
5730
 
5731
+ fmt.Formatter.prototype._fmtexchangesubscriberesponse = function (val) {
5732
+ var s = new fmt.StringBuilder();
5733
+ s.append('EXCHANGE SUBSCRIBED');
5734
+ s.sep();
5735
+ this.__baseresponse(val, s);
5736
+ // TODO
5737
+ return s.toString();
5738
+ };
5739
+
5469
5740
  fmt.Formatter.prototype._fmtunsubscriberesponse = function (val) {
5470
5741
  var s = new fmt.StringBuilder();
5471
5742
  s.append('UN-SUBSCRIBED');
@@ -5475,6 +5746,15 @@ fmt.Formatter.prototype._fmtunsubscriberesponse = function (val) {
5475
5746
  return s.toString();
5476
5747
  };
5477
5748
 
5749
+ fmt.Formatter.prototype._fmtexchangeunsubscriberesponse = function (val) {
5750
+ var s = new fmt.StringBuilder();
5751
+ s.append('EXCHANGE UNSUBSCRIBED');
5752
+ s.sep();
5753
+ this.__baseresponse(val, s);
5754
+ // TODO
5755
+ return s.toString();
5756
+ };
5757
+
5478
5758
  fmt.Formatter.prototype._fmtconnectresponse = function (val) {
5479
5759
  var s = new fmt.StringBuilder();
5480
5760
  s.append('CONNECT');
@@ -5538,6 +5818,9 @@ fmt.Formatter.prototype._fmtstatsresponse = function (val) {
5538
5818
  s.sep();
5539
5819
  s.append('number of open connections: ');
5540
5820
  s.append(val.numberOfOpenedConnections);
5821
+ s.sep();
5822
+ s.append('number of subscribed exchanges: ');
5823
+ s.append(val.numberOfSubscribedExchanges);
5541
5824
  return s.toString();
5542
5825
  };
5543
5826
 
@@ -5573,9 +5856,9 @@ fmt.Formatter.prototype.__baseresponse = function (val, s) {
5573
5856
  s.append(val.reason);
5574
5857
  };
5575
5858
 
5576
- /**
5577
- * Create a new sting builder.
5578
- * @constructor
5859
+ /**
5860
+ * Create a new sting builder.
5861
+ * @constructor
5579
5862
  */
5580
5863
  fmt.StringBuilder = function () {
5581
5864
  this._str = '';
@@ -5598,7 +5881,7 @@ fmt.StringBuilder.prototype.datetime = function (val) {
5598
5881
  if (val instanceof _jsbi2["default"]) {
5599
5882
  millis = _jsbi2["default"].toNumber(val);
5600
5883
  }
5601
- this._str += "" + new Date(millis);
5884
+ this._str += "" + new Date(millis).toUTCString();
5602
5885
  } else {
5603
5886
  this._str += 'null';
5604
5887
  }
@@ -5810,16 +6093,16 @@ function asLogger(logger) {
5810
6093
  exports.__esModule = true;
5811
6094
  /* @see http://usejsdoc.org */
5812
6095
 
5813
- /**
5814
- * Streamer api namespace.
5815
- * @namespace
6096
+ /**
6097
+ * Streamer api namespace.
6098
+ * @namespace
5816
6099
  */
5817
6100
 
5818
6101
  /* ****************************************************************************************************************** */
5819
6102
 
5820
- /**
5821
- * Supported encodings.
5822
- * @enum
6103
+ /**
6104
+ * Supported encodings.
6105
+ * @enum
5823
6106
  */
5824
6107
  var Encodings = exports.Encodings = {
5825
6108
  UNDEFINED: "undefined",
@@ -5832,9 +6115,9 @@ var Encodings = exports.Encodings = {
5832
6115
  BASE64_CHAR: "B"
5833
6116
  };
5834
6117
 
5835
- /**
5836
- * Supported mime types.
5837
- * @enum
6118
+ /**
6119
+ * Supported mime types.
6120
+ * @enum
5838
6121
  */
5839
6122
  var MimeTypes = exports.MimeTypes = {
5840
6123
  UNDEFINED: "undefined",
@@ -5850,12 +6133,12 @@ var MimeTypes = exports.MimeTypes = {
5850
6133
  QITCH_CHAR: "I"
5851
6134
  };
5852
6135
 
5853
- /**
5854
- * Returns the with '0' left padded string representation of the number.
5855
- * @param num {number} the number to create string for
5856
- * @param len {number} the target length of the string
5857
- * @return {string} the with '0' left padded string
5858
- * @throws Will throw an error if number doesn't fit within target length
6136
+ /**
6137
+ * Returns the with '0' left padded string representation of the number.
6138
+ * @param num {number} the number to create string for
6139
+ * @param len {number} the target length of the string
6140
+ * @return {string} the with '0' left padded string
6141
+ * @throws Will throw an error if number doesn't fit within target length
5859
6142
  */
5860
6143
  var lpad = exports.lpad = function lpad(num, len) {
5861
6144
  var _numstr = num.toString();
@@ -6181,13 +6464,13 @@ var BIG_INT_FORTY = _jsbi2["default"].BigInt(40);
6181
6464
  var BIG_INT_FORTY_EIGHT = _jsbi2["default"].BigInt(48);
6182
6465
  var BIG_INT_FIFTY_SIX = _jsbi2["default"].BigInt(56);
6183
6466
 
6184
- /*
6185
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
6467
+ /*
6468
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
6186
6469
  */
6187
- /**
6188
- * Translates bytes into numbers and vice versa.
6189
- * Use multiplication instead of shifts because in javascript shifts are slower than multiplication
6190
- * (under the hood shifts call ToInt32 which is slower than ToNumber in multiplication).
6470
+ /**
6471
+ * Translates bytes into numbers and vice versa.
6472
+ * Use multiplication instead of shifts because in javascript shifts are slower than multiplication
6473
+ * (under the hood shifts call ToInt32 which is slower than ToNumber in multiplication).
6191
6474
  */
6192
6475
 
6193
6476
  var Bytes = function () {
@@ -6201,11 +6484,11 @@ var Bytes = function () {
6201
6484
  return dst;
6202
6485
  };
6203
6486
 
6204
- /**
6205
- * Gets numeric value that is in range of short (Int16) from byte array
6206
- * @param src The source array
6207
- * @param offset The offset
6208
- * @returns {number} Resulting short value
6487
+ /**
6488
+ * Gets numeric value that is in range of short (Int16) from byte array
6489
+ * @param src The source array
6490
+ * @param offset The offset
6491
+ * @returns {number} Resulting short value
6209
6492
  */
6210
6493
 
6211
6494
 
@@ -6222,11 +6505,11 @@ var Bytes = function () {
6222
6505
  return dst;
6223
6506
  };
6224
6507
 
6225
- /**
6226
- * Gets numeric value that is in range of integer (Int32) from byte array
6227
- * @param src The source array
6228
- * @param offset The offset
6229
- * @returns {number} Resulting int value
6508
+ /**
6509
+ * Gets numeric value that is in range of integer (Int32) from byte array
6510
+ * @param src The source array
6511
+ * @param offset The offset
6512
+ * @returns {number} Resulting int value
6230
6513
  */
6231
6514
 
6232
6515
 
@@ -6237,11 +6520,11 @@ var Bytes = function () {
6237
6520
  src[offset + 3] & 0xff;
6238
6521
  };
6239
6522
 
6240
- /**
6241
- * Gets numeric value that is in range of long (Int64) from byte array.
6242
- * @param src The source array
6243
- * @param offset The offset
6244
- * @returns {JSBI} Resulting string representation of long.
6523
+ /**
6524
+ * Gets numeric value that is in range of long (Int64) from byte array.
6525
+ * @param src The source array
6526
+ * @param offset The offset
6527
+ * @returns {JSBI} Resulting string representation of long.
6245
6528
  */
6246
6529
 
6247
6530
 
@@ -6283,8 +6566,8 @@ var UShort = function () {
6283
6566
  return UShort;
6284
6567
  }();
6285
6568
 
6286
- /**
6287
- * Length in bytes
6569
+ /**
6570
+ * Length in bytes
6288
6571
  */
6289
6572
 
6290
6573
 
@@ -6314,8 +6597,8 @@ var UByte = function () {
6314
6597
  return UByte;
6315
6598
  }();
6316
6599
 
6317
- /**
6318
- * Length in bytes
6600
+ /**
6601
+ * Length in bytes
6319
6602
  */
6320
6603
 
6321
6604
 
@@ -6345,8 +6628,8 @@ var UInt = function () {
6345
6628
  return UInt;
6346
6629
  }();
6347
6630
 
6348
- /**
6349
- * Length in bytes
6631
+ /**
6632
+ * Length in bytes
6350
6633
  */
6351
6634
 
6352
6635
 
@@ -6454,6 +6737,12 @@ var EnumValueTranslator = function () {
6454
6737
  return "RTB";
6455
6738
  case 4:
6456
6739
  return "DL";
6740
+ case 6:
6741
+ return "RTO";
6742
+ case 7:
6743
+ return "DLO";
6744
+ case 8:
6745
+ return "DLN";
6457
6746
  default:
6458
6747
  return "NA";
6459
6748
  }
@@ -6586,24 +6875,24 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
6586
6875
 
6587
6876
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6588
6877
 
6589
- /*
6590
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
6878
+ /*
6879
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
6591
6880
  */
6592
6881
  var Qitch = function () {
6593
6882
  function Qitch() {
6594
6883
  _classCallCheck(this, Qitch);
6595
6884
  }
6596
6885
 
6597
- /**
6598
- * Copies an array from the specified source array, beginning at sourceIndex,
6599
- * to the specified position of the destination array.
6600
- * The number of components copied is equal to the length argument. The elements are copied
6601
- * into a destination array starting from destinationIndex.
6602
- * @param sourceArray The source array
6603
- * @param sourceIndex The starting position in the source array.
6604
- * @param destinationArray The destination array
6605
- * @param destinationIndex The starting position in the destination array.
6606
- * @param length The number of array elements to be copied.
6886
+ /**
6887
+ * Copies an array from the specified source array, beginning at sourceIndex,
6888
+ * to the specified position of the destination array.
6889
+ * The number of components copied is equal to the length argument. The elements are copied
6890
+ * into a destination array starting from destinationIndex.
6891
+ * @param sourceArray The source array
6892
+ * @param sourceIndex The starting position in the source array.
6893
+ * @param destinationArray The destination array
6894
+ * @param destinationIndex The starting position in the destination array.
6895
+ * @param length The number of array elements to be copied.
6607
6896
  */
6608
6897
  Qitch.copyArray = function copyArray(sourceArray, sourceIndex, destinationArray, destinationIndex, length) {
6609
6898
  if (length === 0) {
@@ -6630,12 +6919,12 @@ var Qitch = function () {
6630
6919
  }
6631
6920
  };
6632
6921
 
6633
- /**
6634
- * Gets boolean value from source byte array at specified position.
6635
- * @param src The source array.
6636
- * @param offset The offset.
6637
- * @returns {boolean} Returns obtained value.
6638
- * @throws Exception in case if src is not {@link Int8Array}
6922
+ /**
6923
+ * Gets boolean value from source byte array at specified position.
6924
+ * @param src The source array.
6925
+ * @param offset The offset.
6926
+ * @returns {boolean} Returns obtained value.
6927
+ * @throws Exception in case if src is not {@link Int8Array}
6639
6928
  */
6640
6929
 
6641
6930
 
@@ -6646,13 +6935,13 @@ var Qitch = function () {
6646
6935
  throw "Invalid source. Expected: Int8Array";
6647
6936
  };
6648
6937
 
6649
- /**
6650
- * Puts boolean value into destination array.
6651
- * @param dst The destination array
6652
- * @param offset The offset.
6653
- * @param val Boolean value.
6654
- * @returns {Int8Array} destination array.
6655
- * @throws Exception in case if dst is not {@link Int8Array}
6938
+ /**
6939
+ * Puts boolean value into destination array.
6940
+ * @param dst The destination array
6941
+ * @param offset The offset.
6942
+ * @param val Boolean value.
6943
+ * @returns {Int8Array} destination array.
6944
+ * @throws Exception in case if dst is not {@link Int8Array}
6656
6945
  */
6657
6946
 
6658
6947
 
@@ -6664,13 +6953,13 @@ var Qitch = function () {
6664
6953
  throw "Invalid destination. Expected: Int8Array";
6665
6954
  };
6666
6955
 
6667
- /**
6668
- * Puts byte value into destination array.
6669
- * @param dst The destination array
6670
- * @param offset The offset.
6671
- * @param val Byte value.
6672
- * @returns {Int8Array} destination array.
6673
- * @throws Exception in case if dst is not {@link Int8Array}
6956
+ /**
6957
+ * Puts byte value into destination array.
6958
+ * @param dst The destination array
6959
+ * @param offset The offset.
6960
+ * @param val Byte value.
6961
+ * @returns {Int8Array} destination array.
6962
+ * @throws Exception in case if dst is not {@link Int8Array}
6674
6963
  */
6675
6964
 
6676
6965
 
@@ -6682,12 +6971,12 @@ var Qitch = function () {
6682
6971
  throw "Invalid destination. Expected: Int8Array";
6683
6972
  };
6684
6973
 
6685
- /**
6686
- * Gets integer (int32) value from source byte array at specified position.
6687
- * @param src The source array.
6688
- * @param offset The offset.
6689
- * @returns {number} Returns obtained value.
6690
- * @throws Exception in case if src is not {@link Int8Array}
6974
+ /**
6975
+ * Gets integer (int32) value from source byte array at specified position.
6976
+ * @param src The source array.
6977
+ * @param offset The offset.
6978
+ * @returns {number} Returns obtained value.
6979
+ * @throws Exception in case if src is not {@link Int8Array}
6691
6980
  */
6692
6981
 
6693
6982
 
@@ -6698,13 +6987,13 @@ var Qitch = function () {
6698
6987
  throw "Invalid source. Expected: Int8Array";
6699
6988
  };
6700
6989
 
6701
- /**
6702
- * Sets integer (int32) value to destination array
6703
- * @param dst destination array
6704
- * @param offset offset
6705
- * @param val integer value
6706
- * @returns {Int8Array} destination array.
6707
- * @throws Exception in case if dst is not {@link Int8Array}
6990
+ /**
6991
+ * Sets integer (int32) value to destination array
6992
+ * @param dst destination array
6993
+ * @param offset offset
6994
+ * @param val integer value
6995
+ * @returns {Int8Array} destination array.
6996
+ * @throws Exception in case if dst is not {@link Int8Array}
6708
6997
  */
6709
6998
 
6710
6999
 
@@ -6715,12 +7004,12 @@ var Qitch = function () {
6715
7004
  throw "Invalid destination. Expected: Int8Array";
6716
7005
  };
6717
7006
 
6718
- /**
6719
- * Gets unsigned integer (uint32) value from source byte array at specified position.
6720
- * @param src The source array.
6721
- * @param offset The offset.
6722
- * @returns {number} Returns obtained value.
6723
- * @throws Exception in case if src is not {@link Int8Array}
7007
+ /**
7008
+ * Gets unsigned integer (uint32) value from source byte array at specified position.
7009
+ * @param src The source array.
7010
+ * @param offset The offset.
7011
+ * @returns {number} Returns obtained value.
7012
+ * @throws Exception in case if src is not {@link Int8Array}
6724
7013
  */
6725
7014
 
6726
7015
 
@@ -6731,13 +7020,13 @@ var Qitch = function () {
6731
7020
  throw "Invalid source. Expected: Int8Array";
6732
7021
  };
6733
7022
 
6734
- /**
6735
- * Sets unsigned integer (uint32) value to destination array
6736
- * @param dst destination array
6737
- * @param offset offset
6738
- * @param val unsigned integer value
6739
- * @returns {Int8Array} destination array.
6740
- * @throws Exception in case if dst is not {@link Int8Array}
7023
+ /**
7024
+ * Sets unsigned integer (uint32) value to destination array
7025
+ * @param dst destination array
7026
+ * @param offset offset
7027
+ * @param val unsigned integer value
7028
+ * @returns {Int8Array} destination array.
7029
+ * @throws Exception in case if dst is not {@link Int8Array}
6741
7030
  */
6742
7031
 
6743
7032
 
@@ -6748,13 +7037,13 @@ var Qitch = function () {
6748
7037
  throw "Invalid destination. Expected: Int8Array";
6749
7038
  };
6750
7039
 
6751
- /**
6752
- * Gets single character from source byte array at specified position.
6753
- * @param src The source array.
6754
- * @param offset The offset.
6755
- * @returns {null|String} Returns null if offset is out of array index range or
6756
- * value is equal to {@link Constants#ASCII_NULL}, otherwise returns the obtained value.
6757
- * @throws Exception in case if src is not {@link Int8Array}
7040
+ /**
7041
+ * Gets single character from source byte array at specified position.
7042
+ * @param src The source array.
7043
+ * @param offset The offset.
7044
+ * @returns {null|String} Returns null if offset is out of array index range or
7045
+ * value is equal to {@link Constants#ASCII_NULL}, otherwise returns the obtained value.
7046
+ * @throws Exception in case if src is not {@link Int8Array}
6758
7047
  */
6759
7048
 
6760
7049
 
@@ -6769,13 +7058,13 @@ var Qitch = function () {
6769
7058
  throw "Invalid source. Expected: Int8Array";
6770
7059
  };
6771
7060
 
6772
- /**
6773
- * Gets long (int64) value from source byte array at specified position. Since javascript doesn't support long values,
6774
- * it is returned as {@link JSBI.BigInt}.
6775
- * @param src The source array.
6776
- * @param offset The offset.
6777
- * @returns {JSBI} Returns obtained value.
6778
- * @throws Exception in case if src is not {@link Int8Array}
7061
+ /**
7062
+ * Gets long (int64) value from source byte array at specified position. Since javascript doesn't support long values,
7063
+ * it is returned as {@link JSBI.BigInt}.
7064
+ * @param src The source array.
7065
+ * @param offset The offset.
7066
+ * @returns {JSBI} Returns obtained value.
7067
+ * @throws Exception in case if src is not {@link Int8Array}
6779
7068
  */
6780
7069
 
6781
7070
 
@@ -6786,14 +7075,14 @@ var Qitch = function () {
6786
7075
  throw "Invalid source. Expected: Int8Array";
6787
7076
  };
6788
7077
 
6789
- /**
6790
- * Gets double value from byte source array at specified position.
6791
- * In QITCH double values are sent as longs and then divided by {@link Constants#PRICE_DIVISOR}. Since javascript
6792
- * doesn't support long values, the result is returned as {@link BigNumber}.
6793
- * @param src The source array.
6794
- * @param offset The offset.
6795
- * @returns {BigNumber} Returns obtained value.
6796
- * @throws Exception in case if src is not {@link Int8Array}
7078
+ /**
7079
+ * Gets double value from byte source array at specified position.
7080
+ * In QITCH double values are sent as longs and then divided by {@link Constants#PRICE_DIVISOR}. Since javascript
7081
+ * doesn't support long values, the result is returned as {@link BigNumber}.
7082
+ * @param src The source array.
7083
+ * @param offset The offset.
7084
+ * @returns {BigNumber} Returns obtained value.
7085
+ * @throws Exception in case if src is not {@link Int8Array}
6797
7086
  */
6798
7087
 
6799
7088
 
@@ -6804,12 +7093,12 @@ var Qitch = function () {
6804
7093
  throw "Invalid source. Expected: Int8Array";
6805
7094
  };
6806
7095
 
6807
- /**
6808
- * Gets signed byte from source byte array at specified position.
6809
- * @param src The source array.
6810
- * @param offset The offset.
6811
- * @returns {number} Returns obtained value.
6812
- * @throws Exception in case if src is not {@link Int8Array}
7096
+ /**
7097
+ * Gets signed byte from source byte array at specified position.
7098
+ * @param src The source array.
7099
+ * @param offset The offset.
7100
+ * @returns {number} Returns obtained value.
7101
+ * @throws Exception in case if src is not {@link Int8Array}
6813
7102
  */
6814
7103
 
6815
7104
 
@@ -6820,14 +7109,14 @@ var Qitch = function () {
6820
7109
  throw "Invalid source. Expected: Int8Array";
6821
7110
  };
6822
7111
 
6823
- /**
6824
- * Gets timestamp value from source byte array at specified offset. Since javascript doesn't support long values,
6825
- * it is returned as {@link JSBI.BigInt}
6826
- * @param src The source array.
6827
- * @param offset The offset.
6828
- * @returns {null|JSBI} Returns null if value is equal to {@link Constants#TIMESTAMP_NULL}
6829
- * otherwise returns the obtained value.
6830
- * @throws Exception in case if src is not {@link Int8Array}
7112
+ /**
7113
+ * Gets timestamp value from source byte array at specified offset. Since javascript doesn't support long values,
7114
+ * it is returned as {@link JSBI.BigInt}
7115
+ * @param src The source array.
7116
+ * @param offset The offset.
7117
+ * @returns {null|JSBI} Returns null if value is equal to {@link Constants#TIMESTAMP_NULL}
7118
+ * otherwise returns the obtained value.
7119
+ * @throws Exception in case if src is not {@link Int8Array}
6831
7120
  */
6832
7121
 
6833
7122
 
@@ -6839,12 +7128,12 @@ var Qitch = function () {
6839
7128
  throw "Invalid source. Expected: Int8Array";
6840
7129
  };
6841
7130
 
6842
- /**
6843
- * Gets locate code value from source byte array at specified offset.
6844
- * @param src The source array.
6845
- * @param offset The offset.
6846
- * @returns {number} Returns obtained value.
6847
- * @throws Exception in case if src is not {@link Int8Array}
7131
+ /**
7132
+ * Gets locate code value from source byte array at specified offset.
7133
+ * @param src The source array.
7134
+ * @param offset The offset.
7135
+ * @returns {number} Returns obtained value.
7136
+ * @throws Exception in case if src is not {@link Int8Array}
6848
7137
  */
6849
7138
 
6850
7139
 
@@ -6855,13 +7144,13 @@ var Qitch = function () {
6855
7144
  throw "Invalid source. Expected: Int8Array";
6856
7145
  };
6857
7146
 
6858
- /**
6859
- * Gets symbol value from source byte array at specified offset.
6860
- * @param src The source array.
6861
- * @param offset The offset.
6862
- * @returns {null|String} Returns null in case if specified offset is too big (offset + symbol length in bytes is bigger than length of source array),
6863
- * otherwise returns obtained value.
6864
- * @throws Exception in case if src is not {@link Int8Array}
7147
+ /**
7148
+ * Gets symbol value from source byte array at specified offset.
7149
+ * @param src The source array.
7150
+ * @param offset The offset.
7151
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + symbol length in bytes is bigger than length of source array),
7152
+ * otherwise returns obtained value.
7153
+ * @throws Exception in case if src is not {@link Int8Array}
6865
7154
  */
6866
7155
 
6867
7156
 
@@ -6875,13 +7164,13 @@ var Qitch = function () {
6875
7164
  throw "Invalid source. Expected: Int8Array";
6876
7165
  };
6877
7166
 
6878
- /**
6879
- * Puts symbol value into destination array.
6880
- * @param dst The destination array.
6881
- * @param offset The offset.
6882
- * @param val Symbol value.
6883
- * @returns {Int8Array} destination array.
6884
- * @throws Exception in case if dst is not {@link Int8Array}
7167
+ /**
7168
+ * Puts symbol value into destination array.
7169
+ * @param dst The destination array.
7170
+ * @param offset The offset.
7171
+ * @param val Symbol value.
7172
+ * @returns {Int8Array} destination array.
7173
+ * @throws Exception in case if dst is not {@link Int8Array}
6885
7174
  */
6886
7175
 
6887
7176
 
@@ -6892,13 +7181,13 @@ var Qitch = function () {
6892
7181
  throw "Invalid destination. Expected: Int8Array";
6893
7182
  };
6894
7183
 
6895
- /**
6896
- * Gets excode value from source byte array at specified offset.
6897
- * @param src The source array.
6898
- * @param offset The offset.
6899
- * @returns {null|String} Returns null in case if specified offset is too big (offset + excode length in bytes is bigger than length of source array),
6900
- * otherwise returns obtained value.
6901
- * @throws Exception in case if src is not {@link Int8Array}
7184
+ /**
7185
+ * Gets excode value from source byte array at specified offset.
7186
+ * @param src The source array.
7187
+ * @param offset The offset.
7188
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + excode length in bytes is bigger than length of source array),
7189
+ * otherwise returns obtained value.
7190
+ * @throws Exception in case if src is not {@link Int8Array}
6902
7191
  */
6903
7192
 
6904
7193
 
@@ -6912,13 +7201,13 @@ var Qitch = function () {
6912
7201
  throw "Invalid source. Expected: Int8Array";
6913
7202
  };
6914
7203
 
6915
- /**
6916
- * Gets mmid value from source byte array at specified offset.
6917
- * @param src The source array.
6918
- * @param offset The offset.
6919
- * @returns {null|String} Returns null in case if specified offset is too big (offset + excode length in bytes is bigger than length of source array),
6920
- * otherwise returns obtained value.
6921
- * @throws Exception in case if src is not {@link Int8Array}
7204
+ /**
7205
+ * Gets mmid value from source byte array at specified offset.
7206
+ * @param src The source array.
7207
+ * @param offset The offset.
7208
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + excode length in bytes is bigger than length of source array),
7209
+ * otherwise returns obtained value.
7210
+ * @throws Exception in case if src is not {@link Int8Array}
6922
7211
  */
6923
7212
 
6924
7213
 
@@ -6932,13 +7221,13 @@ var Qitch = function () {
6932
7221
  throw "Invalid source. Expected: Int8Array";
6933
7222
  };
6934
7223
 
6935
- /**
6936
- * Gets numeric order id value from source byte array at specified offset. Since javascript doesn't support long values,
6937
- * it is returned as {@link JSBI.BigInt}
6938
- * @param src The source array.
6939
- * @param offset The offset.
6940
- * @returns {JSBI} Returns obtained value.
6941
- * @throws Exception in case if src is not {@link Int8Array}
7224
+ /**
7225
+ * Gets numeric order id value from source byte array at specified offset. Since javascript doesn't support long values,
7226
+ * it is returned as {@link JSBI.BigInt}
7227
+ * @param src The source array.
7228
+ * @param offset The offset.
7229
+ * @returns {JSBI} Returns obtained value.
7230
+ * @throws Exception in case if src is not {@link Int8Array}
6942
7231
  */
6943
7232
 
6944
7233
 
@@ -6949,13 +7238,13 @@ var Qitch = function () {
6949
7238
  throw "Invalid source. Expected: Int8Array";
6950
7239
  };
6951
7240
 
6952
- /**
6953
- * Gets order id as string from source byte array at specified offset.
6954
- * @param src The source array.
6955
- * @param offset The offset.
6956
- * @returns {null|String} Returns null in case if specified offset is too big (offset + order id length in bytes is bigger than length of source array),
6957
- * otherwise returns obtained value.
6958
- * @throws Exception in case if src is not {@link Int8Array}
7241
+ /**
7242
+ * Gets order id as string from source byte array at specified offset.
7243
+ * @param src The source array.
7244
+ * @param offset The offset.
7245
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + order id length in bytes is bigger than length of source array),
7246
+ * otherwise returns obtained value.
7247
+ * @throws Exception in case if src is not {@link Int8Array}
6959
7248
  */
6960
7249
 
6961
7250
 
@@ -6969,13 +7258,13 @@ var Qitch = function () {
6969
7258
  throw "Invalid source. Expected: Int8Array";
6970
7259
  };
6971
7260
 
6972
- /**
6973
- * Gets currency id from source byte array at specified offset.
6974
- * @param src The source array.
6975
- * @param offset The offset.
6976
- * @returns {null|String} Returns null in case if specified offset is too big (offset + currency id length in bytes is bigger than length of source array),
6977
- * otherwise returns obtained value.
6978
- * @throws Exception in case if src is not {@link Int8Array}
7261
+ /**
7262
+ * Gets currency id from source byte array at specified offset.
7263
+ * @param src The source array.
7264
+ * @param offset The offset.
7265
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + currency id length in bytes is bigger than length of source array),
7266
+ * otherwise returns obtained value.
7267
+ * @throws Exception in case if src is not {@link Int8Array}
6979
7268
  */
6980
7269
 
6981
7270
 
@@ -6989,13 +7278,13 @@ var Qitch = function () {
6989
7278
  throw "Invalid source. Expected: Int8Array";
6990
7279
  };
6991
7280
 
6992
- /**
6993
- * Gets tick from source byte array at specified offset.
6994
- * @param src The source array.
6995
- * @param offset The offset.
6996
- * @returns {string|null} Returns null in case if offset is out of array index range,
6997
- * otherwise character at specified offset is returned.
6998
- * @throws Exception in case if src is not {@link Int8Array}
7281
+ /**
7282
+ * Gets tick from source byte array at specified offset.
7283
+ * @param src The source array.
7284
+ * @param offset The offset.
7285
+ * @returns {string|null} Returns null in case if offset is out of array index range,
7286
+ * otherwise character at specified offset is returned.
7287
+ * @throws Exception in case if src is not {@link Int8Array}
6999
7288
  */
7000
7289
 
7001
7290
 
@@ -7009,13 +7298,13 @@ var Qitch = function () {
7009
7298
  throw "Invalid source. Expected: Int8Array";
7010
7299
  };
7011
7300
 
7012
- /**
7013
- * Gets order change type from source byte array at specified offset.
7014
- * @param src The source array.
7015
- * @param offset The offset.
7016
- * @returns {null|*} Returns null in case if offset is out of array index range,
7017
- * otherwise {@link messages.market.OrderChangeType} value that corresponds to the character at specified offset is returned.
7018
- * @throws Exception in case if src is not {@link Int8Array}
7301
+ /**
7302
+ * Gets order change type from source byte array at specified offset.
7303
+ * @param src The source array.
7304
+ * @param offset The offset.
7305
+ * @returns {null|*} Returns null in case if offset is out of array index range,
7306
+ * otherwise {@link messages.market.OrderChangeType} value that corresponds to the character at specified offset is returned.
7307
+ * @throws Exception in case if src is not {@link Int8Array}
7019
7308
  */
7020
7309
 
7021
7310
 
@@ -7033,13 +7322,13 @@ var Qitch = function () {
7033
7322
  throw "Invalid source. Expected: Int8Array";
7034
7323
  };
7035
7324
 
7036
- /**
7037
- * Gets order side from source byte array at specified offset.
7038
- * @param src The source array.
7039
- * @param offset The offset.
7040
- * @returns {string|null} Returns null in case if offset is out of array index range,
7041
- * otherwise character at specified offset is returned.
7042
- * @throws Exception in case if src is not {@link Int8Array}
7325
+ /**
7326
+ * Gets order side from source byte array at specified offset.
7327
+ * @param src The source array.
7328
+ * @param offset The offset.
7329
+ * @returns {string|null} Returns null in case if offset is out of array index range,
7330
+ * otherwise character at specified offset is returned.
7331
+ * @throws Exception in case if src is not {@link Int8Array}
7043
7332
  */
7044
7333
 
7045
7334
 
@@ -7057,13 +7346,13 @@ var Qitch = function () {
7057
7346
  throw "Invalid source. Expected: Int8Array";
7058
7347
  };
7059
7348
 
7060
- /**
7061
- * Gets range indicator from source byte array at specified offset.
7062
- * @param src The source array.
7063
- * @param offset The offset.
7064
- * @returns {string|null} Returns null in case if offset is out of array index range,
7065
- * otherwise character at specified offset is returned.
7066
- * @throws Exception in case if src is not {@link Int8Array}
7349
+ /**
7350
+ * Gets range indicator from source byte array at specified offset.
7351
+ * @param src The source array.
7352
+ * @param offset The offset.
7353
+ * @returns {string|null} Returns null in case if offset is out of array index range,
7354
+ * otherwise character at specified offset is returned.
7355
+ * @throws Exception in case if src is not {@link Int8Array}
7067
7356
  */
7068
7357
 
7069
7358
 
@@ -7077,13 +7366,13 @@ var Qitch = function () {
7077
7366
  throw "Invalid source. Expected: Int8Array";
7078
7367
  };
7079
7368
 
7080
- /**
7081
- * Gets instrument type from source byte array at specified offset.
7082
- * @param src The source array.
7083
- * @param offset The offset.
7084
- * @returns {null|*} Returns null in case if offset is out of array index range,
7085
- * otherwise {@link messages.market.InstrumentType} value that corresponds to the byte at specified offset is returned.
7086
- * @throws Exception in case if src is not {@link Int8Array}
7369
+ /**
7370
+ * Gets instrument type from source byte array at specified offset.
7371
+ * @param src The source array.
7372
+ * @param offset The offset.
7373
+ * @returns {null|*} Returns null in case if offset is out of array index range,
7374
+ * otherwise {@link messages.market.InstrumentType} value that corresponds to the byte at specified offset is returned.
7375
+ * @throws Exception in case if src is not {@link Int8Array}
7087
7376
  */
7088
7377
 
7089
7378
 
@@ -7097,13 +7386,13 @@ var Qitch = function () {
7097
7386
  throw "Invalid source. Expected: Int8Array";
7098
7387
  };
7099
7388
 
7100
- /**
7101
- * Gets imbalance type from source byte array at specified offset.
7102
- * @param src The source array.
7103
- * @param offset The offset.
7104
- * @returns {null|*} Returns null in case if offset is out of array index range,
7105
- * otherwise {@link messages.market.ImbalanceType} value that corresponds to the byte at specified offset is returned.
7106
- * @throws Exception in case if src is not {@link Int8Array}
7389
+ /**
7390
+ * Gets imbalance type from source byte array at specified offset.
7391
+ * @param src The source array.
7392
+ * @param offset The offset.
7393
+ * @returns {null|*} Returns null in case if offset is out of array index range,
7394
+ * otherwise {@link messages.market.ImbalanceType} value that corresponds to the byte at specified offset is returned.
7395
+ * @throws Exception in case if src is not {@link Int8Array}
7107
7396
  */
7108
7397
 
7109
7398
 
@@ -7117,13 +7406,13 @@ var Qitch = function () {
7117
7406
  throw "Invalid source. Expected: Int8Array";
7118
7407
  };
7119
7408
 
7120
- /**
7121
- * Gets order refernece from source byte array at specified offset.
7122
- * @param src The source array.
7123
- * @param offset The offset.
7124
- * @returns {null|String} Returns null in case if specified offset is too big (offset + order reference length in bytes is bigger than length of source array),
7125
- * otherwise returns obtained value.
7126
- * @throws Exception in case if src is not {@link Int8Array}
7409
+ /**
7410
+ * Gets order refernece from source byte array at specified offset.
7411
+ * @param src The source array.
7412
+ * @param offset The offset.
7413
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + order reference length in bytes is bigger than length of source array),
7414
+ * otherwise returns obtained value.
7415
+ * @throws Exception in case if src is not {@link Int8Array}
7127
7416
  */
7128
7417
 
7129
7418
 
@@ -7137,13 +7426,13 @@ var Qitch = function () {
7137
7426
  throw "Invalid source. Expected: Int8Array";
7138
7427
  };
7139
7428
 
7140
- /**
7141
- * Gets response reason from source byte array at specified offset.
7142
- * @param src The source array.
7143
- * @param offset The offset.
7144
- * @returns {null|String} Returns null in case if specified offset is too big (offset + reason length in bytes is bigger than length of source array),
7145
- * otherwise returns obtained value.
7146
- * @throws Exception in case if src is not {@link Int8Array}
7429
+ /**
7430
+ * Gets response reason from source byte array at specified offset.
7431
+ * @param src The source array.
7432
+ * @param offset The offset.
7433
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + reason length in bytes is bigger than length of source array),
7434
+ * otherwise returns obtained value.
7435
+ * @throws Exception in case if src is not {@link Int8Array}
7147
7436
  */
7148
7437
 
7149
7438
 
@@ -7157,13 +7446,13 @@ var Qitch = function () {
7157
7446
  throw "Invalid source. Expected: Int8Array";
7158
7447
  };
7159
7448
 
7160
- /**
7161
- * Gets streamer version from source byte array at specified offset.
7162
- * @param src The source array.
7163
- * @param offset The offset.
7164
- * @returns {null|String} Returns null in case if specified offset is too big (offset + version length in bytes is bigger than length of source array),
7165
- * otherwise returns obtained value.
7166
- * @throws Exception in case if src is not {@link Int8Array}
7449
+ /**
7450
+ * Gets streamer version from source byte array at specified offset.
7451
+ * @param src The source array.
7452
+ * @param offset The offset.
7453
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + version length in bytes is bigger than length of source array),
7454
+ * otherwise returns obtained value.
7455
+ * @throws Exception in case if src is not {@link Int8Array}
7167
7456
  */
7168
7457
 
7169
7458
 
@@ -7177,13 +7466,13 @@ var Qitch = function () {
7177
7466
  throw "Invalid source. Expected: Int8Array";
7178
7467
  };
7179
7468
 
7180
- /**
7181
- * Gets server instance from source byte array at specified offset.
7182
- * @param src The source array.
7183
- * @param offset The offset.
7184
- * @returns {null|String} Returns null in case if specified offset is too big (offset + server instance length in bytes is bigger than length of source array),
7185
- * otherwise returns obtained value.
7186
- * @throws Exception in case if src is not {@link Int8Array}
7469
+ /**
7470
+ * Gets server instance from source byte array at specified offset.
7471
+ * @param src The source array.
7472
+ * @param offset The offset.
7473
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + server instance length in bytes is bigger than length of source array),
7474
+ * otherwise returns obtained value.
7475
+ * @throws Exception in case if src is not {@link Int8Array}
7187
7476
  */
7188
7477
 
7189
7478
 
@@ -7197,13 +7486,33 @@ var Qitch = function () {
7197
7486
  throw "Invalid source. Expected: Int8Array";
7198
7487
  };
7199
7488
 
7200
- /**
7201
- * Puts action value into destination array.
7202
- * @param dst The destination array.
7203
- * @param offset The offset.
7204
- * @param val Action value.
7205
- * @returns {Int8Array} destination array.
7206
- * @throws Exception in case if dst is not {@link Int8Array}
7489
+ /**
7490
+ * Gets the note message from source byte array at specified offset.
7491
+ * @param src The source array.
7492
+ * @param offset The offset.
7493
+ * @returns {null|String} Returns null in case if specified offset is too big (offset + note length in bytes is bigger than length of source array),
7494
+ * otherwise returns obtained value.
7495
+ * @throws Exception in case if src is not {@link Int8Array}
7496
+ */
7497
+
7498
+
7499
+ Qitch.note = function note(src, offset) {
7500
+ if (src instanceof Int8Array) {
7501
+ if (offset + Constants.NOTE_LENGTH > src.length) {
7502
+ return null;
7503
+ }
7504
+ return _DataOperations.ASCIIString.get(src, offset, Constants.NOTE_LENGTH);
7505
+ }
7506
+ throw "Invalid source. Expected: Int8Array";
7507
+ };
7508
+
7509
+ /**
7510
+ * Puts action value into destination array.
7511
+ * @param dst The destination array.
7512
+ * @param offset The offset.
7513
+ * @param val Action value.
7514
+ * @returns {Int8Array} destination array.
7515
+ * @throws Exception in case if dst is not {@link Int8Array}
7207
7516
  */
7208
7517
 
7209
7518
 
@@ -7215,13 +7524,13 @@ var Qitch = function () {
7215
7524
  throw "Invalid destination. Expected: Int8Array";
7216
7525
  };
7217
7526
 
7218
- /**
7219
- * Puts mimetype value into destination array.
7220
- * @param dst The destination array.
7221
- * @param offset The offset.
7222
- * @param val Mimetype value.
7223
- * @returns {Int8Array} destination array.
7224
- * @throws Exception in case if dst is not {@link Int8Array}
7527
+ /**
7528
+ * Puts mimetype value into destination array.
7529
+ * @param dst The destination array.
7530
+ * @param offset The offset.
7531
+ * @param val Mimetype value.
7532
+ * @returns {Int8Array} destination array.
7533
+ * @throws Exception in case if dst is not {@link Int8Array}
7225
7534
  */
7226
7535
 
7227
7536
 
@@ -7232,13 +7541,13 @@ var Qitch = function () {
7232
7541
  throw "Invalid destination. Expected: Int8Array";
7233
7542
  };
7234
7543
 
7235
- /**
7236
- * Puts conflation value into destination array. If conflation is null, -1 will be put instead.
7237
- * @param dst The destination array.
7238
- * @param offset The offset.
7239
- * @param val Conflation value.
7240
- * @returns {Int8Array} destination array.
7241
- * @throws Exception in case if dst is not {@link Int8Array}
7544
+ /**
7545
+ * Puts conflation value into destination array. If conflation is null, -1 will be put instead.
7546
+ * @param dst The destination array.
7547
+ * @param offset The offset.
7548
+ * @param val Conflation value.
7549
+ * @returns {Int8Array} destination array.
7550
+ * @throws Exception in case if dst is not {@link Int8Array}
7242
7551
  */
7243
7552
 
7244
7553
 
@@ -7249,13 +7558,13 @@ var Qitch = function () {
7249
7558
  throw "Invalid destination. Expected: Int8Array";
7250
7559
  };
7251
7560
 
7252
- /**
7253
- * Gets marketdata type from source byte array at specified offset.
7254
- * @param src The source array.
7255
- * @param offset The offset.
7256
- * @returns {null|String} Returns null in case if offset is out of array index range,
7257
- * otherwise {@link messages.control.MarketdataType} value that corresponds to the byte at specified offset is returned.
7258
- * @throws Exception in case if src is not {@link Int8Array}
7561
+ /**
7562
+ * Gets marketdata type from source byte array at specified offset.
7563
+ * @param src The source array.
7564
+ * @param offset The offset.
7565
+ * @returns {null|String} Returns null in case if offset is out of array index range,
7566
+ * otherwise {@link messages.control.MarketdataType} value that corresponds to the byte at specified offset is returned.
7567
+ * @throws Exception in case if src is not {@link Int8Array}
7259
7568
  */
7260
7569
 
7261
7570
 
@@ -7269,13 +7578,13 @@ var Qitch = function () {
7269
7578
  throw "Invalid source. Expected: Int8Array";
7270
7579
  };
7271
7580
 
7272
- /**
7273
- * Puts marketdata type value into destination array.
7274
- * @param dst The destination array.
7275
- * @param offset The offset.
7276
- * @param val Marketdatatype value.
7277
- * @returns {Int8Array} destination array.
7278
- * @throws Exception in case if dst is not {@link Int8Array}
7581
+ /**
7582
+ * Puts marketdata type value into destination array.
7583
+ * @param dst The destination array.
7584
+ * @param offset The offset.
7585
+ * @param val Marketdatatype value.
7586
+ * @returns {Int8Array} destination array.
7587
+ * @throws Exception in case if dst is not {@link Int8Array}
7279
7588
  */
7280
7589
 
7281
7590
 
@@ -7287,13 +7596,13 @@ var Qitch = function () {
7287
7596
  throw "Invalid destination. Expected: Int8Array";
7288
7597
  };
7289
7598
 
7290
- /**
7291
- * Gets entitlement type from source byte array at specified offset.
7292
- * @param src The source array.
7293
- * @param offset The offset.
7294
- * @returns {null|String} Returns null in case if offset is out of array index range,
7295
- * otherwise {@link messages.control.StreamEntitlementType} value that corresponds to the byte at specified offset is returned.
7296
- * @throws Exception in case if src is not {@link Int8Array}
7599
+ /**
7600
+ * Gets entitlement type from source byte array at specified offset.
7601
+ * @param src The source array.
7602
+ * @param offset The offset.
7603
+ * @returns {null|String} Returns null in case if offset is out of array index range,
7604
+ * otherwise {@link messages.control.StreamEntitlementType} value that corresponds to the byte at specified offset is returned.
7605
+ * @throws Exception in case if src is not {@link Int8Array}
7297
7606
  */
7298
7607
 
7299
7608
 
@@ -7307,12 +7616,12 @@ var Qitch = function () {
7307
7616
  throw "Invalid source. Expected: Int8Array";
7308
7617
  };
7309
7618
 
7310
- /**
7311
- * Gets stream entitlement entry from source byte array at specified offset.
7312
- * @param src The source array.
7313
- * @param offset The offset.
7314
- * @returns {messages.control.StreamEntitlement}
7315
- * @throws Exception in case if src is not {@link Int8Array}
7619
+ /**
7620
+ * Gets stream entitlement entry from source byte array at specified offset.
7621
+ * @param src The source array.
7622
+ * @param offset The offset.
7623
+ * @returns {messages.control.StreamEntitlement}
7624
+ * @throws Exception in case if src is not {@link Int8Array}
7316
7625
  */
7317
7626
 
7318
7627
 
@@ -7337,7 +7646,7 @@ exports["default"] = Qitch;
7337
7646
  "use strict";
7338
7647
 
7339
7648
  exports.__esModule = true;
7340
- exports.BLOCK_HEADER_LENGTH = exports.BLOCK_HEADER_SEQUENCE_OFFSET = exports.BLOCK_HEADER_RESERVED_OFFSET = exports.BLOCK_HEADER_MESSAGECOUNT_OFFSET = exports.BLOCK_HEADER_LENGTH_OFFSET = exports.MESSAGE_HEADER_LENGTH = exports.MESSAGE_HEADER_TYPE_OFFSET = exports.MESSAGE_HEADER_LENGTH_OFFSET = exports.ENTITLEMENT_LENGTH = exports.ENTITLEMENTTYPE_LENGTH = exports.MARKETDATATYPE_LENGTH = exports.CONFLATION_LENGTH = exports.MIMETYPE_LENGTH = exports.ACTION_LENGTH = exports.BOOLEAN_LENGTH = exports.VERSION_LENGTH = exports.SERVER_INSTANCE_LENGTH = exports.REASON_LENGTH = exports.ORDER_REFERENCE_LENGTH = exports.PRICE_DIVISOR = exports.RANGEINDICATOR_LENGTH = exports.INSTRUMENTTYPE_LENGTH = exports.SYMBOL_LENGTH = exports.CURRENCYID_LENGTH = exports.EXCODE_LENGTH = exports.TICK_LENGTH = exports.IMBALANCETYPE_LENGTH = exports.ORDERSIDE_LENGTH = exports.ORDERID_LENGTH = exports.MMID_LENGTH = exports.LOCATECODE_LENGTH = exports.TIMESTAMP_LENGTH = exports.DOUBLE_LENGTH = exports.LONG_LENGTH = exports.INT_LENGTH = exports.SHORT_LENGTH = exports.ASCIICHAR_LENGTH = exports.BYTE_LENGTH = exports.CONFLATION_NULL = exports.TIMESTAMP_NULL = exports.ASCIICHAR_NULL = exports.ASCII_NULL = undefined;
7649
+ exports.BLOCK_HEADER_LENGTH = exports.BLOCK_HEADER_SEQUENCE_OFFSET = exports.BLOCK_HEADER_RESERVED_OFFSET = exports.BLOCK_HEADER_MESSAGECOUNT_OFFSET = exports.BLOCK_HEADER_LENGTH_OFFSET = exports.MESSAGE_HEADER_LENGTH = exports.MESSAGE_HEADER_TYPE_OFFSET = exports.MESSAGE_HEADER_LENGTH_OFFSET = exports.NOTE_LENGTH = exports.ENTITLEMENT_LENGTH = exports.ENTITLEMENTTYPE_LENGTH = exports.MARKETDATATYPE_LENGTH = exports.CONFLATION_LENGTH = exports.MIMETYPE_LENGTH = exports.ACTION_LENGTH = exports.BOOLEAN_LENGTH = exports.VERSION_LENGTH = exports.SERVER_INSTANCE_LENGTH = exports.REASON_LENGTH = exports.ORDER_REFERENCE_LENGTH = exports.PRICE_DIVISOR = exports.RANGEINDICATOR_LENGTH = exports.INSTRUMENTTYPE_LENGTH = exports.SYMBOL_LENGTH = exports.CURRENCYID_LENGTH = exports.EXCODE_LENGTH = exports.TICK_LENGTH = exports.IMBALANCETYPE_LENGTH = exports.ORDERSIDE_LENGTH = exports.ORDERID_LENGTH = exports.MMID_LENGTH = exports.LOCATECODE_LENGTH = exports.TIMESTAMP_LENGTH = exports.DOUBLE_LENGTH = exports.LONG_LENGTH = exports.INT_LENGTH = exports.SHORT_LENGTH = exports.ASCIICHAR_LENGTH = exports.BYTE_LENGTH = exports.CONFLATION_NULL = exports.TIMESTAMP_NULL = exports.ASCIICHAR_NULL = exports.ASCII_NULL = undefined;
7341
7650
 
7342
7651
  var _jsbi = require("jsbi");
7343
7652
 
@@ -7345,8 +7654,8 @@ var _jsbi2 = _interopRequireDefault(_jsbi);
7345
7654
 
7346
7655
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7347
7656
 
7348
- /*
7349
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
7657
+ /*
7658
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
7350
7659
  */
7351
7660
  var ASCII_NULL = exports.ASCII_NULL = 0;
7352
7661
  var ASCIICHAR_NULL = exports.ASCIICHAR_NULL = '0';
@@ -7383,6 +7692,8 @@ var MARKETDATATYPE_LENGTH = exports.MARKETDATATYPE_LENGTH = BYTE_LENGTH;
7383
7692
  var ENTITLEMENTTYPE_LENGTH = exports.ENTITLEMENTTYPE_LENGTH = BYTE_LENGTH;
7384
7693
  var ENTITLEMENT_LENGTH = exports.ENTITLEMENT_LENGTH = SYMBOL_LENGTH + MARKETDATATYPE_LENGTH + ENTITLEMENTTYPE_LENGTH;
7385
7694
 
7695
+ var NOTE_LENGTH = exports.NOTE_LENGTH = 50;
7696
+
7386
7697
  var MESSAGE_HEADER_LENGTH_OFFSET = exports.MESSAGE_HEADER_LENGTH_OFFSET = 0;
7387
7698
  var MESSAGE_HEADER_TYPE_OFFSET = exports.MESSAGE_HEADER_TYPE_OFFSET = MESSAGE_HEADER_LENGTH_OFFSET + SHORT_LENGTH;
7388
7699
  var MESSAGE_HEADER_LENGTH = exports.MESSAGE_HEADER_LENGTH = MESSAGE_HEADER_TYPE_OFFSET + BYTE_LENGTH;
@@ -7625,9 +7936,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
7625
7936
 
7626
7937
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7627
7938
 
7628
- /**
7629
- * Decodes a stream of message blocks into messages.
7630
- * This class is stateful and cannot be shared between multiple streams.
7939
+ /**
7940
+ * Decodes a stream of message blocks into messages.
7941
+ * This class is stateful and cannot be shared between multiple streams.
7631
7942
  */
7632
7943
  var BlockDecoder = function () {
7633
7944
  function BlockDecoder(decoders, capacity) {
@@ -7649,9 +7960,9 @@ var BlockDecoder = function () {
7649
7960
  this.doflip = false;
7650
7961
  }
7651
7962
 
7652
- /**
7653
- * The number of messages in the current block.
7654
- * @returns {number} The number of messages or -1 if no block is being decoded
7963
+ /**
7964
+ * The number of messages in the current block.
7965
+ * @returns {number} The number of messages or -1 if no block is being decoded
7655
7966
  */
7656
7967
 
7657
7968
 
@@ -7659,9 +7970,9 @@ var BlockDecoder = function () {
7659
7970
  return this.state.messagecount;
7660
7971
  };
7661
7972
 
7662
- /**
7663
- * Returns the sequence number of the current block.
7664
- * @returns {number} the sequence number of the current block.
7973
+ /**
7974
+ * Returns the sequence number of the current block.
7975
+ * @returns {number} the sequence number of the current block.
7665
7976
  */
7666
7977
 
7667
7978
 
@@ -7669,13 +7980,13 @@ var BlockDecoder = function () {
7669
7980
  return this.state.blocksequencenumber;
7670
7981
  };
7671
7982
 
7672
- /**
7673
- * Adds bytes to internal buffer.
7674
- * Call {@link decode} to decode the buffered data.
7675
- * @param bytes The array from witch bytes are to be added.
7676
- * @param offset The offset within the array of the fist byte to be added.
7677
- * @param length The number of bytes to be added from the given array.
7678
- * @returns {Number} Number of bytes that weren't added due to buffer not having enough space.
7983
+ /**
7984
+ * Adds bytes to internal buffer.
7985
+ * Call {@link decode} to decode the buffered data.
7986
+ * @param bytes The array from witch bytes are to be added.
7987
+ * @param offset The offset within the array of the fist byte to be added.
7988
+ * @param length The number of bytes to be added from the given array.
7989
+ * @returns {Number} Number of bytes that weren't added due to buffer not having enough space.
7679
7990
  */
7680
7991
 
7681
7992
 
@@ -7704,11 +8015,11 @@ var BlockDecoder = function () {
7704
8015
  return numOfLeftoverBytes;
7705
8016
  };
7706
8017
 
7707
- /**
7708
- * Incrementally decodes the data in the internal buffer.
7709
- * Successive calls to this method will return the next decoded message as long enough data is avail
7710
- * If not enough data is available null will be returned until more data is added.
7711
- * @returns {*} The next decoded message or null if not enough data is available.
8018
+ /**
8019
+ * Incrementally decodes the data in the internal buffer.
8020
+ * Successive calls to this method will return the next decoded message as long enough data is avail
8021
+ * If not enough data is available null will be returned until more data is added.
8022
+ * @returns {*} The next decoded message or null if not enough data is available.
7712
8023
  */
7713
8024
 
7714
8025
 
@@ -8051,8 +8362,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
8051
8362
 
8052
8363
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8053
8364
 
8054
- /*
8055
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
8365
+ /*
8366
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
8056
8367
  */
8057
8368
  var QitchDecoder = function () {
8058
8369
  function QitchDecoder(bufferSize) {
@@ -8746,6 +9057,7 @@ var DerivativeInfoDecoder = function () {
8746
9057
  out.openInterest = _Qitch2["default"].int64(src, offset + def.OPENINTEREST_OFFSET);
8747
9058
  out.contractSize = _Qitch2["default"].int32(src, offset + def.CONTRACTSIZE_OFFSET);
8748
9059
  out.callPutIndicator = _Qitch2["default"].asciichar(src, offset + def.CALLPUTINDICATOR_OFFSET);
9060
+ out.minTickSize = _Qitch2["default"].dec8double(src, offset + def.MINTICKSIZE_OFFSET);
8749
9061
  return out;
8750
9062
  };
8751
9063
 
@@ -8788,6 +9100,7 @@ var IVGreeksDecoder = function () {
8788
9100
  IVGreeksDecoder.prototype.decode = function decode(src, offset) {
8789
9101
  var out = new _streamerApi.messages.market.IVGreeks();
8790
9102
  out.locateCode = _Qitch2["default"].locatecode(src, offset + def.LOCATECODE_OFFSET);
9103
+ out.lastCalculation = _Qitch2["default"].timestamp(src, offset + def.LAST_CALCULATION_OFFSET);
8791
9104
  out.delta = _Qitch2["default"].dec8double(src, offset + def.DELTA_OFFSET);
8792
9105
  out.gamma = _Qitch2["default"].dec8double(src, offset + def.GAMMA_OFFSET);
8793
9106
  out.vega = _Qitch2["default"].dec8double(src, offset + def.VEGA_OFFSET);
@@ -8797,6 +9110,9 @@ var IVGreeksDecoder = function () {
8797
9110
  out.midIVChange = _Qitch2["default"].dec8double(src, offset + def.IMPLIED_VOLATILITY_CHANGE_OFFSET);
8798
9111
  out.bidIV = _Qitch2["default"].dec8double(src, offset + def.BID_IMPLIED_VOLATILITY_OFFSET);
8799
9112
  out.askIV = _Qitch2["default"].dec8double(src, offset + def.ASK_IMPLIED_VOLATILITY_OFFSET);
9113
+ out.mark = _Qitch2["default"].dec8double(src, offset + def.MARK_OFFSET);
9114
+ out.intrinsicValue = _Qitch2["default"].dec8double(src, offset + def.INTRINSIC_VALUE_OFFSET);
9115
+ out.extrinsicValue = _Qitch2["default"].dec8double(src, offset + def.EXTRINSIC_VALUE_OFFSET);
8800
9116
  return out;
8801
9117
  };
8802
9118
 
@@ -8844,6 +9160,10 @@ var ImbalanceStatusDecoder = function () {
8844
9160
  out.referencePrice = _Qitch2["default"].dec8double(src, offset + def.REFERENCEPRICE_OFFSET);
8845
9161
  out.size = _Qitch2["default"].int64(src, offset + def.SIZE_OFFSET);
8846
9162
  out.side = _Qitch2["default"].orderside(src, offset + def.ORDERSIDE_OFFSET);
9163
+ out.pairedVolume = _Qitch2["default"].int32(src, offset + def.PAIREDVOLUME_OFFSET);
9164
+ out.nearIndicativePrice = _Qitch2["default"].dec8double(src, offset + def.NEARINDICATIVEPRICE_OFFSET);
9165
+ out.farIndicativePrice = _Qitch2["default"].dec8double(src, offset + def.FARINDICATIVEPRICE_OFFSET);
9166
+ out.priceVariation = _Qitch2["default"].dec8double(src, offset + def.PRICEVARIATION_OFFSET);
8847
9167
  return out;
8848
9168
  };
8849
9169
 
@@ -8899,7 +9219,7 @@ var IntervalDecoder = function () {
8899
9219
  out.low = _Qitch2["default"].dec8double(src, offset + def.LOW_OFFSET);
8900
9220
  out.high = _Qitch2["default"].dec8double(src, offset + def.HIGH_OFFSET);
8901
9221
  out.last = _Qitch2["default"].dec8double(src, offset + def.LAST_OFFSET);
8902
- out.volume = _Qitch2["default"].int64(src, offset + def.VOLUME_OFFSET);
9222
+ out.volume = _Qitch2["default"].dec8double(src, offset + def.LONGDECIMALVOLUME_OFFSET);
8903
9223
  out.startTime = _Qitch2["default"].timestamp(src, offset + def.STARTTIME_OFFSET);
8904
9224
  out.openTime = _Qitch2["default"].timestamp(src, offset + def.OPENTIME_OFFSET);
8905
9225
  out.lastTime = _Qitch2["default"].timestamp(src, offset + def.LASTTIME_OFFSET);
@@ -8909,7 +9229,7 @@ var IntervalDecoder = function () {
8909
9229
  };
8910
9230
 
8911
9231
  IntervalDecoder.prototype._vwap = function _vwap(interval) {
8912
- if (interval.tradeValue != null && interval.volume != null && _jsbi2["default"].toNumber(interval.volume) !== 0) {
9232
+ if (interval.tradeValue != null && interval.volume != null && interval.volume.toNumber() !== 0) {
8913
9233
  return new _bignumber2["default"](interval.tradeValue.toString()).dividedBy(interval.volume);
8914
9234
  }
8915
9235
  return null;
@@ -9069,9 +9389,9 @@ var MMQuoteDecoder = function () {
9069
9389
  out.timestamp = _Qitch2["default"].timestamp(src, offset + def.TIMESTAMP_OFFSET);
9070
9390
  out.locateCode = _Qitch2["default"].locatecode(src, offset + def.SYMBOL_OFFSET);
9071
9391
  out.bidPrice = _Qitch2["default"].dec8double(src, offset + def.BIDPRICE_OFFSET);
9072
- out.bidSize = _Qitch2["default"].int32(src, offset + def.BIDSIZE_OFFSET);
9392
+ out.bidSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALBIDSIZE_OFFSET);
9073
9393
  out.askPrice = _Qitch2["default"].dec8double(src, offset + def.ASKPRICE_OFFSET);
9074
- out.askSize = _Qitch2["default"].int32(src, offset + def.ASKSIZE_OFFSET);
9394
+ out.askSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALASKSIZE_OFFSET);
9075
9395
  out.marketMakerID = _Qitch2["default"].mmid(src, offset + def.MMID_OFFSET);
9076
9396
  out.indicator = _Qitch2["default"].asciichar(src, offset + def.INDICATOR_OFFSET);
9077
9397
  out.bidChange = _Qitch2["default"].dec8double(src, offset + def.BIDCHANGE_OFFSET);
@@ -9181,10 +9501,10 @@ var PricedataDecoder = function () {
9181
9501
  out.open = _Qitch2["default"].dec8double(src, offset + def.OPEN_OFFSET);
9182
9502
  out.high = _Qitch2["default"].dec8double(src, offset + def.HIGH_OFFSET);
9183
9503
  out.low = _Qitch2["default"].dec8double(src, offset + def.LOW_OFFSET);
9184
- out.accumulatedVolume = _Qitch2["default"].int64(src, offset + def.ACCUMULATEDVOLUME_OFFSET);
9504
+ out.accumulatedVolume = _Qitch2["default"].dec8double(src, offset + def.DECIMALACCUMULATEDVOLUME_OFFSET);
9185
9505
  out.lastTradeTime = _Qitch2["default"].timestamp(src, offset + def.LASTTRADETIME_OFFSET);
9186
9506
  out.tick = _Qitch2["default"].tick(src, offset + def.TICK_OFFSET);
9187
- out.lastTradeSize = _Qitch2["default"].int32(src, offset + def.LASTTRADESIZE_OFFSET);
9507
+ out.lastTradeSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALLASTTRADESIZE_OFFSET);
9188
9508
  out.close = _Qitch2["default"].dec8double(src, offset + def.CLOSE_OFFSET);
9189
9509
  out.tradeCount = _Qitch2["default"].int64(src, offset + def.TRADECOUNT_OFFSET);
9190
9510
  out.accumulatedPrice = null; // @Deprecatd
@@ -9199,14 +9519,15 @@ var PricedataDecoder = function () {
9199
9519
 
9200
9520
  out.preMarketTradeTime = _Qitch2["default"].timestamp(src, offset + def.PREMARKETTRADETIME_OFFSET);
9201
9521
  out.preMarketLast = _Qitch2["default"].dec8double(src, offset + def.PREMARKETLASTPRICE_OFFSET);
9202
- out.preMarketVolume = _Qitch2["default"].int64(src, offset + def.PREMARKETVOLUME_OFFSET);
9522
+ out.preMarketVolume = _Qitch2["default"].dec8double(src, offset + def.DECIMALPREMARKETVOLUME_OFFSET);
9203
9523
  out.preMarketChange = _Qitch2["default"].dec8double(src, offset + def.PREMARKETCHANGE_OFFSET);
9204
9524
  out.preMarketPercentChange = this._premarketPercentChange(out);
9205
9525
  out.postMarketTradeTime = _Qitch2["default"].timestamp(src, offset + def.POSTMARKETTRADETIME_OFFSET);
9206
9526
  out.postMarketLast = _Qitch2["default"].dec8double(src, offset + def.POSTMARKETLASTPRICE_OFFSET);
9207
- out.postMarketVolume = _Qitch2["default"].int64(src, offset + def.POSTMARKETVOLUME_OFFSET);
9527
+ out.postMarketVolume = _Qitch2["default"].dec8double(src, offset + def.DECIMALPOSTMARKETVOLUME_OFFSET);
9208
9528
  out.postMarketChange = _Qitch2["default"].dec8double(src, offset + def.POSTMARKETCHANGE_OFFSET);
9209
9529
  out.postMarketPercentChange = this._postmarketPercentChange(out);
9530
+ out.lastTradeExcode = _Qitch2["default"].excode(src, offset + def.LASTTRADEEXCODE_OFFSET);
9210
9531
 
9211
9532
  return out;
9212
9533
  };
@@ -9328,11 +9649,11 @@ var QuoteDecoder = function () {
9328
9649
  out.askCondition = _Qitch2["default"].asciichar(src, offset + def.ASKCONDITION_OFFSET);
9329
9650
  out.askExcode = _Qitch2["default"].excode(src, offset + def.ASKEXCODE_OFFSET);
9330
9651
  out.askPrice = _Qitch2["default"].dec8double(src, offset + def.ASKPRICE_OFFSET);
9331
- out.askSize = _Qitch2["default"].int32(src, offset + def.ASKSIZE_OFFSET);
9652
+ out.askSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALASKSIZE_OFFSET);
9332
9653
  out.bidCondition = _Qitch2["default"].asciichar(src, offset + def.BIDCONDITION_OFFSET);
9333
9654
  out.bidExcode = _Qitch2["default"].excode(src, offset + def.BIDEXCODE_OFFSET);
9334
9655
  out.bidPrice = _Qitch2["default"].dec8double(src, offset + def.BIDPRICE_OFFSET);
9335
- out.bidSize = _Qitch2["default"].int32(src, offset + def.BIDSIZE_OFFSET);
9656
+ out.bidSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALBIDSIZE_OFFSET);
9336
9657
  out.indicator = _Qitch2["default"].asciichar(src, offset + def.INDICATOR_OFFSET);
9337
9658
  out.sharesPerSizeUnit = _Qitch2["default"].int32(src, offset + def.SHARESPERSIZEUNIT_OFFSET);
9338
9659
  return out;
@@ -9384,6 +9705,9 @@ var SymbolInfoDecoder = function () {
9384
9705
  resultingMessage.haltStatus = _Qitch2["default"].sbyte(src, offset + def.HALTSTATUS_OFFSET);
9385
9706
  resultingMessage.haltIndicator = _Qitch2["default"].sbyte(src, offset + def.HALTINDICATOR_OFFSET);
9386
9707
  resultingMessage.regSHOStatus = _Qitch2["default"].asciichar(src, offset + def.REGSHOSTATUS_OFFSET);
9708
+ resultingMessage.pqe = _Qitch2["default"].sbyte(src, offset + def.PQE_OFFSET) > 0;
9709
+ resultingMessage.caveatEmptor = _Qitch2["default"].sbyte(src, offset + def.CAVEATEMPTOR_OFFSET) > 0;
9710
+
9387
9711
  return resultingMessage;
9388
9712
  };
9389
9713
 
@@ -9429,6 +9753,10 @@ var SymbolStatusDecoder = function () {
9429
9753
  out.haltStatus = _Qitch2["default"].sbyte(src, offset + def.HALTSTATUS_OFFSET);
9430
9754
  out.haltIndicator = _Qitch2["default"].sbyte(src, offset + def.HALTINDICATOR_OFFSET);
9431
9755
  out.regSHOStatus = _Qitch2["default"].asciichar(src, offset + def.REGSHOSTATUS_OFFSET);
9756
+ out.calculatedClosingPrice = _Qitch2["default"].dec8double(src, offset + def.CLOSINGPRICE_OFFSET);
9757
+ out.effectiveTime = _Qitch2["default"].timestamp(src, offset + def.EFFECTIVETIME_OFFSET);
9758
+ out.openingTime = _Qitch2["default"].timestamp(src, offset + def.OPENINGTIME_OFFSET);
9759
+ out.note = _Qitch2["default"].note(src, offset + def.NOTE_OFFSET);
9432
9760
  return out;
9433
9761
  };
9434
9762
 
@@ -9473,7 +9801,7 @@ var TradeDecoder = function () {
9473
9801
  resultingMessage.timestamp = _Qitch2["default"].timestamp(src, offset + def.TIMESTAMP_OFFSET);
9474
9802
  resultingMessage.locateCode = _Qitch2["default"].locatecode(src, offset + def.SYMBOL_OFFSET);
9475
9803
  resultingMessage.price = _Qitch2["default"].dec8double(src, offset + def.PRICE_OFFSET);
9476
- resultingMessage.size = _Qitch2["default"].int32(src, offset + def.SIZE_OFFSET);
9804
+ resultingMessage.size = _Qitch2["default"].dec8double(src, offset + def.DECIMALSIZE_OFFSET);
9477
9805
  resultingMessage.indicator = _Qitch2["default"].asciichar(src, offset + def.INDICATOR_OFFSET);
9478
9806
  resultingMessage.tick = _Qitch2["default"].tick(src, offset + def.TICK_OFFSET);
9479
9807
  resultingMessage.accumulatedVolume = _Qitch2["default"].int64(src, offset + def.ACCUMULATEDVOLUME_OFFSET);
@@ -9533,8 +9861,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
9533
9861
 
9534
9862
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9535
9863
 
9536
- /*
9537
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
9864
+ /*
9865
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
9538
9866
  */
9539
9867
  var QitchEncoder = function () {
9540
9868
  function QitchEncoder() {
@@ -9543,12 +9871,12 @@ var QitchEncoder = function () {
9543
9871
  this.encoder = new MessageEncoder();
9544
9872
  }
9545
9873
 
9546
- /**
9547
- * Encodes a message into its binary representation.
9548
- * @param msg Msg {SMessage} the message to encode
9549
- * @param offset The offset used to write message into a buffer
9550
- * @returns {ArrayBuffer} the encoded bytes
9551
- * @throws Throws an error if message cannot be encoded
9874
+ /**
9875
+ * Encodes a message into its binary representation.
9876
+ * @param msg Msg {SMessage} the message to encode
9877
+ * @param offset The offset used to write message into a buffer
9878
+ * @returns {ArrayBuffer} the encoded bytes
9879
+ * @throws Throws an error if message cannot be encoded
9552
9880
  */
9553
9881
 
9554
9882
 
@@ -9901,7 +10229,7 @@ BookOrderFlags.prototype.NEXTDAYSETTLEMENT_MASK = 0x1000;
9901
10229
  "use strict";
9902
10230
 
9903
10231
  exports.__esModule = true;
9904
- exports.LENGTH = exports.CALLPUTINDICATOR_OFFSET = exports.CONTRACTSIZE_OFFSET = exports.OPENINTEREST_OFFSET = exports.DELIVERY_OFFSET = exports.EXPIRATION_OFFSET = exports.ROOTSYMBOL_OFFSET = exports.SYMBOL_OFFSET = exports.TYPEID = undefined;
10232
+ exports.LENGTH = exports.MINTICKSIZE_OFFSET = exports.CALLPUTINDICATOR_OFFSET = exports.CONTRACTSIZE_OFFSET = exports.OPENINTEREST_OFFSET = exports.DELIVERY_OFFSET = exports.EXPIRATION_OFFSET = exports.ROOTSYMBOL_OFFSET = exports.SYMBOL_OFFSET = exports.TYPEID = undefined;
9905
10233
 
9906
10234
  var _QitchConstants = require("../QitchConstants");
9907
10235
 
@@ -9914,14 +10242,15 @@ var DELIVERY_OFFSET = exports.DELIVERY_OFFSET = EXPIRATION_OFFSET + _QitchConsta
9914
10242
  var OPENINTEREST_OFFSET = exports.OPENINTEREST_OFFSET = DELIVERY_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
9915
10243
  var CONTRACTSIZE_OFFSET = exports.CONTRACTSIZE_OFFSET = OPENINTEREST_OFFSET + _QitchConstants.LONG_LENGTH;
9916
10244
  var CALLPUTINDICATOR_OFFSET = exports.CALLPUTINDICATOR_OFFSET = CONTRACTSIZE_OFFSET + _QitchConstants.INT_LENGTH;
9917
- var LENGTH = exports.LENGTH = CALLPUTINDICATOR_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10245
+ var MINTICKSIZE_OFFSET = exports.MINTICKSIZE_OFFSET = CALLPUTINDICATOR_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10246
+ var LENGTH = exports.LENGTH = MINTICKSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9918
10247
  }).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/DerivativeInfoDef.js","/lib/qitch/marketDataDefinition")
9919
10248
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],74:[function(require,module,exports){
9920
10249
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
9921
10250
  "use strict";
9922
10251
 
9923
10252
  exports.__esModule = true;
9924
- exports.LENGTH = exports.ASK_IMPLIED_VOLATILITY_OFFSET = exports.BID_IMPLIED_VOLATILITY_OFFSET = exports.IMPLIED_VOLATILITY_CHANGE_OFFSET = exports.IMPLIED_VOLATILITY_OFFSET = exports.THETA_OFFSET = exports.RHO_OFFSET = exports.VEGA_OFFSET = exports.GAMMA_OFFSET = exports.DELTA_OFFSET = exports.LOCATECODE_OFFSET = exports.TYPEID = undefined;
10253
+ exports.LENGTH = exports.EXTRINSIC_VALUE_OFFSET = exports.INTRINSIC_VALUE_OFFSET = exports.MARK_OFFSET = exports.LAST_CALCULATION_OFFSET = exports.ASK_IMPLIED_VOLATILITY_OFFSET = exports.BID_IMPLIED_VOLATILITY_OFFSET = exports.IMPLIED_VOLATILITY_CHANGE_OFFSET = exports.IMPLIED_VOLATILITY_OFFSET = exports.THETA_OFFSET = exports.RHO_OFFSET = exports.VEGA_OFFSET = exports.GAMMA_OFFSET = exports.DELTA_OFFSET = exports.LOCATECODE_OFFSET = exports.TYPEID = undefined;
9925
10254
 
9926
10255
  var _QitchConstants = require("../QitchConstants");
9927
10256
 
@@ -9937,15 +10266,19 @@ var IMPLIED_VOLATILITY_OFFSET = exports.IMPLIED_VOLATILITY_OFFSET = THETA_OFFSET
9937
10266
  var IMPLIED_VOLATILITY_CHANGE_OFFSET = exports.IMPLIED_VOLATILITY_CHANGE_OFFSET = IMPLIED_VOLATILITY_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9938
10267
  var BID_IMPLIED_VOLATILITY_OFFSET = exports.BID_IMPLIED_VOLATILITY_OFFSET = IMPLIED_VOLATILITY_CHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9939
10268
  var ASK_IMPLIED_VOLATILITY_OFFSET = exports.ASK_IMPLIED_VOLATILITY_OFFSET = BID_IMPLIED_VOLATILITY_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10269
+ var LAST_CALCULATION_OFFSET = exports.LAST_CALCULATION_OFFSET = ASK_IMPLIED_VOLATILITY_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10270
+ var MARK_OFFSET = exports.MARK_OFFSET = LAST_CALCULATION_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10271
+ var INTRINSIC_VALUE_OFFSET = exports.INTRINSIC_VALUE_OFFSET = MARK_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10272
+ var EXTRINSIC_VALUE_OFFSET = exports.EXTRINSIC_VALUE_OFFSET = INTRINSIC_VALUE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9940
10273
 
9941
- var LENGTH = exports.LENGTH = ASK_IMPLIED_VOLATILITY_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10274
+ var LENGTH = exports.LENGTH = EXTRINSIC_VALUE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9942
10275
  }).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/IVGreeksDef.js","/lib/qitch/marketDataDefinition")
9943
10276
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],75:[function(require,module,exports){
9944
10277
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
9945
10278
  "use strict";
9946
10279
 
9947
10280
  exports.__esModule = true;
9948
- exports.LENGTH = exports.ORDERSIDE_OFFSET = exports.SIZE_OFFSET = exports.REFERENCEPRICE_OFFSET = exports.TIMESTAMP_OFFSET = exports.IMBALANCE_TYPE_OFFSET = exports.LOCATECODE_OFFSET = exports.TYPEID = undefined;
10281
+ exports.LENGTH = exports.PRICEVARIATION_OFFSET = exports.FARINDICATIVEPRICE_OFFSET = exports.NEARINDICATIVEPRICE_OFFSET = exports.PAIREDVOLUME_OFFSET = exports.ORDERSIDE_OFFSET = exports.SIZE_OFFSET = exports.REFERENCEPRICE_OFFSET = exports.TIMESTAMP_OFFSET = exports.IMBALANCE_TYPE_OFFSET = exports.LOCATECODE_OFFSET = exports.TYPEID = undefined;
9949
10282
 
9950
10283
  var _QitchConstants = require("../QitchConstants");
9951
10284
 
@@ -9957,14 +10290,18 @@ var TIMESTAMP_OFFSET = exports.TIMESTAMP_OFFSET = IMBALANCE_TYPE_OFFSET + _Qitch
9957
10290
  var REFERENCEPRICE_OFFSET = exports.REFERENCEPRICE_OFFSET = TIMESTAMP_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
9958
10291
  var SIZE_OFFSET = exports.SIZE_OFFSET = REFERENCEPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9959
10292
  var ORDERSIDE_OFFSET = exports.ORDERSIDE_OFFSET = SIZE_OFFSET + _QitchConstants.LONG_LENGTH;
9960
- var LENGTH = exports.LENGTH = ORDERSIDE_OFFSET + _QitchConstants.ORDERSIDE_LENGTH;
10293
+ var PAIREDVOLUME_OFFSET = exports.PAIREDVOLUME_OFFSET = ORDERSIDE_OFFSET + _QitchConstants.ORDERSIDE_LENGTH;
10294
+ var NEARINDICATIVEPRICE_OFFSET = exports.NEARINDICATIVEPRICE_OFFSET = PAIREDVOLUME_OFFSET + _QitchConstants.INT_LENGTH;
10295
+ var FARINDICATIVEPRICE_OFFSET = exports.FARINDICATIVEPRICE_OFFSET = NEARINDICATIVEPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10296
+ var PRICEVARIATION_OFFSET = exports.PRICEVARIATION_OFFSET = FARINDICATIVEPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10297
+ var LENGTH = exports.LENGTH = PRICEVARIATION_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9961
10298
  }).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/ImbalanceStatusDef.js","/lib/qitch/marketDataDefinition")
9962
10299
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],76:[function(require,module,exports){
9963
10300
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
9964
10301
  "use strict";
9965
10302
 
9966
10303
  exports.__esModule = true;
9967
- 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;
10304
+ 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;
9968
10305
 
9969
10306
  var _QitchConstants = require("../QitchConstants");
9970
10307
 
@@ -9981,7 +10318,8 @@ var STARTTIME_OFFSET = exports.STARTTIME_OFFSET = VOLUME_OFFSET + _QitchConstant
9981
10318
  var OPENTIME_OFFSET = exports.OPENTIME_OFFSET = STARTTIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
9982
10319
  var LASTTIME_OFFSET = exports.LASTTIME_OFFSET = OPENTIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
9983
10320
  var TRADEVALUE_OFFSET = exports.TRADEVALUE_OFFSET = LASTTIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
9984
- var LENGTH = exports.LENGTH = TRADEVALUE_OFFSET + _QitchConstants.LONG_LENGTH;
10321
+ var LONGDECIMALVOLUME_OFFSET = exports.LONGDECIMALVOLUME_OFFSET = TRADEVALUE_OFFSET + _QitchConstants.LONG_LENGTH;
10322
+ var LENGTH = exports.LENGTH = LONGDECIMALVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9985
10323
  }).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")
9986
10324
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],77:[function(require,module,exports){
9987
10325
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
@@ -10047,7 +10385,7 @@ LimitUpLimitDownFlags.prototype.ASK_NOT_EXECUTABLE = 0x2;
10047
10385
  "use strict";
10048
10386
 
10049
10387
  exports.__esModule = true;
10050
- 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;
10388
+ 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;
10051
10389
 
10052
10390
  var _QitchConstants = require("../QitchConstants");
10053
10391
 
@@ -10064,7 +10402,9 @@ var INDICATOR_OFFSET = exports.INDICATOR_OFFSET = MMID_OFFSET + _QitchConstants.
10064
10402
  var BIDCHANGE_OFFSET = exports.BIDCHANGE_OFFSET = INDICATOR_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10065
10403
  var ASKCHANGE_OFFSET = exports.ASKCHANGE_OFFSET = BIDCHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10066
10404
  var SHARESPERSIZEUNIT_OFFSET = exports.SHARESPERSIZEUNIT_OFFSET = ASKCHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10067
- var LENGTH = exports.LENGTH = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LENGTH;
10405
+ var DECIMALBIDSIZE_OFFSET = exports.DECIMALBIDSIZE_OFFSET = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LENGTH;
10406
+ var DECIMALASKSIZE_OFFSET = exports.DECIMALASKSIZE_OFFSET = DECIMALBIDSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10407
+ var LENGTH = exports.LENGTH = DECIMALASKSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10068
10408
  }).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")
10069
10409
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],80:[function(require,module,exports){
10070
10410
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
@@ -10099,7 +10439,7 @@ var LENGTH = exports.LENGTH = SELLBLOCKTRANSACTIONS_OFFSET + _QitchConstants.INT
10099
10439
  "use strict";
10100
10440
 
10101
10441
  exports.__esModule = true;
10102
- exports.PricedataFlags = exports.LENGTH = 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;
10442
+ 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;
10103
10443
 
10104
10444
  var _QitchConstants = require("../QitchConstants");
10105
10445
 
@@ -10132,8 +10472,14 @@ var POSTMARKETTRADETIME_OFFSET = exports.POSTMARKETTRADETIME_OFFSET = PREMARKETC
10132
10472
  var POSTMARKETLASTPRICE_OFFSET = exports.POSTMARKETLASTPRICE_OFFSET = POSTMARKETTRADETIME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10133
10473
  var POSTMARKETVOLUME_OFFSET = exports.POSTMARKETVOLUME_OFFSET = POSTMARKETLASTPRICE_OFFSET + _QitchConstants.LONG_LENGTH;
10134
10474
  var POSTMARKETCHANGE_OFFSET = exports.POSTMARKETCHANGE_OFFSET = POSTMARKETVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10475
+ var LASTTRADEEXCODE_OFFSET = exports.LASTTRADEEXCODE_OFFSET = POSTMARKETCHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10135
10476
 
10136
- var LENGTH = exports.LENGTH = POSTMARKETCHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10477
+ var DECIMALACCUMULATEDVOLUME_OFFSET = exports.DECIMALACCUMULATEDVOLUME_OFFSET = LASTTRADEEXCODE_OFFSET + _QitchConstants.EXCODE_LENGTH;
10478
+ var DECIMALPREMARKETVOLUME_OFFSET = exports.DECIMALPREMARKETVOLUME_OFFSET = DECIMALACCUMULATEDVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10479
+ var DECIMALPOSTMARKETVOLUME_OFFSET = exports.DECIMALPOSTMARKETVOLUME_OFFSET = DECIMALPREMARKETVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10480
+ var DECIMALLASTTRADESIZE_OFFSET = exports.DECIMALLASTTRADESIZE_OFFSET = DECIMALPOSTMARKETVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10481
+
10482
+ var LENGTH = exports.LENGTH = DECIMALLASTTRADESIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10137
10483
 
10138
10484
  var PricedataFlags = exports.PricedataFlags = function () {
10139
10485
  function PricedataFlags() {
@@ -10173,7 +10519,7 @@ var LENGTH = exports.LENGTH = SYMBOL_OFFSET + _QitchConstants.LOCATECODE_LENGTH;
10173
10519
  "use strict";
10174
10520
 
10175
10521
  exports.__esModule = true;
10176
- 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;
10522
+ 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;
10177
10523
 
10178
10524
  var _QitchConstants = require("../QitchConstants");
10179
10525
 
@@ -10191,14 +10537,16 @@ var BIDPRICE_OFFSET = exports.BIDPRICE_OFFSET = BIDEXCODE_OFFSET + _QitchConstan
10191
10537
  var BIDSIZE_OFFSET = exports.BIDSIZE_OFFSET = BIDPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10192
10538
  var INDICATOR_OFFSET = exports.INDICATOR_OFFSET = BIDSIZE_OFFSET + _QitchConstants.INT_LENGTH;
10193
10539
  var SHARESPERSIZEUNIT_OFFSET = exports.SHARESPERSIZEUNIT_OFFSET = INDICATOR_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10194
- var LENGTH = exports.LENGTH = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LENGTH;
10540
+ var DECIMALASKSIZE_OFFSET = exports.DECIMALASKSIZE_OFFSET = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LENGTH;
10541
+ var DECIMALBIDSIZE_OFFSET = exports.DECIMALBIDSIZE_OFFSET = DECIMALASKSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10542
+ var LENGTH = exports.LENGTH = DECIMALBIDSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10195
10543
  }).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")
10196
10544
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],84:[function(require,module,exports){
10197
10545
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
10198
10546
  "use strict";
10199
10547
 
10200
10548
  exports.__esModule = true;
10201
- exports.LENGTH = 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;
10549
+ 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;
10202
10550
 
10203
10551
  var _QitchConstants = require("../QitchConstants");
10204
10552
 
@@ -10212,14 +10560,16 @@ var CURRENCYID_OFFSET = exports.CURRENCYID_OFFSET = INSTRUMENTTYPE_OFFSET + _Qit
10212
10560
  var HALTSTATUS_OFFSET = exports.HALTSTATUS_OFFSET = CURRENCYID_OFFSET + _QitchConstants.CURRENCYID_LENGTH;
10213
10561
  var HALTINDICATOR_OFFSET = exports.HALTINDICATOR_OFFSET = HALTSTATUS_OFFSET + _QitchConstants.BYTE_LENGTH;
10214
10562
  var REGSHOSTATUS_OFFSET = exports.REGSHOSTATUS_OFFSET = HALTINDICATOR_OFFSET + _QitchConstants.BYTE_LENGTH;
10215
- var LENGTH = exports.LENGTH = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10563
+ var PQE_OFFSET = exports.PQE_OFFSET = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10564
+ var CAVEATEMPTOR_OFFSET = exports.CAVEATEMPTOR_OFFSET = PQE_OFFSET + _QitchConstants.BYTE_LENGTH;
10565
+ var LENGTH = exports.LENGTH = CAVEATEMPTOR_OFFSET + _QitchConstants.BYTE_LENGTH;
10216
10566
  }).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")
10217
10567
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],85:[function(require,module,exports){
10218
10568
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
10219
10569
  "use strict";
10220
10570
 
10221
10571
  exports.__esModule = true;
10222
- exports.LENGTH = exports.REGSHOSTATUS_OFFSET = exports.HALTINDICATOR_OFFSET = exports.HALTSTATUS_OFFSET = exports.LOCATE_CODE_OFFSET = exports.TYPEID = undefined;
10572
+ exports.LENGTH = exports.NOTE_OFFSET = exports.OPENINGTIME_OFFSET = exports.EFFECTIVETIME_OFFSET = exports.CLOSINGPRICE_OFFSET = exports.REGSHOSTATUS_OFFSET = exports.HALTINDICATOR_OFFSET = exports.HALTSTATUS_OFFSET = exports.LOCATE_CODE_OFFSET = exports.TYPEID = undefined;
10223
10573
 
10224
10574
  var _QitchConstants = require("../QitchConstants");
10225
10575
 
@@ -10229,14 +10579,19 @@ var LOCATE_CODE_OFFSET = exports.LOCATE_CODE_OFFSET = 0;
10229
10579
  var HALTSTATUS_OFFSET = exports.HALTSTATUS_OFFSET = LOCATE_CODE_OFFSET + _QitchConstants.LOCATECODE_LENGTH;
10230
10580
  var HALTINDICATOR_OFFSET = exports.HALTINDICATOR_OFFSET = HALTSTATUS_OFFSET + _QitchConstants.BYTE_LENGTH;
10231
10581
  var REGSHOSTATUS_OFFSET = exports.REGSHOSTATUS_OFFSET = HALTINDICATOR_OFFSET + _QitchConstants.BYTE_LENGTH;
10232
- var LENGTH = exports.LENGTH = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10582
+ var CLOSINGPRICE_OFFSET = exports.CLOSINGPRICE_OFFSET = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10583
+ var EFFECTIVETIME_OFFSET = exports.EFFECTIVETIME_OFFSET = CLOSINGPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10584
+ var OPENINGTIME_OFFSET = exports.OPENINGTIME_OFFSET = EFFECTIVETIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10585
+ var NOTE_OFFSET = exports.NOTE_OFFSET = OPENINGTIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10586
+
10587
+ var LENGTH = exports.LENGTH = NOTE_OFFSET + _QitchConstants.NOTE_LENGTH;
10233
10588
  }).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/SymbolStatusDef.js","/lib/qitch/marketDataDefinition")
10234
10589
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],86:[function(require,module,exports){
10235
10590
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
10236
10591
  "use strict";
10237
10592
 
10238
10593
  exports.__esModule = true;
10239
- 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;
10594
+ 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;
10240
10595
 
10241
10596
  var _QitchConstants = require("../QitchConstants");
10242
10597
 
@@ -10259,7 +10614,8 @@ var RANGEINDICATOR_OFFSET = exports.RANGEINDICATOR_OFFSET = SELLERMMID_OFFSET +
10259
10614
  var MATCHID_OFFSET = exports.MATCHID_OFFSET = RANGEINDICATOR_OFFSET + _QitchConstants.RANGEINDICATOR_LENGTH;
10260
10615
  var VWAP_OFFSET = exports.VWAP_OFFSET = MATCHID_OFFSET + _QitchConstants.LONG_LENGTH;
10261
10616
  var EXCODE_OFFSET = exports.EXCODE_OFFSET = VWAP_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10262
- var LENGTH = exports.LENGTH = EXCODE_OFFSET + _QitchConstants.EXCODE_LENGTH;
10617
+ var DECIMALSIZE_OFFSET = exports.DECIMALSIZE_OFFSET = EXCODE_OFFSET + _QitchConstants.EXCODE_LENGTH;
10618
+ var LENGTH = exports.LENGTH = DECIMALSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10263
10619
 
10264
10620
  var TradeFlags = exports.TradeFlags = function () {
10265
10621
  function TradeFlags() {
@@ -10613,761 +10969,834 @@ exports["default"] = new function () {
10613
10969
  exports.__esModule = true;
10614
10970
  /* @see http://usejsdoc.org */
10615
10971
 
10616
- /**
10617
- * Streamer api namespace.
10618
- * @namespace
10972
+ /**
10973
+ * Streamer api namespace.
10974
+ * @namespace
10619
10975
  */
10620
10976
 
10621
10977
  var LIBRARY_NAME = exports.LIBRARY_NAME = "JavaScript";
10622
- var VERSION = exports.VERSION = "2.5.0";
10978
+ var VERSION = exports.VERSION = "2.21.0";
10623
10979
 
10624
- /**
10625
- * Streamer message api namespace.
10626
- * @namespace
10980
+ /**
10981
+ * Streamer message api namespace.
10982
+ * @namespace
10627
10983
  */
10628
10984
  var messages = exports.messages = {};
10629
10985
 
10630
- /**
10631
- * Streamer control message namespace. * @namespace
10986
+ /**
10987
+ * Streamer control message namespace. * @namespace
10632
10988
  */
10633
10989
  messages.control = {};
10634
10990
 
10635
- /**
10636
- * Streamer market data message namespace.
10637
- * @namespace
10991
+ /**
10992
+ * Streamer market data message namespace.
10993
+ * @namespace
10638
10994
  */
10639
10995
  messages.market = {};
10640
10996
 
10641
10997
  /* ****************************************************************************************************************** */
10642
10998
 
10643
- /**
10644
- *
10645
- * @type {string}
10999
+ /**
11000
+ *
11001
+ * @type {string}
10646
11002
  */
10647
11003
  messages.JSON_TYPE_PROPERTY = '@T';
10648
11004
 
10649
- /**
10650
- * Message type identifiers.<br>
10651
- * Ensure identifiers are unique within this name space.
10652
- * @namespace
11005
+ /**
11006
+ * Message type identifiers.<br>
11007
+ * Ensure identifiers are unique within this name space.
11008
+ * @namespace
10653
11009
  */
10654
11010
  messages.MessageTypeNames = {
10655
- /**
10656
- * Name space for control message type identifiers.
10657
- * @namespace
10658
- */
10659
- ctrl: {
10660
- HEARTBEAT: 'C1',
10661
- SUBSCRIBE: 'C2',
10662
- SUBSCRIBE_RESPONSE: 'C3',
10663
- UNSUBSCRIBE_RESPONSE: 'C4',
10664
- CONNECT_RESPONSE: 'C5',
10665
- CONNECTION_CLOSE: 'C6',
10666
- FLOW: 'C7',
10667
- SLOW_CONNECTION: 'C8',
10668
- INITIAL_DATA_SENT: 'C9',
10669
- RESUBSCRIBE_MESSAGE: 'C10',
10670
- STATS: 'C12',
10671
- STATS_RESPONSE: 'C13'
10672
-
10673
- },
10674
- /**
10675
- * Name space for data message type identifiers.<br>
10676
- * Prefix with 'D'.
10677
- * @namespace
10678
- */
10679
- data: {
10680
- QUOTE: 'D1',
10681
- PRICEDATA: 'D2',
10682
- TRADE: 'D3',
10683
- BOOKORDER: 'D4',
10684
- BOOKDELETE: 'D5',
10685
- PURGEBOOK: 'D6',
10686
- MMQUOTE: 'D7',
10687
- INTERVAL: 'D8',
10688
- NETHOUSEPOSITION: 'D9',
10689
- SYMBOLINFO: 'D10',
10690
- SYMBOLSTATUS: 'D11',
10691
- DERIVATIVEINFO: 'D12',
10692
- LASTSALE: 'D13',
10693
- LIMITUPLIMITDOWN: 'D14',
10694
- IVGREEKS: 'D15',
10695
- IMBALANCESTATUS: 'D16'
10696
- }
11011
+ /**
11012
+ * Name space for control message type identifiers.
11013
+ * @namespace
11014
+ */
11015
+ ctrl: {
11016
+ HEARTBEAT: 'C1',
11017
+ SUBSCRIBE: 'C2',
11018
+ SUBSCRIBE_RESPONSE: 'C3',
11019
+ UNSUBSCRIBE_RESPONSE: 'C4',
11020
+ CONNECT_RESPONSE: 'C5',
11021
+ CONNECTION_CLOSE: 'C6',
11022
+ FLOW: 'C7',
11023
+ SLOW_CONNECTION: 'C8',
11024
+ INITIAL_DATA_SENT: 'C9',
11025
+ RESUBSCRIBE_MESSAGE: 'C10',
11026
+ STATS: 'C12',
11027
+ STATS_RESPONSE: 'C13',
11028
+ EXCHANGE_SUBSCRIBE: 'C14',
11029
+ EXCHANGE_RESPONSE: 'C15',
11030
+ EXCHANGE_UNSUBSCRIBE_RESPONSE: 'C16'
11031
+ },
11032
+ /**
11033
+ * Name space for data message type identifiers.<br>
11034
+ * Prefix with 'D'.
11035
+ * @namespace
11036
+ */
11037
+ data: {
11038
+ QUOTE: 'D1',
11039
+ PRICEDATA: 'D2',
11040
+ TRADE: 'D3',
11041
+ BOOKORDER: 'D4',
11042
+ BOOKDELETE: 'D5',
11043
+ PURGEBOOK: 'D6',
11044
+ MMQUOTE: 'D7',
11045
+ INTERVAL: 'D8',
11046
+ NETHOUSEPOSITION: 'D9',
11047
+ SYMBOLINFO: 'D10',
11048
+ SYMBOLSTATUS: 'D11',
11049
+ DERIVATIVEINFO: 'D12',
11050
+ LASTSALE: 'D13',
11051
+ LIMITUPLIMITDOWN: 'D14',
11052
+ IVGREEKS: 'D15',
11053
+ IMBALANCESTATUS: 'D16',
11054
+ ALERT: 'D17'
11055
+ }
10697
11056
  };
10698
11057
 
10699
- /**
10700
- * Super type of all exports.
10701
- * @abstract
10702
- * @constructor
11058
+ /**
11059
+ * Super type of all exports.
11060
+ * @abstract
11061
+ * @constructor
10703
11062
  */
10704
11063
  messages.Message = function () {};
10705
11064
 
10706
11065
  messages.Message.prototype.init = function (typeid) {
10707
- this[messages.JSON_TYPE_PROPERTY] = typeid;
11066
+ this[messages.JSON_TYPE_PROPERTY] = typeid;
10708
11067
  };
10709
11068
 
10710
11069
  /* ****************************************************************************************************************** */
10711
11070
 
10712
- /**
10713
- * Creates a control message base object.
10714
- * @abstract
10715
- * @constructor
11071
+ /**
11072
+ * Creates a control message base object.
11073
+ * @abstract
11074
+ * @constructor
10716
11075
  */
10717
11076
  messages.control.CtrlMessage = function () {};
10718
11077
  messages.control.CtrlMessage.prototype = new messages.Message();
10719
11078
 
10720
- /**
10721
- * Creates a heartbeat message.
10722
- * @constructor
11079
+ /**
11080
+ * Creates a heartbeat message.
11081
+ * @constructor
10723
11082
  */
10724
11083
  messages.control.Heartbeat = function () {
10725
- this.init(messages.MessageTypeNames.ctrl.HEARTBEAT);
11084
+ this.init(messages.MessageTypeNames.ctrl.HEARTBEAT);
10726
11085
 
10727
- /**
10728
- * Timestamp when heartbeat was generated.
10729
- * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
10730
- * for connections with QITCH format - {@link JSBI.BigInt}
10731
- */
10732
- this.timestamp = null;
11086
+ /**
11087
+ * Timestamp when heartbeat was generated.
11088
+ * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
11089
+ * for connections with QITCH format - {@link JSBI.BigInt}
11090
+ */
11091
+ this.timestamp = null;
10733
11092
  };
10734
11093
  messages.control.Heartbeat.prototype = new messages.control.CtrlMessage();
10735
- /**
10736
- * Creates a stats message.
10737
- * @constructor
11094
+ /**
11095
+ * Creates a stats message.
11096
+ * @constructor
10738
11097
  */
10739
11098
  messages.control.StatsMessage = function () {
10740
- this.init(messages.MessageTypeNames.ctrl.STATS);
11099
+ this.init(messages.MessageTypeNames.ctrl.STATS);
10741
11100
  };
10742
11101
  messages.control.StatsMessage.prototype = new messages.control.CtrlMessage();
10743
11102
 
10744
- /**
10745
- * Creates a subscribe message.
10746
- * @constructor
11103
+ /**
11104
+ * Creates a subscribe message.
11105
+ * @constructor
10747
11106
  */
10748
11107
  messages.control.SubscribeMessage = function () {
10749
- this.init(messages.MessageTypeNames.ctrl.SUBSCRIBE);
11108
+ this.init(messages.MessageTypeNames.ctrl.SUBSCRIBE);
10750
11109
 
10751
- /**
10752
- * The action the server will taken when receiving this message.
10753
- * @type {string}
10754
- * @see exports.messages.control.Action
10755
- */
10756
- this.action = null;
11110
+ /**
11111
+ * The action the server will taken when receiving this message.
11112
+ * @type {string}
11113
+ * @see exports.messages.control.Action
11114
+ */
11115
+ this.action = null;
10757
11116
 
10758
- /**
10759
- * List of ticker symbols to subscribe/un-subscribe for.
10760
- * @type {Array.<string>}
10761
- */
10762
- this.symbols = [];
11117
+ /**
11118
+ * List of ticker symbols to subscribe/un-subscribe for.
11119
+ * @type {Array.<string>}
11120
+ */
11121
+ this.symbols = [];
10763
11122
 
10764
- /**
10765
- * List of streaming message types to subscribe each ticker symbol for.
10766
- * @type {Array.<string>}
10767
- * @see exports.messages.control.MarketdataType
10768
- */
10769
- this.types = [];
11123
+ /**
11124
+ * List of streaming message types to subscribe each ticker symbol for.
11125
+ * @type {Array.<string>}
11126
+ * @see exports.messages.control.MarketdataType
11127
+ */
11128
+ this.types = [];
10770
11129
 
10771
- /**
10772
- * Requested message mime-type format.
10773
- * @type {string}
10774
- * @see exports.messages.MimeTypes
10775
- */
10776
- this.mimetype = null;
11130
+ /**
11131
+ * Requested message mime-type format.
11132
+ * @type {string}
11133
+ * @see exports.messages.MimeTypes
11134
+ */
11135
+ this.mimetype = null;
10777
11136
 
10778
- /**
10779
- * Requested conflation. Null indicates using the default conflation.
10780
- * @type {int}
10781
- */
10782
- this.conflation = null;
11137
+ /**
11138
+ * Requested conflation. Null indicates using the default conflation.
11139
+ * @type {int}
11140
+ */
11141
+ this.conflation = null;
10783
11142
  };
10784
11143
  messages.control.SubscribeMessage.prototype = new messages.control.CtrlMessage();
10785
11144
 
10786
- /**
10787
- * Base class for response exports.
10788
- * @abstract
11145
+ /**
11146
+ * Creates an exchange subscribe message.
11147
+ * @constructor
11148
+ */
11149
+ messages.control.ExchangeSubscribeMessage = function () {
11150
+ this.init(messages.MessageTypeNames.ctrl.EXCHANGE_SUBSCRIBE);
11151
+
11152
+ /**
11153
+ * The action the server will taken when receiving this message.
11154
+ * @type {string}
11155
+ * @see exports.messages.control.Action
11156
+ */
11157
+ this.action = null;
11158
+
11159
+ /**
11160
+ * The Exchange to subscribe/un-subscribe for.
11161
+ * @type {Array.<string>}
11162
+ */
11163
+ this.exchange = null;
11164
+
11165
+ /**
11166
+ * Requested message mime-type format.
11167
+ * @type {string}
11168
+ * @see exports.messages.MimeTypes
11169
+ */
11170
+ this.mimetype = null;
11171
+
11172
+ /**
11173
+ * Requested conflation. Null indicates using the default conflation.
11174
+ * @type {int}
11175
+ */
11176
+ this.conflation = null;
11177
+ };
11178
+ messages.control.ExchangeSubscribeMessage.prototype = new messages.control.CtrlMessage();
11179
+
11180
+ /**
11181
+ * Base class for response exports.
11182
+ * @abstract
10789
11183
  */
10790
11184
  messages.control.BaseResponse = function () {
10791
- /**
10792
- * The response code.
10793
- * @type {number}
10794
- * @see {@link messages.control.ResponseCodes}
10795
- */
10796
- this.code = null;
11185
+ /**
11186
+ * The response code.
11187
+ * @type {number}
11188
+ * @see {@link messages.control.ResponseCodes}
11189
+ */
11190
+ this.code = null;
10797
11191
 
10798
- /**
10799
- * The response reason.
10800
- * @type {string}
10801
- * @see {@link messages.control.ResponseCodes}
10802
- */
10803
- this.reason = null;
11192
+ /**
11193
+ * The response reason.
11194
+ * @type {string}
11195
+ * @see {@link messages.control.ResponseCodes}
11196
+ */
11197
+ this.reason = null;
10804
11198
  };
10805
11199
  messages.control.BaseResponse.prototype = new messages.control.CtrlMessage();
10806
11200
 
10807
- /**
10808
- * Creates a subscribe response message.
10809
- * @constructor
11201
+ /**
11202
+ * Creates a subscribe response message.
11203
+ * @constructor
10810
11204
  */
10811
11205
  messages.control.SubscribeResponse = function () {
10812
- this.init(messages.MessageTypeNames.ctrl.SUBSCRIBE_RESPONSE);
11206
+ this.init(messages.MessageTypeNames.ctrl.SUBSCRIBE_RESPONSE);
10813
11207
 
10814
- /**
10815
- *
10816
- * @type {Array.<messages.control.StreamEntitlement>}
10817
- */
10818
- this.entitlements = null;
11208
+ /**
11209
+ *
11210
+ * @type {Array.<messages.control.StreamEntitlement>}
11211
+ */
11212
+ this.entitlements = null;
10819
11213
 
10820
- /**
10821
- *
10822
- * @type {Array.<string>}
10823
- */
10824
- this.invalidsymbols = null;
11214
+ /**
11215
+ *
11216
+ * @type {Array.<string>}
11217
+ */
11218
+ this.invalidsymbols = null;
10825
11219
 
10826
- /**
10827
- *
10828
- * @type {Array.<string>}
10829
- */
10830
- this.rejectedsymbols = null;
11220
+ /**
11221
+ *
11222
+ * @type {Array.<string>}
11223
+ */
11224
+ this.rejectedsymbols = null;
10831
11225
  };
10832
11226
  messages.control.SubscribeResponse.prototype = new messages.control.BaseResponse();
10833
11227
 
10834
- /**
10835
- * Creates an un-subscribe response message.
10836
- * @constructor
11228
+ /**
11229
+ * Creates an exchange subscribe response message.
11230
+ * @constructor
11231
+ */
11232
+ messages.control.ExchangeSubscribeResponse = function () {
11233
+ this.init(messages.MessageTypeNames.ctrl.EXCHANGE_RESPONSE);
11234
+ };
11235
+
11236
+ messages.control.ExchangeSubscribeResponse.prototype = new messages.control.BaseResponse();
11237
+
11238
+ /**
11239
+ * Creates an un-subscribe response message.
11240
+ * @constructor
10837
11241
  */
10838
11242
  messages.control.UnsubscribeResponse = function () {
10839
- this.init(messages.MessageTypeNames.ctrl.UNSUBSCRIBE_RESPONSE);
11243
+ this.init(messages.MessageTypeNames.ctrl.UNSUBSCRIBE_RESPONSE);
10840
11244
 
10841
- /**
10842
- *
10843
- * @type {Array.<messages.control.StreamEntitlement>}
10844
- */
10845
- this.unsubscribed = null;
11245
+ /**
11246
+ *
11247
+ * @type {Array.<messages.control.StreamEntitlement>}
11248
+ */
11249
+ this.unsubscribed = null;
10846
11250
  };
10847
11251
  messages.control.UnsubscribeResponse.prototype = new messages.control.BaseResponse();
10848
11252
 
10849
- /**
10850
- * Creates a stream entitlement info.
10851
- * @constructor
11253
+ /**
11254
+ * Creates an exchange unsubscribe response message.
11255
+ * @constructor
11256
+ */
11257
+ messages.control.ExchangeUnsubscribeResponse = function () {
11258
+ this.init(messages.MessageTypeNames.ctrl.EXCHANGE_UNSUBSCRIBE_RESPONSE);
11259
+ };
11260
+
11261
+ messages.control.ExchangeUnsubscribeResponse.prototype = new messages.control.BaseResponse();
11262
+
11263
+ /**
11264
+ * Creates a stream entitlement info.
11265
+ * @constructor
10852
11266
  */
10853
11267
  messages.control.StreamEntitlement = function () {
10854
- /**
10855
- * The symbol the entitlement is for.
10856
- * @type {string}
10857
- */
10858
- this.symbol = null;
11268
+ /**
11269
+ * The symbol the entitlement is for.
11270
+ * @type {string}
11271
+ */
11272
+ this.symbol = null;
10859
11273
 
10860
- /**
10861
- * The market data type the entitlement is for.
10862
- * @type {string}
10863
- * @see messages.control.MarketdataType
10864
- */
10865
- this.marketdatatype = null;
11274
+ /**
11275
+ * The market data type the entitlement is for.
11276
+ * @type {string}
11277
+ * @see messages.control.MarketdataType
11278
+ */
11279
+ this.marketdatatype = null;
10866
11280
 
10867
- /**
10868
- *
10869
- * @type {string}
10870
- * @see messages.control.StreamEntitlementType
10871
- */
10872
- this.entitlement = null;
11281
+ /**
11282
+ *
11283
+ * @type {string}
11284
+ * @see messages.control.StreamEntitlementType
11285
+ */
11286
+ this.entitlement = null;
10873
11287
  };
10874
11288
 
10875
- /**
10876
- * Creates a new connect response message.
10877
- * @constructor
11289
+ /**
11290
+ * Creates a new connect response message.
11291
+ * @constructor
10878
11292
  */
10879
11293
  messages.control.ConnectResponse = function () {
10880
- this.init(messages.MessageTypeNames.ctrl.CONNECT_RESPONSE);
11294
+ this.init(messages.MessageTypeNames.ctrl.CONNECT_RESPONSE);
10881
11295
 
10882
- /**
10883
- * The server version.
10884
- * @type {string}
10885
- */
10886
- this.version = null;
11296
+ /**
11297
+ * The server version.
11298
+ * @type {string}
11299
+ */
11300
+ this.version = null;
10887
11301
 
10888
- /**
10889
- * The flow control check interval.
10890
- * @type {number}
10891
- */
10892
- this.flowControlCheckInterval = null;
11302
+ /**
11303
+ * The flow control check interval.
11304
+ * @type {number}
11305
+ */
11306
+ this.flowControlCheckInterval = null;
10893
11307
 
10894
- /**
10895
- * The server instance connected to.
10896
- * @type {string}
10897
- */
10898
- this.serverInstance = null;
11308
+ /**
11309
+ * The server instance connected to.
11310
+ * @type {string}
11311
+ */
11312
+ this.serverInstance = null;
10899
11313
 
10900
- /**
10901
- * The conflation rate in milliseconds.
10902
- * @type {number}
10903
- */
10904
- this.conflationMs = null;
11314
+ /**
11315
+ * The conflation rate in milliseconds.
11316
+ * @type {number}
11317
+ */
11318
+ this.conflationMs = null;
10905
11319
  };
10906
11320
  messages.control.ConnectResponse.prototype = new messages.control.BaseResponse();
10907
11321
 
10908
- /**
10909
- * Creates a connection response message.
10910
- * @constructor
11322
+ /**
11323
+ * Creates a connection response message.
11324
+ * @constructor
10911
11325
  */
10912
11326
  messages.control.ConnectionClose = function () {
10913
- this.init(messages.MessageTypeNames.ctrl.CONNECTION_CLOSE);
11327
+ this.init(messages.MessageTypeNames.ctrl.CONNECTION_CLOSE);
10914
11328
 
10915
- /**
10916
- * The connection close reason code.
10917
- * @type {number}
10918
- * @see {@link messages.control.ResponseCodes}
10919
- */
10920
- this.code = null;
11329
+ /**
11330
+ * The connection close reason code.
11331
+ * @type {number}
11332
+ * @see {@link messages.control.ResponseCodes}
11333
+ */
11334
+ this.code = null;
10921
11335
 
10922
- /**
10923
- * The connection close reason message.
10924
- * @type {string}
10925
- * @see {@link messages.control.ResponseCodes}
10926
- */
10927
- this.reason = null;
11336
+ /**
11337
+ * The connection close reason message.
11338
+ * @type {string}
11339
+ * @see {@link messages.control.ResponseCodes}
11340
+ */
11341
+ this.reason = null;
10928
11342
  };
10929
11343
  messages.control.ConnectionClose.prototype = new messages.control.CtrlMessage();
10930
11344
 
10931
- /**
10932
- * Creates a slow connection response message.
10933
- * @constructor
11345
+ /**
11346
+ * Creates a slow connection response message.
11347
+ * @constructor
10934
11348
  */
10935
11349
  messages.control.SlowConnection = function () {
10936
- this.init(messages.MessageTypeNames.ctrl.SLOW_CONNECTION);
11350
+ this.init(messages.MessageTypeNames.ctrl.SLOW_CONNECTION);
10937
11351
 
10938
- /**
10939
- * The number of times that the connection has exceeded already.
10940
- * @type {number}
10941
- */
10942
- this.timesExceeded = null;
11352
+ /**
11353
+ * The number of times that the connection has exceeded already.
11354
+ * @type {number}
11355
+ */
11356
+ this.timesExceeded = null;
10943
11357
 
10944
- /**
10945
- * The max number allowed. The connection may close after reaching this number.
10946
- * @type {number}
10947
- */
10948
- this.maxExceed = null;
11358
+ /**
11359
+ * The max number allowed. The connection may close after reaching this number.
11360
+ * @type {number}
11361
+ */
11362
+ this.maxExceed = null;
10949
11363
  };
10950
11364
  messages.control.SlowConnection.prototype = new messages.control.CtrlMessage();
10951
11365
 
10952
- /**
10953
- * Creates a flow control message.
10954
- * @constructor
11366
+ /**
11367
+ * Creates a flow control message.
11368
+ * @constructor
10955
11369
  */
10956
11370
  messages.control.FlowMessage = function () {
10957
- this.init(messages.MessageTypeNames.ctrl.FLOW);
11371
+ this.init(messages.MessageTypeNames.ctrl.FLOW);
10958
11372
 
10959
- /**
10960
- * Last received sequence number.
10961
- * @type {number}
10962
- * @see {@link messages.LongSequence}
10963
- */
10964
- this.sequence = null;
11373
+ /**
11374
+ * Last received sequence number.
11375
+ * @type {number}
11376
+ * @see {@link messages.LongSequence}
11377
+ */
11378
+ this.sequence = null;
10965
11379
  };
10966
11380
  messages.control.FlowMessage.prototype = new messages.control.CtrlMessage();
10967
11381
 
10968
- /**
10969
- * Creates a stats response message.
10970
- * @constructor
11382
+ /**
11383
+ * Creates a stats response message.
11384
+ * @constructor
10971
11385
  */
10972
11386
  messages.control.StatsResponse = function () {
10973
- this.init(messages.MessageTypeNames.ctrl.STATS_RESPONSE);
11387
+ this.init(messages.MessageTypeNames.ctrl.STATS_RESPONSE);
10974
11388
 
10975
- /**
10976
- *
10977
- * @type {number}
10978
- */
10979
- this.numberOfSubscribedSymbolsL1 = null;
10980
- /**
10981
- *
10982
- * @type {number}
10983
- */
10984
- this.numberOfAvailableSymbolsL1 = null;
10985
- /**
10986
- *
10987
- * @type {number}
10988
- */
10989
- this.numberOfSubscribedSymbolsL2 = null;
10990
- /**
10991
- *
10992
- * @type {number}
10993
- */
10994
- this.numberOfAvailableSymbolsL2 = null;
10995
- /**
10996
- *
10997
- * @type {number}
10998
- */
10999
- this.numberOfOpenedConnections = null;
11000
- /**
11001
- *
11002
- * @type {number}
11003
- */
11004
- this.numberOfAvailableConnections = null;
11389
+ /**
11390
+ *
11391
+ * @type {number}
11392
+ */
11393
+ this.numberOfSubscribedSymbolsL1 = null;
11394
+ /**
11395
+ *
11396
+ * @type {number}
11397
+ */
11398
+ this.numberOfAvailableSymbolsL1 = null;
11399
+ /**
11400
+ *
11401
+ * @type {number}
11402
+ */
11403
+ this.numberOfSubscribedSymbolsL2 = null;
11404
+ /**
11405
+ *
11406
+ * @type {number}
11407
+ */
11408
+ this.numberOfAvailableSymbolsL2 = null;
11409
+ /**
11410
+ *
11411
+ * @type {number}
11412
+ */
11413
+ this.numberOfOpenedConnections = null;
11414
+ /**
11415
+ *
11416
+ * @type {number}
11417
+ */
11418
+ this.numberOfAvailableConnections = null;
11419
+ /**
11420
+ *
11421
+ * @type {number}
11422
+ */
11423
+ this.numberOfSubscribedExchanges = null;
11005
11424
  };
11006
11425
  messages.control.StatsResponse.prototype = new messages.control.BaseResponse();
11007
11426
 
11008
- /**
11009
- * Creates a Initial Data Sent response message.
11010
- * @constructor
11427
+ /**
11428
+ * Creates a Initial Data Sent response message.
11429
+ * @constructor
11011
11430
  */
11012
11431
  messages.control.InitialDataSent = function () {
11013
- this.init(messages.MessageTypeNames.ctrl.INITIAL_DATA_SENT);
11432
+ this.init(messages.MessageTypeNames.ctrl.INITIAL_DATA_SENT);
11014
11433
 
11015
- /**
11016
- * The timestamp of message creation.
11017
- * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
11018
- * for connections with QITCH format - {@link JSBI.BigInt}
11019
- */
11020
- this.timestamp = null;
11434
+ /**
11435
+ * The timestamp of message creation.
11436
+ * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
11437
+ * for connections with QITCH format - {@link JSBI.BigInt}
11438
+ */
11439
+ this.timestamp = null;
11021
11440
  };
11022
11441
  messages.control.InitialDataSent.prototype = new messages.control.CtrlMessage();
11023
11442
 
11024
- /**
11025
- * Creates a Resubscribe message.
11026
- * @constructor
11443
+ /**
11444
+ * Creates a Resubscribe message.
11445
+ * @constructor
11027
11446
  */
11028
11447
  messages.control.ResubscribeMessage = function () {
11029
- this.init(messages.MessageTypeNames.ctrl.RESUBSCRIBE_MESSAGE);
11448
+ this.init(messages.MessageTypeNames.ctrl.RESUBSCRIBE_MESSAGE);
11030
11449
 
11031
- /**
11032
- * The timestamp of message creation.
11033
- * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
11034
- * for connections with QITCH format - {@link JSBI.BigInt}
11035
- */
11036
- this.timestamp = null;
11450
+ /**
11451
+ * The timestamp of message creation.
11452
+ * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
11453
+ * for connections with QITCH format - {@link JSBI.BigInt}
11454
+ */
11455
+ this.timestamp = null;
11037
11456
  };
11038
11457
  messages.control.ResubscribeMessage.prototype = new messages.control.CtrlMessage();
11039
11458
 
11040
- /**
11041
- * Stream entitlement types.
11042
- * @enum
11043
- * @readonly
11459
+ /**
11460
+ * Stream entitlement types.
11461
+ * @enum
11462
+ * @readonly
11044
11463
  */
11045
11464
  messages.control.StreamEntitlementType = {
11046
- RT: "Realtime",
11047
- RTN: "Realtime NASDAQ",
11048
- RTB: "Realtime BATS",
11049
- DL: "Delayed",
11050
- NA: "Not Entitled"
11465
+ RT: "Realtime",
11466
+ RTO: "Realtime CBOE ONE",
11467
+ RTN: "Realtime NASDAQ",
11468
+ RTB: "Realtime BATS",
11469
+ DL: "Delayed",
11470
+ DLO: "Delayed CBOE One",
11471
+ DLN: "Delayed NASDAQ",
11472
+ NA: "Not Entitled"
11051
11473
  };
11052
11474
 
11053
- /**
11054
- * Enumeration for subscription actions.
11055
- * @enum
11056
- * @readonly
11475
+ /**
11476
+ * Enumeration for subscription actions.
11477
+ * @enum
11478
+ * @readonly
11057
11479
  */
11058
11480
  messages.control.Action = {
11059
- SUBSCRIBE: "SUBSCRIBE",
11060
- UNSUBSCRIBE: "UNSUBSCRIBE"
11481
+ SUBSCRIBE: "SUBSCRIBE",
11482
+ UNSUBSCRIBE: "UNSUBSCRIBE"
11061
11483
  };
11062
11484
 
11063
- /**
11064
- * Enumeration for streaming message types.
11065
- * @enum
11066
- * @readonly
11485
+ /**
11486
+ * Enumeration for streaming message types.
11487
+ * @enum
11488
+ * @readonly
11067
11489
  */
11068
11490
  messages.control.MarketdataType = {
11069
- QUOTE: "QUOTE",
11070
- PRICEDATA: "PRICEDATA",
11071
- TRADE: "TRADE",
11072
- MMQUOTE: "MMQUOTE",
11073
- ORDERBOOK: "ORDERBOOK",
11074
- INTERVAL: "INTERVAL",
11075
- NETHOUSEPOSITION: "NETHOUSEPOSITION",
11076
- LASTSALE: "LASTSALE",
11077
- BOOKORDER: "BOOKORDER",
11078
- BOOKDELETE: "BOOKDELETE",
11079
- PURGEBOOK: "PURGEBOOK",
11080
- LIMITUPLIMITDOWN: "LIMITUPLIMITDOWN",
11081
- IVGREEKS: "IVGREEKS",
11082
- IMBALANCESTATUS: "IMBALANCESTATUS"
11491
+ QUOTE: "QUOTE",
11492
+ PRICEDATA: "PRICEDATA",
11493
+ TRADE: "TRADE",
11494
+ MMQUOTE: "MMQUOTE",
11495
+ ORDERBOOK: "ORDERBOOK",
11496
+ INTERVAL: "INTERVAL",
11497
+ NETHOUSEPOSITION: "NETHOUSEPOSITION",
11498
+ LASTSALE: "LASTSALE",
11499
+ BOOKORDER: "BOOKORDER",
11500
+ BOOKDELETE: "BOOKDELETE",
11501
+ PURGEBOOK: "PURGEBOOK",
11502
+ LIMITUPLIMITDOWN: "LIMITUPLIMITDOWN",
11503
+ IVGREEKS: "IVGREEKS",
11504
+ IMBALANCESTATUS: "IMBALANCESTATUS"
11083
11505
  };
11084
11506
 
11085
- /**
11086
- * Response codes and reasons.
11087
- * @enum
11088
- * @readonly
11507
+ /**
11508
+ * Response codes and reasons.
11509
+ * @enum
11510
+ * @readonly
11089
11511
  */
11090
11512
  messages.control.ResponseCodes = {
11091
- OK_CODE: 200,
11092
- OK_REASON: "OK",
11513
+ OK_CODE: 200,
11514
+ OK_REASON: "OK",
11093
11515
 
11094
- BADREQUEST_CODE: 400,
11095
- BADREQUEST_REASON: "Bad Request",
11516
+ BADREQUEST_CODE: 400,
11517
+ BADREQUEST_REASON: "Bad Request",
11096
11518
 
11097
- UNAUTHORIZED_CODE: 401,
11098
- UNAUTHORIZED_REASON: "Unauthorized",
11519
+ UNAUTHORIZED_CODE: 401,
11520
+ UNAUTHORIZED_REASON: "Unauthorized",
11099
11521
 
11100
- TOOSLOW_CODE: 450,
11101
- TOOSLOW_REASON: "Too slow",
11522
+ TOOSLOW_CODE: 450,
11523
+ TOOSLOW_REASON: "Too slow",
11102
11524
 
11103
- DATA_SOURCE_RESET: 454,
11104
- DATA_SOURCE_RESET_REASON: "Data Source Was Reset",
11525
+ DATA_SOURCE_RESET: 454,
11526
+ DATA_SOURCE_RESET_REASON: "Data Source Was Reset",
11105
11527
 
11106
- CONNECTION_LIMIT_EXCEEDED_CODE: 452,
11107
- CONNECTION_LIMIT_EXCEEDED_REASON: "Connection Limit Exceeded",
11528
+ CONNECTION_LIMIT_EXCEEDED_CODE: 452,
11529
+ CONNECTION_LIMIT_EXCEEDED_REASON: "Connection Limit Exceeded",
11108
11530
 
11109
- INTERNALSERVERERROR_CODE: 500,
11110
- INTERNALSERVERERROR_REASON: "Internal Server Error"
11531
+ INTERNALSERVERERROR_CODE: 500,
11532
+ INTERNALSERVERERROR_REASON: "Internal Server Error"
11111
11533
  };
11112
11534
 
11113
11535
  /* ****************************************************************************************************************** */
11114
11536
 
11115
- /**
11116
- * Base type for all market data exports.
11117
- * @constructor
11118
- * @abstract
11537
+ /**
11538
+ * Base type for all market data exports.
11539
+ * @constructor
11540
+ * @abstract
11119
11541
  */
11120
11542
  messages.market.DataMessage = function () {
11121
- /**
11122
- * The message type.
11123
- * @type {number}
11124
- * @see messages.MessageTypeNames_0.data
11125
- */
11126
- this.messageType = null;
11543
+ /**
11544
+ * The message type.
11545
+ * @type {number}
11546
+ * @see messages.MessageTypeNames_0.data
11547
+ */
11548
+ this.messageType = null;
11127
11549
  };
11128
11550
  messages.market.DataMessage.prototype = new messages.Message();
11129
11551
 
11130
- /**
11131
- *
11132
- * @constructor
11552
+ /**
11553
+ *
11554
+ * @constructor
11133
11555
  */
11134
11556
  messages.market.Quote = function () {
11135
- this.init(messages.MessageTypeNames.data.QUOTE);
11557
+ this.init(messages.MessageTypeNames.data.QUOTE);
11136
11558
 
11137
- // TODO properties
11559
+ // TODO properties
11138
11560
  };
11139
11561
  messages.market.Quote.prototype = new messages.market.DataMessage();
11140
11562
 
11141
- /**
11142
- *
11143
- * @constructor
11563
+ /**
11564
+ *
11565
+ * @constructor
11144
11566
  */
11145
11567
  messages.market.PriceData = function () {
11146
- this.init(messages.MessageTypeNames.data.PRICEDATA);
11568
+ this.init(messages.MessageTypeNames.data.PRICEDATA);
11147
11569
 
11148
- // TODO properties
11570
+ // TODO properties
11149
11571
  };
11150
11572
  messages.market.PriceData.prototype = new messages.market.DataMessage();
11151
11573
 
11152
- /**
11153
- *
11154
- * @constructor
11574
+ /**
11575
+ *
11576
+ * @constructor
11155
11577
  */
11156
11578
  messages.market.Trade = function () {
11157
- this.init(messages.MessageTypeNames.data.TRADE);
11579
+ this.init(messages.MessageTypeNames.data.TRADE);
11158
11580
 
11159
- // TODO properties
11581
+ // TODO properties
11160
11582
  };
11161
11583
  messages.market.Trade.prototype = new messages.market.DataMessage();
11162
11584
 
11163
- /**
11164
- *
11165
- * @constructor
11585
+ /**
11586
+ *
11587
+ * @constructor
11166
11588
  */
11167
11589
  messages.market.MMQuote = function () {
11168
- this.init(messages.MessageTypeNames.data.MMQUOTE);
11590
+ this.init(messages.MessageTypeNames.data.MMQUOTE);
11169
11591
 
11170
- // TODO properties
11592
+ // TODO properties
11171
11593
  };
11172
11594
  messages.market.MMQuote.prototype = new messages.market.DataMessage();
11173
11595
 
11174
- /**
11175
- *
11176
- * @constructor
11596
+ /**
11597
+ *
11598
+ * @constructor
11177
11599
  */
11178
11600
  messages.market.PurgeBook = function () {
11179
- this.init(messages.MessageTypeNames.data.PURGEBOOK);
11601
+ this.init(messages.MessageTypeNames.data.PURGEBOOK);
11180
11602
 
11181
- // TODO properties
11603
+ // TODO properties
11182
11604
  };
11183
11605
  messages.market.PurgeBook.prototype = new messages.market.DataMessage();
11184
11606
 
11185
- /**
11186
- *
11187
- * @constructor
11607
+ /**
11608
+ *
11609
+ * @constructor
11188
11610
  */
11189
11611
  messages.market.BookOrder = function () {
11190
- this.init(messages.MessageTypeNames.data.BOOKORDER);
11612
+ this.init(messages.MessageTypeNames.data.BOOKORDER);
11191
11613
 
11192
- // TODO properties
11614
+ // TODO properties
11193
11615
  };
11194
11616
  messages.market.BookOrder.prototype = new messages.market.DataMessage();
11195
11617
 
11196
- /**
11197
- *
11198
- * @constructor
11618
+ /**
11619
+ *
11620
+ * @constructor
11199
11621
  */
11200
11622
  messages.market.BookDelete = function () {
11201
- this.init(messages.MessageTypeNames.data.BOOKDELETE);
11623
+ this.init(messages.MessageTypeNames.data.BOOKDELETE);
11202
11624
 
11203
- // TODO properties
11625
+ // TODO properties
11204
11626
  };
11205
11627
  messages.market.BookDelete.prototype = new messages.market.DataMessage();
11206
11628
 
11207
- /**
11208
- *
11209
- * @constructor
11629
+ /**
11630
+ *
11631
+ * @constructor
11210
11632
  */
11211
11633
  messages.market.Interval = function () {
11212
- this.init(messages.MessageTypeNames.data.INTERVAL);
11634
+ this.init(messages.MessageTypeNames.data.INTERVAL);
11213
11635
 
11214
- // TODO properties
11636
+ // TODO properties
11215
11637
  };
11216
11638
  messages.market.Interval.prototype = new messages.market.DataMessage();
11217
11639
 
11218
- /**
11219
- *
11220
- * @constructor
11640
+ /**
11641
+ *
11642
+ * @constructor
11221
11643
  */
11222
11644
  messages.market.NethousePosition = function () {
11223
- this.init(messages.MessageTypeNames.data.NETHOUSEPOSITION);
11645
+ this.init(messages.MessageTypeNames.data.NETHOUSEPOSITION);
11224
11646
 
11225
- // TODO properties
11647
+ // TODO properties
11226
11648
  };
11227
11649
  messages.market.NethousePosition.prototype = new messages.market.DataMessage();
11228
11650
 
11229
- /**
11230
- *
11231
- * @constructor
11651
+ /**
11652
+ *
11653
+ * @constructor
11232
11654
  */
11233
11655
  messages.market.SymbolInfo = function () {
11234
- this.init(messages.MessageTypeNames.data.SYMBOLINFO);
11656
+ this.init(messages.MessageTypeNames.data.SYMBOLINFO);
11235
11657
 
11236
- // TODO properties
11658
+ // TODO properties
11237
11659
  };
11238
11660
  messages.market.SymbolInfo.prototype = new messages.market.DataMessage();
11239
11661
 
11240
- /**
11241
- *
11242
- * @constructor
11662
+ /**
11663
+ *
11664
+ * @constructor
11243
11665
  */
11244
11666
  messages.market.SymbolStatus = function () {
11245
- this.init(messages.MessageTypeNames.data.SYMBOLSTATUS);
11667
+ this.init(messages.MessageTypeNames.data.SYMBOLSTATUS);
11246
11668
 
11247
- // TODO properties
11669
+ // TODO properties
11248
11670
  };
11249
11671
  messages.market.SymbolStatus.prototype = new messages.market.DataMessage();
11250
11672
 
11251
- /**
11252
- *
11253
- * @constructor
11673
+ /**
11674
+ *
11675
+ * @constructor
11254
11676
  */
11255
11677
  messages.market.DerivativeInfo = function () {
11256
- this.init(messages.MessageTypeNames.data.DERIVATIVEINFO);
11678
+ this.init(messages.MessageTypeNames.data.DERIVATIVEINFO);
11257
11679
 
11258
- // TODO properties
11680
+ // TODO properties
11259
11681
  };
11260
11682
  messages.market.DerivativeInfo.prototype = new messages.market.DataMessage();
11261
11683
 
11262
- /**
11263
- *
11264
- * @constructor
11684
+ /**
11685
+ *
11686
+ * @constructor
11265
11687
  */
11266
11688
  messages.market.IVGreeks = function () {
11267
- this.init(messages.MessageTypeNames.data.IVGREEKS);
11689
+ this.init(messages.MessageTypeNames.data.IVGREEKS);
11268
11690
 
11269
- // TODO properties
11691
+ // TODO properties
11270
11692
  };
11271
11693
  messages.market.IVGreeks.prototype = new messages.market.DataMessage();
11272
11694
 
11273
- /**
11274
- *
11275
- * @constructor
11695
+ /**
11696
+ *
11697
+ * @constructor
11276
11698
  */
11277
11699
  messages.market.LastSale = function () {
11278
- this.init(messages.MessageTypeNames.data.LASTSALE);
11700
+ this.init(messages.MessageTypeNames.data.LASTSALE);
11279
11701
 
11280
- // TODO properties
11702
+ // TODO properties
11281
11703
  };
11282
11704
  messages.market.LastSale.prototype = new messages.market.DataMessage();
11283
11705
 
11284
- /**
11285
- *
11286
- * @constructor
11706
+ /**
11707
+ *
11708
+ * @constructor
11287
11709
  */
11288
11710
  messages.market.LimitUpLimitDown = function () {
11289
- this.init(messages.MessageTypeNames.data.LIMITUPLIMITDOWN);
11711
+ this.init(messages.MessageTypeNames.data.LIMITUPLIMITDOWN);
11290
11712
 
11291
- // TODO properties
11713
+ // TODO properties
11292
11714
  };
11293
11715
  messages.market.LimitUpLimitDown.prototype = new messages.market.DataMessage();
11294
11716
 
11295
- /**
11296
- *
11297
- * @constructor
11717
+ /**
11718
+ *
11719
+ * @constructor
11298
11720
  */
11299
11721
  messages.market.ImbalanceStatus = function () {
11300
- this.init(messages.MessageTypeNames.data.IMBALANCESTATUS);
11722
+ this.init(messages.MessageTypeNames.data.IMBALANCESTATUS);
11301
11723
 
11302
- // TODO properties
11724
+ // TODO properties
11303
11725
  };
11304
11726
  messages.market.ImbalanceStatus.prototype = new messages.market.DataMessage();
11305
11727
 
11306
- /**
11307
- * Enumeration for instrument types.
11308
- * @enum
11309
- * @readonly
11728
+ messages.market.Alert = function () {
11729
+ this.init(messages.MessageTypeNames.data.ALERT);
11730
+
11731
+ // TODO properties
11732
+ };
11733
+ messages.market.Alert.prototype = new messages.market.DataMessage();
11734
+
11735
+ /**
11736
+ * Enumeration for instrument types.
11737
+ * @enum
11738
+ * @readonly
11310
11739
  */
11311
11740
  messages.market.InstrumentType = {
11312
- 1: "CASH",
11313
- 2: "BOND",
11314
- 3: "COMPOSITE",
11315
- 4: "FUTURE",
11316
- 5: "FUTURE_OPTION",
11317
- 6: "FOREX",
11318
- 7: "INDEX",
11319
- 8: "MUTUAL_FUND",
11320
- 9: "MONEY_MARKET_FUND",
11321
- 10: "MARKET_STAT",
11322
- 11: "EQUITY",
11323
- 12: "EQUITY_OPTION",
11324
- 13: "GOVT_BOND",
11325
- 14: "MUNI_BOND",
11326
- 15: "CORP_BOND",
11327
- 16: "ETF",
11328
- 17: "FUTURE_SPREAD",
11329
- 97: "OPTION_ROOT",
11330
- 98: "UNKNOWN",
11331
- 99: "RATE"
11741
+ 1: "CASH",
11742
+ 2: "BOND",
11743
+ 3: "COMPOSITE",
11744
+ 4: "FUTURE",
11745
+ 5: "FUTURE_OPTION",
11746
+ 6: "FOREX",
11747
+ 7: "INDEX",
11748
+ 8: "MUTUAL_FUND",
11749
+ 9: "MONEY_MARKET_FUND",
11750
+ 10: "MARKET_STAT",
11751
+ 11: "EQUITY",
11752
+ 12: "EQUITY_OPTION",
11753
+ 13: "GOVT_BOND",
11754
+ 14: "MUNI_BOND",
11755
+ 15: "CORP_BOND",
11756
+ 16: "ETF",
11757
+ 17: "FUTURE_SPREAD",
11758
+ 97: "OPTION_ROOT",
11759
+ 98: "UNKNOWN",
11760
+ 99: "RATE"
11332
11761
  };
11333
11762
 
11334
- /**
11335
- * Enumeration vor order side.
11336
- * @enum
11337
- * @readonly
11763
+ /**
11764
+ * Enumeration vor order side.
11765
+ * @enum
11766
+ * @readonly
11338
11767
  */
11339
11768
  messages.market.OrderSide = {
11340
- BUYSIDE: 'B',
11341
- SELLSIDE: 'S'
11769
+ BUYSIDE: 'B',
11770
+ SELLSIDE: 'S'
11342
11771
  };
11343
11772
 
11344
- /**
11345
- * Enumeration for imbalance types.
11346
- * @enum
11347
- * @readonly
11773
+ /**
11774
+ * Enumeration for imbalance types.
11775
+ * @enum
11776
+ * @readonly
11348
11777
  */
11349
11778
  messages.market.ImbalanceType = {
11350
- 0: "NONE",
11351
- 1: "MARKET",
11352
- 2: "MOC",
11353
- 3: "REGULATORY_IMBALANCE",
11354
- 4: "OPENING_IMBALANCE",
11355
- 5: "CLOSING_IMBALANCE",
11356
- 6: "IPO_IMBALANCE",
11357
- 7: "HALT_IMBALANCE",
11358
- 8: "EQUILIBRIUM"
11779
+ 0: "NONE",
11780
+ 1: "MARKET",
11781
+ 2: "MOC",
11782
+ 3: "REGULATORY_IMBALANCE",
11783
+ 4: "OPENING_IMBALANCE",
11784
+ 5: "CLOSING_IMBALANCE",
11785
+ 6: "IPO_IMBALANCE",
11786
+ 7: "HALT_IMBALANCE",
11787
+ 8: "EQUILIBRIUM"
11359
11788
  };
11360
11789
 
11361
- /**
11362
- * Enumeration for book order change types.
11363
- * @enum
11364
- * @readonly
11790
+ /**
11791
+ * Enumeration for book order change types.
11792
+ * @enum
11793
+ * @readonly
11365
11794
  */
11366
11795
  messages.market.OrderChangeType = {
11367
- 'A': "ADD",
11368
- 'M': "MODIFY",
11369
- 'C': "CANCEL",
11370
- 'E': "EXECUTE"
11796
+ 'A': "ADD",
11797
+ 'M': "MODIFY",
11798
+ 'C': "CANCEL",
11799
+ 'E': "EXECUTE"
11371
11800
  };
11372
11801
  }).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/streamer-api.js","/lib")
11373
11802
  },{"_process":114,"buffer":104,"timers":135}],93:[function(require,module,exports){
@@ -11646,8 +12075,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
11646
12075
 
11647
12076
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11648
12077
 
11649
- /*
11650
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
12078
+ /*
12079
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
11651
12080
  */
11652
12081
  var QitchTransmitter = function () {
11653
12082
  function QitchTransmitter(socket, encoder, log) {