@microsoft/applicationinsights-web-basic 3.0.4-nightly3.2309-08 → 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 (38) hide show
  1. package/browser/es5/{aib.3.0.4-nightly3.2309-08.cjs.js → aib.3.0.4-nightly3.2309-10.cjs.js} +187 -88
  2. package/browser/es5/{aib.3.0.4-nightly3.2309-08.cjs.js.map → aib.3.0.4-nightly3.2309-10.cjs.js.map} +1 -1
  3. package/browser/es5/{aib.3.0.4-nightly3.2309-08.cjs.min.js → aib.3.0.4-nightly3.2309-10.cjs.min.js} +3 -3
  4. package/browser/es5/{aib.3.0.4-nightly3.2309-08.cjs.min.js.map → aib.3.0.4-nightly3.2309-10.cjs.min.js.map} +1 -1
  5. package/browser/es5/{aib.3.0.4-nightly3.2309-08.gbl.js → aib.3.0.4-nightly3.2309-10.gbl.js} +189 -90
  6. package/browser/es5/{aib.3.0.4-nightly3.2309-08.gbl.js.map → aib.3.0.4-nightly3.2309-10.gbl.js.map} +1 -1
  7. package/browser/es5/aib.3.0.4-nightly3.2309-10.gbl.min.js +6 -0
  8. package/browser/es5/{aib.3.0.4-nightly3.2309-08.gbl.min.js.map → aib.3.0.4-nightly3.2309-10.gbl.min.js.map} +1 -1
  9. package/browser/es5/aib.3.0.4-nightly3.2309-10.integrity.json +66 -0
  10. package/browser/es5/{aib.3.0.4-nightly3.2309-08.js → aib.3.0.4-nightly3.2309-10.js} +189 -90
  11. package/browser/es5/{aib.3.0.4-nightly3.2309-08.js.map → aib.3.0.4-nightly3.2309-10.js.map} +1 -1
  12. package/browser/es5/aib.3.0.4-nightly3.2309-10.min.js +6 -0
  13. package/browser/es5/{aib.3.0.4-nightly3.2309-08.min.js.map → aib.3.0.4-nightly3.2309-10.min.js.map} +1 -1
  14. package/browser/es5/aib.3.cjs.js +186 -87
  15. package/browser/es5/aib.3.cjs.js.map +1 -1
  16. package/browser/es5/aib.3.cjs.min.js +2 -2
  17. package/browser/es5/aib.3.cjs.min.js.map +1 -1
  18. package/browser/es5/aib.3.gbl.js +188 -89
  19. package/browser/es5/aib.3.gbl.js.map +1 -1
  20. package/browser/es5/aib.3.gbl.min.js +2 -2
  21. package/browser/es5/aib.3.gbl.min.js.map +1 -1
  22. package/browser/es5/aib.3.integrity.json +25 -25
  23. package/browser/es5/aib.3.js +188 -89
  24. package/browser/es5/aib.3.js.map +1 -1
  25. package/browser/es5/aib.3.min.js +2 -2
  26. package/browser/es5/aib.3.min.js.map +1 -1
  27. package/dist/es5/applicationinsights-web-basic.js +186 -87
  28. package/dist/es5/applicationinsights-web-basic.js.map +1 -1
  29. package/dist/es5/applicationinsights-web-basic.min.js +2 -2
  30. package/dist/es5/applicationinsights-web-basic.min.js.map +1 -1
  31. package/dist-es5/__DynamicConstants.js +1 -1
  32. package/dist-es5/index.js +1 -1
  33. package/package.json +4 -4
  34. package/types/applicationinsights-web-basic.d.ts +1 -1
  35. package/types/applicationinsights-web-basic.namespaced.d.ts +1 -1
  36. package/browser/es5/aib.3.0.4-nightly3.2309-08.gbl.min.js +0 -6
  37. package/browser/es5/aib.3.0.4-nightly3.2309-08.integrity.json +0 -66
  38. package/browser/es5/aib.3.0.4-nightly3.2309-08.min.js +0 -6
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Application Insights JavaScript Web SDK - Basic, 3.0.4-nightly3.2309-08
2
+ * Application Insights JavaScript Web SDK - Basic, 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_aib_3_0_4_nightly3_2309_08", msMod="__ms$mod__";
8
- var mods={}, modDetail=mods[modName]={}, ver="3.0.4-nightly3.2309-08";
7
+ var nsKey, key, nm, theExports = {}, modName = "es5_aib_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]||{});
@@ -2059,7 +2059,7 @@ function newId(maxLength) {
2059
2059
  return result;
2060
2060
  }
