@microsoft/applicationinsights-web 2.7.0-beta.1 → 2.7.1-nightly.202110-04

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 (53) hide show
  1. package/browser/{ai.2.7.0-beta.1.cjs.js → ai.2.7.1-nightly.202110-04.cjs.js} +640 -539
  2. package/browser/ai.2.7.1-nightly.202110-04.cjs.js.map +1 -0
  3. package/browser/ai.2.7.1-nightly.202110-04.cjs.min.js +6 -0
  4. package/browser/ai.2.7.1-nightly.202110-04.cjs.min.js.map +1 -0
  5. package/browser/{ai.2.7.0-beta.1.gbl.js → ai.2.7.1-nightly.202110-04.gbl.js} +641 -540
  6. package/browser/ai.2.7.1-nightly.202110-04.gbl.js.map +1 -0
  7. package/browser/ai.2.7.1-nightly.202110-04.gbl.min.js +6 -0
  8. package/browser/ai.2.7.1-nightly.202110-04.gbl.min.js.map +1 -0
  9. package/browser/ai.2.7.1-nightly.202110-04.integrity.json +66 -0
  10. package/browser/{ai.2.7.0-beta.1.js → ai.2.7.1-nightly.202110-04.js} +642 -541
  11. package/browser/ai.2.7.1-nightly.202110-04.js.map +1 -0
  12. package/browser/ai.2.7.1-nightly.202110-04.min.js +6 -0
  13. package/browser/ai.2.7.1-nightly.202110-04.min.js.map +1 -0
  14. package/browser/ai.2.cjs.js +639 -538
  15. package/browser/ai.2.cjs.js.map +1 -1
  16. package/browser/ai.2.cjs.min.js +2 -2
  17. package/browser/ai.2.cjs.min.js.map +1 -1
  18. package/browser/ai.2.gbl.js +640 -539
  19. package/browser/ai.2.gbl.js.map +1 -1
  20. package/browser/ai.2.gbl.min.js +2 -2
  21. package/browser/ai.2.gbl.min.js.map +1 -1
  22. package/browser/ai.2.js +641 -540
  23. package/browser/ai.2.js.map +1 -1
  24. package/browser/ai.2.min.js +2 -2
  25. package/browser/ai.2.min.js.map +1 -1
  26. package/dist/applicationinsights-web.api.json +343 -86
  27. package/dist/applicationinsights-web.api.md +19 -7
  28. package/dist/applicationinsights-web.d.ts +112 -168
  29. package/dist/applicationinsights-web.js +641 -540
  30. package/dist/applicationinsights-web.js.map +1 -1
  31. package/dist/applicationinsights-web.min.js +2 -2
  32. package/dist/applicationinsights-web.min.js.map +1 -1
  33. package/dist/applicationinsights-web.rollup.d.ts +112 -168
  34. package/dist-esm/ApplicationInsightsContainer.js +1 -1
  35. package/dist-esm/ApplicationInsightsDeprecated.js +1 -1
  36. package/dist-esm/Init.js +1 -1
  37. package/dist-esm/Initialization.js +8 -6
  38. package/dist-esm/Initialization.js.map +1 -1
  39. package/dist-esm/applicationinsights-web.js +1 -1
  40. package/package.json +79 -79
  41. package/src/Initialization.ts +10 -5
  42. package/types/Initialization.d.ts +3 -1
  43. package/types/tsdoc-metadata.json +1 -1
  44. package/browser/ai.2.7.0-beta.1.cjs.js.map +0 -1
  45. package/browser/ai.2.7.0-beta.1.cjs.min.js +0 -6
  46. package/browser/ai.2.7.0-beta.1.cjs.min.js.map +0 -1
  47. package/browser/ai.2.7.0-beta.1.gbl.js.map +0 -1
  48. package/browser/ai.2.7.0-beta.1.gbl.min.js +0 -6
  49. package/browser/ai.2.7.0-beta.1.gbl.min.js.map +0 -1
  50. package/browser/ai.2.7.0-beta.1.integrity.json +0 -66
  51. package/browser/ai.2.7.0-beta.1.js.map +0 -1
  52. package/browser/ai.2.7.0-beta.1.min.js +0 -6
  53. package/browser/ai.2.7.0-beta.1.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Web, 2.7.0-beta.1
