@quotemedia.com/streamer 2.5.0 → 2.18.1

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__';
@@ -5143,6 +5347,8 @@ fmt.Formatter.prototype._fmtivgreeks = function (val) {
5143
5347
  var s = new fmt.StringBuilder();
5144
5348
  s.append('IVG');
5145
5349
  s.sep();
5350
+ s.datetime(val.lastCalculation);
5351
+ s.sep();
5146
5352
  s.append(val.symbol);
5147
5353
  s.sep();
5148
5354
  s.append(val.locateCode);
@@ -5159,11 +5365,17 @@ fmt.Formatter.prototype._fmtivgreeks = function (val) {
5159
5365
  s.sep();
5160
5366
  s.append(val.midIV);
5161
5367
  s.sep();
5162
- s.append(val.midIVChange);
5368
+ s.append(val.midIVChange.toFixed(5));
5163
5369
  s.sep();
5164
5370
  s.append(val.bidIV);
5165
5371
  s.sep();
5166
5372
  s.append(val.askIV);
5373
+ s.sep();
5374
+ s.append(val.mark);
5375
+ s.sep();
5376
+ s.append(val.intrinsicValue);
5377
+ s.sep();
5378
+ s.append(val.extrinsicValue);
5167
5379
  return s.toString();
5168
5380
  };
5169
5381
 
@@ -5184,6 +5396,14 @@ fmt.Formatter.prototype._fmtimbalancestatus = function (val) {
5184
5396
  s.append(val.size);
5185
5397
  s.sep();
5186
5398
  s.append(val.side);
5399
+ s.sep();
5400
+ s.append(val.pairedVolume);
5401
+ s.sep();
5402
+ s.append(val.nearIndicativePrice);
5403
+ s.sep();
5404
+ s.append(val.farIndicativePrice);
5405
+ s.sep();
5406
+ s.append(val.priceVariation);
5187
5407
  return s.toString();
5188
5408
  };
5189
5409
 
@@ -5395,6 +5615,10 @@ fmt.Formatter.prototype._fmtsymbolinfo = function (val) {
5395
5615
  s.append(val.haltIndicator);
5396
5616
  s.sep();
5397
5617
  s.append(val.regSHOStatus);
5618
+ s.sep();
5619
+ s.append(val.pqe);
5620
+ s.sep();
5621
+ s.append(val.caveatEmptor);
5398
5622
  return s.toString();
5399
5623
  };
5400
5624
 
@@ -5411,6 +5635,14 @@ fmt.Formatter.prototype._fmtsymbolstatus = function (val) {
5411
5635
  s.append(val.haltIndicator);
5412
5636
  s.sep();
5413
5637
  s.append(val.regSHOStatus);
5638
+ s.sep();
5639
+ s.append(val.closingCalculatedPrice);
5640
+ s.sep();
5641
+ s.datetime(val.effectiveTime);
5642
+ s.sep();
5643
+ s.datetime(val.openingTime);
5644
+ s.sep();
5645
+ s.append(val.note);
5414
5646
  return s.toString();
5415
5647
  };
5416
5648
 
@@ -5433,6 +5665,27 @@ fmt.Formatter.prototype._fmtderivativeinfo = function (val) {
5433
5665
  s.append(val.contractSize);
5434
5666
  s.sep();
5435
5667
  s.append(val.callPutIndicator);
5668
+ s.sep();
5669
+ s.append(val.minTickSize);
5670
+ return s.toString();
5671
+ };
5672
+
5673
+ fmt.Formatter.prototype._fmtalert = function (val) {
5674
+ var s = new fmt.StringBuilder();
5675
+ s.append('A');
5676
+ s.sep();
5677
+ s.datetime(val.timestamp);
5678
+ s.sep();
5679
+ s.append(val.symbol);
5680
+ s.sep();
5681
+ s.append(val.locateCode);
5682
+ s.sep();
5683
+ s.append(val.instrumentType);
5684
+ s.sep();
5685
+ s.append(val.alertId);
5686
+ s.sep();
5687
+ s.append(val.triggerValue);
5688
+
5436
5689
  return s.toString();
5437
5690
  };
5438
5691
 
@@ -5451,6 +5704,13 @@ fmt.Formatter.prototype._fmtsubscribe = function (val) {
5451
5704
  return s.toString();
5452
5705
  };
5453
5706
 
5707
+ fmt.Formatter.prototype._fmtexchangesubscribe = function (val) {
5708
+ var s = new fmt.StringBuilder();
5709
+ s.append('EXCHANGE SUBSCRIBE');
5710
+ // TODO
5711
+ return s.toString();
5712
+ };
5713
+
5454
5714
  fmt.Formatter.prototype._fmtstats = function (val) {
5455
5715
  var s = new fmt.StringBuilder();
5456
5716
  s.append('STATS');
@@ -5466,6 +5726,15 @@ fmt.Formatter.prototype._fmtsubscriberesponse = function (val) {
5466
5726
  return s.toString();
5467
5727
  };
5468
5728
 
5729
+ fmt.Formatter.prototype._fmtexchangesubscriberesponse = function (val) {
5730
+ var s = new fmt.StringBuilder();
5731
+ s.append('EXCHANGE SUBSCRIBED');
5732
+ s.sep();
5733
+ this.__baseresponse(val, s);
5734
+ // TODO
5735
+ return s.toString();
5736
+ };
5737
+
5469
5738
  fmt.Formatter.prototype._fmtunsubscriberesponse = function (val) {
5470
5739
  var s = new fmt.StringBuilder();
5471
5740
  s.append('UN-SUBSCRIBED');
@@ -5475,6 +5744,15 @@ fmt.Formatter.prototype._fmtunsubscriberesponse = function (val) {
5475
5744
  return s.toString();
5476
5745
  };
5477
5746
 
5747
+ fmt.Formatter.prototype._fmtexchangeunsubscriberesponse = function (val) {
5748
+ var s = new fmt.StringBuilder();
5749
+ s.append('EXCHANGE UNSUBSCRIBED');
5750
+ s.sep();
5751
+ this.__baseresponse(val, s);
5752
+ // TODO
5753
+ return s.toString();
5754
+ };
5755
+
5478
5756
  fmt.Formatter.prototype._fmtconnectresponse = function (val) {
5479
5757
  var s = new fmt.StringBuilder();
5480
5758
  s.append('CONNECT');
@@ -5538,6 +5816,9 @@ fmt.Formatter.prototype._fmtstatsresponse = function (val) {
5538
5816
  s.sep();
5539
5817
  s.append('number of open connections: ');
5540
5818
  s.append(val.numberOfOpenedConnections);
5819
+ s.sep();
5820
+ s.append('number of subscribed exchanges: ');
5821
+ s.append(val.numberOfSubscribedExchanges);
5541
5822
  return s.toString();
5542
5823
  };
5543
5824
 
@@ -5573,9 +5854,9 @@ fmt.Formatter.prototype.__baseresponse = function (val, s) {
5573
5854
  s.append(val.reason);
5574
5855
  };
5575
5856
 
5576
- /**
5577
- * Create a new sting builder.
5578
- * @constructor
5857
+ /**
5858
+ * Create a new sting builder.
5859
+ * @constructor
5579
5860
  */
5580
5861
  fmt.StringBuilder = function () {
5581
5862
  this._str = '';
@@ -5810,16 +6091,16 @@ function asLogger(logger) {
5810
6091
  exports.__esModule = true;
5811
6092
  /* @see http://usejsdoc.org */
5812
6093
 
5813
- /**
5814
- * Streamer api namespace.
5815
- * @namespace
6094
+ /**
6095
+ * Streamer api namespace.
6096
+ * @namespace
5816
6097
  */
5817
6098
 
5818
6099
  /* ****************************************************************************************************************** */
5819
6100
 
5820
- /**
5821
- * Supported encodings.
5822
- * @enum
6101
+ /**
6102
+ * Supported encodings.
6103
+ * @enum
5823
6104
  */
5824
6105
  var Encodings = exports.Encodings = {
5825
6106
  UNDEFINED: "undefined",
@@ -5832,9 +6113,9 @@ var Encodings = exports.Encodings = {
5832
6113
  BASE64_CHAR: "B"
5833
6114
  };
5834
6115
 
5835
- /**
5836
- * Supported mime types.
5837
- * @enum
6116
+ /**
6117
+ * Supported mime types.
6118
+ * @enum
5838
6119
  */
5839
6120
  var MimeTypes = exports.MimeTypes = {
5840
6121
  UNDEFINED: "undefined",
@@ -5850,12 +6131,12 @@ var MimeTypes = exports.MimeTypes = {
5850
6131
  QITCH_CHAR: "I"
5851
6132
  };
5852
6133
 
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
6134
+ /**
6135
+ * Returns the with '0' left padded string representation of the number.
6136
+ * @param num {number} the number to create string for
6137
+ * @param len {number} the target length of the string
6138
+ * @return {string} the with '0' left padded string
6139
+ * @throws Will throw an error if number doesn't fit within target length
5859
6140
  */
5860
6141
  var lpad = exports.lpad = function lpad(num, len) {
5861
6142
  var _numstr = num.toString();
@@ -6181,13 +6462,13 @@ var BIG_INT_FORTY = _jsbi2["default"].BigInt(40);
6181
6462
  var BIG_INT_FORTY_EIGHT = _jsbi2["default"].BigInt(48);
6182
6463
  var BIG_INT_FIFTY_SIX = _jsbi2["default"].BigInt(56);
6183
6464
 
6184
- /*
6185
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
6465
+ /*
6466
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
6186
6467
  */
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).
6468
+ /**
6469
+ * Translates bytes into numbers and vice versa.
6470
+ * Use multiplication instead of shifts because in javascript shifts are slower than multiplication
6471
+ * (under the hood shifts call ToInt32 which is slower than ToNumber in multiplication).
6191
6472
  */
6192
6473
 
6193
6474
  var Bytes = function () {
@@ -6201,11 +6482,11 @@ var Bytes = function () {
6201
6482
  return dst;
6202
6483
  };
6203
6484
 
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
6485
+ /**
6486
+ * Gets numeric value that is in range of short (Int16) from byte array
6487
+ * @param src The source array
6488
+ * @param offset The offset
6489
+ * @returns {number} Resulting short value
6209
6490
  */
6210
6491
 
6211
6492
 
@@ -6222,11 +6503,11 @@ var Bytes = function () {
6222
6503
  return dst;
6223
6504
  };
6224
6505
 
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
6506
+ /**
6507
+ * Gets numeric value that is in range of integer (Int32) from byte array
6508
+ * @param src The source array
6509
+ * @param offset The offset
6510
+ * @returns {number} Resulting int value
6230
6511
  */
6231
6512
 
6232
6513
 
@@ -6237,11 +6518,11 @@ var Bytes = function () {
6237
6518
  src[offset + 3] & 0xff;
6238
6519
  };
6239
6520
 
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.
6521
+ /**
6522
+ * Gets numeric value that is in range of long (Int64) from byte array.
6523
+ * @param src The source array
6524
+ * @param offset The offset
6525
+ * @returns {JSBI} Resulting string representation of long.
6245
6526
  */
6246
6527
 
6247
6528
 
@@ -6283,8 +6564,8 @@ var UShort = function () {
6283
6564
  return UShort;
6284
6565
  }();
6285
6566
 
6286
- /**
6287
- * Length in bytes
6567
+ /**
6568
+ * Length in bytes
6288
6569
  */
6289
6570
 
6290
6571
 
@@ -6314,8 +6595,8 @@ var UByte = function () {
6314
6595
  return UByte;
6315
6596
  }();
6316
6597
 
6317
- /**
6318
- * Length in bytes
6598
+ /**
6599
+ * Length in bytes
6319
6600
  */
6320
6601
 
6321
6602
 
@@ -6345,8 +6626,8 @@ var UInt = function () {
6345
6626
  return UInt;
6346
6627
  }();
6347
6628
 
6348
- /**
6349
- * Length in bytes
6629
+ /**
6630
+ * Length in bytes
6350
6631
  */
6351
6632
 
6352
6633
 
@@ -6454,6 +6735,12 @@ var EnumValueTranslator = function () {
6454
6735
  return "RTB";
6455
6736
  case 4:
6456
6737
  return "DL";
6738
+ case 6:
6739
+ return "RTO";
6740
+ case 7:
6741
+ return "DLO";
6742
+ case 8:
6743
+ return "DLN";
6457
6744
  default:
6458
6745
  return "NA";
6459
6746
  }
@@ -6586,24 +6873,24 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
6586
6873
 
6587
6874
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6588
6875
 
6589
- /*
6590
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
6876
+ /*
6877
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
6591
6878
  */
6592
6879
  var Qitch = function () {
6593
6880
  function Qitch() {
6594
6881
  _classCallCheck(this, Qitch);
6595
6882
  }
6596
6883
 
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.
6884
+ /**
6885
+ * Copies an array from the specified source array, beginning at sourceIndex,
6886
+ * to the specified position of the destination array.
6887
+ * The number of components copied is equal to the length argument. The elements are copied
6888
+ * into a destination array starting from destinationIndex.
6889
+ * @param sourceArray The source array
6890
+ * @param sourceIndex The starting position in the source array.
6891
+ * @param destinationArray The destination array
6892
+ * @param destinationIndex The starting position in the destination array.
6893
+ * @param length The number of array elements to be copied.
6607
6894
  */
6608
6895
  Qitch.copyArray = function copyArray(sourceArray, sourceIndex, destinationArray, destinationIndex, length) {
6609
6896
  if (length === 0) {
@@ -6630,12 +6917,12 @@ var Qitch = function () {
6630
6917
  }
6631
6918
  };
6632
6919
 
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}
6920
+ /**
6921
+ * Gets boolean value from source byte array at specified position.
6922
+ * @param src The source array.
6923
+ * @param offset The offset.
6924
+ * @returns {boolean} Returns obtained value.
6925
+ * @throws Exception in case if src is not {@link Int8Array}
6639
6926
  */
6640
6927
 
6641
6928
 
@@ -6646,13 +6933,13 @@ var Qitch = function () {
6646
6933
  throw "Invalid source. Expected: Int8Array";
6647
6934
  };
6648
6935
 
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}
6936
+ /**
6937
+ * Puts boolean value into destination array.
6938
+ * @param dst The destination array
6939
+ * @param offset The offset.
6940
+ * @param val Boolean value.
6941
+ * @returns {Int8Array} destination array.
6942
+ * @throws Exception in case if dst is not {@link Int8Array}
6656
6943
  */
6657
6944
 
6658
6945
 
@@ -6664,13 +6951,13 @@ var Qitch = function () {
6664
6951
  throw "Invalid destination. Expected: Int8Array";
6665
6952
  };
6666
6953
 
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}
6954
+ /**
6955
+ * Puts byte value into destination array.
6956
+ * @param dst The destination array
6957
+ * @param offset The offset.
6958
+ * @param val Byte value.
6959
+ * @returns {Int8Array} destination array.
6960
+ * @throws Exception in case if dst is not {@link Int8Array}
6674
6961
  */
6675
6962
 
6676
6963
 
@@ -6682,12 +6969,12 @@ var Qitch = function () {
6682
6969
  throw "Invalid destination. Expected: Int8Array";
6683
6970
  };
6684
6971
 
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}
6972
+ /**
6973
+ * Gets integer (int32) value from source byte array at specified position.
6974
+ * @param src The source array.
6975
+ * @param offset The offset.
6976
+ * @returns {number} Returns obtained value.
6977
+ * @throws Exception in case if src is not {@link Int8Array}
6691
6978
  */
6692
6979
 
6693
6980
 
@@ -6698,13 +6985,13 @@ var Qitch = function () {
6698
6985
  throw "Invalid source. Expected: Int8Array";
6699
6986
  };
6700
6987
 
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}
6988
+ /**
6989
+ * Sets integer (int32) value to destination array
6990
+ * @param dst destination array
6991
+ * @param offset offset
6992
+ * @param val integer value
6993
+ * @returns {Int8Array} destination array.
6994
+ * @throws Exception in case if dst is not {@link Int8Array}
6708
6995
  */
6709
6996
 
6710
6997
 
@@ -6715,12 +7002,12 @@ var Qitch = function () {
6715
7002
  throw "Invalid destination. Expected: Int8Array";
6716
7003
  };
6717
7004
 
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}
7005
+ /**
7006
+ * Gets unsigned integer (uint32) value from source byte array at specified position.
7007
+ * @param src The source array.
7008
+ * @param offset The offset.
7009
+ * @returns {number} Returns obtained value.
7010
+ * @throws Exception in case if src is not {@link Int8Array}
6724
7011
  */
6725
7012
 
6726
7013
 
@@ -6731,13 +7018,13 @@ var Qitch = function () {
6731
7018
  throw "Invalid source. Expected: Int8Array";
6732
7019
  };
6733
7020
 
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}
7021
+ /**
7022
+ * Sets unsigned integer (uint32) value to destination array
7023
+ * @param dst destination array
7024
+ * @param offset offset
7025
+ * @param val unsigned integer value
7026
+ * @returns {Int8Array} destination array.
7027
+ * @throws Exception in case if dst is not {@link Int8Array}
6741
7028
  */
6742
7029
 
6743
7030
 
@@ -6748,13 +7035,13 @@ var Qitch = function () {
6748
7035
  throw "Invalid destination. Expected: Int8Array";
6749
7036
  };
6750
7037
 
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}
7038
+ /**
7039
+ * Gets single character from source byte array at specified position.
7040
+ * @param src The source array.
7041
+ * @param offset The offset.
7042
+ * @returns {null|String} Returns null if offset is out of array index range or
7043
+ * value is equal to {@link Constants#ASCII_NULL}, otherwise returns the obtained value.
7044
+ * @throws Exception in case if src is not {@link Int8Array}
6758
7045
  */
6759
7046
 
6760
7047
 
@@ -6769,13 +7056,13 @@ var Qitch = function () {
6769
7056
  throw "Invalid source. Expected: Int8Array";
6770
7057
  };
6771
7058
 
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}
7059
+ /**
7060
+ * Gets long (int64) value from source byte array at specified position. Since javascript doesn't support long values,
7061
+ * it is returned as {@link JSBI.BigInt}.
7062
+ * @param src The source array.
7063
+ * @param offset The offset.
7064
+ * @returns {JSBI} Returns obtained value.
7065
+ * @throws Exception in case if src is not {@link Int8Array}
6779
7066
  */
6780
7067
 
6781
7068
 
@@ -6786,14 +7073,14 @@ var Qitch = function () {
6786
7073
  throw "Invalid source. Expected: Int8Array";
6787
7074
  };
6788
7075
 
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}
7076
+ /**
7077
+ * Gets double value from byte source array at specified position.
7078
+ * In QITCH double values are sent as longs and then divided by {@link Constants#PRICE_DIVISOR}. Since javascript
7079
+ * doesn't support long values, the result is returned as {@link BigNumber}.
7080
+ * @param src The source array.
7081
+ * @param offset The offset.
7082
+ * @returns {BigNumber} Returns obtained value.
7083
+ * @throws Exception in case if src is not {@link Int8Array}
6797
7084
  */
6798
7085
 
6799
7086
 
@@ -6804,12 +7091,12 @@ var Qitch = function () {
6804
7091
  throw "Invalid source. Expected: Int8Array";
6805
7092
  };
6806
7093
 
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}
7094
+ /**
7095
+ * Gets signed byte from source byte array at specified position.
7096
+ * @param src The source array.
7097
+ * @param offset The offset.
7098
+ * @returns {number} Returns obtained value.
7099
+ * @throws Exception in case if src is not {@link Int8Array}
6813
7100
  */
