@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,5 +1,5 @@
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) {
@@ -1126,7 +1126,7 @@
1126
1126
  var _DYN_SPLICE = "splice";
1127
1127
  var _DYN_HDLR = "hdlr";
1128
1128
  var _DYN_CANCEL = "cancel";
1129
- var _DYN_INITIALIZE = "initialize";
1129
+ var _DYN_INITIALIZE$1 = "initialize";
1130
1130
  var _DYN_IDENTIFIER = "identifier";
1131
1131
  var _DYN_IS_INITIALIZED = "isInitialized";
1132
1132
  var _DYN_GET_PLUGIN = "getPlugin";
@@ -1475,7 +1475,7 @@
1475
1475
  }
1476
1476
 
1477
1477
  var UNDEFINED_VALUE$1 = undefined;
1478
- var STR_EMPTY = "";
1478
+ var STR_EMPTY$1 = "";
1479
1479
  var STR_CORE = "core";
1480
1480
  var STR_DISABLED = "disabled";
1481
1481
  var STR_EXTENSION_CONFIG = "extensionConfig";
@@ -1516,7 +1516,7 @@
1516
1516
  if (isError(object)) {
1517
1517
  return object[_DYN_NAME$2 ];
1518
1518
  }
1519
- return STR_EMPTY;
1519
+ return STR_EMPTY$1;
1520
1520
  }
1521
1521
  function setValue(target, field, value, valChk, srcChk) {
1522
1522
  var theValue = value;
@@ -1620,6 +1620,7 @@
1620
1620
  }
1621
1621
 
1622
1622
  var strDocumentMode = "documentMode";
1623
+ var strLocation = "location";
1623
1624
  var strConsole = "console";
1624
1625
  var strJSON = "JSON";
1625
1626
  var strCrypto = "crypto";
@@ -1629,6 +1630,7 @@
1629
1630
  var strXMLHttpRequest = "XMLHttpRequest";
1630
1631
  var _isTrident = null;
1631
1632
  var _navUserAgentCheck = null;
1633
+ var _enableMocks = false;
1632
1634
  var _useXDomainRequest = null;
1633
1635
  var _beaconsSupported = null;
1634
1636
  function _hasProperty(theClass, property) {
@@ -1656,6 +1658,18 @@
1656
1658
  }
1657
1659
  return supported;
1658
1660
  }
1661
+ function getLocation(checkForMock) {
1662
+ if (checkForMock && _enableMocks) {
1663
+ var mockLocation = getInst("__mockLocation");
1664
+ if (mockLocation) {
1665
+ return mockLocation;
1666
+ }
1667
+ }
1668
+ if (typeof location === strShimObject && location) {
1669
+ return location;
1670
+ }
1671
+ return getInst(strLocation);
1672
+ }
1659
1673
  function getConsole() {
1660
1674
  if (typeof console !== strShimUndefined) {
1661
1675
  return console;
@@ -1681,7 +1695,7 @@
1681
1695
  var nav = getNavigator();
1682
1696
  if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
1683
1697
  _navUserAgentCheck = nav[_DYN_USER_AGENT ];
1684
- var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1698
+ var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1685
1699
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1686
1700
  }
1687
1701
  return _isTrident;
@@ -1690,9 +1704,9 @@
1690
1704
  if (userAgentStr === void 0) { userAgentStr = null; }
1691
1705
  if (!userAgentStr) {
1692
1706
  var navigator_1 = getNavigator() || {};
1693
- userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY;
1707
+ userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY$1;
1694
1708
  }
1695
- var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1709
+ var ua = (userAgentStr || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1696
1710
  if (strContains(ua, strMsie)) {
1697
1711
  var doc = getDocument() || {};
1698
1712
  return Math.max(parseInt(ua[_DYN_SPLIT$1 ](strMsie)[1]), (doc[strDocumentMode] || 0));
@@ -1801,7 +1815,7 @@
1801
1815
  var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1802
1816
  var number = random32() >>> 0;
1803
1817
  var chars = 0;
1804
- var result = STR_EMPTY;
1818
+ var result = STR_EMPTY$1;
1805
1819
  while (result[_DYN_LENGTH$2 ] < maxLength) {
1806
1820
  chars++;
1807
1821
  result += base64chars.charAt(number & 0x3F);
@@ -1839,11 +1853,11 @@
1839
1853
  }
1840
1854
  function createUniqueNamespace(name, includeVersion) {
1841
1855
  if (includeVersion === void 0) { includeVersion = false; }
1842
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
1856
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
1843
1857
  }
1844
1858
  function createElmNodeData(name) {
1845
1859
  var data = {
1846
- id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
1860
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
1847
1861
  accept: function (target) {
1848
1862
  return _canAcceptData(target);
1849
1863
  },
@@ -2548,9 +2562,9 @@
2548
2562
  _a$2);
2549
2563
  function _sanitizeDiagnosticText(text) {
2550
2564
  if (text) {
2551
- return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
2565
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
2552
2566
  }
2553
- return STR_EMPTY;
2567
+ return STR_EMPTY$1;
2554
2568
  }
2555
2569
  function _logToConsole(func, message) {
2556
2570
  var theConsole = getConsole();
@@ -2572,12 +2586,12 @@
2572
2586
  _self[_DYN_MESSAGE$1 ] =
2573
2587
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
2574
2588
  msgId;
2575
- var strProps = STR_EMPTY;
2589
+ var strProps = STR_EMPTY$1;
2576
2590
  if (hasJSON()) {
2577
2591
  strProps = getJSON().stringify(properties);
2578
2592
  }
2579
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
2580
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
2593
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
2594
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
2581
2595
  _self[_DYN_MESSAGE$1 ] += diagnosticText;
2582
2596
  }
2583
2597
  _InternalLogMessage.dataType = "MessageData";
@@ -3110,7 +3124,7 @@
3110
3124
  doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
3111
3125
  hasRunContext[chainId] = true;
3112
3126
  try {
3113
- var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
3127
+ var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
3114
3128
  if (nextId) {
3115
3129
  hasRunContext[nextId] = false;
3116
3130
  }
@@ -3255,7 +3269,7 @@
3255
3269
  var _hookContainer;
3256
3270
  _initDefaults();
3257
3271
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
3258
- _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
3272
+ _self[_DYN_INITIALIZE$1 ] = function (config, core, extensions, pluginChain) {
3259
3273
  _setDefaults(config, core, pluginChain);
3260
3274
  _isinitialized = true;
3261
3275
  };
@@ -3396,16 +3410,16 @@
3396
3410
  var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
3397
3411
  function _normalizeNamespace(name) {
3398
3412
  if (name && name[_DYN_REPLACE ]) {
3399
- return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
3413
+ return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY$1);
3400
3414
  }
3401
3415
  return name;
3402
3416
  }
3403
3417
  function _getEvtNamespace(eventName, evtNamespace) {
3404
3418
  var _a;
3405
3419
  if (evtNamespace) {
3406
- var theNamespace_1 = STR_EMPTY;
3420
+ var theNamespace_1 = STR_EMPTY$1;
3407
3421
  if (isArray(evtNamespace)) {
3408
- theNamespace_1 = STR_EMPTY;
3422
+ theNamespace_1 = STR_EMPTY$1;
3409
3423
  arrForEach(evtNamespace, function (name) {
3410
3424
  name = _normalizeNamespace(name);
3411
3425
  if (name) {
@@ -3423,13 +3437,13 @@
3423
3437
  if (theNamespace_1[0] !== ".") {
3424
3438
  theNamespace_1 = "." + theNamespace_1;
3425
3439
  }
3426
- eventName = (eventName || STR_EMPTY) + theNamespace_1;
3440
+ eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
3427
3441
  }
3428
3442
  }
3429
- var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
3443
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
3430
3444
  return _a = {},
3431
3445
  _a[_DYN_TYPE ] = parsedEvent[1],
3432
- _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT$1 ](".").sort()).join("."),
3446
+ _a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT$1 ](".").sort()).join("."),
3433
3447
  _a;
3434
3448
  }
3435
3449
  function _getRegisteredEvents(target, evtName, addDefault) {
@@ -3578,14 +3592,20 @@
3578
3592
  var _DYN_SPLIT = "split";
3579
3593
  var _DYN_LENGTH$1 = "length";
3580
3594
  var _DYN_TO_LOWER_CASE = "toLowerCase";
3595
+ var _DYN_LOCATION = "location";
3581
3596
  var _DYN_TO_STRING$1 = "toString";
3582
3597
  var _DYN_PUSH$1 = "push";
3598
+ var _DYN_URL_STRING = "urlString";
3599
+ var _DYN_DATA$1 = "data";
3600
+ var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
3601
+ var _DYN_REASON = "reason";
3602
+ var _DYN_MESSAGE = "message";
3583
3603
  var _DYN_REMOVE_ITEM = "removeItem";
3584
3604
  var _DYN_NAME$1 = "name";
3585
- var _DYN_MESSAGE = "message";
3586
3605
  var _DYN_COUNT$1 = "count";
3587
3606
  var _DYN_STRINGIFY$1 = "stringify";
3588
3607
  var _DYN_PATHNAME = "pathname";
3608
+ var _DYN_ITEMS_RECEIVED$1 = "itemsReceived";
3589
3609
  var _DYN_EXCEPTIONS = "exceptions";
3590
3610
  var _DYN_PARSED_STACK = "parsedStack";
3591
3611
  var _DYN_PROPERTIES = "properties";
@@ -3807,6 +3827,54 @@
3807
3827
  data: data
3808
3828
  };
3809
3829
  }
3830
+ function getResponseText(xhr) {
3831
+ try {
3832
+ return xhr.responseText;
3833
+ }
3834
+ catch (e) {
3835
+ }
3836
+ return null;
3837
+ }
3838
+ function formatErrorMessageXdr(xdr, message) {
3839
+ if (xdr) {
3840
+ return "XDomainRequest,Response:" + getResponseText(xdr) || "";
3841
+ }
3842
+ return message;
3843
+ }
3844
+ function formatErrorMessageXhr(xhr, message) {
3845
+ if (xhr) {
3846
+ return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + getResponseText(xhr) || xhr.response || "";
3847
+ }
3848
+ return message;
3849
+ }
3850
+ function prependTransports(theTransports, newTransports) {
3851
+ if (newTransports) {
3852
+ if (isNumber(newTransports)) {
3853
+ theTransports = [newTransports].concat(theTransports);
3854
+ }
3855
+ else if (isArray(newTransports)) {
3856
+ theTransports = newTransports.concat(theTransports);
3857
+ }
3858
+ }
3859
+ return theTransports;
3860
+ }
3861
+ function parseResponse(response, diagLog) {
3862
+ try {
3863
+ if (response && response !== "") {
3864
+ var result = getJSON().parse(response);
3865
+ if (result && result[_DYN_ITEMS_RECEIVED$1 ] && result[_DYN_ITEMS_RECEIVED$1 ] >= result.itemsAccepted &&
3866
+ result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH$1 ]) {
3867
+ return result;
3868
+ }
3869
+ }
3870
+ }
3871
+ catch (e) {
3872
+ _throwInternal(diagLog, 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
3873
+ response: response
3874
+ });
3875
+ }
3876
+ return null;
3877
+ }
3810
3878
 