2
+ * Application Insights JavaScript SDK - Web, 2.7.1-nightly.202110-04
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  'use strict';
@@ -436,8 +436,6 @@ var _InternalMessageId = {
436
436
  var strOnPrefix = "on";
437
437
  var strAttachEvent = "attachEvent";
438
438
  var strAddEventHelper = "addEventListener";
439
- var strDetachEvent = "detachEvent";
440
- var strRemoveEventListener = "removeEventListener";
441
439
  var _objDefineProperty = ObjDefineProperty;
442
440
  function objToString(obj) {
443
441
  return ObjProto.toString.call(obj);
@@ -482,21 +480,6 @@ function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {
482
480
  }
483
481
  return result;
484
482
  }
485
- function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {
486
- if (useCapture === void 0) { useCapture = false; }
487
- if (!isNullOrUndefined(obj)) {
488
- try {
489
- if (!isNullOrUndefined(obj[strRemoveEventListener])) {
490
- obj[strRemoveEventListener](eventNameWithoutOn, handlerRef, useCapture);
491
- }
492
- else if (!isNullOrUndefined(obj[strDetachEvent])) {
493
- obj[strDetachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);
494
- }
495
- }
496
- catch (e) {
497
- }
498
- }
499
- }
500
483
  function normalizeJsName(name) {
501
484
  var value = name;
502
485
  var match = /([^\w\d_$])/g;
@@ -579,33 +562,45 @@ function toISOString(date) {
579
562
  }
580
563
  function arrForEach(arr, callbackfn, thisArg) {
581
564
  var len = arr.length;
582
- for (var idx = 0; idx < len; idx++) {
583
- if (idx in arr) {
584
- if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {
585
- break;
565
+ try {
566
+ for (var idx = 0; idx < len; idx++) {
567
+ if (idx in arr) {
568
+ if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {
569
+ break;
570
+ }
586
571
  }
587
572
  }
588
573
  }
574
+ catch (e) {
575
+ }
589
576
  }
590
577
  function arrIndexOf(arr, searchElement, fromIndex) {
591
578
  var len = arr.length;
592
579
  var from = fromIndex || 0;
593
- for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
594
- if (lp in arr && arr[lp] === searchElement) {
595
- return lp;
580
+ try {
581
+ for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
582
+ if (lp in arr && arr[lp] === searchElement) {
583
+ return lp;
584
+ }
596
585
  }
597
586
  }
587
+ catch (e) {
588
+ }
598
589
  return -1;
599
590
  }
600
591
  function arrMap(arr, callbackfn, thisArg) {
601
592
  var len = arr.length;
602
593
  var _this = thisArg || arr;
603
594
  var results = new Array(len);
604
- for (var lp = 0; lp < len; lp++) {
605
- if (lp in arr) {
606
- results[lp] = callbackfn.call(_this, arr[lp], arr);
595
+ try {
596
+ for (var lp = 0; lp < len; lp++) {
597
+ if (lp in arr) {
598
+ results[lp] = callbackfn.call(_this, arr[lp], arr);
599
+ }
607
600
  }
608
601
  }
602
+ catch (e) {
603
+ }
609
604
  return results;
610
605
  }
611
606
  function arrReduce(arr, callbackfn, initialValue) {
@@ -805,6 +800,33 @@ var strTrident = "trident/";
805
800
  var _isTrident = null;
806
801
  var _navUserAgentCheck = null;
807
802
  var _enableMocks = false;
803
+ var _useXDomainRequest = null;
804
+ var _beaconsSupported = null;
805
+ function _hasProperty(theClass, property) {
806
+ var supported = false;
807
+ if (theClass) {
808
+ try {
809
+ supported = property in theClass;
810
+ if (!supported) {
811
+ var proto = theClass[strShimPrototype];
812
+ if (proto) {
813
+ supported = property in proto;
814
+ }
815
+ }
816
+ }
817
+ catch (e) {
818
+ }
819
+ if (!supported) {
820
+ try {
821
+ var tmp = new theClass();
822
+ supported = !isUndefined(tmp[property]);
823
+ }
824
+ catch (e) {
825
+ }
826
+ }
827
+ }
828
+ return supported;
829
+ }
808
830
  function getGlobalInst(name) {
809
831
  var gbl = getGlobal();
810
832
  if (gbl && gbl[name]) {
@@ -932,6 +954,45 @@ function dumpObj(object) {
932
954
  }
933
955
  return objectTypeDump + propertyValueDump;
934
956
  }
957
+ function isBeaconsSupported() {
958
+ if (_beaconsSupported === null) {
959
+ _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);
960
+ }
961
+ return _beaconsSupported;
962
+ }
963
+ function isFetchSupported(withKeepAlive) {
964
+ var isSupported = false;
965
+ try {
966
+ var fetchApi = getGlobalInst("fetch");
967
+ isSupported = !!fetchApi;
968
+ var request = getGlobalInst("Request");
969
+ if (isSupported && withKeepAlive && request) {
970
+ isSupported = _hasProperty(request, "keepalive");
971
+ }
972
+ }
973
+ catch (e) {
974
+ }
975
+ return isSupported;
976
+ }
977
+ function useXDomainRequest() {
978
+ if (_useXDomainRequest === null) {
979
+ _useXDomainRequest = (typeof XDomainRequest !== undefined);
980
+ if (_useXDomainRequest && isXhrSupported()) {
981
+ _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst("XMLHttpRequest"), "withCredentials");
982
+ }
983
+ }
984
+ return _useXDomainRequest;
985
+ }
986
+ function isXhrSupported() {
987
+ var isSupported = false;
988
+ try {
989
+ var xmlHttpRequest = getGlobalInst("XMLHttpRequest");
990
+ isSupported = !!xmlHttpRequest;
991
+ }
992
+ catch (e) {
993
+ }
994
+ return isSupported;
995
+ }
935
996
 
936
997
  var AiNonUserActionablePrefix = "AI (Internal): ";
937
998
  var AiUserActionablePrefix = "AI: ";
@@ -1238,7 +1299,7 @@ var TelemetryPluginChain = /** @class */ (function () {
1238
1299
  catch (error) {
1239
1300
  var hasRun = _nextProxy && _nextProxy._hasRun;
1240
1301
  if (!_nextProxy || !hasRun) {
1241
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, "Plugin [" + plugin.identifier + "] failed during processTelemetry - " + error);
1302
+ itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, "Plugin [" + plugin.identifier + "] failed during processTelemetry - " + dumpObj(error));
1242
1303
  }
1243
1304
  if (_nextProxy && !hasRun) {
1244
1305
  _nextProxy.processTelemetry(env, itemCtx);
@@ -1857,7 +1918,7 @@ var BaseCore = /** @class */ (function () {
1857
1918
  _self.logger = logger;
1858
1919
  }
1859
1920
  var allExtensions = [];
1860
- allExtensions.push.apply(allExtensions, __spreadArrayFn(__spreadArrayFn([], extensions), config.extensions));
1921
+ allExtensions.push.apply(allExtensions, __spreadArrayFn(__spreadArrayFn([], extensions, false), config.extensions));
1861
1922
  allExtensions = sortPlugins(allExtensions);
1862
1923
  var coreExtensions = [];
1863
1924
  var extPriorities = {};
@@ -2037,6 +2098,7 @@ var AppInsightsCore = /** @class */ (function (_super) {
2037
2098
  __extendsFn(AppInsightsCore, _super);
2038
2099
  function AppInsightsCore() {
2039
2100
  var _this = _super.call(this) || this;
2101
+ var _internalLogPoller = 0;
2040
2102
  dynamicProto(AppInsightsCore, _this, function (_self, _base) {
2041
2103
  _self.initialize = function (config, extensions, logger, notificationManager) {
2042
2104
  _base.initialize(config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));
@@ -2068,7 +2130,10 @@ var AppInsightsCore = /** @class */ (function (_super) {
2068
2130
  if (!interval || !(interval > 0)) {
2069
2131
  interval = 10000;
2070
2132
  }
2071
- return setInterval(function () {
2133
+ if (_internalLogPoller) {
2134
+ _self.stopPollingInternalLogs();
2135
+ }
2136
+ _internalLogPoller = setInterval(function () {
2072
2137
  var queue = _self.logger ? _self.logger.queue : [];
2073
2138
  arrForEach(queue, function (logMessage) {
2074
2139
  var item = {
@@ -2082,6 +2147,13 @@ var AppInsightsCore = /** @class */ (function (_super) {
2082
2147
  });
2083
2148
  queue.length = 0;
2084
2149
  }, interval);
2150
+ return _internalLogPoller;
2151
+ };
2152
+ _self.stopPollingInternalLogs = function () {
2153
+ if (!_internalLogPoller)
2154
+ return;
2155
+ clearInterval(_internalLogPoller);
2156
+ _internalLogPoller = 0;
2085
2157
  };
2086
2158
  function _validateTelemetryItem(telemetryItem) {
2087
2159
  if (isNullOrUndefined(telemetryItem.name)) {
@@ -2177,7 +2249,7 @@ function addEventHandler(eventName, callback) {
2177
2249
  }
2178
2250
  var doc = getDocument();
2179
2251
  if (doc) {
2180
- result = EventHelper.Attach(doc, eventName, callback) || result;
2252
+ result = attachEvent(doc, eventName, callback) || result;
2181
2253
  }
2182
2254
  return result;
2183
2255
  }
@@ -2269,12 +2341,6 @@ var CoreUtils = {
2269
2341
  generateW3CId: generateW3CId
2270
2342
  };
2271
2343
  var GuidRegex = /[xy]/g;
2272
- var EventHelper = {
2273
- Attach: attachEvent,
2274
- AttachEvent: attachEvent,
2275
- Detach: detachEvent,
2276
- DetachEvent: detachEvent
2277
- };
2278
2344
  function _legacyCookieMgr(config, logger) {
2279
2345
  var cookieMgr = _gblCookieMgr(config, logger);
2280
2346
  var legacyCanUseCookies = CoreUtils._canUseCookies;
@@ -2657,10 +2723,6 @@ function msToTimeSpan(totalms) {
2657
2723
  hour = hour.length < 2 ? "0" + hour : hour;
2658
2724
  return (days > 0 ? days + "." : "") + hour + ":" + min + ":" + sec + "." + ms;
2659
2725
  }
2660
- function isBeaconApiSupported() {
2661
- var nav = getNavigator();
2662
- return ('sendBeacon' in nav && nav.sendBeacon);
2663
- }
2664
2726
  function getExtensionByName(extensions, identifier) {
2665
2727
  var extension = null;
2666
2728
  arrForEach(extensions, function (value) {
@@ -2681,6 +2743,7 @@ var ProcessLegacy = "ProcessLegacy";
2681
2743
  var HttpMethod = "http.method";
2682
2744
  var DEFAULT_BREEZE_ENDPOINT = "https://dc.services.visualstudio.com";
2683
2745
  var strNotSpecified = "not_specified";
2746
+ var strIkey = "iKey";
2684
2747
 
2685
2748
  var StorageType;
2686
2749
  (function (StorageType) {
@@ -2954,7 +3017,7 @@ var Util = {
2954
3017
  dump: dumpObj,
2955
3018
  getExceptionName: getExceptionName,
2956
3019
  addEventHandler: attachEvent,
2957
- IsBeaconApiSupported: isBeaconApiSupported,
3020
+ IsBeaconApiSupported: isBeaconsSupported,
2958
3021
  getExtension: getExtensionByName
2959
3022
  };
2960
3023
  var UrlHelper = {
@@ -3252,14 +3315,22 @@ function _formatMessage(theEvent, errorType) {
3252
3315
  return evtMessage || "";
3253
3316
  }
3254
3317
  function _isExceptionDetailsInternal(value) {
3255
- if (isObject(value)) {
3256
- return "hasFullStack" in value && "typeName" in value;
3318
+ try {
3319
+ if (isObject(value)) {
3320
+ return "hasFullStack" in value && "typeName" in value;
3321
+ }
3322
+ }
3323
+ catch (e) {
3257
3324
  }
3258
3325
  return false;
3259
3326
  }
3260
3327
  function _isExceptionInternal(value) {
3261
- if (isObject(value)) {
3262
- return ("ver" in value && "exceptions" in value && "properties" in value);
3328
+ try {
3329
+ if (isObject(value)) {
3330
+ return ("ver" in value && "exceptions" in value && "properties" in value);
3331
+ }
3332
+ }
3333
+ catch (e) {
3263
3334
  }
3264
3335
  return false;
3265
3336
  }
@@ -4034,10 +4105,15 @@ var TelemetryItemCreator = /** @class */ (function () {
4034
4105
  isNullOrUndefined(envelopeName)) {
4035
4106
  throw Error("Input doesn't contain all required fields");
4036
4107
  }
4108
+ var iKey = "";
4109
+ if (item[strIkey]) {
4110
+ iKey = item[strIkey];
4111
+ delete item[strIkey];
4112
+ }
4037
4113
  var telemetryItem = {
4038
4114
  name: envelopeName,
4039
4115
  time: toISOString(new Date()),
4040
- iKey: "",
4116
+ iKey: iKey,
4041
4117
  ext: systemProperties ? systemProperties : {},
4042
4118
  tags: [],
4043
4119
  data: {},
@@ -4973,7 +5049,7 @@ var ApplicationInsights = /** @class */ (function (_super) {
4973
5049
  config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
4974
5050
  return config;
4975
5051
  };
4976
- ApplicationInsights.Version = "2.7.0-beta.1";
5052
+ ApplicationInsights.Version = "2.7.1-nightly.202110-04";
4977
5053
  return ApplicationInsights;
4978
5054
  }(BaseTelemetryPlugin));
4979
5055
  var Timing = /** @class */ (function () {
@@ -5003,18 +5079,35 @@ var Timing = /** @class */ (function () {
5003
5079
  return Timing;
5004
5080
  }());
5005
5081
 
5006
- var ArraySendBuffer = /** @class */ (function () {
5007
- function ArraySendBuffer(config) {
5082
+ var BaseSendBuffer = /** @class */ (function () {
5083
+ function BaseSendBuffer(config) {
5008
5084
  var _buffer = [];
5009
- dynamicProto(ArraySendBuffer, this, function (_self) {
5085
+ this._get = function () {
5086
+ return _buffer;
5087
+ };
5088
+ this._set = function (buffer) {
5089
+ _buffer = buffer;
5090
+ return _buffer;
5091
+ };
5092
+ dynamicProto(BaseSendBuffer, this, function (_self) {
5010
5093
  _self.enqueue = function (payload) {
5011
5094
  _buffer.push(payload);
5012
5095
  };
5013
5096
  _self.count = function () {
5014
5097
  return _buffer.length;
5015
5098
  };
5099
+ _self.size = function () {
5100
+ var size = _buffer.length;
5101
+ for (var lp = 0; lp < _buffer.length; lp++) {
5102
+ size += _buffer[lp].length;
5103
+ }
5104
+ if (!config.emitLineDelimitedJson()) {
5105
+ size += 2;
5106
+ }
5107
+ return size;
5108
+ };
5016
5109
  _self.clear = function () {
5017
- _buffer.length = 0;
5110
+ _buffer = [];
5018
5111
  };
5019
5112
  _self.getItems = function () {
5020
5113
  return _buffer.slice(0);
@@ -5028,63 +5121,58 @@ var ArraySendBuffer = /** @class */ (function () {
5028
5121
  }
5029
5122
  return null;
5030
5123
  };
5124
+ });
5125
+ }
5126
+ return BaseSendBuffer;
5127
+ }());
5128
+ var ArraySendBuffer = /** @class */ (function (_super) {
5129
+ __extendsFn(ArraySendBuffer, _super);
5130
+ function ArraySendBuffer(config) {
5131
+ var _this = _super.call(this, config) || this;
5132
+ dynamicProto(ArraySendBuffer, _this, function (_self, _base) {
5031
5133
  _self.markAsSent = function (payload) {
5032
- _self.clear();
5134
+ _base.clear();
5033
5135
  };
5034
5136
  _self.clearSent = function (payload) {
5035
5137
  };
5036
5138
  });
5139
+ return _this;
5037
5140
  }
5038
5141
  return ArraySendBuffer;
5039
- }());
5040
- var SessionStorageSendBuffer = /** @class */ (function () {
5142
+ }(BaseSendBuffer));
5143
+ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5144
+ __extendsFn(SessionStorageSendBuffer, _super);
5041
5145
  function SessionStorageSendBuffer(logger, config) {
5146
+ var _this = _super.call(this, config) || this;
5042
5147
  var _bufferFullMessageSent = false;
5043
- var _buffer;
5044
- dynamicProto(SessionStorageSendBuffer, this, function (_self) {
5148
+ dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
5045
5149
  var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);
5046
5150
  var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);
5047
- _buffer = bufferItems.concat(notDeliveredItems);
5048
- if (_buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {
5049
- _buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;
5151
+ var buffer = _self._set(bufferItems.concat(notDeliveredItems));
5152
+ if (buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {
5153
+ buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;
5050
5154
  }
5051
5155
  _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);
5052
- _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);
5156
+ _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, buffer);
5053
5157
  _self.enqueue = function (payload) {
5054
- if (_buffer.length >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {
5158
+ if (_self.count() >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {
5055
5159
  if (!_bufferFullMessageSent) {
5056
- logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, "Maximum buffer size reached: " + _buffer.length, true);
5160
+ logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, "Maximum buffer size reached: " + _self.count(), true);
5057
5161
  _bufferFullMessageSent = true;
5058
5162
  }
5059
5163
  return;
5060
5164
  }
5061
- _buffer.push(payload);
5062
- _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);
5063
- };
5064
- _self.count = function () {
5065
- return _buffer.length;
5165
+ _base.enqueue(payload);
5166
+ _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());
5066
5167
  };
5067
5168
  _self.clear = function () {
5068
- _buffer = [];
5069
- _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, []);
5169
+ _base.clear();
5170
+ _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());
5070
5171
  _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);
5071
5172
  _bufferFullMessageSent = false;
5072
5173
  };
5073
- _self.getItems = function () {
5074
- return _buffer.slice(0);
5075
- };
5076
- _self.batchPayloads = function (payload) {
5077
- if (payload && payload.length > 0) {
5078
- var batch = config.emitLineDelimitedJson() ?
5079
- payload.join("\n") :
5080
- "[" + payload.join(",") + "]";
5081
- return batch;
5082
- }
5083
- return null;
5084
- };
5085
5174
  _self.markAsSent = function (payload) {
5086
- _buffer = _removePayloadsFromBuffer(payload, _buffer);
5087
- _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);
5175
+ _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._set(_removePayloadsFromBuffer(payload, _self._get())));
5088
5176
  var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);
5089
5177
  if (sentElements instanceof Array && payload instanceof Array) {
5090
5178
  sentElements = sentElements.concat(payload);
@@ -5115,12 +5203,12 @@ var SessionStorageSendBuffer = /** @class */ (function () {
5115
5203
  prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + "_" + prefixedKey : prefixedKey;
5116
5204
  var bufferJson = utlGetSessionStorage(logger, prefixedKey);
5117
5205
  if (bufferJson) {
5118
- var buffer = getJSON().parse(bufferJson);
5119
- if (isString(buffer)) {
5120
- buffer = getJSON().parse(buffer);
5206
+ var buffer_1 = getJSON().parse(bufferJson);
5207
+ if (isString(buffer_1)) {
5208
+ buffer_1 = getJSON().parse(buffer_1);
5121
5209
  }
5122
- if (buffer && isArray(buffer)) {
5123
- return buffer;
5210
+ if (buffer_1 && isArray(buffer_1)) {
5211
+ return buffer_1;
5124
5212
  }
5125
5213
  }
5126
5214
  }
@@ -5142,12 +5230,13 @@ var SessionStorageSendBuffer = /** @class */ (function () {
5142
5230
  }
5143
5231
  }
5144
5232
  });
5233
+ return _this;
5145
5234
  }
5146
5235
  SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer";
5147
5236
  SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer";
5148
5237
  SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;
5149
5238
  return SessionStorageSendBuffer;
5150
- }());
5239
+ }(BaseSendBuffer));
5151
5240
 
5152
5241
  var strBaseType = 'baseType';
5153
5242
  var strBaseData = 'baseData';
@@ -5156,317 +5245,257 @@ var strTrue = 'true';
5156
5245
  function _setValueIf(target, field, value) {
5157
5246
  return setValue(target, field, value, isTruthy);
5158
5247
  }
5159
- var EnvelopeCreator = /** @class */ (function () {
5160
- function EnvelopeCreator() {
5161
- }
5162
- EnvelopeCreator.extractPropsAndMeasurements = function (data, properties, measurements) {
5163
- if (!isNullOrUndefined(data)) {
5164
- objForEachKey(data, function (key, value) {
5165
- if (isNumber(value)) {
5166
- measurements[key] = value;
5167
- }
5168
- else if (isString(value)) {
5169
- properties[key] = value;
5170
- }
5171
- else if (hasJSON()) {
5172
- properties[key] = getJSON().stringify(value);
5173
- }
5174
- });
5175
- }
5176
- };
5177
- EnvelopeCreator.convertPropsUndefinedToCustomDefinedValue = function (properties, customUndefinedValue) {
5178
- if (!isNullOrUndefined(properties)) {
5179
- objForEachKey(properties, function (key, value) {
5180
- properties[key] = value || customUndefinedValue;
5181
- });
5182
- }
5183
- };
5184
- EnvelopeCreator.createEnvelope = function (logger, envelopeType, telemetryItem, data) {
5185
- var envelope = new Envelope(logger, data, envelopeType);
5186
- _setValueIf(envelope, 'sampleRate', telemetryItem[SampleRate]);
5187
- if ((telemetryItem[strBaseData] || {}).startTime) {
5188
- envelope.time = toISOString(telemetryItem[strBaseData].startTime);
5189
- }
5190
- envelope.iKey = telemetryItem.iKey;
5191
- var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, "");
5192
- envelope.name = envelope.name.replace("{0}", iKeyNoDashes);
5193
- EnvelopeCreator.extractPartAExtensions(telemetryItem, envelope);
5194
- telemetryItem.tags = telemetryItem.tags || [];
5195
- return optimizeObject(envelope);
5196
- };
5197
- EnvelopeCreator.extractPartAExtensions = function (item, env) {
5198
- var envTags = env.tags = env.tags || {};
5199
- var itmExt = item.ext = item.ext || {};
5200
- var itmTags = item.tags = item.tags || [];
5201
- var extUser = itmExt.user;
5202
- if (extUser) {
5203
- _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);
5204
- _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);
5205
- }
5206
- var extApp = itmExt.app;
5207
- if (extApp) {
5208
- _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);
5209
- }
5210
- var extDevice = itmExt.device;
5211
- if (extDevice) {
5212
- _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);
5213
- _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);
5214
- _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);
5215
- _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);
5216
- _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);
5217
- }
5218
- var web = item.ext.web;
5219
- if (web) {
5220
- _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);
5221
- _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);
5222
- _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);
5223
- var envData = env.data = env.data || {};
5224
- var envBaseData = envData[strBaseData] = envData[strBaseData] || {};
5225
- var envProps = envBaseData[strProperties$1] = envBaseData[strProperties$1] || {};
5226
- _setValueIf(envProps, 'domain', web.domain);
5227
- _setValueIf(envProps, 'isManual', web.isManual ? strTrue : null);
5228
- _setValueIf(envProps, 'screenRes', web.screenRes);
5229
- _setValueIf(envProps, 'userConsent', web.userConsent ? strTrue : null);
5230
- }
5231
- var extOs = itmExt.os;
5232
- if (extOs) {
5233
- _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);
5234
- }
5235
- var extTrace = itmExt.trace;
5236
- if (extTrace) {
5237
- _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);
5238
- _setValueIf(envTags, CtxTagKeys.operationName, extTrace.name);
5239
- _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);
5240
- }
5241
- var tgs = {};
5242
- for (var i = itmTags.length - 1; i >= 0; i--) {
5243
- var tg = itmTags[i];
5244
- objForEachKey(tg, function (key, value) {
5245
- tgs[key] = value;
5246
- });
5247
- itmTags.splice(i, 1);
5248
- }
5249
- objForEachKey(itmTags, function (tg, value) {
5250
- tgs[tg] = value;
5248
+ function _extractPartAExtensions(item, env) {
5249
+ var envTags = env.tags = env.tags || {};
5250
+ var itmExt = item.ext = item.ext || {};
5251
+ var itmTags = item.tags = item.tags || [];
5252
+ var extUser = itmExt.user;
5253
+ if (extUser) {
5254
+ _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);
5255
+ _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);
5256
+ }
5257
+ var extApp = itmExt.app;
5258
+ if (extApp) {
5259
+ _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);
5260
+ }
5261
+ var extDevice = itmExt.device;
5262
+ if (extDevice) {
5263
+ _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);
5264
+ _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);
5265
+ _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);
5266
+ _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);
5267
+ _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);
5268
+ }
5269
+ var web = item.ext.web;
5270
+ if (web) {
5271
+ _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);
5272
+ _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);
5273
+ _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);
5274
+ var envData = env.data = env.data || {};
5275
+ var envBaseData = envData[strBaseData] = envData[strBaseData] || {};
5276
+ var envProps = envBaseData[strProperties$1] = envBaseData[strProperties$1] || {};
5277
+ _setValueIf(envProps, 'domain', web.domain);
5278
+ _setValueIf(envProps, 'isManual', web.isManual ? strTrue : null);
5279
+ _setValueIf(envProps, 'screenRes', web.screenRes);
5280
+ _setValueIf(envProps, 'userConsent', web.userConsent ? strTrue : null);
5281
+ }
5282
+ var extOs = itmExt.os;
5283
+ if (extOs) {
5284
+ _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);
5285
+ }
5286
+ var extTrace = itmExt.trace;
5287
+ if (extTrace) {
5288
+ _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);
5289
+ _setValueIf(envTags, CtxTagKeys.operationName, extTrace.name);
5290
+ _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);
5291
+ }
5292
+ var tgs = {};
5293
+ for (var i = itmTags.length - 1; i >= 0; i--) {
5294
+ var tg = itmTags[i];
5295
+ objForEachKey(tg, function (key, value) {
5296
+ tgs[key] = value;
5251
5297
  });
5252
- var theTags = __assignFn(__assignFn({}, envTags), tgs);
5253
- if (!theTags[CtxTagKeys.internalSdkVersion]) {
5254
- theTags[CtxTagKeys.internalSdkVersion] = "javascript:" + EnvelopeCreator.Version;
5255
- }
5256
- env.tags = optimizeObject(theTags);
5257
- };
5258
- EnvelopeCreator.prototype.Init = function (logger, telemetryItem) {
5259
- this._logger = logger;
5260
- if (isNullOrUndefined(telemetryItem[strBaseData])) {
5261
- this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, "telemetryItem.baseData cannot be null.");
5262
- }
5263
- };
5264
- EnvelopeCreator.Version = "2.7.0-beta.1";
5265
- return EnvelopeCreator;
5266
- }());
5267
- var DependencyEnvelopeCreator = /** @class */ (function (_super) {
5268
- __extendsFn(DependencyEnvelopeCreator, _super);
5269
- function DependencyEnvelopeCreator() {
5270
- return _super !== null && _super.apply(this, arguments) || this;
5271
- }
5272
- DependencyEnvelopeCreator.prototype.Create = function (logger, telemetryItem, customUndefinedValue) {
5273
- _super.prototype.Init.call(this, logger, telemetryItem);
5274
- var customMeasurements = telemetryItem[strBaseData].measurements || {};
5275
- var customProperties = telemetryItem[strBaseData][strProperties$1] || {};
5276
- EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);
5277
- if (!isNullOrUndefined(customUndefinedValue)) {
5278
- EnvelopeCreator.convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
5279
- }
5280
- var bd = telemetryItem[strBaseData];
5281
- if (isNullOrUndefined(bd)) {
5282
- logger.warnToConsole("Invalid input for dependency data");
5283
- return null;
5284
- }
5285
- var method = bd[strProperties$1] && bd[strProperties$1][HttpMethod] ? bd[strProperties$1][HttpMethod] : "GET";
5286
- var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);
5287
- var data = new Data(RemoteDependencyData.dataType, remoteDepData);
5288
- return EnvelopeCreator.createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);
5289
- };
5290
- DependencyEnvelopeCreator.DependencyEnvelopeCreator = new DependencyEnvelopeCreator();
5291
- return DependencyEnvelopeCreator;
5292
- }(EnvelopeCreator));
5293
- var EventEnvelopeCreator = /** @class */ (function (_super) {
5294
- __extendsFn(EventEnvelopeCreator, _super);
5295
- function EventEnvelopeCreator() {
5296
- return _super !== null && _super.apply(this, arguments) || this;
5297
- }
5298
- EventEnvelopeCreator.prototype.Create = function (logger, telemetryItem, customUndefinedValue) {
5299
- _super.prototype.Init.call(this, logger, telemetryItem);
5300
- var customProperties = {};
5301
- var customMeasurements = {};
5302
- if (telemetryItem[strBaseType] !== Event$1.dataType) {
5303
- customProperties['baseTypeSource'] = telemetryItem[strBaseType];
5304
- }
5305
- if (telemetryItem[strBaseType] === Event$1.dataType) {
5306
- customProperties = telemetryItem[strBaseData][strProperties$1] || {};
5307
- customMeasurements = telemetryItem[strBaseData].measurements || {};
5308
- }
5309
- else {
5310
- if (telemetryItem[strBaseData]) {
5311
- EnvelopeCreator.extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);
5298
+ itmTags.splice(i, 1);
5299
+ }
5300
+ objForEachKey(itmTags, function (tg, value) {
5301
+ tgs[tg] = value;
5302
+ });
5303
+ var theTags = __assignFn(__assignFn({}, envTags), tgs);
5304
+ if (!theTags[CtxTagKeys.internalSdkVersion]) {
5305
+ theTags[CtxTagKeys.internalSdkVersion] = "javascript:" + EnvelopeCreator.Version;
5306
+ }
5307
+ env.tags = optimizeObject(theTags);
5308
+ }
5309
+ function _extractPropsAndMeasurements(data, properties, measurements) {
5310
+ if (!isNullOrUndefined(data)) {
5311
+ objForEachKey(data, function (key, value) {
5312
+ if (isNumber(value)) {
5313
+ measurements[key] = value;
5312
5314
  }
5313
- }
5314
- EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);
5315
- if (!isNullOrUndefined(customUndefinedValue)) {
5316
- EnvelopeCreator.convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
5317
- }
5318
- var eventName = telemetryItem[strBaseData].name;
5319
- var eventData = new Event$1(logger, eventName, customProperties, customMeasurements);
5320
- var data = new Data(Event$1.dataType, eventData);
5321
- return EnvelopeCreator.createEnvelope(logger, Event$1.envelopeType, telemetryItem, data);
5322
- };
5323
- EventEnvelopeCreator.EventEnvelopeCreator = new EventEnvelopeCreator();
5324
- return EventEnvelopeCreator;
5325
- }(EnvelopeCreator));
5326
- var ExceptionEnvelopeCreator = /** @class */ (function (_super) {
5327
- __extendsFn(ExceptionEnvelopeCreator, _super);
5328
- function ExceptionEnvelopeCreator() {
5329
- return _super !== null && _super.apply(this, arguments) || this;
5330
- }
5331
- ExceptionEnvelopeCreator.prototype.Create = function (logger, telemetryItem, customUndefinedValue) {
5332
- _super.prototype.Init.call(this, logger, telemetryItem);
5333
- var customMeasurements = telemetryItem[strBaseData].measurements || {};
5334
- var customProperties = telemetryItem[strBaseData][strProperties$1] || {};
5335
- EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);
5336
- if (!isNullOrUndefined(customUndefinedValue)) {
5337
- EnvelopeCreator.convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
5338
- }
5339
- var bd = telemetryItem[strBaseData];
5340
- var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);
5341
- var data = new Data(Exception.dataType, exData);
5342
- return EnvelopeCreator.createEnvelope(logger, Exception.envelopeType, telemetryItem, data);
5343
- };
5344
- ExceptionEnvelopeCreator.ExceptionEnvelopeCreator = new ExceptionEnvelopeCreator();
5345
- return ExceptionEnvelopeCreator;
5346
- }(EnvelopeCreator));
5347
- var MetricEnvelopeCreator = /** @class */ (function (_super) {
5348
- __extendsFn(MetricEnvelopeCreator, _super);
5349
- function MetricEnvelopeCreator() {
5350
- return _super !== null && _super.apply(this, arguments) || this;
5351
- }
5352
- MetricEnvelopeCreator.prototype.Create = function (logger, telemetryItem, customUndefinedValue) {
5353
- _super.prototype.Init.call(this, logger, telemetryItem);
5354
- var baseData = telemetryItem[strBaseData];
5355
- var props = baseData[strProperties$1] || {};
5356
- var measurements = baseData.measurements || {};
5357
- EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);
5358
- if (!isNullOrUndefined(customUndefinedValue)) {
5359
- EnvelopeCreator.convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);
5360
- }
5361
- var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, props, measurements);
5362
- var data = new Data(Metric.dataType, baseMetricData);
5363
- return EnvelopeCreator.createEnvelope(logger, Metric.envelopeType, telemetryItem, data);
5364
- };
5365
- MetricEnvelopeCreator.MetricEnvelopeCreator = new MetricEnvelopeCreator();
5366
- return MetricEnvelopeCreator;
5367
- }(EnvelopeCreator));
5368
- var PageViewEnvelopeCreator = /** @class */ (function (_super) {
5369
- __extendsFn(PageViewEnvelopeCreator, _super);
5370
- function PageViewEnvelopeCreator() {
5371
- return _super !== null && _super.apply(this, arguments) || this;
5372
- }
5373
- PageViewEnvelopeCreator.prototype.Create = function (logger, telemetryItem, customUndefinedValue) {
5374
- _super.prototype.Init.call(this, logger, telemetryItem);
5375
- var strDuration = "duration";
5376
- var duration;
5377
- var baseData = telemetryItem[strBaseData];
5378
- if (!isNullOrUndefined(baseData) &&
5379
- !isNullOrUndefined(baseData[strProperties$1]) &&
5380
- !isNullOrUndefined(baseData[strProperties$1][strDuration])) {
5381
- duration = baseData[strProperties$1][strDuration];
5382
- delete baseData[strProperties$1][strDuration];
5383
- }
5384
- else if (!isNullOrUndefined(telemetryItem.data) &&
5385
- !isNullOrUndefined(telemetryItem.data[strDuration])) {
5386
- duration = telemetryItem.data[strDuration];
5387
- delete telemetryItem.data[strDuration];
5388
- }
5389
- var bd = telemetryItem[strBaseData];
5390
- var currentContextId;
5391
- if (((telemetryItem.ext || {}).trace || {}).traceID) {
5392
- currentContextId = telemetryItem.ext.trace.traceID;
5393
- }
5394
- var id = bd.id || currentContextId;
5395
- var name = bd.name;
5396
- var url = bd.uri;
5397
- var properties = bd[strProperties$1] || {};
5398
- var measurements = bd.measurements || {};
5399
- if (!isNullOrUndefined(bd.refUri)) {
5400
- properties["refUri"] = bd.refUri;
5401
- }
5402
- if (!isNullOrUndefined(bd.pageType)) {
5403
- properties["pageType"] = bd.pageType;
5404
- }
5405
- if (!isNullOrUndefined(bd.isLoggedIn)) {
5406
- properties["isLoggedIn"] = bd.isLoggedIn.toString();
5407
- }
5408
- if (!isNullOrUndefined(bd[strProperties$1])) {
5409
- var pageTags = bd[strProperties$1];
5410
- objForEachKey(pageTags, function (key, value) {
5315
+ else if (isString(value)) {
5411
5316
  properties[key] = value;
5412
- });
5413
- }
5414
- EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);
5415
- if (!isNullOrUndefined(customUndefinedValue)) {
5416
- EnvelopeCreator.convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);
5417
- }
5418
- var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);
5419
- var data = new Data(PageView.dataType, pageViewData);
5420
- return EnvelopeCreator.createEnvelope(logger, PageView.envelopeType, telemetryItem, data);
5421
- };
5422
- PageViewEnvelopeCreator.PageViewEnvelopeCreator = new PageViewEnvelopeCreator();
5423
- return PageViewEnvelopeCreator;
5424
- }(EnvelopeCreator));
5425
- var PageViewPerformanceEnvelopeCreator = /** @class */ (function (_super) {
5426
- __extendsFn(PageViewPerformanceEnvelopeCreator, _super);
5427
- function PageViewPerformanceEnvelopeCreator() {
5428
- return _super !== null && _super.apply(this, arguments) || this;
5429
- }
5430
- PageViewPerformanceEnvelopeCreator.prototype.Create = function (logger, telemetryItem, customUndefinedValue) {
5431
- _super.prototype.Init.call(this, logger, telemetryItem);
5432
- var bd = telemetryItem[strBaseData];
5433
- var name = bd.name;
5434
- var url = bd.uri || bd.url;
5435
- var properties = bd[strProperties$1] || {};
5436
- var measurements = bd.measurements || {};
5437
- EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);
5438
- if (!isNullOrUndefined(customUndefinedValue)) {
5439
- EnvelopeCreator.convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);
5440
- }
5441
- var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);
5442
- var data = new Data(PageViewPerformance.dataType, baseData);
5443
- return EnvelopeCreator.createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);
5444
- };
5445
- PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator = new PageViewPerformanceEnvelopeCreator();
5446
- return PageViewPerformanceEnvelopeCreator;
5447
- }(EnvelopeCreator));
5448
- var TraceEnvelopeCreator = /** @class */ (function (_super) {
5449
- __extendsFn(TraceEnvelopeCreator, _super);
5450
- function TraceEnvelopeCreator() {
5451
- return _super !== null && _super.apply(this, arguments) || this;
5452
- }
5453
- TraceEnvelopeCreator.prototype.Create = function (logger, telemetryItem, customUndefinedValue) {
5454
- _super.prototype.Init.call(this, logger, telemetryItem);
5455
- var message = telemetryItem[strBaseData].message;
5456
- var severityLevel = telemetryItem[strBaseData].severityLevel;
5457
- var props = telemetryItem[strBaseData][strProperties$1] || {};
5458
- var measurements = telemetryItem[strBaseData].measurements || {};
5459
- EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);
5460
- if (!isNullOrUndefined(customUndefinedValue)) {
5461
- EnvelopeCreator.convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);
5462
- }
5463
- var baseData = new Trace(logger, message, severityLevel, props, measurements);
5464
- var data = new Data(Trace.dataType, baseData);
5465
- return EnvelopeCreator.createEnvelope(logger, Trace.envelopeType, telemetryItem, data);
5466
- };
5467
- TraceEnvelopeCreator.TraceEnvelopeCreator = new TraceEnvelopeCreator();
5468
- return TraceEnvelopeCreator;
5469
- }(EnvelopeCreator));
5317
+ }
5318
+ else if (hasJSON()) {
5319
+ properties[key] = getJSON().stringify(value);
5320
+ }
5321
+ });
5322
+ }
5323
+ }
5324
+ function _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {
5325
+ if (!isNullOrUndefined(properties)) {
5326
+ objForEachKey(properties, function (key, value) {
5327
+ properties[key] = value || customUndefinedValue;
5328
+ });
5329
+ }
5330
+ }
5331
+ function _createEnvelope(logger, envelopeType, telemetryItem, data) {
5332
+ var envelope = new Envelope(logger, data, envelopeType);
5333
+ _setValueIf(envelope, 'sampleRate', telemetryItem[SampleRate]);
5334
+ if ((telemetryItem[strBaseData] || {}).startTime) {
5335
+ envelope.time = toISOString(telemetryItem[strBaseData].startTime);
5336
+ }
5337
+ envelope.iKey = telemetryItem.iKey;
5338
+ var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, "");
5339
+ envelope.name = envelope.name.replace("{0}", iKeyNoDashes);
5340
+ _extractPartAExtensions(telemetryItem, envelope);
5341
+ telemetryItem.tags = telemetryItem.tags || [];
5342
+ return optimizeObject(envelope);
5343
+ }
5344
+ function EnvelopeCreatorInit(logger, telemetryItem) {
5345
+ if (isNullOrUndefined(telemetryItem[strBaseData])) {
5346
+ logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, "telemetryItem.baseData cannot be null.");
5347
+ }
5348
+ }
5349
+ var EnvelopeCreator = {
5350
+ Version: "2.7.1-nightly.202110-04"
5351
+ };
5352
+ function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5353
+ EnvelopeCreatorInit(logger, telemetryItem);
5354
+ var customMeasurements = telemetryItem[strBaseData].measurements || {};
5355
+ var customProperties = telemetryItem[strBaseData][strProperties$1] || {};
5356
+ _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);
5357
+ if (!isNullOrUndefined(customUndefinedValue)) {
5358
+ _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
5359
+ }
5360
+ var bd = telemetryItem[strBaseData];
5361
+ if (isNullOrUndefined(bd)) {
5362
+ logger.warnToConsole("Invalid input for dependency data");
5363
+ return null;
5364
+ }
5365
+ var method = bd[strProperties$1] && bd[strProperties$1][HttpMethod] ? bd[strProperties$1][HttpMethod] : "GET";
5366
+ var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);
5367
+ var data = new Data(RemoteDependencyData.dataType, remoteDepData);
5368
+ return _createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);
5369
+ }
5370
+ function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5371
+ EnvelopeCreatorInit(logger, telemetryItem);
5372
+ var customProperties = {};
5373
+ var customMeasurements = {};
5374
+ if (telemetryItem[strBaseType] !== Event$1.dataType) {
5375
+ customProperties['baseTypeSource'] = telemetryItem[strBaseType];
5376
+ }
5377
+ if (telemetryItem[strBaseType] === Event$1.dataType) {
5378
+ customProperties = telemetryItem[strBaseData][strProperties$1] || {};
5379
+ customMeasurements = telemetryItem[strBaseData].measurements || {};
5380
+ }
5381
+ else {
5382
+ if (telemetryItem[strBaseData]) {
5383
+ _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);
5384
+ }
5385
+ }
5386
+ _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);
5387
+ if (!isNullOrUndefined(customUndefinedValue)) {
5388
+ _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
5389
+ }
5390
+ var eventName = telemetryItem[strBaseData].name;
5391
+ var eventData = new Event$1(logger, eventName, customProperties, customMeasurements);
5392
+ var data = new Data(Event$1.dataType, eventData);
5393
+ return _createEnvelope(logger, Event$1.envelopeType, telemetryItem, data);
5394
+ }
5395
+ function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5396
+ EnvelopeCreatorInit(logger, telemetryItem);
5397
+ var customMeasurements = telemetryItem[strBaseData].measurements || {};
5398
+ var customProperties = telemetryItem[strBaseData][strProperties$1] || {};
5399
+ _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);
5400
+ if (!isNullOrUndefined(customUndefinedValue)) {
5401
+ _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
5402
+ }
5403
+ var bd = telemetryItem[strBaseData];
5404
+ var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);
5405
+ var data = new Data(Exception.dataType, exData);
5406
+ return _createEnvelope(logger, Exception.envelopeType, telemetryItem, data);
5407
+ }
5408
+ function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5409
+ EnvelopeCreatorInit(logger, telemetryItem);
5410
+ var baseData = telemetryItem[strBaseData];
5411
+ var props = baseData[strProperties$1] || {};
5412
+ var measurements = baseData.measurements || {};
5413
+ _extractPropsAndMeasurements(telemetryItem.data, props, measurements);
5414
+ if (!isNullOrUndefined(customUndefinedValue)) {
5415
+ _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);
5416
+ }
5417
+ var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, props, measurements);
5418
+ var data = new Data(Metric.dataType, baseMetricData);
5419
+ return _createEnvelope(logger, Metric.envelopeType, telemetryItem, data);
5420
+ }
5421
+ function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5422
+ EnvelopeCreatorInit(logger, telemetryItem);
5423
+ var strDuration = "duration";
5424
+ var duration;
5425
+ var baseData = telemetryItem[strBaseData];
5426
+ if (!isNullOrUndefined(baseData) &&
5427
+ !isNullOrUndefined(baseData[strProperties$1]) &&
5428
+ !isNullOrUndefined(baseData[strProperties$1][strDuration])) {
5429
+ duration = baseData[strProperties$1][strDuration];
5430
+ delete baseData[strProperties$1][strDuration];
5431
+ }
5432
+ else if (!isNullOrUndefined(telemetryItem.data) &&
5433
+ !isNullOrUndefined(telemetryItem.data[strDuration])) {
5434
+ duration = telemetryItem.data[strDuration];
5435
+ delete telemetryItem.data[strDuration];
5436
+ }
5437
+ var bd = telemetryItem[strBaseData];
5438
+ var currentContextId;
5439
+ if (((telemetryItem.ext || {}).trace || {}).traceID) {
5440
+ currentContextId = telemetryItem.ext.trace.traceID;
5441
+ }
5442
+ var id = bd.id || currentContextId;
5443
+ var name = bd.name;
5444
+ var url = bd.uri;
5445
+ var properties = bd[strProperties$1] || {};
5446
+ var measurements = bd.measurements || {};
5447
+ if (!isNullOrUndefined(bd.refUri)) {
5448
+ properties["refUri"] = bd.refUri;
5449
+ }
5450
+ if (!isNullOrUndefined(bd.pageType)) {
5451
+ properties["pageType"] = bd.pageType;
5452
+ }
5453
+ if (!isNullOrUndefined(bd.isLoggedIn)) {
5454
+ properties["isLoggedIn"] = bd.isLoggedIn.toString();
5455
+ }
5456
+ if (!isNullOrUndefined(bd[strProperties$1])) {
5457
+ var pageTags = bd[strProperties$1];
5458
+ objForEachKey(pageTags, function (key, value) {
5459
+ properties[key] = value;
5460
+ });
5461
+ }
5462
+ _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);
5463
+ if (!isNullOrUndefined(customUndefinedValue)) {
5464
+ _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);
5465
+ }
5466
+ var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);
5467
+ var data = new Data(PageView.dataType, pageViewData);
5468
+ return _createEnvelope(logger, PageView.envelopeType, telemetryItem, data);
5469
+ }
5470
+ function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5471
+ EnvelopeCreatorInit(logger, telemetryItem);
5472
+ var bd = telemetryItem[strBaseData];
5473
+ var name = bd.name;
5474
+ var url = bd.uri || bd.url;
5475
+ var properties = bd[strProperties$1] || {};
5476
+ var measurements = bd.measurements || {};
5477
+ _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);
5478
+ if (!isNullOrUndefined(customUndefinedValue)) {
5479
+ _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);
5480
+ }
5481
+ var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);
5482
+ var data = new Data(PageViewPerformance.dataType, baseData);
5483
+ return _createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);
5484
+ }
5485
+ function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5486
+ EnvelopeCreatorInit(logger, telemetryItem);
5487
+ var message = telemetryItem[strBaseData].message;
5488
+ var severityLevel = telemetryItem[strBaseData].severityLevel;
5489
+ var props = telemetryItem[strBaseData][strProperties$1] || {};
5490
+ var measurements = telemetryItem[strBaseData].measurements || {};
5491
+ _extractPropsAndMeasurements(telemetryItem.data, props, measurements);
5492
+ if (!isNullOrUndefined(customUndefinedValue)) {
5493
+ _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);
5494
+ }
5495
+ var baseData = new Trace(logger, message, severityLevel, props, measurements);
5496
+ var data = new Data(Trace.dataType, baseData);
5497
+ return _createEnvelope(logger, Trace.envelopeType, telemetryItem, data);
5498
+ }
5470
5499
 
