@microsoft/applicationinsights-channel-js 3.0.4-nightly3.2309-09 → 3.0.4-nightly3.2309-10

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 (51) hide show
  1. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.cjs.js → applicationinsights-channel-js.3.0.4-nightly3.2309-10.cjs.js} +187 -88
  2. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.cjs.js.map → applicationinsights-channel-js.3.0.4-nightly3.2309-10.cjs.js.map} +1 -1
  3. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.cjs.min.js → applicationinsights-channel-js.3.0.4-nightly3.2309-10.cjs.min.js} +3 -3
  4. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.cjs.min.js.map → applicationinsights-channel-js.3.0.4-nightly3.2309-10.cjs.min.js.map} +1 -1
  5. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.gbl.js → applicationinsights-channel-js.3.0.4-nightly3.2309-10.gbl.js} +189 -90
  6. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.gbl.js.map → applicationinsights-channel-js.3.0.4-nightly3.2309-10.gbl.js.map} +1 -1
  7. package/browser/es5/applicationinsights-channel-js.3.0.4-nightly3.2309-10.gbl.min.js +6 -0
  8. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.gbl.min.js.map → applicationinsights-channel-js.3.0.4-nightly3.2309-10.gbl.min.js.map} +1 -1
  9. package/browser/es5/applicationinsights-channel-js.3.0.4-nightly3.2309-10.integrity.json +66 -0
  10. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.js → applicationinsights-channel-js.3.0.4-nightly3.2309-10.js} +189 -90
  11. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.js.map → applicationinsights-channel-js.3.0.4-nightly3.2309-10.js.map} +1 -1
  12. package/browser/es5/applicationinsights-channel-js.3.0.4-nightly3.2309-10.min.js +6 -0
  13. package/browser/es5/{applicationinsights-channel-js.3.0.4-nightly3.2309-09.min.js.map → applicationinsights-channel-js.3.0.4-nightly3.2309-10.min.js.map} +1 -1
  14. package/browser/es5/applicationinsights-channel-js.3.cjs.js +186 -87
  15. package/browser/es5/applicationinsights-channel-js.3.cjs.js.map +1 -1
  16. package/browser/es5/applicationinsights-channel-js.3.cjs.min.js +2 -2
  17. package/browser/es5/applicationinsights-channel-js.3.cjs.min.js.map +1 -1
  18. package/browser/es5/applicationinsights-channel-js.3.gbl.js +188 -89
  19. package/browser/es5/applicationinsights-channel-js.3.gbl.js.map +1 -1
  20. package/browser/es5/applicationinsights-channel-js.3.gbl.min.js +2 -2
  21. package/browser/es5/applicationinsights-channel-js.3.gbl.min.js.map +1 -1
  22. package/browser/es5/applicationinsights-channel-js.3.integrity.json +25 -25
  23. package/browser/es5/applicationinsights-channel-js.3.js +188 -89
  24. package/browser/es5/applicationinsights-channel-js.3.js.map +1 -1
  25. package/browser/es5/applicationinsights-channel-js.3.min.js +2 -2
  26. package/browser/es5/applicationinsights-channel-js.3.min.js.map +1 -1
  27. package/dist/es5/applicationinsights-channel-js.js +186 -87
  28. package/dist/es5/applicationinsights-channel-js.js.map +1 -1
  29. package/dist/es5/applicationinsights-channel-js.min.js +2 -2
  30. package/dist/es5/applicationinsights-channel-js.min.js.map +1 -1
  31. package/dist-es5/EnvelopeCreator.js +2 -2
  32. package/dist-es5/EnvelopeCreator.js.map +1 -1
  33. package/dist-es5/Interfaces.js +1 -1
  34. package/dist-es5/InternalConstants.js +1 -1
  35. package/dist-es5/Offline.js +1 -1
  36. package/dist-es5/SendBuffer.js +1 -1
  37. package/dist-es5/Sender.js +198 -98
  38. package/dist-es5/Sender.js.map +1 -1
  39. package/dist-es5/Serializer.js +1 -1
  40. package/dist-es5/TelemetryProcessors/Sample.js +1 -1
  41. package/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js +1 -1
  42. package/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js +1 -1
  43. package/dist-es5/__DynamicConstants.js +14 -12
  44. package/dist-es5/__DynamicConstants.js.map +1 -1
  45. package/dist-es5/applicationinsights-channel-js.js +1 -1
  46. package/package.json +3 -3
  47. package/types/applicationinsights-channel-js.d.ts +22 -1
  48. package/types/applicationinsights-channel-js.namespaced.d.ts +22 -1
  49. package/browser/es5/applicationinsights-channel-js.3.0.4-nightly3.2309-09.gbl.min.js +0 -6
  50. package/browser/es5/applicationinsights-channel-js.3.0.4-nightly3.2309-09.integrity.json +0 -66
  51. package/browser/es5/applicationinsights-channel-js.3.0.4-nightly3.2309-09.min.js +0 -6
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Channel, 3.0.4-nightly3.2309-09
2
+ * Application Insights JavaScript SDK - Channel, 3.0.4-nightly3.2309-10
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
6
6
  var undef = "undefined";