3811
3879
  var StorageType = createEnumStyle({
3812
3880
  LocalStorage: 0 ,
@@ -3885,7 +3953,7 @@
3885
3953
  _self.sampleRate = 100.0;
3886
3954
  _self.tags = {};
3887
3955
  _self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
3888
- _self.data = data;
3956
+ _self[_DYN_DATA$1 ] = data;
3889
3957
  _self.time = toISOString(new Date());
3890
3958
  _self.aiDataContract = {
3891
3959
  time: 1 ,
@@ -4042,8 +4110,8 @@
4042
4110
  else if (getWindow() && getWindow()["opera"] && errorObj[strMessage]) {
4043
4111
  details = _getOperaStack(errorObj[_DYN_MESSAGE ]);
4044
4112
  }
4045
- else if (errorObj["reason"] && errorObj.reason[strStack]) {
4046
- details = _convertStackObj(errorObj.reason[strStack]);
4113
+ else if (errorObj["reason"] && errorObj[_DYN_REASON ][strStack]) {
4114
+ details = _convertStackObj(errorObj[_DYN_REASON ][strStack]);
4047
4115
  }
4048
4116
  else if (isString(errorObj)) {
4049
4117
  details = _convertStackObj(errorObj);
@@ -4514,7 +4582,7 @@
4514
4582
  _self.resultCode = resultCode + "";
4515
4583
  _self.type = dataSanitizeString(logger, requestAPI);
4516
4584
  var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);
4517
- _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data;
4585
+ _self[_DYN_DATA$1 ] = dataSanitizeUrl(logger, commandName) || dependencyFields[_DYN_DATA$1 ];
4518
4586
  _self.target = dataSanitizeString(logger, dependencyFields.target);
4519
4587
  if (correlationContext) {
4520
4588
  _self.target = "".concat(_self.target, " | ").concat(correlationContext);
@@ -4680,6 +4748,360 @@
4680
4748
 
4681
4749
  var CtxTagKeys = new ContextTagKeys();
4682
4750
 
4751
+ var STR_EMPTY = "";
4752
+ var SenderPostManager = /** @class */ (function () {
4753
+ function SenderPostManager() {
4754
+ var _syncFetchPayload = 0;
4755
+ var _enableSendPromise;
4756
+ var _isInitialized;
4757
+ var _diagLog;
4758
+ var _isOneDs;
4759
+ var _onCompleteFuncs;
4760
+ var _disableCredentials;
4761
+ var _fallbackInst;
4762
+ var _disableXhr;
4763
+ var _disableBeacon;
4764
+ var _disableBeaconSync;
4765
+ dynamicProto(SenderPostManager, this, function (_self, _base) {
4766
+ var _sendCredentials = true;
4767
+ _initDefaults();
4768
+ _self.initialize = function (config, diagLog) {
4769
+ _diagLog = diagLog;
4770
+ if (_isInitialized) {
4771
+ _throwInternal(_diagLog, 1 , 28 , "Sender is already initialized");
4772
+ }
4773
+ _self.SetConfig(config);
4774
+ _isInitialized = true;
4775
+ };
4776
+ _self["_getDbgPlgTargets"] = function () {
4777
+ return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];
4778
+ };
4779
+ _self.SetConfig = function (config) {
4780
+ try {
4781
+ _onCompleteFuncs = config.senderOnCompleteCallBack || {};
4782
+ _disableCredentials = !!config.disableCredentials;
4783
+ _isOneDs = !!config.isOneDs;
4784
+ _enableSendPromise = !!config.enableSendPromise;
4785
+ _disableXhr = !!config.disableXhr;
4786
+ _disableBeacon = !!config.disableBeacon;
4787
+ _disableBeaconSync = !!config.disableBeaconSync;
4788
+ _fallbackInst = { sendPOST: _xhrSender };
4789
+ if (_disableCredentials) {
4790
+ var location_1 = getLocation();
4791
+ if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE ]() === "file:") {
4792
+ _sendCredentials = false;
4793
+ }
4794
+ }
4795
+ return true;
4796
+ }
4797
+ catch (e) {
4798
+ }
4799
+ return false;
4800
+ };
4801
+ _self.getSyncFetchPayload = function () {
4802
+ return _syncFetchPayload;
4803
+ };
4804
+ _self.getXhrInst = function (transports, sync) {
4805
+ if (transports && transports[_DYN_LENGTH$1 ]) {
4806
+ return _getSenderInterface(transports, sync);
4807
+ }
4808
+ return null;
4809
+ };
4810
+ _self.getFallbackInst = function () {
4811
+ return _fallbackInst;
4812
+ };
4813
+ _self._doTeardown = function (unloadCtx, unloadState) {
4814
+ _initDefaults();
4815
+ };
4816
+ function _onSuccess(res, onComplete) {
4817
+ _doOnComplete(onComplete, 200, {}, res);
4818
+ }
4819
+ function _onError(message, onComplete) {
4820
+ _throwInternal(_diagLog, 2 , 26 , "Failed to send telemetry.", { message: message });
4821
+ _doOnComplete(onComplete, 400, {});
4822
+ }
4823
+ function _onNoPayloadUrl(onComplete) {
4824
+ _onError("No endpoint url is provided for the batch", onComplete);
4825
+ }
4826
+ function _getSenderInterface(transports, syncSupport) {
4827
+ var transportType = null;
4828
+ var sendPostFunc = null;
4829
+ var lp = 0;
4830
+ while (sendPostFunc == null && lp < transports[_DYN_LENGTH$1 ]) {
4831
+ transportType = transports[lp];
4832
+ if (!_disableXhr && transportType === 1 ) {
4833
+ if (useXDomainRequest()) {
4834
+ sendPostFunc = _xdrSender;
4835
+ }
4836
+ else if (isXhrSupported()) {
4837
+ sendPostFunc = _xhrSender;
4838
+ }
4839
+ }
4840
+ else if (transportType === 2 && isFetchSupported(syncSupport)) {
4841
+ sendPostFunc = _doFetchSender;
4842
+ }
4843
+ else if (transportType === 3 && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {
4844
+ sendPostFunc = _beaconSender;
4845
+ }
4846
+ lp++;
4847
+ }
4848
+ if (sendPostFunc) {
4849
+ return {
4850
+ sendPOST: sendPostFunc
4851
+ };
4852
+ }
4853
+ return null;
4854
+ }
4855
+ function _doOnComplete(oncomplete, status, headers, response) {
4856
+ try {
4857
+ oncomplete && oncomplete(status, headers, response);
4858
+ }
4859
+ catch (e) {
4860
+ }
4861
+ }
4862
+ function _doBeaconSend(payload, oncomplete) {
4863
+ var nav = getNavigator();
4864
+ var url = payload[_DYN_URL_STRING ];
4865
+ if (!url) {
4866
+ _onNoPayloadUrl(oncomplete);
4867
+ return true;
4868
+ }
4869
+ var data = payload[_DYN_DATA$1 ];
4870
+ var plainTextBatch = new Blob([data], { type: "text/plain;charset=UTF-8" });
4871
+ var queued = nav.sendBeacon(url, plainTextBatch);
4872
+ return queued;
4873
+ }
4874
+ function _beaconSender(payload, oncomplete, sync) {
4875
+ var data = payload[_DYN_DATA$1 ];
4876
+ if (data) {
4877
+ if (!_doBeaconSend(payload, oncomplete)) {
4878
+ var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;
4879
+ if (onRetry && isFunction(onRetry)) {
4880
+ onRetry(payload, oncomplete, _doBeaconSend);
4881
+ }
4882
+ else {
4883
+ _fallbackInst && _fallbackInst.sendPOST(payload, oncomplete, true);
4884
+ _throwInternal(_diagLog, 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
4885
+ }
4886
+ }
4887
+ else {
4888
+ _onSuccess(null, oncomplete);
4889
+ }
4890
+ }
4891
+ return;
4892
+ }
4893
+ function _xhrSender(payload, oncomplete, sync) {
4894
+ var thePromise;
4895
+ var resolveFunc;
4896
+ var rejectFunc;
4897
+ var headers = payload.headers || {};
4898
+ if (!sync && _enableSendPromise) {
4899
+ thePromise = createPromise(function (resolve, reject) {
4900
+ resolveFunc = resolve;
4901
+ rejectFunc = reject;
4902
+ });
4903
+ }
4904
+ var xhr = new XMLHttpRequest();
4905
+ var endPointUrl = payload[_DYN_URL_STRING ];
4906
+ if (!endPointUrl) {
4907
+ _onNoPayloadUrl(oncomplete);
4908
+ resolveFunc && resolveFunc(false);
4909
+ return;
4910
+ }
4911
+ try {
4912
+ xhr[DisabledPropertyName] = true;
4913
+ }
4914
+ catch (e) {
4915
+ }
4916
+ xhr.open("POST", endPointUrl, !sync);
4917
+ xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
4918
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
4919
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
4920
+ }
4921
+ arrForEach(objKeys(headers), function (headerName) {
4922
+ xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
4923
+ });
4924
+ xhr.onreadystatechange = function () {
4925
+ var response = getResponseText(xhr);
4926
+ var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;
4927
+ var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);
4928
+ if (onReadyFuncExist) {
4929
+ onReadyFunc(xhr, oncomplete, payload);
4930
+ }
4931
+ if (xhr.readyState === 4) {
4932
+ if (!onReadyFuncExist) {
4933
+ _doOnComplete(oncomplete, xhr.status, {}, response);
4934
+ }
4935
+ resolveFunc && resolveFunc(true);
4936
+ }
4937
+ };
4938
+ xhr.onerror = function (event) {
4939
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXhr(xhr));
4940
+ rejectFunc && rejectFunc(event);
4941
+ };
4942
+ xhr.ontimeout = function () {
4943
+ _doOnComplete(oncomplete, 500, {}, formatErrorMessageXhr(xhr));
4944
+ resolveFunc && resolveFunc(false);
4945
+ };
4946
+ xhr.send(payload[_DYN_DATA$1 ]);
4947
+ return thePromise;
4948
+ }
4949
+ function _doFetchSender(payload, oncomplete, sync) {
4950
+ var _a;
4951
+ var endPointUrl = payload[_DYN_URL_STRING ];
4952
+ var batch = payload[_DYN_DATA$1 ];
4953
+ var plainTextBatch = new Blob([batch], { type: "application/json" });
4954
+ var thePromise;
4955
+ var resolveFunc;
4956
+ var rejectFunc;
4957
+ var requestHeaders = new Headers();
4958
+ var batchLength = batch[_DYN_LENGTH$1 ];
4959
+ var ignoreResponse = false;
4960
+ var responseHandled = false;
4961
+ var headers = payload.headers || {};
4962
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
4963
+ requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
4964
+ }
4965
+ arrForEach(objKeys(headers), function (headerName) {
4966
+ requestHeaders.append(headerName, headers[headerName]);
4967
+ });
4968
+ var init = (_a = {
4969
+ method: "POST",
4970
+ headers: requestHeaders,
4971
+ body: plainTextBatch
4972
+ },
4973
+ _a[DisabledPropertyName] = true
4974
+ ,
4975
+ _a);
4976
+ if (_sendCredentials && _isOneDs) {
4977
+ init.credentials = "include";
4978
+ }
4979
+ if (sync) {
4980
+ init.keepalive = true;
4981
+ ignoreResponse = true;
4982
+ _syncFetchPayload += batchLength;
4983
+ }
4984
+ var request = new Request(endPointUrl, init);
4985
+ try {
4986
+ request[DisabledPropertyName] = true;
4987
+ }
4988
+ catch (e) {
4989
+ }
4990
+ if (!sync && _enableSendPromise) {
4991
+ thePromise = createPromise(function (resolve, reject) {
4992
+ resolveFunc = resolve;
4993
+ rejectFunc = reject;
4994
+ });
4995
+ }
4996
+ if (!endPointUrl) {
4997
+ _onNoPayloadUrl(oncomplete);
4998
+ resolveFunc && resolveFunc(false);
4999
+ return;
5000
+ }
5001
+ try {
5002
+ doAwaitResponse(fetch(request), function (result) {
5003
+ if (sync) {
5004
+ _syncFetchPayload -= batchLength;
5005
+ batchLength = 0;
5006
+ }
5007
+ if (!responseHandled) {
5008
+ responseHandled = true;
5009
+ if (!result.rejected) {
5010
+ var response_1 = result.value;
5011
+ if (!response_1.ok) {
5012
+ _doOnComplete(oncomplete, 400, {}, response_1.statusText);
5013
+ resolveFunc && resolveFunc(false);
5014
+ }
5015
+ else {
5016
+ doAwaitResponse(response_1.text(), function (resp) {
5017
+ var status = response_1.status;
5018
+ var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;
5019
+ if (onCompleteFunc && isFunction(onCompleteFunc)) {
5020
+ onCompleteFunc(response_1, oncomplete, resp.value || STR_EMPTY, payload);
5021
+ }
5022
+ else {
5023
+ _doOnComplete(oncomplete, status, {}, resp.value || STR_EMPTY);
5024
+ }
5025
+ resolveFunc && resolveFunc(true);
5026
+ });
5027
+ }
5028
+ }
5029
+ else {
5030
+ _doOnComplete(oncomplete, 400, {}, result[_DYN_REASON ] && result[_DYN_REASON ][_DYN_MESSAGE ]);
5031
+ rejectFunc && rejectFunc(result[_DYN_REASON ]);
5032
+ }
5033
+ }
5034
+ });
5035
+ }
5036
+ catch (e) {
5037
+ if (!responseHandled) {
5038
+ _doOnComplete(oncomplete, 400, {}, dumpObj(e));
5039
+ rejectFunc && rejectFunc(e);
5040
+ }
5041
+ }
5042
+ if (ignoreResponse && !responseHandled) {
5043
+ responseHandled = true;
5044
+ _doOnComplete(oncomplete, 200, {});
5045
+ resolveFunc && resolveFunc(true);
5046
+ }
5047
+ return thePromise;
5048
+ }
5049
+ function _xdrSender(payload, oncomplete, sync) {
5050
+ var _window = getWindow();
5051
+ var xdr = new XDomainRequest();
5052
+ var data = payload[_DYN_DATA$1 ];
5053
+ xdr.onload = function () {
5054
+ var response = getResponseText(xdr);
5055
+ var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;
5056
+ if (onloadFunc && isFunction(onloadFunc)) {
5057
+ onloadFunc(xdr, oncomplete, payload);
5058
+ }
5059
+ else {
5060
+ _doOnComplete(oncomplete, 200, {}, response);
5061
+ }
5062
+ };
5063
+ xdr.onerror = function () {
5064
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXdr(xdr));
5065
+ };
5066
+ xdr.ontimeout = function () {
5067
+ _doOnComplete(oncomplete, 500, {});
5068
+ };
5069
+ xdr.onprogress = function () { };
5070
+ var hostingProtocol = _window && _window[_DYN_LOCATION ] && _window[_DYN_LOCATION ].protocol || "";
5071
+ var endpoint = payload[_DYN_URL_STRING ];
5072
+ if (!endpoint) {
5073
+ _onNoPayloadUrl(oncomplete);
5074
+ return;
5075
+ }
5076
+ if (endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {
5077
+ var msg = "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.";
5078
+ _throwInternal(_diagLog, 2 , 40 , ". " + msg);
5079
+ _onError(msg, oncomplete);
5080
+ return;
5081
+ }
5082
+ var endpointUrl = endpoint.replace(/^(https?:)/, "");
5083
+ xdr.open("POST", endpointUrl);
5084
+ xdr.send(data);
5085
+ }
5086
+ function _initDefaults() {
5087
+ _syncFetchPayload = 0;
5088
+ _isInitialized = false;
5089
+ _enableSendPromise = false;
5090
+ _diagLog = null;
5091
+ _isOneDs = null;
5092
+ _onCompleteFuncs = null;
5093
+ _disableCredentials = null;
5094
+ _fallbackInst = null;
5095
+ _disableXhr = false;
5096
+ _disableBeacon = false;
5097
+ _disableBeaconSync = false;
5098
+ }
5099
+ });
5100
+ }
5101
+ SenderPostManager.__ieDyn=1;
5102
+ return SenderPostManager;
5103
+ }());
5104
+
4683
5105
  function _disableEvents(target, evtNamespace) {
4684
5106
  eventOff(target, null, null, evtNamespace);
4685
5107
  }