5471
5500
  var Serializer = /** @class */ (function () {
5472
5501
  function Serializer(logger) {
@@ -5622,8 +5651,8 @@ var OfflineListener = /** @class */ (function () {
5622
5651
  dynamicProto(OfflineListener, this, function (_self) {
5623
5652
  try {
5624
5653
  if (_window) {
5625
- if (EventHelper.Attach(_window, 'online', _setOnline)) {
5626
- EventHelper.Attach(_window, 'offline', _setOffline);
5654
+ if (attachEvent(_window, 'online', _setOnline)) {
5655
+ attachEvent(_window, 'offline', _setOffline);
5627
5656
  isListening = true;
5628
5657
  }
5629
5658
  }
@@ -5673,6 +5702,7 @@ var OfflineListener = /** @class */ (function () {
5673
5702
  }());
5674
5703
  var Offline = OfflineListener.Offline;
5675
5704
 
5705
+ var MIN_INPUT_LENGTH = 8;
5676
5706
  var HashCodeScoreGenerator = /** @class */ (function () {
5677
5707
  function HashCodeScoreGenerator() {
5678
5708
  }
@@ -5684,7 +5714,7 @@ var HashCodeScoreGenerator = /** @class */ (function () {
5684
5714
  if (input === "") {
5685
5715
  return 0;
5686
5716
  }
5687
- while (input.length < HashCodeScoreGenerator.MIN_INPUT_LENGTH) {
5717
+ while (input.length < MIN_INPUT_LENGTH) {
5688
5718
  input = input.concat(input);
5689
5719
  }
5690
5720
  var hash = 5381;
@@ -5695,43 +5725,43 @@ var HashCodeScoreGenerator = /** @class */ (function () {
5695
5725
  return Math.abs(hash);
5696
5726
  };
5697
5727
  HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;
5698
- HashCodeScoreGenerator.MIN_INPUT_LENGTH = 8;
5699
5728
  return HashCodeScoreGenerator;
5700
5729
  }());
5701
5730
 
5702
5731
  var SamplingScoreGenerator = /** @class */ (function () {
5703
5732
  function SamplingScoreGenerator() {
5704
- this.hashCodeGeneragor = new HashCodeScoreGenerator();
5705
- this.keys = new ContextTagKeys();
5733
+ var _self = this;
5734
+ var hashCodeGenerator = new HashCodeScoreGenerator();
5735
+ var keys = new ContextTagKeys();
5736
+ _self.getSamplingScore = function (item) {
5737
+ var score = 0;
5738
+ if (item.tags && item.tags[keys.userId]) {
5739
+ score = hashCodeGenerator.getHashCodeScore(item.tags[keys.userId]);
5740
+ }
5741
+ else if (item.ext && item.ext.user && item.ext.user.id) {
5742
+ score = hashCodeGenerator.getHashCodeScore(item.ext.user.id);
5743
+ }
5744
+ else if (item.tags && item.tags[keys.operationId]) {
5745
+ score = hashCodeGenerator.getHashCodeScore(item.tags[keys.operationId]);
5746
+ }
5747
+ else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {
5748
+ score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace.traceID);
5749
+ }
5750
+ else {
5751
+ score = (Math.random() * 100);
5752
+ }
5753
+ return score;
5754
+ };
5706
5755
  }
5707
- SamplingScoreGenerator.prototype.getSamplingScore = function (item) {
5708
- var score = 0;
5709
- if (item.tags && item.tags[this.keys.userId]) {
5710
- score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.userId]);
5711
- }
5712
- else if (item.ext && item.ext.user && item.ext.user.id) {
5713
- score = this.hashCodeGeneragor.getHashCodeScore(item.ext.user.id);
5714
- }
5715
- else if (item.tags && item.tags[this.keys.operationId]) {
5716
- score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.operationId]);
5717
- }
5718
- else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {
5719
- score = this.hashCodeGeneragor.getHashCodeScore(item.ext.telemetryTrace.traceID);
5720
- }
5721
- else {
5722
- score = (Math.random() * 100);
5723
- }
5724
- return score;
5725
- };
5726
5756
  return SamplingScoreGenerator;
5727
5757
  }());
5728
5758
 
5729
5759
  var Sample = /** @class */ (function () {
5730
5760
  function Sample(sampleRate, logger) {
5731
5761
  this.INT_MAX_VALUE = 2147483647;
5732
- this._logger = logger || safeGetLogger(null);
5762
+ var _logger = logger || safeGetLogger(null);
5733
5763
  if (sampleRate > 100 || sampleRate < 0) {
5734
- this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SampleRateOutOfRange, "Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.", { samplingRate: sampleRate }, true);
5764
+ _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SampleRateOutOfRange, "Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.", { samplingRate: sampleRate }, true);
5735
5765
  sampleRate = 100;
5736
5766
  }
5737
5767
  this.sampleRate = sampleRate;
@@ -5752,6 +5782,8 @@ var Sample = /** @class */ (function () {
5752
5782
  return Sample;
5753
5783
  }());
5754
5784
 
5785
+ var _a;
5786
+ var FetchSyncRequestSizeLimitBytes = 65000;
5755
5787
  function _getResponseText(xhr) {
5756
5788
  try {
5757
5789
  return xhr.responseText;
@@ -5760,13 +5792,41 @@ function _getResponseText(xhr) {
5760
5792
  }
5761
5793
  return null;
5762
5794
  }
5795
+ function _getDefaultAppInsightsChannelConfig() {
5796
+ return {
5797
+ endpointUrl: function () { return "https://dc.services.visualstudio.com/v2/track"; },
5798
+ emitLineDelimitedJson: function () { return false; },
5799
+ maxBatchInterval: function () { return 15000; },
5800
+ maxBatchSizeInBytes: function () { return 102400; },
5801
+ disableTelemetry: function () { return false; },
5802
+ enableSessionStorageBuffer: function () { return true; },
5803
+ isRetryDisabled: function () { return false; },
5804
+ isBeaconApiDisabled: function () { return true; },
5805
+ disableXhr: function () { return false; },
5806
+ onunloadDisableFetch: function () { return false; },
5807
+ onunloadDisableBeacon: function () { return false; },
5808
+ instrumentationKey: function () { return undefined; },
5809
+ namePrefix: function () { return undefined; },
5810
+ samplingPercentage: function () { return 100; },
5811
+ customHeaders: function () { return undefined; },
5812
+ convertUndefined: function () { return undefined; }
5813
+ };
5814
+ }
5815
+ var EnvelopeTypeCreator = (_a = {},
5816
+ _a[Event$1.dataType] = EventEnvelopeCreator,
5817
+ _a[Trace.dataType] = TraceEnvelopeCreator,
5818
+ _a[PageView.dataType] = PageViewEnvelopeCreator,
5819
+ _a[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,
5820
+ _a[Exception.dataType] = ExceptionEnvelopeCreator,
5821
+ _a[Metric.dataType] = MetricEnvelopeCreator,
5822
+ _a[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,
5823
+ _a);
5763
5824
  var Sender = /** @class */ (function (_super) {
5764
5825
  __extendsFn(Sender, _super);
5765
5826
  function Sender() {
5766
5827
  var _this = _super.call(this) || this;
5767
5828
  _this.priority = 1001;
5768
5829
  _this.identifier = BreezeChannelIdentifier;
5769
- _this._XMLHttpRequestSupported = false;
5770
5830
  var _consecutiveErrors;
5771
5831
  var _retryAt;
5772
5832
  var _lastSend;
@@ -5774,6 +5834,10 @@ var Sender = /** @class */ (function (_super) {
5774
5834
  var _serializer;
5775
5835
  var _stamp_specific_redirects;
5776
5836
  var _headers = {};
5837
+ var _syncFetchPayload = 0;
5838
+ var _fallbackSender;
5839
+ var _syncUnloadSender;
5840
+ _this._senderConfig = _getDefaultAppInsightsChannelConfig();
5777
5841
  dynamicProto(Sender, _this, function (_self, _base) {
5778
5842
  function _notImplemented() {
5779
5843
  throwError("Method not implemented.");
@@ -5789,9 +5853,9 @@ var Sender = /** @class */ (function (_super) {
5789
5853
  }
5790
5854
  };
5791
5855
  _self.onunloadFlush = function () {
5792
- if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && isBeaconApiSupported()) {
5856
+ if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && isBeaconsSupported()) {
5793
5857
  try {
5794
- _self.triggerSend(true, _beaconSender, 2 );
5858
+ _self.triggerSend(true, _doUnloadSend, 2 );
5795
5859
  }
5796
5860
  catch (e) {
5797
5861
  _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, "failed to flush with beacon sender on page unload, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
@@ -5815,8 +5879,7 @@ var Sender = /** @class */ (function (_super) {
5815
5879
  _lastSend = 0;
5816
5880
  _self._sender = null;
5817
5881
  _stamp_specific_redirects = 0;
5818
- var defaultConfig = Sender._getDefaultAppInsightsChannelConfig();
5819
- _self._senderConfig = Sender._getEmptyAppInsightsChannelConfig();
5882
+ var defaultConfig = _getDefaultAppInsightsChannelConfig();
5820
5883
  objForEachKey(defaultConfig, function (field, value) {
5821
5884
  _self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };
5822
5885
  });
@@ -5831,27 +5894,36 @@ var Sender = /** @class */ (function (_super) {
5831
5894
  _this.addHeader(customHeader.header, customHeader.value);
5832
5895
  });
5833
5896
  }
5834
- if (!_self._senderConfig.isBeaconApiDisabled() && isBeaconApiSupported()) {
5835
- _self._sender = _beaconSender;
5897
+ var senderConfig = _self._senderConfig;
5898
+ var sendPostFunc = null;
5899
+ if (!senderConfig.disableXhr() && useXDomainRequest()) {
5900
+ sendPostFunc = _xdrSender;
5901
+ }
5902
+ else if (!senderConfig.disableXhr() && isXhrSupported()) {
5903
+ sendPostFunc = _xhrSender;
5904
+ }
5905
+ if (!sendPostFunc && isFetchSupported()) {
5906
+ sendPostFunc = _fetchSender;
5907
+ }
5908
+ _fallbackSender = sendPostFunc || _xhrSender;
5909
+ if (!senderConfig.isBeaconApiDisabled() && isBeaconsSupported()) {
5910
+ sendPostFunc = _beaconSender;
5911
+ }
5912
+ _self._sender = sendPostFunc || _xhrSender;
5913
+ if (!senderConfig.onunloadDisableFetch() && isFetchSupported(true)) {
5914
+ _syncUnloadSender = _fetchKeepAliveSender;
5915
+ }
5916
+ else if (isBeaconsSupported()) {
5917
+ _syncUnloadSender = _beaconSender;
5918
+ }
5919
+ else if (!senderConfig.disableXhr() && useXDomainRequest()) {
5920
+ _syncUnloadSender = _xdrSender;
5921
+ }
5922
+ else if (!senderConfig.disableXhr() && isXhrSupported()) {
5923
+ _syncUnloadSender = _xhrSender;
5836
5924
  }
5837
5925
  else {
5838
- var xhr = getGlobalInst("XMLHttpRequest");
5839
- if (xhr) {
5840
- var testXhr = new xhr();
5841
- if ("withCredentials" in testXhr) {
5842
- _self._sender = _xhrSender;
5843
- _self._XMLHttpRequestSupported = true;
5844
- }
5845
- else if (typeof XDomainRequest !== strShimUndefined) {
5846
- _self._sender = _xdrSender;
5847
- }
5848
- }
5849
- else {
5850
- var fetch_1 = getGlobalInst("fetch");
5851
- if (fetch_1) {
5852
- _self._sender = _fetchSender;
5853
- }
5854
- }
5926
+ _syncUnloadSender = _fallbackSender;
5855
5927
  }
5856
5928
  };
5857
5929
  _self.processTelemetry = function (telemetryItem, itemCtx) {
@@ -5883,7 +5955,8 @@ var Sender = /** @class */ (function (_super) {
5883
5955
  telemetryItem[SampleRate] = _self._sample.sampleRate;
5884
5956
  }
5885
5957
  var convertUndefined = _self._senderConfig.convertUndefined() || undefined;
5886
- var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, _self._senderConfig.instrumentationKey(), itemCtx.diagLog(), convertUndefined);
5958
+ var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();
5959
+ var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);
5887
5960
  if (!aiEnvelope_1) {
5888
5961
  itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, "Unable to create an AppInsights envelope");
5889
5962
  return;
@@ -5907,12 +5980,12 @@ var Sender = /** @class */ (function (_super) {
5907
5980
  return;
5908
5981
  }
5909
5982
  var payload = _serializer.serialize(aiEnvelope_1);
5910
- var bufferPayload = _self._buffer.getItems();
5911
- var batch = _self._buffer.batchPayloads(bufferPayload);
5912
- if (batch && (batch.length + payload.length > _self._senderConfig.maxBatchSizeInBytes())) {
5983
+ var buffer = _self._buffer;
5984
+ var bufferSize = buffer.size();
5985
+ if ((bufferSize + payload.length) > _self._senderConfig.maxBatchSizeInBytes()) {
5913
5986
  _self.triggerSend(true, null, 10 );
5914
5987
  }
5915
- _self._buffer.enqueue(payload);
5988
+ buffer.enqueue(payload);
5916
5989
  _setupTimer();
5917
5990
  }
5918
5991
  catch (e) {
@@ -5928,9 +6001,10 @@ var Sender = /** @class */ (function (_super) {
5928
6001
  _self.triggerSend = function (async, forcedSender, sendReason) {
5929
6002
  if (async === void 0) { async = true; }
5930
6003
  try {
6004
+ var buffer = _self._buffer;
5931
6005
  if (!_self._senderConfig.disableTelemetry()) {
5932
- if (_self._buffer.count() > 0) {
5933
- var payload = _self._buffer.getItems();
6006
+ if (buffer.count() > 0) {
6007
+ var payload = buffer.getItems();
5934
6008
  _notifySendRequest(sendReason || 0 , async);
5935
6009
  if (forcedSender) {
5936
6010
  forcedSender.call(_this, payload, async);
@@ -5942,7 +6016,7 @@ var Sender = /** @class */ (function (_super) {
5942
6016
  _lastSend = +new Date;
5943
6017
  }
5944
6018
  else {
5945
- _self._buffer.clear();
6019
+ buffer.clear();
5946
6020
  }
5947
6021
  clearTimeout(_timeoutHandle);
5948
6022
  _timeoutHandle = null;
@@ -6072,18 +6146,42 @@ var Sender = /** @class */ (function (_super) {
6072
6146
  }
6073
6147
  return false;
6074
6148
  }
6075
- function _beaconSender(payload, isAsync) {
6149
+ function _doUnloadSend(payload, isAsync) {
6150
+ if (_syncUnloadSender) {
6151
+ _syncUnloadSender(payload, false);
6152
+ }
6153
+ else {
6154
+ _beaconSender(payload);
6155
+ }
6156
+ }
6157
+ function _doBeaconSend(payload) {
6158
+ var nav = getNavigator();
6159
+ var buffer = _self._buffer;
6076
6160
  var url = _self._senderConfig.endpointUrl();
6077
6161
  var batch = _self._buffer.batchPayloads(payload);
6078
6162
  var plainTextBatch = new Blob([batch], { type: 'text/plain;charset=UTF-8' });
6079
- var queued = getNavigator().sendBeacon(url, plainTextBatch);
6163
+ var queued = nav.sendBeacon(url, plainTextBatch);
6080
6164
  if (queued) {
6081
- _self._buffer.markAsSent(payload);
6165
+ buffer.markAsSent(payload);
6082
6166
  _self._onSuccess(payload, payload.length);
6083
6167
  }
6084
- else {
6085
- _xhrSender(payload, true);
6086
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
6168
+ return queued;
6169
+ }
6170
+ function _beaconSender(payload, isAsync) {
6171
+ if (isArray(payload) && payload.length > 0) {
6172
+ if (!_doBeaconSend(payload)) {
6173
+ var droppedPayload = [];
6174
+ for (var lp = 0; lp < payload.length; lp++) {
6175
+ var thePayload = payload[lp];
6176
+ if (!_doBeaconSend([thePayload])) {
6177
+ droppedPayload.push(thePayload);
6178
+ }
6179
+ }
6180
+ if (droppedPayload.length > 0) {
6181
+ _fallbackSender(droppedPayload, true);
6182
+ _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6183
+ }
6184
+ }
6087
6185
  }
6088
6186
  }
6089
6187
  function _xhrSender(payload, isAsync) {
@@ -6108,36 +6206,79 @@ var Sender = /** @class */ (function (_super) {
6108
6206
  xhr.send(batch);
6109
6207
  _self._buffer.markAsSent(payload);
6110
6208
  }
6209
+ function _fetchKeepAliveSender(payload, isAsync) {
6210
+ if (isArray(payload)) {
6211
+ var payloadSize = payload.length;
6212
+ for (var lp = 0; lp < payload.length; lp++) {
6213
+ payloadSize += payload[lp].length;
6214
+ }
6215
+ if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
6216
+ _doFetchSender(payload, false);
6217
+ }
6218
+ else if (isBeaconsSupported()) {
6219
+ _beaconSender(payload);
6220
+ }
6221
+ else {
6222
+ _fallbackSender && _fallbackSender(payload, true);
6223
+ _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
6224
+ }
6225
+ }
6226
+ }
6111
6227
  function _fetchSender(payload, isAsync) {
6228
+ _doFetchSender(payload, true);
6229
+ }
6230
+ function _doFetchSender(payload, isAsync) {
6231
+ var _a;
6112
6232
  var endPointUrl = _self._senderConfig.endpointUrl();
6113
6233
  var batch = _self._buffer.batchPayloads(payload);
6114
- var plainTextBatch = new Blob([batch], { type: 'text/plain;charset=UTF-8' });
6234
+ var plainTextBatch = new Blob([batch], { type: 'application/json' });
6115
6235
  var requestHeaders = new Headers();
6236
+ var batchLength = batch.length;
6116
6237
  if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
6117
6238
  requestHeaders.append(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);
6118
6239
  }
6119
6240
  arrForEach(objKeys(_headers), function (headerName) {
6120
6241
  requestHeaders.append(headerName, _headers[headerName]);
6121
6242
  });
6122
- var init = {
6123
- method: "POST",
6124
- headers: requestHeaders,
6125
- body: plainTextBatch
6126
- };
6243
+ var init = (_a = {
6244
+ method: "POST",
6245
+ headers: requestHeaders,
6246
+ body: plainTextBatch
6247
+ },
6248
+ _a[DisabledPropertyName] = true
6249
+ ,
6250
+ _a);
6251
+ if (!isAsync) {
6252
+ init.keepalive = true;
6253
+ _syncFetchPayload += batchLength;
6254
+ }
6127
6255
  var request = new Request(endPointUrl, init);
6256
+ try {
6257
+ request[DisabledPropertyName] = true;
6258
+ }
6259
+ catch (e) {
6260
+ }
6128
6261
  fetch(request).then(function (response) {
6262
+ if (!isAsync) {
6263
+ _syncFetchPayload -= batchLength;
6264
+ batchLength = 0;
6265
+ }
6129
6266
  if (!response.ok) {
6130
- throw Error(response.statusText);
6267
+ _self._onError(payload, response.statusText);
6131
6268
  }
6132
6269
  else {
6133
6270
  response.text().then(function (text) {
6134
6271
  _checkResponsStatus(response.status, payload, response.url, payload.length, response.statusText, text);
6135
6272
  });
6136
- _self._buffer.markAsSent(payload);
6137
6273
  }
6138
6274
  })["catch"](function (error) {
6275
+ if (!isAsync) {
6276
+ _syncFetchPayload -= batchLength;
6277
+ batchLength = 0;
6278
+ }
6139
6279
  _self._onError(payload, error.message);
6140
6280
  });
6281
+ _self._buffer.markAsSent(payload);
6141
6282
  }
6142
6283
  function _parseResponse(response) {
6143
6284
  try {
@@ -6161,11 +6302,12 @@ var Sender = /** @class */ (function (_super) {
6161
6302
  if (!payload || payload.length === 0) {
6162
6303
  return;
6163
6304
  }
6164
- _self._buffer.clearSent(payload);
6305
+ var buffer = _self._buffer;
6306
+ buffer.clearSent(payload);
6165
6307
  _consecutiveErrors++;
6166
6308
  for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {
6167
6309
  var item = payload_1[_i];
6168
- _self._buffer.enqueue(item);
6310
+ buffer.enqueue(item);
6169
6311
  }
6170
6312
  _setRetryTime(linearFactor);
6171
6313
  _setupTimer();
@@ -6207,6 +6349,7 @@ var Sender = /** @class */ (function (_super) {
6207
6349
  return message;
6208
6350
  }
6209
6351
  function _xdrSender(payload, isAsync) {
6352
+ var buffer = _self._buffer;
6210
6353
  var _window = getWindow();
6211
6354
  var xdr = new XDomainRequest();
6212
6355
  xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };
@@ -6215,14 +6358,14 @@ var Sender = /** @class */ (function (_super) {
6215
6358
  if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {
6216
6359
  _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
6217
6360
  "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
6218
- _self._buffer.clear();
6361
+ buffer.clear();
6219
6362
  return;
6220
6363
  }
6221
6364
  var endpointUrl = _self._senderConfig.endpointUrl().replace(/^(https?:)/, "");
6222
6365
  xdr.open('POST', endpointUrl);
6223
- var batch = _self._buffer.batchPayloads(payload);
6366
+ var batch = buffer.batchPayloads(payload);
6224
6367
  xdr.send(batch);
6225
- _self._buffer.markAsSent(payload);
6368
+ buffer.markAsSent(payload);
6226
6369
  }
6227
6370
  function _formatErrorMessageXdr(xdr, message) {
6228
6371
  if (xdr) {
@@ -6268,60 +6411,8 @@ var Sender = /** @class */ (function (_super) {
6268
6411
  else {
6269
6412
  envelope = orig;
6270
6413
  }
6271
- switch (envelope.baseType) {
6272
- case Event$1.dataType:
6273
- return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope, convertUndefined);
6274
- case Trace.dataType:
6275
- return TraceEnvelopeCreator.TraceEnvelopeCreator.Create(logger, envelope, convertUndefined);
6276
- case PageView.dataType:
6277
- return PageViewEnvelopeCreator.PageViewEnvelopeCreator.Create(logger, envelope, convertUndefined);
6278
- case PageViewPerformance.dataType:
6279
- return PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator.Create(logger, envelope, convertUndefined);
6280
- case Exception.dataType:
6281
- return ExceptionEnvelopeCreator.ExceptionEnvelopeCreator.Create(logger, envelope, convertUndefined);
6282
- case Metric.dataType:
6283
- return MetricEnvelopeCreator.MetricEnvelopeCreator.Create(logger, envelope, convertUndefined);
6284
- case RemoteDependencyData.dataType:
6285
- return DependencyEnvelopeCreator.DependencyEnvelopeCreator.Create(logger, envelope, convertUndefined);
6286
- default:
6287
- return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope, convertUndefined);
6288
- }
6289
- };
6290
- Sender._getDefaultAppInsightsChannelConfig = function () {
6291
- return {
6292
- endpointUrl: function () { return "https://dc.services.visualstudio.com/v2/track"; },
6293
- emitLineDelimitedJson: function () { return false; },
6294
- maxBatchInterval: function () { return 15000; },
6295
- maxBatchSizeInBytes: function () { return 102400; },
6296
- disableTelemetry: function () { return false; },
6297
- enableSessionStorageBuffer: function () { return true; },
6298
- isRetryDisabled: function () { return false; },
6299
- isBeaconApiDisabled: function () { return true; },
6300
- onunloadDisableBeacon: function () { return false; },
6301
- instrumentationKey: function () { return undefined; },
6302
- namePrefix: function () { return undefined; },
6303
- samplingPercentage: function () { return 100; },
6304
- customHeaders: function () { return undefined; },
6305
- convertUndefined: function () { return undefined; }
6306
- };
6307
- };
6308
- Sender._getEmptyAppInsightsChannelConfig = function () {
6309
- return {
6310
- endpointUrl: undefined,
6311
- emitLineDelimitedJson: undefined,
6312
- maxBatchInterval: undefined,
6313
- maxBatchSizeInBytes: undefined,
6314
- disableTelemetry: undefined,
6315
- enableSessionStorageBuffer: undefined,
6316
- isRetryDisabled: undefined,
6317
- isBeaconApiDisabled: undefined,
6318
- onunloadDisableBeacon: undefined,
6319
- instrumentationKey: undefined,
6320
- namePrefix: undefined,
6321
- samplingPercentage: undefined,
6322
- customHeaders: undefined,
6323
- convertUndefined: undefined
6324
- };
6414
+ var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;
6415
+ return creator(logger, envelope, convertUndefined);
6325
6416
  };
6326
6417
  return Sender;
6327
6418
  }(BaseTelemetryPlugin));
@@ -6478,7 +6569,7 @@ var Device = /** @class */ (function () {
6478
6569
  return Device;
6479
6570
  }());
6480
6571
 
6481
- var Version = "2.7.0-beta.1";
6572
+ var Version = "2.7.1-nightly.202110-04";
6482
6573
  var Internal = /** @class */ (function () {
6483
6574
  function Internal(config) {
6484
6575
  this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + "_" : "") + "javascript:" + Version;
@@ -7010,7 +7101,7 @@ var ajaxRecord = /** @class */ (function () {
7010
7101
  dependency[strProperties].responseHeaders = response.headerMap;
7011
7102
  }
7012
7103
  }
7013
- if (self.status >= 400) {
7104
+ if (self.errorStatusText && self.status >= 400) {
7014
7105
  var responseType = response.type;
7015
7106
  dependency[strProperties] = dependency[strProperties] || {};
7016
7107
  if (responseType === "" || responseType === "text") {
@@ -7080,7 +7171,7 @@ function _supportsFetch() {
7080
7171
  }
7081
7172
  function _supportsAjaxMonitoring(ajaxMonitorInstance) {
7082
7173
  var result = false;
7083
- if (typeof XMLHttpRequest !== strShimUndefined && !isNullOrUndefined(XMLHttpRequest)) {
7174
+ if (isXhrSupported()) {
7084
7175
  var proto = XMLHttpRequest[strShimPrototype];
7085
7176
  result = !isNullOrUndefined(proto) &&
7086
7177
  !isNullOrUndefined(proto.open) &&
@@ -7153,6 +7244,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
7153
7244
  var _currentWindowHost = location && location.host && location.host.toLowerCase();
7154
7245
  var _config = AjaxMonitor.getEmptyConfig();
7155
7246
  var _enableRequestHeaderTracking = false;
7247
+ var _enableAjaxErrorStatusText = false;
7156
7248
  var _trackAjaxAttempts = 0;
7157
7249
  var _context;
7158
7250
  var _isUsingW3CHeaders;
@@ -7176,6 +7268,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
7176
7268
  });
7177
7269
  var distributedTracingMode = _config.distributedTracingMode;
7178
7270
  _enableRequestHeaderTracking = _config.enableRequestHeaderTracking;
7271
+ _enableAjaxErrorStatusText = _config.enableAjaxErrorStatusText;
7179
7272
  _enableAjaxPerfTracking = _config.enableAjaxPerfTracking;
7180
7273
  _maxAjaxCallsPerView = _config.maxAjaxCallsPerView;
7181
7274
  _enableResponseHeaderTracking = _config.enableResponseHeaderTracking;
@@ -7462,6 +7555,9 @@ var AjaxMonitor = /** @class */ (function (_super) {
7462
7555
  isDisabled = (typeof request === 'object' ? request[DisabledPropertyName] === true : false) ||
7463
7556
  (init ? init[DisabledPropertyName] === true : false);
7464
7557
  }
7558
+ if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {
7559
+ isDisabled = true;
7560
+ }
7465
7561
  if (isDisabled) {
7466
7562
  if (!_disabledUrls[theUrl]) {
7467
7563
  _disabledUrls[theUrl] = 1;
@@ -7492,11 +7588,12 @@ var AjaxMonitor = /** @class */ (function (_super) {
7492
7588
  ajaxData.xhrMonitoringState.openDone = true;
7493
7589
  ajaxData.requestHeaders = {};
7494
7590
  ajaxData.async = async;
7591
+ ajaxData.errorStatusText = _enableAjaxErrorStatusText;
7495
7592
  xhr[strAjaxData] = ajaxData;
7496
7593
  _attachToOnReadyStateChange(xhr);
7497
7594
  }
7498
7595
  function _attachToOnReadyStateChange(xhr) {
7499
- xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = EventHelper.Attach(xhr, "readystatechange", function () {
7596
+ xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = attachEvent(xhr, "readystatechange", function () {
7500
7597
  try {
7501
7598
  if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {
7502
7599
  _onAjaxComplete(xhr);
@@ -7686,6 +7783,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
7686
7783
  var spanID = generateW3CId().substr(0, 16);
7687
7784
  var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());
7688
7785
  ajaxData.requestSentTime = dateTimeUtilsNow();
7786
+ ajaxData.errorStatusText = _enableAjaxErrorStatusText;
7689
7787
  if (input instanceof Request) {
7690
7788
  ajaxData.requestUrl = input ? input.url : "";
7691
7789
  }
@@ -7837,7 +7935,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
7837
7935
 
7838
7936
  var _internalSdkSrc;
7839
7937
  var _ignoreUpdateSnippetProperties = [
7840
- "snippet", "dependencies", "properties", "_snippetVersion", "appInsightsNew", "getSKUDefaults",
7938
+ "snippet", "dependencies", "properties", "_snippetVersion", "appInsightsNew", "getSKUDefaults"
7841
7939
  ];
7842
7940
  var fieldType = {
7843
7941
  Default: 0 ,
@@ -7919,11 +8017,11 @@ var Initialization = /** @class */ (function () {
7919
8017
  var inPvp = pageViewPerformance || {};
7920
8018
  this.appInsights.trackPageViewPerformance(inPvp);
7921
8019
  };
7922
- Initialization.prototype.trackException = function (exception) {
8020
+ Initialization.prototype.trackException = function (exception, customProperties) {
7923
8021
  if (exception && !exception.exception && exception.error) {
7924
8022
  exception.exception = exception.error;
7925
8023
  }
7926
- this.appInsights.trackException(exception);
8024
+ this.appInsights.trackException(exception, customProperties);
7927
8025
  };
7928
8026
  Initialization.prototype._onerror = function (exception) {
7929
8027
  this.appInsights._onerror(exception);
@@ -8058,6 +8156,9 @@ var Initialization = /** @class */ (function () {
8058
8156
  Initialization.prototype.pollInternalLogs = function () {
8059
8157
  this.core.pollInternalLogs();
8060
8158
  };
8159
+ Initialization.prototype.stopPollingInternalLogs = function () {
8160
+ this.core.stopPollingInternalLogs();
8161
+ };
8061
8162
  Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {
8062
8163
  if (hasWindow() || hasDocument()) {
8063
8164
  var performHousekeeping = function () {
@@ -8194,4 +8295,4 @@ catch (e) {
8194
8295
 
8195
8296
  exports.ApplicationInsights = Initialization;
8196
8297
  exports.Telemetry = Telemetry;
8197
- //# sourceMappingURL=ai.2.7.0-beta.1.cjs.js.map
8298
+ //# sourceMappingURL=ai.2.7.1-nightly.202110-04.cjs.js.map