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

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 (50) hide show
  1. package/README.md +4 -1
  2. package/bundle/{ms.post-3.2.6.gbl.js → ms.post-3.2.7.gbl.js} +44 -30
  3. package/bundle/ms.post-3.2.7.gbl.js.map +1 -0
  4. package/bundle/ms.post-3.2.7.gbl.min.js +7 -0
  5. package/bundle/{ms.post-3.2.6.gbl.min.js.map → ms.post-3.2.7.gbl.min.js.map} +1 -1
  6. package/bundle/ms.post-3.2.7.integrity.json +46 -0
  7. package/bundle/{ms.post-3.2.6.js → ms.post-3.2.7.js} +44 -30
  8. package/bundle/ms.post-3.2.7.js.map +1 -0
  9. package/bundle/ms.post-3.2.7.min.js +7 -0
  10. package/bundle/{ms.post-3.2.6.min.js.map → ms.post-3.2.7.min.js.map} +1 -1
  11. package/bundle/ms.post.gbl.js +43 -29
  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 +43 -29
  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 +41 -27
  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 +19 -3
  27. package/dist-esm/src/DataModels.js +1 -1
  28. package/dist-esm/src/EventBatch.js +1 -1
  29. package/dist-esm/src/HttpManager.js +39 -24
  30. package/dist-esm/src/HttpManager.js.map +1 -1
  31. package/dist-esm/src/Index.js +1 -1
  32. package/dist-esm/src/InternalConstants.js +1 -1
  33. package/dist-esm/src/KillSwitch.js +1 -1
  34. package/dist-esm/src/PostChannel.js +2 -2
  35. package/dist-esm/src/PostChannel.js.map +1 -1
  36. package/dist-esm/src/RetryPolicy.js +1 -1
  37. package/dist-esm/src/Serializer.d.ts +3 -3
  38. package/dist-esm/src/Serializer.js +3 -3
  39. package/dist-esm/src/Serializer.js.map +1 -1
  40. package/dist-esm/src/TimeoutOverrideWrapper.js +1 -1
  41. package/dist-esm/src/typings/XDomainRequest.js +1 -1
  42. package/package.json +2 -2
  43. package/src/DataModels.ts +19 -0
  44. package/src/HttpManager.ts +47 -26
  45. package/src/Serializer.ts +10 -10
  46. package/bundle/ms.post-3.2.6.gbl.js.map +0 -1
  47. package/bundle/ms.post-3.2.6.gbl.min.js +0 -7
  48. package/bundle/ms.post-3.2.6.integrity.json +0 -46
  49. package/bundle/ms.post-3.2.6.js.map +0 -1
  50. package/bundle/ms.post-3.2.6.min.js +0 -7
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.7
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  * (Microsoft Internal Only)
5
5
  */
@@ -231,7 +231,7 @@
231
231
  var _theSanitizer = valueSanitizer;
232
232
  var _isReservedCache = {};
