@microsoft/applicationinsights-channel-js 3.1.1-nightly3.2402-22 → 3.1.1-nightly3.2403-02

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 (59) hide show
  1. package/browser/es5/{applicationinsights-channel-js.3.1.1-nightly3.2402-22.cjs.js → applicationinsights-channel-js.3.1.1-nightly3.2403-02.cjs.js} +586 -331
  2. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.cjs.js.map +1 -0
  3. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.cjs.min.js +6 -0
  4. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.cjs.min.js.map +1 -0
  5. package/browser/es5/{applicationinsights-channel-js.3.1.1-nightly3.2402-22.gbl.js → applicationinsights-channel-js.3.1.1-nightly3.2403-02.gbl.js} +588 -333
  6. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.gbl.js.map +1 -0
  7. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.gbl.min.js +6 -0
  8. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.gbl.min.js.map +1 -0
  9. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.integrity.json +66 -0
  10. package/browser/es5/{applicationinsights-channel-js.3.1.1-nightly3.2402-22.js → applicationinsights-channel-js.3.1.1-nightly3.2403-02.js} +588 -333
  11. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.js.map +1 -0
  12. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.min.js +6 -0
  13. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2403-02.min.js.map +1 -0
  14. package/browser/es5/applicationinsights-channel-js.3.cjs.js +585 -330
  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 +587 -332
  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 +587 -332
  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 +585 -330
  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/SendBuffer.js +5 -5
  36. package/dist-es5/SendBuffer.js.map +1 -1
  37. package/dist-es5/Sender.js +138 -369
  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 +3 -3
  42. package/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js.map +1 -1
  43. package/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js +1 -1
  44. package/dist-es5/__DynamicConstants.js +14 -15
  45. package/dist-es5/__DynamicConstants.js.map +1 -1
  46. package/dist-es5/applicationinsights-channel-js.js +1 -1
  47. package/package.json +3 -3
  48. package/types/applicationinsights-channel-js.d.ts +1 -1
  49. package/types/applicationinsights-channel-js.namespaced.d.ts +6 -1
  50. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.cjs.js.map +0 -1
  51. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.cjs.min.js +0 -6
  52. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.cjs.min.js.map +0 -1
  53. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.gbl.js.map +0 -1
  54. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.gbl.min.js +0 -6
  55. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.gbl.min.js.map +0 -1
  56. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.integrity.json +0 -66
  57. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.js.map +0 -1
  58. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.min.js +0 -6
  59. package/browser/es5/applicationinsights-channel-js.3.1.1-nightly3.2402-22.min.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Channel, 3.1.1-nightly3.2402-22
2
+ * Application Insights JavaScript SDK - Channel, 3.1.1-nightly3.2403-02
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_1_1_nightly3_2402_22", msMod="__ms$mod__";
8
- var mods={}, modDetail=mods[modName]={}, ver="3.1.1-nightly3.2402-22";
7
+ var nsKey, key, nm, theExports = {}, modName = "es5_applicationinsights_channel_js_3_1_1_nightly3_2403_02", msMod="__ms$mod__";
8
+ var mods={}, modDetail=mods[modName]={}, ver="3.1.1-nightly3.2403-02";
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]||{});
@@ -1144,7 +1144,7 @@ var _DYN_PUSH$2 = "push";
1144
1144
  var _DYN_SPLICE = "splice";
1145
1145
  var _DYN_HDLR = "hdlr";
1146
1146
  var _DYN_CANCEL = "cancel";
1147
- var _DYN_INITIALIZE = "initialize";
1147
+ var _DYN_INITIALIZE$1 = "initialize";
1148
1148
  var _DYN_IDENTIFIER = "identifier";
1149
1149
  var _DYN_IS_INITIALIZED = "isInitialized";
1150
1150
  var _DYN_GET_PLUGIN = "getPlugin";
@@ -1493,7 +1493,7 @@ function createPromise(executor, timeout) {
1493
1493
  }
1494
1494
 
1495
1495
  var UNDEFINED_VALUE$1 = undefined;
1496
- var STR_EMPTY = "";
1496
+ var STR_EMPTY$1 = "";
1497
1497
  var STR_CORE = "core";
1498
1498
  var STR_DISABLED = "disabled";
1499
1499
  var STR_EXTENSION_CONFIG = "extensionConfig";
@@ -1534,7 +1534,7 @@ function getExceptionName(object) {
1534
1534
  if (isError(object)) {
1535
1535
  return object[_DYN_NAME$2 ];
1536
1536
  }
1537
- return STR_EMPTY;
1537
+ return STR_EMPTY$1;
1538
1538
  }
1539
1539
  function setValue(target, field, value, valChk, srcChk) {
1540
1540
  var theValue = value;
@@ -1638,6 +1638,7 @@ function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
1638
1638
  }
1639
1639
 
1640
1640
  var strDocumentMode = "documentMode";
1641
+ var strLocation = "location";
1641
1642
  var strConsole = "console";
1642
1643
  var strJSON = "JSON";
1643
1644
  var strCrypto = "crypto";
@@ -1647,6 +1648,7 @@ var strTrident = "trident/";
1647
1648
  var strXMLHttpRequest = "XMLHttpRequest";
1648
1649
  var _isTrident = null;
1649
1650
  var _navUserAgentCheck = null;
1651
+ var _enableMocks = false;
1650
1652
  var _useXDomainRequest = null;
1651
1653
  var _beaconsSupported = null;
1652
1654
  function _hasProperty(theClass, property) {
@@ -1674,6 +1676,18 @@ function _hasProperty(theClass, property) {
1674
1676
  }
1675
1677
  return supported;
1676
1678
  }
