@microsoft/applicationinsights-web-basic 3.1.1-nightly3.2403-01 → 3.1.1-nightly3.2403-03

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 (47) hide show
  1. package/browser/es5/{aib.3.1.1-nightly3.2403-01.cjs.js → aib.3.1.1-nightly3.2403-03.cjs.js} +592 -348
  2. package/browser/es5/aib.3.1.1-nightly3.2403-03.cjs.js.map +1 -0
  3. package/browser/es5/aib.3.1.1-nightly3.2403-03.cjs.min.js +6 -0
  4. package/browser/es5/aib.3.1.1-nightly3.2403-03.cjs.min.js.map +1 -0
  5. package/browser/es5/{aib.3.1.1-nightly3.2403-01.gbl.js → aib.3.1.1-nightly3.2403-03.gbl.js} +594 -350
  6. package/browser/es5/aib.3.1.1-nightly3.2403-03.gbl.js.map +1 -0
  7. package/browser/es5/aib.3.1.1-nightly3.2403-03.gbl.min.js +6 -0
  8. package/browser/es5/aib.3.1.1-nightly3.2403-03.gbl.min.js.map +1 -0
  9. package/browser/es5/aib.3.1.1-nightly3.2403-03.integrity.json +66 -0
  10. package/browser/es5/{aib.3.1.1-nightly3.2403-01.js → aib.3.1.1-nightly3.2403-03.js} +594 -350
  11. package/browser/es5/aib.3.1.1-nightly3.2403-03.js.map +1 -0
  12. package/browser/es5/aib.3.1.1-nightly3.2403-03.min.js +6 -0
  13. package/browser/es5/aib.3.1.1-nightly3.2403-03.min.js.map +1 -0
  14. package/browser/es5/aib.3.cjs.js +591 -347
  15. package/browser/es5/aib.3.cjs.js.map +1 -1
  16. package/browser/es5/aib.3.cjs.min.js +2 -2
  17. package/browser/es5/aib.3.cjs.min.js.map +1 -1
  18. package/browser/es5/aib.3.gbl.js +593 -349
  19. package/browser/es5/aib.3.gbl.js.map +1 -1
  20. package/browser/es5/aib.3.gbl.min.js +2 -2
  21. package/browser/es5/aib.3.gbl.min.js.map +1 -1
  22. package/browser/es5/aib.3.integrity.json +25 -25
  23. package/browser/es5/aib.3.js +593 -349
  24. package/browser/es5/aib.3.js.map +1 -1
  25. package/browser/es5/aib.3.min.js +2 -2
  26. package/browser/es5/aib.3.min.js.map +1 -1
  27. package/dist/es5/applicationinsights-web-basic.js +591 -347
  28. package/dist/es5/applicationinsights-web-basic.js.map +1 -1
  29. package/dist/es5/applicationinsights-web-basic.min.js +2 -2
  30. package/dist/es5/applicationinsights-web-basic.min.js.map +1 -1
  31. package/dist-es5/__DynamicConstants.js +3 -1
  32. package/dist-es5/__DynamicConstants.js.map +1 -1
  33. package/dist-es5/index.js +5 -3
  34. package/dist-es5/index.js.map +1 -1
  35. package/package.json +4 -4
  36. package/types/applicationinsights-web-basic.d.ts +1 -1
  37. package/types/applicationinsights-web-basic.namespaced.d.ts +6 -1
  38. package/browser/es5/aib.3.1.1-nightly3.2403-01.cjs.js.map +0 -1
  39. package/browser/es5/aib.3.1.1-nightly3.2403-01.cjs.min.js +0 -6
  40. package/browser/es5/aib.3.1.1-nightly3.2403-01.cjs.min.js.map +0 -1
  41. package/browser/es5/aib.3.1.1-nightly3.2403-01.gbl.js.map +0 -1
  42. package/browser/es5/aib.3.1.1-nightly3.2403-01.gbl.min.js +0 -6
  43. package/browser/es5/aib.3.1.1-nightly3.2403-01.gbl.min.js.map +0 -1
  44. package/browser/es5/aib.3.1.1-nightly3.2403-01.integrity.json +0 -66
  45. package/browser/es5/aib.3.1.1-nightly3.2403-01.js.map +0 -1
  46. package/browser/es5/aib.3.1.1-nightly3.2403-01.min.js +0 -6
  47. package/browser/es5/aib.3.1.1-nightly3.2403-01.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript Web SDK - Basic, 3.1.1-nightly3.2403-01
2
+ * Application Insights JavaScript Web SDK - Basic, 3.1.1-nightly3.2403-03
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -1320,7 +1320,7 @@
1320
1320
  var _DYN_SPLICE = "splice";
1321
1321
  var _DYN_HDLR = "hdlr";
1322
1322
  var _DYN_CANCEL = "cancel";
1323
- var _DYN_INITIALIZE = "initialize";
1323
+ var _DYN_INITIALIZE$1 = "initialize";
1324
1324
  var _DYN_IDENTIFIER = "identifier";
1325
1325
  var _DYN_IS_INITIALIZED = "isInitialized";
1326
1326
  var _DYN_GET_PLUGIN = "getPlugin";
@@ -1710,7 +1710,7 @@
1710
1710
  var createAllPromise = _createAllPromise(createPromise);
1711
1711
 
1712
1712
  var UNDEFINED_VALUE$1 = undefined;
1713
- var STR_EMPTY = "";
1713
+ var STR_EMPTY$1 = "";
1714
1714
  var STR_CHANNELS = "channels";
1715
1715
  var STR_CORE = "core";
1716
1716
  var STR_CREATE_PERF_MGR = "createPerfMgr";
@@ -1763,7 +1763,7 @@
1763
1763
  if (isError(object)) {
1764
1764
  return object[_DYN_NAME$2 ];
1765
1765
  }
1766
- return STR_EMPTY;
1766
+ return STR_EMPTY$1;
1767
1767
  }
1768
1768
  function setValue(target, field, value, valChk, srcChk) {
1769
1769
  var theValue = value;
@@ -1966,7 +1966,7 @@
1966
1966
  var nav = getNavigator();
1967
1967
  if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
1968
1968
  _navUserAgentCheck = nav[_DYN_USER_AGENT ];
1969
- var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1969
+ var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1970
1970
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1971
1971
  }
1972
1972
  return _isTrident;
@@ -1975,9 +1975,9 @@
1975
1975
  if (userAgentStr === void 0) { userAgentStr = null; }
1976
1976
  if (!userAgentStr) {
1977
1977
  var navigator_1 = getNavigator() || {};
1978
- userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY;
1978
+ userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY$1;
1979
1979
  }
1980
- var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1980
+ var ua = (userAgentStr || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1981
1981
  if (strContains(ua, strMsie)) {
1982
1982
  var doc = getDocument() || {};
1983
1983
  return Math.max(parseInt(ua[_DYN_SPLIT$1 ](strMsie)[1]), (doc[strDocumentMode] || 0));
@@ -2086,7 +2086,7 @@
2086
2086
  var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
2087
2087
  var number = random32() >>> 0;
2088
2088
  var chars = 0;
2089
- var result = STR_EMPTY;
2089
+ var result = STR_EMPTY$1;
2090
2090
  while (result[_DYN_LENGTH$2 ] < maxLength) {
2091
2091
  chars++;
2092
2092
  result += base64chars.charAt(number & 0x3F);
@@ -2124,11 +2124,11 @@
2124
2124
  }
2125
2125
  function createUniqueNamespace(name, includeVersion) {
2126
2126
  if (includeVersion === void 0) { includeVersion = false; }
2127
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
2127
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
2128
2128
  }
2129
2129
  function createElmNodeData(name) {
2130
2130
  var data = {
2131
- id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
2131
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
2132
2132
  accept: function (target) {
2133
2133
  return _canAcceptData(target);
2134
2134
  },
@@ -2881,9 +2881,9 @@
2881
2881
  _a$4);
2882
2882
  function _sanitizeDiagnosticText(text) {
2883
2883
  if (text) {
2884
- return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
2884
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
2885
2885
  }
2886
- return STR_EMPTY;
2886
+ return STR_EMPTY$1;
2887
2887
  }
2888
2888
  function _logToConsole(func, message) {
2889
2889
  var theConsole = getConsole();
@@ -2905,12 +2905,12 @@
2905
2905
  _self[_DYN_MESSAGE$1 ] =
2906
2906
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
2907
2907
  msgId;
2908
- var strProps = STR_EMPTY;
2908
+ var strProps = STR_EMPTY$1;
2909
2909
  if (hasJSON()) {
2910
2910
  strProps = getJSON().stringify(properties);
2911
2911
  }
2912
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
2913
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
2912
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
2913
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
2914
2914
  _self[_DYN_MESSAGE$1 ] += diagnosticText;
2915
2915
  }
2916
2916
  _InternalLogMessage.dataType = "MessageData";
@@ -3149,7 +3149,7 @@
3149
3149
  var result = false;
3150
3150
  if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
3151
3151
  var values = {};
3152
- var theValue = strTrim(value || STR_EMPTY);
3152
+ var theValue = strTrim(value || STR_EMPTY$1);
3153
3153
  var idx = strIndexOf(theValue, ";");
3154
3154
  if (idx !== -1) {
3155
3155
  theValue = strTrim(strLeft(value, idx));
@@ -3164,11 +3164,11 @@
3164
3164
  if (expireMs > 0) {
3165
3165
  var expiry = new Date();
3166
3166
  expiry.setTime(expireMs);
3167
- setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
3167
+ setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY$1, isTruthy);
3168
3168
  }
3169
3169
  }
3170
3170
  if (!_isIE) {
3171
- setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
3171
+ setValue(values, "max-age", STR_EMPTY$1 + maxAgeSec, null, isUndefined);
3172
3172
  }
3173
3173
  }
3174
3174
  var location_1 = getLocation();
@@ -3188,7 +3188,7 @@
3188
3188
  return result;
3189
3189
  },
