@quotemedia.com/streamer 2.64.0 → 2.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -746,10 +746,57 @@ var Stream = function () {
746
746
  });
747
747
  };
748
748
 
749
- Stream.prototype.subscribeNews = function subscribeNews(newsFilters, filterId, optsOrCallback, callbackOrNothing) {
750
- var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
751
- var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
749
+ /**
750
+ * Opens a News connection with optional newsClientId for reconnection.
751
+ * @param {string} [newsClientId] - Optional client ID for reconnection
752
+ * @param {Function} callback - Called with (error, result)
753
+ */
754
+
755
+
756
+ Stream.prototype.openNews = function openNews(newsClientId, callback) {
757
+ if (typeof newsClientId === 'function') {
758
+ callback = newsClientId;
759
+ newsClientId = null;
760
+ }
761
+
762
+ if (this.isClosed()) {
763
+ var event = events.error("Stream is disconnected", {
764
+ code: -1,
765
+ reason: "Already disconnected"
766
+ });
767
+ this.events.fire("error", event);
768
+ if (callback) {
769
+ callback(event);
770
+ }
771
+ return;
772
+ }
773
+
774
+ var msg = new _streamerApi.messages.control.NewsSubscribeMessage();
775
+ msg.newsAction = _streamerApi.messages.control.NewsAction.NEWS_OPEN;
776
+ msg.newsClientId = newsClientId || null;
777
+ msg.mimetype = this.format;
778
+
779
+ var id = this.requestid.next();
780
+ this.pendingNewsSubscriptions[id] = {
781
+ callback: callback,
782
+ result: { newsClientId: null }
783
+ };
784
+ msg.id = id;
785
+
786
+ this.send(msg);
787
+ };
788
+
789
+ /**
790
+ * Subscribes to news with filters.
791
+ * @param {Array} newsFilters - The news filters to subscribe
792
+ * @param {string} filterId - The filter ID (auto-generated if not provided)
793
+ * @param {boolean} skipHeavyInitialLoad - Whether to skip heavy initial load
794
+ * @param {string} newsClientId - Optional client ID for reconnection
795
+ * @param {Function} callback - Called with (error, result)
796
+ */
797
+
752
798
 
799
+ Stream.prototype.subscribeNews = function subscribeNews(newsFilters, filterId, skipHeavyInitialLoad, newsClientId, callback) {
753
800
  if (this.isClosed()) {
754
801
  var event = events.error("Stream is disconnected", {
755
802
  code: -1,
@@ -775,14 +822,15 @@ var Stream = function () {
775
822
  newsFilters: [],
776
823
  rejectedNewsFilters: [],
777
824
  unentitledNewsFilters: [],
778
- filterId: filterId
825
+ filterId: filterId,
826
+ newsClientId: null
779
827
  }
780
828
  };
781
829
  //check for empty filters
782
830
  if (newsFilters.length === 0) {
783
831
  callback(null, newsSub.result);
784
832
  }
785
- var request = this.buildNewsSubscribeRequest(newsFilters, filterId, newsSub, _streamerApi.messages.control.NewsAction.NEWS_FLT_ADD, opts);
833
+ var request = this.buildNewsSubscribeRequest(newsFilters, filterId, newsSub, skipHeavyInitialLoad, newsClientId, _streamerApi.messages.control.NewsAction.NEWS_FLT_ADD);
786
834
 
787
835
  var id = this.requestid.next();
788
836
  this.pendingNewsSubscriptions[id] = newsSub;
@@ -968,7 +1016,7 @@ var Stream = function () {
968
1016
  }
969
1017
  };
970
1018
 
971
- var request = this.buildNewsSubscribeRequest(filters, filterId, newsFltUpdate, _streamerApi.messages.control.NewsAction.NEWS_FLT_UPDATE, null);
1019
+ var request = this.buildNewsSubscribeRequest(filters, filterId, newsFltUpdate, null, null, _streamerApi.messages.control.NewsAction.NEWS_FLT_UPDATE);
972
1020
 
973
1021
  var id = this.requestid.next();
974
1022
  this.pendingNewsSubscriptions[id] = newsFltUpdate;
@@ -977,9 +1025,7 @@ var Stream = function () {
977
1025
  this.send(request);
978
1026
  };
979
1027
 
980
- Stream.prototype.fltDeleteNews = function fltDeleteNews(filterId, callbackOrNothing) {
981
- var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
982
-
1028
+ Stream.prototype.fltDeleteNews = function fltDeleteNews(filterId, callback) {
983
1029
  if (this.isClosed()) {
984
1030
  var event = events.error("Stream is disconnected", {
985
1031
  code: -1,
@@ -997,12 +1043,11 @@ var Stream = function () {
997
1043
  mimetype: this.format
998
1044
  };
999
1045
 
1000
- var request = this.buildNewsSubscribeRequest(null, filterId, newsFltDelete, _streamerApi.messages.control.NewsAction.NEWS_FLT_DELETE, null);
1046
+ var request = this.buildNewsSubscribeRequest(null, filterId, newsFltDelete, null, null, _streamerApi.messages.control.NewsAction.NEWS_FLT_DELETE);
1001
1047
  this.send(request);
1002
1048
  };
1003
1049
 
1004
- Stream.prototype.fltGetNews = function fltGetNews(callbackOrNothing) {
1005
- var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
1050
+ Stream.prototype.fltGetNews = function fltGetNews(callback) {
1006
1051
 
1007
1052
  if (this.isClosed()) {
1008
1053
  var event = events.error("Stream is disconnected", {
@@ -1163,12 +1208,7 @@ var Stream = function () {
1163
1208
  });
1164
1209
  };
1165
1210
 
1166
- Stream.prototype.unsubscribeNews = function unsubscribeNews(newsFilters, optsOrCallback, callbackOrNothing) {
1167
- newsFilters = Array.isArray(newsFilters) ? newsFilters : [newsFilters];
1168
-
1169
- var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
1170
- var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
1171
-
1211
+ Stream.prototype.unsubscribeNews = function unsubscribeNews(filterId, callback) {
1172
1212
  if (this.isClosed()) {
1173
1213
  var event = events.error("Stream is disconnected", {
1174
1214
  code: -1,
@@ -1190,13 +1230,7 @@ var Stream = function () {
1190
1230
  }
1191
1231
  };
1192
1232
 
1193
- if (newsFilters.length === 0) {
1194
- if (callback) {
1195
- callback(null, unsubscription.result);
1196
- }
1197
- }
1198
-
1199
- var request = this.buildNewsSubscribeRequest(newsFilters, unsubscription, _streamerApi.messages.control.NewsAction.NEWS_FLT_DELETE, opts);
1233
+ var request = this.buildNewsSubscribeRequest(null, filterId, unsubscription, null, null, _streamerApi.messages.control.NewsAction.NEWS_FLT_DELETE);
1200
1234
 
1201
1235
  var id = this.requestid.next();
1202
1236
  unsubscription.id.push(id);
@@ -1349,15 +1383,14 @@ var Stream = function () {
1349
1383
  return msg;
1350
1384
  };
1351
1385
 
1352
- Stream.prototype.buildNewsSubscribeRequest = function buildNewsSubscribeRequest(newsFilters, filterId, sub, newsAction, opts) {
1386
+ Stream.prototype.buildNewsSubscribeRequest = function buildNewsSubscribeRequest(newsFilters, filterId, sub, skipHeavyInitialLoad, newsClientId, newsAction) {
1353
1387
  var msg = new _streamerApi.messages.control.NewsSubscribeMessage();
1354
1388
  msg.newsAction = newsAction;
1355
1389
  msg.newsFilters = newsFilters;
1356
1390
  msg.filterId = filterId;
1391
+ msg.skipHeavyInitialLoad = skipHeavyInitialLoad;
1357
1392
  msg.mimetype = sub.mimetype;
1358
- if (opts && opts.skipHeavyInitialLoad) {
1359
- msg.skipHeavyInitialLoad = opts.skipHeavyInitialLoad;
1360
- }
1393
+ msg.newsClientId = newsClientId || null;
1361
1394
  return msg;
1362
1395
  };
1363
1396
 
@@ -1430,6 +1463,9 @@ var Stream = function () {
1430
1463
  case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_FLT_ADD_RESPONSE:
1431
1464
  this.onNewsFltAddResponse(msg);
1432
1465
  break;
1466
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_OPEN_RESPONSE:
1467
+ this.onNewsOpenResponse(msg);
1468
+ break;
1433
1469
  case _streamerApi.messages.MessageTypeNames.ctrl.ALERTS_SUBUNSUB_RESPONSE:
1434
1470
  this.onAlertsSubUnsubResponse(msg);
1435
1471
  break;
@@ -1642,6 +1678,35 @@ var Stream = function () {
1642
1678
  }
1643
1679
  };
1644
1680
 
1681
+ Stream.prototype.onNewsOpenResponse = function onNewsOpenResponse(msg) {
1682
+ var newsSub = this.pendingNewsSubscriptions[msg.__id];
1683
+ if (!newsSub) {
1684
+ return;
1685
+ }
1686
+ var callback = newsSub.callback;
1687
+
1688
+ delete this.pendingNewsSubscriptions[msg.__id];
1689
+
1690
+ var result = newsSub.result;
1691
+
1692
+ if (msg.code != 200) {
1693
+ var event = events.error("Error opening news connection", {
1694
+ code: msg.code,
1695
+ reason: msg.reason
1696
+ });
1697
+ this.events.fire("error", event);
1698
+ if (callback) {
1699
+ callback(event);
1700
+ }
1701
+ return;
1702
+ }
1703
+
1704
+ result.newsClientId = msg.newsClientId;
1705
+ if (callback) {
1706
+ callback(null, result);
1707
+ }
1708
+ };
1709
+
1645
1710
  Stream.prototype.onNewsFltAddResponse = function onNewsFltAddResponse(msg) {
1646
1711
  var newsSub = this.pendingNewsSubscriptions[msg.__id];
1647
1712
  var callback = newsSub.callback;
@@ -1719,6 +1784,9 @@ var Stream = function () {
1719
1784
  if (msg.filterId) {
1720
1785
  result.filterId = msg.filterId;
1721
1786
  }
1787
+ if (msg.newsClientId) {
1788
+ result.newsClientId = msg.newsClientId;
1789
+ }
1722
1790
 
1723
1791
  if (newsSub.id.length === 0) {
1724
1792
  if (callback) {
@@ -6395,6 +6463,7 @@ fmt.Formatter = function () {
6395
6463
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.ALERTS_SUBUNSUB] = this._fmtalertsubunsub;
6396
6464
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.ALERTS_SUBUNSUB_RESPONSE] = this._fmtalertsubunsubresponse;
6397
6465
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.NEWS_SUBSCRIBE] = this._fmtnewssubscribe;
6466
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.NEWS_OPEN_RESPONSE] = this._fmtnewsopenresponse;
6398
6467
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.NEWS_FLT_ADD_RESPONSE] = this._fmtnewsfltaddresponse;
6399
6468
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.TRADE_SUBSCRIBE] = this._fmttradesubscribe;
6400
6469
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.TRADE_SUBSCRIBE_RESPONSE] = this._fmttradesubscriberesponse;
@@ -7038,27 +7107,31 @@ fmt.Formatter.prototype._fmtnews = function (val) {
7038
7107
  s.sep();
7039
7108
  s.append(val.storyId);
7040
7109
  s.sep();
7041
- s.datetime(val.timestamp);
7042
- s.sep();
7043
7110
  s.append(val.storyUrl);
7044
7111
  s.sep();
7112
+ s.datetime(val.timestamp);
7113
+ s.sep();
7045
7114
  s.append(val.epochtime);
7046
7115
  s.sep();
7047
7116
  s.append(val.headline);
7048
7117
  s.sep();
7118
+ s.append('"' + val.summary + '"');
7119
+ s.sep();
7049
7120
  s.append(val.source);
7050
7121
  s.sep();
7051
7122
  s.append(val.sourceId);
7052
7123
  s.sep();
7053
7124
  s.append(val.lang);
7054
7125
  s.sep();
7055
- s.append(val.symbol);
7126
+ s.append('"' + val.symbol + '"');
7056
7127
  s.sep();
7057
- s.append(val.excode);
7128
+ s.append('"' + val.excode + '"');
7129
+ s.sep();
7130
+ s.append('"' + val.exgroup + '"');
7058
7131
  s.sep();
7059
- s.append(val.exgroup);
7132
+ s.append('"' + val.topic + '"');
7060
7133
  s.sep();
7061
- s.append(val.topic);
7134
+ s.append('"' + val.sector + '"');
7062
7135
  s.sep();
7063
7136
  s.append(val.thumbnailUrl);
7064
7137
  s.sep();
@@ -7369,6 +7442,17 @@ fmt.Formatter.prototype._fmttradesubscriberesponse = function (val) {
7369
7442
  return s.toString();
7370
7443
  };
7371
7444
 
7445
+ fmt.Formatter.prototype._fmtnewsopenresponse = function (val) {
7446
+ var s = new fmt.StringBuilder();
7447
+ s.append('NEWS OPEN RESPONSE');
7448
+ s.sep();
7449
+ this.__baseresponse(val, s);
7450
+ s.sep();
7451
+ s.append('newsClientId: ');
7452
+ s.append(val.newsClientId);
7453
+ return s.toString();
7454
+ };
7455
+
7372
7456
  fmt.Formatter.prototype._fmtnewsfltaddresponse = function (val) {
7373
7457
  var s = new fmt.StringBuilder();
7374
7458
  s.append('NEWS SUBSCRIBED FLT_ADD');
@@ -14239,11 +14323,57 @@ var StompStream = function () {
14239
14323
  });
14240
14324
  };
14241
14325
 
14242
- StompStream.prototype.subscribeNews = function subscribeNews(newsFilters, optsOrCallback, callbackOrNothing) {
14326
+ /**
14327
+ * Opens a News connection with optional newsClientId for reconnection.
14328
+ * @param {string} [newsClientId] - Optional client ID for reconnection
14329
+ * @param {Function} callback - Called with (error, result)
14330
+ */
14331
+
14332
+
14333
+ StompStream.prototype.openNews = function openNews(newsClientId, callback) {
14334
+ if (typeof newsClientId === 'function') {
14335
+ callback = newsClientId;
14336
+ newsClientId = null;
14337
+ }
14338
+
14339
+ if (this.isClosed()) {
14340
+ var event = events.error("Stream is disconnected", {
14341
+ code: -1,
14342
+ reason: "Already disconnected"
14343
+ });
14344
+ this.events.fire("error", event);
14345
+ if (callback) {
14346
+ callback(event);
14347
+ }
14348
+ return;
14349
+ }
14350
+
14351
+ var msg = new _streamerApi.messages.control.NewsSubscribeMessage();
14352
+ msg.newsAction = _streamerApi.messages.control.NewsAction.NEWS_OPEN;
14353
+ msg.newsClientId = newsClientId || null;
14354
+ msg.mimetype = this.format;
14355
+
14356
+ var id = this.requestid.next();
14357
+ this.pendingNewsSubscriptions[id] = {
14358
+ callback: callback,
14359
+ result: { newsClientId: null }
14360
+ };
14361
+ msg.id = id;
14362
+
14363
+ this.send(msg);
14364
+ };
14365
+
14366
+ /**
14367
+ * Subscribes to news with filters.
14368
+ * @param {Array} newsFilters - The news filters to subscribe
14369
+ * @param {string} filterId - The filter ID (auto-generated if not provided)
14370
+ * @param {boolean} skipHeavyInitialLoad - Whether to skip heavy initial load
14371
+ * @param {string} newsClientId - Optional client ID for reconnection
14372
+ * @param {Function} callback - Called with (error, result)
14373
+ */
14243
14374
 
14244
- var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
14245
- var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
14246
14375
 
14376
+ StompStream.prototype.subscribeNews = function subscribeNews(newsFilters, filterId, skipHeavyInitialLoad, newsClientId, callback) {
14247
14377
  if (this.isClosed()) {
14248
14378
  var event = events.error("Stream is disconnected", {
14249
14379
  code: -1,
@@ -14256,6 +14386,12 @@ var StompStream = function () {
14256
14386
  return;
14257
14387
  }
14258
14388
 
14389
+ // Generate filterId if not provided
14390
+ if (filterId === '' || filterId == undefined || filterId === null) {
14391
+ filterId = crypto.randomUUID();
14392
+ console.log("News FilterId Created: ", filterId);
14393
+ }
14394
+
14259
14395
  var newsSub = {
14260
14396
  callback: callback,
14261
14397
  mimetype: this.format,
@@ -14263,23 +14399,154 @@ var StompStream = function () {
14263
14399
  result: {
14264
14400
  newsFilters: [],
14265
14401
  rejectedNewsFilters: [],
14266
- unentitledNewsFilters: []
14402
+ unentitledNewsFilters: [],
14403
+ filterId: filterId,
14404
+ newsClientId: null
14267
14405
  }
14268
14406
  };
14269
- //check for empty filters
14407
+
14408
+ // Check for empty filters
14270
14409
  if (newsFilters.length === 0) {
14271
14410
  callback(null, newsSub.result);
14411
+ return;
14272
14412
  }
14273
- var request = this.buildNewsSubscribeRequest(newsFilters, newsSub, _streamerApi.messages.control.Action.SUBSCRIBE, opts);
14413
+
14414
+ var request = this.buildNewsSubscribeRequest(newsFilters, filterId, newsSub, skipHeavyInitialLoad, newsClientId, _streamerApi.messages.control.NewsAction.NEWS_FLT_ADD);
14274
14415
 
14275
14416
  var id = this.requestid.next();
14276
14417
  this.pendingNewsSubscriptions[id] = newsSub;
14418
+ request.id = id;
14419
+
14420
+ this.send(request);
14421
+ };
14422
+
14423
+ /**
14424
+ * Updates existing news filters.
14425
+ * @param {Array} filters - The news filters to update
14426
+ * @param {string} filterId - The filter ID to update
14427
+ * @param {Function} callback - Called with (error, result)
14428
+ */
14429
+
14430
+
14431
+ StompStream.prototype.fltUpdateNews = function fltUpdateNews(filters, filterId, callback) {
14432
+ if (this.isClosed()) {
14433
+ var event = events.error("Stream is disconnected", {
14434
+ code: -1,
14435
+ reason: "Already disconnected"
14436
+ });
14437
+ this.events.fire("error", event);
14438
+ if (callback) {
14439
+ callback(event);
14440
+ }
14441
+ return;
14442
+ }
14443
+
14444
+ var newsFltUpdate = {
14445
+ callback: callback,
14446
+ mimetype: this.format,
14447
+ id: [],
14448
+ result: {
14449
+ newsFilters: [],
14450
+ rejectedNewsFilters: [],
14451
+ unentitledNewsFilters: [],
14452
+ filterId: filterId
14453
+ }
14454
+ };
14455
+
14456
+ var request = this.buildNewsSubscribeRequest(filters, filterId, newsFltUpdate, null, null, _streamerApi.messages.control.NewsAction.NEWS_FLT_UPDATE);
14277
14457
 
14458
+ var id = this.requestid.next();
14459
+ this.pendingNewsSubscriptions[id] = newsFltUpdate;
14278
14460
  request.id = id;
14279
14461
 
14280
14462
  this.send(request);
14281
14463
  };
14282
14464
 
14465
+ /**
14466
+ * Deletes a news filter by filterId.
14467
+ * @param {string} filterId - The filter ID to delete
14468
+ * @param {Function} callback - Called with (error, result)
14469
+ */
14470
+
14471
+
14472
+ StompStream.prototype.fltDeleteNews = function fltDeleteNews(filterId, callback) {
14473
+ if (this.isClosed()) {
14474
+ var event = events.error("Stream is disconnected", {
14475
+ code: -1,
14476
+ reason: "Already disconnected"
14477
+ });
14478
+ this.events.fire("error", event);
14479
+ if (callback) {
14480
+ callback(event);
14481
+ }
14482
+ return;
14483
+ }
14484
+
14485
+ var newsFltDelete = {
14486
+ callback: callback,
14487
+ mimetype: this.format
14488
+ };
14489
+
14490
+ var request = this.buildNewsSubscribeRequest(null, filterId, newsFltDelete, null, null, _streamerApi.messages.control.NewsAction.NEWS_FLT_DELETE);
14491
+ this.send(request);
14492
+ };
14493
+
14494
+ /**
14495
+ * Gets news filters status.
14496
+ * @param {Function} callback - Called with (error, result)
14497
+ */
14498
+
14499
+
14500
+ StompStream.prototype.fltGetNews = function fltGetNews(callback) {
14501
+ if (this.isClosed()) {
14502
+ var event = events.error("Stream is disconnected", {
14503
+ code: -1,
14504
+ reason: "Already disconnected"
14505
+ });
14506
+ this.events.fire("error", event);
14507
+ if (callback) {
14508
+ callback(event);
14509
+ }
14510
+ return;
14511
+ }
14512
+
14513
+ var newsFltGet = {
14514
+ callback: callback,
14515
+ mimetype: this.format
14516
+ };
14517
+
14518
+ var request = this.buildNewsCommandRequest(newsFltGet, _streamerApi.messages.control.NewsAction.NEWS_FLT_GET);
14519
+ this.send(request);
14520
+ };
14521
+
14522
+ /**
14523
+ * Gets mock basic news for testing.
14524
+ * @param {Function} callback - Called with (error, result)
14525
+ */
14526
+
14527
+
14528
+ StompStream.prototype.fltMockBasicNews = function fltMockBasicNews(callback) {
14529
+ if (this.isClosed()) {
14530
+ var event = events.error("Stream is disconnected", {
14531
+ code: -1,
14532
+ reason: "Already disconnected"
14533
+ });
14534
+ this.events.fire("error", event);
14535
+ if (callback) {
14536
+ callback(event);
14537
+ }
14538
+ return;
14539
+ }
14540
+
14541
+ var newsFltMockBasic = {
14542
+ callback: callback,
14543
+ mimetype: this.format
14544
+ };
14545
+
14546
+ var request = this.buildNewsCommandRequest(newsFltMockBasic, _streamerApi.messages.control.NewsAction.NEWS_FLT_MOCK_BASIC);
14547
+ this.send(request);
14548
+ };
14549
+
14283
14550
  StompStream.prototype.subscribeCorpEvents = function subscribeCorpEvents(symbols, corpEventTypes, allCorpEvents, optsOrCallback, callbackOrNothing) {
14284
14551
  if (symbols) {
14285
14552
  symbols = (Array.isArray(symbols) ? symbols : [symbols]).map(function (s) {
@@ -14429,7 +14696,17 @@ var StompStream = function () {
14429
14696
  this.send(request);
14430
14697
  };
14431
14698
 
14432
- StompStream.prototype.cmdFilterNews = function cmdFilterNews(callbackOrNothing) {
14699
+ StompStream.prototype.unsubscribe = function unsubscribe(symbols, types, optsOrCallback, callbackOrNothing) {
14700
+ var _this4 = this;
14701
+
14702
+ symbols = (Array.isArray(symbols) ? symbols : [symbols]).map(function (s) {
14703
+ return s.toUpperCase();
14704
+ });
14705
+ types = Array.isArray(types) ? types : [types].map(function (s) {
14706
+ return s.toUpperCase();
14707
+ });
14708
+
14709
+ var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
14433
14710
  var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
14434
14711
 
14435
14712
  if (this.isClosed()) {
@@ -14444,44 +14721,10 @@ var StompStream = function () {
14444
14721
  return;
14445
14722
  }
14446
14723
 
14447
- var newsCmdFilter = {
14448
- callback: callback,
14449
- mimetype: this.format
14450
- };
14451
-
14452
- var request = this.buildNewsCommandRequest(newsCmdFilter, 'NEWSCMDFILTER');
14453
- this.send(request);
14454
- };
14455
-
14456
- StompStream.prototype.unsubscribe = function unsubscribe(symbols, types, optsOrCallback, callbackOrNothing) {
14457
- var _this4 = this;
14458
-
14459
- symbols = (Array.isArray(symbols) ? symbols : [symbols]).map(function (s) {
14460
- return s.toUpperCase();
14461
- });
14462
- types = Array.isArray(types) ? types : [types].map(function (s) {
14463
- return s.toUpperCase();
14464
- });
14465
-
14466
- var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
14467
- var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
14468
-
14469
- if (this.isClosed()) {
14470
- var event = events.error("Stream is disconnected", {
14471
- code: -1,
14472
- reason: "Already disconnected"
14473
- });
14474
- this.events.fire("error", event);
14475
- if (callback) {
14476
- callback(event);
14477
- }
14478
- return;
14479
- }
14480
-
14481
- var unsubscription = {
14482
- ids: [],
14483
- types: types,
14484
- mimetype: this.format,
14724
+ var unsubscription = {
14725
+ ids: [],
14726
+ types: types,
14727
+ mimetype: this.format,
14485
14728
  callback: callback,
14486
14729
  result: {
14487
14730
  unsubscribed: []
@@ -14554,12 +14797,14 @@ var StompStream = function () {
14554
14797
  });
14555
14798
  };
14556
14799
 
14557
- StompStream.prototype.unsubscribeNews = function unsubscribeNews(newsFilters, optsOrCallback, callbackOrNothing) {
14558
- newsFilters = Array.isArray(newsFilters) ? newsFilters : [newsFilters];
14800
+ /**
14801
+ * Unsubscribes from news by filterId.
14802
+ * @param {string} filterId - The filter ID to unsubscribe
14803
+ * @param {Function} callback - Called with (error, result)
14804
+ */
14559
14805
 
14560
- var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
14561
- var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
14562
14806
 
14807
+ StompStream.prototype.unsubscribeNews = function unsubscribeNews(filterId, callback) {
14563
14808
  if (this.isClosed()) {
14564
14809
  var event = events.error("Stream is disconnected", {
14565
14810
  code: -1,
@@ -14581,13 +14826,7 @@ var StompStream = function () {
14581
14826
  }
14582
14827
  };
14583
14828
 
14584
- if (newsFilters.length === 0) {
14585
- if (callback) {
14586
- callback(null, unsubscription.result);
14587
- }
14588
- }
14589
-
14590
- var request = this.buildNewsSubscribeRequest(newsFilters, unsubscription, _streamerApi.messages.control.Action.UNSUBSCRIBE, opts);
14829
+ var request = this.buildNewsSubscribeRequest(null, filterId, unsubscription, null, null, _streamerApi.messages.control.NewsAction.NEWS_FLT_DELETE);
14591
14830
 
14592
14831
  var id = this.requestid.next();
14593
14832
  unsubscription.id.push(id);
@@ -14742,14 +14981,14 @@ var StompStream = function () {
14742
14981
  return msg;
14743
14982
  };
14744
14983
 
14745
- StompStream.prototype.buildNewsSubscribeRequest = function buildNewsSubscribeRequest(newsFilters, sub, action, opts) {
14984
+ StompStream.prototype.buildNewsSubscribeRequest = function buildNewsSubscribeRequest(newsFilters, filterId, sub, skipHeavyInitialLoad, newsClientId, newsAction) {
14746
14985
  var msg = new _streamerApi.messages.control.NewsSubscribeMessage();
14747
- msg.action = action;
14986
+ msg.newsAction = newsAction;
14748
14987
  msg.newsFilters = newsFilters;
14988
+ msg.filterId = filterId;
14989
+ msg.skipHeavyInitialLoad = skipHeavyInitialLoad;
14749
14990
  msg.mimetype = sub.mimetype;
14750
- if (opts && opts.skipHeavyInitialLoad) {
14751
- msg.skipHeavyInitialLoad = opts.skipHeavyInitialLoad;
14752
- }
14991
+ msg.newsClientId = newsClientId || null;
14753
14992
  return msg;
14754
14993
  };
14755
14994
 
@@ -14819,9 +15058,6 @@ var StompStream = function () {
14819
15058
  case _streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_RESPONSE:
14820
15059
  this.onExchangeSubscribeResponse(msg);
14821
15060
  break;
14822
- case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_SUBSCRIBE_RESPONSE:
14823
- this.onNewsSubscribeResponse(msg);
14824
- break;
14825
15061
  case _streamerApi.messages.MessageTypeNames.ctrl.ALERTS_SUBUNSUB_RESPONSE:
14826
15062
  this.onAlertsSubUnsubResponse(msg);
14827
15063
  break;
@@ -14834,11 +15070,26 @@ var StompStream = function () {
14834
15070
  case _streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_UNSUBSCRIBE_RESPONSE:
14835
15071
  this.onExchangeUnsubscribeResponse(msg);
14836
15072
  break;
14837
- case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_UNSUBSCRIBE_RESPONSE:
14838
- this.onNewsUnsubscribeResponse(msg);
15073
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_OPEN_RESPONSE:
15074
+ this.onNewsOpenResponse(msg);
15075
+ break;
15076
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_FLT_ADD_RESPONSE:
15077
+ this.onNewsFltAddResponse(msg);
15078
+ break;
15079
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_FLT_UPDATE_RESPONSE:
15080
+ this.onNewsFltUpdateMessage(msg);
14839
15081
  break;
14840
- case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_CMD_FILTER_RESPONSE:
14841
- this.onNewsCmdFilterResponse(msg);
15082
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_FLT_DELETE_RESPONSE:
15083
+ this.onNewsFltDeleteResponse(msg);
15084
+ break;
15085
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_FLT_GET_RESPONSE:
15086
+ this.onNewsFltGetResponse(msg);
15087
+ break;
15088
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_FILTER_MESSAGE:
15089
+ this.onNewsFilterRemoteMessage(msg);
15090
+ break;
15091
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_ERROR_MESSAGE:
15092
+ this.onNewsErrorRemoteMessage(msg);
14842
15093
  break;
14843
15094
  case _streamerApi.messages.MessageTypeNames.ctrl.CORP_EVENT_RESPONSE:
14844
15095
  this.onCorpEventResponse(msg);
@@ -15035,28 +15286,28 @@ var StompStream = function () {
15035
15286
  }
15036
15287
  };
15037
15288
 
15038
- StompStream.prototype.onNewsSubscribeResponse = function onNewsSubscribeResponse(msg) {
15039
- var newsSub = this.pendingNewsSubscriptions[msg.__id];
15040
- var callback = newsSub.callback;
15289
+ StompStream.prototype.onCorpEventResponse = function onCorpEventResponse(msg) {
15290
+ var corpEventSub = this.pendingCorpEventSubscription[msg.__id];
15291
+ var callback = corpEventSub.callback;
15041
15292
 
15042
- (0, _utils.removeFromArray)(newsSub.id, msg.__id);
15043
- delete this.pendingNewsSubscriptions[msg.__id];
15293
+ (0, _utils.removeFromArray)(corpEventSub.id, msg.__id);
15294
+ delete this.pendingCorpEventSubscription[msg.__id];
15044
15295
 
15045
- var result = newsSub.result;
15296
+ var result = corpEventSub.result;
15046
15297
 
15047
15298
  if (msg.code != 200) {
15048
- var event = events.error("Error subscribing to news", {
15299
+ var event = events.error("Error subscribing to Corporate Events", {
15049
15300
  code: msg.code,
15050
15301
  reason: msg.reason
15051
15302
  });
15052
15303
  this.events.fire("error", event);
15053
15304
  if (callback) {
15054
- newsSub.callback(event);
15305
+ corpEventSub.callback(event);
15055
15306
  }
15056
15307
  return;
15057
15308
  }
15058
- if (msg.newsFilters) {
15059
- for (var _iterator4 = msg.newsFilters, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
15309
+ if (msg.subscribed) {
15310
+ for (var _iterator4 = msg.subscribed, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
15060
15311
  var _ref4;
15061
15312
 
15062
15313
  if (_isArray4) {
@@ -15068,13 +15319,13 @@ var StompStream = function () {
15068
15319
  _ref4 = _i4.value;
15069
15320
  }
15070
15321
 
15071
- var newsFilter = _ref4;
15322
+ var subbed = _ref4;
15072
15323
 
15073
- result.newsFilters.push(newsFilter);
15324
+ result.subscribed.push(subbed);
15074
15325
  }
15075
15326
  }
15076
- if (msg.rejectedNewsFilters) {
15077
- for (var _iterator5 = msg.rejectedNewsFilters, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
15327
+ if (msg.unsubscribed) {
15328
+ for (var _iterator5 = msg.unsubscribed, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
15078
15329
  var _ref5;
15079
15330
 
15080
15331
  if (_isArray5) {
@@ -15086,13 +15337,13 @@ var StompStream = function () {
15086
15337
  _ref5 = _i5.value;
15087
15338
  }
15088
15339
 
15089
- var rejectedFilter = _ref5;
15340
+ var unSubbed = _ref5;
15090
15341
 
15091
- result.rejectedNewsFilters.push(rejectedFilter);
15342
+ result.unsubscribed.push(unSubbed);
15092
15343
  }
15093
15344
  }
15094
- if (msg.unentitledNewsFilters) {
15095
- for (var _iterator6 = msg.unentitledNewsFilters, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
15345
+ if (msg.invalid) {
15346
+ for (var _iterator6 = msg.invalid, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
15096
15347
  var _ref6;
15097
15348
 
15098
15349
  if (_isArray6) {
@@ -15104,89 +15355,7 @@ var StompStream = function () {
15104
15355
  _ref6 = _i6.value;
15105
15356
  }
15106
15357
 
15107
- var unentitledFilter = _ref6;
15108
-
15109
- result.unentitledNewsFilters.push(unentitledFilter);
15110
- }
15111
- }
15112
-
15113
- if (newsSub.id.length === 0) {
15114
- if (callback) {
15115
- callback(null, newsSub.result);
15116
- }
15117
- }
15118
- };
15119
-
15120
- StompStream.prototype.onCorpEventResponse = function onCorpEventResponse(msg) {
15121
- var corpEventSub = this.pendingCorpEventSubscription[msg.__id];
15122
- var callback = corpEventSub.callback;
15123
-
15124
- (0, _utils.removeFromArray)(corpEventSub.id, msg.__id);
15125
- delete this.pendingCorpEventSubscription[msg.__id];
15126
-
15127
- var result = corpEventSub.result;
15128
-
15129
- if (msg.code != 200) {
15130
- var event = events.error("Error subscribing to Corporate Events", {
15131
- code: msg.code,
15132
- reason: msg.reason
15133
- });
15134
- this.events.fire("error", event);
15135
- if (callback) {
15136
- corpEventSub.callback(event);
15137
- }
15138
- return;
15139
- }
15140
- if (msg.subscribed) {
15141
- for (var _iterator7 = msg.subscribed, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
15142
- var _ref7;
15143
-
15144
- if (_isArray7) {
15145
- if (_i7 >= _iterator7.length) break;
15146
- _ref7 = _iterator7[_i7++];
15147
- } else {
15148
- _i7 = _iterator7.next();
15149
- if (_i7.done) break;
15150
- _ref7 = _i7.value;
15151
- }
15152
-
15153
- var subbed = _ref7;
15154
-
15155
- result.subscribed.push(subbed);
15156
- }
15157
- }
15158
- if (msg.unsubscribed) {
15159
- for (var _iterator8 = msg.unsubscribed, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
15160
- var _ref8;
15161
-
15162
- if (_isArray8) {
15163
- if (_i8 >= _iterator8.length) break;
15164
- _ref8 = _iterator8[_i8++];
15165
- } else {
15166
- _i8 = _iterator8.next();
15167
- if (_i8.done) break;
15168
- _ref8 = _i8.value;
15169
- }
15170
-
15171
- var unSubbed = _ref8;
15172
-
15173
- result.unsubscribed.push(unSubbed);
15174
- }
15175
- }
15176
- if (msg.invalid) {
15177
- for (var _iterator9 = msg.invalid, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
15178
- var _ref9;
15179
-
15180
- if (_isArray9) {
15181
- if (_i9 >= _iterator9.length) break;
15182
- _ref9 = _iterator9[_i9++];
15183
- } else {
15184
- _i9 = _iterator9.next();
15185
- if (_i9.done) break;
15186
- _ref9 = _i9.value;
15187
- }
15188
-
15189
- var invalid = _ref9;
15358
+ var invalid = _ref6;
15190
15359
 
15191
15360
  result.invalid.push(invalid);
15192
15361
  }
@@ -15267,28 +15436,149 @@ var StompStream = function () {
15267
15436
  }
15268
15437
  };
15269
15438
 
15270
- StompStream.prototype.onNewsUnsubscribeResponse = function onNewsUnsubscribeResponse(msg) {
15271
- var newsUnsub = this.pendingNewsUnsubscriptions[msg.__id];
15272
- var callback = newsUnsub.callback;
15439
+ StompStream.prototype.onNewsOpenResponse = function onNewsOpenResponse(msg) {
15440
+ var newsSub = this.pendingNewsSubscriptions[msg.__id];
15441
+ if (!newsSub) {
15442
+ return;
15443
+ }
15444
+ var callback = newsSub.callback;
15273
15445
 
15274
- (0, _utils.removeFromArray)(newsUnsub.id, msg.__id);
15275
- delete this.pendingNewsUnsubscriptions[msg.__id];
15446
+ delete this.pendingNewsSubscriptions[msg.__id];
15276
15447
 
15277
- var result = newsUnsub.result;
15448
+ var result = newsSub.result;
15278
15449
 
15279
- if (msg.code != 200 && !newsUnsub.failed) {
15280
- newsUnsub.failed = true;
15281
- var event = events.error("Error unsubscribing to news", {
15450
+ if (msg.code != 200) {
15451
+ var event = events.error("Error opening news connection", {
15282
15452
  code: msg.code,
15283
15453
  reason: msg.reason
15284
15454
  });
15285
15455
  this.events.fire("error", event);
15286
15456
  if (callback) {
15287
- newsUnsub.callback(event);
15457
+ callback(event);
15288
15458
  }
15289
15459
  return;
15290
15460
  }
15291
15461
 
15462
+ result.newsClientId = msg.newsClientId;
15463
+ if (callback) {
15464
+ callback(null, result);
15465
+ }
15466
+ };
15467
+
15468
+ StompStream.prototype.onNewsFltAddResponse = function onNewsFltAddResponse(msg) {
15469
+ var newsSub = this.pendingNewsSubscriptions[msg.__id];
15470
+ if (!newsSub) {
15471
+ return;
15472
+ }
15473
+ var callback = newsSub.callback;
15474
+
15475
+ (0, _utils.removeFromArray)(newsSub.id, msg.__id);
15476
+ delete this.pendingNewsSubscriptions[msg.__id];
15477
+
15478
+ var result = newsSub.result;
15479
+
15480
+ if (msg.code != 200) {
15481
+ var event = events.error("Error subscribing to news", {
15482
+ code: msg.code,
15483
+ reason: msg.reason
15484
+ });
15485
+ this.events.fire("error", event);
15486
+ if (callback) {
15487
+ newsSub.callback(event);
15488
+ }
15489
+ return;
15490
+ }
15491
+ if (msg.newsFilters) {
15492
+ for (var _iterator7 = msg.newsFilters, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
15493
+ var _ref7;
15494
+
15495
+ if (_isArray7) {
15496
+ if (_i7 >= _iterator7.length) break;
15497
+ _ref7 = _iterator7[_i7++];
15498
+ } else {
15499
+ _i7 = _iterator7.next();
15500
+ if (_i7.done) break;
15501
+ _ref7 = _i7.value;
15502
+ }
15503
+
15504
+ var newsFilter = _ref7;
15505
+
15506
+ result.newsFilters.push(newsFilter);
15507
+ }
15508
+ }
15509
+ if (msg.rejectedNewsFilters) {
15510
+ for (var _iterator8 = msg.rejectedNewsFilters, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
15511
+ var _ref8;
15512
+
15513
+ if (_isArray8) {
15514
+ if (_i8 >= _iterator8.length) break;
15515
+ _ref8 = _iterator8[_i8++];
15516
+ } else {
15517
+ _i8 = _iterator8.next();
15518
+ if (_i8.done) break;
15519
+ _ref8 = _i8.value;
15520
+ }
15521
+
15522
+ var rejectedFilter = _ref8;
15523
+
15524
+ result.rejectedNewsFilters.push(rejectedFilter);
15525
+ }
15526
+ }
15527
+ if (msg.unentitledNewsFilters) {
15528
+ for (var _iterator9 = msg.unentitledNewsFilters, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
15529
+ var _ref9;
15530
+
15531
+ if (_isArray9) {
15532
+ if (_i9 >= _iterator9.length) break;
15533
+ _ref9 = _iterator9[_i9++];
15534
+ } else {
15535
+ _i9 = _iterator9.next();
15536
+ if (_i9.done) break;
15537
+ _ref9 = _i9.value;
15538
+ }
15539
+
15540
+ var unentitledFilter = _ref9;
15541
+
15542
+ result.unentitledNewsFilters.push(unentitledFilter);
15543
+ }
15544
+ }
15545
+ if (msg.filterId) {
15546
+ result.filterId = msg.filterId;
15547
+ }
15548
+ if (msg.newsClientId) {
15549
+ result.newsClientId = msg.newsClientId;
15550
+ }
15551
+
15552
+ if (newsSub.id.length === 0) {
15553
+ if (callback) {
15554
+ callback(null, newsSub.result);
15555
+ }
15556
+ }
15557
+ };
15558
+
15559
+ StompStream.prototype.onNewsFltUpdateMessage = function onNewsFltUpdateMessage(msg) {
15560
+ var newsUpdate = this.pendingNewsSubscriptions[msg.__id];
15561
+ if (!newsUpdate) {
15562
+ return;
15563
+ }
15564
+ var callback = newsUpdate.callback;
15565
+
15566
+ (0, _utils.removeFromArray)(newsUpdate.id, msg.__id);
15567
+ delete this.pendingNewsSubscriptions[msg.__id];
15568
+
15569
+ var result = newsUpdate.result;
15570
+
15571
+ if (msg.code != 200) {
15572
+ var event = events.error("Error updating news filters", {
15573
+ code: msg.code,
15574
+ reason: msg.reason
15575
+ });
15576
+ this.events.fire("error", event);
15577
+ if (callback) {
15578
+ newsUpdate.callback(event);
15579
+ }
15580
+ return;
15581
+ }
15292
15582
  if (msg.newsFilters) {
15293
15583
  for (var _iterator10 = msg.newsFilters, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) {
15294
15584
  var _ref10;
@@ -15304,17 +15594,94 @@ var StompStream = function () {
15304
15594
 
15305
15595
  var newsFilter = _ref10;
15306
15596
 
15307
- result.unsubscribed.push(newsFilter);
15597
+ result.newsFilters.push(newsFilter);
15308
15598
  }
15309
15599
  }
15600
+ if (msg.rejectedNewsFilters) {
15601
+ for (var _iterator11 = msg.rejectedNewsFilters, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _iterator11[Symbol.iterator]();;) {
15602
+ var _ref11;
15310
15603
 
15311
- if (newsUnsub.id.length === 0) {
15604
+ if (_isArray11) {
15605
+ if (_i11 >= _iterator11.length) break;
15606
+ _ref11 = _iterator11[_i11++];
15607
+ } else {
15608
+ _i11 = _iterator11.next();
15609
+ if (_i11.done) break;
15610
+ _ref11 = _i11.value;
15611
+ }
15612
+
15613
+ var rejectedFilter = _ref11;
15614
+
15615
+ result.rejectedNewsFilters.push(rejectedFilter);
15616
+ }
15617
+ }
15618
+ if (msg.unentitledNewsFilters) {
15619
+ for (var _iterator12 = msg.unentitledNewsFilters, _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _iterator12[Symbol.iterator]();;) {
15620
+ var _ref12;
15621
+
15622
+ if (_isArray12) {
15623
+ if (_i12 >= _iterator12.length) break;
15624
+ _ref12 = _iterator12[_i12++];
15625
+ } else {
15626
+ _i12 = _iterator12.next();
15627
+ if (_i12.done) break;
15628
+ _ref12 = _i12.value;
15629
+ }
15630
+
15631
+ var unentitledFilter = _ref12;
15632
+
15633
+ result.unentitledNewsFilters.push(unentitledFilter);
15634
+ }
15635
+ }
15636
+ if (msg.filterId) {
15637
+ result.filterId = msg.filterId;
15638
+ }
15639
+
15640
+ if (newsUpdate.id.length === 0) {
15312
15641
  if (callback) {
15313
- callback(null, newsUnsub.result);
15642
+ callback(null, newsUpdate.result);
15314
15643
  }
15315
15644
  }
15316
15645
  };
15317
15646
 
15647
+ StompStream.prototype.onNewsFltDeleteResponse = function onNewsFltDeleteResponse(msg) {
15648
+ console.log("News_flt_delete Response", msg);
15649
+
15650
+ if (msg.code != 200) {
15651
+ var event = events.error("Error deleting news filter", {
15652
+ code: msg.code,
15653
+ reason: msg.reason
15654
+ });
15655
+ this.events.fire("error", event);
15656
+ return;
15657
+ }
15658
+
15659
+ this.events.fire("filterDelete", msg);
15660
+ };
15661
+
15662
+ StompStream.prototype.onNewsFltGetResponse = function onNewsFltGetResponse(msg) {
15663
+ if (msg.code != 200) {
15664
+ var event = events.error("Error getting news filters status", {
15665
+ code: msg.code,
15666
+ reason: msg.reason
15667
+ });
15668
+ this.events.fire("error", event);
15669
+ return;
15670
+ }
15671
+
15672
+ this.events.fire("filterStatus", msg);
15673
+ };
15674
+
15675
+ StompStream.prototype.onNewsFilterRemoteMessage = function onNewsFilterRemoteMessage(msg) {
15676
+ this.log.debug(_formatting.msgfmt.fmt(msg));
15677
+ this.events.fire("newsRemoteMessage", msg);
15678
+ };
15679
+
15680
+ StompStream.prototype.onNewsErrorRemoteMessage = function onNewsErrorRemoteMessage(msg) {
15681
+ this.log.debug(_formatting.msgfmt.fmt(msg));
15682
+ this.events.fire("newsRemoteMessage", msg);
15683
+ };
15684
+
15318
15685
  StompStream.prototype.onTradeUnsubscribeResponse = function onTradeUnsubscribeResponse(msg) {
15319
15686
  var tradeSub = this.pendingTradeUnsubscription[msg.__id];
15320
15687
  var callback = tradeSub.callback;
@@ -15824,7 +16191,7 @@ exports.__esModule = true;
15824
16191
  */
15825
16192
 
15826
16193
  var LIBRARY_NAME = exports.LIBRARY_NAME = "JavaScript";
15827
- var VERSION = exports.VERSION = "2.64.0";
16194
+ var VERSION = exports.VERSION = "2.66.0";
15828
16195
 
15829
16196
  /**
15830
16197
  * Streamer API namespace.
@@ -15908,7 +16275,8 @@ messages.MessageTypeNames = {
15908
16275
  NEWS_ERROR_MESSAGE: "C38",
15909
16276
  NEWS_SUCCESS_MESSAGE: "C39",
15910
16277
  AUTH_TOKEN: "C41",
15911
- AUTH_TOKEN_RESPONSE: "C42"
16278
+ AUTH_TOKEN_RESPONSE: "C42",
16279
+ NEWS_OPEN_RESPONSE: "C43"
15912
16280
  },
15913
16281
  /**
15914
16282
  * Name space for data message type identifiers.<br>
@@ -16099,6 +16467,12 @@ messages.control.NewsSubscribeMessage = function () {
16099
16467
  * @see exports.messages.MimeTypes
16100
16468
  */
16101
16469
  this.mimetype = null;
16470
+
16471
+ /**
16472
+ * Optional client ID for News reconnection.
16473
+ * @type {string}
16474
+ */
16475
+ this.newsClientId = null;
16102
16476
  };
16103
16477
  messages.control.NewsSubscribeMessage.prototype = new messages.control.CtrlMessage();
16104
16478
 
@@ -16353,21 +16727,6 @@ messages.control.ExchangeUnsubscribeResponse = function () {
16353
16727
 
16354
16728
  messages.control.ExchangeUnsubscribeResponse.prototype = new messages.control.BaseResponse();
16355
16729
 
16356
- /**
16357
- * Creates an news un-subscribe response message.
16358
- * @constructor
16359
- */
16360
- messages.control.NewsUnsubscribeResponse = function () {
16361
- this.init(messages.MessageTypeNames.ctrl.NEWS_UNSUBSCRIBE_RESPONSE);
16362
-
16363
- /**
16364
- *
16365
- * @type {Array.<messages.control.StreamEntitlement>}
16366
- */
16367
- this.unsubscribed = null;
16368
- };
16369
- messages.control.NewsUnsubscribeResponse.prototype = new messages.control.BaseResponse();
16370
-
16371
16730
  /**
16372
16731
  * Creates a Corporate Event response message.
16373
16732
  * @constructor
@@ -16753,6 +17112,7 @@ messages.control.Action = {
16753
17112
  * @readonly
16754
17113
  */
16755
17114
  messages.control.NewsAction = {
17115
+ NEWS_OPEN: "NEWS_OPEN",
16756
17116
  NEWS_FLT_ADD: "NEWS_FLT_ADD",
16757
17117
  NEWS_FLT_DELETE: "NEWS_FLT_DELETE",
16758
17118
  NEWS_FLT_UPDATE: "NEWS_FLT_UPDATE",