@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,5 +1,5 @@
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
  'use strict';
@@ -1762,7 +1762,7 @@ function newId(maxLength) {
1762
1762
  return result;
1763
1763
  }
1764
1764
 
1765
- var version = '3.0.4-nightly3.2309-09';
1765
+ var version = '3.0.4-nightly3.2309-10';
1766
1766
  var instanceName = "." + newId(6);
1767
1767
  var _dataUid = 0;
1768
1768
  function _canAcceptData(target) {
@@ -4660,6 +4660,7 @@ var _DYN_BUFFER_OVERRIDE = "bufferOverride";
4660
4660
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
4661
4661
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
4662
4662
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
4663
+ var _DYN_SEND_POST = "sendPOST";
4663
4664
  var _DYN_TRIGGER_SEND = "triggerSend";
4664
4665
  var _DYN_DIAG_LOG = "diagLog";
4665
4666
  var _DYN__SENDER = "_sender";
@@ -4667,21 +4668,22 @@ var _DYN_CUSTOM_HEADERS = "customHeaders";
4667
4668
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
4668
4669
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
4669
4670
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
4670
- var _DYN_ENABLE_SESSION_STORA4 = "enableSessionStorageBuffer";
4671
+ var _DYN_ALWAYS_USE_XHR_OVERR4 = "alwaysUseXhrOverride";
4672
+ var _DYN_ENABLE_SESSION_STORA5 = "enableSessionStorageBuffer";
4671
4673
  var _DYN__BUFFER = "_buffer";
4674
+ var _DYN_ONUNLOAD_DISABLE_FET6 = "onunloadDisableFetch";
4672
4675
  var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
4673
- var _DYN_DISABLE_XHR = "disableXhr";
4674
- var _DYN_ONUNLOAD_DISABLE_FET5 = "onunloadDisableFetch";
4675
4676
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
4676
4677
  var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
4677
4678
  var _DYN_BASE_TYPE = "baseType";
4678
4679
  var _DYN_SAMPLE_RATE = "sampleRate";
4679
- var _DYN__XHR_READY_STATE_CHA6 = "_xhrReadyStateChange";
4680
+ var _DYN__XHR_READY_STATE_CHA7 = "_xhrReadyStateChange";
4680
4681
  var _DYN__ON_ERROR = "_onError";
4681
4682
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
4682
4683
  var _DYN__ON_SUCCESS = "_onSuccess";
4683
4684
  var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
4684
4685
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
4686
+ var _DYN_ORI_PAYLOAD = "oriPayload";
4685
4687
  var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
4686
4688
  var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
4687
4689
  var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
@@ -4796,7 +4798,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
4796
4798
  }
4797
4799
  }
4798
4800
  var EnvelopeCreator = {
4799
- Version: '3.0.4-nightly3.2309-09'
4801
+ Version: '3.0.4-nightly3.2309-10'
4800
4802
  };
4801
4803
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
4802
4804
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -5457,6 +5459,9 @@ function _getResponseText(xhr) {
5457
5459
  }
5458
5460
  return null;
5459
5461
  }
5462
+ function isOverrideFn(httpXHROverride) {
5463
+ return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
5464
+ }
5460
5465
  var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5461
5466
  endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)
5462
5467
  },
@@ -5464,11 +5469,11 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5464
5469
  _a[_DYN_MAX_BATCH_INTERVAL ] = 15000,
5465
5470
  _a[_DYN_MAX_BATCH_SIZE_IN_BY1 ] = 102400,
5466
5471
  _a.disableTelemetry = cfgDfBoolean(),
5467
- _a[_DYN_ENABLE_SESSION_STORA4 ] = cfgDfBoolean(true),
5472
+ _a[_DYN_ENABLE_SESSION_STORA5 ] = cfgDfBoolean(true),
5468
5473
  _a.isRetryDisabled = cfgDfBoolean(),
5469
5474
  _a[_DYN_IS_BEACON_API_DISABL3 ] = cfgDfBoolean(true),
