@microsoft/1ds-post-js 3.2.6 → 3.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +5 -1
  2. package/bundle/{ms.post-3.2.6.gbl.js → ms.post-3.2.8.gbl.js} +132 -85
  3. package/bundle/ms.post-3.2.8.gbl.js.map +1 -0
  4. package/bundle/ms.post-3.2.8.gbl.min.js +7 -0
  5. package/bundle/ms.post-3.2.8.gbl.min.js.map +1 -0
  6. package/bundle/ms.post-3.2.8.integrity.json +46 -0
  7. package/bundle/{ms.post-3.2.6.js → ms.post-3.2.8.js} +132 -85
  8. package/bundle/ms.post-3.2.8.js.map +1 -0
  9. package/bundle/ms.post-3.2.8.min.js +7 -0
  10. package/bundle/ms.post-3.2.8.min.js.map +1 -0
  11. package/bundle/ms.post.gbl.js +131 -84
  12. package/bundle/ms.post.gbl.js.map +1 -1
  13. package/bundle/ms.post.gbl.min.js +2 -2
  14. package/bundle/ms.post.gbl.min.js.map +1 -1
  15. package/bundle/ms.post.integrity.json +17 -17
  16. package/bundle/ms.post.js +131 -84
  17. package/bundle/ms.post.js.map +1 -1
  18. package/bundle/ms.post.min.js +2 -2
  19. package/bundle/ms.post.min.js.map +1 -1
  20. package/dist/ms.post.js +56 -37
  21. package/dist/ms.post.js.map +1 -1
  22. package/dist/ms.post.min.js +2 -2
  23. package/dist/ms.post.min.js.map +1 -1
  24. package/dist-esm/src/BatchNotificationActions.js +1 -1
  25. package/dist-esm/src/ClockSkewManager.js +1 -1
  26. package/dist-esm/src/DataModels.d.ts +24 -3
  27. package/dist-esm/src/DataModels.js +1 -1
  28. package/dist-esm/src/EventBatch.js +3 -3
  29. package/dist-esm/src/EventBatch.js.map +1 -1
  30. package/dist-esm/src/HttpManager.js +51 -32
  31. package/dist-esm/src/HttpManager.js.map +1 -1
  32. package/dist-esm/src/Index.js +1 -1
  33. package/dist-esm/src/InternalConstants.d.ts +1 -0
  34. package/dist-esm/src/InternalConstants.js +2 -1
  35. package/dist-esm/src/InternalConstants.js.map +1 -1
  36. package/dist-esm/src/KillSwitch.js +1 -1
  37. package/dist-esm/src/PostChannel.js +3 -3
  38. package/dist-esm/src/PostChannel.js.map +1 -1
  39. package/dist-esm/src/RetryPolicy.js +1 -1
  40. package/dist-esm/src/Serializer.d.ts +3 -3
  41. package/dist-esm/src/Serializer.js +5 -4
  42. package/dist-esm/src/Serializer.js.map +1 -1
  43. package/dist-esm/src/TimeoutOverrideWrapper.js +1 -1
  44. package/dist-esm/src/typings/XDomainRequest.js +1 -1
  45. package/package.json +4 -4
  46. package/src/DataModels.ts +26 -1
  47. package/src/EventBatch.ts +2 -2
  48. package/src/HttpManager.ts +59 -34
  49. package/src/InternalConstants.ts +1 -0
  50. package/src/PostChannel.ts +1 -1
  51. package/src/Serializer.ts +12 -11
  52. package/bundle/ms.post-3.2.6.gbl.js.map +0 -1
  53. package/bundle/ms.post-3.2.6.gbl.min.js +0 -7
  54. package/bundle/ms.post-3.2.6.gbl.min.js.map +0 -1
  55. package/bundle/ms.post-3.2.6.integrity.json +0 -46
  56. package/bundle/ms.post-3.2.6.js.map +0 -1
  57. package/bundle/ms.post-3.2.6.min.js +0 -7
  58. package/bundle/ms.post-3.2.6.min.js.map +0 -1