2061
2061
 
2062
- var version = '3.0.4-nightly3.2309-08';
2062
+ var version = '3.0.4-nightly3.2309-10';
2063
2063
  var instanceName = "." + newId(6);
2064
2064
  var _dataUid = 0;
2065
2065
  function _canAcceptData(target) {
@@ -6431,6 +6431,7 @@ var _DYN_BUFFER_OVERRIDE = "bufferOverride";
6431
6431
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
6432
6432
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
6433
6433
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
6434
+ var _DYN_SEND_POST = "sendPOST";
6434
6435
  var _DYN_TRIGGER_SEND = "triggerSend";
6435
6436
  var _DYN_DIAG_LOG = "diagLog";
6436
6437
  var _DYN__SENDER = "_sender";
@@ -6438,21 +6439,22 @@ var _DYN_CUSTOM_HEADERS = "customHeaders";
6438
6439
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
6439
6440
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
6440
6441
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
6441
- var _DYN_ENABLE_SESSION_STORA4 = "enableSessionStorageBuffer";
6442
+ var _DYN_ALWAYS_USE_XHR_OVERR4 = "alwaysUseXhrOverride";
6443
+ var _DYN_ENABLE_SESSION_STORA5 = "enableSessionStorageBuffer";
6442
6444
  var _DYN__BUFFER = "_buffer";
6445
+ var _DYN_ONUNLOAD_DISABLE_FET6 = "onunloadDisableFetch";
6443
6446
  var _DYN_INSTRUMENTATION_KEY$1 = "instrumentationKey";
6444
- var _DYN_DISABLE_XHR = "disableXhr";
6445
- var _DYN_ONUNLOAD_DISABLE_FET5 = "onunloadDisableFetch";
6446
6447
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
6447
6448
  var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
6448
6449
  var _DYN_BASE_TYPE = "baseType";
6449
6450
  var _DYN_SAMPLE_RATE = "sampleRate";
6450
- var _DYN__XHR_READY_STATE_CHA6 = "_xhrReadyStateChange";
6451
+ var _DYN__XHR_READY_STATE_CHA7 = "_xhrReadyStateChange";
6451
6452
  var _DYN__ON_ERROR = "_onError";
6452
6453
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
6453
6454
  var _DYN__ON_SUCCESS = "_onSuccess";
6454
6455
  var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
6455
6456
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
6457
+ var _DYN_ORI_PAYLOAD = "oriPayload";
6456
6458
  var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
6457
6459
  var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
6458
6460
  var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
@@ -6567,7 +6569,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
6567
6569
  }
6568
6570
  }
6569
6571
  var EnvelopeCreator = {
6570
- Version: '3.0.4-nightly3.2309-08'
6572
+ Version: '3.0.4-nightly3.2309-10'
6571
6573
  };
6572
6574
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
6573
6575
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -7228,6 +7230,9 @@ function _getResponseText(xhr) {
7228
7230
  }
7229
7231
  return null;
7230
7232
  }
7233
+ function isOverrideFn(httpXHROverride) {
7234
+ return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
7235
+ }
7231
7236
  var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7232
7237
  endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)
7233
7238
  },
@@ -7235,11 +7240,11 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7235
7240
  _a[_DYN_MAX_BATCH_INTERVAL ] = 15000,
7236
7241
  _a[_DYN_MAX_BATCH_SIZE_IN_BY1 ] = 102400,