5470
- _a[_DYN_DISABLE_XHR ] = cfgDfBoolean(),
5471
- _a[_DYN_ONUNLOAD_DISABLE_FET5 ] = cfgDfBoolean(),
5475
+ _a.disableXhr = cfgDfBoolean(),
5476
+ _a[_DYN_ONUNLOAD_DISABLE_FET6 ] = cfgDfBoolean(),
5472
5477
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = cfgDfBoolean(),
5473
5478
  _a[_DYN_INSTRUMENTATION_KEY ] = UNDEFINED_VALUE,
5474
5479
  _a.namePrefix = UNDEFINED_VALUE,
@@ -5477,6 +5482,8 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5477
5482
  _a[_DYN_CONVERT_UNDEFINED ] = UNDEFINED_VALUE,
5478
5483
  _a[_DYN_EVENTS_LIMIT_IN_MEM ] = 10000,
5479
5484
  _a[_DYN_BUFFER_OVERRIDE ] = false,
5485
+ _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },
5486
+ _a[_DYN_ALWAYS_USE_XHR_OVERR4 ] = cfgDfBoolean(),
5480
5487
  _a));
5481
5488
  function _chkSampling(value) {
5482
5489
  return !isNaN(value) && value > 0 && value <= 100;
@@ -5504,7 +5511,6 @@ var Sender = /** @class */ (function (_super) {
5504
5511
  var _stamp_specific_redirects;
5505
5512
  var _headers;
5506
5513
  var _syncFetchPayload = 0;
5507
- var _fallbackSender;
5508
5514
  var _syncUnloadSender;
5509
5515
  var _offlineListener;
5510
5516
  var _evtNamespace;
@@ -5522,6 +5528,10 @@ var Sender = /** @class */ (function (_super) {
5522
5528
  var _bufferOverrideUsed;
5523
5529
  var _namePrefix;
5524
5530
  var _enableSendPromise;
5531
+ var _alwaysUseCustomSend;
5532
+ var _disableXhr;
5533
+ var _fetchKeepAlive;
5534
+ var _xhrSend;
5525
5535
  dynamicProto(Sender, _this, function (_self, _base) {
5526
5536
  _initDefaults();
5527
5537
  _self.pause = function () {
@@ -5550,7 +5560,7 @@ var Sender = /** @class */ (function (_super) {
5550
5560
  };
5551
5561
  _self.onunloadFlush = function () {
5552
5562
  if (!_paused) {
5553
- if (_beaconSupported) {
5563
+ if (_beaconSupported || _alwaysUseCustomSend) {
5554
5564
  try {
5555
5565
  return _self[_DYN_TRIGGER_SEND ](true, _doUnloadSend, 2 );
5556
5566
  }
@@ -5602,8 +5612,10 @@ var Sender = /** @class */ (function (_super) {
5602
5612
  }
5603
5613
  _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 ];
5604
5614
  _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false) && isBeaconsSupported();
5615
+ _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 ];
5616
+ _disableXhr = !!senderConfig.disableXhr;
5605
5617
  var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE ];
5606
- var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA4 ] &&
5618
+ var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 ] &&
5607
5619
  (!!bufferOverride || utlCanUseSessionStorage());
5608
5620
  var namePrefix = senderConfig.namePrefix;
5609
5621
  var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)
@@ -5627,6 +5639,7 @@ var Sender = /** @class */ (function (_super) {
5627
5639
  _namePrefix = namePrefix;
5628
5640
  _sessionStorageUsed = canUseSessionStorage;
5629
5641
  _bufferOverrideUsed = bufferOverride;
5642
+ _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 ] && isFetchSupported(true);
5630
5643
  _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);
5631
5644
  _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY ];
5632
5645
  if (!_validateInstrumentationKey(_instrumentationKey, config)) {
@@ -5642,35 +5655,32 @@ var Sender = /** @class */ (function (_super) {
5642
5655
  _customHeaders = null;
5643
5656
  }
5644
5657
  _enableSendPromise = senderConfig.enableSendPromise;
5645
- var sendPostFunc = null;
5646
- if (!senderConfig[_DYN_DISABLE_XHR ] && useXDomainRequest()) {
5647
- sendPostFunc = _xdrSender;
5648
- }
5649
- else if (!senderConfig[_DYN_DISABLE_XHR ] && isXhrSupported()) {
5650
- sendPostFunc = _xhrSender;
5651
- }
5652
- if (!sendPostFunc && isFetchSupported()) {
5653
- sendPostFunc = _fetchSender;
5654
- }
5655
- _fallbackSender = sendPostFunc || _xhrSender;
5658
+ var customInterface = senderConfig.httpXHROverride;
5659
+ var httpInterface = null;
5660
+ var syncInterface = null;
5661
+ httpInterface = _getSenderInterface([1 , 2 ], false);
5662
+ var xhrInterface = { sendPOST: _xhrSender };
5663
+ _xhrSend = function (payload, isAsync) {
5664
+ return _doSend(xhrInterface, payload, isAsync);
5665
+ };
5656
5666
  if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 ] && isBeaconsSupported()) {
5657
- sendPostFunc = _beaconSender;
5667
+ httpInterface = _getSenderInterface([3 ], false);
5658
5668
  }
5659
- _self[_DYN__SENDER ] = sendPostFunc || _xhrSender;
5660
- if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 ] && isFetchSupported(true)) {
5669
+ httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);
5670
+ _self[_DYN__SENDER ] = function (payload, isAsync) {
5671
+ return _doSend(httpInterface, payload, isAsync);
5672
+ };
5673
+ if (_fetchKeepAlive) {
5661
5674
  _syncUnloadSender = _fetchKeepAliveSender;
5662
5675
  }
5663
- else if (isBeaconsSupported()) {
5664
- _syncUnloadSender = _beaconSender;
5676
+ syncInterface = _alwaysUseCustomSend ? customInterface : (_getSenderInterface([3 , 1 ], true) || customInterface);
5677
+ if ((_alwaysUseCustomSend || !_syncUnloadSender) && syncInterface) {
5678
+ _syncUnloadSender = function (payload, isAsync) {
5679
+ return _doSend(syncInterface, payload, isAsync);
5680
+ };
5665
5681
  }
5666
- else if (!senderConfig[_DYN_DISABLE_XHR ] && useXDomainRequest()) {
5667
- _syncUnloadSender = _xdrSender;
5668
- }
5669
- else if (!senderConfig[_DYN_DISABLE_XHR ] && isXhrSupported()) {
5670
- _syncUnloadSender = _xhrSender;
5671
- }
5672
- else {
5673
- _syncUnloadSender = _fallbackSender;
5682
+ if (!_syncUnloadSender) {
5683
+ _syncUnloadSender = _xhrSend;
5674
5684
  }
5675
5685
  _disableTelemetry = senderConfig.disableTelemetry;
5676
5686
  _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED ] || UNDEFINED_VALUE;
@@ -5742,7 +5752,7 @@ var Sender = /** @class */ (function (_super) {
5742
5752
  }
5743
5753
  _self.processNext(telemetryItem, itemCtx);
5744
5754
  };
5745
- _self[_DYN__XHR_READY_STATE_CHA6 ] = function (xhr, payload, countOfItemsInPayload) {
5755
+ _self[_DYN__XHR_READY_STATE_CHA7 ] = function (xhr, payload, countOfItemsInPayload) {
5746
5756
  if (xhr.readyState === 4) {
5747
5757
  _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
5748
5758
  }
@@ -5838,6 +5848,73 @@ var Sender = /** @class */ (function (_super) {
5838
5848
  function _isSampledIn(envelope) {
5839
5849
  return _self._sample.isSampledIn(envelope);
5840
5850
  }
5851
+ function _getSenderInterface(transports, syncSupport) {
5852
+ var _a;
5853
+ var transportType = null;
5854
+ var sendPostFunc = null;
5855
+ var lp = 0;
5856
+ while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
5857
+ transportType = transports[lp];
5858
+ if (!_disableXhr && transportType === 1 ) {
5859
+ if (useXDomainRequest()) {
5860
+ sendPostFunc = _xdrSender;
5861
+ }
5862
+ else if (isXhrSupported()) {
5863
+ sendPostFunc = _xhrSender;
5864
+ }
5865
+ }
5866
+ else if (transportType === 2 && isFetchSupported(syncSupport)) {
5867
+ sendPostFunc = _fetchSender;
5868
+ }
5869
+ else if (isBeaconsSupported() && transportType === 3 ) {
5870
+ sendPostFunc = _beaconSender;
5871
+ }
5872
+ lp++;
5873
+ }
5874
+ if (sendPostFunc) {
5875
+ return _a = {},
5876
+ _a[_DYN_SEND_POST ] = sendPostFunc,
5877
+ _a;
5878
+ }
5879
+ return null;
5880
+ }
5881
+ function _getOnComplete(payload, status, headers, response) {
5882
+ if (status === 200 && payload) {
5883
+ _self._onSuccess(payload, payload[_DYN_LENGTH ]);
5884
+ }
5885
+ response && _self[_DYN__ON_ERROR ](payload, response);
5886
+ }
5887
+ function _doSend(sendInterface, payload, isAsync) {
5888
+ var onComplete = function (status, headers, response) {
5889
+ return _getOnComplete(payload, status, headers, response);
5890
+ };
5891
+ var payloadData = _getPayload(payload);
5892
+ var sendPostFunc = sendInterface && sendInterface[_DYN_SEND_POST ];
5893
+ if (sendPostFunc && payloadData) {
5894
+ _self._buffer[_DYN_MARK_AS_SENT ](payload);
5895
+ return sendPostFunc(payloadData, onComplete, !isAsync);
5896
+ }
5897
+ return null;
5898
+ }
5899
+ function _getPayload(payload) {
5900
+ var _a;
5901
+ if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
5902
+ var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
5903
+ var payloadData = (_a = {},
5904
+ _a[_DYN_DATA ] = batch,
5905
+ _a.urlString = _endpointUrl,
5906
+ _a.headers = _headers,
5907
+ _a.disableXhrSync = _disableXhr,
5908
+ _a.disableFetchKeepAlive = !_fetchKeepAlive,
5909
+ _a[_DYN_ORI_PAYLOAD ] = payload,
5910
+ _a);
5911
+ return payloadData;
5912
+ }
5913
+ return null;
5914
+ }
5915
+ function _fetchSender(payload, oncomplete, sync) {
5916
+ return _doFetchSender(payload, oncomplete, false);
5917
+ }
5841
5918
  function _checkMaxSize(incomingPayload) {
5842
5919
  var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
5843
5920
  if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
@@ -5911,45 +5988,60 @@ var Sender = /** @class */ (function (_super) {
5911
5988
  }
5912
5989
  return false;
5913
5990
  }
5991
+ function _doOnComplete(oncomplete, status, headers, response) {
5992
+ try {
5993
+ oncomplete(status, headers, response);
5994
+ }
5995
+ catch (e) {
5996
+ }
5997
+ }
5914
5998
  function _doUnloadSend(payload, isAsync) {
5999
+ var onComplete = function (status, headers, response) {
6000
+ return _getOnComplete(payload, status, headers, response);
6001
+ };
5915
6002
  if (_syncUnloadSender) {
5916
6003
  _syncUnloadSender(payload, false);
5917
6004
  }
5918
6005
  else {
5919
- _beaconSender(payload);
6006
+ var payloadData = _getPayload(payload);
6007
+ _beaconSender(payloadData, onComplete);
5920
6008
  }
5921
6009
  }
5922
- function _doBeaconSend(payload) {
6010
+ function _doBeaconSend(payload, oncomplete) {
5923
6011
  var nav = getNavigator();
5924
- var buffer = _self[_DYN__BUFFER ];
5925
6012
  var url = _endpointUrl;
5926
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
5927
- var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
6013
+ var plainTextBatch = new Blob([payload], { type: "text/plain;charset=UTF-8" });
5928
6014
  var queued = nav.sendBeacon(url, plainTextBatch);
5929
6015
  if (queued) {
5930
- buffer[_DYN_MARK_AS_SENT ](payload);
5931
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
6016
+ oncomplete(200, {}, payload);
5932
6017
  }
5933
6018
  return queued;
5934
6019
  }
5935
- function _beaconSender(payload, isAsync) {
5936
- if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
5937
- if (!_doBeaconSend(payload)) {
6020
+ function _beaconSender(payload, oncomplete, sync) {
6021
+ var internalPayload = payload;
6022
+ var data = internalPayload && internalPayload[_DYN_DATA ];
6023
+ if (isString(data) && data[_DYN_LENGTH ] > 0) {
6024
+ if (!_doBeaconSend(data, oncomplete)) {
5938
6025
  var droppedPayload = [];
5939
- for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
5940
- var thePayload = payload[lp];
5941
- if (!_doBeaconSend([thePayload])) {
5942
- droppedPayload[_DYN_PUSH ](thePayload);
6026
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6027
+ if (oriPayload[_DYN_LENGTH ] > 0) {
6028
+ for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
6029
+ var thePayload = payload[lp];
6030
+ var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](thePayload);
6031
+ if (!_doBeaconSend(batch, oncomplete)) {
6032
+ droppedPayload[_DYN_PUSH ](thePayload);
6033
+ }
5943
6034
  }
5944
6035
  }
5945
6036
  if (droppedPayload[_DYN_LENGTH ] > 0) {
5946
- _fallbackSender && _fallbackSender(droppedPayload, true);
6037
+ _xhrSend && _xhrSend(droppedPayload, true);
5947
6038
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
5948
6039
  }
5949
6040
  }
5950
6041
  }
5951
6042
  }
5952
- function _xhrSender(payload, isAsync) {
6043
+ function _xhrSender(payload, oncomplete, sync) {
6044
+ var internalPayload = payload;
5953
6045
  var thePromise;
5954
6046
  var resolveFunc;
5955
6047
  var rejectFunc;
@@ -5960,7 +6052,7 @@ var Sender = /** @class */ (function (_super) {
5960
6052
  }
5961
6053
  catch (e) {
5962
6054
  }
5963
- xhr.open("POST", endPointUrl, isAsync);
6055
+ xhr.open("POST", endPointUrl, !sync);
5964
6056
  xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
5965
6057
  if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
5966
6058
  xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
@@ -5969,51 +6061,52 @@ var Sender = /** @class */ (function (_super) {
5969
6061
  xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
5970
6062
  });
5971
6063
  xhr.onreadystatechange = function () {
5972
- _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH ]);
6064
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6065
+ _self._xhrReadyStateChange(xhr, oriPayload, oriPayload[_DYN_LENGTH ]);
5973
6066
  if (xhr.readyState === 4) {
5974
6067
  resolveFunc && resolveFunc(true);
5975
6068
  }
5976
6069
  };
5977
6070
  xhr.onerror = function (event) {
5978
- _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXhr(xhr), event);
6071
+ _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
5979
6072
  rejectFunc && rejectFunc(event);
5980
6073
  };
5981
- if (isAsync && _enableSendPromise) {
6074
+ if (!sync && _enableSendPromise) {
5982
6075
  thePromise = createPromise(function (resolve, reject) {
5983
6076
  resolveFunc = resolve;
5984
6077
  rejectFunc = reject;
5985
6078
  });
5986
6079
  }
5987
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
5988
- xhr.send(batch);
5989
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
6080
+ xhr.send(payload[_DYN_DATA ]);
5990
6081
  return thePromise;
5991
6082
  }
5992
6083
  function _fetchKeepAliveSender(payload, isAsync) {
6084
+ var onComplete = function (status, headers, response) {
6085
+ return _getOnComplete(payload, status, headers, response);
6086
+ };
5993
6087
  if (isArray(payload)) {
5994
6088
  var payloadSize = payload[_DYN_LENGTH ];
5995
6089
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
5996
6090
  payloadSize += payload[lp][_DYN_LENGTH ];
5997
6091
  }
6092
+ var payloadData = _getPayload(payload);
5998
6093
  if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
5999
- _doFetchSender(payload, false);
6094
+ _doFetchSender(payloadData, onComplete, true);
6000
6095
  }
6001
6096
  else if (isBeaconsSupported()) {
6002
- _beaconSender(payload);
6097
+ _beaconSender(payloadData, onComplete);
6003
6098
  }
6004
6099
  else {
6005
- _fallbackSender && _fallbackSender(payload, true);
6100
+ _xhrSend && _xhrSend(payload, true);
6006
6101
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
6007
6102
  }
6008
6103
  }
6009
6104
  }
6010
- function _fetchSender(payload, isAsync) {
6011
- return _doFetchSender(payload, true);
6012
- }
6013
- function _doFetchSender(payload, isAsync) {
6105
+ function _doFetchSender(payload, oncomplete, sync) {
6014
6106
  var _a;
6015
6107
  var endPointUrl = _endpointUrl;
6016
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
6108
+ var internalPayload = payload;
6109
+ var batch = internalPayload[_DYN_DATA ];
6017
6110
  var plainTextBatch = new Blob([batch], { type: "application/json" });
6018
6111
  var thePromise;
6019
6112
  var resolveFunc;
@@ -6036,7 +6129,7 @@ var Sender = /** @class */ (function (_super) {
6036
6129
  _a[DisabledPropertyName] = true
6037
6130
  ,
6038
6131
  _a);
6039
- if (!isAsync) {
6132
+ if (sync) {
6040
6133
  init.keepalive = true;
6041
6134
  ignoreResponse = true;
6042
6135
  _syncFetchPayload += batchLength;
@@ -6047,8 +6140,7 @@ var Sender = /** @class */ (function (_super) {
6047
6140
  }
6048
6141
  catch (e) {
6049
6142
  }
6050
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
6051
- if (isAsync && _enableSendPromise) {
6143
+ if (!sync && _enableSendPromise) {
6052
6144
  thePromise = createPromise(function (resolve, reject) {
6053
6145
  resolveFunc = resolve;
6054
6146
  rejectFunc = reject;
@@ -6056,7 +6148,7 @@ var Sender = /** @class */ (function (_super) {
6056
6148
  }
6057
6149
  try {
6058
6150
  doAwaitResponse(fetch(request), function (result) {
6059
- if (!isAsync) {
6151
+ if (sync) {
6060
6152
  _syncFetchPayload -= batchLength;
6061
6153
  batchLength = 0;
6062
6154
  }
@@ -6065,18 +6157,19 @@ var Sender = /** @class */ (function (_super) {
6065
6157
  if (!result.rejected) {
6066
6158
  var response_1 = result.value;
6067
6159
  if (!response_1.ok) {
6068
- _self[_DYN__ON_ERROR ](payload, response_1.statusText);
6160
+ _doOnComplete(oncomplete, 400, {}, response_1.statusText);
6069
6161
  resolveFunc && resolveFunc(false);
6070
6162
  }
6071
6163
  else {
6072
6164
  doAwaitResponse(response_1.text(), function (resp) {
6073
- _checkResponsStatus(response_1.status, payload, response_1.url, payload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
6165
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6166
+ _checkResponsStatus(response_1.status, oriPayload, response_1.url, oriPayload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
6074
6167
  resolveFunc && resolveFunc(true);
6075
6168
  });
6076
6169
  }
6077
6170
  }
6078
6171
  else {
6079
- _self[_DYN__ON_ERROR ](payload, result.reason && result.reason.message);
6172
+ _doOnComplete(oncomplete, 400, {}, result.reason && result.reason.message);
6080
6173
  rejectFunc && rejectFunc(result.reason);
6081
6174
  }
6082
6175
  }
@@ -6084,13 +6177,13 @@ var Sender = /** @class */ (function (_super) {
6084
6177
  }
6085
6178
  catch (e) {
6086
6179
  if (!responseHandled) {
6087
- _self[_DYN__ON_ERROR ](payload, dumpObj(e));
6180
+ _doOnComplete(oncomplete, 400, {}, dumpObj(e));
6088
6181
  rejectFunc && rejectFunc(e);
6089
6182
  }
6090
6183
  }
6091
6184
  if (ignoreResponse && !responseHandled) {
6092
6185
  responseHandled = true;
6093
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
6186
+ _doOnComplete(oncomplete, 200, {});
6094
6187
  resolveFunc && resolveFunc(true);
6095
6188
  }
6096
6189
  return thePromise;
@@ -6173,24 +6266,28 @@ var Sender = /** @class */ (function (_super) {
6173
6266
  }
6174
6267
  return message;
6175
6268
  }
6176
- function _xdrSender(payload, isAsync) {
6177
- var buffer = _self[_DYN__BUFFER ];
6269
+ function _xdrSender(payload, oncomplete, sync) {
6270
+ var internalPayload = payload;
6178
6271
  var _window = getWindow();
6179
6272
  var xdr = new XDomainRequest();
6180
- xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };
6181
- xdr.onerror = function (event) { return _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr), event); };
6273
+ var data = internalPayload[_DYN_DATA ];
6274
+ xdr.onload = function () {
6275
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6276
+ _self._xdrOnLoad(xdr, oriPayload);
6277
+ };
6278
+ xdr.onerror = function () {
6279
+ _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
6280
+ };
6182
6281
  var hostingProtocol = _window && _window.location && _window.location.protocol || "";
6183
6282
  if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {
6184
6283
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
6185
6284
  "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
6186
- buffer[_DYN_CLEAR ]();
6285
+ _self._buffer[_DYN_CLEAR ]();
6187
6286
  return;
6188
6287
  }
6189
6288
  var endpointUrl = _endpointUrl.replace(/^(https?:)/, "");
6190
6289
  xdr.open("POST", endpointUrl);
6191
- var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
6192
- xdr.send(batch);
6193
- buffer[_DYN_MARK_AS_SENT ](payload);
6290
+ xdr.send(data);
6194
6291
  }
6195
6292
  function _formatErrorMessageXdr(xdr, message) {
6196
6293
  if (xdr) {
@@ -6240,7 +6337,6 @@ var Sender = /** @class */ (function (_super) {
6240
6337
  _serializer = null;
6241
6338
  _stamp_specific_redirects = 0;
6242
6339
  _syncFetchPayload = 0;
6243
- _fallbackSender = null;
6244
6340
  _syncUnloadSender = null;
6245
6341
  _evtNamespace = null;
6246
6342
  _endpointUrl = null;
@@ -6254,6 +6350,9 @@ var Sender = /** @class */ (function (_super) {
6254
6350
  _isRetryDisabled = false;
6255
6351
  _sessionStorageUsed = null;
6256
6352
  _namePrefix = UNDEFINED_VALUE;
6353
+ _disableXhr = false;
6354
+ _fetchKeepAlive = false;
6355
+ _xhrSend = null;
6257
6356
  objDefine(_self, "_senderConfig", {
6258
6357
  g: function () {
6259
6358
  return objExtend({}, defaultAppInsightsChannelConfig);
@@ -6278,4 +6377,4 @@ var Sender = /** @class */ (function (_super) {
6278
6377
  }(BaseTelemetryPlugin));
6279
6378
 
6280
6379
  exports.Sender = Sender;
6281
- //# sourceMappingURL=applicationinsights-channel-js.3.0.4-nightly3.2309-09.cjs.js.map
6380
+ //# sourceMappingURL=applicationinsights-channel-js.3.0.4-nightly3.2309-10.cjs.js.map