@@ -4818,43 +5240,42 @@
4818
5240
  var _DYN_PUSH = "push";
4819
5241
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
4820
5242
  var _DYN_CLEAR = "clear";
4821
- var _DYN_BATCH_PAYLOADS = "batchPayloads";
4822
5243
  var _DYN_CREATE_NEW = "createNew";
4823
5244
  var _DYN_MARK_AS_SENT = "markAsSent";
4824
5245
  var _DYN_CLEAR_SENT = "clearSent";
4825
5246
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
4826
5247
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
4827
5248
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
4828
- var _DYN_CONCAT = "concat";
4829
5249
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
4830
- var _DYN_SEND_POST = "sendPOST";
4831
5250
  var _DYN_TRIGGER_SEND = "triggerSend";
4832
5251
  var _DYN_DIAG_LOG = "diagLog";
5252
+ var _DYN_INITIALIZE = "initialize";
4833
5253
  var _DYN__SENDER = "_sender";
4834
5254
  var _DYN_CUSTOM_HEADERS = "customHeaders";
4835
5255
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
4836
5256
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
4837
5257
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
4838
5258
  var _DYN_ALWAYS_USE_XHR_OVERR4 = "alwaysUseXhrOverride";
5259
+ var _DYN_DISABLE_XHR = "disableXhr";
4839
5260
  var _DYN_ENABLE_SESSION_STORA5 = "enableSessionStorageBuffer";