3190
3190
  get: function (name) {
3191
- var value = STR_EMPTY;
3191
+ var value = STR_EMPTY$1;
3192
3192
  if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
3193
3193
  value = _getCookieFn(name);
3194
3194
  }
@@ -3212,7 +3212,7 @@
3212
3212
  if (!isIE()) {
3213
3213
  values["max-age"] = "0";
3214
3214
  }
3215
- _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
3215
+ _delCookieFn(name, _formatCookieValue(STR_EMPTY$1, values));
3216
3216
  result = true;
3217
3217
  }
3218
3218
  return result;
@@ -3245,7 +3245,7 @@
3245
3245
  if (theValue && theValue[_DYN_LENGTH$2 ]) {
3246
3246
  var parts = strTrim(theValue)[_DYN_SPLIT$1 ](";");
3247
3247
  arrForEach(parts, function (thePart) {
3248
- thePart = strTrim(thePart || STR_EMPTY);
3248
+ thePart = strTrim(thePart || STR_EMPTY$1);
3249
3249
  if (thePart) {
3250
3250
  var idx = strIndexOf(thePart, "=");
3251
3251
  if (idx === -1) {
@@ -3266,22 +3266,22 @@
3266
3266
  return null;
3267
3267
  }
3268
3268
  function _formatCookieValue(value, values) {
3269
- var cookieValue = value || STR_EMPTY;
3269
+ var cookieValue = value || STR_EMPTY$1;
3270
3270
  objForEachKey(values, function (name, theValue) {
3271
- cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY);
3271
+ cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY$1);
3272
3272
  });
3273
3273
  return cookieValue;
3274
3274
  }
3275
3275
  function _getCookieValue(name) {
3276
- var cookieValue = STR_EMPTY;
3276
+ var cookieValue = STR_EMPTY$1;
3277
3277
  !_doc && _getDoc();
3278
3278
  if (_doc.v) {
3279
- var theCookie = _doc.v[strCookie] || STR_EMPTY;
3279
+ var theCookie = _doc.v[strCookie] || STR_EMPTY$1;
3280
3280
  if (_parsedCookieValue !== theCookie) {
3281
3281
  _cookieCache = _extractParts(theCookie);
3282
3282
  _parsedCookieValue = theCookie;
3283
3283
  }
3284
- cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);
3284
+ cookieValue = strTrim(_cookieCache[name] || STR_EMPTY$1);
3285
3285
  }
3286
3286
  return cookieValue;
3287
3287
  }
@@ -3633,7 +3633,7 @@
3633
3633
  }
3634
3634
  arrForEach(initPlugins, function (thePlugin) {
3635
3635
  var core = processContext[STR_CORE ]();
3636
- thePlugin[_DYN_INITIALIZE ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
3636
+ thePlugin[_DYN_INITIALIZE$1 ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
3637
3637
  pluginState = _getPluginState(thePlugin);
3638
3638
  if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {
3639
3639
  pluginState[STR_CORE] = core;
@@ -3977,7 +3977,7 @@
3977
3977
  doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
3978
3978
  hasRunContext[chainId] = true;
3979
3979
  try {
3980
- var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
3980
+ var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
3981
3981
  if (nextId) {
3982
3982
  hasRunContext[nextId] = false;
3983
3983
  }
@@ -4122,7 +4122,7 @@
4122
4122
  var _hookContainer;
4123
4123
  _initDefaults();
4124
4124
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
4125
- _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
4125
+ _self[_DYN_INITIALIZE$1 ] = function (config, core, extensions, pluginChain) {
4126
4126
  _setDefaults(config, core, pluginChain);
4127
4127
  _isinitialized = true;
4128
4128
  };
@@ -4341,7 +4341,7 @@
4341
4341
  var channels = [];
4342
4342
  var extPriorities = {};
4343
4343
  arrForEach(allExtensions, function (ext) {
4344
- if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE ])) {
4344
+ if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE$1 ])) {
4345
4345
  throwError(strValidationError);
4346
4346
  }
4347
4347
  var extPriority = ext[STR_PRIORITY ];
@@ -4466,7 +4466,7 @@
4466
4466
  return [_extensions];
4467
4467
  };
4468
4468
  _self[_DYN_IS_INITIALIZED ] = function () { return _isInitialized; };
4469
- _self[_DYN_INITIALIZE ] = function (config, extensions, logger, notificationManager) {
4469
+ _self[_DYN_INITIALIZE$1 ] = function (config, extensions, logger, notificationManager) {
4470
4470
  if (_isUnloading) {
4471
4471
  throwError(strSdkUnloadingError);
4472
4472
  }
@@ -4829,7 +4829,7 @@
4829
4829
  }
4830
4830
  _pluginVersionString = _pluginVersionStringArr.join(";");
4831
4831
  }
4832
- return _pluginVersionString || STR_EMPTY;
4832
+ return _pluginVersionString || STR_EMPTY$1;
4833
4833
  }
4834
4834
  });
4835
4835
  objDefine(_self, "logger", {
@@ -5142,16 +5142,16 @@
5142
5142
  var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
5143
5143
  function _normalizeNamespace(name) {
5144
5144
  if (name && name[_DYN_REPLACE ]) {
5145
- return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
5145
+ return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY$1);
5146
5146
  }
5147
5147
  return name;
5148
5148
  }
5149
5149
  function _getEvtNamespace(eventName, evtNamespace) {
5150
5150
  var _a;
5151
5151
  if (evtNamespace) {
5152
- var theNamespace_1 = STR_EMPTY;
5152
+ var theNamespace_1 = STR_EMPTY$1;
5153
5153
  if (isArray(evtNamespace)) {
5154
- theNamespace_1 = STR_EMPTY;
5154
+ theNamespace_1 = STR_EMPTY$1;
5155
5155
  arrForEach(evtNamespace, function (name) {
5156
5156
  name = _normalizeNamespace(name);
5157
5157
  if (name) {
@@ -5169,13 +5169,13 @@
5169
5169
  if (theNamespace_1[0] !== ".") {
5170
5170
  theNamespace_1 = "." + theNamespace_1;
5171
5171
  }
5172
- eventName = (eventName || STR_EMPTY) + theNamespace_1;
5172
+ eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
5173
5173
  }
5174
5174
  }
5175
- var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
5175
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
5176
5176
  return _a = {},
5177
5177
  _a[_DYN_TYPE ] = parsedEvent[1],
5178
- _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT$1 ](".").sort()).join("."),
5178
+ _a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT$1 ](".").sort()).join("."),
5179
5179
  _a;
5180
5180
  }