7237
7242
  _a.disableTelemetry = cfgDfBoolean(),
7238
- _a[_DYN_ENABLE_SESSION_STORA4 ] = cfgDfBoolean(true),
7243
+ _a[_DYN_ENABLE_SESSION_STORA5 ] = cfgDfBoolean(true),
7239
7244
  _a.isRetryDisabled = cfgDfBoolean(),
7240
7245
  _a[_DYN_IS_BEACON_API_DISABL3 ] = cfgDfBoolean(true),
7241
- _a[_DYN_DISABLE_XHR ] = cfgDfBoolean(),
7242
- _a[_DYN_ONUNLOAD_DISABLE_FET5 ] = cfgDfBoolean(),
7246
+ _a.disableXhr = cfgDfBoolean(),
7247
+ _a[_DYN_ONUNLOAD_DISABLE_FET6 ] = cfgDfBoolean(),
7243
7248
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = cfgDfBoolean(),
7244
7249
  _a[_DYN_INSTRUMENTATION_KEY$1 ] = UNDEFINED_VALUE,
7245
7250
  _a.namePrefix = UNDEFINED_VALUE,
@@ -7248,6 +7253,8 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7248
7253
  _a[_DYN_CONVERT_UNDEFINED ] = UNDEFINED_VALUE,
7249
7254
  _a[_DYN_EVENTS_LIMIT_IN_MEM ] = 10000,
7250
7255
  _a[_DYN_BUFFER_OVERRIDE ] = false,
7256
+ _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },
7257
+ _a[_DYN_ALWAYS_USE_XHR_OVERR4 ] = cfgDfBoolean(),
7251
7258
  _a));