4840
5261
  var _DYN__BUFFER = "_buffer";
4841
5262
  var _DYN_ONUNLOAD_DISABLE_FET6 = "onunloadDisableFetch";
4842
5263
  var _DYN_DISABLE_SEND_BEACON_7 = "disableSendBeaconSplit";
4843
5264
  var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
5265
+ var _DYN_ENABLE_SEND_PROMISE = "enableSendPromise";
5266
+ var _DYN_GET_XHR_INST = "getXhrInst";
4844
5267
  var _DYN_UNLOAD_TRANSPORTS = "unloadTransports";
4845
5268
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
4846
5269
  var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
4847
5270
  var _DYN_SERIALIZE = "serialize";
4848
- var _DYN__XHR_READY_STATE_CHA8 = "_xhrReadyStateChange";
4849
5271
  var _DYN__ON_ERROR = "_onError";
4850
5272
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
4851
5273
  var _DYN__ON_SUCCESS = "_onSuccess";
4852
5274
  var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
4853
5275
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
5276
+ var _DYN_ORI_PAYLOAD = "oriPayload";
4854
5277
  var _DYN_BASE_TYPE = "baseType";
4855
5278
  var _DYN_SAMPLE_RATE = "sampleRate";
4856
- var _DYN_ORI_PAYLOAD = "oriPayload";
4857
- var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
4858
5279
  var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