5181
5181
  function _getRegisteredEvents(target, evtName, addDefault) {
@@ -5324,15 +5324,21 @@
5324
5324
  var _DYN_SPLIT = "split";
5325
5325
  var _DYN_LENGTH$1 = "length";
5326
5326
  var _DYN_TO_LOWER_CASE = "toLowerCase";
5327
+ var _DYN_LOCATION = "location";
5327
5328
  var _DYN_INGESTIONENDPOINT = "ingestionendpoint";
5328
5329
  var _DYN_TO_STRING$1 = "toString";
5329
5330
  var _DYN_PUSH$1 = "push";
5331
+ var _DYN_URL_STRING = "urlString";
5332
+ var _DYN_DATA$1 = "data";
5333
+ var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
5334
+ var _DYN_REASON = "reason";
5335
+ var _DYN_MESSAGE = "message";
5330
5336
  var _DYN_REMOVE_ITEM = "removeItem";
5331
5337
  var _DYN_NAME$1 = "name";
5332
- var _DYN_MESSAGE = "message";
5333
5338
  var _DYN_COUNT$1 = "count";
5334
5339
  var _DYN_STRINGIFY$1 = "stringify";
5335
5340
  var _DYN_PATHNAME = "pathname";
5341
+ var _DYN_ITEMS_RECEIVED$1 = "itemsReceived";
5336
5342
  var _DYN_EXCEPTIONS = "exceptions";
5337
5343
  var _DYN_PARSED_STACK = "parsedStack";
5338
5344
  var _DYN_PROPERTIES = "properties";
@@ -5554,6 +5560,54 @@
5554
5560
  data: data
5555
5561
  };
5556
5562
  }
5563
+ function getResponseText(xhr) {
5564
+ try {
5565
+ return xhr.responseText;
5566
+ }
5567
+ catch (e) {
5568
+ }
5569
+ return null;
5570
+ }
5571
+ function formatErrorMessageXdr(xdr, message) {
5572
+ if (xdr) {
5573
+ return "XDomainRequest,Response:" + getResponseText(xdr) || "";
5574
+ }
5575
+ return message;
5576
+ }
5577
+ function formatErrorMessageXhr(xhr, message) {
5578
+ if (xhr) {
5579
+ return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + getResponseText(xhr) || xhr.response || "";
5580
+ }
5581
+ return message;
5582
+ }
5583
+ function prependTransports(theTransports, newTransports) {
5584
+ if (newTransports) {
5585
+ if (isNumber(newTransports)) {
5586
+ theTransports = [newTransports].concat(theTransports);
5587
+ }
5588
+ else if (isArray(newTransports)) {
5589
+ theTransports = newTransports.concat(theTransports);
5590
+ }
5591
+ }
5592
+ return theTransports;
5593
+ }
5594
+ function parseResponse(response, diagLog) {
5595
+ try {
5596
+ if (response && response !== "") {
5597
+ var result = getJSON().parse(response);
5598
+ if (result && result[_DYN_ITEMS_RECEIVED$1 ] && result[_DYN_ITEMS_RECEIVED$1 ] >= result.itemsAccepted &&
5599
+ result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH$1 ]) {
5600
+ return result;
5601
+ }
5602
+ }
5603
+ }
5604
+ catch (e) {
5605
+ _throwInternal(diagLog, 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
5606
+ response: response
5607
+ });
5608
+ }
5609
+ return null;
5610
+ }
5557
5611
 
5558
5612
  var StorageType = createEnumStyle({
5559
5613
  LocalStorage: 0 ,
@@ -5642,7 +5696,7 @@
5642
5696
  }, {});