7
- var nsKey, key, nm, theExports = {}, modName = "es5_applicationinsights_channel_js_3_0_4_nightly3_2309_09", msMod="__ms$mod__";
8
- var mods={}, modDetail=mods[modName]={}, ver="3.0.4-nightly3.2309-09";
7
+ var nsKey, key, nm, theExports = {}, modName = "es5_applicationinsights_channel_js_3_0_4_nightly3_2309_10", msMod="__ms$mod__";
8
+ var mods={}, modDetail=mods[modName]={}, ver="3.0.4-nightly3.2309-10";
9
9
  var baseNs=global, nsKey="Microsoft", baseNs=baseNs[nsKey]=(baseNs[nsKey]||{});
10
10
  // Versioned namespace "Microsoft.ApplicationInsights3"
11
11
  var exportNs=baseNs, nsKey="ApplicationInsights3", exportNs=exportNs[nsKey]=(exportNs[nsKey]||{});
@@ -1783,7 +1783,7 @@ function newId(maxLength) {
1783
1783
  return result;
1784
1784
  }
1785
1785
 
1786
- var version = '3.0.4-nightly3.2309-09';
1786
+ var version = '3.0.4-nightly3.2309-10';
1787
1787
  var instanceName = "." + newId(6);
1788
1788
  var _dataUid = 0;
1789
1789
  function _canAcceptData(target) {
@@ -4681,6 +4681,7 @@ var _DYN_BUFFER_OVERRIDE = "bufferOverride";
4681
4681
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
4682
4682
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
4683
4683
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
4684
+ var _DYN_SEND_POST = "sendPOST";
4684
4685
  var _DYN_TRIGGER_SEND = "triggerSend";
4685
4686
  var _DYN_DIAG_LOG = "diagLog";
4686
4687
  var _DYN__SENDER = "_sender";
@@ -4688,21 +4689,22 @@ var _DYN_CUSTOM_HEADERS = "customHeaders";
4688
4689
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
4689
4690
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
4690
4691
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
4691
- var _DYN_ENABLE_SESSION_STORA4 = "enableSessionStorageBuffer";
4692
+ var _DYN_ALWAYS_USE_XHR_OVERR4 = "alwaysUseXhrOverride";
4693
+ var _DYN_ENABLE_SESSION_STORA5 = "enableSessionStorageBuffer";
4692
4694
  var _DYN__BUFFER = "_buffer";
4695
+ var _DYN_ONUNLOAD_DISABLE_FET6 = "onunloadDisableFetch";
4693
4696
  var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
4694
- var _DYN_DISABLE_XHR = "disableXhr";
4695
- var _DYN_ONUNLOAD_DISABLE_FET5 = "onunloadDisableFetch";
4696
4697
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
4697
4698
  var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
4698
4699
  var _DYN_BASE_TYPE = "baseType";
4699
4700
  var _DYN_SAMPLE_RATE = "sampleRate";
4700
- var _DYN__XHR_READY_STATE_CHA6 = "_xhrReadyStateChange";
4701
+ var _DYN__XHR_READY_STATE_CHA7 = "_xhrReadyStateChange";
4701
4702
  var _DYN__ON_ERROR = "_onError";
4702
4703
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
4703
4704
  var _DYN__ON_SUCCESS = "_onSuccess";
4704
4705
  var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
4705
4706
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
4707
+ var _DYN_ORI_PAYLOAD = "oriPayload";
4706
4708
  var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
4707
4709
  var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
4708
4710
  var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
@@ -4817,7 +4819,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
4817
4819
  }