1679
+ function getLocation(checkForMock) {
1680
+ if (checkForMock && _enableMocks) {
1681
+ var mockLocation = getInst("__mockLocation");
1682
+ if (mockLocation) {
1683
+ return mockLocation;
1684
+ }
1685
+ }
1686
+ if (typeof location === strShimObject && location) {
1687
+ return location;
1688
+ }
1689
+ return getInst(strLocation);
1690
+ }
1677
1691
  function getConsole() {
1678
1692
  if (typeof console !== strShimUndefined) {
1679
1693
  return console;
@@ -1699,7 +1713,7 @@ function isIE() {
1699
1713
  var nav = getNavigator();
1700
1714
  if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
1701
1715
  _navUserAgentCheck = nav[_DYN_USER_AGENT ];
1702
- var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1716
+ var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1703
1717
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1704
1718
  }
1705
1719
  return _isTrident;
@@ -1708,9 +1722,9 @@ function getIEVersion(userAgentStr) {
1708
1722
  if (userAgentStr === void 0) { userAgentStr = null; }
1709
1723
  if (!userAgentStr) {
1710
1724
  var navigator_1 = getNavigator() || {};
1711
- userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY;
1725
+ userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY$1;
1712
1726
  }
1713
- var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1727
+ var ua = (userAgentStr || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1714
1728
  if (strContains(ua, strMsie)) {
1715
1729
  var doc = getDocument() || {};
1716
1730
  return Math.max(parseInt(ua[_DYN_SPLIT$1 ](strMsie)[1]), (doc[strDocumentMode] || 0));
@@ -1819,7 +1833,7 @@ function newId(maxLength) {
1819
1833
  var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1820
1834
  var number = random32() >>> 0;
1821
1835
  var chars = 0;
1822
- var result = STR_EMPTY;
1836
+ var result = STR_EMPTY$1;
1823
1837
  while (result[_DYN_LENGTH$2 ] < maxLength) {
1824
1838
  chars++;
1825
1839
  result += base64chars.charAt(number & 0x3F);
@@ -1857,11 +1871,11 @@ function _getCache(data, target) {
1857
1871
  }
1858
1872
  function createUniqueNamespace(name, includeVersion) {
1859
1873
  if (includeVersion === void 0) { includeVersion = false; }
1860
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
1874
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
1861
1875
  }
1862
1876
  function createElmNodeData(name) {
1863
1877
  var data = {
1864
- id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
1878
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
1865
1879
  accept: function (target) {
1866
1880
  return _canAcceptData(target);
1867
1881
  },
@@ -2566,9 +2580,9 @@ var _logFuncs = (_a$2 = {},
2566
2580
  _a$2);
2567
2581
  function _sanitizeDiagnosticText(text) {
2568
2582
  if (text) {
2569
- return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
2583
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
2570
2584
  }
2571
- return STR_EMPTY;
2585
+ return STR_EMPTY$1;
2572
2586
  }
2573
2587
  function _logToConsole(func, message) {
2574
2588
  var theConsole = getConsole();
@@ -2590,12 +2604,12 @@ var _InternalLogMessage = /** @class */ (function () {
2590
2604
  _self[_DYN_MESSAGE$1 ] =
2591
2605
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
2592
2606
  msgId;
2593
- var strProps = STR_EMPTY;
2607
+ var strProps = STR_EMPTY$1;
2594
2608
  if (hasJSON()) {
2595
2609
  strProps = getJSON().stringify(properties);
2596
2610
  }
2597
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
2598
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
2611
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
2612
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
2599
2613
  _self[_DYN_MESSAGE$1 ] += diagnosticText;
2600
2614
  }
2601
2615
  _InternalLogMessage.dataType = "MessageData";
@@ -3128,7 +3142,7 @@ function createTelemetryPluginProxy(plugin, config, core) {
3128
3142
  doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
3129
3143
  hasRunContext[chainId] = true;
3130
3144
  try {
3131
- var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
3145
+ var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
3132
3146
  if (nextId) {
3133
3147
  hasRunContext[nextId] = false;
3134
3148
  }
@@ -3273,7 +3287,7 @@ var BaseTelemetryPlugin = /** @class */ (function () {
3273
3287
  var _hookContainer;
3274
3288
  _initDefaults();
3275
3289
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
3276
- _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
3290
+ _self[_DYN_INITIALIZE$1 ] = function (config, core, extensions, pluginChain) {
3277
3291
  _setDefaults(config, core, pluginChain);
3278
3292
  _isinitialized = true;
3279
3293
  };
@@ -3414,16 +3428,16 @@ var elmNodeData = createElmNodeData("events");
3414
3428
  var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
3415
3429
  function _normalizeNamespace(name) {
3416
3430
  if (name && name[_DYN_REPLACE ]) {
3417
- return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
3431
+ return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY$1);
3418
3432
  }
3419
3433
  return name;
3420
3434
  }
3421
3435
  function _getEvtNamespace(eventName, evtNamespace) {
3422
3436
  var _a;
3423
3437
  if (evtNamespace) {
3424
- var theNamespace_1 = STR_EMPTY;
3438
+ var theNamespace_1 = STR_EMPTY$1;
3425
3439
  if (isArray(evtNamespace)) {
3426
- theNamespace_1 = STR_EMPTY;
3440
+ theNamespace_1 = STR_EMPTY$1;
3427
3441
  arrForEach(evtNamespace, function (name) {
3428
3442
  name = _normalizeNamespace(name);
3429
3443
  if (name) {
@@ -3441,13 +3455,13 @@ function _getEvtNamespace(eventName, evtNamespace) {
3441
3455
  if (theNamespace_1[0] !== ".") {
3442
3456
  theNamespace_1 = "." + theNamespace_1;
3443
3457
  }
3444
- eventName = (eventName || STR_EMPTY) + theNamespace_1;
3458
+ eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
3445
3459
  }
3446
3460
  }
3447
- var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
3461
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
3448
3462
  return _a = {},
3449
3463
  _a[_DYN_TYPE ] = parsedEvent[1],
3450
- _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT$1 ](".").sort()).join("."),
3464
+ _a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT$1 ](".").sort()).join("."),
3451
3465
  _a;
3452
3466
  }
3453
3467
  function _getRegisteredEvents(target, evtName, addDefault) {
@@ -3596,14 +3610,20 @@ var RequestHeaders = createValueMap({
3596
3610
  var _DYN_SPLIT = "split";
3597
3611
  var _DYN_LENGTH$1 = "length";
3598
3612
  var _DYN_TO_LOWER_CASE = "toLowerCase";
3613
+ var _DYN_LOCATION = "location";
3599
3614
  var _DYN_TO_STRING$1 = "toString";
3600
3615
  var _DYN_PUSH$1 = "push";
3616
+ var _DYN_URL_STRING = "urlString";
3617
+ var _DYN_DATA$1 = "data";
3618
+ var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
3619
+ var _DYN_REASON = "reason";
3620
+ var _DYN_MESSAGE = "message";
3601
3621
  var _DYN_REMOVE_ITEM = "removeItem";
3602
3622
  var _DYN_NAME$1 = "name";
3603
- var _DYN_MESSAGE = "message";
3604
3623
  var _DYN_COUNT$1 = "count";
3605
3624
  var _DYN_STRINGIFY$1 = "stringify";
3606
3625
  var _DYN_PATHNAME = "pathname";
3626
+ var _DYN_ITEMS_RECEIVED$1 = "itemsReceived";
3607
3627
  var _DYN_EXCEPTIONS = "exceptions";
3608
3628
  var _DYN_PARSED_STACK = "parsedStack";
3609
3629
  var _DYN_PROPERTIES = "properties";
@@ -3825,6 +3845,54 @@ function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName)
3825
3845
  data: data
3826
3846
  };
3827
3847
  }
3848
+ function getResponseText(xhr) {
3849
+ try {
3850
+ return xhr.responseText;
3851
+ }
3852
+ catch (e) {
3853
+ }
3854
+ return null;
3855
+ }
3856
+ function formatErrorMessageXdr(xdr, message) {
3857
+ if (xdr) {
3858
+ return "XDomainRequest,Response:" + getResponseText(xdr) || "";
3859
+ }
3860
+ return message;
3861
+ }
3862
+ function formatErrorMessageXhr(xhr, message) {
3863
+ if (xhr) {
3864
+ return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + getResponseText(xhr) || xhr.response || "";
3865
+ }
3866
+ return message;
3867
+ }
3868
+ function prependTransports(theTransports, newTransports) {
3869
+ if (newTransports) {
3870
+ if (isNumber(newTransports)) {
3871
+ theTransports = [newTransports].concat(theTransports);
3872
+ }
3873
+ else if (isArray(newTransports)) {
3874
+ theTransports = newTransports.concat(theTransports);
3875
+ }
3876
+ }
3877
+ return theTransports;
3878
+ }
3879
+ function parseResponse(response, diagLog) {
3880
+ try {
3881
+ if (response && response !== "") {
3882
+ var result = getJSON().parse(response);
3883
+ if (result && result[_DYN_ITEMS_RECEIVED$1 ] && result[_DYN_ITEMS_RECEIVED$1 ] >= result.itemsAccepted &&
3884
+ result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH$1 ]) {
3885
+ return result;
3886
+ }
3887
+ }
3888
+ }
3889
+ catch (e) {
3890
+ _throwInternal(diagLog, 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
3891
+ response: response
3892
+ });
3893
+ }
3894
+ return null;
3895
+ }
3828
3896
 
3829
3897
  var StorageType = createEnumStyle({
3830
3898
  LocalStorage: 0 ,
@@ -3903,7 +3971,7 @@ var Envelope = /** @class */ (function () {
3903
3971
  _self.sampleRate = 100.0;
3904
3972
  _self.tags = {};
3905
3973
  _self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
3906
- _self.data = data;
3974
+ _self[_DYN_DATA$1 ] = data;
3907
3975
  _self.time = toISOString(new Date());
3908
3976
  _self.aiDataContract = {
3909
3977
  time: 1 ,
@@ -4060,8 +4128,8 @@ function _getStackFromErrorObj(errorObj) {
4060
4128
  else if (getWindow() && getWindow()["opera"] && errorObj[strMessage]) {
4061
4129
  details = _getOperaStack(errorObj[_DYN_MESSAGE ]);
4062
4130
  }
4063
- else if (errorObj["reason"] && errorObj.reason[strStack]) {
4064
- details = _convertStackObj(errorObj.reason[strStack]);
4131
+ else if (errorObj["reason"] && errorObj[_DYN_REASON ][strStack]) {
4132
+ details = _convertStackObj(errorObj[_DYN_REASON ][strStack]);
4065
4133
  }
4066
4134
  else if (isString(errorObj)) {
4067
4135
  details = _convertStackObj(errorObj);
@@ -4532,7 +4600,7 @@ var RemoteDependencyData = /** @class */ (function () {
4532
4600
  _self.resultCode = resultCode + "";
4533
4601
  _self.type = dataSanitizeString(logger, requestAPI);
4534
4602
  var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);
4535
- _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data;
4603
+ _self[_DYN_DATA$1 ] = dataSanitizeUrl(logger, commandName) || dependencyFields[_DYN_DATA$1 ];
4536
4604
  _self.target = dataSanitizeString(logger, dependencyFields.target);
4537
4605
  if (correlationContext) {
4538
4606
  _self.target = "".concat(_self.target, " | ").concat(correlationContext);
@@ -4698,6 +4766,360 @@ var ContextTagKeys = /** @class */ (function (_super) {
4698
4766
 
4699
4767
  var CtxTagKeys = new ContextTagKeys();
4700
4768
 
4769
+ var STR_EMPTY = "";
4770
+ var SenderPostManager = /** @class */ (function () {
4771
+ function SenderPostManager() {
4772
+ var _syncFetchPayload = 0;
4773
+ var _enableSendPromise;
4774
+ var _isInitialized;
4775
+ var _diagLog;
4776
+ var _isOneDs;
4777
+ var _onCompleteFuncs;
4778
+ var _disableCredentials;
4779
+ var _fallbackInst;
4780
+ var _disableXhr;
4781
+ var _disableBeacon;
4782
+ var _disableBeaconSync;
4783
+ dynamicProto(SenderPostManager, this, function (_self, _base) {
4784
+ var _sendCredentials = true;
4785
+ _initDefaults();
4786
+ _self.initialize = function (config, diagLog) {
4787
+ _diagLog = diagLog;
4788
+ if (_isInitialized) {
4789
+ _throwInternal(_diagLog, 1 , 28 , "Sender is already initialized");
4790
+ }
4791
+ _self.SetConfig(config);
4792
+ _isInitialized = true;
4793
+ };
4794
+ _self["_getDbgPlgTargets"] = function () {
4795
+ return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];
4796
+ };
4797
+ _self.SetConfig = function (config) {
4798
+ try {
4799
+ _onCompleteFuncs = config.senderOnCompleteCallBack || {};
4800
+ _disableCredentials = !!config.disableCredentials;
4801
+ _isOneDs = !!config.isOneDs;
4802
+ _enableSendPromise = !!config.enableSendPromise;
4803
+ _disableXhr = !!config.disableXhr;
4804
+ _disableBeacon = !!config.disableBeacon;
4805
+ _disableBeaconSync = !!config.disableBeaconSync;
4806
+ _fallbackInst = { sendPOST: _xhrSender };
4807
+ if (_disableCredentials) {
4808
+ var location_1 = getLocation();
4809
+ if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE ]() === "file:") {
4810
+ _sendCredentials = false;
4811
+ }
4812
+ }
4813
+ return true;
4814
+ }
4815
+ catch (e) {
4816
+ }
4817
+ return false;
4818
+ };
4819
+ _self.getSyncFetchPayload = function () {
4820
+ return _syncFetchPayload;
4821
+ };
4822
+ _self.getXhrInst = function (transports, sync) {
4823
+ if (transports && transports[_DYN_LENGTH$1 ]) {
4824
+ return _getSenderInterface(transports, sync);
4825
+ }
4826
+ return null;
4827
+ };
4828
+ _self.getFallbackInst = function () {
4829
+ return _fallbackInst;
4830
+ };
4831
+ _self._doTeardown = function (unloadCtx, unloadState) {
4832
+ _initDefaults();
4833
+ };
4834
+ function _onSuccess(res, onComplete) {
4835
+ _doOnComplete(onComplete, 200, {}, res);
4836
+ }
4837
+ function _onError(message, onComplete) {
4838
+ _throwInternal(_diagLog, 2 , 26 , "Failed to send telemetry.", { message: message });
4839
+ _doOnComplete(onComplete, 400, {});
4840
+ }
4841
+ function _onNoPayloadUrl(onComplete) {
4842
+ _onError("No endpoint url is provided for the batch", onComplete);
4843
+ }
4844
+ function _getSenderInterface(transports, syncSupport) {
4845
+ var transportType = null;
4846
+ var sendPostFunc = null;
4847
+ var lp = 0;
4848
+ while (sendPostFunc == null && lp < transports[_DYN_LENGTH$1 ]) {
4849
+ transportType = transports[lp];
4850
+ if (!_disableXhr && transportType === 1 ) {
4851
+ if (useXDomainRequest()) {
4852
+ sendPostFunc = _xdrSender;
4853
+ }
4854
+ else if (isXhrSupported()) {
4855
+ sendPostFunc = _xhrSender;
4856
+ }
4857
+ }
4858
+ else if (transportType === 2 && isFetchSupported(syncSupport)) {
4859
+ sendPostFunc = _doFetchSender;
4860
+ }
4861
+ else if (transportType === 3 && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {
4862
+ sendPostFunc = _beaconSender;
4863
+ }
4864
+ lp++;
4865
+ }
4866
+ if (sendPostFunc) {
4867
+ return {
4868
+ sendPOST: sendPostFunc
4869
+ };
4870
+ }
4871
+ return null;
4872
+ }
4873
+ function _doOnComplete(oncomplete, status, headers, response) {
4874
+ try {
4875
+ oncomplete && oncomplete(status, headers, response);
4876
+ }
4877
+ catch (e) {
4878
+ }
4879
+ }
4880
+ function _doBeaconSend(payload, oncomplete) {
4881
+ var nav = getNavigator();
4882
+ var url = payload[_DYN_URL_STRING ];
4883
+ if (!url) {
4884
+ _onNoPayloadUrl(oncomplete);
4885
+ return true;
4886
+ }
4887
+ var data = payload[_DYN_DATA$1 ];
4888
+ var plainTextBatch = new Blob([data], { type: "text/plain;charset=UTF-8" });
4889
+ var queued = nav.sendBeacon(url, plainTextBatch);
4890
+ return queued;
4891
+ }
4892
+ function _beaconSender(payload, oncomplete, sync) {
4893
+ var data = payload[_DYN_DATA$1 ];
4894
+ if (data) {
4895
+ if (!_doBeaconSend(payload, oncomplete)) {
4896
+ var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;
4897
+ if (onRetry && isFunction(onRetry)) {
4898
+ onRetry(payload, oncomplete, _doBeaconSend);
4899
+ }
4900
+ else {
4901
+ _fallbackInst && _fallbackInst.sendPOST(payload, oncomplete, true);
4902
+ _throwInternal(_diagLog, 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
4903
+ }
4904
+ }
4905
+ else {
4906
+ _onSuccess(null, oncomplete);
4907
+ }
4908
+ }
4909
+ return;
4910
+ }
4911
+ function _xhrSender(payload, oncomplete, sync) {
4912
+ var thePromise;
4913
+ var resolveFunc;
4914
+ var rejectFunc;
4915
+ var headers = payload.headers || {};
4916
+ if (!sync && _enableSendPromise) {
4917
+ thePromise = createPromise(function (resolve, reject) {
4918
+ resolveFunc = resolve;
4919
+ rejectFunc = reject;
4920
+ });
4921
+ }
4922
+ var xhr = new XMLHttpRequest();
4923
+ var endPointUrl = payload[_DYN_URL_STRING ];
4924
+ if (!endPointUrl) {
4925
+ _onNoPayloadUrl(oncomplete);
4926
+ resolveFunc && resolveFunc(false);
4927
+ return;
4928
+ }
4929
+ try {
4930
+ xhr[DisabledPropertyName] = true;
4931
+ }
4932
+ catch (e) {
4933
+ }
4934
+ xhr.open("POST", endPointUrl, !sync);
4935
+ xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
4936
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
4937
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
4938
+ }
4939
+ arrForEach(objKeys(headers), function (headerName) {
4940
+ xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
4941
+ });
4942
+ xhr.onreadystatechange = function () {
4943
+ var response = getResponseText(xhr);
4944
+ var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;
4945
+ var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);
4946
+ if (onReadyFuncExist) {
4947
+ onReadyFunc(xhr, oncomplete, payload);
4948
+ }
4949
+ if (xhr.readyState === 4) {
4950
+ if (!onReadyFuncExist) {
4951
+ _doOnComplete(oncomplete, xhr.status, {}, response);
4952
+ }
4953
+ resolveFunc && resolveFunc(true);
4954
+ }
4955
+ };
4956
+ xhr.onerror = function (event) {
4957
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXhr(xhr));
4958
+ rejectFunc && rejectFunc(event);
4959
+ };
4960
+ xhr.ontimeout = function () {
4961
+ _doOnComplete(oncomplete, 500, {}, formatErrorMessageXhr(xhr));
4962
+ resolveFunc && resolveFunc(false);
4963
+ };
4964
+ xhr.send(payload[_DYN_DATA$1 ]);
4965
+ return thePromise;
4966
+ }
4967
+ function _doFetchSender(payload, oncomplete, sync) {
4968
+ var _a;
4969
+ var endPointUrl = payload[_DYN_URL_STRING ];
4970
+ var batch = payload[_DYN_DATA$1 ];
4971
+ var plainTextBatch = new Blob([batch], { type: "application/json" });
4972
+ var thePromise;
4973
+ var resolveFunc;
4974
+ var rejectFunc;
4975
+ var requestHeaders = new Headers();
4976
+ var batchLength = batch[_DYN_LENGTH$1 ];
4977
+ var ignoreResponse = false;
4978
+ var responseHandled = false;
4979
+ var headers = payload.headers || {};
4980
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
4981
+ requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
4982
+ }
4983
+ arrForEach(objKeys(headers), function (headerName) {
4984
+ requestHeaders.append(headerName, headers[headerName]);
4985
+ });
4986
+ var init = (_a = {
4987
+ method: "POST",
4988
+ headers: requestHeaders,
4989
+ body: plainTextBatch
4990
+ },
4991
+ _a[DisabledPropertyName] = true
4992
+ ,
4993
+ _a);
4994
+ if (_sendCredentials && _isOneDs) {
4995
+ init.credentials = "include";
4996
+ }
4997
+ if (sync) {
4998
+ init.keepalive = true;
4999
+ ignoreResponse = true;
5000
+ _syncFetchPayload += batchLength;
5001
+ }
5002
+ var request = new Request(endPointUrl, init);
5003
+ try {
5004
+ request[DisabledPropertyName] = true;
5005
+ }
5006
+ catch (e) {
5007
+ }
5008
+ if (!sync && _enableSendPromise) {
5009
+ thePromise = createPromise(function (resolve, reject) {
5010
+ resolveFunc = resolve;
5011
+ rejectFunc = reject;
5012
+ });
5013
+ }
5014
+ if (!endPointUrl) {
5015
+ _onNoPayloadUrl(oncomplete);
5016
+ resolveFunc && resolveFunc(false);
5017
+ return;
5018
+ }
5019
+ try {
5020
+ doAwaitResponse(fetch(request), function (result) {
5021
+ if (sync) {
5022
+ _syncFetchPayload -= batchLength;
5023
+ batchLength = 0;
5024
+ }
5025
+ if (!responseHandled) {
5026
+ responseHandled = true;
5027
+ if (!result.rejected) {
5028
+ var response_1 = result.value;
5029
+ if (!response_1.ok) {
5030
+ _doOnComplete(oncomplete, 400, {}, response_1.statusText);
5031
+ resolveFunc && resolveFunc(false);
5032
+ }
5033
+ else {
5034
+ doAwaitResponse(response_1.text(), function (resp) {
5035
+ var status = response_1.status;
5036
+ var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;
5037
+ if (onCompleteFunc && isFunction(onCompleteFunc)) {
5038
+ onCompleteFunc(response_1, oncomplete, resp.value || STR_EMPTY, payload);
5039
+ }
5040
+ else {
5041
+ _doOnComplete(oncomplete, status, {}, resp.value || STR_EMPTY);
5042
+ }
5043
+ resolveFunc && resolveFunc(true);
5044
+ });
5045
+ }
5046
+ }
5047
+ else {
5048
+ _doOnComplete(oncomplete, 400, {}, result[_DYN_REASON ] && result[_DYN_REASON ][_DYN_MESSAGE ]);
5049
+ rejectFunc && rejectFunc(result[_DYN_REASON ]);
5050
+ }
5051
+ }
5052
+ });
5053
+ }
5054
+ catch (e) {
5055
+ if (!responseHandled) {
5056
+ _doOnComplete(oncomplete, 400, {}, dumpObj(e));
5057
+ rejectFunc && rejectFunc(e);
5058
+ }
5059
+ }
5060
+ if (ignoreResponse && !responseHandled) {
5061
+ responseHandled = true;
5062
+ _doOnComplete(oncomplete, 200, {});
5063
+ resolveFunc && resolveFunc(true);
5064
+ }
5065
+ return thePromise;
5066
+ }
5067
+ function _xdrSender(payload, oncomplete, sync) {
5068
+ var _window = getWindow();
5069
+ var xdr = new XDomainRequest();
5070
+ var data = payload[_DYN_DATA$1 ];
5071
+ xdr.onload = function () {
5072
+ var response = getResponseText(xdr);
5073
+ var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;
5074
+ if (onloadFunc && isFunction(onloadFunc)) {
5075
+ onloadFunc(xdr, oncomplete, payload);
5076
+ }
5077
+ else {
5078
+ _doOnComplete(oncomplete, 200, {}, response);
5079
+ }
5080
+ };
5081
+ xdr.onerror = function () {
5082
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXdr(xdr));
5083
+ };
5084
+ xdr.ontimeout = function () {
5085
+ _doOnComplete(oncomplete, 500, {});
5086
+ };
5087
+ xdr.onprogress = function () { };
5088
+ var hostingProtocol = _window && _window[_DYN_LOCATION ] && _window[_DYN_LOCATION ].protocol || "";
5089
+ var endpoint = payload[_DYN_URL_STRING ];
5090
+ if (!endpoint) {
5091
+ _onNoPayloadUrl(oncomplete);
5092
+ return;
5093
+ }
5094
+ if (endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {
5095
+ var msg = "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.";
5096
+ _throwInternal(_diagLog, 2 , 40 , ". " + msg);
5097
+ _onError(msg, oncomplete);
5098
+ return;
5099
+ }
5100
+ var endpointUrl = endpoint.replace(/^(https?:)/, "");
5101
+ xdr.open("POST", endpointUrl);
5102
+ xdr.send(data);
5103
+ }
5104
+ function _initDefaults() {
5105
+ _syncFetchPayload = 0;
5106
+ _isInitialized = false;
5107
+ _enableSendPromise = false;
5108
+ _diagLog = null;
5109
+ _isOneDs = null;
5110
+ _onCompleteFuncs = null;
5111
+ _disableCredentials = null;
5112
+ _fallbackInst = null;
5113
+ _disableXhr = false;
5114
+ _disableBeacon = false;
5115
+ _disableBeaconSync = false;
5116
+ }
5117
+ });
5118
+ }
5119
+ SenderPostManager.__ieDyn=1;
5120
+ return SenderPostManager;
5121
+ }());
5122
+
4701
5123
  function _disableEvents(target, evtNamespace) {
4702
5124
  eventOff(target, null, null, evtNamespace);
4703
5125
  }
@@ -4836,43 +5258,42 @@ var _DYN_EVENTS_LIMIT_IN_MEM = "eventsLimitInMem";
4836
5258
  var _DYN_PUSH = "push";
4837
5259
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
4838
5260
  var _DYN_CLEAR = "clear";
4839
- var _DYN_BATCH_PAYLOADS = "batchPayloads";
4840
5261
  var _DYN_CREATE_NEW = "createNew";
4841
5262
  var _DYN_MARK_AS_SENT = "markAsSent";
4842
5263
  var _DYN_CLEAR_SENT = "clearSent";
4843
5264
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
4844
5265
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
4845
5266
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
4846
- var _DYN_CONCAT = "concat";
4847
5267
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
4848
- var _DYN_SEND_POST = "sendPOST";
4849
5268
  var _DYN_TRIGGER_SEND = "triggerSend";
4850
5269
  var _DYN_DIAG_LOG = "diagLog";
5270
+ var _DYN_INITIALIZE = "initialize";
4851
5271
  var _DYN__SENDER = "_sender";
4852
5272
  var _DYN_CUSTOM_HEADERS = "customHeaders";
4853
5273
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
4854
5274
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
4855
5275
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
4856
5276
  var _DYN_ALWAYS_USE_XHR_OVERR4 = "alwaysUseXhrOverride";
5277
+ var _DYN_DISABLE_XHR = "disableXhr";
4857
5278
  var _DYN_ENABLE_SESSION_STORA5 = "enableSessionStorageBuffer";
4858
5279
  var _DYN__BUFFER = "_buffer";
4859
5280
  var _DYN_ONUNLOAD_DISABLE_FET6 = "onunloadDisableFetch";
4860
5281
  var _DYN_DISABLE_SEND_BEACON_7 = "disableSendBeaconSplit";
4861
5282
  var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
5283
+ var _DYN_ENABLE_SEND_PROMISE = "enableSendPromise";
5284
+ var _DYN_GET_XHR_INST = "getXhrInst";
4862
5285
  var _DYN_UNLOAD_TRANSPORTS = "unloadTransports";
4863
5286
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
4864
5287
  var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
4865
5288
  var _DYN_SERIALIZE = "serialize";
4866
- var _DYN__XHR_READY_STATE_CHA8 = "_xhrReadyStateChange";
4867
5289
  var _DYN__ON_ERROR = "_onError";
4868
5290
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
4869
5291
  var _DYN__ON_SUCCESS = "_onSuccess";
4870
5292
  var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
4871
5293
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
5294
+ var _DYN_ORI_PAYLOAD = "oriPayload";
4872
5295
  var _DYN_BASE_TYPE = "baseType";
4873
5296
  var _DYN_SAMPLE_RATE = "sampleRate";
4874
- var _DYN_ORI_PAYLOAD = "oriPayload";
4875
- var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
4876
5297
  var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
4877
5298
  var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
4878
5299
  var _DYN_GET_HASH_CODE_SCORE = "getHashCodeScore";
@@ -4986,7 +5407,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
4986
5407
  }
4987
5408
  }
4988
5409
  var EnvelopeCreator = {
4989
- Version: '3.1.1-nightly3.2402-22'
5410
+ Version: '3.1.1-nightly3.2403-02'
4990
5411
  };
4991
5412
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
4992
5413
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -5177,7 +5598,7 @@ var BaseSendBuffer = /** @class */ (function () {
5177
5598
  _self.getItems = function () {
5178
5599
  return _buffer.slice(0);
5179
5600
  };
5180
- _self[_DYN_BATCH_PAYLOADS ] = function (payload) {
5601
+ _self.batchPayloads = function (payload) {
5181
5602
  if (payload && payload[_DYN_LENGTH ] > 0) {
5182
5603
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
5183
5604
  payload.join("\n") :
@@ -5227,7 +5648,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5227
5648
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
5228
5649
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
5229
5650
  var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5230
- var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
5651
+ var buffer = _self._set(bufferItems.concat(notDeliveredItems));
5231
5652
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
5232
5653
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
5233
5654
  }
@@ -5254,7 +5675,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5254
5675
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
5255
5676
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5256
5677
  if (sentElements instanceof Array && payload instanceof Array) {
5257
- sentElements = sentElements[_DYN_CONCAT ](payload);
5678
+ sentElements = sentElements.concat(payload);
5258
5679
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
5259
5680
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
5260
5681
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -5487,7 +5908,7 @@ var HashCodeScoreGenerator = /** @class */ (function () {
5487
5908
  return 0;
5488
5909
  }
5489
5910
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
5490
- input = input[_DYN_CONCAT ](input);
5911
+ input = input.concat(input);
5491
5912
  }
5492
5913
  var hash = 5381;
5493
5914
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -5567,18 +5988,7 @@ function _getResponseText(xhr) {
5567
5988
  return null;
5568
5989
  }
5569
5990
  function isOverrideFn(httpXHROverride) {
5570
- return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
5571
- }
5572
- function _prependTransports(theTransports, newTransports) {
5573
- if (newTransports) {
5574
- if (isNumber(newTransports)) {
5575
- theTransports = [newTransports][_DYN_CONCAT ](theTransports);
5576
- }
5577
- else if (isArray(newTransports)) {
5578
- theTransports = newTransports[_DYN_CONCAT ](theTransports);
5579
- }
5580
- }
5581
- return theTransports;
5991
+ return httpXHROverride && httpXHROverride.sendPOST;
5582
5992
  }
5583
5993
  var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5584
5994
  endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)
@@ -5591,7 +6001,7 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5591
6001
  _a.isRetryDisabled = cfgDfBoolean(),
5592
6002
  _a[_DYN_IS_BEACON_API_DISABL3 ] = cfgDfBoolean(true),
5593
6003
  _a[_DYN_DISABLE_SEND_BEACON_7 ] = cfgDfBoolean(true),
5594
- _a.disableXhr = cfgDfBoolean(),
6004
+ _a[_DYN_DISABLE_XHR ] = cfgDfBoolean(),
5595
6005
  _a[_DYN_ONUNLOAD_DISABLE_FET6 ] = cfgDfBoolean(),
5596
6006
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = cfgDfBoolean(),
5597
6007
  _a[_DYN_INSTRUMENTATION_KEY ] = UNDEFINED_VALUE,
@@ -5656,6 +6066,7 @@ var Sender = /** @class */ (function (_super) {
5656
6066
  var _xhrSend;
5657
6067
  var _fallbackSend;
5658
6068
  var _disableBeaconSplit;
6069
+ var _sendPostMgr;
5659
6070
  dynamicProto(Sender, _this, function (_self, _base) {
5660
6071
  _initDefaults();
5661
6072
  _self.pause = function () {
@@ -5700,11 +6111,11 @@ var Sender = /** @class */ (function (_super) {
5700
6111
  _self.addHeader = function (name, value) {
5701
6112
  _headers[name] = value;
5702
6113
  };
5703
- _self.initialize = function (config, core, extensions, pluginChain) {
6114
+ _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
5704
6115
  if (_self.isInitialized()) {
5705
6116
  _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 28 , "Sender is already initialized");
5706
6117
  }
5707
- _base.initialize(config, core, extensions, pluginChain);
6118
+ _base[_DYN_INITIALIZE ](config, core, extensions, pluginChain);
5708
6119
  var identifier = _self.identifier;
5709
6120
  _serializer = new Serializer(core.logger);
5710
6121
  _consecutiveErrors = 0;
@@ -5739,7 +6150,7 @@ var Sender = /** @class */ (function (_super) {
5739
6150
  _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false && isBeaconsSupported();
5740
6151
  _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false && isBeaconsSupported();
5741
6152
  _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 ];
5742
- _disableXhr = !!senderConfig.disableXhr;
6153
+ _disableXhr = !!senderConfig[_DYN_DISABLE_XHR ];
5743
6154
  var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE ];
5744
6155
  var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 ] &&
5745
6156
  (!!bufferOverride || utlCanUseSessionStorage());
@@ -5781,13 +6192,21 @@ var Sender = /** @class */ (function (_super) {
5781
6192
  else {
5782
6193
  _customHeaders = null;
5783
6194
  }
5784
- _enableSendPromise = senderConfig.enableSendPromise;
6195
+ _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE ];
6196
+ var sendPostConfig = _getSendPostMgrConfig();
6197
+ if (!_sendPostMgr) {
6198
+ _sendPostMgr = new SenderPostManager();
6199
+ _sendPostMgr[_DYN_INITIALIZE ](sendPostConfig, diagLog);
6200
+ }
6201
+ else {
6202
+ _sendPostMgr.SetConfig(sendPostConfig);
6203
+ }
5785
6204
  var customInterface = senderConfig.httpXHROverride;
5786
6205
  var httpInterface = null;
5787
6206
  var syncInterface = null;
5788
- var theTransports = _prependTransports([3 , 1 , 2 ], senderConfig.transports);
5789
- httpInterface = _getSenderInterface(theTransports, false);
5790
- var xhrInterface = { sendPOST: _xhrSender };
6207
+ var theTransports = prependTransports([3 , 1 , 2 ], senderConfig.transports);
6208
+ httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](theTransports, false);
6209
+ var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();
5791
6210
  _xhrSend = function (payload, isAsync) {
5792
6211
  return _doSend(xhrInterface, payload, isAsync);
5793
6212
  };
@@ -5801,11 +6220,11 @@ var Sender = /** @class */ (function (_super) {
5801
6220
  if (_fetchKeepAlive) {
5802
6221
  _syncUnloadSender = _fetchKeepAliveSender;
5803
6222
  }
5804
- var syncTransports = _prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
6223
+ var syncTransports = prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
5805
6224
  if (!_fetchKeepAlive) {
5806
6225
  syncTransports = syncTransports.filter(function (transport) { return transport !== 2 ; });
5807
6226
  }
5808
- syncInterface = _getSenderInterface(syncTransports, true);
6227
+ syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](syncTransports, true);
5809
6228
  syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);
5810
6229
  if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS ] || !_syncUnloadSender) && syncInterface) {
5811
6230
  _syncUnloadSender = function (payload, isAsync) {
@@ -5847,10 +6266,8 @@ var Sender = /** @class */ (function (_super) {
5847
6266
  _self.isCompletelyIdle = function () {
5848
6267
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
5849
6268
  };
5850
- _self[_DYN__XHR_READY_STATE_CHA8 ] = function (xhr, payload, countOfItemsInPayload) {
5851
- if (xhr.readyState === 4) {
5852
- _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
5853
- }
6269
+ _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
6270
+ return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
5854
6271
  };
5855
6272
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
5856
6273
  if (async === void 0) { async = true; }
@@ -5926,7 +6343,7 @@ var Sender = /** @class */ (function (_super) {
5926
6343
  _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
5927
6344
  }
5928
6345
  if (failed[_DYN_LENGTH ] > 0) {
5929
- _self[_DYN__ON_ERROR ](failed, _formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
6346
+ _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
5930
6347
  }
5931
6348
  if (retry[_DYN_LENGTH ] > 0) {
5932
6349
  _resendPayload(retry);
@@ -5939,22 +6356,89 @@ var Sender = /** @class */ (function (_super) {
5939
6356
  _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
5940
6357
  };
5941
6358
  _self._xdrOnLoad = function (xdr, payload) {
6359
+ return _xdrOnLoad(xdr, payload);
6360
+ };
6361
+ function _xdrOnLoad(xdr, payload) {
5942
6362
  var responseText = _getResponseText(xdr);
5943
6363
  if (xdr && (responseText + "" === "200" || responseText === "")) {
5944
6364
  _consecutiveErrors = 0;
5945
6365
  _self[_DYN__ON_SUCCESS ](payload, 0);
5946
6366
  }
5947
6367
  else {
5948
- var results = _parseResponse(responseText);
6368
+ var results = parseResponse(responseText);
5949
6369
  if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
5950
6370
  && !_isRetryDisabled) {
5951
6371
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
5952
6372
  }
5953
6373
  else {
5954
- _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr));
6374
+ _self[_DYN__ON_ERROR ](payload, formatErrorMessageXdr(xdr));
5955
6375
  }
5956
6376
  }
5957
- };
6377
+ }
6378
+ function _getSendPostMgrConfig() {
6379
+ var _a;
6380
+ try {
6381
+ var onCompleteFuncs = {
6382
+ xdrOnComplete: function (xdr, oncomplete, payload) {
6383
+ var data = _getPayloadArr(payload);
6384
+ if (!data) {
6385
+ return;
6386
+ }
6387
+ return _xdrOnLoad(xdr, data);
6388
+ },
6389
+ fetchOnComplete: function (response, onComplete, resValue, payload) {
6390
+ var data = _getPayloadArr(payload);
6391
+ if (!data) {
6392
+ return;
6393
+ }
6394
+ return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH ], response.statusText, resValue || "");
6395
+ },
6396
+ xhrOnComplete: function (request, oncomplete, payload) {
6397
+ var data = _getPayloadArr(payload);
6398
+ if (!data) {
6399
+ return;
6400
+ }
6401
+ return _xhrReadyStateChange(request, data, data[_DYN_LENGTH ]);
6402
+ },
6403
+ beaconOnRetry: function (data, onComplete, canSend) {
6404
+ return _onBeaconRetry(data, onComplete, canSend);
6405
+ }
6406
+ };
6407
+ var config = (_a = {},
6408
+ _a[_DYN_ENABLE_SEND_PROMISE ] = _enableSendPromise,
6409
+ _a.isOneDs = false,
6410
+ _a.disableCredentials = false,
6411
+ _a[_DYN_DISABLE_XHR ] = _disableXhr,
6412
+ _a.disableBeacon = !_beaconNormalSupported,
6413
+ _a.disableBeaconSync = !_beaconOnUnloadSupported,
6414
+ _a.senderOnCompleteCallBack = onCompleteFuncs,
6415
+ _a);
6416
+ return config;
6417
+ }
6418
+ catch (e) {
6419
+ }
6420
+ return null;
6421
+ }
6422
+ function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {
6423
+ if (xhr.readyState === 4) {
6424
+ _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
6425
+ }
6426
+ }
6427
+ function _getPayloadArr(payload) {
6428
+ try {
6429
+ if (payload) {
6430
+ var internalPayload = payload;
6431
+ var arr = internalPayload[_DYN_ORI_PAYLOAD ];
6432
+ if (arr && arr[_DYN_LENGTH ]) {
6433
+ return arr;
6434
+ }
6435
+ return null;
6436
+ }
6437
+ }
6438
+ catch (e) {
6439
+ }
6440
+ return null;
6441
+ }
5958
6442
  function _validate(telemetryItem, diagLogger) {
5959
6443
  if (_disableTelemetry) {
5960
6444
  return false;
@@ -6050,36 +6534,6 @@ var Sender = /** @class */ (function (_super) {
6050
6534
  function _isSampledIn(envelope) {
6051
6535
  return _self._sample.isSampledIn(envelope);
6052
6536
  }
6053
- function _getSenderInterface(transports, syncSupport) {
6054
- var _a;
6055
- var transportType = null;
6056
- var sendPostFunc = null;
6057
- var lp = 0;
6058
- while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
6059
- transportType = transports[lp];
6060
- if (!_disableXhr && transportType === 1 ) {
6061
- if (useXDomainRequest()) {
6062
- sendPostFunc = _xdrSender;
6063
- }
6064
- else if (isXhrSupported()) {
6065
- sendPostFunc = _xhrSender;
6066
- }
6067
- }
6068
- else if (transportType === 2 && isFetchSupported(syncSupport)) {
6069
- sendPostFunc = _fetchSender;
6070
- }
6071
- else if (transportType === 3 && (syncSupport ? _beaconOnUnloadSupported : _beaconNormalSupported)) {
6072
- sendPostFunc = _beaconSender;
6073
- }
6074
- lp++;
6075
- }
6076
- if (sendPostFunc) {
6077
- return _a = {},
6078
- _a[_DYN_SEND_POST ] = sendPostFunc,
6079
- _a;
6080
- }
6081
- return null;
6082
- }
6083
6537
  function _getOnComplete(payload, status, headers, response) {
6084
6538
  if (status === 200 && payload) {
6085
6539
  _self._onSuccess(payload, payload[_DYN_LENGTH ]);
@@ -6094,7 +6548,7 @@ var Sender = /** @class */ (function (_super) {
6094
6548
  return _getOnComplete(payload, status, headers, response);
6095
6549
  };
6096
6550
  var payloadData = _getPayload(payload);
6097
- var sendPostFunc = sendInterface && sendInterface[_DYN_SEND_POST ];
6551
+ var sendPostFunc = sendInterface && sendInterface.sendPOST;
6098
6552
  if (sendPostFunc && payloadData) {
6099
6553
  if (markAsSent) {
6100
6554
  _self._buffer[_DYN_MARK_AS_SENT ](payload);
@@ -6106,7 +6560,7 @@ var Sender = /** @class */ (function (_super) {
6106
6560
  function _getPayload(payload) {
6107
6561
  var _a;
6108
6562
  if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
6109
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
6563
+ var batch = _self[_DYN__BUFFER ].batchPayloads(payload);
6110
6564
  var payloadData = (_a = {},
6111
6565
  _a[_DYN_DATA ] = batch,
6112
6566
  _a.urlString = _endpointUrl,
@@ -6119,9 +6573,6 @@ var Sender = /** @class */ (function (_super) {
6119
6573
  }
6120
6574
  return null;
6121
6575
  }
6122
- function _fetchSender(payload, oncomplete, sync) {
6123
- return _doFetchSender(payload, oncomplete, false);
6124
- }
6125
6576
  function _checkMaxSize(incomingPayload) {
6126
6577
  var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
6127
6578
  if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
@@ -6135,7 +6586,7 @@ var Sender = /** @class */ (function (_super) {
6135
6586
  function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {
6136
6587
  var response = null;
6137
6588
  if (!_self._appId) {
6138
- response = _parseResponse(res);
6589
+ response = parseResponse(res);
6139
6590
  if (response && response.appId) {
6140
6591
  _self._appId = response.appId;
6141
6592
  }
@@ -6167,7 +6618,7 @@ var Sender = /** @class */ (function (_super) {
6167
6618
  _checkAndUpdateEndPointUrl(responseUrl);
6168
6619
  if (status === 206) {
6169
6620
  if (!response) {
6170
- response = _parseResponse(res);
6621
+ response = parseResponse(res);
6171
6622
  }
6172
6623
  if (response && !_isRetryDisabled) {
6173
6624
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, response);
@@ -6195,223 +6646,61 @@ var Sender = /** @class */ (function (_super) {
6195
6646
  }
6196
6647
  return false;
6197
6648
  }
6198
- function _doOnComplete(oncomplete, status, headers, response) {
6199
- try {
6200
- oncomplete(status, headers, response);
6201
- }
6202
- catch (e) {
6203
- }
6204
- }
6205
6649
  function _doUnloadSend(payload, isAsync) {
6206
6650
  if (_syncUnloadSender) {
6207
6651
  _syncUnloadSender(payload, false);
6208
6652
  }
6209
6653
  else {
6210
- var payloadData = _getPayload(payload);
6211
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
6212
- _beaconSender(payloadData);
6654
+ var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([3 ], true);
6655
+ return _doSend(beaconInst, payload, isAsync);
6213
6656
  }
6214
6657
  }
6215
- function _doBeaconSend(payload, oncomplete) {
6216
- var nav = getNavigator();
6217
- var url = _endpointUrl;
6218
- var buffer = _self[_DYN__BUFFER ];
6219
- var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
6220
- var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
6221
- var queued = nav.sendBeacon(url, plainTextBatch);
6222
- if (queued) {
6223
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
6224
- }
6225
- return queued;
6226
- }
6227
- function _beaconSender(payload, oncomplete, sync) {
6658
+ function _onBeaconRetry(payload, onComplete, canSend) {
6228
6659
  var internalPayload = payload;
6229
6660
  var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD ];
6230
- if (isArray(data) && data[_DYN_LENGTH ] > 0) {
6231
- if (!_doBeaconSend(data)) {
6232
- if (!_disableBeaconSplit) {
6233
- var droppedPayload = [];
6234
- for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
6235
- var thePayload = data[lp];
6236
- if (!_doBeaconSend([thePayload])) {
6237
- droppedPayload[_DYN_PUSH ](thePayload);
6238
- }
6239
- }
6240
- if (droppedPayload[_DYN_LENGTH ] > 0) {
6241
- _fallbackSend && _fallbackSend(droppedPayload, true);
6242
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6243
- }
6661
+ if (!_disableBeaconSplit) {
6662
+ var droppedPayload = [];
6663
+ for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
6664
+ var thePayload = data[lp];
6665
+ var arr = [thePayload];
6666
+ var item = _getPayload(arr);
6667
+ if (!canSend(item, onComplete)) {
6668
+ droppedPayload[_DYN_PUSH ](thePayload);
6244
6669
  }
6245
6670
  else {
6246
- _fallbackSend && _fallbackSend(data, true);
6247
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6671
+ _self._onSuccess(arr, arr[_DYN_LENGTH ]);
6248
6672
  }
6249
6673
  }
6250
- }
6251
- }
6252
- function _xhrSender(payload, oncomplete, sync) {
6253
- var internalPayload = payload;
6254
- var thePromise;
6255
- var resolveFunc;
6256
- var rejectFunc;
6257
- var xhr = new XMLHttpRequest();
6258
- var endPointUrl = _endpointUrl;
6259
- try {
6260
- xhr[DisabledPropertyName] = true;
6261
- }
6262
- catch (e) {
6263
- }
6264
- xhr.open("POST", endPointUrl, !sync);
6265
- xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
6266
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6267
- xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
6268
- }
6269
- arrForEach(objKeys(_headers), function (headerName) {
6270
- xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
6271
- });
6272
- xhr.onreadystatechange = function () {
6273
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6274
- _self._xhrReadyStateChange(xhr, oriPayload, oriPayload[_DYN_LENGTH ]);
6275
- if (xhr.readyState === 4) {
6276
- resolveFunc && resolveFunc(true);
6674
+ if (droppedPayload[_DYN_LENGTH ] > 0) {
6675
+ _fallbackSend && _fallbackSend(droppedPayload, true);
6676
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6277
6677
  }
6278
- };
6279
- xhr.onerror = function (event) {
6280
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
6281
- rejectFunc && rejectFunc(event);
6282
- };
6283
- if (!sync && _enableSendPromise) {
6284
- thePromise = createPromise(function (resolve, reject) {
6285
- resolveFunc = resolve;
6286
- rejectFunc = reject;
6287
- });
6288
6678
  }
6289
- xhr.send(payload[_DYN_DATA ]);
6290
- return thePromise;
6679
+ else {
6680
+ _fallbackSend && _fallbackSend(data, true);
6681
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6682
+ }
6291
6683
  }
6292
6684
  function _fetchKeepAliveSender(payload, isAsync) {
6293
- var onComplete = function (status, headers, response) {
6294
- return _getOnComplete(payload, status, headers, response);
6295
- };
6685
+ var transport = null;
6296
6686
  if (isArray(payload)) {
6297
6687
  var payloadSize = payload[_DYN_LENGTH ];
6298
6688
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
6299
6689
  payloadSize += payload[lp][_DYN_LENGTH ];
6300
6690
  }
6301
- var payloadData = _getPayload(payload);
6302
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
6303
- if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
6304
- _doFetchSender(payloadData, onComplete, true);
6691
+ var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
6692
+ if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
6693
+ transport = 2 ;
6305
6694
  }
6306
6695
  else if (isBeaconsSupported()) {
6307
- _beaconSender(payloadData);
6696
+ transport = 3 ;
6308
6697
  }
6309
6698
  else {
6310
- _fallbackSend && _fallbackSend(payload, true);
6699
+ transport = 1 ;
6311
6700
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
6312
6701
  }
6313
- }
6314
- }
6315
- function _doFetchSender(payload, oncomplete, sync) {
6316
- var _a;
6317
- var endPointUrl = _endpointUrl;
6318
- var internalPayload = payload;
6319
- var batch = internalPayload[_DYN_DATA ];
6320
- var plainTextBatch = new Blob([batch], { type: "application/json" });
6321
- var thePromise;
6322
- var resolveFunc;
6323
- var rejectFunc;
6324
- var requestHeaders = new Headers();
6325
- var batchLength = batch[_DYN_LENGTH ];
6326
- var ignoreResponse = false;
6327
- var responseHandled = false;
6328
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6329
- requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
6330
- }
6331
- arrForEach(objKeys(_headers), function (headerName) {
6332
- requestHeaders.append(headerName, _headers[headerName]);
6333
- });
6334
- var init = (_a = {
6335
- method: "POST",
6336
- headers: requestHeaders,
6337
- body: plainTextBatch
6338
- },
6339
- _a[DisabledPropertyName] = true
6340
- ,
6341
- _a);
6342
- if (sync) {
6343
- init.keepalive = true;
6344
- ignoreResponse = true;
6345
- _syncFetchPayload += batchLength;
6346
- }
6347
- var request = new Request(endPointUrl, init);
6348
- try {
6349
- request[DisabledPropertyName] = true;
6350
- }
6351
- catch (e) {
6352
- }
6353
- if (!sync && _enableSendPromise) {
6354
- thePromise = createPromise(function (resolve, reject) {
6355
- resolveFunc = resolve;
6356
- rejectFunc = reject;
6357
- });
6358
- }
6359
- try {
6360
- doAwaitResponse(fetch(request), function (result) {
6361
- if (sync) {
6362
- _syncFetchPayload -= batchLength;
6363
- batchLength = 0;
6364
- }
6365
- if (!responseHandled) {
6366
- responseHandled = true;
6367
- if (!result.rejected) {
6368
- var response_1 = result.value;
6369
- if (!response_1.ok) {
6370
- _doOnComplete(oncomplete, 400, {}, response_1.statusText);
6371
- resolveFunc && resolveFunc(false);
6372
- }
6373
- else {
6374
- doAwaitResponse(response_1.text(), function (resp) {
6375
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6376
- _checkResponsStatus(response_1.status, oriPayload, response_1.url, oriPayload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
6377
- resolveFunc && resolveFunc(true);
6378
- });
6379
- }
6380
- }
6381
- else {
6382
- _doOnComplete(oncomplete, 400, {}, result.reason && result.reason.message);
6383
- rejectFunc && rejectFunc(result.reason);
6384
- }
6385
- }
6386
- });
6387
- }
6388
- catch (e) {
6389
- if (!responseHandled) {
6390
- _doOnComplete(oncomplete, 400, {}, dumpObj(e));
6391
- rejectFunc && rejectFunc(e);
6392
- }
6393
- }
6394
- if (ignoreResponse && !responseHandled) {
6395
- responseHandled = true;
6396
- _doOnComplete(oncomplete, 200, {});
6397
- resolveFunc && resolveFunc(true);
6398
- }
6399
- return thePromise;
6400
- }
6401
- function _parseResponse(response) {
6402
- try {
6403
- if (response && response !== "") {
6404
- var result = getJSON().parse(response);
6405
- if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED ] &&
6406
- result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH ]) {
6407
- return result;
6408
- }
6409
- }
6410
- }
6411
- catch (e) {
6412
- _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
6413
- response: response
6414
- });
6702
+ var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([transport], true);
6703
+ return _doSend(inst, payload, isAsync);
6415
6704
  }
6416
6705
  return null;
6417
6706
  }
@@ -6470,41 +6759,6 @@ var Sender = /** @class */ (function (_super) {
6470
6759
  || statusCode === 503
6471
6760
  || statusCode === 504;
6472
6761
  }
6473
- function _formatErrorMessageXhr(xhr, message) {
6474
- if (xhr) {
6475
- return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + _getResponseText(xhr) || xhr.response || "";
6476
- }
6477
- return message;
6478
- }
6479
- function _xdrSender(payload, oncomplete, sync) {
6480
- var internalPayload = payload;
6481
- var _window = getWindow();
6482
- var xdr = new XDomainRequest();
6483
- var data = internalPayload[_DYN_DATA ];
6484
- xdr.onload = function () {
6485
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6486
- _self._xdrOnLoad(xdr, oriPayload);
6487
- };
6488
- xdr.onerror = function () {
6489
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
6490
- };
6491
- var hostingProtocol = _window && _window.location && _window.location.protocol || "";
6492
- if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {
6493
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
6494
- "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
6495
- _self._buffer[_DYN_CLEAR ]();
6496
- return;
6497
- }
6498
- var endpointUrl = _endpointUrl.replace(/^(https?:)/, "");
6499
- xdr.open("POST", endpointUrl);
6500
- xdr.send(data);
6501
- }
6502
- function _formatErrorMessageXdr(xdr, message) {
6503
- if (xdr) {
6504
- return "XDomainRequest,Response:" + _getResponseText(xdr) || "";
6505
- }
6506
- return message;
6507
- }
6508
6762
  function _getNotifyMgr() {
6509
6763
  var func = "getNotifyMgr";
6510
6764
  if (_self.core[func]) {
@@ -6565,6 +6819,7 @@ var Sender = /** @class */ (function (_super) {
6565
6819
  _disableBeaconSplit = false;
6566
6820
  _xhrSend = null;
6567
6821
  _fallbackSend = null;
6822
+ _sendPostMgr = null;
6568
6823
  objDefine(_self, "_senderConfig", {
6569
6824
  g: function () {
6570
6825
  return objExtend({}, defaultAppInsightsChannelConfig);