5643
5697
  if (objKeys(result)[_DYN_LENGTH$1 ] > 0) {
5644
5698
  if (result.endpointsuffix) {
5645
- var locationPrefix = result.location ? result.location + "." : "";
5699
+ var locationPrefix = result[_DYN_LOCATION ] ? result[_DYN_LOCATION ] + "." : "";
5646
5700
  result[_DYN_INGESTIONENDPOINT ] = result[_DYN_INGESTIONENDPOINT ] || ("https://" + locationPrefix + "dc." + result.endpointsuffix);
5647
5701
  }
5648
5702
  result[_DYN_INGESTIONENDPOINT ] = result[_DYN_INGESTIONENDPOINT ] || DEFAULT_BREEZE_ENDPOINT;
@@ -5661,7 +5715,7 @@
5661
5715
  _self.sampleRate = 100.0;
5662
5716
  _self.tags = {};
5663
5717
  _self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
5664
- _self.data = data;
5718
+ _self[_DYN_DATA$1 ] = data;
5665
5719
  _self.time = toISOString(new Date());
5666
5720
  _self.aiDataContract = {
5667
5721
  time: 1 ,
@@ -5818,8 +5872,8 @@
5818
5872
  else if (getWindow() && getWindow()["opera"] && errorObj[strMessage]) {
5819
5873
  details = _getOperaStack(errorObj[_DYN_MESSAGE ]);
5820
5874
  }
5821
- else if (errorObj["reason"] && errorObj.reason[strStack]) {
5822
- details = _convertStackObj(errorObj.reason[strStack]);
5875
+ else if (errorObj["reason"] && errorObj[_DYN_REASON ][strStack]) {
5876
+ details = _convertStackObj(errorObj[_DYN_REASON ][strStack]);
5823
5877
  }
5824
5878
  else if (isString(errorObj)) {
5825
5879
  details = _convertStackObj(errorObj);
@@ -6290,7 +6344,7 @@
6290
6344
  _self.resultCode = resultCode + "";
6291
6345
  _self.type = dataSanitizeString(logger, requestAPI);
6292
6346
  var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);
6293
- _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data;
6347
+ _self[_DYN_DATA$1 ] = dataSanitizeUrl(logger, commandName) || dependencyFields[_DYN_DATA$1 ];
6294
6348
  _self.target = dataSanitizeString(logger, dependencyFields.target);
6295
6349
  if (correlationContext) {
6296
6350
  _self.target = "".concat(_self.target, " | ").concat(correlationContext);
@@ -6464,6 +6518,360 @@
6464
6518
 
6465
6519
  var CtxTagKeys = new ContextTagKeys();
6466
6520
 
6521
+ var STR_EMPTY = "";
6522
+ var SenderPostManager = /** @class */ (function () {
6523
+ function SenderPostManager() {
6524
+ var _syncFetchPayload = 0;
6525
+ var _enableSendPromise;
6526
+ var _isInitialized;
6527
+ var _diagLog;
6528
+ var _isOneDs;
6529
+ var _onCompleteFuncs;
6530
+ var _disableCredentials;
6531
+ var _fallbackInst;
6532
+ var _disableXhr;
6533
+ var _disableBeacon;
6534
+ var _disableBeaconSync;
6535
+ dynamicProto(SenderPostManager, this, function (_self, _base) {
6536
+ var _sendCredentials = true;
6537
+ _initDefaults();
6538
+ _self.initialize = function (config, diagLog) {
6539
+ _diagLog = diagLog;
6540
+ if (_isInitialized) {
6541
+ _throwInternal(_diagLog, 1 , 28 , "Sender is already initialized");
6542
+ }
6543
+ _self.SetConfig(config);
6544
+ _isInitialized = true;
6545
+ };
6546
+ _self["_getDbgPlgTargets"] = function () {
6547
+ return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];
6548
+ };
6549
+ _self.SetConfig = function (config) {
6550
+ try {
6551
+ _onCompleteFuncs = config.senderOnCompleteCallBack || {};
6552
+ _disableCredentials = !!config.disableCredentials;
6553
+ _isOneDs = !!config.isOneDs;
6554
+ _enableSendPromise = !!config.enableSendPromise;
6555
+ _disableXhr = !!config.disableXhr;
6556
+ _disableBeacon = !!config.disableBeacon;
6557
+ _disableBeaconSync = !!config.disableBeaconSync;
6558
+ _fallbackInst = { sendPOST: _xhrSender };
6559
+ if (_disableCredentials) {
6560
+ var location_1 = getLocation();
6561
+ if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE ]() === "file:") {
6562
+ _sendCredentials = false;
6563
+ }
6564
+ }
6565
+ return true;
6566
+ }
6567
+ catch (e) {
6568
+ }
6569
+ return false;
6570
+ };
6571
+ _self.getSyncFetchPayload = function () {
6572
+ return _syncFetchPayload;
6573
+ };
6574
+ _self.getXhrInst = function (transports, sync) {
6575
+ if (transports && transports[_DYN_LENGTH$1 ]) {
6576
+ return _getSenderInterface(transports, sync);
6577
+ }
6578
+ return null;
6579
+ };
6580
+ _self.getFallbackInst = function () {
6581
+ return _fallbackInst;
6582
+ };
6583
+ _self._doTeardown = function (unloadCtx, unloadState) {
6584
+ _initDefaults();
6585
+ };
6586
+ function _onSuccess(res, onComplete) {
6587
+ _doOnComplete(onComplete, 200, {}, res);
6588
+ }
6589
+ function _onError(message, onComplete) {
6590
+ _throwInternal(_diagLog, 2 , 26 , "Failed to send telemetry.", { message: message });
6591
+ _doOnComplete(onComplete, 400, {});
6592
+ }
6593
+ function _onNoPayloadUrl(onComplete) {
6594
+ _onError("No endpoint url is provided for the batch", onComplete);
6595
+ }
6596
+ function _getSenderInterface(transports, syncSupport) {
6597
+ var transportType = null;
6598
+ var sendPostFunc = null;
6599
+ var lp = 0;
6600
+ while (sendPostFunc == null && lp < transports[_DYN_LENGTH$1 ]) {
6601
+ transportType = transports[lp];
6602
+ if (!_disableXhr && transportType === 1 ) {
6603
+ if (useXDomainRequest()) {
6604
+ sendPostFunc = _xdrSender;
6605
+ }
6606
+ else if (isXhrSupported()) {
6607
+ sendPostFunc = _xhrSender;
6608
+ }
6609
+ }
6610
+ else if (transportType === 2 && isFetchSupported(syncSupport)) {
6611
+ sendPostFunc = _doFetchSender;
6612
+ }
6613
+ else if (transportType === 3 && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {
6614
+ sendPostFunc = _beaconSender;
6615
+ }
6616
+ lp++;
6617
+ }
6618
+ if (sendPostFunc) {
6619
+ return {
6620
+ sendPOST: sendPostFunc
6621
+ };
6622
+ }
6623
+ return null;
6624
+ }
6625
+ function _doOnComplete(oncomplete, status, headers, response) {
6626
+ try {
6627
+ oncomplete && oncomplete(status, headers, response);
6628
+ }
6629
+ catch (e) {
6630
+ }
6631
+ }
6632
+ function _doBeaconSend(payload, oncomplete) {
6633
+ var nav = getNavigator();
6634
+ var url = payload[_DYN_URL_STRING ];
6635
+ if (!url) {
6636
+ _onNoPayloadUrl(oncomplete);
6637
+ return true;
6638
+ }
6639
+ var data = payload[_DYN_DATA$1 ];
6640
+ var plainTextBatch = new Blob([data], { type: "text/plain;charset=UTF-8" });
6641
+ var queued = nav.sendBeacon(url, plainTextBatch);
6642
+ return queued;
6643
+ }
6644
+ function _beaconSender(payload, oncomplete, sync) {
6645
+ var data = payload[_DYN_DATA$1 ];
6646
+ if (data) {
6647
+ if (!_doBeaconSend(payload, oncomplete)) {
6648
+ var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;
6649
+ if (onRetry && isFunction(onRetry)) {
6650
+ onRetry(payload, oncomplete, _doBeaconSend);
6651
+ }
6652
+ else {
6653
+ _fallbackInst && _fallbackInst.sendPOST(payload, oncomplete, true);
6654
+ _throwInternal(_diagLog, 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6655
+ }
6656
+ }
6657
+ else {
6658
+ _onSuccess(null, oncomplete);
6659
+ }
6660
+ }
6661
+ return;
6662
+ }
6663
+ function _xhrSender(payload, oncomplete, sync) {
6664
+ var thePromise;
6665
+ var resolveFunc;
6666
+ var rejectFunc;
6667
+ var headers = payload.headers || {};
6668
+ if (!sync && _enableSendPromise) {
6669
+ thePromise = createPromise(function (resolve, reject) {
6670
+ resolveFunc = resolve;
6671
+ rejectFunc = reject;
6672
+ });
6673
+ }
6674
+ var xhr = new XMLHttpRequest();
6675
+ var endPointUrl = payload[_DYN_URL_STRING ];
6676
+ if (!endPointUrl) {
6677
+ _onNoPayloadUrl(oncomplete);
6678
+ resolveFunc && resolveFunc(false);
6679
+ return;
6680
+ }
6681
+ try {
6682
+ xhr[DisabledPropertyName] = true;
6683
+ }
6684
+ catch (e) {
6685
+ }
6686
+ xhr.open("POST", endPointUrl, !sync);
6687
+ xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
6688
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6689
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
6690
+ }
6691
+ arrForEach(objKeys(headers), function (headerName) {
6692
+ xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
6693
+ });
6694
+ xhr.onreadystatechange = function () {
6695
+ var response = getResponseText(xhr);
6696
+ var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;
6697
+ var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);
6698
+ if (onReadyFuncExist) {
6699
+ onReadyFunc(xhr, oncomplete, payload);
6700
+ }
6701
+ if (xhr.readyState === 4) {
6702
+ if (!onReadyFuncExist) {
6703
+ _doOnComplete(oncomplete, xhr.status, {}, response);
6704
+ }
6705
+ resolveFunc && resolveFunc(true);
6706
+ }
6707
+ };
6708
+ xhr.onerror = function (event) {
6709
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXhr(xhr));
6710
+ rejectFunc && rejectFunc(event);
6711
+ };
6712
+ xhr.ontimeout = function () {
6713
+ _doOnComplete(oncomplete, 500, {}, formatErrorMessageXhr(xhr));
6714
+ resolveFunc && resolveFunc(false);
6715
+ };
6716
+ xhr.send(payload[_DYN_DATA$1 ]);
6717
+ return thePromise;
6718
+ }
6719
+ function _doFetchSender(payload, oncomplete, sync) {
6720
+ var _a;
6721
+ var endPointUrl = payload[_DYN_URL_STRING ];
6722
+ var batch = payload[_DYN_DATA$1 ];
6723
+ var plainTextBatch = new Blob([batch], { type: "application/json" });
6724
+ var thePromise;
6725
+ var resolveFunc;
6726
+ var rejectFunc;
6727
+ var requestHeaders = new Headers();
6728
+ var batchLength = batch[_DYN_LENGTH$1 ];
6729
+ var ignoreResponse = false;
6730
+ var responseHandled = false;
6731
+ var headers = payload.headers || {};
6732
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6733
+ requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
6734
+ }
6735
+ arrForEach(objKeys(headers), function (headerName) {
6736
+ requestHeaders.append(headerName, headers[headerName]);
6737
+ });
6738
+ var init = (_a = {
6739
+ method: "POST",
6740
+ headers: requestHeaders,
6741
+ body: plainTextBatch
6742
+ },
6743
+ _a[DisabledPropertyName] = true
6744
+ ,
6745
+ _a);
6746
+ if (_sendCredentials && _isOneDs) {
6747
+ init.credentials = "include";
6748
+ }
6749
+ if (sync) {
6750
+ init.keepalive = true;
6751
+ ignoreResponse = true;
6752
+ _syncFetchPayload += batchLength;
6753
+ }
6754
+ var request = new Request(endPointUrl, init);
6755
+ try {
6756
+ request[DisabledPropertyName] = true;
6757
+ }
6758
+ catch (e) {
6759
+ }
6760
+ if (!sync && _enableSendPromise) {
6761
+ thePromise = createPromise(function (resolve, reject) {
6762
+ resolveFunc = resolve;
6763
+ rejectFunc = reject;
6764
+ });
6765
+ }
6766
+ if (!endPointUrl) {
6767
+ _onNoPayloadUrl(oncomplete);
6768
+ resolveFunc && resolveFunc(false);
6769
+ return;
6770
+ }
6771
+ try {
6772
+ doAwaitResponse(fetch(request), function (result) {
6773
+ if (sync) {
6774
+ _syncFetchPayload -= batchLength;
6775
+ batchLength = 0;
6776
+ }
6777
+ if (!responseHandled) {
6778
+ responseHandled = true;
6779
+ if (!result.rejected) {
6780
+ var response_1 = result.value;
6781
+ if (!response_1.ok) {
6782
+ _doOnComplete(oncomplete, 400, {}, response_1.statusText);
6783
+ resolveFunc && resolveFunc(false);
6784
+ }
6785
+ else {
6786
+ doAwaitResponse(response_1.text(), function (resp) {
6787
+ var status = response_1.status;
6788
+ var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;
6789
+ if (onCompleteFunc && isFunction(onCompleteFunc)) {
6790
+ onCompleteFunc(response_1, oncomplete, resp.value || STR_EMPTY, payload);
6791
+ }
6792
+ else {
6793
+ _doOnComplete(oncomplete, status, {}, resp.value || STR_EMPTY);
6794
+ }
6795
+ resolveFunc && resolveFunc(true);
6796
+ });
6797
+ }
6798
+ }
6799
+ else {
6800
+ _doOnComplete(oncomplete, 400, {}, result[_DYN_REASON ] && result[_DYN_REASON ][_DYN_MESSAGE ]);
6801
+ rejectFunc && rejectFunc(result[_DYN_REASON ]);
6802
+ }
6803
+ }
6804
+ });
6805
+ }
6806
+ catch (e) {
6807
+ if (!responseHandled) {
6808
+ _doOnComplete(oncomplete, 400, {}, dumpObj(e));
6809
+ rejectFunc && rejectFunc(e);
6810
+ }
6811
+ }
6812
+ if (ignoreResponse && !responseHandled) {
6813
+ responseHandled = true;
6814
+ _doOnComplete(oncomplete, 200, {});
6815
+ resolveFunc && resolveFunc(true);
6816
+ }
6817
+ return thePromise;
6818
+ }
6819
+ function _xdrSender(payload, oncomplete, sync) {
6820
+ var _window = getWindow();
6821
+ var xdr = new XDomainRequest();
6822
+ var data = payload[_DYN_DATA$1 ];
6823
+ xdr.onload = function () {
6824
+ var response = getResponseText(xdr);
6825
+ var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;
6826
+ if (onloadFunc && isFunction(onloadFunc)) {
6827
+ onloadFunc(xdr, oncomplete, payload);
6828
+ }
6829
+ else {
6830
+ _doOnComplete(oncomplete, 200, {}, response);
6831
+ }
6832
+ };
6833
+ xdr.onerror = function () {
6834
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXdr(xdr));
6835
+ };
6836
+ xdr.ontimeout = function () {
6837
+ _doOnComplete(oncomplete, 500, {});
6838
+ };
6839
+ xdr.onprogress = function () { };
6840
+ var hostingProtocol = _window && _window[_DYN_LOCATION ] && _window[_DYN_LOCATION ].protocol || "";
6841
+ var endpoint = payload[_DYN_URL_STRING ];
6842
+ if (!endpoint) {
6843
+ _onNoPayloadUrl(oncomplete);
6844
+ return;
6845
+ }
6846
+ if (endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {
6847
+ var msg = "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.";
6848
+ _throwInternal(_diagLog, 2 , 40 , ". " + msg);
6849
+ _onError(msg, oncomplete);
6850
+ return;
6851
+ }
6852
+ var endpointUrl = endpoint.replace(/^(https?:)/, "");
6853
+ xdr.open("POST", endpointUrl);
6854
+ xdr.send(data);
6855
+ }
6856
+ function _initDefaults() {
6857
+ _syncFetchPayload = 0;
6858
+ _isInitialized = false;
6859
+ _enableSendPromise = false;
6860
+ _diagLog = null;
6861
+ _isOneDs = null;
6862
+ _onCompleteFuncs = null;
6863
+ _disableCredentials = null;
6864
+ _fallbackInst = null;
6865
+ _disableXhr = false;
6866
+ _disableBeacon = false;
6867
+ _disableBeaconSync = false;
6868
+ }
6869
+ });
6870
+ }
6871
+ SenderPostManager.__ieDyn=1;
6872
+ return SenderPostManager;
6873
+ }());
6874
+
6467
6875
  function _disableEvents(target, evtNamespace) {
6468
6876
  eventOff(target, null, null, evtNamespace);
6469
6877
  }