4859
5280
  var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
4860
5281
  var _DYN_GET_HASH_CODE_SCORE = "getHashCodeScore";
@@ -4968,7 +5389,7 @@
4968
5389
  }
4969
5390
  }
4970
5391
  var EnvelopeCreator = {
4971
- Version: '3.1.1-nightly3.2402-22'
5392
+ Version: '3.1.1-nightly3.2403-02'
4972
5393
  };
4973
5394
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
4974
5395
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -5159,7 +5580,7 @@
5159
5580
  _self.getItems = function () {
5160
5581
  return _buffer.slice(0);
5161
5582
  };
5162
- _self[_DYN_BATCH_PAYLOADS ] = function (payload) {
5583
+ _self.batchPayloads = function (payload) {
5163
5584
  if (payload && payload[_DYN_LENGTH ] > 0) {
5164
5585
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
5165
5586
  payload.join("\n") :
@@ -5209,7 +5630,7 @@
5209
5630
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
5210
5631
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
5211
5632
  var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5212
- var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
5633
+ var buffer = _self._set(bufferItems.concat(notDeliveredItems));
5213
5634
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
5214
5635
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
5215
5636
  }
@@ -5236,7 +5657,7 @@
5236
5657
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
5237
5658
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5238
5659
  if (sentElements instanceof Array && payload instanceof Array) {
5239
- sentElements = sentElements[_DYN_CONCAT ](payload);
5660
+ sentElements = sentElements.concat(payload);
5240
5661
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
5241
5662
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
5242
5663
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -5469,7 +5890,7 @@
5469
5890
  return 0;
5470
5891
  }
5471
5892
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
5472
- input = input[_DYN_CONCAT ](input);
5893
+ input = input.concat(input);
5473
5894
  }
5474
5895
  var hash = 5381;
5475
5896
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -5549,18 +5970,7 @@
5549
5970
  return null;
5550
5971
  }
5551
5972
  function isOverrideFn(httpXHROverride) {
5552
- return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
5553
- }
5554
- function _prependTransports(theTransports, newTransports) {
5555
- if (newTransports) {
5556
- if (isNumber(newTransports)) {
5557
- theTransports = [newTransports][_DYN_CONCAT ](theTransports);
5558
- }
5559
- else if (isArray(newTransports)) {
5560
- theTransports = newTransports[_DYN_CONCAT ](theTransports);
5561
- }
5562
- }
5563
- return theTransports;
5973
+ return httpXHROverride && httpXHROverride.sendPOST;
5564
5974
  }
5565
5975
  var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
5566
5976
  endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)
@@ -5573,7 +5983,7 @@
5573
5983
  _a.isRetryDisabled = cfgDfBoolean(),
5574
5984
  _a[_DYN_IS_BEACON_API_DISABL3 ] = cfgDfBoolean(true),
5575
5985
  _a[_DYN_DISABLE_SEND_BEACON_7 ] = cfgDfBoolean(true),
5576
- _a.disableXhr = cfgDfBoolean(),
5986
+ _a[_DYN_DISABLE_XHR ] = cfgDfBoolean(),
5577
5987
  _a[_DYN_ONUNLOAD_DISABLE_FET6 ] = cfgDfBoolean(),
5578
5988
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = cfgDfBoolean(),
5579
5989
  _a[_DYN_INSTRUMENTATION_KEY ] = UNDEFINED_VALUE,
@@ -5638,6 +6048,7 @@
5638
6048
  var _xhrSend;
5639
6049
  var _fallbackSend;
5640
6050
  var _disableBeaconSplit;
6051
+ var _sendPostMgr;
5641
6052
  dynamicProto(Sender, _this, function (_self, _base) {
5642
6053
  _initDefaults();
5643
6054
  _self.pause = function () {
@@ -5682,11 +6093,11 @@
5682
6093
  _self.addHeader = function (name, value) {
5683
6094
  _headers[name] = value;
5684
6095
  };
5685
- _self.initialize = function (config, core, extensions, pluginChain) {
6096
+ _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
5686
6097
  if (_self.isInitialized()) {
5687
6098
  _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 28 , "Sender is already initialized");
5688
6099
  }
5689
- _base.initialize(config, core, extensions, pluginChain);
6100
+ _base[_DYN_INITIALIZE ](config, core, extensions, pluginChain);
5690
6101
  var identifier = _self.identifier;
5691
6102
  _serializer = new Serializer(core.logger);
5692
6103
  _consecutiveErrors = 0;
@@ -5721,7 +6132,7 @@
5721
6132
  _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false && isBeaconsSupported();
5722
6133
  _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false && isBeaconsSupported();
5723
6134
  _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 ];
5724
- _disableXhr = !!senderConfig.disableXhr;
6135
+ _disableXhr = !!senderConfig[_DYN_DISABLE_XHR ];
5725
6136
  var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE ];
5726
6137
  var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 ] &&
5727
6138
  (!!bufferOverride || utlCanUseSessionStorage());