7252
7259
  function _chkSampling(value) {
7253
7260
  return !isNaN(value) && value > 0 && value <= 100;
@@ -7275,7 +7282,6 @@ var Sender = /** @class */ (function (_super) {
7275
7282
  var _stamp_specific_redirects;
7276
7283
  var _headers;
7277
7284
  var _syncFetchPayload = 0;
7278
- var _fallbackSender;
7279
7285
  var _syncUnloadSender;
7280
7286
  var _offlineListener;
7281
7287
  var _evtNamespace;
@@ -7293,6 +7299,10 @@ var Sender = /** @class */ (function (_super) {
7293
7299
  var _bufferOverrideUsed;
7294
7300
  var _namePrefix;
7295
7301
  var _enableSendPromise;
7302
+ var _alwaysUseCustomSend;
7303
+ var _disableXhr;
7304
+ var _fetchKeepAlive;
7305
+ var _xhrSend;
7296
7306
  dynamicProto(Sender, _this, function (_self, _base) {
7297
7307
  _initDefaults();
7298
7308
  _self.pause = function () {
@@ -7321,7 +7331,7 @@ var Sender = /** @class */ (function (_super) {
7321
7331
  };
7322
7332
  _self.onunloadFlush = function () {
7323
7333
  if (!_paused) {
7324
- if (_beaconSupported) {
7334
+ if (_beaconSupported || _alwaysUseCustomSend) {
7325
7335
  try {
7326
7336
  return _self[_DYN_TRIGGER_SEND ](true, _doUnloadSend, 2 );
7327
7337
  }
@@ -7373,8 +7383,10 @@ var Sender = /** @class */ (function (_super) {
7373
7383
  }
7374
7384
  _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 ];
7375
7385
  _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false) && isBeaconsSupported();
7386
+ _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 ];
7387
+ _disableXhr = !!senderConfig.disableXhr;
7376
7388
  var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE ];
7377
- var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA4 ] &&
7389
+ var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 ] &&
7378
7390
  (!!bufferOverride || utlCanUseSessionStorage());
7379
7391
  var namePrefix = senderConfig.namePrefix;
7380
7392
  var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)
@@ -7398,6 +7410,7 @@ var Sender = /** @class */ (function (_super) {
7398
7410
  _namePrefix = namePrefix;
7399
7411
  _sessionStorageUsed = canUseSessionStorage;
7400
7412
  _bufferOverrideUsed = bufferOverride;
7413
+ _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 ] && isFetchSupported(true);
7401
7414
  _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);
7402
7415
  _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY$1 ];
7403
7416
  if (!_validateInstrumentationKey(_instrumentationKey, config)) {
@@ -7413,35 +7426,32 @@ var Sender = /** @class */ (function (_super) {
7413
7426
  _customHeaders = null;
7414
7427
  }
7415
7428
  _enableSendPromise = senderConfig.enableSendPromise;
7416
- var sendPostFunc = null;
7417
- if (!senderConfig[_DYN_DISABLE_XHR ] && useXDomainRequest()) {
7418
- sendPostFunc = _xdrSender;
7419
- }
7420
- else if (!senderConfig[_DYN_DISABLE_XHR ] && isXhrSupported()) {
7421
- sendPostFunc = _xhrSender;
7422
- }
7423
- if (!sendPostFunc && isFetchSupported()) {
7424
- sendPostFunc = _fetchSender;
7425
- }
7426
- _fallbackSender = sendPostFunc || _xhrSender;
7429
+ var customInterface = senderConfig.httpXHROverride;
7430
+ var httpInterface = null;
7431
+ var syncInterface = null;
7432
+ httpInterface = _getSenderInterface([1 , 2 ], false);
7433
+ var xhrInterface = { sendPOST: _xhrSender };
7434
+ _xhrSend = function (payload, isAsync) {
7435
+ return _doSend(xhrInterface, payload, isAsync);
7436
+ };
7427
7437
  if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 ] && isBeaconsSupported()) {
7428
- sendPostFunc = _beaconSender;
7438
+ httpInterface = _getSenderInterface([3 ], false);
7429
7439
  }
7430
- _self[_DYN__SENDER ] = sendPostFunc || _xhrSender;
7431
- if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 ] && isFetchSupported(true)) {
7440
+ httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);
7441
+ _self[_DYN__SENDER ] = function (payload, isAsync) {
7442
+ return _doSend(httpInterface, payload, isAsync);
7443
+ };
7444
+ if (_fetchKeepAlive) {
7432
7445
  _syncUnloadSender = _fetchKeepAliveSender;
7433
7446
  }
7434
- else if (isBeaconsSupported()) {
7435
- _syncUnloadSender = _beaconSender;
7436
- }
7437
- else if (!senderConfig[_DYN_DISABLE_XHR ] && useXDomainRequest()) {
7438
- _syncUnloadSender = _xdrSender;
7447
+ syncInterface = _alwaysUseCustomSend ? customInterface : (_getSenderInterface([3 , 1 ], true) || customInterface);
7448
+ if ((_alwaysUseCustomSend || !_syncUnloadSender) && syncInterface) {
7449
+ _syncUnloadSender = function (payload, isAsync) {
7450
+ return _doSend(syncInterface, payload, isAsync);
7451
+ };
7439
7452
  }
7440
- else if (!senderConfig[_DYN_DISABLE_XHR ] && isXhrSupported()) {
7441
- _syncUnloadSender = _xhrSender;
7442
- }
7443
- else {
7444
- _syncUnloadSender = _fallbackSender;
7453
+ if (!_syncUnloadSender) {
7454
+ _syncUnloadSender = _xhrSend;
7445
7455
  }
7446
7456
  _disableTelemetry = senderConfig.disableTelemetry;
7447
7457
  _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED ] || UNDEFINED_VALUE;
@@ -7513,7 +7523,7 @@ var Sender = /** @class */ (function (_super) {
7513
7523
  }
7514
7524
  _self.processNext(telemetryItem, itemCtx);
7515
7525
  };
7516
- _self[_DYN__XHR_READY_STATE_CHA6 ] = function (xhr, payload, countOfItemsInPayload) {
7526
+ _self[_DYN__XHR_READY_STATE_CHA7 ] = function (xhr, payload, countOfItemsInPayload) {
7517
7527
  if (xhr.readyState === 4) {
7518
7528
  _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
7519
7529
  }
@@ -7609,6 +7619,73 @@ var Sender = /** @class */ (function (_super) {
7609
7619
  function _isSampledIn(envelope) {
7610
7620
  return _self._sample.isSampledIn(envelope);
7611
7621
  }
7622
+ function _getSenderInterface(transports, syncSupport) {
7623
+ var _a;
7624
+ var transportType = null;
7625
+ var sendPostFunc = null;
7626
+ var lp = 0;
7627
+ while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
7628
+ transportType = transports[lp];
7629
+ if (!_disableXhr && transportType === 1 ) {
7630
+ if (useXDomainRequest()) {
7631
+ sendPostFunc = _xdrSender;
7632
+ }
7633
+ else if (isXhrSupported()) {
7634
+ sendPostFunc = _xhrSender;
7635
+ }
7636
+ }
7637
+ else if (transportType === 2 && isFetchSupported(syncSupport)) {
7638
+ sendPostFunc = _fetchSender;
7639
+ }
7640
+ else if (isBeaconsSupported() && transportType === 3 ) {
7641
+ sendPostFunc = _beaconSender;
7642
+ }
7643
+ lp++;
7644
+ }
7645
+ if (sendPostFunc) {
7646
+ return _a = {},
7647
+ _a[_DYN_SEND_POST ] = sendPostFunc,
7648
+ _a;
7649
+ }
7650
+ return null;
7651
+ }
7652
+ function _getOnComplete(payload, status, headers, response) {
7653
+ if (status === 200 && payload) {
7654
+ _self._onSuccess(payload, payload[_DYN_LENGTH ]);
7655
+ }
7656
+ response && _self[_DYN__ON_ERROR ](payload, response);
7657
+ }
7658
+ function _doSend(sendInterface, payload, isAsync) {
7659
+ var onComplete = function (status, headers, response) {
7660
+ return _getOnComplete(payload, status, headers, response);
7661
+ };
7662
+ var payloadData = _getPayload(payload);
7663
+ var sendPostFunc = sendInterface && sendInterface[_DYN_SEND_POST ];
7664
+ if (sendPostFunc && payloadData) {
7665
+ _self._buffer[_DYN_MARK_AS_SENT ](payload);
7666
+ return sendPostFunc(payloadData, onComplete, !isAsync);
7667
+ }
7668
+ return null;
7669
+ }
7670
+ function _getPayload(payload) {
7671
+ var _a;
7672
+ if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
7673
+ var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
7674
+ var payloadData = (_a = {},
7675
+ _a[_DYN_DATA ] = batch,
7676
+ _a.urlString = _endpointUrl,
7677
+ _a.headers = _headers,
7678
+ _a.disableXhrSync = _disableXhr,
7679
+ _a.disableFetchKeepAlive = !_fetchKeepAlive,
7680
+ _a[_DYN_ORI_PAYLOAD ] = payload,
7681
+ _a);
7682
+ return payloadData;
7683
+ }
7684
+ return null;
7685
+ }
7686
+ function _fetchSender(payload, oncomplete, sync) {
7687
+ return _doFetchSender(payload, oncomplete, false);
7688
+ }
7612
7689
  function _checkMaxSize(incomingPayload) {
7613
7690
  var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
7614
7691
  if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
@@ -7682,45 +7759,60 @@ var Sender = /** @class */ (function (_super) {
7682
7759
  }
7683
7760
  return false;
7684
7761
  }
7762
+ function _doOnComplete(oncomplete, status, headers, response) {
7763
+ try {
7764
+ oncomplete(status, headers, response);
7765
+ }
7766
+ catch (e) {
7767
+ }
7768
+ }
7685
7769
  function _doUnloadSend(payload, isAsync) {
7770
+ var onComplete = function (status, headers, response) {
7771
+ return _getOnComplete(payload, status, headers, response);
7772
+ };
7686
7773
  if (_syncUnloadSender) {
7687
7774
  _syncUnloadSender(payload, false);
7688
7775
  }
7689
7776
  else {
7690
- _beaconSender(payload);
7777
+ var payloadData = _getPayload(payload);
7778
+ _beaconSender(payloadData, onComplete);
7691
7779
  }
7692
7780
  }
7693
- function _doBeaconSend(payload) {
7781
+ function _doBeaconSend(payload, oncomplete) {
7694
7782
  var nav = getNavigator();
7695
- var buffer = _self[_DYN__BUFFER ];
7696
7783
  var url = _endpointUrl;
7697
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
7698
- var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
7784
+ var plainTextBatch = new Blob([payload], { type: "text/plain;charset=UTF-8" });
7699
7785
  var queued = nav.sendBeacon(url, plainTextBatch);
7700
7786
  if (queued) {
7701
- buffer[_DYN_MARK_AS_SENT ](payload);
7702
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
7787
+ oncomplete(200, {}, payload);
7703
7788
  }
7704
7789
  return queued;
7705
7790
  }
7706
- function _beaconSender(payload, isAsync) {
7707
- if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
7708
- if (!_doBeaconSend(payload)) {
7791
+ function _beaconSender(payload, oncomplete, sync) {
7792
+ var internalPayload = payload;
7793
+ var data = internalPayload && internalPayload[_DYN_DATA ];
7794
+ if (isString(data) && data[_DYN_LENGTH ] > 0) {
7795
+ if (!_doBeaconSend(data, oncomplete)) {
7709
7796
  var droppedPayload = [];
7710
- for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
7711
- var thePayload = payload[lp];
7712
- if (!_doBeaconSend([thePayload])) {
7713
- droppedPayload[_DYN_PUSH ](thePayload);
7797
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
7798
+ if (oriPayload[_DYN_LENGTH ] > 0) {
7799
+ for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
7800
+ var thePayload = payload[lp];
7801
+ var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](thePayload);
7802
+ if (!_doBeaconSend(batch, oncomplete)) {
7803
+ droppedPayload[_DYN_PUSH ](thePayload);
7804
+ }
7714
7805
  }
7715
7806
  }
7716
7807
  if (droppedPayload[_DYN_LENGTH ] > 0) {
7717
- _fallbackSender && _fallbackSender(droppedPayload, true);
7808
+ _xhrSend && _xhrSend(droppedPayload, true);
7718
7809
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
7719
7810
  }
7720
7811
  }
7721
7812
  }
7722
7813
  }
7723
- function _xhrSender(payload, isAsync) {
7814
+ function _xhrSender(payload, oncomplete, sync) {
7815
+ var internalPayload = payload;
7724
7816
  var thePromise;
7725
7817
  var resolveFunc;
7726
7818
  var rejectFunc;
@@ -7731,7 +7823,7 @@ var Sender = /** @class */ (function (_super) {
7731
7823
  }
7732
7824
  catch (e) {
7733
7825
  }
7734
- xhr.open("POST", endPointUrl, isAsync);
7826
+ xhr.open("POST", endPointUrl, !sync);
7735
7827
  xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
7736
7828
  if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
7737
7829
  xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
@@ -7740,51 +7832,52 @@ var Sender = /** @class */ (function (_super) {
7740
7832
  xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
7741
7833
  });
7742
7834
  xhr.onreadystatechange = function () {
7743
- _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH ]);
7835
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
7836
+ _self._xhrReadyStateChange(xhr, oriPayload, oriPayload[_DYN_LENGTH ]);
7744
7837
  if (xhr.readyState === 4) {
7745
7838
  resolveFunc && resolveFunc(true);
7746
7839
  }
7747
7840
  };
7748
7841
  xhr.onerror = function (event) {
7749
- _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXhr(xhr), event);
7842
+ _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
7750
7843
  rejectFunc && rejectFunc(event);
7751
7844
  };
7752
- if (isAsync && _enableSendPromise) {
7845
+ if (!sync && _enableSendPromise) {
7753
7846
  thePromise = createPromise(function (resolve, reject) {
7754
7847
  resolveFunc = resolve;
7755
7848
  rejectFunc = reject;
7756
7849
  });
7757
7850
  }
7758
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
7759
- xhr.send(batch);
7760
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
7851
+ xhr.send(payload[_DYN_DATA ]);
7761
7852
  return thePromise;
7762
7853
  }
7763
7854
  function _fetchKeepAliveSender(payload, isAsync) {
7855
+ var onComplete = function (status, headers, response) {
7856
+ return _getOnComplete(payload, status, headers, response);
7857
+ };
7764
7858
  if (isArray(payload)) {
7765
7859
  var payloadSize = payload[_DYN_LENGTH ];
7766
7860
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
7767
7861
  payloadSize += payload[lp][_DYN_LENGTH ];
7768
7862
  }
7863
+ var payloadData = _getPayload(payload);
7769
7864
  if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
7770
- _doFetchSender(payload, false);
7865
+ _doFetchSender(payloadData, onComplete, true);
7771
7866
  }
7772
7867
  else if (isBeaconsSupported()) {
7773
- _beaconSender(payload);
7868
+ _beaconSender(payloadData, onComplete);
7774
7869
  }
7775
7870
  else {
7776
- _fallbackSender && _fallbackSender(payload, true);
7871
+ _xhrSend && _xhrSend(payload, true);
7777
7872
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
7778
7873
  }
7779
7874
  }
7780
7875
  }
7781
- function _fetchSender(payload, isAsync) {
7782
- return _doFetchSender(payload, true);
7783
- }
7784
- function _doFetchSender(payload, isAsync) {
7876
+ function _doFetchSender(payload, oncomplete, sync) {
7785
7877
  var _a;
7786
7878
  var endPointUrl = _endpointUrl;
7787
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
7879
+ var internalPayload = payload;
7880
+ var batch = internalPayload[_DYN_DATA ];
7788
7881
  var plainTextBatch = new Blob([batch], { type: "application/json" });
7789
7882
  var thePromise;
7790
7883
  var resolveFunc;
@@ -7807,7 +7900,7 @@ var Sender = /** @class */ (function (_super) {
7807
7900
  _a[DisabledPropertyName] = true
7808
7901
  ,
7809
7902
  _a);
7810
- if (!isAsync) {
7903
+ if (sync) {
7811
7904
  init.keepalive = true;
7812
7905
  ignoreResponse = true;
7813
7906
  _syncFetchPayload += batchLength;
@@ -7818,8 +7911,7 @@ var Sender = /** @class */ (function (_super) {
7818
7911
  }
7819
7912
  catch (e) {
7820
7913
  }
7821
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
7822
- if (isAsync && _enableSendPromise) {
7914
+ if (!sync && _enableSendPromise) {
7823
7915
  thePromise = createPromise(function (resolve, reject) {
7824
7916
  resolveFunc = resolve;
7825
7917
  rejectFunc = reject;
@@ -7827,7 +7919,7 @@ var Sender = /** @class */ (function (_super) {
7827
7919
  }
7828
7920
  try {
7829
7921
  doAwaitResponse(fetch(request), function (result) {
7830
- if (!isAsync) {
7922
+ if (sync) {
7831
7923
  _syncFetchPayload -= batchLength;
7832
7924
  batchLength = 0;
7833
7925
  }
@@ -7836,18 +7928,19 @@ var Sender = /** @class */ (function (_super) {
7836
7928
  if (!result.rejected) {
7837
7929
  var response_1 = result.value;
7838
7930
  if (!response_1.ok) {
7839
- _self[_DYN__ON_ERROR ](payload, response_1.statusText);
7931
+ _doOnComplete(oncomplete, 400, {}, response_1.statusText);
7840
7932
  resolveFunc && resolveFunc(false);
7841
7933
  }
7842
7934
  else {
7843
7935
  doAwaitResponse(response_1.text(), function (resp) {
7844
- _checkResponsStatus(response_1.status, payload, response_1.url, payload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
7936
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
7937
+ _checkResponsStatus(response_1.status, oriPayload, response_1.url, oriPayload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
7845
7938
  resolveFunc && resolveFunc(true);
7846
7939
  });
7847
7940
  }
7848
7941
  }
7849
7942
  else {
7850
- _self[_DYN__ON_ERROR ](payload, result.reason && result.reason.message);
7943
+ _doOnComplete(oncomplete, 400, {}, result.reason && result.reason.message);
7851
7944
  rejectFunc && rejectFunc(result.reason);
7852
7945
  }
7853
7946
  }
@@ -7855,13 +7948,13 @@ var Sender = /** @class */ (function (_super) {
7855
7948
  }
7856
7949
  catch (e) {
7857
7950
  if (!responseHandled) {
7858
- _self[_DYN__ON_ERROR ](payload, dumpObj(e));
7951
+ _doOnComplete(oncomplete, 400, {}, dumpObj(e));
7859
7952
  rejectFunc && rejectFunc(e);
7860
7953
  }
7861
7954
  }
7862
7955
  if (ignoreResponse && !responseHandled) {
7863
7956
  responseHandled = true;
7864
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
7957
+ _doOnComplete(oncomplete, 200, {});
7865
7958
  resolveFunc && resolveFunc(true);
7866
7959
  }
7867
7960
  return thePromise;
@@ -7944,24 +8037,28 @@ var Sender = /** @class */ (function (_super) {
7944
8037
  }
7945
8038
  return message;
7946
8039
  }
7947
- function _xdrSender(payload, isAsync) {
7948
- var buffer = _self[_DYN__BUFFER ];
8040
+ function _xdrSender(payload, oncomplete, sync) {
8041
+ var internalPayload = payload;
7949
8042
  var _window = getWindow();
7950
8043
  var xdr = new XDomainRequest();
7951
- xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };
7952
- xdr.onerror = function (event) { return _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr), event); };
8044
+ var data = internalPayload[_DYN_DATA ];
8045
+ xdr.onload = function () {
8046
+ var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8047
+ _self._xdrOnLoad(xdr, oriPayload);
8048
+ };
8049
+ xdr.onerror = function () {
8050
+ _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
8051
+ };
7953
8052
  var hostingProtocol = _window && _window.location && _window.location.protocol || "";
7954
8053
  if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {
7955
8054
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
7956
8055
  "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
7957
- buffer[_DYN_CLEAR ]();
8056
+ _self._buffer[_DYN_CLEAR ]();
7958
8057
  return;
7959
8058
  }
7960
8059
  var endpointUrl = _endpointUrl.replace(/^(https?:)/, "");
7961
8060
  xdr.open("POST", endpointUrl);
7962
- var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
7963
- xdr.send(batch);
7964
- buffer[_DYN_MARK_AS_SENT ](payload);
8061
+ xdr.send(data);
7965
8062
  }
7966
8063
  function _formatErrorMessageXdr(xdr, message) {
7967
8064
  if (xdr) {
@@ -8011,7 +8108,6 @@ var Sender = /** @class */ (function (_super) {
8011
8108
  _serializer = null;
8012
8109
  _stamp_specific_redirects = 0;
8013
8110
  _syncFetchPayload = 0;
8014
- _fallbackSender = null;
8015
8111
  _syncUnloadSender = null;
8016
8112
  _evtNamespace = null;
8017
8113
  _endpointUrl = null;
@@ -8025,6 +8121,9 @@ var Sender = /** @class */ (function (_super) {
8025
8121
  _isRetryDisabled = false;
8026
8122
  _sessionStorageUsed = null;
8027
8123
  _namePrefix = UNDEFINED_VALUE;
8124
+ _disableXhr = false;
8125
+ _fetchKeepAlive = false;
8126
+ _xhrSend = null;
8028
8127
  objDefine(_self, "_senderConfig", {
8029
8128
  g: function () {
8030
8129
  return objExtend({}, defaultAppInsightsChannelConfig);