6814
7101
 
6815
7102
 
@@ -6820,14 +7107,14 @@ var Qitch = function () {
6820
7107
  throw "Invalid source. Expected: Int8Array";
6821
7108
  };
6822
7109
 
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}
7110
+ /**
7111
+ * Gets timestamp value from source byte array at specified offset. Since javascript doesn't support long values,
7112
+ * it is returned as {@link JSBI.BigInt}
7113
+ * @param src The source array.
7114
+ * @param offset The offset.
7115
+ * @returns {null|JSBI} Returns null if value is equal to {@link Constants#TIMESTAMP_NULL}
7116
+ * otherwise returns the obtained value.
7117
+ * @throws Exception in case if src is not {@link Int8Array}
6831
7118
  */
6832
7119
 
6833
7120
 
@@ -6839,12 +7126,12 @@ var Qitch = function () {
6839
7126
  throw "Invalid source. Expected: Int8Array";
6840
7127
  };
6841
7128
 
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}
7129
+ /**
7130
+ * Gets locate code value from source byte array at specified offset.
7131
+ * @param src The source array.
7132
+ * @param offset The offset.
7133
+ * @returns {number} Returns obtained value.
7134
+ * @throws Exception in case if src is not {@link Int8Array}
6848
7135
  */
6849
7136
 
6850
7137
 
@@ -6855,13 +7142,13 @@ var Qitch = function () {
6855
7142
  throw "Invalid source. Expected: Int8Array";
6856
7143
  };
6857
7144
 
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}
7145
+ /**
7146
+ * Gets symbol value from source byte array at specified offset.
7147
+ * @param src The source array.
7148
+ * @param offset The offset.
7149
+ * @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),
7150
+ * otherwise returns obtained value.
7151
+ * @throws Exception in case if src is not {@link Int8Array}
6865
7152
  */
6866
7153
 
6867
7154
 
@@ -6875,13 +7162,13 @@ var Qitch = function () {
6875
7162
  throw "Invalid source. Expected: Int8Array";
6876
7163
  };
6877
7164
 
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}
7165
+ /**
7166
+ * Puts symbol value into destination array.
7167
+ * @param dst The destination array.
7168
+ * @param offset The offset.
7169
+ * @param val Symbol value.
7170
+ * @returns {Int8Array} destination array.
7171
+ * @throws Exception in case if dst is not {@link Int8Array}
6885
7172
  */
6886
7173
 
6887
7174
 
@@ -6892,13 +7179,13 @@ var Qitch = function () {
6892
7179
  throw "Invalid destination. Expected: Int8Array";
6893
7180
  };
6894
7181
 
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}
7182
+ /**
7183
+ * Gets excode value from source byte array at specified offset.
7184
+ * @param src The source array.
7185
+ * @param offset The offset.
7186
+ * @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),
7187
+ * otherwise returns obtained value.
7188
+ * @throws Exception in case if src is not {@link Int8Array}
6902
7189
  */
6903
7190
 
6904
7191
 
@@ -6912,13 +7199,13 @@ var Qitch = function () {
6912
7199
  throw "Invalid source. Expected: Int8Array";
6913
7200
  };
6914
7201
 
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}
7202
+ /**
7203
+ * Gets mmid value from source byte array at specified offset.
7204
+ * @param src The source array.
7205
+ * @param offset The offset.
7206
+ * @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),
7207
+ * otherwise returns obtained value.
7208
+ * @throws Exception in case if src is not {@link Int8Array}
6922
7209
  */
6923
7210
 
6924
7211
 
@@ -6932,13 +7219,13 @@ var Qitch = function () {
6932
7219
  throw "Invalid source. Expected: Int8Array";
6933
7220
  };
6934
7221
 
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}
7222
+ /**
7223
+ * Gets numeric order id value from source byte array at specified offset. Since javascript doesn't support long values,
7224
+ * it is returned as {@link JSBI.BigInt}
7225
+ * @param src The source array.
7226
+ * @param offset The offset.
7227
+ * @returns {JSBI} Returns obtained value.
7228
+ * @throws Exception in case if src is not {@link Int8Array}
6942
7229
  */
6943
7230
 
6944
7231
 
@@ -6949,13 +7236,13 @@ var Qitch = function () {
6949
7236
  throw "Invalid source. Expected: Int8Array";
6950
7237
  };
6951
7238
 
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}
7239
+ /**
7240
+ * Gets order id as string from source byte array at specified offset.
7241
+ * @param src The source array.
7242
+ * @param offset The offset.
7243
+ * @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),
7244
+ * otherwise returns obtained value.
7245
+ * @throws Exception in case if src is not {@link Int8Array}
6959
7246
  */
6960
7247
 
6961
7248
 
@@ -6969,13 +7256,13 @@ var Qitch = function () {
6969
7256
  throw "Invalid source. Expected: Int8Array";
6970
7257
  };