@@ -5763,13 +6174,21 @@
5763
6174
  else {
5764
6175
  _customHeaders = null;
5765
6176
  }
5766
- _enableSendPromise = senderConfig.enableSendPromise;
6177
+ _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE ];
6178
+ var sendPostConfig = _getSendPostMgrConfig();
6179
+ if (!_sendPostMgr) {
6180
+ _sendPostMgr = new SenderPostManager();
6181
+ _sendPostMgr[_DYN_INITIALIZE ](sendPostConfig, diagLog);
6182
+ }
6183
+ else {
6184
+ _sendPostMgr.SetConfig(sendPostConfig);
6185
+ }
5767
6186
  var customInterface = senderConfig.httpXHROverride;
5768
6187
  var httpInterface = null;
5769
6188
  var syncInterface = null;
5770
- var theTransports = _prependTransports([3 , 1 , 2 ], senderConfig.transports);
5771
- httpInterface = _getSenderInterface(theTransports, false);
5772
- var xhrInterface = { sendPOST: _xhrSender };
6189
+ var theTransports = prependTransports([3 , 1 , 2 ], senderConfig.transports);
6190
+ httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](theTransports, false);
6191
+ var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();
5773
6192
  _xhrSend = function (payload, isAsync) {
5774
6193
  return _doSend(xhrInterface, payload, isAsync);
5775
6194
  };
@@ -5783,11 +6202,11 @@
5783
6202
  if (_fetchKeepAlive) {
5784
6203
  _syncUnloadSender = _fetchKeepAliveSender;
5785
6204
  }
5786
- var syncTransports = _prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
6205
+ var syncTransports = prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
5787
6206
  if (!_fetchKeepAlive) {
5788
6207
  syncTransports = syncTransports.filter(function (transport) { return transport !== 2 ; });
5789
6208
  }
5790
- syncInterface = _getSenderInterface(syncTransports, true);
6209
+ syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](syncTransports, true);
5791
6210
  syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);
5792
6211
  if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS ] || !_syncUnloadSender) && syncInterface) {
5793
6212
  _syncUnloadSender = function (payload, isAsync) {
@@ -5829,10 +6248,8 @@
5829
6248
  _self.isCompletelyIdle = function () {
5830
6249
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
5831
6250
  };
5832
- _self[_DYN__XHR_READY_STATE_CHA8 ] = function (xhr, payload, countOfItemsInPayload) {
5833
- if (xhr.readyState === 4) {
5834
- _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
5835
- }
6251
+ _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
6252
+ return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
5836
6253
  };
5837
6254
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
5838
6255
  if (async === void 0) { async = true; }
@@ -5908,7 +6325,7 @@
5908
6325
  _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
5909
6326
  }
5910
6327
  if (failed[_DYN_LENGTH ] > 0) {
5911
- _self[_DYN__ON_ERROR ](failed, _formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
6328
+ _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
5912
6329
  }
5913
6330
  if (retry[_DYN_LENGTH ] > 0) {
5914
6331
  _resendPayload(retry);
@@ -5921,22 +6338,89 @@
5921
6338
  _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
5922
6339
  };
5923
6340
  _self._xdrOnLoad = function (xdr, payload) {
6341
+ return _xdrOnLoad(xdr, payload);
6342
+ };
6343
+ function _xdrOnLoad(xdr, payload) {
5924
6344
  var responseText = _getResponseText(xdr);
5925
6345
  if (xdr && (responseText + "" === "200" || responseText === "")) {
5926
6346
  _consecutiveErrors = 0;
5927
6347
  _self[_DYN__ON_SUCCESS ](payload, 0);
5928
6348
  }
5929
6349
  else {
5930
- var results = _parseResponse(responseText);
6350
+ var results = parseResponse(responseText);
5931
6351
  if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
5932
6352
  && !_isRetryDisabled) {
5933
6353
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
5934
6354
  }
5935
6355
  else {
5936
- _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr));
6356
+ _self[_DYN__ON_ERROR ](payload, formatErrorMessageXdr(xdr));
5937
6357
  }
5938
6358
  }