4818
4820
  }
4819
4821
  var EnvelopeCreator = {
4820
- Version: '3.0.4-nightly3.2309-09'
4822
+ Version: '3.0.4-nightly3.2309-10'
4821
4823
  };
4822
4824
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
4823
4825
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -5478,6 +5480,9 @@ function _getResponseText(xhr) {
5478
5480
  }
5479
5481
  return null;
5480
5482
  }
5483
+ function isOverrideFn(httpXHROverride) {
5484
+ return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
5485
+ }
5481
5486
  var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5482
5487
  endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)
5483
5488
  },
@@ -5485,11 +5490,11 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5485
5490
  _a[_DYN_MAX_BATCH_INTERVAL ] = 15000,
5486
5491
  _a[_DYN_MAX_BATCH_SIZE_IN_BY1 ] = 102400,
5487
5492
  _a.disableTelemetry = cfgDfBoolean(),
5488
- _a[_DYN_ENABLE_SESSION_STORA4 ] = cfgDfBoolean(true),
5493
+ _a[_DYN_ENABLE_SESSION_STORA5 ] = cfgDfBoolean(true),
5489
5494
  _a.isRetryDisabled = cfgDfBoolean(),
5490
5495
  _a[_DYN_IS_BEACON_API_DISABL3 ] = cfgDfBoolean(true),
5491
- _a[_DYN_DISABLE_XHR ] = cfgDfBoolean(),
5492
- _a[_DYN_ONUNLOAD_DISABLE_FET5 ] = cfgDfBoolean(),
5496
+ _a.disableXhr = cfgDfBoolean(),
5497
+ _a[_DYN_ONUNLOAD_DISABLE_FET6 ] = cfgDfBoolean(),
5493
5498
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = cfgDfBoolean(),
5494
5499
  _a[_DYN_INSTRUMENTATION_KEY ] = UNDEFINED_VALUE,
5495
5500
  _a.namePrefix = UNDEFINED_VALUE,
@@ -5498,6 +5503,8 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5498
5503
  _a[_DYN_CONVERT_UNDEFINED ] = UNDEFINED_VALUE,
5499
5504
  _a[_DYN_EVENTS_LIMIT_IN_MEM ] = 10000,
5500
5505
  _a[_DYN_BUFFER_OVERRIDE ] = false,
5506
+ _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },
5507
+ _a[_DYN_ALWAYS_USE_XHR_OVERR4 ] = cfgDfBoolean(),
5501
5508
  _a));