6971
7258
 
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}
7259
+ /**
7260
+ * Gets currency id from source byte array at specified offset.
7261
+ * @param src The source array.
7262
+ * @param offset The offset.
7263
+ * @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),
7264
+ * otherwise returns obtained value.
7265
+ * @throws Exception in case if src is not {@link Int8Array}
6979
7266
  */
6980
7267
 
6981
7268
 
@@ -6989,13 +7276,13 @@ var Qitch = function () {
6989
7276
  throw "Invalid source. Expected: Int8Array";
6990
7277
  };
6991
7278
 
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}
7279
+ /**
7280
+ * Gets tick from source byte array at specified offset.
7281
+ * @param src The source array.
7282
+ * @param offset The offset.
7283
+ * @returns {string|null} Returns null in case if offset is out of array index range,
7284
+ * otherwise character at specified offset is returned.
7285
+ * @throws Exception in case if src is not {@link Int8Array}
6999
7286
  */
7000
7287
 
7001
7288
 
@@ -7009,13 +7296,13 @@ var Qitch = function () {
7009
7296
  throw "Invalid source. Expected: Int8Array";
7010
7297
  };
7011
7298
 
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}
7299
+ /**
7300
+ * Gets order change type from source byte array at specified offset.
7301
+ * @param src The source array.
7302
+ * @param offset The offset.
7303
+ * @returns {null|*} Returns null in case if offset is out of array index range,
7304
+ * otherwise {@link messages.market.OrderChangeType} value that corresponds to the character at specified offset is returned.
7305
+ * @throws Exception in case if src is not {@link Int8Array}
7019
7306
  */
7020
7307
 
7021
7308
 
@@ -7033,13 +7320,13 @@ var Qitch = function () {
7033
7320
  throw "Invalid source. Expected: Int8Array";
7034
7321
  };
7035
7322
 
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}
7323
+ /**
7324
+ * Gets order side from source byte array at specified offset.
7325
+ * @param src The source array.
7326
+ * @param offset The offset.
7327
+ * @returns {string|null} Returns null in case if offset is out of array index range,
7328
+ * otherwise character at specified offset is returned.
7329
+ * @throws Exception in case if src is not {@link Int8Array}
7043
7330
  */
7044
7331
 
7045
7332
 
@@ -7057,13 +7344,13 @@ var Qitch = function () {
7057
7344
  throw "Invalid source. Expected: Int8Array";
7058
7345
  };
7059
7346
 
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}
7347
+ /**
7348
+ * Gets range indicator from source byte array at specified offset.
7349
+ * @param src The source array.
7350
+ * @param offset The offset.
7351
+ * @returns {string|null} Returns null in case if offset is out of array index range,
7352
+ * otherwise character at specified offset is returned.
7353
+ * @throws Exception in case if src is not {@link Int8Array}
7067
7354
  */
7068
7355
 
7069
7356
 
@@ -7077,13 +7364,13 @@ var Qitch = function () {
7077
7364
  throw "Invalid source. Expected: Int8Array";
7078
7365
  };
7079
7366
 
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}
7367
+ /**
7368
+ * Gets instrument type from source byte array at specified offset.
7369
+ * @param src The source array.
7370
+ * @param offset The offset.
7371
+ * @returns {null|*} Returns null in case if offset is out of array index range,
7372
+ * otherwise {@link messages.market.InstrumentType} value that corresponds to the byte at specified offset is returned.
7373
+ * @throws Exception in case if src is not {@link Int8Array}
7087
7374
  */
7088
7375
 
7089
7376
 
@@ -7097,13 +7384,13 @@ var Qitch = function () {
7097
7384
  throw "Invalid source. Expected: Int8Array";
7098
7385
  };
7099
7386
 
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}
7387
+ /**
7388
+ * Gets imbalance type from source byte array at specified offset.
7389
+ * @param src The source array.
7390
+ * @param offset The offset.
7391
+ * @returns {null|*} Returns null in case if offset is out of array index range,
7392
+ * otherwise {@link messages.market.ImbalanceType} value that corresponds to the byte at specified offset is returned.
7393
+ * @throws Exception in case if src is not {@link Int8Array}
7107
7394
  */
7108
7395
 
7109
7396
 
@@ -7117,13 +7404,13 @@ var Qitch = function () {
7117
7404
  throw "Invalid source. Expected: Int8Array";
7118
7405
  };
7119
7406
 
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}
7407
+ /**
7408
+ * Gets order refernece from source byte array at specified offset.
7409
+ * @param src The source array.
7410
+ * @param offset The offset.
7411
+ * @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),
7412
+ * otherwise returns obtained value.
7413
+ * @throws Exception in case if src is not {@link Int8Array}
7127
7414
  */
7128
7415
 
7129
7416
 
@@ -7137,13 +7424,13 @@ var Qitch = function () {
7137
7424
  throw "Invalid source. Expected: Int8Array";
7138
7425
  };
7139
7426
 
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}
7427
+ /**
7428
+ * Gets response reason from source byte array at specified offset.
7429
+ * @param src The source array.
7430
+ * @param offset The offset.
7431
+ * @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),
7432
+ * otherwise returns obtained value.
7433
+ * @throws Exception in case if src is not {@link Int8Array}
7147
7434
  */
7148
7435
 
7149
7436
 
@@ -7157,13 +7444,13 @@ var Qitch = function () {
7157
7444
  throw "Invalid source. Expected: Int8Array";
7158
7445
  };
7159
7446
 
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}
7447
+ /**
7448
+ * Gets streamer version from source byte array at specified offset.
7449
+ * @param src The source array.
7450
+ * @param offset The offset.
7451
+ * @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),
7452
+ * otherwise returns obtained value.
7453
+ * @throws Exception in case if src is not {@link Int8Array}
7167
7454
  */
7168
7455
 
7169
7456
 
@@ -7177,13 +7464,13 @@ var Qitch = function () {
7177
7464
  throw "Invalid source. Expected: Int8Array";
7178
7465
  };
7179
7466
 
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}
7467
+ /**
7468
+ * Gets server instance from source byte array at specified offset.
7469
+ * @param src The source array.
7470
+ * @param offset The offset.
7471
+ * @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),
7472
+ * otherwise returns obtained value.
7473
+ * @throws Exception in case if src is not {@link Int8Array}
7187
7474
  */
7188
7475
 
7189
7476
 
@@ -7197,13 +7484,33 @@ var Qitch = function () {
7197
7484
  throw "Invalid source. Expected: Int8Array";
7198
7485
  };
7199
7486
 
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}
7487
+ /**
7488
+ * Gets the note message from source byte array at specified offset.
7489
+ * @param src The source array.
7490
+ * @param offset The offset.
7491
+ * @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),
7492
+ * otherwise returns obtained value.
7493
+ * @throws Exception in case if src is not {@link Int8Array}
7494
+ */
7495
+
7496
+
7497
+ Qitch.note = function note(src, offset) {
7498
+ if (src instanceof Int8Array) {
7499
+ if (offset + Constants.NOTE_LENGTH > src.length) {
7500
+ return null;
7501
+ }
7502
+ return _DataOperations.ASCIIString.get(src, offset, Constants.NOTE_LENGTH);
7503
+ }
7504
+ throw "Invalid source. Expected: Int8Array";
7505
+ };
7506
+
7507
+ /**
7508
+ * Puts action value into destination array.
7509
+ * @param dst The destination array.
7510
+ * @param offset The offset.
7511
+ * @param val Action value.
7512
+ * @returns {Int8Array} destination array.
7513
+ * @throws Exception in case if dst is not {@link Int8Array}
7207
7514
  */
7208
7515
 
7209
7516
 
@@ -7215,13 +7522,13 @@ var Qitch = function () {
7215
7522
  throw "Invalid destination. Expected: Int8Array";
7216
7523
  };
7217
7524
 
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}
7525
+ /**
7526
+ * Puts mimetype value into destination array.
7527
+ * @param dst The destination array.
7528
+ * @param offset The offset.
7529
+ * @param val Mimetype value.
7530
+ * @returns {Int8Array} destination array.
7531
+ * @throws Exception in case if dst is not {@link Int8Array}
7225
7532
  */
7226
7533
 
7227
7534
 
@@ -7232,13 +7539,13 @@ var Qitch = function () {
7232
7539
  throw "Invalid destination. Expected: Int8Array";
7233
7540
  };
7234
7541
 
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}
7542
+ /**
7543
+ * Puts conflation value into destination array. If conflation is null, -1 will be put instead.
7544
+ * @param dst The destination array.
7545
+ * @param offset The offset.
7546
+ * @param val Conflation value.
7547
+ * @returns {Int8Array} destination array.
7548
+ * @throws Exception in case if dst is not {@link Int8Array}
7242
7549
  */
7243
7550
 
7244
7551
 
@@ -7249,13 +7556,13 @@ var Qitch = function () {
7249
7556
  throw "Invalid destination. Expected: Int8Array";
7250
7557
  };
7251
7558
 
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}
7559
+ /**
7560
+ * Gets marketdata type from source byte array at specified offset.
7561
+ * @param src The source array.
7562
+ * @param offset The offset.
7563
+ * @returns {null|String} Returns null in case if offset is out of array index range,
7564
+ * otherwise {@link messages.control.MarketdataType} value that corresponds to the byte at specified offset is returned.
7565
+ * @throws Exception in case if src is not {@link Int8Array}
7259
7566
  */
7260
7567
 
7261
7568
 
@@ -7269,13 +7576,13 @@ var Qitch = function () {
7269
7576
  throw "Invalid source. Expected: Int8Array";
7270
7577
  };
7271
7578
 
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}
7579
+ /**
7580
+ * Puts marketdata type value into destination array.
7581
+ * @param dst The destination array.
7582
+ * @param offset The offset.
7583
+ * @param val Marketdatatype value.
7584
+ * @returns {Int8Array} destination array.
7585
+ * @throws Exception in case if dst is not {@link Int8Array}
7279
7586
  */
7280
7587
 
7281
7588
 
@@ -7287,13 +7594,13 @@ var Qitch = function () {
7287
7594
  throw "Invalid destination. Expected: Int8Array";
7288
7595
  };
7289
7596
 
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}
7597
+ /**
7598
+ * Gets entitlement type from source byte array at specified offset.
7599
+ * @param src The source array.
7600
+ * @param offset The offset.
7601
+ * @returns {null|String} Returns null in case if offset is out of array index range,
7602
+ * otherwise {@link messages.control.StreamEntitlementType} value that corresponds to the byte at specified offset is returned.
7603
+ * @throws Exception in case if src is not {@link Int8Array}
7297
7604
  */
7298
7605
 
7299
7606
 
@@ -7307,12 +7614,12 @@ var Qitch = function () {
7307
7614
  throw "Invalid source. Expected: Int8Array";
7308
7615
  };
7309
7616
 
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}
7617
+ /**
7618
+ * Gets stream entitlement entry from source byte array at specified offset.
7619
+ * @param src The source array.
7620
+ * @param offset The offset.
7621
+ * @returns {messages.control.StreamEntitlement}
7622
+ * @throws Exception in case if src is not {@link Int8Array}
7316
7623
  */
7317
7624
 
7318
7625
 
@@ -7337,7 +7644,7 @@ exports["default"] = Qitch;
7337
7644
  "use strict";
7338
7645
 
7339
7646
  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;
7647
+ 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
7648
 
7342
7649
  var _jsbi = require("jsbi");
7343
7650
 
@@ -7345,8 +7652,8 @@ var _jsbi2 = _interopRequireDefault(_jsbi);
7345
7652
 
7346
7653
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7347
7654
 
7348
- /*
7349
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
7655
+ /*
7656
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
7350
7657
  */
7351
7658
  var ASCII_NULL = exports.ASCII_NULL = 0;
7352
7659
  var ASCIICHAR_NULL = exports.ASCIICHAR_NULL = '0';
@@ -7383,6 +7690,8 @@ var MARKETDATATYPE_LENGTH = exports.MARKETDATATYPE_LENGTH = BYTE_LENGTH;
7383
7690
  var ENTITLEMENTTYPE_LENGTH = exports.ENTITLEMENTTYPE_LENGTH = BYTE_LENGTH;
7384
7691
  var ENTITLEMENT_LENGTH = exports.ENTITLEMENT_LENGTH = SYMBOL_LENGTH + MARKETDATATYPE_LENGTH + ENTITLEMENTTYPE_LENGTH;
7385
7692
 