@@ -6602,43 +7010,42 @@
6602
7010
  var _DYN_PUSH = "push";
6603
7011
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
6604
7012
  var _DYN_CLEAR = "clear";
6605
- var _DYN_BATCH_PAYLOADS = "batchPayloads";
6606
7013
  var _DYN_CREATE_NEW = "createNew";
6607
7014
  var _DYN_MARK_AS_SENT = "markAsSent";
6608
7015
  var _DYN_CLEAR_SENT = "clearSent";
6609
7016
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
6610
7017
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
6611
7018
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
6612
- var _DYN_CONCAT = "concat";
6613
7019
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
6614
- var _DYN_SEND_POST = "sendPOST";
6615
7020
  var _DYN_TRIGGER_SEND = "triggerSend";
6616
7021
  var _DYN_DIAG_LOG = "diagLog";
7022
+ var _DYN_INITIALIZE = "initialize";
6617
7023
  var _DYN__SENDER = "_sender";
6618
7024
  var _DYN_CUSTOM_HEADERS = "customHeaders";
6619
7025
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
6620
7026
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
6621
7027
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
6622
7028
  var _DYN_ALWAYS_USE_XHR_OVERR4 = "alwaysUseXhrOverride";
7029
+ var _DYN_DISABLE_XHR = "disableXhr";
6623
7030
  var _DYN_ENABLE_SESSION_STORA5 = "enableSessionStorageBuffer";
6624
7031
  var _DYN__BUFFER = "_buffer";
6625
7032
  var _DYN_ONUNLOAD_DISABLE_FET6 = "onunloadDisableFetch";
6626
7033
  var _DYN_DISABLE_SEND_BEACON_7 = "disableSendBeaconSplit";
6627
7034
  var _DYN_INSTRUMENTATION_KEY$1 = "instrumentationKey";
7035
+ var _DYN_ENABLE_SEND_PROMISE = "enableSendPromise";
7036
+ var _DYN_GET_XHR_INST = "getXhrInst";
6628
7037
  var _DYN_UNLOAD_TRANSPORTS = "unloadTransports";
6629
7038
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
6630
7039
  var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
6631
7040
  var _DYN_SERIALIZE = "serialize";
6632
- var _DYN__XHR_READY_STATE_CHA8 = "_xhrReadyStateChange";
6633
7041
  var _DYN__ON_ERROR = "_onError";
6634
7042
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
6635
7043
  var _DYN__ON_SUCCESS = "_onSuccess";
6636
7044
  var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
6637
7045
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
7046
+ var _DYN_ORI_PAYLOAD = "oriPayload";
6638
7047
  var _DYN_BASE_TYPE = "baseType";
6639
7048
  var _DYN_SAMPLE_RATE = "sampleRate";
6640
- var _DYN_ORI_PAYLOAD = "oriPayload";
6641
- var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
6642
7049
  var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
6643
7050
  var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
6644
7051
  var _DYN_GET_HASH_CODE_SCORE = "getHashCodeScore";
@@ -6752,7 +7159,7 @@
6752
7159
  }
6753
7160
  }
6754
7161
  var EnvelopeCreator = {
6755
- Version: '3.1.1-nightly3.2403-01'
7162
+ Version: '3.1.1-nightly3.2403-03'
6756
7163
  };
6757
7164
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
6758
7165
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -6943,7 +7350,7 @@
6943
7350
  _self.getItems = function () {
6944
7351
  return _buffer.slice(0);
6945
7352
  };
6946
- _self[_DYN_BATCH_PAYLOADS ] = function (payload) {
7353
+ _self.batchPayloads = function (payload) {
6947
7354
  if (payload && payload[_DYN_LENGTH ] > 0) {
6948
7355
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
6949
7356
  payload.join("\n") :
@@ -6993,7 +7400,7 @@
6993
7400
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
6994
7401
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
6995
7402
  var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
6996
- var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
7403
+ var buffer = _self._set(bufferItems.concat(notDeliveredItems));
6997
7404
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
6998
7405
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
6999
7406
  }
@@ -7020,7 +7427,7 @@
7020
7427
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
7021
7428
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7022
7429
  if (sentElements instanceof Array && payload instanceof Array) {
7023
- sentElements = sentElements[_DYN_CONCAT ](payload);
7430
+ sentElements = sentElements.concat(payload);
7024
7431
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
7025
7432
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
7026
7433
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -7253,7 +7660,7 @@
7253
7660
  return 0;
7254
7661
  }
7255
7662
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
7256
- input = input[_DYN_CONCAT ](input);
7663
+ input = input.concat(input);
7257
7664
  }
7258
7665
  var hash = 5381;
7259
7666
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -7333,18 +7740,7 @@
7333
7740
  return null;
7334
7741
  }
7335
7742
  function isOverrideFn(httpXHROverride) {
7336
- return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
7337
- }
7338
- function _prependTransports(theTransports, newTransports) {
7339
- if (newTransports) {
7340
- if (isNumber(newTransports)) {
7341
- theTransports = [newTransports][_DYN_CONCAT ](theTransports);
7342
- }
7343
- else if (isArray(newTransports)) {
7344
- theTransports = newTransports[_DYN_CONCAT ](theTransports);
7345
- }
7346
- }
7347
- return theTransports;
7743
+ return httpXHROverride && httpXHROverride.sendPOST;
7348
7744
  }