5502
5509
  function _chkSampling(value) {
5503
5510
  return !isNaN(value) && value > 0 && value <= 100;
@@ -5525,7 +5532,6 @@ var Sender = /** @class */ (function (_super) {
5525
5532
  var _stamp_specific_redirects;
5526
5533
  var _headers;
5527
5534
  var _syncFetchPayload = 0;
5528
- var _fallbackSender;
5529
5535
  var _syncUnloadSender;
5530
5536
  var _offlineListener;
5531
5537
  var _evtNamespace;
@@ -5543,6 +5549,10 @@ var Sender = /** @class */ (function (_super) {
5543
5549
  var _bufferOverrideUsed;
5544
5550
  var _namePrefix;
5545
5551
  var _enableSendPromise;
5552
+ var _alwaysUseCustomSend;
5553
+ var _disableXhr;
5554
+ var _fetchKeepAlive;
5555
+ var _xhrSend;
5546
5556
  dynamicProto(Sender, _this, function (_self, _base) {
5547
5557
  _initDefaults();
5548
5558
  _self.pause = function () {
@@ -5571,7 +5581,7 @@ var Sender = /** @class */ (function (_super) {
5571
5581
  };
5572
5582
  _self.onunloadFlush = function () {
5573
5583
  if (!_paused) {
5574
- if (_beaconSupported) {
5584
+ if (_beaconSupported || _alwaysUseCustomSend) {
5575
5585
  try {
5576
5586
  return _self[_DYN_TRIGGER_SEND ](true, _doUnloadSend, 2 );
5577
5587
  }
@@ -5623,8 +5633,10 @@ var Sender = /** @class */ (function (_super) {
5623
5633
  }
5624
5634
  _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 ];
5625
5635
  _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false) && isBeaconsSupported();
5636
+ _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 ];
5637
+ _disableXhr = !!senderConfig.disableXhr;
5626
5638
  var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE ];
5627
- var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA4 ] &&
5639
+ var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 ] &&
5628
5640
  (!!bufferOverride || utlCanUseSessionStorage());
5629
5641
  var namePrefix = senderConfig.namePrefix;
5630
5642
  var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)
@@ -5648,6 +5660,7 @@ var Sender = /** @class */ (function (_super) {
5648
5660
  _namePrefix = namePrefix;
5649
5661
  _sessionStorageUsed = canUseSessionStorage;
5650
5662
  _bufferOverrideUsed = bufferOverride;
5663
+ _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 ] && isFetchSupported(true);
5651
5664
  _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);
5652
5665
  _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY ];
5653
5666
  if (!_validateInstrumentationKey(_instrumentationKey, config)) {
@@ -5663,35 +5676,32 @@ var Sender = /** @class */ (function (_super) {
5663
5676
  _customHeaders = null;
5664
5677
  }
5665
5678
  _enableSendPromise = senderConfig.enableSendPromise;
5666
- var sendPostFunc = null;
5667
- if (!senderConfig[_DYN_DISABLE_XHR ] && useXDomainRequest()) {
5668
- sendPostFunc = _xdrSender;
5669
- }
5670
- else if (!senderConfig[_DYN_DISABLE_XHR ] && isXhrSupported()) {
5671
- sendPostFunc = _xhrSender;
5672
- }
5673
- if (!sendPostFunc && isFetchSupported()) {
5674
- sendPostFunc = _fetchSender;
5675
- }
5676
- _fallbackSender = sendPostFunc || _xhrSender;
5679
+ var customInterface = senderConfig.httpXHROverride;
5680
+ var httpInterface = null;
5681
+ var syncInterface = null;
5682
+ httpInterface = _getSenderInterface([1 , 2 ], false);
5683
+ var xhrInterface = { sendPOST: _xhrSender };
5684
+ _xhrSend = function (payload, isAsync) {
5685
+ return _doSend(xhrInterface, payload, isAsync);
5686
+ };
5677
5687
  if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 ] && isBeaconsSupported()) {
5678
- sendPostFunc = _beaconSender;
5688
+ httpInterface = _getSenderInterface([3 ], false);
5679
5689
  }
5680
- _self[_DYN__SENDER ] = sendPostFunc || _xhrSender;
5681
- if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 ] && isFetchSupported(true)) {
5690
+ httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);
5691
+ _self[_DYN__SENDER ] = function (payload, isAsync) {
5692
+ return _doSend(httpInterface, payload, isAsync);
5693
+ };
5694
+ if (_fetchKeepAlive) {
5682
5695
  _syncUnloadSender = _fetchKeepAliveSender;
5683
5696
  }
5684
- else if (isBeaconsSupported()) {
5685
- _syncUnloadSender = _beaconSender;
5697
+ syncInterface = _alwaysUseCustomSend ? customInterface : (_getSenderInterface([3 , 1 ], true) || customInterface);
5698
+ if ((_alwaysUseCustomSend || !_syncUnloadSender) && syncInterface) {
5699
+ _syncUnloadSender = function (payload, isAsync) {
5700
+ return _doSend(syncInterface, payload, isAsync);
5701
+ };
5686
5702
  }
5687
- else if (!senderConfig[_DYN_DISABLE_XHR ] && useXDomainRequest()) {
5688
- _syncUnloadSender = _xdrSender;
5689
- }
5690
- else if (!senderConfig[_DYN_DISABLE_XHR ] && isXhrSupported()) {
5691
- _syncUnloadSender = _xhrSender;
5692
- }
5693
- else {
5694
- _syncUnloadSender = _fallbackSender;
5703
+ if (!_syncUnloadSender) {
5704
+ _syncUnloadSender = _xhrSend;
5695
5705
  }
5696
5706
  _disableTelemetry = senderConfig.disableTelemetry;
5697
5707
  _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED ] || UNDEFINED_VALUE;
@@ -5763,7 +5773,7 @@ var Sender = /** @class */ (function (_super) {
5763
5773
  }
5764
5774
  _self.processNext(telemetryItem, itemCtx);
5765
5775
  };
5766
- _self[_DYN__XHR_READY_STATE_CHA6 ] = function (xhr, payload, countOfItemsInPayload) {
5776
+ _self[_DYN__XHR_READY_STATE_CHA7 ] = function (xhr, payload, countOfItemsInPayload) {
5767
5777
  if (xhr.readyState === 4) {
5768
5778
  _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
5769
5779
  }
@@ -5859,6 +5869,73 @@ var Sender = /** @class */ (function (_super) {
5859
5869
  function _isSampledIn(envelope) {
5860
5870
  return _self._sample.isSampledIn(envelope);
5861
5871
  }
5872
+ function _getSenderInterface(transports, syncSupport) {
5873
+ var _a;
5874
+ var transportType = null;
5875
+ var sendPostFunc = null;
5876
+ var lp = 0;
5877
+ while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
5878
+ transportType = transports[lp];
5879
+ if (!_disableXhr && transportType === 1 ) {
5880
+ if (useXDomainRequest()) {
5881
+ sendPostFunc = _xdrSender;
5882
+ }
5883
+ else if (isXhrSupported()) {
5884
+ sendPostFunc = _xhrSender;
5885
+ }
5886
+ }
5887
+ else if (transportType === 2 && isFetchSupported(syncSupport)) {
5888
+ sendPostFunc = _fetchSender;
5889
+ }
5890
+ else if (isBeaconsSupported() && transportType === 3 ) {
5891
+ sendPostFunc = _beaconSender;
5892
+ }
5893
+ lp++;
5894
+ }
5895
+ if (sendPostFunc) {
5896
+ return _a = {},
5897
+ _a[_DYN_SEND_POST ] = sendPostFunc,
5898
+ _a;
5899
+ }
5900
+ return null;
5901
+ }
5902
+ function _getOnComplete(payload, status, headers, response) {
5903
+ if (status === 200 && payload) {
5904
+ _self._onSuccess(payload, payload[_DYN_LENGTH ]);
5905
+ }
5906
+ response && _self[_DYN__ON_ERROR ](payload, response);
5907
+ }
5908
+ function _doSend(sendInterface, payload, isAsync) {
5909
+ var onComplete = function (status, headers, response) {
5910
+ return _getOnComplete(payload, status, headers, response);
5911
+ };
5912
+ var payloadData = _getPayload(payload);
5913
+ var sendPostFunc = sendInterface && sendInterface[_DYN_SEND_POST ];
5914
+ if (sendPostFunc && payloadData) {
5915
+ _self._buffer[_DYN_MARK_AS_SENT ](payload);
5916
+ return sendPostFunc(payloadData, onComplete, !isAsync);
5917
+ }
5918
+ return null;
5919
+ }
5920
+ function _getPayload(payload) {
5921
+ var _a;
5922
+ if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
5923
+ var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
5924
+ var payloadData = (_a = {},
5925
+ _a[_DYN_DATA ] = batch,
5926
+ _a.urlString = _endpointUrl,
5927
+ _a.headers = _headers,
5928
+ _a.disableXhrSync = _disableXhr,
5929
+ _a.disableFetchKeepAlive = !_fetchKeepAlive,
5930
+ _a[_DYN_ORI_PAYLOAD ] = payload,
5931
+ _a);
5932
+ return payloadData;
5933
+ }
5934
+ return null;
5935
+ }
5936
+ function _fetchSender(payload, oncomplete, sync) {
5937
+ return _doFetchSender(payload, oncomplete, false);
5938
+ }
5862
5939
  function _checkMaxSize(incomingPayload) {
5863
5940
  var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
5864
5941
  if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
@@ -5932,45 +6009,60 @@ var Sender = /** @class */ (function (_super) {
5932
6009
  }
5933
6010
  return false;
5934
6011
  }
6012
+ function _doOnComplete(oncomplete, status, headers, response) {
6013
+ try {
6014
+ oncomplete(status, headers, response);
6015
+ }
6016
+ catch (e) {
6017
+ }
6018
+ }
5935
6019
  function _doUnloadSend(payload, isAsync) {
6020
+ var onComplete = function (status, headers, response) {
6021
+ return _getOnComplete(payload, status, headers, response);
6022
+ };
5936
6023
  if (_syncUnloadSender) {
5937
6024
  _syncUnloadSender(payload, false);
5938
6025
  }
5939
6026
  else {
5940
- _beaconSender(payload);
6027
+ var payloadData = _getPayload(payload);
6028
+ _beaconSender(payloadData, onComplete);
5941
6029
  }
5942
6030
  }
5943
- function _doBeaconSend(payload) {
6031
+ function _doBeaconSend(payload, oncomplete) {
5944
6032
  var nav = getNavigator();
5945
- var buffer = _self[_DYN__BUFFER ];
5946
6033
  var url = _endpointUrl;
5947
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
5948
- var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
6034
+ var plainTextBatch = new Blob([payload], { type: "text/plain;charset=UTF-8" });
5949
6035
  var queued = nav.sendBeacon(url, plainTextBatch);
5950
6036
  if (queued) {
5951
- buffer[_DYN_MARK_AS_SENT ](payload);
5952
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
6037
+ oncomplete(200, {}, payload);
5953
6038
  }
5954
6039
  return queued;
5955
6040
  }
5956
- function _beaconSender(payload, isAsync) {
5957
- if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
5958
- if (!_doBeaconSend(payload)) {
6041
+ function _beaconSender(payload, oncomplete, sync) {
6042
+ var internalPayload = payload;
6043
+ var data = internalPayload && internalPayload[_DYN_DATA ];
6044
+ if (isString(data) && data[_DYN_LENGTH ] > 0) {
6045
+ if (!_doBeaconSend(data, oncomplete)) {
5959
6046
  var droppedPayload = [];
5960
- for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
5961
- var thePayload = payload[lp];
5962
- if (!_doBeaconSend([thePayload])) {
5963
- droppedPayload[_DYN_PUSH ](thePayload);
6047
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6048
+ if (oriPayload[_DYN_LENGTH ] > 0) {
6049
+ for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
6050
+ var thePayload = payload[lp];
6051
+ var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](thePayload);
6052
+ if (!_doBeaconSend(batch, oncomplete)) {
6053
+ droppedPayload[_DYN_PUSH ](thePayload);
6054
+ }
5964
6055
  }
5965
6056
  }
5966
6057
  if (droppedPayload[_DYN_LENGTH ] > 0) {
5967
- _fallbackSender && _fallbackSender(droppedPayload, true);
6058
+ _xhrSend && _xhrSend(droppedPayload, true);
5968
6059
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
5969
6060
  }
5970
6061
  }
5971
6062
  }
5972
6063
  }
5973
- function _xhrSender(payload, isAsync) {
6064
+ function _xhrSender(payload, oncomplete, sync) {
6065
+ var internalPayload = payload;
5974
6066
  var thePromise;
5975
6067
  var resolveFunc;
5976
6068
  var rejectFunc;
@@ -5981,7 +6073,7 @@ var Sender = /** @class */ (function (_super) {
5981
6073
  }
5982
6074
  catch (e) {
5983
6075
  }
5984
- xhr.open("POST", endPointUrl, isAsync);
6076
+ xhr.open("POST", endPointUrl, !sync);
5985
6077
  xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
5986
6078
  if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
5987
6079
  xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
@@ -5990,51 +6082,52 @@ var Sender = /** @class */ (function (_super) {
5990
6082
  xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
5991
6083
  });
5992
6084
  xhr.onreadystatechange = function () {
5993
- _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH ]);
6085
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6086
+ _self._xhrReadyStateChange(xhr, oriPayload, oriPayload[_DYN_LENGTH ]);
5994
6087
  if (xhr.readyState === 4) {
5995
6088
  resolveFunc && resolveFunc(true);
5996
6089
  }
5997
6090
  };
5998
6091
  xhr.onerror = function (event) {
5999
- _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXhr(xhr), event);
6092
+ _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
6000
6093
  rejectFunc && rejectFunc(event);
6001
6094
  };
6002
- if (isAsync && _enableSendPromise) {
6095
+ if (!sync && _enableSendPromise) {
6003
6096
  thePromise = createPromise(function (resolve, reject) {
6004
6097
  resolveFunc = resolve;
6005
6098
  rejectFunc = reject;
6006
6099
  });
6007
6100
  }
6008
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
6009
- xhr.send(batch);
6010
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
6101
+ xhr.send(payload[_DYN_DATA ]);
6011
6102
  return thePromise;
6012
6103
  }
6013
6104
  function _fetchKeepAliveSender(payload, isAsync) {
6105
+ var onComplete = function (status, headers, response) {
6106
+ return _getOnComplete(payload, status, headers, response);
6107
+ };
6014
6108
  if (isArray(payload)) {
6015
6109
  var payloadSize = payload[_DYN_LENGTH ];
6016
6110
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
6017
6111
  payloadSize += payload[lp][_DYN_LENGTH ];
6018
6112
  }
6113
+ var payloadData = _getPayload(payload);
6019
6114
  if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
6020
- _doFetchSender(payload, false);
6115
+ _doFetchSender(payloadData, onComplete, true);
6021
6116
  }
6022
6117
  else if (isBeaconsSupported()) {
6023
- _beaconSender(payload);
6118
+ _beaconSender(payloadData, onComplete);
6024
6119
  }
6025
6120
  else {
6026
- _fallbackSender && _fallbackSender(payload, true);
6121
+ _xhrSend && _xhrSend(payload, true);
6027
6122
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
6028
6123
  }
6029
6124
  }
6030
6125
  }
6031
- function _fetchSender(payload, isAsync) {
6032
- return _doFetchSender(payload, true);
6033
- }
6034
- function _doFetchSender(payload, isAsync) {
6126
+ function _doFetchSender(payload, oncomplete, sync) {
6035
6127
  var _a;
6036
6128
  var endPointUrl = _endpointUrl;
6037
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
6129
+ var internalPayload = payload;
6130
+ var batch = internalPayload[_DYN_DATA ];
6038
6131
  var plainTextBatch = new Blob([batch], { type: "application/json" });
6039
6132
  var thePromise;
6040
6133
  var resolveFunc;
@@ -6057,7 +6150,7 @@ var Sender = /** @class */ (function (_super) {
6057
6150
  _a[DisabledPropertyName] = true
6058
6151
  ,
6059
6152
  _a);
6060
- if (!isAsync) {
6153
+ if (sync) {
6061
6154
  init.keepalive = true;
6062
6155
  ignoreResponse = true;
6063
6156
  _syncFetchPayload += batchLength;
@@ -6068,8 +6161,7 @@ var Sender = /** @class */ (function (_super) {
6068
6161
  }
6069
6162
  catch (e) {
6070
6163
  }
6071
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
6072
- if (isAsync && _enableSendPromise) {
6164
+ if (!sync && _enableSendPromise) {
6073
6165
  thePromise = createPromise(function (resolve, reject) {
6074
6166
  resolveFunc = resolve;
6075
6167
  rejectFunc = reject;
@@ -6077,7 +6169,7 @@ var Sender = /** @class */ (function (_super) {
6077
6169
  }
6078
6170
  try {
6079
6171
  doAwaitResponse(fetch(request), function (result) {
6080
- if (!isAsync) {
6172
+ if (sync) {
6081
6173
  _syncFetchPayload -= batchLength;
6082
6174
  batchLength = 0;
6083
6175
  }
@@ -6086,18 +6178,19 @@ var Sender = /** @class */ (function (_super) {
6086
6178
  if (!result.rejected) {
6087
6179
  var response_1 = result.value;
6088
6180
  if (!response_1.ok) {
6089
- _self[_DYN__ON_ERROR ](payload, response_1.statusText);
6181
+ _doOnComplete(oncomplete, 400, {}, response_1.statusText);
6090
6182
  resolveFunc && resolveFunc(false);
6091
6183
  }
6092
6184
  else {
6093
6185
  doAwaitResponse(response_1.text(), function (resp) {
6094
- _checkResponsStatus(response_1.status, payload, response_1.url, payload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
6186
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6187
+ _checkResponsStatus(response_1.status, oriPayload, response_1.url, oriPayload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
6095
6188
  resolveFunc && resolveFunc(true);
6096
6189
  });
6097
6190
  }
6098
6191
  }
6099
6192
  else {
6100
- _self[_DYN__ON_ERROR ](payload, result.reason && result.reason.message);
6193
+ _doOnComplete(oncomplete, 400, {}, result.reason && result.reason.message);
6101
6194
  rejectFunc && rejectFunc(result.reason);
6102
6195
  }
6103
6196
  }
@@ -6105,13 +6198,13 @@ var Sender = /** @class */ (function (_super) {
6105
6198
  }
6106
6199
  catch (e) {
6107
6200
  if (!responseHandled) {
6108
- _self[_DYN__ON_ERROR ](payload, dumpObj(e));
6201
+ _doOnComplete(oncomplete, 400, {}, dumpObj(e));
6109
6202
  rejectFunc && rejectFunc(e);
6110
6203
  }
6111
6204
  }
6112
6205
  if (ignoreResponse && !responseHandled) {
6113
6206
  responseHandled = true;
6114
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
6207
+ _doOnComplete(oncomplete, 200, {});
6115
6208
  resolveFunc && resolveFunc(true);
6116
6209
  }
6117
6210
  return thePromise;
@@ -6194,24 +6287,28 @@ var Sender = /** @class */ (function (_super) {
6194
6287
  }
6195
6288
  return message;
6196
6289
  }
6197
- function _xdrSender(payload, isAsync) {
6198
- var buffer = _self[_DYN__BUFFER ];
6290
+ function _xdrSender(payload, oncomplete, sync) {
6291
+ var internalPayload = payload;
6199
6292
  var _window = getWindow();
6200
6293
  var xdr = new XDomainRequest();
6201
- xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };
6202
- xdr.onerror = function (event) { return _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr), event); };
6294
+ var data = internalPayload[_DYN_DATA ];
6295
+ xdr.onload = function () {
6296
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6297
+ _self._xdrOnLoad(xdr, oriPayload);
6298
+ };
6299
+ xdr.onerror = function () {
6300
+ _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
6301
+ };
6203
6302
  var hostingProtocol = _window && _window.location && _window.location.protocol || "";
6204
6303
  if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {
6205
6304
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
6206
6305
  "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
6207
- buffer[_DYN_CLEAR ]();
6306
+ _self._buffer[_DYN_CLEAR ]();
6208
6307
  return;
6209
6308
  }
6210
6309
  var endpointUrl = _endpointUrl.replace(/^(https?:)/, "");
6211
6310
  xdr.open("POST", endpointUrl);
6212
- var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
6213
- xdr.send(batch);
6214
- buffer[_DYN_MARK_AS_SENT ](payload);
6311
+ xdr.send(data);
6215
6312
  }
6216
6313
  function _formatErrorMessageXdr(xdr, message) {
6217
6314
  if (xdr) {
@@ -6261,7 +6358,6 @@ var Sender = /** @class */ (function (_super) {
6261
6358
  _serializer = null;
6262
6359
  _stamp_specific_redirects = 0;
6263
6360
  _syncFetchPayload = 0;
6264
- _fallbackSender = null;
6265
6361
  _syncUnloadSender = null;
6266
6362
  _evtNamespace = null;
6267
6363
  _endpointUrl = null;
@@ -6275,6 +6371,9 @@ var Sender = /** @class */ (function (_super) {
6275
6371
  _isRetryDisabled = false;
6276
6372
  _sessionStorageUsed = null;
6277
6373
  _namePrefix = UNDEFINED_VALUE;
6374
+ _disableXhr = false;
6375
+ _fetchKeepAlive = false;
6376
+ _xhrSend = null;
6278
6377
  objDefine(_self, "_senderConfig", {
6279
6378
  g: function () {
6280
6379
  return objExtend({}, defaultAppInsightsChannelConfig);
@@ -6301,4 +6400,4 @@ var Sender = /** @class */ (function (_super) {
6301
6400
  exports.Sender = Sender;
6302
6401
 
6303
6402
  }));
6304
- //# sourceMappingURL=applicationinsights-channel-js.3.0.4-nightly3.2309-09.gbl.js.map
6403
+ //# sourceMappingURL=applicationinsights-channel-js.3.0.4-nightly3.2309-10.gbl.js.map