7693
+ var NOTE_LENGTH = exports.NOTE_LENGTH = 50;
7694
+
7386
7695
  var MESSAGE_HEADER_LENGTH_OFFSET = exports.MESSAGE_HEADER_LENGTH_OFFSET = 0;
7387
7696
  var MESSAGE_HEADER_TYPE_OFFSET = exports.MESSAGE_HEADER_TYPE_OFFSET = MESSAGE_HEADER_LENGTH_OFFSET + SHORT_LENGTH;
7388
7697
  var MESSAGE_HEADER_LENGTH = exports.MESSAGE_HEADER_LENGTH = MESSAGE_HEADER_TYPE_OFFSET + BYTE_LENGTH;
@@ -7625,9 +7934,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
7625
7934
 
7626
7935
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7627
7936
 
7628
- /**
7629
- * Decodes a stream of message blocks into messages.
7630
- * This class is stateful and cannot be shared between multiple streams.
7937
+ /**
7938
+ * Decodes a stream of message blocks into messages.
7939
+ * This class is stateful and cannot be shared between multiple streams.
7631
7940
  */
7632
7941
  var BlockDecoder = function () {
7633
7942
  function BlockDecoder(decoders, capacity) {
@@ -7649,9 +7958,9 @@ var BlockDecoder = function () {
7649
7958
  this.doflip = false;
7650
7959
  }
7651
7960
 
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
7961
+ /**
7962
+ * The number of messages in the current block.
7963
+ * @returns {number} The number of messages or -1 if no block is being decoded
7655
7964
  */
7656
7965
 
7657
7966
 
@@ -7659,9 +7968,9 @@ var BlockDecoder = function () {
7659
7968
  return this.state.messagecount;
7660
7969
  };
7661
7970
 
7662
- /**
7663
- * Returns the sequence number of the current block.
7664
- * @returns {number} the sequence number of the current block.
7971
+ /**
7972
+ * Returns the sequence number of the current block.
7973
+ * @returns {number} the sequence number of the current block.
7665
7974
  */
7666
7975
 
7667
7976
 
@@ -7669,13 +7978,13 @@ var BlockDecoder = function () {
7669
7978
  return this.state.blocksequencenumber;
7670
7979
  };
7671
7980
 
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.
7981
+ /**
7982
+ * Adds bytes to internal buffer.
7983
+ * Call {@link decode} to decode the buffered data.
7984
+ * @param bytes The array from witch bytes are to be added.
7985
+ * @param offset The offset within the array of the fist byte to be added.
7986
+ * @param length The number of bytes to be added from the given array.
7987
+ * @returns {Number} Number of bytes that weren't added due to buffer not having enough space.
7679
7988
  */
7680
7989
 
7681
7990
 
@@ -7704,11 +8013,11 @@ var BlockDecoder = function () {
7704
8013
  return numOfLeftoverBytes;
7705
8014
  };
7706
8015
 
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.
8016
+ /**
8017
+ * Incrementally decodes the data in the internal buffer.
8018
+ * Successive calls to this method will return the next decoded message as long enough data is avail
8019
+ * If not enough data is available null will be returned until more data is added.
8020
+ * @returns {*} The next decoded message or null if not enough data is available.
7712
8021
  */
7713
8022
 
7714
8023
 
@@ -8051,8 +8360,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
8051
8360
 
8052
8361
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8053
8362
 
8054
- /*
8055
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
8363
+ /*
8364
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
8056
8365
  */
8057
8366
  var QitchDecoder = function () {
8058
8367
  function QitchDecoder(bufferSize) {
@@ -8746,6 +9055,7 @@ var DerivativeInfoDecoder = function () {
8746
9055
  out.openInterest = _Qitch2["default"].int64(src, offset + def.OPENINTEREST_OFFSET);
8747
9056
  out.contractSize = _Qitch2["default"].int32(src, offset + def.CONTRACTSIZE_OFFSET);
8748
9057
  out.callPutIndicator = _Qitch2["default"].asciichar(src, offset + def.CALLPUTINDICATOR_OFFSET);
9058
+ out.minTickSize = _Qitch2["default"].dec8double(src, offset + def.MINTICKSIZE_OFFSET);
8749
9059
  return out;
8750
9060
  };
8751
9061
 
@@ -8788,6 +9098,7 @@ var IVGreeksDecoder = function () {
8788
9098
  IVGreeksDecoder.prototype.decode = function decode(src, offset) {
8789
9099
  var out = new _streamerApi.messages.market.IVGreeks();
8790
9100
  out.locateCode = _Qitch2["default"].locatecode(src, offset + def.LOCATECODE_OFFSET);
9101
+ out.lastCalculation = _Qitch2["default"].timestamp(src, offset + def.LAST_CALCULATION_OFFSET);
8791
9102
  out.delta = _Qitch2["default"].dec8double(src, offset + def.DELTA_OFFSET);
8792
9103
  out.gamma = _Qitch2["default"].dec8double(src, offset + def.GAMMA_OFFSET);
8793
9104
  out.vega = _Qitch2["default"].dec8double(src, offset + def.VEGA_OFFSET);
@@ -8797,6 +9108,9 @@ var IVGreeksDecoder = function () {
8797
9108
  out.midIVChange = _Qitch2["default"].dec8double(src, offset + def.IMPLIED_VOLATILITY_CHANGE_OFFSET);
8798
9109
  out.bidIV = _Qitch2["default"].dec8double(src, offset + def.BID_IMPLIED_VOLATILITY_OFFSET);
8799
9110
  out.askIV = _Qitch2["default"].dec8double(src, offset + def.ASK_IMPLIED_VOLATILITY_OFFSET);
9111
+ out.mark = _Qitch2["default"].dec8double(src, offset + def.MARK_OFFSET);
9112
+ out.intrinsicValue = _Qitch2["default"].dec8double(src, offset + def.INTRINSIC_VALUE_OFFSET);
9113
+ out.extrinsicValue = _Qitch2["default"].dec8double(src, offset + def.EXTRINSIC_VALUE_OFFSET);
8800
9114
  return out;
8801
9115
  };
8802
9116
 
@@ -8844,6 +9158,10 @@ var ImbalanceStatusDecoder = function () {
8844
9158
  out.referencePrice = _Qitch2["default"].dec8double(src, offset + def.REFERENCEPRICE_OFFSET);
8845
9159
  out.size = _Qitch2["default"].int64(src, offset + def.SIZE_OFFSET);
8846
9160
  out.side = _Qitch2["default"].orderside(src, offset + def.ORDERSIDE_OFFSET);
9161
+ out.pairedVolume = _Qitch2["default"].int32(src, offset + def.PAIREDVOLUME_OFFSET);
9162
+ out.nearIndicativePrice = _Qitch2["default"].dec8double(src, offset + def.NEARINDICATIVEPRICE_OFFSET);
9163
+ out.farIndicativePrice = _Qitch2["default"].dec8double(src, offset + def.FARINDICATIVEPRICE_OFFSET);
9164
+ out.priceVariation = _Qitch2["default"].dec8double(src, offset + def.PRICEVARIATION_OFFSET);
8847
9165
  return out;
8848
9166
  };
8849
9167
 
@@ -9384,6 +9702,9 @@ var SymbolInfoDecoder = function () {
9384
9702
  resultingMessage.haltStatus = _Qitch2["default"].sbyte(src, offset + def.HALTSTATUS_OFFSET);
9385
9703
  resultingMessage.haltIndicator = _Qitch2["default"].sbyte(src, offset + def.HALTINDICATOR_OFFSET);
9386
9704
  resultingMessage.regSHOStatus = _Qitch2["default"].asciichar(src, offset + def.REGSHOSTATUS_OFFSET);
9705
+ resultingMessage.pqe = _Qitch2["default"].sbyte(src, offset + def.PQE_OFFSET) > 0;
9706
+ resultingMessage.caveatEmptor = _Qitch2["default"].sbyte(src, offset + def.CAVEATEMPTOR_OFFSET) > 0;
9707
+
9387
9708
  return resultingMessage;
9388
9709
  };
9389
9710
 
@@ -9429,6 +9750,10 @@ var SymbolStatusDecoder = function () {
9429
9750
  out.haltStatus = _Qitch2["default"].sbyte(src, offset + def.HALTSTATUS_OFFSET);
9430
9751
  out.haltIndicator = _Qitch2["default"].sbyte(src, offset + def.HALTINDICATOR_OFFSET);
9431
9752
  out.regSHOStatus = _Qitch2["default"].asciichar(src, offset + def.REGSHOSTATUS_OFFSET);
9753
+ out.calculatedClosingPrice = _Qitch2["default"].dec8double(src, offset + def.CLOSINGPRICE_OFFSET);
9754
+ out.effectiveTime = _Qitch2["default"].timestamp(src, offset + def.EFFECTIVETIME_OFFSET);
9755
+ out.openingTime = _Qitch2["default"].timestamp(src, offset + def.OPENINGTIME_OFFSET);
9756
+ out.note = _Qitch2["default"].note(src, offset + def.NOTE_OFFSET);
9432
9757
  return out;
9433
9758
  };
9434
9759
 
@@ -9533,8 +9858,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
9533
9858
 
9534
9859
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9535
9860
 
9536
- /*
9537
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
9861
+ /*
9862
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
9538
9863
  */
9539
9864
  var QitchEncoder = function () {
9540
9865
  function QitchEncoder() {
@@ -9543,12 +9868,12 @@ var QitchEncoder = function () {
9543
9868
  this.encoder = new MessageEncoder();
9544
9869
  }
9545
9870
 
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
9871
+ /**
9872
+ * Encodes a message into its binary representation.
9873
+ * @param msg Msg {SMessage} the message to encode
9874
+ * @param offset The offset used to write message into a buffer
9875
+ * @returns {ArrayBuffer} the encoded bytes
9876
+ * @throws Throws an error if message cannot be encoded
9552
9877
  */
9553
9878
 
9554
9879
 
@@ -9901,7 +10226,7 @@ BookOrderFlags.prototype.NEXTDAYSETTLEMENT_MASK = 0x1000;
9901
10226
  "use strict";
9902
10227
 
9903
10228
  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;
10229
+ 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
10230
 
9906
10231
  var _QitchConstants = require("../QitchConstants");
9907
10232
 
@@ -9914,14 +10239,15 @@ var DELIVERY_OFFSET = exports.DELIVERY_OFFSET = EXPIRATION_OFFSET + _QitchConsta
9914
10239
  var OPENINTEREST_OFFSET = exports.OPENINTEREST_OFFSET = DELIVERY_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
9915
10240
  var CONTRACTSIZE_OFFSET = exports.CONTRACTSIZE_OFFSET = OPENINTEREST_OFFSET + _QitchConstants.LONG_LENGTH;
9916
10241
  var CALLPUTINDICATOR_OFFSET = exports.CALLPUTINDICATOR_OFFSET = CONTRACTSIZE_OFFSET + _QitchConstants.INT_LENGTH;
9917
- var LENGTH = exports.LENGTH = CALLPUTINDICATOR_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10242
+ var MINTICKSIZE_OFFSET = exports.MINTICKSIZE_OFFSET = CALLPUTINDICATOR_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10243
+ var LENGTH = exports.LENGTH = MINTICKSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9918
10244
  }).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
10245
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],74:[function(require,module,exports){
9920
10246
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
9921
10247
  "use strict";
9922
10248
 
9923
10249
  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;
10250
+ 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
10251
 
9926
10252
  var _QitchConstants = require("../QitchConstants");
9927
10253
 
@@ -9937,15 +10263,19 @@ var IMPLIED_VOLATILITY_OFFSET = exports.IMPLIED_VOLATILITY_OFFSET = THETA_OFFSET
9937
10263
  var IMPLIED_VOLATILITY_CHANGE_OFFSET = exports.IMPLIED_VOLATILITY_CHANGE_OFFSET = IMPLIED_VOLATILITY_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9938
10264
  var BID_IMPLIED_VOLATILITY_OFFSET = exports.BID_IMPLIED_VOLATILITY_OFFSET = IMPLIED_VOLATILITY_CHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9939
10265
  var ASK_IMPLIED_VOLATILITY_OFFSET = exports.ASK_IMPLIED_VOLATILITY_OFFSET = BID_IMPLIED_VOLATILITY_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10266
+ var LAST_CALCULATION_OFFSET = exports.LAST_CALCULATION_OFFSET = ASK_IMPLIED_VOLATILITY_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10267
+ var MARK_OFFSET = exports.MARK_OFFSET = LAST_CALCULATION_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10268
+ var INTRINSIC_VALUE_OFFSET = exports.INTRINSIC_VALUE_OFFSET = MARK_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10269
+ var EXTRINSIC_VALUE_OFFSET = exports.EXTRINSIC_VALUE_OFFSET = INTRINSIC_VALUE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9940
10270
 
9941
- var LENGTH = exports.LENGTH = ASK_IMPLIED_VOLATILITY_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10271
+ var LENGTH = exports.LENGTH = EXTRINSIC_VALUE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9942
10272
  }).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
10273
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],75:[function(require,module,exports){
9944
10274
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
9945
10275
  "use strict";
9946
10276
 
9947
10277
  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;
10278
+ 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
10279
 
9950
10280
  var _QitchConstants = require("../QitchConstants");
9951
10281
 
@@ -9957,7 +10287,11 @@ var TIMESTAMP_OFFSET = exports.TIMESTAMP_OFFSET = IMBALANCE_TYPE_OFFSET + _Qitch
9957
10287
  var REFERENCEPRICE_OFFSET = exports.REFERENCEPRICE_OFFSET = TIMESTAMP_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
9958
10288
  var SIZE_OFFSET = exports.SIZE_OFFSET = REFERENCEPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9959
10289
  var ORDERSIDE_OFFSET = exports.ORDERSIDE_OFFSET = SIZE_OFFSET + _QitchConstants.LONG_LENGTH;
9960
- var LENGTH = exports.LENGTH = ORDERSIDE_OFFSET + _QitchConstants.ORDERSIDE_LENGTH;
10290
+ var PAIREDVOLUME_OFFSET = exports.PAIREDVOLUME_OFFSET = ORDERSIDE_OFFSET + _QitchConstants.ORDERSIDE_LENGTH;
10291
+ var NEARINDICATIVEPRICE_OFFSET = exports.NEARINDICATIVEPRICE_OFFSET = PAIREDVOLUME_OFFSET + _QitchConstants.INT_LENGTH;
10292
+ var FARINDICATIVEPRICE_OFFSET = exports.FARINDICATIVEPRICE_OFFSET = NEARINDICATIVEPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10293
+ var PRICEVARIATION_OFFSET = exports.PRICEVARIATION_OFFSET = FARINDICATIVEPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10294
+ var LENGTH = exports.LENGTH = PRICEVARIATION_OFFSET + _QitchConstants.DOUBLE_LENGTH;
9961
10295
  }).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
10296
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],76:[function(require,module,exports){
9963
10297
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
@@ -10198,7 +10532,7 @@ var LENGTH = exports.LENGTH = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LEN
10198
10532
  "use strict";
10199
10533
 
10200
10534
  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;
10535
+ 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
10536
 
10203
10537
  var _QitchConstants = require("../QitchConstants");
10204
10538
 
@@ -10212,14 +10546,16 @@ var CURRENCYID_OFFSET = exports.CURRENCYID_OFFSET = INSTRUMENTTYPE_OFFSET + _Qit
10212
10546
  var HALTSTATUS_OFFSET = exports.HALTSTATUS_OFFSET = CURRENCYID_OFFSET + _QitchConstants.CURRENCYID_LENGTH;
10213
10547
  var HALTINDICATOR_OFFSET = exports.HALTINDICATOR_OFFSET = HALTSTATUS_OFFSET + _QitchConstants.BYTE_LENGTH;
10214
10548
  var REGSHOSTATUS_OFFSET = exports.REGSHOSTATUS_OFFSET = HALTINDICATOR_OFFSET + _QitchConstants.BYTE_LENGTH;
10215
- var LENGTH = exports.LENGTH = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10549
+ var PQE_OFFSET = exports.PQE_OFFSET = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10550
+ var CAVEATEMPTOR_OFFSET = exports.CAVEATEMPTOR_OFFSET = PQE_OFFSET + _QitchConstants.BYTE_LENGTH;
10551
+ var LENGTH = exports.LENGTH = CAVEATEMPTOR_OFFSET + _QitchConstants.BYTE_LENGTH;
10216
10552
  }).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
10553
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],85:[function(require,module,exports){
10218
10554
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
10219
10555
  "use strict";
10220
10556
 
10221
10557
  exports.__esModule = true;
10222
- exports.LENGTH = exports.REGSHOSTATUS_OFFSET = exports.HALTINDICATOR_OFFSET = exports.HALTSTATUS_OFFSET = exports.LOCATE_CODE_OFFSET = exports.TYPEID = undefined;
10558
+ 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
10559
 
10224
10560
  var _QitchConstants = require("../QitchConstants");
10225
10561
 
@@ -10229,7 +10565,12 @@ var LOCATE_CODE_OFFSET = exports.LOCATE_CODE_OFFSET = 0;
10229
10565
  var HALTSTATUS_OFFSET = exports.HALTSTATUS_OFFSET = LOCATE_CODE_OFFSET + _QitchConstants.LOCATECODE_LENGTH;
10230
10566
  var HALTINDICATOR_OFFSET = exports.HALTINDICATOR_OFFSET = HALTSTATUS_OFFSET + _QitchConstants.BYTE_LENGTH;
10231
10567
  var REGSHOSTATUS_OFFSET = exports.REGSHOSTATUS_OFFSET = HALTINDICATOR_OFFSET + _QitchConstants.BYTE_LENGTH;
10232
- var LENGTH = exports.LENGTH = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10568
+ var CLOSINGPRICE_OFFSET = exports.CLOSINGPRICE_OFFSET = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10569
+ var EFFECTIVETIME_OFFSET = exports.EFFECTIVETIME_OFFSET = CLOSINGPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10570
+ var OPENINGTIME_OFFSET = exports.OPENINGTIME_OFFSET = EFFECTIVETIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10571
+ var NOTE_OFFSET = exports.NOTE_OFFSET = OPENINGTIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10572
+
10573
+ var LENGTH = exports.LENGTH = NOTE_OFFSET + _QitchConstants.NOTE_LENGTH;
10233
10574
  }).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
10575
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],86:[function(require,module,exports){
10235
10576
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
@@ -10613,761 +10954,834 @@ exports["default"] = new function () {
10613
10954
  exports.__esModule = true;
10614
10955
  /* @see http://usejsdoc.org */
10615
10956
 
10616
- /**
10617
- * Streamer api namespace.
10618
- * @namespace
10957
+ /**
10958
+ * Streamer api namespace.
10959
+ * @namespace
10619
10960
  */
10620
10961
 
10621
10962
  var LIBRARY_NAME = exports.LIBRARY_NAME = "JavaScript";
10622
- var VERSION = exports.VERSION = "2.5.0";
10963
+ var VERSION = exports.VERSION = "2.18.1";
10623
10964
 
10624
- /**
10625
- * Streamer message api namespace.
10626
- * @namespace
10965
+ /**
10966
+ * Streamer message api namespace.
10967
+ * @namespace
10627
10968
  */
10628
10969
  var messages = exports.messages = {};
10629
10970
 
10630
- /**
10631
- * Streamer control message namespace. * @namespace
10971
+ /**
10972
+ * Streamer control message namespace. * @namespace
10632
10973
  */
10633
10974
  messages.control = {};
10634
10975
 
10635
- /**
10636
- * Streamer market data message namespace.
10637
- * @namespace
10976
+ /**
10977
+ * Streamer market data message namespace.
10978
+ * @namespace
10638
10979
  */
10639
10980
  messages.market = {};
10640
10981
 
10641
10982
  /* ****************************************************************************************************************** */
10642
10983
 
10643
- /**
10644
- *
10645
- * @type {string}
10984
+ /**
10985
+ *
10986
+ * @type {string}
10646
10987
  */
10647
10988
  messages.JSON_TYPE_PROPERTY = '@T';
10648
10989
 
10649
- /**
10650
- * Message type identifiers.<br>
10651
- * Ensure identifiers are unique within this name space.
10652
- * @namespace
10990
+ /**
10991
+ * Message type identifiers.<br>
10992
+ * Ensure identifiers are unique within this name space.
10993
+ * @namespace
10653
10994
  */
10654
10995
  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
- }
10996
+ /**
10997
+ * Name space for control message type identifiers.
10998
+ * @namespace
10999
+ */
11000
+ ctrl: {
11001
+ HEARTBEAT: 'C1',
11002
+ SUBSCRIBE: 'C2',
11003
+ SUBSCRIBE_RESPONSE: 'C3',
11004
+ UNSUBSCRIBE_RESPONSE: 'C4',
11005
+ CONNECT_RESPONSE: 'C5',
11006
+ CONNECTION_CLOSE: 'C6',
11007
+ FLOW: 'C7',
11008
+ SLOW_CONNECTION: 'C8',
11009
+ INITIAL_DATA_SENT: 'C9',
11010
+ RESUBSCRIBE_MESSAGE: 'C10',
11011
+ STATS: 'C12',
11012
+ STATS_RESPONSE: 'C13',
11013
+ EXCHANGE_SUBSCRIBE: 'C14',
11014
+ EXCHANGE_RESPONSE: 'C15',
11015
+ EXCHANGE_UNSUBSCRIBE_RESPONSE: 'C16'
11016
+ },
11017
+ /**
11018
+ * Name space for data message type identifiers.<br>
11019
+ * Prefix with 'D'.
11020
+ * @namespace
11021
+ */
11022
+ data: {
11023
+ QUOTE: 'D1',
11024
+ PRICEDATA: 'D2',
11025
+ TRADE: 'D3',
11026
+ BOOKORDER: 'D4',
11027
+ BOOKDELETE: 'D5',
11028
+ PURGEBOOK: 'D6',
11029
+ MMQUOTE: 'D7',
11030
+ INTERVAL: 'D8',
11031
+ NETHOUSEPOSITION: 'D9',
11032
+ SYMBOLINFO: 'D10',
11033
+ SYMBOLSTATUS: 'D11',
11034
+ DERIVATIVEINFO: 'D12',
11035
+ LASTSALE: 'D13',
11036
+ LIMITUPLIMITDOWN: 'D14',
11037
+ IVGREEKS: 'D15',
11038
+ IMBALANCESTATUS: 'D16',
11039
+ ALERT: 'D17'
11040
+ }
10697
11041
  };
10698
11042
 
10699
- /**
10700
- * Super type of all exports.
10701
- * @abstract
10702
- * @constructor
11043
+ /**
11044
+ * Super type of all exports.
11045
+ * @abstract
11046
+ * @constructor
10703
11047
  */
10704
11048
  messages.Message = function () {};
10705
11049
 
10706
11050
  messages.Message.prototype.init = function (typeid) {
10707
- this[messages.JSON_TYPE_PROPERTY] = typeid;
11051
+ this[messages.JSON_TYPE_PROPERTY] = typeid;
10708
11052
  };
10709
11053
 
10710
11054
  /* ****************************************************************************************************************** */
10711
11055
 
10712
- /**
10713
- * Creates a control message base object.
10714
- * @abstract
10715
- * @constructor
11056
+ /**
11057
+ * Creates a control message base object.
11058
+ * @abstract
11059
+ * @constructor
10716
11060
  */
10717
11061
  messages.control.CtrlMessage = function () {};
10718
11062
  messages.control.CtrlMessage.prototype = new messages.Message();
10719
11063
 
10720
- /**
10721
- * Creates a heartbeat message.
10722
- * @constructor
11064
+ /**
11065
+ * Creates a heartbeat message.
11066
+ * @constructor
10723
11067
  */
10724
11068
  messages.control.Heartbeat = function () {
10725
- this.init(messages.MessageTypeNames.ctrl.HEARTBEAT);
11069
+ this.init(messages.MessageTypeNames.ctrl.HEARTBEAT);
10726
11070
 
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;
11071
+ /**
11072
+ * Timestamp when heartbeat was generated.
11073
+ * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
11074
+ * for connections with QITCH format - {@link JSBI.BigInt}
11075
+ */
11076
+ this.timestamp = null;
10733
11077
  };
10734
11078
  messages.control.Heartbeat.prototype = new messages.control.CtrlMessage();
10735
- /**
10736
- * Creates a stats message.
10737
- * @constructor
11079
+ /**
11080
+ * Creates a stats message.
11081
+ * @constructor
10738
11082
  */
10739
11083
  messages.control.StatsMessage = function () {
10740
- this.init(messages.MessageTypeNames.ctrl.STATS);
11084
+ this.init(messages.MessageTypeNames.ctrl.STATS);
10741
11085
  };
10742
11086
  messages.control.StatsMessage.prototype = new messages.control.CtrlMessage();
10743
11087
 
10744
- /**
10745
- * Creates a subscribe message.
10746
- * @constructor
11088
+ /**
11089
+ * Creates a subscribe message.
11090
+ * @constructor
10747
11091
  */
10748
11092
  messages.control.SubscribeMessage = function () {
10749
- this.init(messages.MessageTypeNames.ctrl.SUBSCRIBE);
11093
+ this.init(messages.MessageTypeNames.ctrl.SUBSCRIBE);
10750
11094
 
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;
11095
+ /**
11096
+ * The action the server will taken when receiving this message.
11097
+ * @type {string}
11098
+ * @see exports.messages.control.Action
11099
+ */
11100
+ this.action = null;
10757
11101
 
10758
- /**
10759
- * List of ticker symbols to subscribe/un-subscribe for.
10760
- * @type {Array.<string>}
10761
- */
10762
- this.symbols = [];
11102
+ /**
11103
+ * List of ticker symbols to subscribe/un-subscribe for.
11104
+ * @type {Array.<string>}
11105
+ */
11106
+ this.symbols = [];
10763
11107
 
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 = [];
11108
+ /**
11109
+ * List of streaming message types to subscribe each ticker symbol for.
11110
+ * @type {Array.<string>}
11111
+ * @see exports.messages.control.MarketdataType
11112
+ */
11113
+ this.types = [];
10770
11114
 
10771
- /**
10772
- * Requested message mime-type format.
10773
- * @type {string}
10774
- * @see exports.messages.MimeTypes
10775
- */
10776
- this.mimetype = null;
11115
+ /**
11116
+ * Requested message mime-type format.
11117
+ * @type {string}
11118
+ * @see exports.messages.MimeTypes
11119
+ */
11120
+ this.mimetype = null;
10777
11121
 
10778
- /**
10779
- * Requested conflation. Null indicates using the default conflation.
10780
- * @type {int}
10781
- */
10782
- this.conflation = null;
11122
+ /**
11123
+ * Requested conflation. Null indicates using the default conflation.
11124
+ * @type {int}
11125
+ */
11126
+ this.conflation = null;
10783
11127
  };
10784
11128
  messages.control.SubscribeMessage.prototype = new messages.control.CtrlMessage();
10785
11129
 
10786
- /**
10787
- * Base class for response exports.
10788
- * @abstract
11130
+ /**
11131
+ * Creates an exchange subscribe message.
11132
+ * @constructor
11133
+ */
11134
+ messages.control.ExchangeSubscribeMessage = function () {
11135
+ this.init(messages.MessageTypeNames.ctrl.EXCHANGE_SUBSCRIBE);
11136
+
11137
+ /**
11138
+ * The action the server will taken when receiving this message.
11139
+ * @type {string}
11140
+ * @see exports.messages.control.Action
11141
+ */
11142
+ this.action = null;
11143
+
11144
+ /**
11145
+ * The Exchange to subscribe/un-subscribe for.
11146
+ * @type {Array.<string>}
11147
+ */
11148
+ this.exchange = null;
11149
+
11150
+ /**
11151
+ * Requested message mime-type format.
11152
+ * @type {string}
11153
+ * @see exports.messages.MimeTypes
11154
+ */
11155
+ this.mimetype = null;
11156
+
11157
+ /**
11158
+ * Requested conflation. Null indicates using the default conflation.
11159
+ * @type {int}
11160
+ */
11161
+ this.conflation = null;
11162
+ };
11163
+ messages.control.ExchangeSubscribeMessage.prototype = new messages.control.CtrlMessage();
11164
+
11165
+ /**
11166
+ * Base class for response exports.
11167
+ * @abstract
10789
11168
  */
10790
11169
  messages.control.BaseResponse = function () {
10791
- /**
10792
- * The response code.
10793
- * @type {number}
10794
- * @see {@link messages.control.ResponseCodes}
10795
- */
10796
- this.code = null;
11170
+ /**
11171
+ * The response code.
11172
+ * @type {number}
11173
+ * @see {@link messages.control.ResponseCodes}
11174
+ */
11175
+ this.code = null;
10797
11176
 
10798
- /**
10799
- * The response reason.
10800
- * @type {string}
10801
- * @see {@link messages.control.ResponseCodes}
10802
- */
10803
- this.reason = null;
11177
+ /**
11178
+ * The response reason.
11179
+ * @type {string}
11180
+ * @see {@link messages.control.ResponseCodes}
11181
+ */
11182
+ this.reason = null;
10804
11183
  };
10805
11184
  messages.control.BaseResponse.prototype = new messages.control.CtrlMessage();
10806
11185
 
10807
- /**
10808
- * Creates a subscribe response message.
10809
- * @constructor
11186
+ /**
11187
+ * Creates a subscribe response message.
11188
+ * @constructor
10810
11189
  */
10811
11190
  messages.control.SubscribeResponse = function () {
10812
- this.init(messages.MessageTypeNames.ctrl.SUBSCRIBE_RESPONSE);
11191
+ this.init(messages.MessageTypeNames.ctrl.SUBSCRIBE_RESPONSE);
10813
11192
 
10814
- /**
10815
- *
10816
- * @type {Array.<messages.control.StreamEntitlement>}
10817
- */
10818
- this.entitlements = null;
11193
+ /**
11194
+ *
11195
+ * @type {Array.<messages.control.StreamEntitlement>}
11196
+ */
11197
+ this.entitlements = null;
10819
11198
 
10820
- /**
10821
- *
10822
- * @type {Array.<string>}
10823
- */
10824
- this.invalidsymbols = null;
11199
+ /**
11200
+ *
11201
+ * @type {Array.<string>}
11202
+ */
11203
+ this.invalidsymbols = null;
10825
11204
 
10826
- /**
10827
- *
10828
- * @type {Array.<string>}
10829
- */
10830
- this.rejectedsymbols = null;
11205
+ /**
11206
+ *
11207
+ * @type {Array.<string>}
11208
+ */
11209
+ this.rejectedsymbols = null;
10831
11210
  };
10832
11211
  messages.control.SubscribeResponse.prototype = new messages.control.BaseResponse();
10833
11212
 
10834
- /**
10835
- * Creates an un-subscribe response message.
10836
- * @constructor
11213
+ /**
11214
+ * Creates an exchange subscribe response message.
11215
+ * @constructor
11216
+ */
11217
+ messages.control.ExchangeSubscribeResponse = function () {
11218
+ this.init(messages.MessageTypeNames.ctrl.EXCHANGE_RESPONSE);
11219
+ };
11220
+
11221
+ messages.control.ExchangeSubscribeResponse.prototype = new messages.control.BaseResponse();
11222
+
11223
+ /**
11224
+ * Creates an un-subscribe response message.
11225
+ * @constructor
10837
11226
  */
10838
11227
  messages.control.UnsubscribeResponse = function () {
10839
- this.init(messages.MessageTypeNames.ctrl.UNSUBSCRIBE_RESPONSE);
11228
+ this.init(messages.MessageTypeNames.ctrl.UNSUBSCRIBE_RESPONSE);
10840
11229
 
10841
- /**
10842
- *
10843
- * @type {Array.<messages.control.StreamEntitlement>}
10844
- */
10845
- this.unsubscribed = null;
11230
+ /**
11231
+ *
11232
+ * @type {Array.<messages.control.StreamEntitlement>}
11233
+ */
11234
+ this.unsubscribed = null;
10846
11235
  };
10847
11236
  messages.control.UnsubscribeResponse.prototype = new messages.control.BaseResponse();
10848
11237
 
10849
- /**
10850
- * Creates a stream entitlement info.
10851
- * @constructor
11238
+ /**
11239
+ * Creates an exchange unsubscribe response message.
11240
+ * @constructor
11241
+ */
11242
+ messages.control.ExchangeUnsubscribeResponse = function () {
11243
+ this.init(messages.MessageTypeNames.ctrl.EXCHANGE_UNSUBSCRIBE_RESPONSE);
11244
+ };
11245
+
11246
+ messages.control.ExchangeUnsubscribeResponse.prototype = new messages.control.BaseResponse();
11247
+
11248
+ /**
11249
+ * Creates a stream entitlement info.
11250
+ * @constructor
10852
11251
  */
10853
11252
  messages.control.StreamEntitlement = function () {
10854
- /**
10855
- * The symbol the entitlement is for.
10856
- * @type {string}
10857
- */
10858
- this.symbol = null;
11253
+ /**
11254
+ * The symbol the entitlement is for.
11255
+ * @type {string}
11256
+ */
11257
+ this.symbol = null;
10859
11258
 
10860
- /**
10861
- * The market data type the entitlement is for.
10862
- * @type {string}
10863
- * @see messages.control.MarketdataType
10864
- */
10865
- this.marketdatatype = null;
11259
+ /**
11260
+ * The market data type the entitlement is for.
11261
+ * @type {string}
11262
+ * @see messages.control.MarketdataType
11263
+ */
11264
+ this.marketdatatype = null;
10866
11265
 
10867
- /**
10868
- *
10869
- * @type {string}
10870
- * @see messages.control.StreamEntitlementType
10871
- */
10872
- this.entitlement = null;
11266
+ /**
11267
+ *
11268
+ * @type {string}
11269
+ * @see messages.control.StreamEntitlementType
11270
+ */
11271
+ this.entitlement = null;
10873
11272
  };
10874
11273
 
10875
- /**
10876
- * Creates a new connect response message.
10877
- * @constructor
11274
+ /**
11275
+ * Creates a new connect response message.
11276
+ * @constructor
10878
11277
  */
10879
11278
  messages.control.ConnectResponse = function () {
10880
- this.init(messages.MessageTypeNames.ctrl.CONNECT_RESPONSE);
11279
+ this.init(messages.MessageTypeNames.ctrl.CONNECT_RESPONSE);
10881
11280
 
10882
- /**
10883
- * The server version.
10884
- * @type {string}
10885
- */
10886
- this.version = null;
11281
+ /**
11282
+ * The server version.
11283
+ * @type {string}
11284
+ */
11285
+ this.version = null;
10887
11286
 
10888
- /**
10889
- * The flow control check interval.
10890
- * @type {number}
10891
- */
10892
- this.flowControlCheckInterval = null;
11287
+ /**
11288
+ * The flow control check interval.
11289
+ * @type {number}
11290
+ */
11291
+ this.flowControlCheckInterval = null;
10893
11292
 
10894
- /**
10895
- * The server instance connected to.
10896
- * @type {string}
10897
- */
10898
- this.serverInstance = null;
11293
+ /**
11294
+ * The server instance connected to.
11295
+ * @type {string}
11296
+ */
11297
+ this.serverInstance = null;
10899
11298
 
10900
- /**
10901
- * The conflation rate in milliseconds.
10902
- * @type {number}
10903
- */
10904
- this.conflationMs = null;
11299
+ /**
11300
+ * The conflation rate in milliseconds.
11301
+ * @type {number}
11302
+ */
11303
+ this.conflationMs = null;
10905
11304
  };
10906
11305
  messages.control.ConnectResponse.prototype = new messages.control.BaseResponse();
10907
11306
 
10908
- /**
10909
- * Creates a connection response message.
10910
- * @constructor
11307
+ /**
11308
+ * Creates a connection response message.
11309
+ * @constructor
10911
11310
  */
10912
11311
  messages.control.ConnectionClose = function () {
10913
- this.init(messages.MessageTypeNames.ctrl.CONNECTION_CLOSE);
11312
+ this.init(messages.MessageTypeNames.ctrl.CONNECTION_CLOSE);
10914
11313
 
10915
- /**
10916
- * The connection close reason code.
10917
- * @type {number}
10918
- * @see {@link messages.control.ResponseCodes}
10919
- */
10920
- this.code = null;
11314
+ /**
11315
+ * The connection close reason code.
11316
+ * @type {number}
11317
+ * @see {@link messages.control.ResponseCodes}
11318
+ */
11319
+ this.code = null;
10921
11320
 
10922
- /**
10923
- * The connection close reason message.
10924
- * @type {string}
10925
- * @see {@link messages.control.ResponseCodes}
10926
- */
10927
- this.reason = null;
11321
+ /**
11322
+ * The connection close reason message.
11323
+ * @type {string}
11324
+ * @see {@link messages.control.ResponseCodes}
11325
+ */
11326
+ this.reason = null;
10928
11327
  };
10929
11328
  messages.control.ConnectionClose.prototype = new messages.control.CtrlMessage();
10930
11329
 
10931
- /**
10932
- * Creates a slow connection response message.
10933
- * @constructor
11330
+ /**
11331
+ * Creates a slow connection response message.
11332
+ * @constructor
10934
11333
  */
10935
11334
  messages.control.SlowConnection = function () {
10936
- this.init(messages.MessageTypeNames.ctrl.SLOW_CONNECTION);
11335
+ this.init(messages.MessageTypeNames.ctrl.SLOW_CONNECTION);
10937
11336
 
10938
- /**
10939
- * The number of times that the connection has exceeded already.
10940
- * @type {number}
10941
- */
10942
- this.timesExceeded = null;
11337
+ /**
11338
+ * The number of times that the connection has exceeded already.
11339
+ * @type {number}
11340
+ */
11341
+ this.timesExceeded = null;
10943
11342
 
10944
- /**
10945
- * The max number allowed. The connection may close after reaching this number.
10946
- * @type {number}
10947
- */
10948
- this.maxExceed = null;
11343
+ /**
11344
+ * The max number allowed. The connection may close after reaching this number.
11345
+ * @type {number}
11346
+ */
11347
+ this.maxExceed = null;
10949
11348
  };
10950
11349
  messages.control.SlowConnection.prototype = new messages.control.CtrlMessage();
10951
11350
 
10952
- /**
10953
- * Creates a flow control message.
10954
- * @constructor
11351
+ /**
11352
+ * Creates a flow control message.
11353
+ * @constructor
10955
11354
  */
10956
11355
  messages.control.FlowMessage = function () {
10957
- this.init(messages.MessageTypeNames.ctrl.FLOW);
11356
+ this.init(messages.MessageTypeNames.ctrl.FLOW);
10958
11357
 
10959
- /**
10960
- * Last received sequence number.
10961
- * @type {number}
10962
- * @see {@link messages.LongSequence}
10963
- */
10964
- this.sequence = null;
11358
+ /**
11359
+ * Last received sequence number.
11360
+ * @type {number}
11361
+ * @see {@link messages.LongSequence}
11362
+ */
11363
+ this.sequence = null;
10965
11364
  };
10966
11365
  messages.control.FlowMessage.prototype = new messages.control.CtrlMessage();
10967
11366
 
10968
- /**
10969
- * Creates a stats response message.
10970
- * @constructor
11367
+ /**
11368
+ * Creates a stats response message.
11369
+ * @constructor
10971
11370
  */
10972
11371
  messages.control.StatsResponse = function () {
10973
- this.init(messages.MessageTypeNames.ctrl.STATS_RESPONSE);
11372
+ this.init(messages.MessageTypeNames.ctrl.STATS_RESPONSE);
10974
11373
 
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;
11374
+ /**
11375
+ *
11376
+ * @type {number}
11377
+ */
11378
+ this.numberOfSubscribedSymbolsL1 = null;
11379
+ /**
11380
+ *
11381
+ * @type {number}
11382
+ */
11383
+ this.numberOfAvailableSymbolsL1 = null;
11384
+ /**
11385
+ *
11386
+ * @type {number}
11387
+ */
11388
+ this.numberOfSubscribedSymbolsL2 = null;
11389
+ /**
11390
+ *
11391
+ * @type {number}
11392
+ */
11393
+ this.numberOfAvailableSymbolsL2 = null;
11394
+ /**
11395
+ *
11396
+ * @type {number}
11397
+ */
11398
+ this.numberOfOpenedConnections = null;
11399
+ /**
11400
+ *
11401
+ * @type {number}
11402
+ */
11403
+ this.numberOfAvailableConnections = null;
11404
+ /**
11405
+ *
11406
+ * @type {number}
11407
+ */
11408
+ this.numberOfSubscribedExchanges = null;
11005
11409
  };
11006
11410
  messages.control.StatsResponse.prototype = new messages.control.BaseResponse();
11007
11411
 
11008
- /**
11009
- * Creates a Initial Data Sent response message.
11010
- * @constructor
11412
+ /**
11413
+ * Creates a Initial Data Sent response message.
11414
+ * @constructor
11011
11415
  */
11012
11416
  messages.control.InitialDataSent = function () {
11013
- this.init(messages.MessageTypeNames.ctrl.INITIAL_DATA_SENT);
11417
+ this.init(messages.MessageTypeNames.ctrl.INITIAL_DATA_SENT);
11014
11418
 
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;
11419
+ /**
11420
+ * The timestamp of message creation.
11421
+ * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
11422
+ * for connections with QITCH format - {@link JSBI.BigInt}
11423
+ */
11424
+ this.timestamp = null;
11021
11425
  };
11022
11426
  messages.control.InitialDataSent.prototype = new messages.control.CtrlMessage();
11023
11427
 
11024
- /**
11025
- * Creates a Resubscribe message.
11026
- * @constructor
11428
+ /**
11429
+ * Creates a Resubscribe message.
11430
+ * @constructor
11027
11431
  */
11028
11432
  messages.control.ResubscribeMessage = function () {
11029
- this.init(messages.MessageTypeNames.ctrl.RESUBSCRIBE_MESSAGE);
11433
+ this.init(messages.MessageTypeNames.ctrl.RESUBSCRIBE_MESSAGE);
11030
11434
 
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;
11435
+ /**
11436
+ * The timestamp of message creation.
11437
+ * @type {number|JSBI} for connections with JSON format timestamp will be decoded as number,
11438
+ * for connections with QITCH format - {@link JSBI.BigInt}
11439
+ */
11440
+ this.timestamp = null;
11037
11441
  };
11038
11442
  messages.control.ResubscribeMessage.prototype = new messages.control.CtrlMessage();
11039
11443
 
11040
- /**
11041
- * Stream entitlement types.
11042
- * @enum
11043
- * @readonly
11444
+ /**
11445
+ * Stream entitlement types.
11446
+ * @enum
11447
+ * @readonly
11044
11448
  */
11045
11449
  messages.control.StreamEntitlementType = {
11046
- RT: "Realtime",
11047
- RTN: "Realtime NASDAQ",
11048
- RTB: "Realtime BATS",
11049
- DL: "Delayed",
11050
- NA: "Not Entitled"
11450
+ RT: "Realtime",
11451
+ RTO: "Realtime CBOE ONE",
11452
+ RTN: "Realtime NASDAQ",
11453
+ RTB: "Realtime BATS",
11454
+ DL: "Delayed",
11455
+ DLO: "Delayed CBOE One",
11456
+ DLN: "Delayed NASDAQ",
11457
+ NA: "Not Entitled"
11051
11458
  };
11052
11459
 
11053
- /**
11054
- * Enumeration for subscription actions.
11055
- * @enum
11056
- * @readonly
11460
+ /**
11461
+ * Enumeration for subscription actions.
11462
+ * @enum
11463
+ * @readonly
11057
11464
  */
11058
11465
  messages.control.Action = {
11059
- SUBSCRIBE: "SUBSCRIBE",
11060
- UNSUBSCRIBE: "UNSUBSCRIBE"
11466
+ SUBSCRIBE: "SUBSCRIBE",
11467
+ UNSUBSCRIBE: "UNSUBSCRIBE"
11061
11468
  };
11062
11469
 
11063
- /**
11064
- * Enumeration for streaming message types.
11065
- * @enum
11066
- * @readonly
11470
+ /**
11471
+ * Enumeration for streaming message types.
11472
+ * @enum
11473
+ * @readonly
11067
11474
  */
11068
11475
  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"
11476
+ QUOTE: "QUOTE",
11477
+ PRICEDATA: "PRICEDATA",
11478
+ TRADE: "TRADE",
11479
+ MMQUOTE: "MMQUOTE",
11480
+ ORDERBOOK: "ORDERBOOK",
11481
+ INTERVAL: "INTERVAL",
11482
+ NETHOUSEPOSITION: "NETHOUSEPOSITION",
11483
+ LASTSALE: "LASTSALE",
11484
+ BOOKORDER: "BOOKORDER",
11485
+ BOOKDELETE: "BOOKDELETE",
11486
+ PURGEBOOK: "PURGEBOOK",
11487
+ LIMITUPLIMITDOWN: "LIMITUPLIMITDOWN",
11488
+ IVGREEKS: "IVGREEKS",
11489
+ IMBALANCESTATUS: "IMBALANCESTATUS"
11083
11490
  };
11084
11491
 
11085
- /**
11086
- * Response codes and reasons.
11087
- * @enum
11088
- * @readonly
11492
+ /**
11493
+ * Response codes and reasons.
11494
+ * @enum
11495
+ * @readonly
11089
11496
  */
11090
11497
  messages.control.ResponseCodes = {
11091
- OK_CODE: 200,
11092
- OK_REASON: "OK",
11498
+ OK_CODE: 200,
11499
+ OK_REASON: "OK",
11093
11500
 
11094
- BADREQUEST_CODE: 400,
11095
- BADREQUEST_REASON: "Bad Request",
11501
+ BADREQUEST_CODE: 400,
11502
+ BADREQUEST_REASON: "Bad Request",
11096
11503
 
11097
- UNAUTHORIZED_CODE: 401,
11098
- UNAUTHORIZED_REASON: "Unauthorized",
11504
+ UNAUTHORIZED_CODE: 401,
11505
+ UNAUTHORIZED_REASON: "Unauthorized",
11099
11506
 
11100
- TOOSLOW_CODE: 450,
11101
- TOOSLOW_REASON: "Too slow",
11507
+ TOOSLOW_CODE: 450,
11508
+ TOOSLOW_REASON: "Too slow",
11102
11509
 
11103
- DATA_SOURCE_RESET: 454,
11104
- DATA_SOURCE_RESET_REASON: "Data Source Was Reset",
11510
+ DATA_SOURCE_RESET: 454,
11511
+ DATA_SOURCE_RESET_REASON: "Data Source Was Reset",
11105
11512
 
11106
- CONNECTION_LIMIT_EXCEEDED_CODE: 452,
11107
- CONNECTION_LIMIT_EXCEEDED_REASON: "Connection Limit Exceeded",
11513
+ CONNECTION_LIMIT_EXCEEDED_CODE: 452,
11514
+ CONNECTION_LIMIT_EXCEEDED_REASON: "Connection Limit Exceeded",
11108
11515
 
11109
- INTERNALSERVERERROR_CODE: 500,
11110
- INTERNALSERVERERROR_REASON: "Internal Server Error"
11516
+ INTERNALSERVERERROR_CODE: 500,
11517
+ INTERNALSERVERERROR_REASON: "Internal Server Error"
11111
11518
  };
11112
11519
 
11113
11520
  /* ****************************************************************************************************************** */
11114
11521
 
11115
- /**
11116
- * Base type for all market data exports.
11117
- * @constructor
11118
- * @abstract
11522
+ /**
11523
+ * Base type for all market data exports.
11524
+ * @constructor
11525
+ * @abstract
11119
11526
  */
11120
11527
  messages.market.DataMessage = function () {
11121
- /**
11122
- * The message type.
11123
- * @type {number}
11124
- * @see messages.MessageTypeNames_0.data
11125
- */
11126
- this.messageType = null;
11528
+ /**
11529
+ * The message type.
11530
+ * @type {number}
11531
+ * @see messages.MessageTypeNames_0.data
11532
+ */
11533
+ this.messageType = null;
11127
11534
  };
11128
11535
  messages.market.DataMessage.prototype = new messages.Message();
11129
11536
 
11130
- /**
11131
- *
11132
- * @constructor
11537
+ /**
11538
+ *
11539
+ * @constructor
11133
11540
  */
11134
11541
  messages.market.Quote = function () {
11135
- this.init(messages.MessageTypeNames.data.QUOTE);
11542
+ this.init(messages.MessageTypeNames.data.QUOTE);
11136
11543
 
11137
- // TODO properties
11544
+ // TODO properties
11138
11545
  };
11139
11546
  messages.market.Quote.prototype = new messages.market.DataMessage();
11140
11547
 
11141
- /**
11142
- *
11143
- * @constructor
11548
+ /**
11549
+ *
11550
+ * @constructor
11144
11551
  */
11145
11552
  messages.market.PriceData = function () {
11146
- this.init(messages.MessageTypeNames.data.PRICEDATA);
11553
+ this.init(messages.MessageTypeNames.data.PRICEDATA);
11147
11554
 
11148
- // TODO properties
11555
+ // TODO properties
11149
11556
  };
11150
11557
  messages.market.PriceData.prototype = new messages.market.DataMessage();
11151
11558
 
11152
- /**
11153
- *
11154
- * @constructor
11559
+ /**
11560
+ *
11561
+ * @constructor
11155
11562
  */
11156
11563
  messages.market.Trade = function () {
11157
- this.init(messages.MessageTypeNames.data.TRADE);
11564
+ this.init(messages.MessageTypeNames.data.TRADE);
11158
11565
 
11159
- // TODO properties
11566
+ // TODO properties
11160
11567
  };
11161
11568
  messages.market.Trade.prototype = new messages.market.DataMessage();
11162
11569
 
11163
- /**
11164
- *
11165
- * @constructor
11570
+ /**
11571
+ *
11572
+ * @constructor
11166
11573
  */
11167
11574
  messages.market.MMQuote = function () {
11168
- this.init(messages.MessageTypeNames.data.MMQUOTE);
11575
+ this.init(messages.MessageTypeNames.data.MMQUOTE);
11169
11576
 
11170
- // TODO properties
11577
+ // TODO properties
11171
11578
  };
11172
11579
  messages.market.MMQuote.prototype = new messages.market.DataMessage();
11173
11580
 
11174
- /**
11175
- *
11176
- * @constructor
11581
+ /**
11582
+ *
11583
+ * @constructor
11177
11584
  */
11178
11585
  messages.market.PurgeBook = function () {
11179
- this.init(messages.MessageTypeNames.data.PURGEBOOK);
11586
+ this.init(messages.MessageTypeNames.data.PURGEBOOK);
11180
11587
 
11181
- // TODO properties
11588
+ // TODO properties
11182
11589
  };
11183
11590
  messages.market.PurgeBook.prototype = new messages.market.DataMessage();
11184
11591
 
11185
- /**
11186
- *
11187
- * @constructor
11592
+ /**
11593
+ *
11594
+ * @constructor
11188
11595
  */
11189
11596
  messages.market.BookOrder = function () {
11190
- this.init(messages.MessageTypeNames.data.BOOKORDER);
11597
+ this.init(messages.MessageTypeNames.data.BOOKORDER);
11191
11598
 
11192
- // TODO properties
11599
+ // TODO properties
11193
11600
  };
11194
11601
  messages.market.BookOrder.prototype = new messages.market.DataMessage();
11195
11602
 
11196
- /**
11197
- *
11198
- * @constructor
11603
+ /**
11604
+ *
11605
+ * @constructor
11199
11606
  */
11200
11607
  messages.market.BookDelete = function () {
11201
- this.init(messages.MessageTypeNames.data.BOOKDELETE);
11608
+ this.init(messages.MessageTypeNames.data.BOOKDELETE);
11202
11609
 
11203
- // TODO properties
11610
+ // TODO properties
11204
11611
  };
11205
11612
  messages.market.BookDelete.prototype = new messages.market.DataMessage();
11206
11613
 
11207
- /**
11208
- *
11209
- * @constructor
11614
+ /**
11615
+ *
11616
+ * @constructor
11210
11617
  */
11211
11618
  messages.market.Interval = function () {
11212
- this.init(messages.MessageTypeNames.data.INTERVAL);
11619
+ this.init(messages.MessageTypeNames.data.INTERVAL);
11213
11620
 
11214
- // TODO properties
11621
+ // TODO properties
11215
11622
  };
11216
11623
  messages.market.Interval.prototype = new messages.market.DataMessage();
11217
11624
 
11218
- /**
11219
- *
11220
- * @constructor
11625
+ /**
11626
+ *
11627
+ * @constructor
11221
11628
  */
11222
11629
  messages.market.NethousePosition = function () {
11223
- this.init(messages.MessageTypeNames.data.NETHOUSEPOSITION);
11630
+ this.init(messages.MessageTypeNames.data.NETHOUSEPOSITION);
11224
11631
 
11225
- // TODO properties
11632
+ // TODO properties
11226
11633
  };
11227
11634
  messages.market.NethousePosition.prototype = new messages.market.DataMessage();
11228
11635
 
11229
- /**
11230
- *
11231
- * @constructor
11636
+ /**
11637
+ *
11638
+ * @constructor
11232
11639
  */
11233
11640
  messages.market.SymbolInfo = function () {
11234
- this.init(messages.MessageTypeNames.data.SYMBOLINFO);
11641
+ this.init(messages.MessageTypeNames.data.SYMBOLINFO);
11235
11642
 
11236
- // TODO properties
11643
+ // TODO properties
11237
11644
  };
11238
11645
  messages.market.SymbolInfo.prototype = new messages.market.DataMessage();
11239
11646
 
11240
- /**
11241
- *
11242
- * @constructor
11647
+ /**
11648
+ *
11649
+ * @constructor
11243
11650
  */
11244
11651
  messages.market.SymbolStatus = function () {
11245
- this.init(messages.MessageTypeNames.data.SYMBOLSTATUS);
11652
+ this.init(messages.MessageTypeNames.data.SYMBOLSTATUS);
11246
11653
 
11247
- // TODO properties
11654
+ // TODO properties
11248
11655
  };
11249
11656
  messages.market.SymbolStatus.prototype = new messages.market.DataMessage();
11250
11657
 
11251
- /**
11252
- *
11253
- * @constructor
11658
+ /**
11659
+ *
11660
+ * @constructor
11254
11661
  */
11255
11662
  messages.market.DerivativeInfo = function () {
11256
- this.init(messages.MessageTypeNames.data.DERIVATIVEINFO);
11663
+ this.init(messages.MessageTypeNames.data.DERIVATIVEINFO);
11257
11664
 
11258
- // TODO properties
11665
+ // TODO properties
11259
11666
  };
11260
11667
  messages.market.DerivativeInfo.prototype = new messages.market.DataMessage();
11261
11668
 
11262
- /**
11263
- *
11264
- * @constructor
11669
+ /**
11670
+ *
11671
+ * @constructor
11265
11672
  */
11266
11673
  messages.market.IVGreeks = function () {
11267
- this.init(messages.MessageTypeNames.data.IVGREEKS);
11674
+ this.init(messages.MessageTypeNames.data.IVGREEKS);
11268
11675
 
11269
- // TODO properties
11676
+ // TODO properties
11270
11677
  };
11271
11678
  messages.market.IVGreeks.prototype = new messages.market.DataMessage();
11272
11679
 
11273
- /**
11274
- *
11275
- * @constructor
11680
+ /**
11681
+ *
11682
+ * @constructor
11276
11683
  */
11277
11684
  messages.market.LastSale = function () {
11278
- this.init(messages.MessageTypeNames.data.LASTSALE);
11685
+ this.init(messages.MessageTypeNames.data.LASTSALE);
11279
11686
 
11280
- // TODO properties
11687
+ // TODO properties
11281
11688
  };
11282
11689
  messages.market.LastSale.prototype = new messages.market.DataMessage();
11283
11690
 
11284
- /**
11285
- *
11286
- * @constructor
11691
+ /**
11692
+ *
11693
+ * @constructor
11287
11694
  */
11288
11695
  messages.market.LimitUpLimitDown = function () {
11289
- this.init(messages.MessageTypeNames.data.LIMITUPLIMITDOWN);
11696
+ this.init(messages.MessageTypeNames.data.LIMITUPLIMITDOWN);
11290
11697
 
11291
- // TODO properties
11698
+ // TODO properties
11292
11699
  };
11293
11700
  messages.market.LimitUpLimitDown.prototype = new messages.market.DataMessage();
11294
11701
 
11295
- /**
11296
- *
11297
- * @constructor
11702
+ /**
11703
+ *
11704
+ * @constructor
11298
11705
  */
11299
11706
  messages.market.ImbalanceStatus = function () {
11300
- this.init(messages.MessageTypeNames.data.IMBALANCESTATUS);
11707
+ this.init(messages.MessageTypeNames.data.IMBALANCESTATUS);
11301
11708
 
11302
- // TODO properties
11709
+ // TODO properties
11303
11710
  };
11304
11711
  messages.market.ImbalanceStatus.prototype = new messages.market.DataMessage();
11305
11712
 
11306
- /**
11307
- * Enumeration for instrument types.
11308
- * @enum
11309
- * @readonly
11713
+ messages.market.Alert = function () {
11714
+ this.init(messages.MessageTypeNames.data.ALERT);
11715
+
11716
+ // TODO properties
11717
+ };
11718
+ messages.market.Alert.prototype = new messages.market.DataMessage();
11719
+
11720
+ /**
11721
+ * Enumeration for instrument types.
11722
+ * @enum
11723
+ * @readonly
11310
11724
  */
11311
11725
  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"
11726
+ 1: "CASH",
11727
+ 2: "BOND",
11728
+ 3: "COMPOSITE",
11729
+ 4: "FUTURE",
11730
+ 5: "FUTURE_OPTION",
11731
+ 6: "FOREX",
11732
+ 7: "INDEX",
11733
+ 8: "MUTUAL_FUND",
11734
+ 9: "MONEY_MARKET_FUND",
11735
+ 10: "MARKET_STAT",
11736
+ 11: "EQUITY",
11737
+ 12: "EQUITY_OPTION",
11738
+ 13: "GOVT_BOND",
11739
+ 14: "MUNI_BOND",
11740
+ 15: "CORP_BOND",
11741
+ 16: "ETF",
11742
+ 17: "FUTURE_SPREAD",
11743
+ 97: "OPTION_ROOT",
11744
+ 98: "UNKNOWN",
11745
+ 99: "RATE"
11332
11746
  };