7349
7745
  var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7350
7746
  endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)
@@ -7357,7 +7753,7 @@
7357
7753
  _a.isRetryDisabled = cfgDfBoolean(),
7358
7754
  _a[_DYN_IS_BEACON_API_DISABL3 ] = cfgDfBoolean(true),
7359
7755
  _a[_DYN_DISABLE_SEND_BEACON_7 ] = cfgDfBoolean(true),
7360
- _a.disableXhr = cfgDfBoolean(),
7756
+ _a[_DYN_DISABLE_XHR ] = cfgDfBoolean(),
7361
7757
  _a[_DYN_ONUNLOAD_DISABLE_FET6 ] = cfgDfBoolean(),
7362
7758
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = cfgDfBoolean(),
7363
7759
  _a[_DYN_INSTRUMENTATION_KEY$1 ] = UNDEFINED_VALUE,
@@ -7422,6 +7818,7 @@
7422
7818
  var _xhrSend;
7423
7819
  var _fallbackSend;
7424
7820
  var _disableBeaconSplit;
7821
+ var _sendPostMgr;
7425
7822
  dynamicProto(Sender, _this, function (_self, _base) {
7426
7823
  _initDefaults();
7427
7824
  _self.pause = function () {
@@ -7466,11 +7863,11 @@
7466
7863
  _self.addHeader = function (name, value) {
7467
7864
  _headers[name] = value;
7468
7865
  };
7469
- _self.initialize = function (config, core, extensions, pluginChain) {
7866
+ _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
7470
7867
  if (_self.isInitialized()) {
7471
7868
  _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 28 , "Sender is already initialized");
7472
7869
  }
7473
- _base.initialize(config, core, extensions, pluginChain);
7870
+ _base[_DYN_INITIALIZE ](config, core, extensions, pluginChain);
7474
7871
  var identifier = _self.identifier;
7475
7872
  _serializer = new Serializer(core.logger);
7476
7873
  _consecutiveErrors = 0;
@@ -7505,7 +7902,7 @@
7505
7902
  _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false && isBeaconsSupported();
7506
7903
  _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false && isBeaconsSupported();
7507
7904
  _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 ];
7508
- _disableXhr = !!senderConfig.disableXhr;
7905
+ _disableXhr = !!senderConfig[_DYN_DISABLE_XHR ];
7509
7906
  var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE ];
7510
7907
  var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 ] &&
7511
7908
  (!!bufferOverride || utlCanUseSessionStorage());
@@ -7547,13 +7944,21 @@
7547
7944
  else {
7548
7945
  _customHeaders = null;
7549
7946
  }
7550
- _enableSendPromise = senderConfig.enableSendPromise;
7947
+ _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE ];
7948
+ var sendPostConfig = _getSendPostMgrConfig();
7949
+ if (!_sendPostMgr) {
7950
+ _sendPostMgr = new SenderPostManager();
7951
+ _sendPostMgr[_DYN_INITIALIZE ](sendPostConfig, diagLog);
7952
+ }
7953
+ else {
7954
+ _sendPostMgr.SetConfig(sendPostConfig);
7955
+ }
7551
7956
  var customInterface = senderConfig.httpXHROverride;
7552
7957
  var httpInterface = null;
7553
7958
  var syncInterface = null;
7554
- var theTransports = _prependTransports([3 , 1 , 2 ], senderConfig.transports);
7555
- httpInterface = _getSenderInterface(theTransports, false);
7556
- var xhrInterface = { sendPOST: _xhrSender };
7959
+ var theTransports = prependTransports([3 , 1 , 2 ], senderConfig.transports);
7960
+ httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](theTransports, false);
7961
+ var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();
7557
7962
  _xhrSend = function (payload, isAsync) {
7558
7963
  return _doSend(xhrInterface, payload, isAsync);
7559
7964
  };
@@ -7567,11 +7972,11 @@
7567
7972
  if (_fetchKeepAlive) {
7568
7973
  _syncUnloadSender = _fetchKeepAliveSender;
7569
7974
  }
7570
- var syncTransports = _prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
7975
+ var syncTransports = prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
7571
7976
  if (!_fetchKeepAlive) {
7572
7977
  syncTransports = syncTransports.filter(function (transport) { return transport !== 2 ; });
7573
7978
  }
7574
- syncInterface = _getSenderInterface(syncTransports, true);
7979
+ syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](syncTransports, true);
7575
7980
  syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);
7576
7981
  if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS ] || !_syncUnloadSender) && syncInterface) {
7577
7982
  _syncUnloadSender = function (payload, isAsync) {
@@ -7613,10 +8018,8 @@
7613
8018
  _self.isCompletelyIdle = function () {
7614
8019
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
7615
8020
  };
7616
- _self[_DYN__XHR_READY_STATE_CHA8 ] = function (xhr, payload, countOfItemsInPayload) {
7617
- if (xhr.readyState === 4) {
7618
- _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
7619
- }
8021
+ _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
8022
+ return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
7620
8023
  };
7621
8024
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
7622
8025
  if (async === void 0) { async = true; }
@@ -7692,7 +8095,7 @@
7692
8095
  _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
7693
8096
  }
7694
8097
  if (failed[_DYN_LENGTH ] > 0) {
7695
- _self[_DYN__ON_ERROR ](failed, _formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
8098
+ _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
7696
8099
  }
7697
8100
  if (retry[_DYN_LENGTH ] > 0) {
7698
8101
  _resendPayload(retry);
@@ -7705,22 +8108,89 @@
7705
8108
  _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
7706
8109
  };
7707
8110
  _self._xdrOnLoad = function (xdr, payload) {
8111
+ return _xdrOnLoad(xdr, payload);
8112
+ };
8113
+ function _xdrOnLoad(xdr, payload) {
7708
8114
  var responseText = _getResponseText(xdr);
7709
8115
  if (xdr && (responseText + "" === "200" || responseText === "")) {
7710
8116
  _consecutiveErrors = 0;
7711
8117
  _self[_DYN__ON_SUCCESS ](payload, 0);
7712
8118
  }
7713
8119
  else {
7714
- var results = _parseResponse(responseText);
8120
+ var results = parseResponse(responseText);
7715
8121
  if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
7716
8122
  && !_isRetryDisabled) {
7717
8123
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
7718
8124
  }
7719
8125
  else {
7720
- _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr));
8126
+ _self[_DYN__ON_ERROR ](payload, formatErrorMessageXdr(xdr));
7721
8127
  }
7722
8128
  }