5939
- };
6359
+ }
6360
+ function _getSendPostMgrConfig() {
6361
+ var _a;
6362
+ try {
6363
+ var onCompleteFuncs = {
6364
+ xdrOnComplete: function (xdr, oncomplete, payload) {
6365
+ var data = _getPayloadArr(payload);
6366
+ if (!data) {
6367
+ return;
6368
+ }
6369
+ return _xdrOnLoad(xdr, data);
6370
+ },
6371
+ fetchOnComplete: function (response, onComplete, resValue, payload) {
6372
+ var data = _getPayloadArr(payload);
6373
+ if (!data) {
6374
+ return;
6375
+ }
6376
+ return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH ], response.statusText, resValue || "");
6377
+ },
6378
+ xhrOnComplete: function (request, oncomplete, payload) {
6379
+ var data = _getPayloadArr(payload);
6380
+ if (!data) {
6381
+ return;
6382
+ }
6383
+ return _xhrReadyStateChange(request, data, data[_DYN_LENGTH ]);
6384
+ },
6385
+ beaconOnRetry: function (data, onComplete, canSend) {
6386
+ return _onBeaconRetry(data, onComplete, canSend);
6387
+ }
6388
+ };
6389
+ var config = (_a = {},
6390
+ _a[_DYN_ENABLE_SEND_PROMISE ] = _enableSendPromise,
6391
+ _a.isOneDs = false,
6392
+ _a.disableCredentials = false,
6393
+ _a[_DYN_DISABLE_XHR ] = _disableXhr,
6394
+ _a.disableBeacon = !_beaconNormalSupported,
6395
+ _a.disableBeaconSync = !_beaconOnUnloadSupported,
6396
+ _a.senderOnCompleteCallBack = onCompleteFuncs,
6397
+ _a);
6398
+ return config;
6399
+ }
6400
+ catch (e) {
6401
+ }
6402
+ return null;
6403
+ }
6404
+ function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {
6405
+ if (xhr.readyState === 4) {
6406
+ _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
6407
+ }
6408
+ }
6409
+ function _getPayloadArr(payload) {
6410
+ try {
6411
+ if (payload) {
6412
+ var internalPayload = payload;
6413
+ var arr = internalPayload[_DYN_ORI_PAYLOAD ];
6414
+ if (arr && arr[_DYN_LENGTH ]) {
6415
+ return arr;
6416
+ }
6417
+ return null;
6418
+ }
6419
+ }
6420
+ catch (e) {
6421
+ }
6422
+ return null;
6423
+ }
5940
6424
  function _validate(telemetryItem, diagLogger) {
5941
6425
  if (_disableTelemetry) {
5942
6426
  return false;
@@ -6032,36 +6516,6 @@
6032
6516
  function _isSampledIn(envelope) {
6033
6517
  return _self._sample.isSampledIn(envelope);
6034
6518
  }
6035
- function _getSenderInterface(transports, syncSupport) {
6036
- var _a;
6037
- var transportType = null;
6038
- var sendPostFunc = null;
6039
- var lp = 0;
6040
- while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
6041
- transportType = transports[lp];
6042
- if (!_disableXhr && transportType === 1 ) {
6043
- if (useXDomainRequest()) {
6044
- sendPostFunc = _xdrSender;
6045
- }
6046
- else if (isXhrSupported()) {
6047
- sendPostFunc = _xhrSender;
6048
- }
6049
- }
6050
- else if (transportType === 2 && isFetchSupported(syncSupport)) {
6051
- sendPostFunc = _fetchSender;
6052
- }
6053
- else if (transportType === 3 && (syncSupport ? _beaconOnUnloadSupported : _beaconNormalSupported)) {
6054
- sendPostFunc = _beaconSender;
6055
- }
6056
- lp++;
6057
- }
6058
- if (sendPostFunc) {
6059
- return _a = {},
6060
- _a[_DYN_SEND_POST ] = sendPostFunc,
6061
- _a;
6062
- }
6063
- return null;
6064
- }
6065
6519
  function _getOnComplete(payload, status, headers, response) {
6066
6520
  if (status === 200 && payload) {
6067
6521
  _self._onSuccess(payload, payload[_DYN_LENGTH ]);
@@ -6076,7 +6530,7 @@
6076
6530
  return _getOnComplete(payload, status, headers, response);
6077
6531
  };
6078
6532
  var payloadData = _getPayload(payload);
6079
- var sendPostFunc = sendInterface && sendInterface[_DYN_SEND_POST ];
6533
+ var sendPostFunc = sendInterface && sendInterface.sendPOST;
6080
6534
  if (sendPostFunc && payloadData) {
6081
6535
  if (markAsSent) {
6082
6536
  _self._buffer[_DYN_MARK_AS_SENT ](payload);
@@ -6088,7 +6542,7 @@
6088
6542
  function _getPayload(payload) {
6089
6543
  var _a;
6090
6544
  if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
6091
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
6545
+ var batch = _self[_DYN__BUFFER ].batchPayloads(payload);
6092
6546
  var payloadData = (_a = {},
6093
6547
  _a[_DYN_DATA ] = batch,
6094
6548
  _a.urlString = _endpointUrl,
@@ -6101,9 +6555,6 @@
6101
6555
  }
6102
6556
  return null;
6103
6557
  }
6104
- function _fetchSender(payload, oncomplete, sync) {
6105
- return _doFetchSender(payload, oncomplete, false);
6106
- }
6107
6558
  function _checkMaxSize(incomingPayload) {
6108
6559
  var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
6109
6560
  if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
@@ -6117,7 +6568,7 @@
6117
6568
  function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {
6118
6569
  var response = null;
6119
6570
  if (!_self._appId) {
6120
- response = _parseResponse(res);
6571
+ response = parseResponse(res);
6121
6572
  if (response && response.appId) {
6122
6573
  _self._appId = response.appId;
6123
6574
  }
@@ -6149,7 +6600,7 @@
6149
6600
  _checkAndUpdateEndPointUrl(responseUrl);
6150
6601
  if (status === 206) {
6151
6602
  if (!response) {
6152
- response = _parseResponse(res);
6603
+ response = parseResponse(res);
6153
6604
  }
6154
6605
  if (response && !_isRetryDisabled) {
6155
6606
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, response);
@@ -6177,223 +6628,61 @@
6177
6628
  }
6178
6629
  return false;
6179
6630
  }
6180
- function _doOnComplete(oncomplete, status, headers, response) {
6181
- try {
6182
- oncomplete(status, headers, response);
6183
- }
6184
- catch (e) {
6185
- }
6186
- }
6187
6631
  function _doUnloadSend(payload, isAsync) {
6188
6632
  if (_syncUnloadSender) {
6189
6633
  _syncUnloadSender(payload, false);
6190
6634
  }
6191
6635
  else {
6192
- var payloadData = _getPayload(payload);
6193
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
6194
- _beaconSender(payloadData);
6636
+ var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([3 ], true);
6637
+ return _doSend(beaconInst, payload, isAsync);
6195
6638
  }
6196
6639
  }
6197
- function _doBeaconSend(payload, oncomplete) {
6198
- var nav = getNavigator();
6199
- var url = _endpointUrl;
6200
- var buffer = _self[_DYN__BUFFER ];
6201
- var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
6202
- var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
6203
- var queued = nav.sendBeacon(url, plainTextBatch);
6204
- if (queued) {
6205
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
6206
- }
6207
- return queued;
6208
- }
6209
- function _beaconSender(payload, oncomplete, sync) {
6640
+ function _onBeaconRetry(payload, onComplete, canSend) {
6210
6641
  var internalPayload = payload;
6211
6642
  var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD ];
6212
- if (isArray(data) && data[_DYN_LENGTH ] > 0) {
6213
- if (!_doBeaconSend(data)) {
6214
- if (!_disableBeaconSplit) {
6215
- var droppedPayload = [];
6216
- for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
6217
- var thePayload = data[lp];
6218
- if (!_doBeaconSend([thePayload])) {
6219
- droppedPayload[_DYN_PUSH ](thePayload);
6220
- }
6221
- }
6222
- if (droppedPayload[_DYN_LENGTH ] > 0) {
6223
- _fallbackSend && _fallbackSend(droppedPayload, true);
6224
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6225
- }
6643
+ if (!_disableBeaconSplit) {
6644
+ var droppedPayload = [];
6645
+ for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
6646
+ var thePayload = data[lp];
6647
+ var arr = [thePayload];
6648
+ var item = _getPayload(arr);
6649
+ if (!canSend(item, onComplete)) {
6650
+ droppedPayload[_DYN_PUSH ](thePayload);
6226
6651
  }
6227
6652
  else {
6228
- _fallbackSend && _fallbackSend(data, true);
6229
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6653
+ _self._onSuccess(arr, arr[_DYN_LENGTH ]);
6230
6654
  }
6231
6655
  }
6232
- }
6233
- }
6234
- function _xhrSender(payload, oncomplete, sync) {
6235
- var internalPayload = payload;
6236
- var thePromise;
6237
- var resolveFunc;
6238
- var rejectFunc;
6239
- var xhr = new XMLHttpRequest();
6240
- var endPointUrl = _endpointUrl;
6241
- try {
6242
- xhr[DisabledPropertyName] = true;
6243
- }
6244
- catch (e) {
6245
- }
6246
- xhr.open("POST", endPointUrl, !sync);
6247
- xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
6248
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6249
- xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
6250
- }
6251
- arrForEach(objKeys(_headers), function (headerName) {
6252
- xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
6253
- });
6254
- xhr.onreadystatechange = function () {
6255
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6256
- _self._xhrReadyStateChange(xhr, oriPayload, oriPayload[_DYN_LENGTH ]);
6257
- if (xhr.readyState === 4) {
6258
- resolveFunc && resolveFunc(true);
6656
+ if (droppedPayload[_DYN_LENGTH ] > 0) {
6657
+ _fallbackSend && _fallbackSend(droppedPayload, true);
6658
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6259
6659
  }
6260
- };
6261
- xhr.onerror = function (event) {
6262
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
6263
- rejectFunc && rejectFunc(event);
6264
- };
6265
- if (!sync && _enableSendPromise) {
6266
- thePromise = createPromise(function (resolve, reject) {
6267
- resolveFunc = resolve;
6268
- rejectFunc = reject;
6269
- });
6270
6660
  }
6271
- xhr.send(payload[_DYN_DATA ]);
6272
- return thePromise;
6661
+ else {
6662
+ _fallbackSend && _fallbackSend(data, true);
6663
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6664
+ }
6273
6665
  }
6274
6666
  function _fetchKeepAliveSender(payload, isAsync) {
6275
- var onComplete = function (status, headers, response) {
6276
- return _getOnComplete(payload, status, headers, response);
6277
- };
6667
+ var transport = null;
6278
6668
  if (isArray(payload)) {
6279
6669
  var payloadSize = payload[_DYN_LENGTH ];
6280
6670
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
6281
6671
  payloadSize += payload[lp][_DYN_LENGTH ];
6282
6672
  }
6283
- var payloadData = _getPayload(payload);
6284
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
6285
- if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
6286
- _doFetchSender(payloadData, onComplete, true);
6673
+ var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
6674
+ if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
6675
+ transport = 2 ;
6287
6676
  }
6288
6677
  else if (isBeaconsSupported()) {
6289
- _beaconSender(payloadData);
6678
+ transport = 3 ;
6290
6679
  }
6291
6680
  else {
6292
- _fallbackSend && _fallbackSend(payload, true);
6681
+ transport = 1 ;
6293
6682
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
6294
6683
  }
6295
- }
6296
- }
6297
- function _doFetchSender(payload, oncomplete, sync) {
6298
- var _a;
6299
- var endPointUrl = _endpointUrl;
6300
- var internalPayload = payload;
6301
- var batch = internalPayload[_DYN_DATA ];
6302
- var plainTextBatch = new Blob([batch], { type: "application/json" });
6303
- var thePromise;
6304
- var resolveFunc;
6305
- var rejectFunc;
6306
- var requestHeaders = new Headers();
6307
- var batchLength = batch[_DYN_LENGTH ];
6308
- var ignoreResponse = false;
6309
- var responseHandled = false;
6310
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6311
- requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
6312
- }
6313
- arrForEach(objKeys(_headers), function (headerName) {
6314
- requestHeaders.append(headerName, _headers[headerName]);
6315
- });
6316
- var init = (_a = {
6317
- method: "POST",
6318
- headers: requestHeaders,
6319
- body: plainTextBatch
6320
- },
6321
- _a[DisabledPropertyName] = true
6322
- ,
6323
- _a);
6324
- if (sync) {
6325
- init.keepalive = true;
6326
- ignoreResponse = true;
6327
- _syncFetchPayload += batchLength;
6328
- }
6329
- var request = new Request(endPointUrl, init);
6330
- try {
6331
- request[DisabledPropertyName] = true;
6332
- }
6333
- catch (e) {
6334
- }
6335
- if (!sync && _enableSendPromise) {
6336
- thePromise = createPromise(function (resolve, reject) {
6337
- resolveFunc = resolve;
6338
- rejectFunc = reject;
6339
- });
6340
- }
6341
- try {
6342
- doAwaitResponse(fetch(request), function (result) {
6343
- if (sync) {
6344
- _syncFetchPayload -= batchLength;
6345
- batchLength = 0;
6346
- }
6347
- if (!responseHandled) {
6348
- responseHandled = true;
6349
- if (!result.rejected) {
6350
- var response_1 = result.value;
6351
- if (!response_1.ok) {
6352
- _doOnComplete(oncomplete, 400, {}, response_1.statusText);
6353
- resolveFunc && resolveFunc(false);
6354
- }
6355
- else {
6356
- doAwaitResponse(response_1.text(), function (resp) {
6357
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6358
- _checkResponsStatus(response_1.status, oriPayload, response_1.url, oriPayload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
6359
- resolveFunc && resolveFunc(true);
6360
- });
6361
- }
6362
- }
6363
- else {
6364
- _doOnComplete(oncomplete, 400, {}, result.reason && result.reason.message);
6365
- rejectFunc && rejectFunc(result.reason);
6366
- }
6367
- }
6368
- });
6369
- }
6370
- catch (e) {
6371
- if (!responseHandled) {
6372
- _doOnComplete(oncomplete, 400, {}, dumpObj(e));
6373
- rejectFunc && rejectFunc(e);
6374
- }
6375
- }
6376
- if (ignoreResponse && !responseHandled) {
6377
- responseHandled = true;
6378
- _doOnComplete(oncomplete, 200, {});
6379
- resolveFunc && resolveFunc(true);
6380
- }
6381
- return thePromise;
6382
- }
6383
- function _parseResponse(response) {
6384
- try {
6385
- if (response && response !== "") {
6386
- var result = getJSON().parse(response);
6387
- if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED ] &&
6388
- result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH ]) {
6389
- return result;
6390
- }
6391
- }
6392
- }
6393
- catch (e) {
6394
- _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
6395
- response: response
6396
- });
6684
+ var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([transport], true);
6685
+ return _doSend(inst, payload, isAsync);
6397
6686
  }
6398
6687
  return null;
6399
6688
  }