11333
11747
 
11334
- /**
11335
- * Enumeration vor order side.
11336
- * @enum
11337
- * @readonly
11748
+ /**
11749
+ * Enumeration vor order side.
11750
+ * @enum
11751
+ * @readonly
11338
11752
  */
11339
11753
  messages.market.OrderSide = {
11340
- BUYSIDE: 'B',
11341
- SELLSIDE: 'S'
11754
+ BUYSIDE: 'B',
11755
+ SELLSIDE: 'S'
11342
11756
  };
11343
11757
 
11344
- /**
11345
- * Enumeration for imbalance types.
11346
- * @enum
11347
- * @readonly
11758
+ /**
11759
+ * Enumeration for imbalance types.
11760
+ * @enum
11761
+ * @readonly
11348
11762
  */
11349
11763
  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"
11764
+ 0: "NONE",
11765
+ 1: "MARKET",
11766
+ 2: "MOC",
11767
+ 3: "REGULATORY_IMBALANCE",
11768
+ 4: "OPENING_IMBALANCE",
11769
+ 5: "CLOSING_IMBALANCE",
11770
+ 6: "IPO_IMBALANCE",
11771
+ 7: "HALT_IMBALANCE",
11772
+ 8: "EQUILIBRIUM"
11359
11773
  };
11360
11774
 
11361
- /**
11362
- * Enumeration for book order change types.
11363
- * @enum
11364
- * @readonly
11775
+ /**
11776
+ * Enumeration for book order change types.
11777
+ * @enum
11778
+ * @readonly
11365
11779
  */
11366
11780
  messages.market.OrderChangeType = {
11367
- 'A': "ADD",
11368
- 'M': "MODIFY",
11369
- 'C': "CANCEL",
11370
- 'E': "EXECUTE"
11781
+ 'A': "ADD",
11782
+ 'M': "MODIFY",
11783
+ 'C': "CANCEL",
11784
+ 'E': "EXECUTE"
11371
11785
  };
11372
11786
  }).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
11787
  },{"_process":114,"buffer":104,"timers":135}],93:[function(require,module,exports){
@@ -11646,8 +12060,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
11646
12060
 
11647
12061
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11648
12062
 
11649
- /*
11650
- Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
12063
+ /*
12064
+ Note: QITCH is currently in a Beta phase and can potentially cause performance degradation
11651
12065
  */
11652
12066
  var QitchTransmitter = function () {
11653
12067
  function QitchTransmitter(socket, encoder, log) {