7723
- };
8129
+ }
8130
+ function _getSendPostMgrConfig() {
8131
+ var _a;
8132
+ try {
8133
+ var onCompleteFuncs = {
8134
+ xdrOnComplete: function (xdr, oncomplete, payload) {
8135
+ var data = _getPayloadArr(payload);
8136
+ if (!data) {
8137
+ return;
8138
+ }
8139
+ return _xdrOnLoad(xdr, data);
8140
+ },
8141
+ fetchOnComplete: function (response, onComplete, resValue, payload) {
8142
+ var data = _getPayloadArr(payload);
8143
+ if (!data) {
8144
+ return;
8145
+ }
8146
+ return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH ], response.statusText, resValue || "");
8147
+ },
8148
+ xhrOnComplete: function (request, oncomplete, payload) {
8149
+ var data = _getPayloadArr(payload);
8150
+ if (!data) {
8151
+ return;
8152
+ }
8153
+ return _xhrReadyStateChange(request, data, data[_DYN_LENGTH ]);
8154
+ },
8155
+ beaconOnRetry: function (data, onComplete, canSend) {
8156
+ return _onBeaconRetry(data, onComplete, canSend);
8157
+ }
8158
+ };
8159
+ var config = (_a = {},
8160
+ _a[_DYN_ENABLE_SEND_PROMISE ] = _enableSendPromise,
8161
+ _a.isOneDs = false,
8162
+ _a.disableCredentials = false,
8163
+ _a[_DYN_DISABLE_XHR ] = _disableXhr,
8164
+ _a.disableBeacon = !_beaconNormalSupported,
8165
+ _a.disableBeaconSync = !_beaconOnUnloadSupported,
8166
+ _a.senderOnCompleteCallBack = onCompleteFuncs,
8167
+ _a);
8168
+ return config;
8169
+ }
8170
+ catch (e) {
8171
+ }
8172
+ return null;
8173
+ }
8174
+ function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {
8175
+ if (xhr.readyState === 4) {
8176
+ _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
8177
+ }
8178
+ }
8179
+ function _getPayloadArr(payload) {
8180
+ try {
8181
+ if (payload) {
8182
+ var internalPayload = payload;
8183
+ var arr = internalPayload[_DYN_ORI_PAYLOAD ];
8184
+ if (arr && arr[_DYN_LENGTH ]) {
8185
+ return arr;
8186
+ }
8187
+ return null;
8188
+ }
8189
+ }
8190
+ catch (e) {
8191
+ }
8192
+ return null;
8193
+ }
7724
8194
  function _validate(telemetryItem, diagLogger) {
7725
8195
  if (_disableTelemetry) {
7726
8196
  return false;
@@ -7816,36 +8286,6 @@
7816
8286
  function _isSampledIn(envelope) {
7817
8287
  return _self._sample.isSampledIn(envelope);
7818
8288
  }
7819
- function _getSenderInterface(transports, syncSupport) {
7820
- var _a;
7821
- var transportType = null;
7822
- var sendPostFunc = null;
7823
- var lp = 0;
7824
- while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
7825
- transportType = transports[lp];
7826
- if (!_disableXhr && transportType === 1 ) {
7827
- if (useXDomainRequest()) {
7828
- sendPostFunc = _xdrSender;
7829
- }
7830
- else if (isXhrSupported()) {
7831
- sendPostFunc = _xhrSender;
7832
- }
7833
- }
7834
- else if (transportType === 2 && isFetchSupported(syncSupport)) {
7835
- sendPostFunc = _fetchSender;
7836
- }
7837
- else if (transportType === 3 && (syncSupport ? _beaconOnUnloadSupported : _beaconNormalSupported)) {
7838
- sendPostFunc = _beaconSender;
7839
- }
7840
- lp++;
7841
- }
7842
- if (sendPostFunc) {
7843
- return _a = {},
7844
- _a[_DYN_SEND_POST ] = sendPostFunc,
7845
- _a;
7846
- }
7847
- return null;
7848
- }
7849
8289
  function _getOnComplete(payload, status, headers, response) {
7850
8290
  if (status === 200 && payload) {
7851
8291
  _self._onSuccess(payload, payload[_DYN_LENGTH ]);
@@ -7860,7 +8300,7 @@
7860
8300
  return _getOnComplete(payload, status, headers, response);
7861
8301
  };
7862
8302
  var payloadData = _getPayload(payload);
7863
- var sendPostFunc = sendInterface && sendInterface[_DYN_SEND_POST ];
8303
+ var sendPostFunc = sendInterface && sendInterface.sendPOST;
7864
8304
  if (sendPostFunc && payloadData) {
7865
8305
  if (markAsSent) {
7866
8306
  _self._buffer[_DYN_MARK_AS_SENT ](payload);
@@ -7872,7 +8312,7 @@
7872
8312
  function _getPayload(payload) {
7873
8313
  var _a;
7874
8314
  if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
7875
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
8315
+ var batch = _self[_DYN__BUFFER ].batchPayloads(payload);
7876
8316
  var payloadData = (_a = {},
7877
8317
  _a[_DYN_DATA ] = batch,
7878
8318
  _a.urlString = _endpointUrl,
@@ -7885,9 +8325,6 @@
7885
8325
  }
7886
8326
  return null;
7887
8327
  }
7888
- function _fetchSender(payload, oncomplete, sync) {
7889
- return _doFetchSender(payload, oncomplete, false);
7890
- }
7891
8328
  function _checkMaxSize(incomingPayload) {
7892
8329
  var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
7893
8330
  if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
@@ -7901,7 +8338,7 @@
7901
8338
  function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {
7902
8339
  var response = null;
7903
8340
  if (!_self._appId) {
7904
- response = _parseResponse(res);
8341
+ response = parseResponse(res);
7905
8342
  if (response && response.appId) {
7906
8343
  _self._appId = response.appId;
7907
8344
  }
@@ -7933,7 +8370,7 @@
7933
8370
  _checkAndUpdateEndPointUrl(responseUrl);
7934
8371
  if (status === 206) {
7935
8372
  if (!response) {
7936
- response = _parseResponse(res);
8373
+ response = parseResponse(res);
7937
8374
  }
7938
8375
  if (response && !_isRetryDisabled) {
7939
8376
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, response);
@@ -7961,223 +8398,61 @@
7961
8398
  }
7962
8399
  return false;
7963
8400
  }
7964
- function _doOnComplete(oncomplete, status, headers, response) {
7965
- try {
7966
- oncomplete(status, headers, response);
7967
- }
7968
- catch (e) {
7969
- }
7970
- }
7971
8401
  function _doUnloadSend(payload, isAsync) {
7972
8402
  if (_syncUnloadSender) {
7973
8403
  _syncUnloadSender(payload, false);
7974
8404
  }
7975
8405
  else {
7976
- var payloadData = _getPayload(payload);
7977
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
7978
- _beaconSender(payloadData);
8406
+ var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([3 ], true);
8407
+ return _doSend(beaconInst, payload, isAsync);
7979
8408
  }
7980
8409
  }
7981
- function _doBeaconSend(payload, oncomplete) {
7982
- var nav = getNavigator();
7983
- var url = _endpointUrl;
7984
- var buffer = _self[_DYN__BUFFER ];
7985
- var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
7986
- var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
7987
- var queued = nav.sendBeacon(url, plainTextBatch);
7988
- if (queued) {
7989
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
7990
- }
7991
- return queued;
7992
- }
7993
- function _beaconSender(payload, oncomplete, sync) {
8410
+ function _onBeaconRetry(payload, onComplete, canSend) {
7994
8411
  var internalPayload = payload;
7995
8412
  var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD ];
7996
- if (isArray(data) && data[_DYN_LENGTH ] > 0) {
7997
- if (!_doBeaconSend(data)) {
7998
- if (!_disableBeaconSplit) {
7999
- var droppedPayload = [];
8000
- for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
8001
- var thePayload = data[lp];
8002
- if (!_doBeaconSend([thePayload])) {
8003
- droppedPayload[_DYN_PUSH ](thePayload);
8004
- }
8005
- }
8006
- if (droppedPayload[_DYN_LENGTH ] > 0) {
8007
- _fallbackSend && _fallbackSend(droppedPayload, true);
8008
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8009
- }
8413
+ if (!_disableBeaconSplit) {
8414
+ var droppedPayload = [];
8415
+ for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
8416
+ var thePayload = data[lp];
8417
+ var arr = [thePayload];
8418
+ var item = _getPayload(arr);
8419
+ if (!canSend(item, onComplete)) {
8420
+ droppedPayload[_DYN_PUSH ](thePayload);
8010
8421
  }
8011
8422
  else {
8012
- _fallbackSend && _fallbackSend(data, true);
8013
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8423
+ _self._onSuccess(arr, arr[_DYN_LENGTH ]);
8014
8424
  }
8015
8425
  }
8016
- }
8017
- }
8018
- function _xhrSender(payload, oncomplete, sync) {
8019
- var internalPayload = payload;
8020
- var thePromise;
8021
- var resolveFunc;
8022
- var rejectFunc;
8023
- var xhr = new XMLHttpRequest();
8024
- var endPointUrl = _endpointUrl;
8025
- try {
8026
- xhr[DisabledPropertyName] = true;
8027
- }
8028
- catch (e) {
8029
- }
8030
- xhr.open("POST", endPointUrl, !sync);
8031
- xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
8032
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
8033
- xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
8034
- }
8035
- arrForEach(objKeys(_headers), function (headerName) {
8036
- xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
8037
- });
8038
- xhr.onreadystatechange = function () {
8039
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8040
- _self._xhrReadyStateChange(xhr, oriPayload, oriPayload[_DYN_LENGTH ]);
8041
- if (xhr.readyState === 4) {
8042
- resolveFunc && resolveFunc(true);
8426
+ if (droppedPayload[_DYN_LENGTH ] > 0) {
8427
+ _fallbackSend && _fallbackSend(droppedPayload, true);
8428
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8043
8429
  }
8044
- };
8045
- xhr.onerror = function (event) {
8046
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
8047
- rejectFunc && rejectFunc(event);
8048
- };
8049
- if (!sync && _enableSendPromise) {
8050
- thePromise = createPromise(function (resolve, reject) {
8051
- resolveFunc = resolve;
8052
- rejectFunc = reject;
8053
- });
8054
8430
  }
8055
- xhr.send(payload[_DYN_DATA ]);
8056
- return thePromise;
8431
+ else {
8432
+ _fallbackSend && _fallbackSend(data, true);
8433
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8434
+ }
8057
8435
  }
8058
8436
  function _fetchKeepAliveSender(payload, isAsync) {
8059
- var onComplete = function (status, headers, response) {
8060
- return _getOnComplete(payload, status, headers, response);
8061
- };
8437
+ var transport = null;
8062
8438
  if (isArray(payload)) {
8063
8439
  var payloadSize = payload[_DYN_LENGTH ];
8064
8440
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
8065
8441
  payloadSize += payload[lp][_DYN_LENGTH ];
8066
8442
  }
8067
- var payloadData = _getPayload(payload);
8068
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
8069
- if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
8070
- _doFetchSender(payloadData, onComplete, true);
8443
+ var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
8444
+ if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
8445
+ transport = 2 ;
8071
8446
  }
8072
8447
  else if (isBeaconsSupported()) {
8073
- _beaconSender(payloadData);
8448
+ transport = 3 ;
8074
8449
  }
8075
8450
  else {
8076
- _fallbackSend && _fallbackSend(payload, true);
8451
+ transport = 1 ;
8077
8452
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
8078
8453
  }
8079
- }
8080
- }
8081
- function _doFetchSender(payload, oncomplete, sync) {
8082
- var _a;
8083
- var endPointUrl = _endpointUrl;
8084
- var internalPayload = payload;
8085
- var batch = internalPayload[_DYN_DATA ];
8086
- var plainTextBatch = new Blob([batch], { type: "application/json" });
8087
- var thePromise;
8088
- var resolveFunc;
8089
- var rejectFunc;
8090
- var requestHeaders = new Headers();
8091
- var batchLength = batch[_DYN_LENGTH ];
8092
- var ignoreResponse = false;
8093
- var responseHandled = false;
8094
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
8095
- requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
8096
- }
8097
- arrForEach(objKeys(_headers), function (headerName) {
8098
- requestHeaders.append(headerName, _headers[headerName]);
8099
- });
8100
- var init = (_a = {
8101
- method: "POST",
8102
- headers: requestHeaders,
8103
- body: plainTextBatch
8104
- },
8105
- _a[DisabledPropertyName] = true
8106
- ,
8107
- _a);
8108
- if (sync) {
8109
- init.keepalive = true;
8110
- ignoreResponse = true;
8111
- _syncFetchPayload += batchLength;
8112
- }
8113
- var request = new Request(endPointUrl, init);
8114
- try {
8115
- request[DisabledPropertyName] = true;
8116
- }
8117
- catch (e) {
8118
- }
8119
- if (!sync && _enableSendPromise) {
8120
- thePromise = createPromise(function (resolve, reject) {
8121
- resolveFunc = resolve;
8122
- rejectFunc = reject;
8123
- });
8124
- }
8125
- try {
8126
- doAwaitResponse(fetch(request), function (result) {
8127
- if (sync) {
8128
- _syncFetchPayload -= batchLength;
8129
- batchLength = 0;
8130
- }
8131
- if (!responseHandled) {
8132
- responseHandled = true;
8133
- if (!result.rejected) {
8134
- var response_1 = result.value;
8135
- if (!response_1.ok) {
8136
- _doOnComplete(oncomplete, 400, {}, response_1.statusText);
8137
- resolveFunc && resolveFunc(false);
8138
- }
8139
- else {
8140
- doAwaitResponse(response_1.text(), function (resp) {
8141
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8142
- _checkResponsStatus(response_1.status, oriPayload, response_1.url, oriPayload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
8143
- resolveFunc && resolveFunc(true);
8144
- });
8145
- }
8146
- }
8147
- else {
8148
- _doOnComplete(oncomplete, 400, {}, result.reason && result.reason.message);
8149
- rejectFunc && rejectFunc(result.reason);
8150
- }
8151
- }
8152
- });
8153
- }
8154
- catch (e) {
8155
- if (!responseHandled) {
8156
- _doOnComplete(oncomplete, 400, {}, dumpObj(e));
8157
- rejectFunc && rejectFunc(e);
8158
- }
8159
- }
8160
- if (ignoreResponse && !responseHandled) {
8161
- responseHandled = true;
8162
- _doOnComplete(oncomplete, 200, {});
8163
- resolveFunc && resolveFunc(true);
8164
- }
8165
- return thePromise;
8166
- }
8167
- function _parseResponse(response) {
8168
- try {
8169
- if (response && response !== "") {
8170
- var result = getJSON().parse(response);
8171
- if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED ] &&
8172
- result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH ]) {
8173
- return result;
8174
- }
8175
- }
8176
- }
8177
- catch (e) {
8178
- _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
8179
- response: response
8180
- });
8454
+ var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([transport], true);
8455
+ return _doSend(inst, payload, isAsync);
8181
8456
  }
8182
8457
  return null;
8183
8458
  }
@@ -8236,41 +8511,6 @@
8236
8511
  || statusCode === 503
8237
8512
  || statusCode === 504;
8238
8513
  }
8239
- function _formatErrorMessageXhr(xhr, message) {
8240
- if (xhr) {
8241
- return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + _getResponseText(xhr) || xhr.response || "";
8242
- }
8243
- return message;
8244
- }
8245
- function _xdrSender(payload, oncomplete, sync) {
8246
- var internalPayload = payload;
8247
- var _window = getWindow();
8248
- var xdr = new XDomainRequest();
8249
- var data = internalPayload[_DYN_DATA ];
8250
- xdr.onload = function () {
8251
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8252
- _self._xdrOnLoad(xdr, oriPayload);
8253
- };
8254
- xdr.onerror = function () {
8255
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
8256
- };
8257
- var hostingProtocol = _window && _window.location && _window.location.protocol || "";
8258
- if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {
8259
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
8260
- "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
8261
- _self._buffer[_DYN_CLEAR ]();
8262
- return;
8263
- }
8264
- var endpointUrl = _endpointUrl.replace(/^(https?:)/, "");
8265
- xdr.open("POST", endpointUrl);
8266
- xdr.send(data);
8267
- }
8268
- function _formatErrorMessageXdr(xdr, message) {
8269
- if (xdr) {
8270
- return "XDomainRequest,Response:" + _getResponseText(xdr) || "";
8271
- }
8272
- return message;
8273
- }
8274
8514
  function _getNotifyMgr() {
8275
8515
  var func = "getNotifyMgr";
8276
8516
  if (_self.core[func]) {
@@ -8331,6 +8571,7 @@
8331
8571
  _disableBeaconSplit = false;
8332
8572
  _xhrSend = null;
8333
8573
  _fallbackSend = null;
8574
+ _sendPostMgr = null;
8334
8575
  objDefine(_self, "_senderConfig", {
8335
8576
  g: function () {
8336
8577
  return objExtend({}, defaultAppInsightsChannelConfig);
@@ -8356,6 +8597,8 @@
8356
8597
 
8357
8598
  var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
8358
8599
  var _DYN_CONNECTION_STRING = "connectionString";
8600
+ var _DYN_ENDPOINT_URL = "endpointUrl";
8601
+ var _DYN_USER_OVERRIDE_ENDPOI0 = "userOverrideEndpointUrl";
8359
8602
 
8360
8603
  var defaultConfigValues = {
8361
8604
  diagnosticLogInterval: cfgDfValidate(_chkDiagLevel, 10000)
@@ -8396,9 +8639,10 @@
8396
8639
  if (_config[_DYN_CONNECTION_STRING ]) {
8397
8640
  var cs = parseConnectionString(_config[_DYN_CONNECTION_STRING ]);
8398
8641
  var ingest = cs.ingestionendpoint;
8399
- _config.endpointUrl = ingest ? (ingest + DEFAULT_BREEZE_PATH) : _config.endpointUrl;
8642
+ _config[_DYN_ENDPOINT_URL ] = _config[_DYN_USER_OVERRIDE_ENDPOI0 ] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 ] : (ingest + DEFAULT_BREEZE_PATH);
8400
8643
  _config[_DYN_INSTRUMENTATION_KEY ] = cs.instrumentationkey || _config[_DYN_INSTRUMENTATION_KEY ];
8401
8644
  }
8645
+ _config[_DYN_ENDPOINT_URL ] = _config[_DYN_USER_OVERRIDE_ENDPOI0 ] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 ] : _config[_DYN_ENDPOINT_URL ];
8402
8646
  }));
8403
8647
  core.initialize(_config, [new Sender()]);
8404
8648
  }