@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
  'use strict';
@@ -1317,7 +1317,7 @@ var _DYN_PUSH$2 = "push";
1317
1317
  var _DYN_SPLICE = "splice";
1318
1318
  var _DYN_HDLR = "hdlr";
1319
1319
  var _DYN_CANCEL = "cancel";
1320
- var _DYN_INITIALIZE = "initialize";
1320
+ var _DYN_INITIALIZE$1 = "initialize";
1321
1321
  var _DYN_IDENTIFIER = "identifier";
1322
1322
  var _DYN_IS_INITIALIZED = "isInitialized";
1323
1323
  var _DYN_GET_PLUGIN = "getPlugin";
@@ -1707,7 +1707,7 @@ function createPromise(executor, timeout) {
1707
1707
  var createAllPromise = _createAllPromise(createPromise);
1708
1708
 
1709
1709
  var UNDEFINED_VALUE$1 = undefined;
1710
- var STR_EMPTY = "";
1710
+ var STR_EMPTY$1 = "";
1711
1711
  var STR_CHANNELS = "channels";
1712
1712
  var STR_CORE = "core";
1713
1713
  var STR_CREATE_PERF_MGR = "createPerfMgr";
@@ -1720,6 +1720,9 @@ var STR_EVENTS_SENT = "eventsSent";
1720
1720
  var STR_EVENTS_DISCARDED = "eventsDiscarded";
1721
1721
  var STR_EVENTS_SEND_REQUEST = "eventsSendRequest";
1722
1722
  var STR_PERF_EVENT = "perfEvent";
1723
+ var STR_OFFLINE_STORE = "offlineEventsStored";
1724
+ var STR_OFFLINE_SENT = "offlineBatchSent";
1725
+ var STR_OFFLINE_DROP = "offlineBatchDrop";
1723
1726
  var STR_GET_PERF_MGR = "getPerfMgr";
1724
1727
  var STR_DOMAIN = "domain";
1725
1728
  var STR_PATH = "path";
@@ -1757,7 +1760,7 @@ function getExceptionName(object) {
1757
1760
  if (isError(object)) {
1758
1761
  return object[_DYN_NAME$2 ];
1759
1762
  }
1760
- return STR_EMPTY;
1763
+ return STR_EMPTY$1;
1761
1764
  }
1762
1765
  function setValue(target, field, value, valChk, srcChk) {
1763
1766
  var theValue = value;
@@ -1960,7 +1963,7 @@ function isIE() {
1960
1963
  var nav = getNavigator();
1961
1964
  if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
1962
1965
  _navUserAgentCheck = nav[_DYN_USER_AGENT ];
1963
- var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1966
+ var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1964
1967
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1965
1968
  }
1966
1969
  return _isTrident;
@@ -1969,9 +1972,9 @@ function getIEVersion(userAgentStr) {
1969
1972
  if (userAgentStr === void 0) { userAgentStr = null; }
1970
1973
  if (!userAgentStr) {
1971
1974
  var navigator_1 = getNavigator() || {};
1972
- userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY;
1975
+ userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY$1;
1973
1976
  }
1974
- var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1977
+ var ua = (userAgentStr || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1975
1978
  if (strContains(ua, strMsie)) {
1976
1979
  var doc = getDocument() || {};
1977
1980
  return Math.max(parseInt(ua[_DYN_SPLIT$1 ](strMsie)[1]), (doc[strDocumentMode] || 0));
@@ -2080,7 +2083,7 @@ function newId(maxLength) {
2080
2083
  var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
2081
2084
  var number = random32() >>> 0;
2082
2085
  var chars = 0;
2083
- var result = STR_EMPTY;
2086
+ var result = STR_EMPTY$1;
2084
2087
  while (result[_DYN_LENGTH$2 ] < maxLength) {
2085
2088
  chars++;
2086
2089
  result += base64chars.charAt(number & 0x3F);
@@ -2118,11 +2121,11 @@ function _getCache(data, target) {
2118
2121
  }
2119
2122
  function createUniqueNamespace(name, includeVersion) {
2120
2123
  if (includeVersion === void 0) { includeVersion = false; }
2121
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
2124
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
2122
2125
  }
2123
2126
  function createElmNodeData(name) {
2124
2127
  var data = {
2125
- id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
2128
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
2126
2129
  accept: function (target) {
2127
2130
  return _canAcceptData(target);
2128
2131
  },
@@ -2875,9 +2878,9 @@ var _logFuncs = (_a$4 = {},
2875
2878
  _a$4);
2876
2879
  function _sanitizeDiagnosticText(text) {
2877
2880
  if (text) {
2878
- return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
2881
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
2879
2882
  }
2880
- return STR_EMPTY;
2883
+ return STR_EMPTY$1;
2881
2884
  }
2882
2885
  function _logToConsole(func, message) {
2883
2886
  var theConsole = getConsole();
@@ -2899,12 +2902,12 @@ var _InternalLogMessage = /** @class */ (function () {
2899
2902
  _self[_DYN_MESSAGE$1 ] =
2900
2903
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
2901
2904
  msgId;
2902
- var strProps = STR_EMPTY;
2905
+ var strProps = STR_EMPTY$1;
2903
2906
  if (hasJSON()) {
2904
2907
  strProps = getJSON().stringify(properties);
2905
2908
  }
2906
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
2907
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
2909
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
2910
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
2908
2911
  _self[_DYN_MESSAGE$1 ] += diagnosticText;
2909
2912
  }
2910
2913
  _InternalLogMessage.dataType = "MessageData";
@@ -3143,7 +3146,7 @@ function createCookieMgr(rootConfig, logger) {
3143
3146
  var result = false;
3144
3147
  if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
3145
3148
  var values = {};
3146
- var theValue = strTrim(value || STR_EMPTY);
3149
+ var theValue = strTrim(value || STR_EMPTY$1);
3147
3150
  var idx = strIndexOf(theValue, ";");
3148
3151
  if (idx !== -1) {
3149
3152
  theValue = strTrim(strLeft(value, idx));
@@ -3158,11 +3161,11 @@ function createCookieMgr(rootConfig, logger) {
3158
3161
  if (expireMs > 0) {
3159
3162
  var expiry = new Date();
3160
3163
  expiry.setTime(expireMs);
3161
- setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
3164
+ setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY$1, isTruthy);
3162
3165
  }
3163
3166
  }
3164
3167
  if (!_isIE) {
3165
- setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
3168
+ setValue(values, "max-age", STR_EMPTY$1 + maxAgeSec, null, isUndefined);
3166
3169
  }
3167
3170
  }
3168
3171
  var location_1 = getLocation();
@@ -3182,7 +3185,7 @@ function createCookieMgr(rootConfig, logger) {
3182
3185
  return result;
3183
3186
  },
3184
3187
  get: function (name) {
3185
- var value = STR_EMPTY;
3188
+ var value = STR_EMPTY$1;
3186
3189
  if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
3187
3190
  value = _getCookieFn(name);
3188
3191
  }
@@ -3206,7 +3209,7 @@ function createCookieMgr(rootConfig, logger) {
3206
3209
  if (!isIE()) {
3207
3210
  values["max-age"] = "0";
3208
3211
  }
3209
- _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
3212
+ _delCookieFn(name, _formatCookieValue(STR_EMPTY$1, values));
3210
3213
  result = true;
3211
3214
  }
3212
3215
  return result;
@@ -3239,7 +3242,7 @@ function _extractParts(theValue) {
3239
3242
  if (theValue && theValue[_DYN_LENGTH$2 ]) {
3240
3243
  var parts = strTrim(theValue)[_DYN_SPLIT$1 ](";");
3241
3244
  arrForEach(parts, function (thePart) {
3242
- thePart = strTrim(thePart || STR_EMPTY);
3245
+ thePart = strTrim(thePart || STR_EMPTY$1);
3243
3246
  if (thePart) {
3244
3247
  var idx = strIndexOf(thePart, "=");
3245
3248
  if (idx === -1) {
@@ -3260,22 +3263,22 @@ function _formatDate(theDate, func) {
3260
3263
  return null;
3261
3264
  }
3262
3265
  function _formatCookieValue(value, values) {
3263
- var cookieValue = value || STR_EMPTY;
3266
+ var cookieValue = value || STR_EMPTY$1;
3264
3267
  objForEachKey(values, function (name, theValue) {
3265
- cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY);
3268
+ cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY$1);
3266
3269
  });
3267
3270
  return cookieValue;
3268
3271
  }
3269
3272
  function _getCookieValue(name) {
3270
- var cookieValue = STR_EMPTY;
3273
+ var cookieValue = STR_EMPTY$1;
3271
3274
  !_doc && _getDoc();
3272
3275
  if (_doc.v) {
3273
- var theCookie = _doc.v[strCookie] || STR_EMPTY;
3276
+ var theCookie = _doc.v[strCookie] || STR_EMPTY$1;
3274
3277
  if (_parsedCookieValue !== theCookie) {
3275
3278
  _cookieCache = _extractParts(theCookie);
3276
3279
  _parsedCookieValue = theCookie;
3277
3280
  }
3278
- cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);
3281
+ cookieValue = strTrim(_cookieCache[name] || STR_EMPTY$1);
3279
3282
  }
3280
3283
  return cookieValue;
3281
3284
  }
@@ -3382,6 +3385,28 @@ var NotificationManager = /** @class */ (function () {
3382
3385
  }
3383
3386
  }
3384
3387
  };
3388
+ _self[STR_OFFLINE_STORE ] = function (events) {
3389
+ if (events && events[_DYN_LENGTH$2 ]) {
3390
+ _runListeners(_listeners, STR_OFFLINE_STORE, true, function (listener) {
3391
+ listener[STR_OFFLINE_STORE ](events);
3392
+ });
3393
+ }
3394
+ };
3395
+ _self[STR_OFFLINE_SENT ] = function (batch) {
3396
+ if (batch && batch.data) {
3397
+ _runListeners(_listeners, STR_OFFLINE_SENT, true, function (listener) {
3398
+ listener[STR_OFFLINE_SENT ](batch);
3399
+ });
3400
+ }
3401
+ };
3402
+ _self[STR_OFFLINE_DROP ] = function (cnt, reason) {
3403
+ if (cnt > 0) {
3404
+ var rn_1 = reason || 0;
3405
+ _runListeners(_listeners, STR_OFFLINE_DROP, true, function (listener) {
3406
+ listener[STR_OFFLINE_DROP ](cnt, rn_1);
3407
+ });
3408
+ }
3409
+ };
3385
3410
  _self[_DYN_UNLOAD ] = function (isAsync) {
3386
3411
  var _finishUnload = function () {
3387
3412
  unloadHandler && unloadHandler.rm();
@@ -3605,7 +3630,7 @@ function initializePlugins(processContext, extensions) {
3605
3630
  }
3606
3631
  arrForEach(initPlugins, function (thePlugin) {
3607
3632
  var core = processContext[STR_CORE ]();
3608
- thePlugin[_DYN_INITIALIZE ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
3633
+ thePlugin[_DYN_INITIALIZE$1 ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
3609
3634
  pluginState = _getPluginState(thePlugin);
3610
3635
  if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {
3611
3636
  pluginState[STR_CORE] = core;
@@ -3949,7 +3974,7 @@ function createTelemetryPluginProxy(plugin, config, core) {
3949
3974
  doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
3950
3975
  hasRunContext[chainId] = true;
3951
3976
  try {
3952
- var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
3977
+ var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
3953
3978
  if (nextId) {
3954
3979
  hasRunContext[nextId] = false;
3955
3980
  }
@@ -4094,7 +4119,7 @@ var BaseTelemetryPlugin = /** @class */ (function () {
4094
4119
  var _hookContainer;
4095
4120
  _initDefaults();
4096
4121
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
4097
- _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
4122
+ _self[_DYN_INITIALIZE$1 ] = function (config, core, extensions, pluginChain) {
4098
4123
  _setDefaults(config, core, pluginChain);
4099
4124
  _isinitialized = true;
4100
4125
  };
@@ -4313,7 +4338,7 @@ function _validateExtensions(logger, channelPriority, allExtensions) {
4313
4338
  var channels = [];
4314
4339
  var extPriorities = {};
4315
4340
  arrForEach(allExtensions, function (ext) {
4316
- if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE ])) {
4341
+ if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE$1 ])) {
4317
4342
  throwError(strValidationError);
4318
4343
  }
4319
4344
  var extPriority = ext[STR_PRIORITY ];
@@ -4438,7 +4463,7 @@ var AppInsightsCore = /** @class */ (function () {
4438
4463
  return [_extensions];
4439
4464
  };
4440
4465
  _self[_DYN_IS_INITIALIZED ] = function () { return _isInitialized; };
4441
- _self[_DYN_INITIALIZE ] = function (config, extensions, logger, notificationManager) {
4466
+ _self[_DYN_INITIALIZE$1 ] = function (config, extensions, logger, notificationManager) {
4442
4467
  if (_isUnloading) {
4443
4468
  throwError(strSdkUnloadingError);
4444
4469
  }
@@ -4801,7 +4826,7 @@ var AppInsightsCore = /** @class */ (function () {
4801
4826
  }
4802
4827
  _pluginVersionString = _pluginVersionStringArr.join(";");
4803
4828
  }
4804
- return _pluginVersionString || STR_EMPTY;
4829
+ return _pluginVersionString || STR_EMPTY$1;
4805
4830
  }
4806
4831
  });
4807
4832
  objDefine(_self, "logger", {
@@ -5114,16 +5139,16 @@ var elmNodeData = createElmNodeData("events");
5114
5139
  var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
5115
5140
  function _normalizeNamespace(name) {
5116
5141
  if (name && name[_DYN_REPLACE ]) {
5117
- return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
5142
+ return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY$1);
5118
5143
  }
5119
5144
  return name;
5120
5145
  }
5121
5146
  function _getEvtNamespace(eventName, evtNamespace) {
5122
5147
  var _a;
5123
5148
  if (evtNamespace) {
5124
- var theNamespace_1 = STR_EMPTY;
5149
+ var theNamespace_1 = STR_EMPTY$1;
5125
5150
  if (isArray(evtNamespace)) {
5126
- theNamespace_1 = STR_EMPTY;
5151
+ theNamespace_1 = STR_EMPTY$1;
5127
5152
  arrForEach(evtNamespace, function (name) {
5128
5153
  name = _normalizeNamespace(name);
5129
5154
  if (name) {
@@ -5141,13 +5166,13 @@ function _getEvtNamespace(eventName, evtNamespace) {
5141
5166
  if (theNamespace_1[0] !== ".") {
5142
5167
  theNamespace_1 = "." + theNamespace_1;
5143
5168
  }
5144
- eventName = (eventName || STR_EMPTY) + theNamespace_1;
5169
+ eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
5145
5170
  }
5146
5171
  }
5147
- var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
5172
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
5148
5173
  return _a = {},
5149
5174
  _a[_DYN_TYPE ] = parsedEvent[1],
5150
- _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT$1 ](".").sort()).join("."),
5175
+ _a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT$1 ](".").sort()).join("."),
5151
5176
  _a;
5152
5177
  }
5153
5178
  function _getRegisteredEvents(target, evtName, addDefault) {
@@ -5296,15 +5321,21 @@ var RequestHeaders = createValueMap({
5296
5321
  var _DYN_SPLIT = "split";
5297
5322
  var _DYN_LENGTH$1 = "length";
5298
5323
  var _DYN_TO_LOWER_CASE = "toLowerCase";
5324
+ var _DYN_LOCATION = "location";
5299
5325
  var _DYN_INGESTIONENDPOINT = "ingestionendpoint";
5300
5326
  var _DYN_TO_STRING$1 = "toString";
5301
5327
  var _DYN_PUSH$1 = "push";
5328
+ var _DYN_URL_STRING = "urlString";
5329
+ var _DYN_DATA$1 = "data";
5330
+ var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
5331
+ var _DYN_REASON = "reason";
5332
+ var _DYN_MESSAGE = "message";
5302
5333
  var _DYN_REMOVE_ITEM = "removeItem";
5303
5334
  var _DYN_NAME$1 = "name";
5304
- var _DYN_MESSAGE = "message";
5305
5335
  var _DYN_COUNT$1 = "count";
5306
5336
  var _DYN_STRINGIFY$1 = "stringify";
5307
5337
  var _DYN_PATHNAME = "pathname";
5338
+ var _DYN_ITEMS_RECEIVED$1 = "itemsReceived";
5308
5339
  var _DYN_EXCEPTIONS = "exceptions";
5309
5340
  var _DYN_PARSED_STACK = "parsedStack";
5310
5341
  var _DYN_PROPERTIES = "properties";
@@ -5526,6 +5557,54 @@ function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName)
5526
5557
  data: data
5527
5558
  };
5528
5559
  }
5560
+ function getResponseText(xhr) {
5561
+ try {
5562
+ return xhr.responseText;
5563
+ }
5564
+ catch (e) {
5565
+ }
5566
+ return null;
5567
+ }
5568
+ function formatErrorMessageXdr(xdr, message) {
5569
+ if (xdr) {
5570
+ return "XDomainRequest,Response:" + getResponseText(xdr) || "";
5571
+ }
5572
+ return message;
5573
+ }
5574
+ function formatErrorMessageXhr(xhr, message) {
5575
+ if (xhr) {
5576
+ return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + getResponseText(xhr) || xhr.response || "";
5577
+ }
5578
+ return message;
5579
+ }
5580
+ function prependTransports(theTransports, newTransports) {
5581
+ if (newTransports) {
5582
+ if (isNumber(newTransports)) {
5583
+ theTransports = [newTransports].concat(theTransports);
5584
+ }
5585
+ else if (isArray(newTransports)) {
5586
+ theTransports = newTransports.concat(theTransports);
5587
+ }
5588
+ }
5589
+ return theTransports;
5590
+ }
5591
+ function parseResponse(response, diagLog) {
5592
+ try {
5593
+ if (response && response !== "") {
5594
+ var result = getJSON().parse(response);
5595
+ if (result && result[_DYN_ITEMS_RECEIVED$1 ] && result[_DYN_ITEMS_RECEIVED$1 ] >= result.itemsAccepted &&
5596
+ result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH$1 ]) {
5597
+ return result;
5598
+ }
5599
+ }
5600
+ }
5601
+ catch (e) {
5602
+ _throwInternal(diagLog, 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
5603
+ response: response
5604
+ });
5605
+ }
5606
+ return null;
5607
+ }
5529
5608
 
5530
5609
  var StorageType = createEnumStyle({
5531
5610
  LocalStorage: 0 ,
@@ -5614,7 +5693,7 @@ function parseConnectionString(connectionString) {
5614
5693
  }, {});
5615
5694
  if (objKeys(result)[_DYN_LENGTH$1 ] > 0) {
5616
5695
  if (result.endpointsuffix) {
5617
- var locationPrefix = result.location ? result.location + "." : "";
5696
+ var locationPrefix = result[_DYN_LOCATION ] ? result[_DYN_LOCATION ] + "." : "";
5618
5697
  result[_DYN_INGESTIONENDPOINT ] = result[_DYN_INGESTIONENDPOINT ] || ("https://" + locationPrefix + "dc." + result.endpointsuffix);
5619
5698
  }
5620
5699
  result[_DYN_INGESTIONENDPOINT ] = result[_DYN_INGESTIONENDPOINT ] || DEFAULT_BREEZE_ENDPOINT;
@@ -5633,7 +5712,7 @@ var Envelope = /** @class */ (function () {
5633
5712
  _self.sampleRate = 100.0;
5634
5713
  _self.tags = {};
5635
5714
  _self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
5636
- _self.data = data;
5715
+ _self[_DYN_DATA$1 ] = data;
5637
5716
  _self.time = toISOString(new Date());
5638
5717
  _self.aiDataContract = {
5639
5718
  time: 1 ,
@@ -5790,8 +5869,8 @@ function _getStackFromErrorObj(errorObj) {
5790
5869
  else if (getWindow() && getWindow()["opera"] && errorObj[strMessage]) {
5791
5870
  details = _getOperaStack(errorObj[_DYN_MESSAGE ]);
5792
5871
  }
5793
- else if (errorObj["reason"] && errorObj.reason[strStack]) {
5794
- details = _convertStackObj(errorObj.reason[strStack]);
5872
+ else if (errorObj["reason"] && errorObj[_DYN_REASON ][strStack]) {
5873
+ details = _convertStackObj(errorObj[_DYN_REASON ][strStack]);
5795
5874
  }
5796
5875
  else if (isString(errorObj)) {
5797
5876
  details = _convertStackObj(errorObj);
@@ -6262,7 +6341,7 @@ var RemoteDependencyData = /** @class */ (function () {
6262
6341
  _self.resultCode = resultCode + "";
6263
6342
  _self.type = dataSanitizeString(logger, requestAPI);
6264
6343
  var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);
6265
- _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data;
6344
+ _self[_DYN_DATA$1 ] = dataSanitizeUrl(logger, commandName) || dependencyFields[_DYN_DATA$1 ];
6266
6345
  _self.target = dataSanitizeString(logger, dependencyFields.target);
6267
6346
  if (correlationContext) {
6268
6347
  _self.target = "".concat(_self.target, " | ").concat(correlationContext);
@@ -6436,6 +6515,360 @@ var ContextTagKeys = /** @class */ (function (_super) {
6436
6515
 
6437
6516
  var CtxTagKeys = new ContextTagKeys();
6438
6517
 
6518
+ var STR_EMPTY = "";
6519
+ var SenderPostManager = /** @class */ (function () {
6520
+ function SenderPostManager() {
6521
+ var _syncFetchPayload = 0;
6522
+ var _enableSendPromise;
6523
+ var _isInitialized;
6524
+ var _diagLog;
6525
+ var _isOneDs;
6526
+ var _onCompleteFuncs;
6527
+ var _disableCredentials;
6528
+ var _fallbackInst;
6529
+ var _disableXhr;
6530
+ var _disableBeacon;
6531
+ var _disableBeaconSync;
6532
+ dynamicProto(SenderPostManager, this, function (_self, _base) {
6533
+ var _sendCredentials = true;
6534
+ _initDefaults();
6535
+ _self.initialize = function (config, diagLog) {
6536
+ _diagLog = diagLog;
6537
+ if (_isInitialized) {
6538
+ _throwInternal(_diagLog, 1 , 28 , "Sender is already initialized");
6539
+ }
6540
+ _self.SetConfig(config);
6541
+ _isInitialized = true;
6542
+ };
6543
+ _self["_getDbgPlgTargets"] = function () {
6544
+ return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];
6545
+ };
6546
+ _self.SetConfig = function (config) {
6547
+ try {
6548
+ _onCompleteFuncs = config.senderOnCompleteCallBack || {};
6549
+ _disableCredentials = !!config.disableCredentials;
6550
+ _isOneDs = !!config.isOneDs;
6551
+ _enableSendPromise = !!config.enableSendPromise;
6552
+ _disableXhr = !!config.disableXhr;
6553
+ _disableBeacon = !!config.disableBeacon;
6554
+ _disableBeaconSync = !!config.disableBeaconSync;
6555
+ _fallbackInst = { sendPOST: _xhrSender };
6556
+ if (_disableCredentials) {
6557
+ var location_1 = getLocation();
6558
+ if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE ]() === "file:") {
6559
+ _sendCredentials = false;
6560
+ }
6561
+ }
6562
+ return true;
6563
+ }
6564
+ catch (e) {
6565
+ }
6566
+ return false;
6567
+ };
6568
+ _self.getSyncFetchPayload = function () {
6569
+ return _syncFetchPayload;
6570
+ };
6571
+ _self.getXhrInst = function (transports, sync) {
6572
+ if (transports && transports[_DYN_LENGTH$1 ]) {
6573
+ return _getSenderInterface(transports, sync);
6574
+ }
6575
+ return null;
6576
+ };
6577
+ _self.getFallbackInst = function () {
6578
+ return _fallbackInst;
6579
+ };
6580
+ _self._doTeardown = function (unloadCtx, unloadState) {
6581
+ _initDefaults();
6582
+ };
6583
+ function _onSuccess(res, onComplete) {
6584
+ _doOnComplete(onComplete, 200, {}, res);
6585
+ }
6586
+ function _onError(message, onComplete) {
6587
+ _throwInternal(_diagLog, 2 , 26 , "Failed to send telemetry.", { message: message });
6588
+ _doOnComplete(onComplete, 400, {});
6589
+ }
6590
+ function _onNoPayloadUrl(onComplete) {
6591
+ _onError("No endpoint url is provided for the batch", onComplete);
6592
+ }
6593
+ function _getSenderInterface(transports, syncSupport) {
6594
+ var transportType = null;
6595
+ var sendPostFunc = null;
6596
+ var lp = 0;
6597
+ while (sendPostFunc == null && lp < transports[_DYN_LENGTH$1 ]) {
6598
+ transportType = transports[lp];
6599
+ if (!_disableXhr && transportType === 1 ) {
6600
+ if (useXDomainRequest()) {
6601
+ sendPostFunc = _xdrSender;
6602
+ }
6603
+ else if (isXhrSupported()) {
6604
+ sendPostFunc = _xhrSender;
6605
+ }
6606
+ }
6607
+ else if (transportType === 2 && isFetchSupported(syncSupport)) {
6608
+ sendPostFunc = _doFetchSender;
6609
+ }
6610
+ else if (transportType === 3 && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {
6611
+ sendPostFunc = _beaconSender;
6612
+ }
6613
+ lp++;
6614
+ }
6615
+ if (sendPostFunc) {
6616
+ return {
6617
+ sendPOST: sendPostFunc
6618
+ };
6619
+ }
6620
+ return null;
6621
+ }
6622
+ function _doOnComplete(oncomplete, status, headers, response) {
6623
+ try {
6624
+ oncomplete && oncomplete(status, headers, response);
6625
+ }
6626
+ catch (e) {
6627
+ }
6628
+ }
6629
+ function _doBeaconSend(payload, oncomplete) {
6630
+ var nav = getNavigator();
6631
+ var url = payload[_DYN_URL_STRING ];
6632
+ if (!url) {
6633
+ _onNoPayloadUrl(oncomplete);
6634
+ return true;
6635
+ }
6636
+ var data = payload[_DYN_DATA$1 ];
6637
+ var plainTextBatch = new Blob([data], { type: "text/plain;charset=UTF-8" });
6638
+ var queued = nav.sendBeacon(url, plainTextBatch);
6639
+ return queued;
6640
+ }
6641
+ function _beaconSender(payload, oncomplete, sync) {
6642
+ var data = payload[_DYN_DATA$1 ];
6643
+ if (data) {
6644
+ if (!_doBeaconSend(payload, oncomplete)) {
6645
+ var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;
6646
+ if (onRetry && isFunction(onRetry)) {
6647
+ onRetry(payload, oncomplete, _doBeaconSend);
6648
+ }
6649
+ else {
6650
+ _fallbackInst && _fallbackInst.sendPOST(payload, oncomplete, true);
6651
+ _throwInternal(_diagLog, 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6652
+ }
6653
+ }
6654
+ else {
6655
+ _onSuccess(null, oncomplete);
6656
+ }
6657
+ }
6658
+ return;
6659
+ }
6660
+ function _xhrSender(payload, oncomplete, sync) {
6661
+ var thePromise;
6662
+ var resolveFunc;
6663
+ var rejectFunc;
6664
+ var headers = payload.headers || {};
6665
+ if (!sync && _enableSendPromise) {
6666
+ thePromise = createPromise(function (resolve, reject) {
6667
+ resolveFunc = resolve;
6668
+ rejectFunc = reject;
6669
+ });
6670
+ }
6671
+ var xhr = new XMLHttpRequest();
6672
+ var endPointUrl = payload[_DYN_URL_STRING ];
6673
+ if (!endPointUrl) {
6674
+ _onNoPayloadUrl(oncomplete);
6675
+ resolveFunc && resolveFunc(false);
6676
+ return;
6677
+ }
6678
+ try {
6679
+ xhr[DisabledPropertyName] = true;
6680
+ }
6681
+ catch (e) {
6682
+ }
6683
+ xhr.open("POST", endPointUrl, !sync);
6684
+ xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
6685
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6686
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
6687
+ }
6688
+ arrForEach(objKeys(headers), function (headerName) {
6689
+ xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
6690
+ });
6691
+ xhr.onreadystatechange = function () {
6692
+ var response = getResponseText(xhr);
6693
+ var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;
6694
+ var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);
6695
+ if (onReadyFuncExist) {
6696
+ onReadyFunc(xhr, oncomplete, payload);
6697
+ }
6698
+ if (xhr.readyState === 4) {
6699
+ if (!onReadyFuncExist) {
6700
+ _doOnComplete(oncomplete, xhr.status, {}, response);
6701
+ }
6702
+ resolveFunc && resolveFunc(true);
6703
+ }
6704
+ };
6705
+ xhr.onerror = function (event) {
6706
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXhr(xhr));
6707
+ rejectFunc && rejectFunc(event);
6708
+ };
6709
+ xhr.ontimeout = function () {
6710
+ _doOnComplete(oncomplete, 500, {}, formatErrorMessageXhr(xhr));
6711
+ resolveFunc && resolveFunc(false);
6712
+ };
6713
+ xhr.send(payload[_DYN_DATA$1 ]);
6714
+ return thePromise;
6715
+ }
6716
+ function _doFetchSender(payload, oncomplete, sync) {
6717
+ var _a;
6718
+ var endPointUrl = payload[_DYN_URL_STRING ];
6719
+ var batch = payload[_DYN_DATA$1 ];
6720
+ var plainTextBatch = new Blob([batch], { type: "application/json" });
6721
+ var thePromise;
6722
+ var resolveFunc;
6723
+ var rejectFunc;
6724
+ var requestHeaders = new Headers();
6725
+ var batchLength = batch[_DYN_LENGTH$1 ];
6726
+ var ignoreResponse = false;
6727
+ var responseHandled = false;
6728
+ var headers = payload.headers || {};
6729
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6730
+ requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
6731
+ }
6732
+ arrForEach(objKeys(headers), function (headerName) {
6733
+ requestHeaders.append(headerName, headers[headerName]);
6734
+ });
6735
+ var init = (_a = {
6736
+ method: "POST",
6737
+ headers: requestHeaders,
6738
+ body: plainTextBatch
6739
+ },
6740
+ _a[DisabledPropertyName] = true
6741
+ ,
6742
+ _a);
6743
+ if (_sendCredentials && _isOneDs) {
6744
+ init.credentials = "include";
6745
+ }
6746
+ if (sync) {
6747
+ init.keepalive = true;
6748
+ ignoreResponse = true;
6749
+ _syncFetchPayload += batchLength;
6750
+ }
6751
+ var request = new Request(endPointUrl, init);
6752
+ try {
6753
+ request[DisabledPropertyName] = true;
6754
+ }
6755
+ catch (e) {
6756
+ }
6757
+ if (!sync && _enableSendPromise) {
6758
+ thePromise = createPromise(function (resolve, reject) {
6759
+ resolveFunc = resolve;
6760
+ rejectFunc = reject;
6761
+ });
6762
+ }
6763
+ if (!endPointUrl) {
6764
+ _onNoPayloadUrl(oncomplete);
6765
+ resolveFunc && resolveFunc(false);
6766
+ return;
6767
+ }
6768
+ try {
6769
+ doAwaitResponse(fetch(request), function (result) {
6770
+ if (sync) {
6771
+ _syncFetchPayload -= batchLength;
6772
+ batchLength = 0;
6773
+ }
6774
+ if (!responseHandled) {
6775
+ responseHandled = true;
6776
+ if (!result.rejected) {
6777
+ var response_1 = result.value;
6778
+ if (!response_1.ok) {
6779
+ _doOnComplete(oncomplete, 400, {}, response_1.statusText);
6780
+ resolveFunc && resolveFunc(false);
6781
+ }
6782
+ else {
6783
+ doAwaitResponse(response_1.text(), function (resp) {
6784
+ var status = response_1.status;
6785
+ var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;
6786
+ if (onCompleteFunc && isFunction(onCompleteFunc)) {
6787
+ onCompleteFunc(response_1, oncomplete, resp.value || STR_EMPTY, payload);
6788
+ }
6789
+ else {
6790
+ _doOnComplete(oncomplete, status, {}, resp.value || STR_EMPTY);
6791
+ }
6792
+ resolveFunc && resolveFunc(true);
6793
+ });
6794
+ }
6795
+ }
6796
+ else {
6797
+ _doOnComplete(oncomplete, 400, {}, result[_DYN_REASON ] && result[_DYN_REASON ][_DYN_MESSAGE ]);
6798
+ rejectFunc && rejectFunc(result[_DYN_REASON ]);
6799
+ }
6800
+ }
6801
+ });
6802
+ }
6803
+ catch (e) {
6804
+ if (!responseHandled) {
6805
+ _doOnComplete(oncomplete, 400, {}, dumpObj(e));
6806
+ rejectFunc && rejectFunc(e);
6807
+ }
6808
+ }
6809
+ if (ignoreResponse && !responseHandled) {
6810
+ responseHandled = true;
6811
+ _doOnComplete(oncomplete, 200, {});
6812
+ resolveFunc && resolveFunc(true);
6813
+ }
6814
+ return thePromise;
6815
+ }
6816
+ function _xdrSender(payload, oncomplete, sync) {
6817
+ var _window = getWindow();
6818
+ var xdr = new XDomainRequest();
6819
+ var data = payload[_DYN_DATA$1 ];
6820
+ xdr.onload = function () {
6821
+ var response = getResponseText(xdr);
6822
+ var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;
6823
+ if (onloadFunc && isFunction(onloadFunc)) {
6824
+ onloadFunc(xdr, oncomplete, payload);
6825
+ }
6826
+ else {
6827
+ _doOnComplete(oncomplete, 200, {}, response);
6828
+ }
6829
+ };
6830
+ xdr.onerror = function () {
6831
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXdr(xdr));
6832
+ };
6833
+ xdr.ontimeout = function () {
6834
+ _doOnComplete(oncomplete, 500, {});
6835
+ };
6836
+ xdr.onprogress = function () { };
6837
+ var hostingProtocol = _window && _window[_DYN_LOCATION ] && _window[_DYN_LOCATION ].protocol || "";
6838
+ var endpoint = payload[_DYN_URL_STRING ];
6839
+ if (!endpoint) {
6840
+ _onNoPayloadUrl(oncomplete);
6841
+ return;
6842
+ }
6843
+ if (endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {
6844
+ var msg = "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.";
6845
+ _throwInternal(_diagLog, 2 , 40 , ". " + msg);
6846
+ _onError(msg, oncomplete);
6847
+ return;
6848
+ }
6849
+ var endpointUrl = endpoint.replace(/^(https?:)/, "");
6850
+ xdr.open("POST", endpointUrl);
6851
+ xdr.send(data);
6852
+ }
6853
+ function _initDefaults() {
6854
+ _syncFetchPayload = 0;
6855
+ _isInitialized = false;
6856
+ _enableSendPromise = false;
6857
+ _diagLog = null;
6858
+ _isOneDs = null;
6859
+ _onCompleteFuncs = null;
6860
+ _disableCredentials = null;
6861
+ _fallbackInst = null;
6862
+ _disableXhr = false;
6863
+ _disableBeacon = false;
6864
+ _disableBeaconSync = false;
6865
+ }
6866
+ });
6867
+ }
6868
+ SenderPostManager.__ieDyn=1;
6869
+ return SenderPostManager;
6870
+ }());
6871
+
6439
6872
  function _disableEvents(target, evtNamespace) {
6440
6873
  eventOff(target, null, null, evtNamespace);
6441
6874
  }
@@ -6574,43 +7007,42 @@ var _DYN_EVENTS_LIMIT_IN_MEM = "eventsLimitInMem";
6574
7007
  var _DYN_PUSH = "push";
6575
7008
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
6576
7009
  var _DYN_CLEAR = "clear";
6577
- var _DYN_BATCH_PAYLOADS = "batchPayloads";
6578
7010
  var _DYN_CREATE_NEW = "createNew";
6579
7011
  var _DYN_MARK_AS_SENT = "markAsSent";
6580
7012
  var _DYN_CLEAR_SENT = "clearSent";
6581
7013
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
6582
7014
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
6583
7015
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
6584
- var _DYN_CONCAT = "concat";
6585
7016
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
6586
- var _DYN_SEND_POST = "sendPOST";
6587
7017
  var _DYN_TRIGGER_SEND = "triggerSend";
6588
7018
  var _DYN_DIAG_LOG = "diagLog";
7019
+ var _DYN_INITIALIZE = "initialize";
6589
7020
  var _DYN__SENDER = "_sender";
6590
7021
  var _DYN_CUSTOM_HEADERS = "customHeaders";
6591
7022
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
6592
7023
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
6593
7024
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
6594
7025
  var _DYN_ALWAYS_USE_XHR_OVERR4 = "alwaysUseXhrOverride";
7026
+ var _DYN_DISABLE_XHR = "disableXhr";
6595
7027
  var _DYN_ENABLE_SESSION_STORA5 = "enableSessionStorageBuffer";
6596
7028
  var _DYN__BUFFER = "_buffer";
6597
7029
  var _DYN_ONUNLOAD_DISABLE_FET6 = "onunloadDisableFetch";
6598
7030
  var _DYN_DISABLE_SEND_BEACON_7 = "disableSendBeaconSplit";
6599
7031
  var _DYN_INSTRUMENTATION_KEY$1 = "instrumentationKey";
7032
+ var _DYN_ENABLE_SEND_PROMISE = "enableSendPromise";
7033
+ var _DYN_GET_XHR_INST = "getXhrInst";
6600
7034
  var _DYN_UNLOAD_TRANSPORTS = "unloadTransports";
6601
7035
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
6602
7036
  var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
6603
7037
  var _DYN_SERIALIZE = "serialize";
6604
- var _DYN__XHR_READY_STATE_CHA8 = "_xhrReadyStateChange";
6605
7038
  var _DYN__ON_ERROR = "_onError";
6606
7039
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
6607
7040
  var _DYN__ON_SUCCESS = "_onSuccess";
6608
7041
  var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
6609
7042
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
7043
+ var _DYN_ORI_PAYLOAD = "oriPayload";
6610
7044
  var _DYN_BASE_TYPE = "baseType";
6611
7045
  var _DYN_SAMPLE_RATE = "sampleRate";
6612
- var _DYN_ORI_PAYLOAD = "oriPayload";
6613
- var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
6614
7046
  var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
6615
7047
  var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
6616
7048
  var _DYN_GET_HASH_CODE_SCORE = "getHashCodeScore";
@@ -6724,7 +7156,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
6724
7156
  }
6725
7157
  }
6726
7158
  var EnvelopeCreator = {
6727
- Version: '3.1.1-nightly3.2402-20'
7159
+ Version: '3.1.1-nightly3.2403-02'
6728
7160
  };
6729
7161
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
6730
7162
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -6915,7 +7347,7 @@ var BaseSendBuffer = /** @class */ (function () {
6915
7347
  _self.getItems = function () {
6916
7348
  return _buffer.slice(0);
6917
7349
  };
6918
- _self[_DYN_BATCH_PAYLOADS ] = function (payload) {
7350
+ _self.batchPayloads = function (payload) {
6919
7351
  if (payload && payload[_DYN_LENGTH ] > 0) {
6920
7352
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
6921
7353
  payload.join("\n") :
@@ -6965,7 +7397,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
6965
7397
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
6966
7398
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
6967
7399
  var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
6968
- var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
7400
+ var buffer = _self._set(bufferItems.concat(notDeliveredItems));
6969
7401
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
6970
7402
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
6971
7403
  }
@@ -6992,7 +7424,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
6992
7424
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
6993
7425
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
6994
7426
  if (sentElements instanceof Array && payload instanceof Array) {
6995
- sentElements = sentElements[_DYN_CONCAT ](payload);
7427
+ sentElements = sentElements.concat(payload);
6996
7428
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
6997
7429
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
6998
7430
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -7225,7 +7657,7 @@ var HashCodeScoreGenerator = /** @class */ (function () {
7225
7657
  return 0;
7226
7658
  }
7227
7659
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
7228
- input = input[_DYN_CONCAT ](input);
7660
+ input = input.concat(input);
7229
7661
  }
7230
7662
  var hash = 5381;
7231
7663
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -7305,18 +7737,7 @@ function _getResponseText(xhr) {
7305
7737
  return null;
7306
7738
  }
7307
7739
  function isOverrideFn(httpXHROverride) {
7308
- return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
7309
- }
7310
- function _prependTransports(theTransports, newTransports) {
7311
- if (newTransports) {
7312
- if (isNumber(newTransports)) {
7313
- theTransports = [newTransports][_DYN_CONCAT ](theTransports);
7314
- }
7315
- else if (isArray(newTransports)) {
7316
- theTransports = newTransports[_DYN_CONCAT ](theTransports);
7317
- }
7318
- }
7319
- return theTransports;
7740
+ return httpXHROverride && httpXHROverride.sendPOST;
7320
7741
  }
7321
7742
  var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7322
7743
  endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)
@@ -7329,7 +7750,7 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7329
7750
  _a.isRetryDisabled = cfgDfBoolean(),
7330
7751
  _a[_DYN_IS_BEACON_API_DISABL3 ] = cfgDfBoolean(true),
7331
7752
  _a[_DYN_DISABLE_SEND_BEACON_7 ] = cfgDfBoolean(true),
7332
- _a.disableXhr = cfgDfBoolean(),
7753
+ _a[_DYN_DISABLE_XHR ] = cfgDfBoolean(),
7333
7754
  _a[_DYN_ONUNLOAD_DISABLE_FET6 ] = cfgDfBoolean(),
7334
7755
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = cfgDfBoolean(),
7335
7756
  _a[_DYN_INSTRUMENTATION_KEY$1 ] = UNDEFINED_VALUE,
@@ -7394,6 +7815,7 @@ var Sender = /** @class */ (function (_super) {
7394
7815
  var _xhrSend;
7395
7816
  var _fallbackSend;
7396
7817
  var _disableBeaconSplit;
7818
+ var _sendPostMgr;
7397
7819
  dynamicProto(Sender, _this, function (_self, _base) {
7398
7820
  _initDefaults();
7399
7821
  _self.pause = function () {
@@ -7438,11 +7860,11 @@ var Sender = /** @class */ (function (_super) {
7438
7860
  _self.addHeader = function (name, value) {
7439
7861
  _headers[name] = value;
7440
7862
  };
7441
- _self.initialize = function (config, core, extensions, pluginChain) {
7863
+ _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
7442
7864
  if (_self.isInitialized()) {
7443
7865
  _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 28 , "Sender is already initialized");
7444
7866
  }
7445
- _base.initialize(config, core, extensions, pluginChain);
7867
+ _base[_DYN_INITIALIZE ](config, core, extensions, pluginChain);
7446
7868
  var identifier = _self.identifier;
7447
7869
  _serializer = new Serializer(core.logger);
7448
7870
  _consecutiveErrors = 0;
@@ -7477,7 +7899,7 @@ var Sender = /** @class */ (function (_super) {
7477
7899
  _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false && isBeaconsSupported();
7478
7900
  _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false && isBeaconsSupported();
7479
7901
  _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 ];
7480
- _disableXhr = !!senderConfig.disableXhr;
7902
+ _disableXhr = !!senderConfig[_DYN_DISABLE_XHR ];
7481
7903
  var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE ];
7482
7904
  var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 ] &&
7483
7905
  (!!bufferOverride || utlCanUseSessionStorage());
@@ -7519,13 +7941,21 @@ var Sender = /** @class */ (function (_super) {
7519
7941
  else {
7520
7942
  _customHeaders = null;
7521
7943
  }
7522
- _enableSendPromise = senderConfig.enableSendPromise;
7944
+ _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE ];
7945
+ var sendPostConfig = _getSendPostMgrConfig();
7946
+ if (!_sendPostMgr) {
7947
+ _sendPostMgr = new SenderPostManager();
7948
+ _sendPostMgr[_DYN_INITIALIZE ](sendPostConfig, diagLog);
7949
+ }
7950
+ else {
7951
+ _sendPostMgr.SetConfig(sendPostConfig);
7952
+ }
7523
7953
  var customInterface = senderConfig.httpXHROverride;
7524
7954
  var httpInterface = null;
7525
7955
  var syncInterface = null;
7526
- var theTransports = _prependTransports([3 , 1 , 2 ], senderConfig.transports);
7527
- httpInterface = _getSenderInterface(theTransports, false);
7528
- var xhrInterface = { sendPOST: _xhrSender };
7956
+ var theTransports = prependTransports([3 , 1 , 2 ], senderConfig.transports);
7957
+ httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](theTransports, false);
7958
+ var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();
7529
7959
  _xhrSend = function (payload, isAsync) {
7530
7960
  return _doSend(xhrInterface, payload, isAsync);
7531
7961
  };
@@ -7539,11 +7969,11 @@ var Sender = /** @class */ (function (_super) {
7539
7969
  if (_fetchKeepAlive) {
7540
7970
  _syncUnloadSender = _fetchKeepAliveSender;
7541
7971
  }
7542
- var syncTransports = _prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
7972
+ var syncTransports = prependTransports([3 , 1 ], senderConfig[_DYN_UNLOAD_TRANSPORTS ]);
7543
7973
  if (!_fetchKeepAlive) {
7544
7974
  syncTransports = syncTransports.filter(function (transport) { return transport !== 2 ; });
7545
7975
  }
7546
- syncInterface = _getSenderInterface(syncTransports, true);
7976
+ syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ](syncTransports, true);
7547
7977
  syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);
7548
7978
  if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS ] || !_syncUnloadSender) && syncInterface) {
7549
7979
  _syncUnloadSender = function (payload, isAsync) {
@@ -7585,10 +8015,8 @@ var Sender = /** @class */ (function (_super) {
7585
8015
  _self.isCompletelyIdle = function () {
7586
8016
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
7587
8017
  };
7588
- _self[_DYN__XHR_READY_STATE_CHA8 ] = function (xhr, payload, countOfItemsInPayload) {
7589
- if (xhr.readyState === 4) {
7590
- _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
7591
- }
8018
+ _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
8019
+ return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
7592
8020
  };
7593
8021
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
7594
8022
  if (async === void 0) { async = true; }
@@ -7664,7 +8092,7 @@ var Sender = /** @class */ (function (_super) {
7664
8092
  _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
7665
8093
  }
7666
8094
  if (failed[_DYN_LENGTH ] > 0) {
7667
- _self[_DYN__ON_ERROR ](failed, _formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
8095
+ _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
7668
8096
  }
7669
8097
  if (retry[_DYN_LENGTH ] > 0) {
7670
8098
  _resendPayload(retry);
@@ -7677,22 +8105,89 @@ var Sender = /** @class */ (function (_super) {
7677
8105
  _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
7678
8106
  };
7679
8107
  _self._xdrOnLoad = function (xdr, payload) {
8108
+ return _xdrOnLoad(xdr, payload);
8109
+ };
8110
+ function _xdrOnLoad(xdr, payload) {
7680
8111
  var responseText = _getResponseText(xdr);
7681
8112
  if (xdr && (responseText + "" === "200" || responseText === "")) {
7682
8113
  _consecutiveErrors = 0;
7683
8114
  _self[_DYN__ON_SUCCESS ](payload, 0);
7684
8115
  }
7685
8116
  else {
7686
- var results = _parseResponse(responseText);
8117
+ var results = parseResponse(responseText);
7687
8118
  if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
7688
8119
  && !_isRetryDisabled) {
7689
8120
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
7690
8121
  }
7691
8122
  else {
7692
- _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr));
8123
+ _self[_DYN__ON_ERROR ](payload, formatErrorMessageXdr(xdr));
7693
8124
  }
7694
8125
  }
7695
- };
8126
+ }
8127
+ function _getSendPostMgrConfig() {
8128
+ var _a;
8129
+ try {
8130
+ var onCompleteFuncs = {
8131
+ xdrOnComplete: function (xdr, oncomplete, payload) {
8132
+ var data = _getPayloadArr(payload);
8133
+ if (!data) {
8134
+ return;
8135
+ }
8136
+ return _xdrOnLoad(xdr, data);
8137
+ },
8138
+ fetchOnComplete: function (response, onComplete, resValue, payload) {
8139
+ var data = _getPayloadArr(payload);
8140
+ if (!data) {
8141
+ return;
8142
+ }
8143
+ return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH ], response.statusText, resValue || "");
8144
+ },
8145
+ xhrOnComplete: function (request, oncomplete, payload) {
8146
+ var data = _getPayloadArr(payload);
8147
+ if (!data) {
8148
+ return;
8149
+ }
8150
+ return _xhrReadyStateChange(request, data, data[_DYN_LENGTH ]);
8151
+ },
8152
+ beaconOnRetry: function (data, onComplete, canSend) {
8153
+ return _onBeaconRetry(data, onComplete, canSend);
8154
+ }
8155
+ };
8156
+ var config = (_a = {},
8157
+ _a[_DYN_ENABLE_SEND_PROMISE ] = _enableSendPromise,
8158
+ _a.isOneDs = false,
8159
+ _a.disableCredentials = false,
8160
+ _a[_DYN_DISABLE_XHR ] = _disableXhr,
8161
+ _a.disableBeacon = !_beaconNormalSupported,
8162
+ _a.disableBeaconSync = !_beaconOnUnloadSupported,
8163
+ _a.senderOnCompleteCallBack = onCompleteFuncs,
8164
+ _a);
8165
+ return config;
8166
+ }
8167
+ catch (e) {
8168
+ }
8169
+ return null;
8170
+ }
8171
+ function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {
8172
+ if (xhr.readyState === 4) {
8173
+ _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
8174
+ }
8175
+ }
8176
+ function _getPayloadArr(payload) {
8177
+ try {
8178
+ if (payload) {
8179
+ var internalPayload = payload;
8180
+ var arr = internalPayload[_DYN_ORI_PAYLOAD ];
8181
+ if (arr && arr[_DYN_LENGTH ]) {
8182
+ return arr;
8183
+ }
8184
+ return null;
8185
+ }
8186
+ }
8187
+ catch (e) {
8188
+ }
8189
+ return null;
8190
+ }
7696
8191
  function _validate(telemetryItem, diagLogger) {
7697
8192
  if (_disableTelemetry) {
7698
8193
  return false;
@@ -7788,36 +8283,6 @@ var Sender = /** @class */ (function (_super) {
7788
8283
  function _isSampledIn(envelope) {
7789
8284
  return _self._sample.isSampledIn(envelope);
7790
8285
  }
7791
- function _getSenderInterface(transports, syncSupport) {
7792
- var _a;
7793
- var transportType = null;
7794
- var sendPostFunc = null;
7795
- var lp = 0;
7796
- while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
7797
- transportType = transports[lp];
7798
- if (!_disableXhr && transportType === 1 ) {
7799
- if (useXDomainRequest()) {
7800
- sendPostFunc = _xdrSender;
7801
- }
7802
- else if (isXhrSupported()) {
7803
- sendPostFunc = _xhrSender;
7804
- }
7805
- }
7806
- else if (transportType === 2 && isFetchSupported(syncSupport)) {
7807
- sendPostFunc = _fetchSender;
7808
- }
7809
- else if (transportType === 3 && (syncSupport ? _beaconOnUnloadSupported : _beaconNormalSupported)) {
7810
- sendPostFunc = _beaconSender;
7811
- }
7812
- lp++;
7813
- }
7814
- if (sendPostFunc) {
7815
- return _a = {},
7816
- _a[_DYN_SEND_POST ] = sendPostFunc,
7817
- _a;
7818
- }
7819
- return null;
7820
- }
7821
8286
  function _getOnComplete(payload, status, headers, response) {
7822
8287
  if (status === 200 && payload) {
7823
8288
  _self._onSuccess(payload, payload[_DYN_LENGTH ]);
@@ -7832,7 +8297,7 @@ var Sender = /** @class */ (function (_super) {
7832
8297
  return _getOnComplete(payload, status, headers, response);
7833
8298
  };
7834
8299
  var payloadData = _getPayload(payload);
7835
- var sendPostFunc = sendInterface && sendInterface[_DYN_SEND_POST ];
8300
+ var sendPostFunc = sendInterface && sendInterface.sendPOST;
7836
8301
  if (sendPostFunc && payloadData) {
7837
8302
  if (markAsSent) {
7838
8303
  _self._buffer[_DYN_MARK_AS_SENT ](payload);
@@ -7844,7 +8309,7 @@ var Sender = /** @class */ (function (_super) {
7844
8309
  function _getPayload(payload) {
7845
8310
  var _a;
7846
8311
  if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
7847
- var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
8312
+ var batch = _self[_DYN__BUFFER ].batchPayloads(payload);
7848
8313
  var payloadData = (_a = {},
7849
8314
  _a[_DYN_DATA ] = batch,
7850
8315
  _a.urlString = _endpointUrl,
@@ -7857,9 +8322,6 @@ var Sender = /** @class */ (function (_super) {
7857
8322
  }
7858
8323
  return null;
7859
8324
  }
7860
- function _fetchSender(payload, oncomplete, sync) {
7861
- return _doFetchSender(payload, oncomplete, false);
7862
- }
7863
8325
  function _checkMaxSize(incomingPayload) {
7864
8326
  var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
7865
8327
  if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
@@ -7873,7 +8335,7 @@ var Sender = /** @class */ (function (_super) {
7873
8335
  function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {
7874
8336
  var response = null;
7875
8337
  if (!_self._appId) {
7876
- response = _parseResponse(res);
8338
+ response = parseResponse(res);
7877
8339
  if (response && response.appId) {
7878
8340
  _self._appId = response.appId;
7879
8341
  }
@@ -7905,7 +8367,7 @@ var Sender = /** @class */ (function (_super) {
7905
8367
  _checkAndUpdateEndPointUrl(responseUrl);
7906
8368
  if (status === 206) {
7907
8369
  if (!response) {
7908
- response = _parseResponse(res);
8370
+ response = parseResponse(res);
7909
8371
  }
7910
8372
  if (response && !_isRetryDisabled) {
7911
8373
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, response);
@@ -7933,223 +8395,61 @@ var Sender = /** @class */ (function (_super) {
7933
8395
  }
7934
8396
  return false;
7935
8397
  }
7936
- function _doOnComplete(oncomplete, status, headers, response) {
7937
- try {
7938
- oncomplete(status, headers, response);
7939
- }
7940
- catch (e) {
7941
- }
7942
- }
7943
8398
  function _doUnloadSend(payload, isAsync) {
7944
8399
  if (_syncUnloadSender) {
7945
8400
  _syncUnloadSender(payload, false);
7946
8401
  }
7947
8402
  else {
7948
- var payloadData = _getPayload(payload);
7949
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
7950
- _beaconSender(payloadData);
7951
- }
7952
- }
7953
- function _doBeaconSend(payload, oncomplete) {
7954
- var nav = getNavigator();
7955
- var url = _endpointUrl;
7956
- var buffer = _self[_DYN__BUFFER ];
7957
- var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
7958
- var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
7959
- var queued = nav.sendBeacon(url, plainTextBatch);
7960
- if (queued) {
7961
- _self._onSuccess(payload, payload[_DYN_LENGTH ]);
8403
+ var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([3 ], true);
8404
+ return _doSend(beaconInst, payload, isAsync);
7962
8405
  }
7963
- return queued;
7964
8406
  }
7965
- function _beaconSender(payload, oncomplete, sync) {
8407
+ function _onBeaconRetry(payload, onComplete, canSend) {
7966
8408
  var internalPayload = payload;
7967
8409
  var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD ];
7968
- if (isArray(data) && data[_DYN_LENGTH ] > 0) {
7969
- if (!_doBeaconSend(data)) {
7970
- if (!_disableBeaconSplit) {
7971
- var droppedPayload = [];
7972
- for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
7973
- var thePayload = data[lp];
7974
- if (!_doBeaconSend([thePayload])) {
7975
- droppedPayload[_DYN_PUSH ](thePayload);
7976
- }
7977
- }
7978
- if (droppedPayload[_DYN_LENGTH ] > 0) {
7979
- _fallbackSend && _fallbackSend(droppedPayload, true);
7980
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
7981
- }
8410
+ if (!_disableBeaconSplit) {
8411
+ var droppedPayload = [];
8412
+ for (var lp = 0; lp < data[_DYN_LENGTH ]; lp++) {
8413
+ var thePayload = data[lp];
8414
+ var arr = [thePayload];
8415
+ var item = _getPayload(arr);
8416
+ if (!canSend(item, onComplete)) {
8417
+ droppedPayload[_DYN_PUSH ](thePayload);
7982
8418
  }
7983
8419
  else {
7984
- _fallbackSend && _fallbackSend(data, true);
7985
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8420
+ _self._onSuccess(arr, arr[_DYN_LENGTH ]);
7986
8421
  }
7987
8422
  }
7988
- }
7989
- }
7990
- function _xhrSender(payload, oncomplete, sync) {
7991
- var internalPayload = payload;
7992
- var thePromise;
7993
- var resolveFunc;
7994
- var rejectFunc;
7995
- var xhr = new XMLHttpRequest();
7996
- var endPointUrl = _endpointUrl;
7997
- try {
7998
- xhr[DisabledPropertyName] = true;
7999
- }
8000
- catch (e) {
8001
- }
8002
- xhr.open("POST", endPointUrl, !sync);
8003
- xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
8004
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
8005
- xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
8006
- }
8007
- arrForEach(objKeys(_headers), function (headerName) {
8008
- xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
8009
- });
8010
- xhr.onreadystatechange = function () {
8011
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8012
- _self._xhrReadyStateChange(xhr, oriPayload, oriPayload[_DYN_LENGTH ]);
8013
- if (xhr.readyState === 4) {
8014
- resolveFunc && resolveFunc(true);
8423
+ if (droppedPayload[_DYN_LENGTH ] > 0) {
8424
+ _fallbackSend && _fallbackSend(droppedPayload, true);
8425
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8015
8426
  }
8016
- };
8017
- xhr.onerror = function (event) {
8018
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
8019
- rejectFunc && rejectFunc(event);
8020
- };
8021
- if (!sync && _enableSendPromise) {
8022
- thePromise = createPromise(function (resolve, reject) {
8023
- resolveFunc = resolve;
8024
- rejectFunc = reject;
8025
- });
8026
8427
  }
8027
- xhr.send(payload[_DYN_DATA ]);
8028
- return thePromise;
8428
+ else {
8429
+ _fallbackSend && _fallbackSend(data, true);
8430
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8431
+ }
8029
8432
  }
8030
8433
  function _fetchKeepAliveSender(payload, isAsync) {
8031
- var onComplete = function (status, headers, response) {
8032
- return _getOnComplete(payload, status, headers, response);
8033
- };
8434
+ var transport = null;
8034
8435
  if (isArray(payload)) {
8035
8436
  var payloadSize = payload[_DYN_LENGTH ];
8036
8437
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
8037
8438
  payloadSize += payload[lp][_DYN_LENGTH ];
8038
8439
  }
8039
- var payloadData = _getPayload(payload);
8040
- _self._buffer[_DYN_MARK_AS_SENT ](payload);
8041
- if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
8042
- _doFetchSender(payloadData, onComplete, true);
8440
+ var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
8441
+ if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
8442
+ transport = 2 ;
8043
8443
  }
8044
8444
  else if (isBeaconsSupported()) {
8045
- _beaconSender(payloadData);
8445
+ transport = 3 ;
8046
8446
  }
8047
8447
  else {
8048
- _fallbackSend && _fallbackSend(payload, true);
8448
+ transport = 1 ;
8049
8449
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
8050
8450
  }
8051
- }
8052
- }
8053
- function _doFetchSender(payload, oncomplete, sync) {
8054
- var _a;
8055
- var endPointUrl = _endpointUrl;
8056
- var internalPayload = payload;
8057
- var batch = internalPayload[_DYN_DATA ];
8058
- var plainTextBatch = new Blob([batch], { type: "application/json" });
8059
- var thePromise;
8060
- var resolveFunc;
8061
- var rejectFunc;
8062
- var requestHeaders = new Headers();
8063
- var batchLength = batch[_DYN_LENGTH ];
8064
- var ignoreResponse = false;
8065
- var responseHandled = false;
8066
- if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
8067
- requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
8068
- }
8069
- arrForEach(objKeys(_headers), function (headerName) {
8070
- requestHeaders.append(headerName, _headers[headerName]);
8071
- });
8072
- var init = (_a = {
8073
- method: "POST",
8074
- headers: requestHeaders,
8075
- body: plainTextBatch
8076
- },
8077
- _a[DisabledPropertyName] = true
8078
- ,
8079
- _a);
8080
- if (sync) {
8081
- init.keepalive = true;
8082
- ignoreResponse = true;
8083
- _syncFetchPayload += batchLength;
8084
- }
8085
- var request = new Request(endPointUrl, init);
8086
- try {
8087
- request[DisabledPropertyName] = true;
8088
- }
8089
- catch (e) {
8090
- }
8091
- if (!sync && _enableSendPromise) {
8092
- thePromise = createPromise(function (resolve, reject) {
8093
- resolveFunc = resolve;
8094
- rejectFunc = reject;
8095
- });
8096
- }
8097
- try {
8098
- doAwaitResponse(fetch(request), function (result) {
8099
- if (sync) {
8100
- _syncFetchPayload -= batchLength;
8101
- batchLength = 0;
8102
- }
8103
- if (!responseHandled) {
8104
- responseHandled = true;
8105
- if (!result.rejected) {
8106
- var response_1 = result.value;
8107
- if (!response_1.ok) {
8108
- _doOnComplete(oncomplete, 400, {}, response_1.statusText);
8109
- resolveFunc && resolveFunc(false);
8110
- }
8111
- else {
8112
- doAwaitResponse(response_1.text(), function (resp) {
8113
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8114
- _checkResponsStatus(response_1.status, oriPayload, response_1.url, oriPayload[_DYN_LENGTH ], response_1.statusText, resp.value || "");
8115
- resolveFunc && resolveFunc(true);
8116
- });
8117
- }
8118
- }
8119
- else {
8120
- _doOnComplete(oncomplete, 400, {}, result.reason && result.reason.message);
8121
- rejectFunc && rejectFunc(result.reason);
8122
- }
8123
- }
8124
- });
8125
- }
8126
- catch (e) {
8127
- if (!responseHandled) {
8128
- _doOnComplete(oncomplete, 400, {}, dumpObj(e));
8129
- rejectFunc && rejectFunc(e);
8130
- }
8131
- }
8132
- if (ignoreResponse && !responseHandled) {
8133
- responseHandled = true;
8134
- _doOnComplete(oncomplete, 200, {});
8135
- resolveFunc && resolveFunc(true);
8136
- }
8137
- return thePromise;
8138
- }
8139
- function _parseResponse(response) {
8140
- try {
8141
- if (response && response !== "") {
8142
- var result = getJSON().parse(response);
8143
- if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED ] &&
8144
- result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH ]) {
8145
- return result;
8146
- }
8147
- }
8148
- }
8149
- catch (e) {
8150
- _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
8151
- response: response
8152
- });
8451
+ var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_XHR_INST ]([transport], true);
8452
+ return _doSend(inst, payload, isAsync);
8153
8453
  }
8154
8454
  return null;
8155
8455
  }
@@ -8208,41 +8508,6 @@ var Sender = /** @class */ (function (_super) {
8208
8508
  || statusCode === 503
8209
8509
  || statusCode === 504;
8210
8510
  }
8211
- function _formatErrorMessageXhr(xhr, message) {
8212
- if (xhr) {
8213
- return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + _getResponseText(xhr) || xhr.response || "";
8214
- }
8215
- return message;
8216
- }
8217
- function _xdrSender(payload, oncomplete, sync) {
8218
- var internalPayload = payload;
8219
- var _window = getWindow();
8220
- var xdr = new XDomainRequest();
8221
- var data = internalPayload[_DYN_DATA ];
8222
- xdr.onload = function () {
8223
- var oriPayload = internalPayload[_DYN_ORI_PAYLOAD ];
8224
- _self._xdrOnLoad(xdr, oriPayload);
8225
- };
8226
- xdr.onerror = function () {
8227
- _doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
8228
- };
8229
- var hostingProtocol = _window && _window.location && _window.location.protocol || "";
8230
- if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {
8231
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
8232
- "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
8233
- _self._buffer[_DYN_CLEAR ]();
8234
- return;
8235
- }
8236
- var endpointUrl = _endpointUrl.replace(/^(https?:)/, "");
8237
- xdr.open("POST", endpointUrl);
8238
- xdr.send(data);
8239
- }
8240
- function _formatErrorMessageXdr(xdr, message) {
8241
- if (xdr) {
8242
- return "XDomainRequest,Response:" + _getResponseText(xdr) || "";
8243
- }
8244
- return message;
8245
- }
8246
8511
  function _getNotifyMgr() {
8247
8512
  var func = "getNotifyMgr";
8248
8513
  if (_self.core[func]) {
@@ -8303,6 +8568,7 @@ var Sender = /** @class */ (function (_super) {
8303
8568
  _disableBeaconSplit = false;
8304
8569
  _xhrSend = null;
8305
8570
  _fallbackSend = null;
8571
+ _sendPostMgr = null;
8306
8572
  objDefine(_self, "_senderConfig", {
8307
8573
  g: function () {
8308
8574
  return objExtend({}, defaultAppInsightsChannelConfig);
@@ -8328,6 +8594,8 @@ var Sender = /** @class */ (function (_super) {
8328
8594
 
8329
8595
  var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
8330
8596
  var _DYN_CONNECTION_STRING = "connectionString";
8597
+ var _DYN_ENDPOINT_URL = "endpointUrl";
8598
+ var _DYN_USER_OVERRIDE_ENDPOI0 = "userOverrideEndpointUrl";
8331
8599
 
8332
8600
  var defaultConfigValues = {
8333
8601
  diagnosticLogInterval: cfgDfValidate(_chkDiagLevel, 10000)
@@ -8368,9 +8636,10 @@ var ApplicationInsights = /** @class */ (function () {
8368
8636
  if (_config[_DYN_CONNECTION_STRING ]) {
8369
8637
  var cs = parseConnectionString(_config[_DYN_CONNECTION_STRING ]);
8370
8638
  var ingest = cs.ingestionendpoint;
8371
- _config.endpointUrl = ingest ? (ingest + DEFAULT_BREEZE_PATH) : _config.endpointUrl;
8639
+ _config[_DYN_ENDPOINT_URL ] = _config[_DYN_USER_OVERRIDE_ENDPOI0 ] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 ] : (ingest + DEFAULT_BREEZE_PATH);
8372
8640
  _config[_DYN_INSTRUMENTATION_KEY ] = cs.instrumentationkey || _config[_DYN_INSTRUMENTATION_KEY ];
8373
8641
  }
8642
+ _config[_DYN_ENDPOINT_URL ] = _config[_DYN_USER_OVERRIDE_ENDPOI0 ] ? _config[_DYN_USER_OVERRIDE_ENDPOI0 ] : _config[_DYN_ENDPOINT_URL ];
8374
8643
  }));
8375
8644
  core.initialize(_config, [new Sender()]);
8376
8645
  }