@@ -6452,41 +6741,6 @@
6452
6741
  || statusCode === 503
6453
6742
  || statusCode === 504;
6454
6743
  }
6455
- function _formatErrorMessageXhr(xhr, message) {
6456
- if (xhr) {
6457
- return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + _getResponseText(xhr) || xhr.response || "";
6458
- }
6459
- return message;
6460
- }
6461
- function _xdrSender(payload, oncomplete, sync) {
6462
- var internalPayload = payload;
6463
- var _window = getWindow();
6464
- var xdr = new XDomainRequest();
6465
- var data = internalPayload[_DYN_DATA ];
6466
- xdr.onload = function () {
6467
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
6468
- _self._xdrOnLoad(xdr, oriPayload);
6469
- };
6470
- xdr.onerror = function () {
6471
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
6472
- };
6473
- var hostingProtocol = _window && _window.location && _window.location.protocol || "";
6474
- if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {
6475
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
6476
- "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
6477
- _self._buffer[_DYN_CLEAR ]();
6478
- return;
6479
- }
6480
- var endpointUrl = _endpointUrl.replace(/^(https?:)/, "");
6481
- xdr.open("POST", endpointUrl);
6482
- xdr.send(data);
6483
- }
6484
- function _formatErrorMessageXdr(xdr, message) {
6485
- if (xdr) {
6486
- return "XDomainRequest,Response:" + _getResponseText(xdr) || "";
6487
- }
6488
- return message;
6489
- }
6490
6744
  function _getNotifyMgr() {
6491
6745
  var func = "getNotifyMgr";
6492
6746
  if (_self.core[func]) {
@@ -6547,6 +6801,7 @@
6547
6801
  _disableBeaconSplit = false;
6548
6802
  _xhrSend = null;
6549
6803
  _fallbackSend = null;
6804
+ _sendPostMgr = null;
6550
6805
  objDefine(_self, "_senderConfig", {
6551
6806
  g: function () {
6552
6807
  return objExtend({}, defaultAppInsightsChannelConfig);