233
233
  dynamicProto__default(Serializer, this, function (_self) {
234
- _self.createPayload = function (retryCnt, isTeardown, isSync, useSendBeacon, sendReason, sendType) {
234
+ _self.createPayload = function (retryCnt, isTeardown, isSync, isReducedPayload, sendReason, sendType) {
235
235
  return {
236
236
  apiKeys: [],
237
237
  payloadBlob: "",
@@ -243,7 +243,7 @@
243
243
  retryCnt: retryCnt,
244
244
  isTeardown: isTeardown,
245
245
  isSync: isSync,
246
- isBeacon: useSendBeacon,
246
+ isBeacon: isReducedPayload,
247
247
  sendType: sendType,
248
248
  sendReason: sendReason
249
249
  };
@@ -521,6 +521,17 @@
521
521
  }
522
522
  }
523
523
  }
524
+ function _prependTransports(theTransports, newTransports) {
525
+ if (newTransports) {
526
+ if (_1dsCoreJs.isNumber(newTransports)) {
527
+ theTransports = [newTransports].concat(theTransports);
528
+ }
529
+ else if (_1dsCoreJs.isArray(newTransports)) {
530
+ theTransports = newTransports.concat(theTransports);
531
+ }
532
+ }
533
+ return theTransports;
534
+ }
524
535
  var HttpManager = /** @class */ (function () {
525
536
  function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions, timeoutOverride) {
526
537
  this._responseHandlers = [];
@@ -545,6 +556,8 @@
545
556
  var _useHeaders = false;
546
557
  var _xhrTimeout;
547
558
  var _disableXhrSync;
559
+ var _disableFetchKeepAlive;
560
+ var _canHaveReducedPayload;
548
561
  dynamicProto__default(HttpManager, this, function (_self) {
549
562
  var _sendCredentials = true;
550
563
  _self.initialize = function (endpointUrl, core, postChannel, httpInterface, channelConfig) {
@@ -566,12 +579,17 @@
566
579
  enableCompoundKey = !!channelConfig.enableCompoundKey;
567
580
  }
568
581
  _xhrTimeout = channelConfig.xhrTimeout;
569
- _disableXhrSync = channelConfig.disableXhrSync;
582
+ _disableXhrSync = !!channelConfig.disableXhrSync;
583
+ _disableFetchKeepAlive = !!channelConfig.disableFetchKeepAlive;
570
584
  _useBeacons = !_1dsCoreJs.isReactNative();
571
585
  _serializer = new Serializer(_core, valueSanitizer, stringifyObjects, enableCompoundKey);
586
+ if (!_1dsCoreJs.isNullOrUndefined(channelConfig.useSendBeacon)) {
587
+ _useBeacons = !!channelConfig.useSendBeacon;
588
+ }
572
589
  var syncHttpInterface = httpInterface;
573
590
  var beaconHttpInterface = channelConfig.alwaysUseXhrOverride ? httpInterface : null;
574
591
  var fetchSyncHttpInterface = channelConfig.alwaysUseXhrOverride ? httpInterface : null;
592
+ var beaconUnloadTransports = [3 , 2 ];
575
593
  if (!httpInterface) {
576
594
  _customHttpInterface = false;
577
595
  var location_1 = _1dsCoreJs.getLocation();
@@ -581,29 +599,27 @@
581
599
  var theTransports = [];
582
600
  if (_1dsCoreJs.isReactNative()) {
583
601
  theTransports = [2 , 1 ];
602
+ beaconUnloadTransports = [2 , 1 , 3 ];
584
603
  }
585
604
  else {
586
605
  theTransports = [1 , 2 , 3 ];
587
606
  }
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
- }
607
+ theTransports = _prependTransports(theTransports, channelConfig.transports);
597
608
  httpInterface = _getSenderInterface(theTransports, false);
598
- syncHttpInterface = _getSenderInterface(theTransports, true);
599
609
  if (!httpInterface) {
600
610
  _1dsCoreJs._warnToConsole(_logger, "No available transport to send events");
601
611
  }
612
+ syncHttpInterface = _getSenderInterface(theTransports, true);
602
613
  }
614
+ if (!beaconHttpInterface) {
615
+ beaconUnloadTransports = _prependTransports(beaconUnloadTransports, channelConfig.unloadTransports);
616
+ beaconHttpInterface = _getSenderInterface(beaconUnloadTransports, true);
617
+ }
618
+ _canHaveReducedPayload = !_customHttpInterface && ((_useBeacons && _1dsCoreJs.isBeaconsSupported()) || (!_disableFetchKeepAlive && _1dsCoreJs.isFetchSupported(true)));
603
619
  _sendInterfaces = (_a = {},
604
620
  _a[0 ] = httpInterface,
605
621
  _a[1 ] = syncHttpInterface || _getSenderInterface([1 , 2 , 3 ], true),
606
- _a[2 ] = beaconHttpInterface || _getSenderInterface([3 , 2 ], true) || syncHttpInterface || _getSenderInterface([1 ], true),
622
+ _a[2 ] = beaconHttpInterface || syncHttpInterface || _getSenderInterface([1 ], true),
607
623
  _a[3 ] = fetchSyncHttpInterface || _getSenderInterface([2 , 3 ], true) || syncHttpInterface || _getSenderInterface([1 ], true),
608
624
  _a);
609
625
  };
@@ -621,7 +637,7 @@
621
637
  sendPostFunc = _xhrSendPost;
622
638
  }
623
639
  }
624
- else if (transportType === 2 && _1dsCoreJs.isFetchSupported(syncSupport)) {
640
+ else if (transportType === 2 && _1dsCoreJs.isFetchSupported(syncSupport) && (!syncSupport || (syncSupport && !_disableFetchKeepAlive))) {
625
641
  sendPostFunc = _fetchSendPost;
626
642
  }
627
643
  else if (_useBeacons && transportType === 3 && _1dsCoreJs.isBeaconsSupported()) {
@@ -945,12 +961,13 @@
945
961
  var thePayload = null;
946
962
  var serializationStart = _1dsCoreJs.getTime();
947
963
  var sendInterface = _sendInterfaces[sendType] || (isSynchronous_1 ? _sendInterfaces[1 ] : _sendInterfaces[0 ]);
948
- var isBeaconTransport = (_isUnloading || _isBeaconPayload(sendType) || (sendInterface && sendInterface._transport === 3 )) && _canUseSendBeaconApi();
964
+ var sendTransport = sendInterface && sendInterface._transport;
965
+ var isReducedPayload = _canHaveReducedPayload && (_isUnloading || _isBeaconPayload(sendType) || (sendTransport === 3 || (sendInterface._isSync && sendTransport === 2 )));
949
966
  while (_canSendPayload(theBatches, sendType, retryCount)) {
950
967
  var theBatch = theBatches.shift();
951
968
  if (theBatch && theBatch.count() > 0) {
952
969
  if (!_killSwitch.isTenantKilled(theBatch.iKey())) {
953
- thePayload = thePayload || _serializer.createPayload(retryCount, isTeardown, isSynchronous_1, isBeaconTransport, sendReason, sendType);
970
+ thePayload = thePayload || _serializer.createPayload(retryCount, isTeardown, isSynchronous_1, isReducedPayload, sendReason, sendType);
954
971
  if (!_serializer.appendPayload(thePayload, theBatch, maxEventsPerBatch)) {
955
972
  _doPayloadSend(thePayload, serializationStart, _1dsCoreJs.getTime(), sendReason);
956
973
  serializationStart = _1dsCoreJs.getTime();
@@ -1033,9 +1050,6 @@
1033
1050
  }
1034
1051
  return requestDetails;
1035
1052
  }
1036
- function _canUseSendBeaconApi() {
1037
- return !_customHttpInterface && _useBeacons && _1dsCoreJs.isBeaconsSupported();
1038
- }
1039
1053
  function _setTimingValue(timings, name, value) {
1040
1054
  timings[name] = timings[name] || {};
1041
1055
  timings[name][_postManager.identifier] = value;
@@ -1076,11 +1090,10 @@
1076
1090
  headers: requestDetails_1.hdrs,
1077
1091
  _thePayload: thePayload,
1078
1092
  _sendReason: sendReason,
1079
- timeout: _xhrTimeout
1093
+ timeout: _xhrTimeout,
1094
+ disableXhrSync: _disableXhrSync,
1095
+ disableFetchKeepAlive: _disableFetchKeepAlive
1080
1096
  };
1081
- if (!_1dsCoreJs.isUndefined(_disableXhrSync)) {
1082
- orgPayloadData.disableXhrSync = !!_disableXhrSync;
1083
- }
1084
1097
  if (useHeaders_1) {
1085
1098
  if (!_hasHeader(orgPayloadData.headers, STR_CACHE_CONTROL)) {
1086
1099
  orgPayloadData.headers[STR_CACHE_CONTROL] = DEFAULT_CACHE_CONTROL;
@@ -1120,7 +1133,8 @@
1120
1133
  urlString: orgPayloadData.urlString,
1121
1134
  headers: _1dsCoreJs.extend({}, orgPayloadData.headers),
1122
1135
  timeout: orgPayloadData.timeout,
1123
- disableXhrSync: orgPayloadData.disableXhrSync
1136
+ disableXhrSync: orgPayloadData.disableXhrSync,
1137
+ disableFetchKeepAlive: orgPayloadData.disableFetchKeepAlive
1124
1138
  };
1125
1139
  var senderCalled_1 = false;
1126
1140
  _1dsCoreJs.doPerf(_core, function () { return "HttpManager:_doPayloadSend.sendHook"; }, function () {
@@ -1390,7 +1404,7 @@
1390
1404
  var _this = _super.call(this) || this;
1391
1405
  _this.identifier = "PostChannel";
1392
1406
  _this.priority = 1011;
1393
- _this.version = '3.2.6';
1407
+ _this.version = '3.2.7';
1394
1408
  var _config;
1395
1409
  var _isTeardownCalled = false;
1396
1410
  var _flushCallbackQueue = [];