package/dist/ms.post.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * 1DS JS SDK POST plugin, 3.2.6
2
+ * 1DS JS SDK POST plugin, 3.2.8
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  * (Microsoft Internal Only)
5
5
  */
@@ -17,6 +17,7 @@
17
17
  var NRT_PROFILE = "NEAR_REAL_TIME";
18
18
  var BE_PROFILE = "BEST_EFFORT";
19
19
 
20
+ var STR_EMPTY = "";
20
21
  var STR_POST_METHOD = "POST";
21
22
  var STR_DISABLED_PROPERTY_NAME = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
22
23
  var STR_DROPPED = "drop";
@@ -67,7 +68,7 @@
67
68
  return iKey;
68
69
  };
69
70
  _self.Msfpc = function () {
70
- return _msfpc || "";
71
+ return _msfpc || STR_EMPTY;
71
72
  };
72
73
  _self.count = function () {
73
74
  return events.length;
@@ -231,10 +232,10 @@
231
232
  var _theSanitizer = valueSanitizer;
232
233
  var _isReservedCache = {};
233
234
  dynamicProto__default(Serializer, this, function (_self) {
234
- _self.createPayload = function (retryCnt, isTeardown, isSync, useSendBeacon, sendReason, sendType) {
235
+ _self.createPayload = function (retryCnt, isTeardown, isSync, isReducedPayload, sendReason, sendType) {
235
236
  return {
236
237
  apiKeys: [],
237
- payloadBlob: "",
238
+ payloadBlob: STR_EMPTY,
238
239
  overflow: null,
239
240
  sizeExceed: [],
240
241
  failedEvts: [],
@@ -243,7 +244,7 @@
243
244
  retryCnt: retryCnt,
244
245
  isTeardown: isTeardown,
245
246
  isSync: isSync,
246
- isBeacon: useSendBeacon,
247
+ isBeacon: isReducedPayload,
247
248
  sendType: sendType,
248
249
  sendReason: sendReason
249
250
  };
@@ -490,7 +491,7 @@
490
491
  }
491
492
  catch (e) {
492
493
  }
493
- return "";
494
+ return STR_EMPTY;
494
495
  }
495
496
  function _hasHeader(headers, header) {
496
497
  var hasHeader = false;
@@ -521,6 +522,17 @@
521
522
  }
522
523
  }
523
524
  }
525
+ function _prependTransports(theTransports, newTransports) {
526
+ if (newTransports) {
527
+ if (_1dsCoreJs.isNumber(newTransports)) {
528
+ theTransports = [newTransports].concat(theTransports);
529
+ }
530
+ else if (_1dsCoreJs.isArray(newTransports)) {
531
+ theTransports = newTransports.concat(theTransports);
532
+ }
533
+ }
534
+ return theTransports;
535
+ }
524
536
  var HttpManager = /** @class */ (function () {
525
537
  function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions, timeoutOverride) {
526
538
  this._responseHandlers = [];
@@ -545,6 +557,9 @@
545
557
  var _useHeaders = false;
546
558
  var _xhrTimeout;
547
559
  var _disableXhrSync;
560
+ var _disableFetchKeepAlive;
561
+ var _canHaveReducedPayload;
562
+ var _addNoResponse;
548
563
  dynamicProto__default(HttpManager, this, function (_self) {
549
564
  var _sendCredentials = true;
550
565
  _self.initialize = function (endpointUrl, core, postChannel, httpInterface, channelConfig) {
@@ -566,12 +581,18 @@
566
581
  enableCompoundKey = !!channelConfig.enableCompoundKey;
567
582
  }
568
583
  _xhrTimeout = channelConfig.xhrTimeout;
569
- _disableXhrSync = channelConfig.disableXhrSync;
584
+ _disableXhrSync = !!channelConfig.disableXhrSync;
585
+ _disableFetchKeepAlive = !!channelConfig.disableFetchKeepAlive;
586
+ _addNoResponse = channelConfig.addNoResponse !== false;
570
587
  _useBeacons = !_1dsCoreJs.isReactNative();
571
588
  _serializer = new Serializer(_core, valueSanitizer, stringifyObjects, enableCompoundKey);
589
+ if (!_1dsCoreJs.isNullOrUndefined(channelConfig.useSendBeacon)) {
590
+ _useBeacons = !!channelConfig.useSendBeacon;
591
+ }
572
592
  var syncHttpInterface = httpInterface;
573
593
  var beaconHttpInterface = channelConfig.alwaysUseXhrOverride ? httpInterface : null;
574
594
  var fetchSyncHttpInterface = channelConfig.alwaysUseXhrOverride ? httpInterface : null;
595
+ var beaconUnloadTransports = [3 , 2 ];
575
596
  if (!httpInterface) {
576
597
  _customHttpInterface = false;
577
598
  var location_1 = _1dsCoreJs.getLocation();
@@ -581,29 +602,27 @@
581
602
  var theTransports = [];
582
603
  if (_1dsCoreJs.isReactNative()) {
583
604
  theTransports = [2 , 1 ];
605
+ beaconUnloadTransports = [2 , 1 , 3 ];
584
606
  }
585
607
  else {
586
608
  theTransports = [1 , 2 , 3 ];
587
609
  }
588
- var configTransports = channelConfig.transports;
589
- if (configTransports) {
590
- if (_1dsCoreJs.isNumber(configTransports)) {
591
- theTransports = [configTransports].concat(theTransports);
592
- }
593
- else if (_1dsCoreJs.isArray(configTransports)) {
594
- theTransports = configTransports.concat(theTransports);
595
- }
596
- }
610
+ theTransports = _prependTransports(theTransports, channelConfig.transports);
597
611
  httpInterface = _getSenderInterface(theTransports, false);
598
- syncHttpInterface = _getSenderInterface(theTransports, true);
599
612
  if (!httpInterface) {
600
613
  _1dsCoreJs._warnToConsole(_logger, "No available transport to send events");
601
614
  }
615
+ syncHttpInterface = _getSenderInterface(theTransports, true);
616
+ }
617
+ if (!beaconHttpInterface) {
618
+ beaconUnloadTransports = _prependTransports(beaconUnloadTransports, channelConfig.unloadTransports);
619
+ beaconHttpInterface = _getSenderInterface(beaconUnloadTransports, true);
602
620
  }
621
+ _canHaveReducedPayload = !_customHttpInterface && ((_useBeacons && _1dsCoreJs.isBeaconsSupported()) || (!_disableFetchKeepAlive && _1dsCoreJs.isFetchSupported(true)));
603
622
  _sendInterfaces = (_a = {},
604
623
  _a[0 ] = httpInterface,
605
624
  _a[1 ] = syncHttpInterface || _getSenderInterface([1 , 2 , 3 ], true),
606
- _a[2 ] = beaconHttpInterface || _getSenderInterface([3 , 2 ], true) || syncHttpInterface || _getSenderInterface([1 ], true),
625
+ _a[2 ] = beaconHttpInterface || syncHttpInterface || _getSenderInterface([1 ], true),
607
626
  _a[3 ] = fetchSyncHttpInterface || _getSenderInterface([2 , 3 ], true) || syncHttpInterface || _getSenderInterface([1 ], true),
608
627
  _a);
609
628
  };
@@ -621,7 +640,7 @@
621
640
  sendPostFunc = _xhrSendPost;
622
641
  }
623
642
  }
624
- else if (transportType === 2 && _1dsCoreJs.isFetchSupported(syncSupport)) {
643
+ else if (transportType === 2 && _1dsCoreJs.isFetchSupported(syncSupport) && (!syncSupport || (syncSupport && !_disableFetchKeepAlive))) {
625
644
  sendPostFunc = _fetchSendPost;
626
645
  }
627
646
  else if (_useBeacons && transportType === 3 && _1dsCoreJs.isBeaconsSupported()) {
@@ -683,7 +702,9 @@
683
702
  requestInit.keepalive = true;
684
703
  if (payload._sendReason === 2 ) {
685
704
  ignoreResponse = true;
686
- theUrl += _noResponseQs;
705
+ if (_addNoResponse) {
706
+ theUrl += _noResponseQs;
707
+ }
687
708
  }
688
709
  }
689
710
  if (_sendCredentials) {
@@ -694,7 +715,7 @@
694
715
  }
695
716
  fetch(theUrl, requestInit).then(function (response) {
696
717
  var headerMap = {};
697
- var responseText = "";
718
+ var responseText = STR_EMPTY;
698
719
  var headers = response.headers;
699
720
  if (headers) {
700
721
  headers["forEach"](function (value, name) {
@@ -788,7 +809,7 @@
788
809
  var internalPayloadData = payload;
789
810
  var status = 200;
790
811
  var thePayload = internalPayloadData._thePayload;
791
- var theUrl = payload.urlString + _noResponseQs;
812
+ var theUrl = payload.urlString + (_addNoResponse ? _noResponseQs : STR_EMPTY);
792
813
  try {
793
814
  var nav_1 = _1dsCoreJs.getNavigator();
794
815
  if (!nav_1.sendBeacon(theUrl, payload.data)) {
@@ -820,7 +841,7 @@
820
841
  status = 0;
821
842
  }
822
843
  finally {
823
- _doOnComplete(oncomplete, status, {}, "");
844
+ _doOnComplete(oncomplete, status, {}, STR_EMPTY);
824
845
  }
825
846
  }
826
847
  function _isBeaconPayload(sendType) {
@@ -945,12 +966,13 @@
945
966
  var thePayload = null;
946
967
  var serializationStart = _1dsCoreJs.getTime();
947
968
  var sendInterface = _sendInterfaces[sendType] || (isSynchronous_1 ? _sendInterfaces[1 ] : _sendInterfaces[0 ]);
948
- var isBeaconTransport = (_isUnloading || _isBeaconPayload(sendType) || (sendInterface && sendInterface._transport === 3 )) && _canUseSendBeaconApi();
969
+ var sendTransport = sendInterface && sendInterface._transport;
970
+ var isReducedPayload = _canHaveReducedPayload && (_isUnloading || _isBeaconPayload(sendType) || (sendTransport === 3 || (sendInterface._isSync && sendTransport === 2 )));
949
971
  while (_canSendPayload(theBatches, sendType, retryCount)) {
950
972
  var theBatch = theBatches.shift();
951
973
  if (theBatch && theBatch.count() > 0) {
952
974
  if (!_killSwitch.isTenantKilled(theBatch.iKey())) {
953
- thePayload = thePayload || _serializer.createPayload(retryCount, isTeardown, isSynchronous_1, isBeaconTransport, sendReason, sendType);
975
+ thePayload = thePayload || _serializer.createPayload(retryCount, isTeardown, isSynchronous_1, isReducedPayload, sendReason, sendType);
954
976
  if (!_serializer.appendPayload(thePayload, theBatch, maxEventsPerBatch)) {
955
977
  _doPayloadSend(thePayload, serializationStart, _1dsCoreJs.getTime(), sendReason);
956
978
  serializationStart = _1dsCoreJs.getTime();
@@ -1006,7 +1028,7 @@
1006
1028
  }
1007
1029
  _addRequestDetails(requestDetails, STR_CLIENT_ID, "NO_AUTH", useHeaders);
1008
1030
  _addRequestDetails(requestDetails, STR_CLIENT_VERSION, _1dsCoreJs.FullVersionString, useHeaders);
1009
- var apiQsKeys = "";
1031
+ var apiQsKeys = STR_EMPTY;
1010
1032
  _1dsCoreJs.arrForEach(thePayload.apiKeys, function (apiKey) {
1011
1033
  if (apiQsKeys.length > 0) {
1012
1034
  apiQsKeys += ",";
@@ -1033,9 +1055,6 @@
1033
1055
  }
1034
1056
  return requestDetails;
1035
1057
  }
1036
- function _canUseSendBeaconApi() {
1037
- return !_customHttpInterface && _useBeacons && _1dsCoreJs.isBeaconsSupported();
1038
- }
1039
1058
  function _setTimingValue(timings, name, value) {
1040
1059
  timings[name] = timings[name] || {};
1041
1060
  timings[name][_postManager.identifier] = value;
@@ -1076,11 +1095,10 @@
1076
1095
  headers: requestDetails_1.hdrs,
1077
1096
  _thePayload: thePayload,
1078
1097
  _sendReason: sendReason,
1079
- timeout: _xhrTimeout
1098
+ timeout: _xhrTimeout,
1099
+ disableXhrSync: _disableXhrSync,
1100
+ disableFetchKeepAlive: _disableFetchKeepAlive
1080
1101
  };
1081
- if (!_1dsCoreJs.isUndefined(_disableXhrSync)) {
1082
- orgPayloadData.disableXhrSync = !!_disableXhrSync;
1083
- }
1084
1102
  if (useHeaders_1) {
1085
1103
  if (!_hasHeader(orgPayloadData.headers, STR_CACHE_CONTROL)) {
1086
1104
  orgPayloadData.headers[STR_CACHE_CONTROL] = DEFAULT_CACHE_CONTROL;
@@ -1120,7 +1138,8 @@
1120
1138
  urlString: orgPayloadData.urlString,
1121
1139
  headers: _1dsCoreJs.extend({}, orgPayloadData.headers),
1122
1140
  timeout: orgPayloadData.timeout,
1123
- disableXhrSync: orgPayloadData.disableXhrSync
1141
+ disableXhrSync: orgPayloadData.disableXhrSync,
1142
+ disableFetchKeepAlive: orgPayloadData.disableFetchKeepAlive
1124
1143
  };
1125
1144
  var senderCalled_1 = false;
1126
1145
  _1dsCoreJs.doPerf(_core, function () { return "HttpManager:_doPayloadSend.sendHook"; }, function () {
@@ -1291,7 +1310,7 @@
1291
1310
  return encodeURIComponent(msfpc);
1292
1311
  }
1293
1312
  }
1294
- return "";
1313
+ return STR_EMPTY;
1295
1314
  }
1296
1315
  function _handleCollectorResponse(responseText) {
1297
1316
  var responseHandlers = _self._responseHandlers;
@@ -1390,7 +1409,7 @@
1390
1409
  var _this = _super.call(this) || this;
1391
1410
  _this.identifier = "PostChannel";
1392
1411
  _this.priority = 1011;
1393
- _this.version = '3.2.6';
1412
+ _this.version = '3.2.8';
1394
1413
  var _config;
1395
1414
  var _isTeardownCalled = false;
1396
1415
  var _flushCallbackQueue = [];
@@ -1462,7 +1481,7 @@
1462
1481
  _httpManager.sendHook = _config.payloadPreprocessor;
1463
1482
  _httpManager.sendListener = _config.payloadListener;
1464
1483
  var endpointUrl = _config.overrideEndpointUrl ? _config.overrideEndpointUrl : coreConfig.endpointUrl;
1465
- _self._notificationManager = coreConfig.extensionConfig.NotificationManager;
1484
+ _self._notificationManager = core.getNotifyMgr();
1466
1485
  _httpManager.initialize(endpointUrl, _self.core, _self, _xhrOverride, _config);
1467
1486
  var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];
1468
1487
  _1dsCoreJs.addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace);