@microsoft/applicationinsights-web-basic 3.1.1-nightly3.2402-20 → 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 (47) hide show
  1. package/browser/es5/{aib.3.1.1-nightly3.2402-20.cjs.js → aib.3.1.1-nightly3.2403-02.cjs.js} +617 -348
  2. package/browser/es5/aib.3.1.1-nightly3.2403-02.cjs.js.map +1 -0
  3. package/browser/es5/aib.3.1.1-nightly3.2403-02.cjs.min.js +6 -0
  4. package/browser/es5/aib.3.1.1-nightly3.2403-02.cjs.min.js.map +1 -0
  5. package/browser/es5/{aib.3.1.1-nightly3.2402-20.gbl.js → aib.3.1.1-nightly3.2403-02.gbl.js} +619 -350
  6. package/browser/es5/aib.3.1.1-nightly3.2403-02.gbl.js.map +1 -0
  7. package/browser/es5/aib.3.1.1-nightly3.2403-02.gbl.min.js +6 -0
  8. package/browser/es5/aib.3.1.1-nightly3.2403-02.gbl.min.js.map +1 -0
  9. package/browser/es5/aib.3.1.1-nightly3.2403-02.integrity.json +66 -0
  10. package/browser/es5/{aib.3.1.1-nightly3.2402-20.js → aib.3.1.1-nightly3.2403-02.js} +619 -350
  11. package/browser/es5/aib.3.1.1-nightly3.2403-02.js.map +1 -0
  12. package/browser/es5/aib.3.1.1-nightly3.2403-02.min.js +6 -0
  13. package/browser/es5/aib.3.1.1-nightly3.2403-02.min.js.map +1 -0
  14. package/browser/es5/aib.3.cjs.js +616 -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 +618 -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 +618 -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 +616 -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 +44 -1
  38. package/browser/es5/aib.3.1.1-nightly3.2402-20.cjs.js.map +0 -1
  39. package/browser/es5/aib.3.1.1-nightly3.2402-20.cjs.min.js +0 -6
  40. package/browser/es5/aib.3.1.1-nightly3.2402-20.cjs.min.js.map +0 -1
  41. package/browser/es5/aib.3.1.1-nightly3.2402-20.gbl.js.map +0 -1
  42. package/browser/es5/aib.3.1.1-nightly3.2402-20.gbl.min.js +0 -6
  43. package/browser/es5/aib.3.1.1-nightly3.2402-20.gbl.min.js.map +0 -1
  44. package/browser/es5/aib.3.1.1-nightly3.2402-20.integrity.json +0 -66
  45. package/browser/es5/aib.3.1.1-nightly3.2402-20.js.map +0 -1
  46. package/browser/es5/aib.3.1.1-nightly3.2402-20.min.js +0 -6
  47. package/browser/es5/aib.3.1.1-nightly3.2402-20.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript Web SDK - Basic, 3.1.1-nightly3.2402-20
2
+ * Application Insights JavaScript Web SDK - Basic, 3.1.1-nightly3.2403-02
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";
@@ -1723,6 +1723,9 @@
1723
1723
  var STR_EVENTS_DISCARDED = "eventsDiscarded";
1724
1724
  var STR_EVENTS_SEND_REQUEST = "eventsSendRequest";
1725
1725
  var STR_PERF_EVENT = "perfEvent";
1726
+ var STR_OFFLINE_STORE = "offlineEventsStored";
1727
+ var STR_OFFLINE_SENT = "offlineBatchSent";
1728
+ var STR_OFFLINE_DROP = "offlineBatchDrop";
1726
1729
  var STR_GET_PERF_MGR = "getPerfMgr";
1727
1730
  var STR_DOMAIN = "domain";
1728
1731
  var STR_PATH = "path";
@@ -1760,7 +1763,7 @@
1760
1763
  if (isError(object)) {
1761
1764
  return object[_DYN_NAME$2 ];
1762
1765
  }
1763
- return STR_EMPTY;
1766
+ return STR_EMPTY$1;
1764
1767
  }
1765
1768
  function setValue(target, field, value, valChk, srcChk) {
1766
1769
  var theValue = value;
@@ -1963,7 +1966,7 @@
1963
1966
  var nav = getNavigator();
1964
1967
  if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
1965
1968
  _navUserAgentCheck = nav[_DYN_USER_AGENT ];
1966
- var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1969
+ var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1967
1970
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1968
1971
  }
1969
1972
  return _isTrident;
@@ -1972,9 +1975,9 @@
1972
1975
  if (userAgentStr === void 0) { userAgentStr = null; }
1973
1976
  if (!userAgentStr) {
1974
1977
  var navigator_1 = getNavigator() || {};
1975
- 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;
1976
1979
  }
1977
- var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1980
+ var ua = (userAgentStr || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1978
1981
  if (strContains(ua, strMsie)) {
1979
1982
  var doc = getDocument() || {};
1980
1983
  return Math.max(parseInt(ua[_DYN_SPLIT$1 ](strMsie)[1]), (doc[strDocumentMode] || 0));
@@ -2083,7 +2086,7 @@
2083
2086
  var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
2084
2087
  var number = random32() >>> 0;
2085
2088
  var chars = 0;
2086
- var result = STR_EMPTY;
2089
+ var result = STR_EMPTY$1;
2087
2090
  while (result[_DYN_LENGTH$2 ] < maxLength) {
2088
2091
  chars++;
2089
2092
  result += base64chars.charAt(number & 0x3F);
@@ -2121,11 +2124,11 @@
2121
2124
  }
2122
2125
  function createUniqueNamespace(name, includeVersion) {
2123
2126
  if (includeVersion === void 0) { includeVersion = false; }
2124
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
2127
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
2125
2128
  }
2126
2129
  function createElmNodeData(name) {
2127
2130
  var data = {
2128
- id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
2131
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
2129
2132
  accept: function (target) {
2130
2133
  return _canAcceptData(target);
2131
2134
  },
@@ -2878,9 +2881,9 @@
2878
2881
  _a$4);
2879
2882
  function _sanitizeDiagnosticText(text) {
2880
2883
  if (text) {
2881
- return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
2884
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
2882
2885
  }
2883
- return STR_EMPTY;
2886
+ return STR_EMPTY$1;
2884
2887
  }
2885
2888
  function _logToConsole(func, message) {
2886
2889
  var theConsole = getConsole();
@@ -2902,12 +2905,12 @@
2902
2905
  _self[_DYN_MESSAGE$1 ] =
2903
2906
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
2904
2907
  msgId;
2905
- var strProps = STR_EMPTY;
2908
+ var strProps = STR_EMPTY$1;
2906
2909
  if (hasJSON()) {
2907
2910
  strProps = getJSON().stringify(properties);
2908
2911
  }
2909
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
2910
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
2912
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
2913
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
2911
2914
  _self[_DYN_MESSAGE$1 ] += diagnosticText;
2912
2915
  }
2913
2916
  _InternalLogMessage.dataType = "MessageData";
@@ -3146,7 +3149,7 @@
3146
3149
  var result = false;
3147
3150
  if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
3148
3151
  var values = {};
3149
- var theValue = strTrim(value || STR_EMPTY);
3152
+ var theValue = strTrim(value || STR_EMPTY$1);
3150
3153
  var idx = strIndexOf(theValue, ";");
3151
3154
  if (idx !== -1) {
3152
3155
  theValue = strTrim(strLeft(value, idx));
@@ -3161,11 +3164,11 @@
3161
3164
  if (expireMs > 0) {
3162
3165
  var expiry = new Date();
3163
3166
  expiry.setTime(expireMs);
3164
- 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);
3165
3168
  }
3166
3169
  }
3167
3170
  if (!_isIE) {
3168
- setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
3171
+ setValue(values, "max-age", STR_EMPTY$1 + maxAgeSec, null, isUndefined);
3169
3172
  }
3170
3173
  }
3171
3174
  var location_1 = getLocation();
@@ -3185,7 +3188,7 @@
3185
3188
  return result;
3186
3189
  },
3187
3190
  get: function (name) {
3188
- var value = STR_EMPTY;
3191
+ var value = STR_EMPTY$1;
3189
3192
  if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
3190
3193
  value = _getCookieFn(name);
3191
3194
  }
@@ -3209,7 +3212,7 @@
3209
3212
  if (!isIE()) {
3210
3213
  values["max-age"] = "0";
3211
3214
  }
3212
- _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
3215
+ _delCookieFn(name, _formatCookieValue(STR_EMPTY$1, values));
3213
3216
  result = true;
3214
3217
  }
3215
3218
  return result;
@@ -3242,7 +3245,7 @@
3242
3245
  if (theValue && theValue[_DYN_LENGTH$2 ]) {
3243
3246
  var parts = strTrim(theValue)[_DYN_SPLIT$1 ](";");
3244
3247
  arrForEach(parts, function (thePart) {
3245
- thePart = strTrim(thePart || STR_EMPTY);
3248
+ thePart = strTrim(thePart || STR_EMPTY$1);
3246
3249
  if (thePart) {
3247
3250
  var idx = strIndexOf(thePart, "=");
3248
3251
  if (idx === -1) {
@@ -3263,22 +3266,22 @@
3263
3266
  return null;
3264
3267
  }
3265
3268
  function _formatCookieValue(value, values) {
3266
- var cookieValue = value || STR_EMPTY;
3269
+ var cookieValue = value || STR_EMPTY$1;
3267
3270
  objForEachKey(values, function (name, theValue) {
3268
- cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY);
3271
+ cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY$1);
3269
3272
  });
3270
3273
  return cookieValue;
3271
3274
  }
3272
3275
  function _getCookieValue(name) {
3273
- var cookieValue = STR_EMPTY;
3276
+ var cookieValue = STR_EMPTY$1;
3274
3277
  !_doc && _getDoc();
3275
3278
  if (_doc.v) {
3276
- var theCookie = _doc.v[strCookie] || STR_EMPTY;
3279
+ var theCookie = _doc.v[strCookie] || STR_EMPTY$1;
3277
3280
  if (_parsedCookieValue !== theCookie) {
3278
3281
  _cookieCache = _extractParts(theCookie);
3279
3282
  _parsedCookieValue = theCookie;
3280
3283
  }
3281
- cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);
3284
+ cookieValue = strTrim(_cookieCache[name] || STR_EMPTY$1);
3282
3285
  }
3283
3286
  return cookieValue;
3284
3287
  }
@@ -3385,6 +3388,28 @@
3385
3388
  }
3386
3389
  }
3387
3390
  };
3391
+ _self[STR_OFFLINE_STORE ] = function (events) {
3392
+ if (events && events[_DYN_LENGTH$2 ]) {
3393
+ _runListeners(_listeners, STR_OFFLINE_STORE, true, function (listener) {
3394
+ listener[STR_OFFLINE_STORE ](events);
3395
+ });
3396
+ }
3397
+ };
3398
+ _self[STR_OFFLINE_SENT ] = function (batch) {
3399
+ if (batch && batch.data) {
3400
+ _runListeners(_listeners, STR_OFFLINE_SENT, true, function (listener) {
3401
+ listener[STR_OFFLINE_SENT ](batch);
3402
+ });
3403
+ }
3404
+ };
3405
+ _self[STR_OFFLINE_DROP ] = function (cnt, reason) {
3406
+ if (cnt > 0) {
3407
+ var rn_1 = reason || 0;
3408
+ _runListeners(_listeners, STR_OFFLINE_DROP, true, function (listener) {
3409
+ listener[STR_OFFLINE_DROP ](cnt, rn_1);
3410
+ });
3411
+ }
3412
+ };
3388
3413
  _self[_DYN_UNLOAD ] = function (isAsync) {
3389
3414
  var _finishUnload = function () {
3390
3415
  unloadHandler && unloadHandler.rm();
@@ -3608,7 +3633,7 @@
3608
3633
  }
3609
3634
  arrForEach(initPlugins, function (thePlugin) {
3610
3635
  var core = processContext[STR_CORE ]();
3611
- thePlugin[_DYN_INITIALIZE ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
3636
+ thePlugin[_DYN_INITIALIZE$1 ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
3612
3637
  pluginState = _getPluginState(thePlugin);
3613
3638
  if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {
3614
3639
  pluginState[STR_CORE] = core;
@@ -3952,7 +3977,7 @@
3952
3977
  doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
3953
3978
  hasRunContext[chainId] = true;
3954
3979
  try {
3955
- var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
3980
+ var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
3956
3981
  if (nextId) {
3957
3982
  hasRunContext[nextId] = false;
3958
3983
  }
@@ -4097,7 +4122,7 @@
4097
4122
  var _hookContainer;
4098
4123
  _initDefaults();
4099
4124
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
4100
- _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
4125
+ _self[_DYN_INITIALIZE$1 ] = function (config, core, extensions, pluginChain) {
4101
4126
  _setDefaults(config, core, pluginChain);
4102
4127
  _isinitialized = true;
4103
4128
  };
@@ -4316,7 +4341,7 @@
4316
4341
  var channels = [];
4317
4342
  var extPriorities = {};
4318
4343
  arrForEach(allExtensions, function (ext) {
4319
- if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE ])) {
4344
+ if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE$1 ])) {
4320
4345
  throwError(strValidationError);
4321
4346
  }
4322
4347
  var extPriority = ext[STR_PRIORITY ];
@@ -4441,7 +4466,7 @@
4441
4466
  return [_extensions];
4442
4467
  };
4443
4468
  _self[_DYN_IS_INITIALIZED ] = function () { return _isInitialized; };
4444
- _self[_DYN_INITIALIZE ] = function (config, extensions, logger, notificationManager) {
4469
+ _self[_DYN_INITIALIZE$1 ] = function (config, extensions, logger, notificationManager) {
4445
4470
  if (_isUnloading) {
4446
4471
  throwError(strSdkUnloadingError);
4447
4472
  }
@@ -4804,7 +4829,7 @@
4804
4829
  }
4805
4830
  _pluginVersionString = _pluginVersionStringArr.join(";");
4806
4831
  }
4807
- return _pluginVersionString || STR_EMPTY;
4832
+ return _pluginVersionString || STR_EMPTY$1;
4808
4833
  }
4809
4834
  });
4810
4835
  objDefine(_self, "logger", {
@@ -5117,16 +5142,16 @@
5117
5142
  var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
5118
5143
  function _normalizeNamespace(name) {
5119
5144
  if (name && name[_DYN_REPLACE ]) {
5120
- return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
5145
+ return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY$1);
5121
5146
  }
5122
5147
  return name;
5123
5148
  }
5124
5149
  function _getEvtNamespace(eventName, evtNamespace) {
5125
5150
  var _a;
5126
5151
  if (evtNamespace) {
5127
- var theNamespace_1 = STR_EMPTY;
5152
+ var theNamespace_1 = STR_EMPTY$1;
5128
5153
  if (isArray(evtNamespace)) {
5129
- theNamespace_1 = STR_EMPTY;
5154
+ theNamespace_1 = STR_EMPTY$1;
5130
5155
  arrForEach(evtNamespace, function (name) {
5131
5156
  name = _normalizeNamespace(name);
5132
5157
  if (name) {
@@ -5144,13 +5169,13 @@
5144
5169
  if (theNamespace_1[0] !== ".") {
5145
5170
  theNamespace_1 = "." + theNamespace_1;
5146
5171
  }
5147
- eventName = (eventName || STR_EMPTY) + theNamespace_1;
5172
+ eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
5148
5173
  }
5149
5174
  }
5150
- var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
5175
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
5151
5176
  return _a = {},
5152
5177
  _a[_DYN_TYPE ] = parsedEvent[1],
5153
- _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("."),
5154
5179
  _a;
5155
5180
  }
5156
5181
  function _getRegisteredEvents(target, evtName, addDefault) {
@@ -5299,15 +5324,21 @@
5299
5324
  var _DYN_SPLIT = "split";
5300
5325
  var _DYN_LENGTH$1 = "length";
5301
5326
  var _DYN_TO_LOWER_CASE = "toLowerCase";
5327
+ var _DYN_LOCATION = "location";
5302
5328
  var _DYN_INGESTIONENDPOINT = "ingestionendpoint";
5303
5329
  var _DYN_TO_STRING$1 = "toString";
5304
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";
5305
5336
  var _DYN_REMOVE_ITEM = "removeItem";
5306
5337
  var _DYN_NAME$1 = "name";
5307
- var _DYN_MESSAGE = "message";
5308
5338
  var _DYN_COUNT$1 = "count";
5309
5339
  var _DYN_STRINGIFY$1 = "stringify";
5310
5340
  var _DYN_PATHNAME = "pathname";
5341
+ var _DYN_ITEMS_RECEIVED$1 = "itemsReceived";
5311
5342
  var _DYN_EXCEPTIONS = "exceptions";
5312
5343
  var _DYN_PARSED_STACK = "parsedStack";
5313
5344
  var _DYN_PROPERTIES = "properties";
@@ -5529,6 +5560,54 @@
5529
5560
  data: data
5530
5561
  };
5531
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
+ }
5532
5611
 
5533
5612
  var StorageType = createEnumStyle({
5534
5613
  LocalStorage: 0 ,
@@ -5617,7 +5696,7 @@
5617
5696
  }, {});
5618
5697
  if (objKeys(result)[_DYN_LENGTH$1 ] > 0) {
5619
5698
  if (result.endpointsuffix) {
5620
- var locationPrefix = result.location ? result.location + "." : "";
5699
+ var locationPrefix = result[_DYN_LOCATION ] ? result[_DYN_LOCATION ] + "." : "";
5621
5700
  result[_DYN_INGESTIONENDPOINT ] = result[_DYN_INGESTIONENDPOINT ] || ("https://" + locationPrefix + "dc." + result.endpointsuffix);
5622
5701
  }
5623
5702
  result[_DYN_INGESTIONENDPOINT ] = result[_DYN_INGESTIONENDPOINT ] || DEFAULT_BREEZE_ENDPOINT;
@@ -5636,7 +5715,7 @@
5636
5715
  _self.sampleRate = 100.0;
5637
5716
  _self.tags = {};
5638
5717
  _self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
5639
- _self.data = data;
5718
+ _self[_DYN_DATA$1 ] = data;
5640
5719
  _self.time = toISOString(new Date());
5641
5720
  _self.aiDataContract = {
5642
5721
  time: 1 ,
@@ -5793,8 +5872,8 @@
5793
5872
  else if (getWindow() && getWindow()["opera"] && errorObj[strMessage]) {
5794
5873
  details = _getOperaStack(errorObj[_DYN_MESSAGE ]);
5795
5874
  }
5796
- else if (errorObj["reason"] && errorObj.reason[strStack]) {
5797
- details = _convertStackObj(errorObj.reason[strStack]);
5875
+ else if (errorObj["reason"] && errorObj[_DYN_REASON ][strStack]) {
5876
+ details = _convertStackObj(errorObj[_DYN_REASON ][strStack]);
5798
5877
  }
5799
5878
  else if (isString(errorObj)) {
5800
5879
  details = _convertStackObj(errorObj);
@@ -6265,7 +6344,7 @@
6265
6344
  _self.resultCode = resultCode + "";
6266
6345
  _self.type = dataSanitizeString(logger, requestAPI);
6267
6346
  var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);
6268
- _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data;
6347
+ _self[_DYN_DATA$1 ] = dataSanitizeUrl(logger, commandName) || dependencyFields[_DYN_DATA$1 ];
6269
6348
  _self.target = dataSanitizeString(logger, dependencyFields.target);
6270
6349
  if (correlationContext) {
6271
6350
  _self.target = "".concat(_self.target, " | ").concat(correlationContext);
@@ -6439,6 +6518,360 @@
6439
6518
 
6440
6519
  var CtxTagKeys = new ContextTagKeys();
6441
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
+
6442
6875
  function _disableEvents(target, evtNamespace) {
6443
6876
  eventOff(target, null, null, evtNamespace);
6444
6877
  }
@@ -6577,43 +7010,42 @@
6577
7010
  var _DYN_PUSH = "push";
6578
7011
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
6579
7012
  var _DYN_CLEAR = "clear";
6580
- var _DYN_BATCH_PAYLOADS = "batchPayloads";
6581
7013
  var _DYN_CREATE_NEW = "createNew";
6582
7014
  var _DYN_MARK_AS_SENT = "markAsSent";
6583
7015
  var _DYN_CLEAR_SENT = "clearSent";
6584
7016
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
6585
7017
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
6586
7018
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
6587
- var _DYN_CONCAT = "concat";
6588
7019
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
6589
- var _DYN_SEND_POST = "sendPOST";
6590
7020
  var _DYN_TRIGGER_SEND = "triggerSend";
6591
7021
  var _DYN_DIAG_LOG = "diagLog";
7022
+ var _DYN_INITIALIZE = "initialize";
6592
7023
  var _DYN__SENDER = "_sender";
6593
7024
  var _DYN_CUSTOM_HEADERS = "customHeaders";
6594
7025
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
6595
7026
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
6596
7027
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
6597
7028
  var _DYN_ALWAYS_USE_XHR_OVERR4 = "alwaysUseXhrOverride";
7029
+ var _DYN_DISABLE_XHR = "disableXhr";
6598
7030
  var _DYN_ENABLE_SESSION_STORA5 = "enableSessionStorageBuffer";
6599
7031
  var _DYN__BUFFER = "_buffer";
6600
7032
  var _DYN_ONUNLOAD_DISABLE_FET6 = "onunloadDisableFetch";
6601
7033
  var _DYN_DISABLE_SEND_BEACON_7 = "disableSendBeaconSplit";
6602
7034
  var _DYN_INSTRUMENTATION_KEY$1 = "instrumentationKey";
7035
+ var _DYN_ENABLE_SEND_PROMISE = "enableSendPromise";
7036
+ var _DYN_GET_XHR_INST = "getXhrInst";
6603
7037
  var _DYN_UNLOAD_TRANSPORTS = "unloadTransports";
6604
7038
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
6605
7039
  var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
6606
7040
  var _DYN_SERIALIZE = "serialize";
6607
- var _DYN__XHR_READY_STATE_CHA8 = "_xhrReadyStateChange";
6608
7041
  var _DYN__ON_ERROR = "_onError";
6609
7042
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
6610
7043
  var _DYN__ON_SUCCESS = "_onSuccess";
6611
7044
  var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
6612
7045
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
7046
+ var _DYN_ORI_PAYLOAD = "oriPayload";
6613
7047
  var _DYN_BASE_TYPE = "baseType";
6614
7048
  var _DYN_SAMPLE_RATE = "sampleRate";
6615
- var _DYN_ORI_PAYLOAD = "oriPayload";
6616
- var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
6617
7049
  var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
6618
7050
  var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
6619
7051
  var _DYN_GET_HASH_CODE_SCORE = "getHashCodeScore";
@@ -6727,7 +7159,7 @@
6727
7159
  }
6728
7160
  }
6729
7161
  var EnvelopeCreator = {
6730
- Version: '3.1.1-nightly3.2402-20'
7162
+ Version: '3.1.1-nightly3.2403-02'
6731
7163
  };
6732
7164
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
6733
7165
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -6918,7 +7350,7 @@
6918
7350
  _self.getItems = function () {
6919
7351
  return _buffer.slice(0);
6920
7352
  };
6921
- _self[_DYN_BATCH_PAYLOADS ] = function (payload) {
7353
+ _self.batchPayloads = function (payload) {
6922
7354
  if (payload && payload[_DYN_LENGTH ] > 0) {
6923
7355
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
6924
7356
  payload.join("\n") :
@@ -6968,7 +7400,7 @@
6968
7400
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
6969
7401
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
6970
7402
  var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
6971
- var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
7403
+ var buffer = _self._set(bufferItems.concat(notDeliveredItems));
6972
7404
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
6973
7405
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
6974
7406
  }
@@ -6995,7 +7427,7 @@
6995
7427
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
6996
7428
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
6997
7429
  if (sentElements instanceof Array && payload instanceof Array) {
6998
- sentElements = sentElements[_DYN_CONCAT ](payload);
7430
+ sentElements = sentElements.concat(payload);
6999
7431
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
7000
7432
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
7001
7433
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -7228,7 +7660,7 @@
7228
7660
  return 0;
7229
7661
  }
7230
7662
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
7231
- input = input[_DYN_CONCAT ](input);
7663
+ input = input.concat(input);
7232
7664
  }
7233
7665
  var hash = 5381;
7234
7666
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -7308,18 +7740,7 @@
7308
7740
  return null;
7309
7741
  }
7310
7742
  function isOverrideFn(httpXHROverride) {
7311
- return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
7312
- }
7313
- function _prependTransports(theTransports, newTransports) {
7314
- if (newTransports) {
7315
- if (isNumber(newTransports)) {
7316
- theTransports = [newTransports][_DYN_CONCAT ](theTransports);
7317
- }
7318
- else if (isArray(newTransports)) {
7319
- theTransports = newTransports[_DYN_CONCAT ](theTransports);
7320
- }
7321
- }
7322
- return theTransports;
7743
+ return httpXHROverride && httpXHROverride.sendPOST;
7323
7744
  }
7324
7745
  var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7325
7746
  endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)
@@ -7332,7 +7753,7 @@
7332
7753
  _a.isRetryDisabled = cfgDfBoolean(),
7333
7754
  _a[_DYN_IS_BEACON_API_DISABL3 ] = cfgDfBoolean(true),
7334
7755
  _a[_DYN_DISABLE_SEND_BEACON_7 ] = cfgDfBoolean(true),
7335
- _a.disableXhr = cfgDfBoolean(),
7756
+ _a[_DYN_DISABLE_XHR ] = cfgDfBoolean(),
7336
7757
  _a[_DYN_ONUNLOAD_DISABLE_FET6 ] = cfgDfBoolean(),
7337
7758
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = cfgDfBoolean(),
7338
7759
  _a[_DYN_INSTRUMENTATION_KEY$1 ] = UNDEFINED_VALUE,
@@ -7397,6 +7818,7 @@
7397
7818
  var _xhrSend;
7398
7819
  var _fallbackSend;
7399
7820
  var _disableBeaconSplit;
7821
+ var _sendPostMgr;
7400
7822
  dynamicProto(Sender, _this, function (_self, _base) {
7401
7823
  _initDefaults();
7402
7824
  _self.pause = function () {
@@ -7441,11 +7863,11 @@
7441
7863
  _self.addHeader = function (name, value) {
7442
7864
  _headers[name] = value;
7443
7865
  };
7444
- _self.initialize = function (config, core, extensions, pluginChain) {
7866
+ _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
7445
7867
  if (_self.isInitialized()) {
7446
7868
  _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 28 , "Sender is already initialized");
7447
7869
  }
7448
- _base.initialize(config, core, extensions, pluginChain);
7870
+ _base[_DYN_INITIALIZE ](config, core, extensions, pluginChain);
7449
7871
  var identifier = _self.identifier;
7450
7872
  _serializer = new Serializer(core.logger);
7451
7873
  _consecutiveErrors = 0;
@@ -7480,7 +7902,7 @@
7480
7902
  _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false && isBeaconsSupported();
7481
7903
  _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false && isBeaconsSupported();
7482
7904
  _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 ];
7483
- _disableXhr = !!senderConfig.disableXhr;
7905
+ _disableXhr = !!senderConfig[_DYN_DISABLE_XHR ];
7484
7906
  var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE ];
7485
7907
  var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 ] &&
7486
7908
  (!!bufferOverride || utlCanUseSessionStorage());
@@ -7522,13 +7944,21 @@
7522
7944
  else {
7523
7945
  _customHeaders = null;
7524
7946
  }
7525
- _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
+ }
7526
7956
  var customInterface = senderConfig.httpXHROverride;
7527
7957
  var httpInterface = null;
7528
7958
  var syncInterface = null;
7529
- var theTransports = _prependTransports([3 , 1 , 2 ], senderConfig.transports);
7530
- httpInterface = _getSenderInterface(theTransports, false);
7531
- 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();
7532
7962
  _xhrSend = function (payload, isAsync) {
7533
7963
  return _doSend(xhrInterface, payload, isAsync);
7534
7964
  };
@@ -7542,11 +7972,11 @@
7542
7972
  if (_fetchKeepAlive) {
7543
7973
  _syncUnloadSender = _fetchKeepAliveSender;
7544
7974
  }
7545
- var syncTransports = _prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
7975
+ var syncTransports = prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
7546
7976
  if (!_fetchKeepAlive) {
7547
7977
  syncTransports = syncTransports.filter(function (transport) { return transport !== 2 ; });
7548
7978
  }
7549
- syncInterface = _getSenderInterface(syncTransports, true);
7979
+ syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](syncTransports, true);
7550
7980
  syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);
7551
7981
  if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS ] || !_syncUnloadSender) && syncInterface) {
7552
7982
  _syncUnloadSender = function (payload, isAsync) {
@@ -7588,10 +8018,8 @@
7588
8018
  _self.isCompletelyIdle = function () {
7589
8019
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
7590
8020
  };
7591
- _self[_DYN__XHR_READY_STATE_CHA8 ] = function (xhr, payload, countOfItemsInPayload) {
7592
- if (xhr.readyState === 4) {
7593
- _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
7594
- }
8021
+ _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
8022
+ return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
7595
8023
  };
7596
8024
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
7597
8025
  if (async === void 0) { async = true; }
@@ -7667,7 +8095,7 @@
7667
8095
  _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
7668
8096
  }
7669
8097
  if (failed[_DYN_LENGTH ] > 0) {
7670
- _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(" ")));
7671
8099
  }
7672
8100
  if (retry[_DYN_LENGTH ] > 0) {
7673
8101
  _resendPayload(retry);
@@ -7680,22 +8108,89 @@
7680
8108
  _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
7681
8109
  };
7682
8110
  _self._xdrOnLoad = function (xdr, payload) {
8111
+ return _xdrOnLoad(xdr, payload);
8112
+ };
8113
+ function _xdrOnLoad(xdr, payload) {
7683
8114
  var responseText = _getResponseText(xdr);
7684
8115
  if (xdr && (responseText + "" === "200" || responseText === "")) {
7685
8116
  _consecutiveErrors = 0;
7686
8117
  _self[_DYN__ON_SUCCESS ](payload, 0);
7687
8118
  }
7688
8119
  else {
7689
- var results = _parseResponse(responseText);
8120
+ var results = parseResponse(responseText);
7690
8121
  if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
7691
8122
  && !_isRetryDisabled) {
7692
8123
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
7693
8124
  }
7694
8125
  else {
7695
- _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr));
8126
+ _self[_DYN__ON_ERROR ](payload, formatErrorMessageXdr(xdr));
7696
8127
  }
7697
8128
  }
7698
- };
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
+ }
7699
8194
  function _validate(telemetryItem, diagLogger) {
7700
8195
  if (_disableTelemetry) {
7701
8196
  return false;
@@ -7791,36 +8286,6 @@
7791
8286
  function _isSampledIn(envelope) {
7792
8287
  return _self._sample.isSampledIn(envelope);
7793
8288
  }
7794
- function _getSenderInterface(transports, syncSupport) {
7795
- var _a;
7796
- var transportType = null;
7797
- var sendPostFunc = null;
7798
- var lp = 0;
7799
- while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
7800
- transportType = transports[lp];
7801
- if (!_disableXhr && transportType === 1 ) {
7802
- if (useXDomainRequest()) {
7803
- sendPostFunc = _xdrSender;
7804
- }
7805
- else if (isXhrSupported()) {
7806
- sendPostFunc = _xhrSender;
7807
- }
7808
- }
7809
- else if (transportType === 2 && isFetchSupported(syncSupport)) {
7810
- sendPostFunc = _fetchSender;
7811
- }
7812
- else if (transportType === 3 && (syncSupport ? _beaconOnUnloadSupported : _beaconNormalSupported)) {
7813
- sendPostFunc = _beaconSender;
7814
- }
7815
- lp++;
7816
- }
7817
- if (sendPostFunc) {
7818
- return _a = {},
7819
- _a[_DYN_SEND_POST ] = sendPostFunc,
7820
- _a;
7821
- }
7822
- return null;
7823
- }
7824
8289
  function _getOnComplete(payload, status, headers, response) {
7825
8290
  if (status === 200 && payload) {
7826
8291
  _self._onSuccess(payload, payload[_DYN_LENGTH ]);
@@ -7835,7 +8300,7 @@
7835
8300
  return _getOnComplete(payload, status, headers, response);
7836
8301
  };
7837
8302
  var payloadData = _getPayload(payload);
7838
- var sendPostFunc = sendInterface && sendInterface[_DYN_SEND_POST ];
8303
+ var sendPostFunc = sendInterface && sendInterface.sendPOST;
7839
8304
  if (sendPostFunc && payloadData) {
7840
8305
  if (markAsSent) {
7841
8306
  _self._buffer[_DYN_MARK_AS_SENT ](payload);
@@ -7847,7 +8312,7 @@
7847
8312
  function _getPayload(payload) {
7848
8313
  var _a;
7849
8314
  if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
7850
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
8315
+ var batch = _self[_DYN__BUFFER ].batchPayloads(payload);
7851
8316
  var payloadData = (_a = {},
7852
8317
  _a[_DYN_DATA ] = batch,
7853
8318
  _a.urlString = _endpointUrl,
@@ -7860,9 +8325,6 @@
7860
8325
  }
7861
8326
  return null;
7862
8327
  }
7863
- function _fetchSender(payload, oncomplete, sync) {
7864
- return _doFetchSender(payload, oncomplete, false);
7865
- }
7866
8328
  function _checkMaxSize(incomingPayload) {
7867
8329
  var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
7868
8330
  if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
@@ -7876,7 +8338,7 @@
7876
8338
  function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {
7877
8339
  var response = null;
7878
8340
  if (!_self._appId) {
7879
- response = _parseResponse(res);
8341
+ response = parseResponse(res);
7880
8342
  if (response && response.appId) {
7881
8343
  _self._appId = response.appId;
7882
8344
  }
@@ -7908,7 +8370,7 @@
7908
8370
  _checkAndUpdateEndPointUrl(responseUrl);
7909
8371
  if (status === 206) {
7910
8372
  if (!response) {
7911
- response = _parseResponse(res);
8373
+ response = parseResponse(res);
7912
8374
  }
7913
8375
  if (response && !_isRetryDisabled) {
7914
8376
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, response);
@@ -7936,223 +8398,61 @@
7936
8398
  }
7937
8399
  return false;
7938
8400
  }
7939
- function _doOnComplete(oncomplete, status, headers, response) {
7940
- try {
7941
- oncomplete(status, headers, response);
7942
- }
7943
- catch (e) {
7944
- }
7945
- }
7946
8401
  function _doUnloadSend(payload, isAsync) {
7947
8402
  if (_syncUnloadSender) {
7948
8403
  _syncUnloadSender(payload, false);
7949
8404
  }
7950
8405
  else {
7951
- var payloadData = _getPayload(payload);
7952
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
7953
- _beaconSender(payloadData);
7954
- }
7955
- }
7956
- function _doBeaconSend(payload, oncomplete) {
7957
- var nav = getNavigator();
7958
- var url = _endpointUrl;
7959
- var buffer = _self[_DYN__BUFFER ];
7960
- var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
7961
- var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
7962
- var queued = nav.sendBeacon(url, plainTextBatch);
7963
- if (queued) {
7964
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
8406
+ var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([3 ], true);
8407
+ return _doSend(beaconInst, payload, isAsync);
7965
8408
  }
7966
- return queued;
7967
8409
  }
7968
- function _beaconSender(payload, oncomplete, sync) {
8410
+ function _onBeaconRetry(payload, onComplete, canSend) {
7969
8411
  var internalPayload = payload;
7970
8412
  var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD ];
7971
- if (isArray(data) && data[_DYN_LENGTH ] > 0) {
7972
- if (!_doBeaconSend(data)) {
7973
- if (!_disableBeaconSplit) {
7974
- var droppedPayload = [];
7975
- for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
7976
- var thePayload = data[lp];
7977
- if (!_doBeaconSend([thePayload])) {
7978
- droppedPayload[_DYN_PUSH ](thePayload);
7979
- }
7980
- }
7981
- if (droppedPayload[_DYN_LENGTH ] > 0) {
7982
- _fallbackSend && _fallbackSend(droppedPayload, true);
7983
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
7984
- }
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);
7985
8421
  }
7986
8422
  else {
7987
- _fallbackSend && _fallbackSend(data, true);
7988
- _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 ]);
7989
8424
  }
7990
8425
  }
7991
- }
7992
- }
7993
- function _xhrSender(payload, oncomplete, sync) {
7994
- var internalPayload = payload;
7995
- var thePromise;
7996
- var resolveFunc;
7997
- var rejectFunc;
7998
- var xhr = new XMLHttpRequest();
7999
- var endPointUrl = _endpointUrl;
8000
- try {
8001
- xhr[DisabledPropertyName] = true;
8002
- }
8003
- catch (e) {
8004
- }
8005
- xhr.open("POST", endPointUrl, !sync);
8006
- xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
8007
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
8008
- xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
8009
- }
8010
- arrForEach(objKeys(_headers), function (headerName) {
8011
- xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
8012
- });
8013
- xhr.onreadystatechange = function () {
8014
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8015
- _self._xhrReadyStateChange(xhr, oriPayload, oriPayload[_DYN_LENGTH ]);
8016
- if (xhr.readyState === 4) {
8017
- 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.");
8018
8429
  }
8019
- };
8020
- xhr.onerror = function (event) {
8021
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
8022
- rejectFunc && rejectFunc(event);
8023
- };
8024
- if (!sync && _enableSendPromise) {
8025
- thePromise = createPromise(function (resolve, reject) {
8026
- resolveFunc = resolve;
8027
- rejectFunc = reject;
8028
- });
8029
8430
  }
8030
- xhr.send(payload[_DYN_DATA ]);
8031
- 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
+ }
8032
8435
  }
8033
8436
  function _fetchKeepAliveSender(payload, isAsync) {
8034
- var onComplete = function (status, headers, response) {
8035
- return _getOnComplete(payload, status, headers, response);
8036
- };
8437
+ var transport = null;
8037
8438
  if (isArray(payload)) {
8038
8439
  var payloadSize = payload[_DYN_LENGTH ];
8039
8440
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
8040
8441
  payloadSize += payload[lp][_DYN_LENGTH ];
8041
8442
  }
8042
- var payloadData = _getPayload(payload);
8043
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
8044
- if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
8045
- _doFetchSender(payloadData, onComplete, true);
8443
+ var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
8444
+ if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
8445
+ transport = 2 ;
8046
8446
  }
8047
8447
  else if (isBeaconsSupported()) {
8048
- _beaconSender(payloadData);
8448
+ transport = 3 ;
8049
8449
  }
8050
8450
  else {
8051
- _fallbackSend && _fallbackSend(payload, true);
8451
+ transport = 1 ;
8052
8452
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
8053
8453
  }
8054
- }
8055
- }
8056
- function _doFetchSender(payload, oncomplete, sync) {
8057
- var _a;
8058
- var endPointUrl = _endpointUrl;
8059
- var internalPayload = payload;
8060
- var batch = internalPayload[_DYN_DATA ];
8061
- var plainTextBatch = new Blob([batch], { type: "application/json" });
8062
- var thePromise;
8063
- var resolveFunc;
8064
- var rejectFunc;
8065
- var requestHeaders = new Headers();
8066
- var batchLength = batch[_DYN_LENGTH ];
8067
- var ignoreResponse = false;
8068
- var responseHandled = false;
8069
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
8070
- requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
8071
- }
8072
- arrForEach(objKeys(_headers), function (headerName) {
8073
- requestHeaders.append(headerName, _headers[headerName]);
8074
- });
8075
- var init = (_a = {
8076
- method: "POST",
8077
- headers: requestHeaders,
8078
- body: plainTextBatch
8079
- },
8080
- _a[DisabledPropertyName] = true
8081
- ,
8082
- _a);
8083
- if (sync) {
8084
- init.keepalive = true;
8085
- ignoreResponse = true;
8086
- _syncFetchPayload += batchLength;
8087
- }
8088
- var request = new Request(endPointUrl, init);
8089
- try {
8090
- request[DisabledPropertyName] = true;
8091
- }
8092
- catch (e) {
8093
- }
8094
- if (!sync && _enableSendPromise) {
8095
- thePromise = createPromise(function (resolve, reject) {
8096
- resolveFunc = resolve;
8097
- rejectFunc = reject;
8098
- });
8099
- }
8100
- try {
8101
- doAwaitResponse(fetch(request), function (result) {
8102
- if (sync) {
8103
- _syncFetchPayload -= batchLength;
8104
- batchLength = 0;
8105
- }
8106
- if (!responseHandled) {
8107
- responseHandled = true;
8108
- if (!result.rejected) {
8109
- var response_1 = result.value;
8110
- if (!response_1.ok) {
8111
- _doOnComplete(oncomplete, 400, {}, response_1.statusText);
8112
- resolveFunc && resolveFunc(false);
8113
- }
8114
- else {
8115
- doAwaitResponse(response_1.text(), function (resp) {
8116
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8117
- _checkResponsStatus(response_1.status, oriPayload, response_1.url, oriPayload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
8118
- resolveFunc && resolveFunc(true);
8119
- });
8120
- }
8121
- }
8122
- else {
8123
- _doOnComplete(oncomplete, 400, {}, result.reason && result.reason.message);
8124
- rejectFunc && rejectFunc(result.reason);
8125
- }
8126
- }
8127
- });
8128
- }
8129
- catch (e) {
8130
- if (!responseHandled) {
8131
- _doOnComplete(oncomplete, 400, {}, dumpObj(e));
8132
- rejectFunc && rejectFunc(e);
8133
- }
8134
- }
8135
- if (ignoreResponse && !responseHandled) {
8136
- responseHandled = true;
8137
- _doOnComplete(oncomplete, 200, {});
8138
- resolveFunc && resolveFunc(true);
8139
- }
8140
- return thePromise;
8141
- }
8142
- function _parseResponse(response) {
8143
- try {
8144
- if (response && response !== "") {
8145
- var result = getJSON().parse(response);
8146
- if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED ] &&
8147
- result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH ]) {
8148
- return result;
8149
- }
8150
- }
8151
- }
8152
- catch (e) {
8153
- _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
8154
- response: response
8155
- });
8454
+ var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([transport], true);
8455
+ return _doSend(inst, payload, isAsync);
8156
8456
  }
8157
8457
  return null;
8158
8458
  }
@@ -8211,41 +8511,6 @@
8211
8511
  || statusCode === 503
8212
8512
  || statusCode === 504;
8213
8513
  }
8214
- function _formatErrorMessageXhr(xhr, message) {
8215
- if (xhr) {
8216
- return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + _getResponseText(xhr) || xhr.response || "";
8217
- }
8218
- return message;
8219
- }
8220
- function _xdrSender(payload, oncomplete, sync) {
8221
- var internalPayload = payload;
8222
- var _window = getWindow();
8223
- var xdr = new XDomainRequest();
8224
- var data = internalPayload[_DYN_DATA ];
8225
- xdr.onload = function () {
8226
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8227
- _self._xdrOnLoad(xdr, oriPayload);
8228
- };
8229
- xdr.onerror = function () {
8230
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
8231
- };
8232
- var hostingProtocol = _window && _window.location && _window.location.protocol || "";
8233
- if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {
8234
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
8235
- "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
8236
- _self._buffer[_DYN_CLEAR ]();
8237
- return;
8238
- }
8239
- var endpointUrl = _endpointUrl.replace(/^(https?:)/, "");
8240
- xdr.open("POST", endpointUrl);
8241
- xdr.send(data);
8242
- }
8243
- function _formatErrorMessageXdr(xdr, message) {
8244
- if (xdr) {
8245
- return "XDomainRequest,Response:" + _getResponseText(xdr) || "";
8246
- }
8247
- return message;
8248
- }
8249
8514
  function _getNotifyMgr() {
8250
8515
  var func = "getNotifyMgr";
8251
8516
  if (_self.core[func]) {
@@ -8306,6 +8571,7 @@
8306
8571
  _disableBeaconSplit = false;
8307
8572
  _xhrSend = null;
8308
8573
  _fallbackSend = null;
8574
+ _sendPostMgr = null;
8309
8575
  objDefine(_self, "_senderConfig", {
8310
8576
  g: function () {
8311
8577
  return objExtend({}, defaultAppInsightsChannelConfig);
@@ -8331,6 +8597,8 @@
8331
8597
 
8332
8598
  var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
8333
8599
  var _DYN_CONNECTION_STRING = "connectionString";
8600
+ var _DYN_ENDPOINT_URL = "endpointUrl";
8601
+ var _DYN_USER_OVERRIDE_ENDPOI0 = "userOverrideEndpointUrl";
8334
8602
 
8335
8603
  var defaultConfigValues = {
8336
8604
  diagnosticLogInterval: cfgDfValidate(_chkDiagLevel, 10000)
@@ -8371,9 +8639,10 @@
8371
8639
  if (_config[_DYN_CONNECTION_STRING ]) {
8372
8640
  var cs = parseConnectionString(_config[_DYN_CONNECTION_STRING ]);
8373
8641
  var ingest = cs.ingestionendpoint;
8374
- _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);
8375
8643
  _config[_DYN_INSTRUMENTATION_KEY ] = cs.instrumentationkey || _config[_DYN_INSTRUMENTATION_KEY ];
8376
8644
  }
8645
+ _config[_DYN_ENDPOINT_URL ] = _config[_DYN_USER_OVERRIDE_ENDPOI0 ] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 ] : _config[_DYN_ENDPOINT_URL ];
8377
8646
  }));
8378
8647
  core.initialize(_config, [new Sender()]);
8379
8648
  }