@microsoft/applicationinsights-web 2.8.0-beta.2203-03 → 2.8.0-beta.2203-06

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 (50) hide show
  1. package/browser/{ai.2.8.0-beta.2203-03.cjs.js → ai.2.8.0-beta.2203-06.cjs.js} +639 -356
  2. package/browser/ai.2.8.0-beta.2203-06.cjs.js.map +1 -0
  3. package/browser/ai.2.8.0-beta.2203-06.cjs.min.js +6 -0
  4. package/browser/ai.2.8.0-beta.2203-06.cjs.min.js.map +1 -0
  5. package/browser/{ai.2.8.0-beta.2203-03.gbl.js → ai.2.8.0-beta.2203-06.gbl.js} +639 -356
  6. package/browser/ai.2.8.0-beta.2203-06.gbl.js.map +1 -0
  7. package/browser/ai.2.8.0-beta.2203-06.gbl.min.js +6 -0
  8. package/browser/ai.2.8.0-beta.2203-06.gbl.min.js.map +1 -0
  9. package/browser/ai.2.8.0-beta.2203-06.integrity.json +66 -0
  10. package/browser/{ai.2.8.0-beta.2203-03.js → ai.2.8.0-beta.2203-06.js} +639 -356
  11. package/browser/ai.2.8.0-beta.2203-06.js.map +1 -0
  12. package/browser/ai.2.8.0-beta.2203-06.min.js +6 -0
  13. package/browser/ai.2.8.0-beta.2203-06.min.js.map +1 -0
  14. package/browser/ai.2.cjs.js +638 -355
  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 +638 -355
  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 +638 -355
  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 +227 -164
  27. package/dist/applicationinsights-web.api.md +14 -20
  28. package/dist/applicationinsights-web.d.ts +108 -106
  29. package/dist/applicationinsights-web.js +639 -356
  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 +108 -106
  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 +1 -1
  38. package/dist-esm/applicationinsights-web.js +1 -1
  39. package/package.json +7 -7
  40. package/types/Initialization.d.ts +1 -1
  41. package/browser/ai.2.8.0-beta.2203-03.cjs.js.map +0 -1
  42. package/browser/ai.2.8.0-beta.2203-03.cjs.min.js +0 -6
  43. package/browser/ai.2.8.0-beta.2203-03.cjs.min.js.map +0 -1
  44. package/browser/ai.2.8.0-beta.2203-03.gbl.js.map +0 -1
  45. package/browser/ai.2.8.0-beta.2203-03.gbl.min.js +0 -6
  46. package/browser/ai.2.8.0-beta.2203-03.gbl.min.js.map +0 -1
  47. package/browser/ai.2.8.0-beta.2203-03.integrity.json +0 -66
  48. package/browser/ai.2.8.0-beta.2203-03.js.map +0 -1
  49. package/browser/ai.2.8.0-beta.2203-03.min.js +0 -6
  50. package/browser/ai.2.8.0-beta.2203-03.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Web, 2.8.0-beta.2203-03
2
+ * Application Insights JavaScript SDK - Web, 2.8.0-beta.2203-06
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -357,6 +357,7 @@
357
357
  var strIsInitialized = "isInitialized";
358
358
  var strTeardown = "teardown";
359
359
  var strCore = "core";
360
+ var strUpdate = "update";
360
361
  var strDisabled = "disabled";
361
362
  var strDoTeardown = "_doTeardown";
362
363
  var strProcessNext = "processNext";
@@ -825,7 +826,7 @@
825
826
  }
826
827
  return theObject;
827
828
  }
828
- function objExtend(obj, obj2, obj3, obj4, obj5, obj6) {
829
+ function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
829
830
  var theArgs = arguments;
830
831
  var extended = theArgs[0] || {};
831
832
  var argLen = theArgs.length;
@@ -1272,6 +1273,10 @@
1272
1273
  }
1273
1274
  return DiagnosticLogger;
1274
1275
  }());
1276
+ function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
1277
+ if (isUserAct === void 0) { isUserAct = false; }
1278
+ (logger || new DiagnosticLogger()).throwInternal(severity, msgId, msg, properties, isUserAct);
1279
+ }
1275
1280
 
1276
1281
  var strExecutionContextKey = "ctx";
1277
1282
  var _defaultPerfManager = null;
@@ -1696,7 +1701,7 @@
1696
1701
  completeDetails.func.call(completeDetails.self, completeDetails.args);
1697
1702
  }
1698
1703
  catch (e) {
1699
- core.logger.throwInternal(2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1704
+ _throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1700
1705
  }
1701
1706
  });
1702
1707
  _onComplete = [];
@@ -1795,6 +1800,27 @@
1795
1800
  context.createNew = _createNew;
1796
1801
  return context;
1797
1802
  }
1803
+ function createProcessTelemetryUpdateContext(telemetryChain, config, core, startAt) {
1804
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1805
+ var context = internalContext.ctx;
1806
+ function _processNext(updateState) {
1807
+ return context.iterate(function (plugin) {
1808
+ if (isFunction(plugin[strUpdate])) {
1809
+ plugin[strUpdate](context, updateState);
1810
+ }
1811
+ });
1812
+ }
1813
+ function _createNew(plugins, startAt) {
1814
+ if (plugins === void 0) { plugins = null; }
1815
+ if (isArray(plugins)) {
1816
+ plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1817
+ }
1818
+ return createProcessTelemetryUpdateContext(plugins || context.getNext(), config, core, startAt);
1819
+ }
1820
+ context.processNext = _processNext;
1821
+ context.createNew = _createNew;
1822
+ return context;
1823
+ }
1798
1824
  function createTelemetryProxyChain(plugins, config, core, startAt) {
1799
1825
  var firstProxy = null;
1800
1826
  var add = startAt ? false : true;
@@ -1841,6 +1867,7 @@
1841
1867
  },
1842
1868
  processTelemetry: _processTelemetry,
1843
1869
  unload: _unloadPlugin,
1870
+ update: _updatePlugin,
1844
1871
  _id: chainId,
1845
1872
  _setNext: function (nextPlugin) {
1846
1873
  nextProxy = nextPlugin;
@@ -1880,7 +1907,7 @@
1880
1907
  hasRun = true;
1881
1908
  }
1882
1909
  if (!nextProxy || !hasNextRun) {
1883
- itemCtx.diagLog().throwInternal(1 , 73 , "Plugin [" + plugin.identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1910
+ _throwInternal(itemCtx.diagLog(), 1 , 73 , "Plugin [" + plugin.identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1884
1911
  }
1885
1912
  }
1886
1913
  }, details, isAsync);
@@ -1928,6 +1955,24 @@
1928
1955
  unloadCtx.processNext(unloadState);
1929
1956
  }
1930
1957
  }
1958
+ function _updatePlugin(updateCtx, updateState) {
1959
+ function _callUpdate() {
1960
+ var hasRun = false;
1961
+ if (plugin) {
1962
+ var pluginState = _getPluginState(plugin);
1963
+ var pluginCore = plugin[strCore] || pluginState.core;
1964
+ if (plugin && (!pluginCore || pluginCore === updateCtx[strCore]()) && !pluginState[strTeardown]) {
1965
+ if (plugin[strUpdate] && plugin[strUpdate](updateCtx, updateState) === true) {
1966
+ hasRun = true;
1967
+ }
1968
+ }
1969
+ }
1970
+ return hasRun;
1971
+ }
1972
+ if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
1973
+ updateCtx.processNext(updateState);
1974
+ }
1975
+ }
1931
1976
  return objFreeze(proxyChain);
1932
1977
  }
1933
1978
 
@@ -2097,7 +2142,7 @@
2097
2142
  _supportsCookies = doc[strCookie] !== undefined;
2098
2143
  }
2099
2144
  catch (e) {
2100
- logger && logger.throwInternal(2 , 68 , "Cannot access document.cookie - " + getExceptionName(e), { exception: dumpObj(e) });
2145
+ _throwInternal(logger, 2 , 68 , "Cannot access document.cookie - " + getExceptionName(e), { exception: dumpObj(e) });
2101
2146
  }
2102
2147
  }
2103
2148
  return _supportsCookies;
@@ -2226,6 +2271,17 @@
2226
2271
  }
2227
2272
  _runChainOnComplete();
2228
2273
  }
2274
+ function _doUpdate(updateCtx, updateState) {
2275
+ var theUpdateState = updateState || {
2276
+ reason: 0
2277
+ };
2278
+ _processChannelQueue(channelQueue, updateCtx, function (chainCtx) {
2279
+ chainCtx[strProcessNext](theUpdateState);
2280
+ }, function () {
2281
+ updateCtx[strProcessNext](theUpdateState);
2282
+ });
2283
+ return true;
2284
+ }
2229
2285
  function _doTeardown(unloadCtx, unloadState) {
2230
2286
  var theUnloadState = unloadState || {
2231
2287
  reason: 0 ,
@@ -2277,7 +2333,8 @@
2277
2333
  }, function () {
2278
2334
  itemCtx[strProcessNext](item);
2279
2335
  });
2280
- }
2336
+ },
2337
+ update: _doUpdate
2281
2338
  },
2282
2339
  _a[strPause] = function () {
2283
2340
  _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {
@@ -2375,7 +2432,7 @@
2375
2432
  handler(unloadCtx, unloadState);
2376
2433
  }
2377
2434
  catch (e) {
2378
- unloadCtx.diagLog().throwInternal(2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
2435
+ _throwInternal(unloadCtx.diagLog(), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
2379
2436
  }
2380
2437
  });
2381
2438
  handlers = [];
@@ -2434,6 +2491,30 @@
2434
2491
  }
2435
2492
  return result;
2436
2493
  };
2494
+ _self.update = function (updateCtx, updateState) {
2495
+ if (!_self.core || (updateCtx && _self.core !== updateCtx.core())) {
2496
+ return;
2497
+ }
2498
+ var result;
2499
+ var updateDone = false;
2500
+ var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, {}, _self.core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
2501
+ var theUpdateState = updateState || {
2502
+ reason: 0
2503
+ };
2504
+ function _updateCallback() {
2505
+ if (!updateDone) {
2506
+ updateDone = true;
2507
+ _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx.getNext());
2508
+ }
2509
+ }
2510
+ if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
2511
+ _updateCallback();
2512
+ }
2513
+ else {
2514
+ result = true;
2515
+ }
2516
+ return result;
2517
+ };
2437
2518
  _self._addHook = function (hooks) {
2438
2519
  if (hooks) {
2439
2520
  if (isArray(hooks)) {
@@ -2548,7 +2629,7 @@
2548
2629
  }
2549
2630
  }
2550
2631
  catch (e) {
2551
- itemCtx.diagLog().throwInternal(1 , 64 , "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
2632
+ _throwInternal(itemCtx.diagLog(), 1 , 64 , "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
2552
2633
  }
2553
2634
  }
2554
2635
  }
@@ -2669,7 +2750,7 @@
2669
2750
  _configExtensions = [];
2670
2751
  _configExtensions.push.apply(_configExtensions, __spreadArrayFn(__spreadArrayFn([], extensions, false), config.extensions));
2671
2752
  _channelConfig = (config || {}).channels;
2672
- _initPluginChain(config);
2753
+ _initPluginChain(config, null);
2673
2754
  if (_self.getTransmissionControls().length === 0) {
2674
2755
  throwError("No channels available");
2675
2756
  }
@@ -2812,22 +2893,28 @@
2812
2893
  _logOrThrowError("Plugin [" + plugin.identifier + "] is already loaded!");
2813
2894
  return;
2814
2895
  }
2896
+ var updateState = {
2897
+ reason: 16
2898
+ };
2815
2899
  function _addPlugin(removed) {
2816
2900
  _configExtensions.push(plugin);
2817
- _initPluginChain(_self.config);
2901
+ updateState.added = [plugin];
2902
+ _initPluginChain(_self.config, updateState);
2818
2903
  addCb && addCb(true);
2819
2904
  }
2820
2905
  if (existingPlugin) {
2821
- var removedPlugins = [existingPlugin.plugin];
2906
+ var removedPlugins_1 = [existingPlugin.plugin];
2822
2907
  var unloadState = {
2823
2908
  reason: 2 ,
2824
2909
  isAsync: isAsync
2825
2910
  };
2826
- _removePlugins(removedPlugins, unloadState, function (removed) {
2911
+ _removePlugins(removedPlugins_1, unloadState, function (removed) {
2827
2912
  if (!removed) {
2828
2913
  addCb && addCb(false);
2829
2914
  }
2830
2915
  else {
2916
+ updateState.removed = removedPlugins_1;
2917
+ updateState.reason |= 32 ;
2831
2918
  _addPlugin();
2832
2919
  }
2833
2920
  });
@@ -2865,7 +2952,7 @@
2865
2952
  function _createTelCtx() {
2866
2953
  return createProcessTelemetryContext(_getPluginChain(), _self.config, _self);
2867
2954
  }
2868
- function _initPluginChain(config) {
2955
+ function _initPluginChain(config, updateState) {
2869
2956
  var theExtensions = _validateExtensions(_self.logger, ChannelControllerPriority, _configExtensions);
2870
2957
  _coreExtensions = theExtensions.core;
2871
2958
  _pluginChain = null;
@@ -2891,6 +2978,9 @@
2891
2978
  _channelControl.initialize(config, _self, allExtensions);
2892
2979
  initializePlugins(_createTelCtx(), allExtensions);
2893
2980
  _self._extensions = objFreeze(sortPlugins(_coreExtensions || [])).slice();
2981
+ if (updateState) {
2982
+ _doUpdate(updateState);
2983
+ }
2894
2984
  }
2895
2985
  function _getPlugin(pluginIdentifier) {
2896
2986
  var theExt = null;
@@ -2923,7 +3013,10 @@
2923
3013
  };
2924
3014
  _removePlugins(pluginsToRemove, unloadState, function (removed) {
2925
3015
  if (removed) {
2926
- _initPluginChain(_self.config);
3016
+ _initPluginChain(_self.config, {
3017
+ reason: 32 ,
3018
+ removed: pluginsToRemove
3019
+ });
2927
3020
  }
2928
3021
  removeCb && removeCb(removed);
2929
3022
  });
@@ -3020,10 +3113,16 @@
3020
3113
  var extConfig = getSetValue(config, strExtensionConfig);
3021
3114
  extConfig.NotificationManager = _notificationManager;
3022
3115
  }
3116
+ function _doUpdate(updateState) {
3117
+ var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self.config, _self);
3118
+ if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {
3119
+ updateCtx.processNext(updateState);
3120
+ }
3121
+ }
3023
3122
  function _logOrThrowError(message) {
3024
3123
  var logger = _self.logger;
3025
3124
  if (logger) {
3026
- logger.throwInternal(2 , 73 , message);
3125
+ _throwInternal(logger, 2 , 73 , message);
3027
3126
  }
3028
3127
  else {
3029
3128
  throwError(message);
@@ -3138,6 +3237,8 @@
3138
3237
  var strOnPrefix = "on";
3139
3238
  var strAttachEvent = "attachEvent";
3140
3239
  var strAddEventHelper = "addEventListener";
3240
+ var strDetachEvent = "detachEvent";
3241
+ var strRemoveEventListener = "removeEventListener";
3141
3242
  var strEvents = "events";
3142
3243
  var strVisibilityChangeEvt = "visibilitychange";
3143
3244
  var strPageHide = "pagehide";
@@ -3154,12 +3255,12 @@
3154
3255
  }
3155
3256
  return name;
3156
3257
  }
3157
- function _getEvtNamespace(eventName, namespaces) {
3158
- if (namespaces) {
3258
+ function _getEvtNamespace(eventName, evtNamespace) {
3259
+ if (evtNamespace) {
3159
3260
  var theNamespace_1 = "";
3160
- if (isArray(namespaces)) {
3261
+ if (isArray(evtNamespace)) {
3161
3262
  theNamespace_1 = "";
3162
- arrForEach(namespaces, function (name) {
3263
+ arrForEach(evtNamespace, function (name) {
3163
3264
  name = _normalizeNamespace(name);
3164
3265
  if (name) {
3165
3266
  if (name[0] !== ".") {
@@ -3170,7 +3271,7 @@
3170
3271
  });
3171
3272
  }
3172
3273
  else {
3173
- theNamespace_1 = _normalizeNamespace(namespaces);
3274
+ theNamespace_1 = _normalizeNamespace(evtNamespace);
3174
3275
  }
3175
3276
  if (theNamespace_1) {
3176
3277
  if (theNamespace_1[0] !== ".") {
@@ -3194,6 +3295,16 @@
3194
3295
  }
3195
3296
  return registeredEvents;
3196
3297
  }
3298
+ function _doDetach(obj, evtName, handlerRef, useCapture) {
3299
+ if (obj && evtName && evtName.type) {
3300
+ if (obj[strRemoveEventListener]) {
3301
+ obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
3302
+ }
3303
+ else if (obj[strDetachEvent]) {
3304
+ obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
3305
+ }
3306
+ }
3307
+ }
3197
3308
  function _doAttach(obj, evtName, handlerRef, useCapture) {
3198
3309
  var result = false;
3199
3310
  if (obj && evtName && evtName.type && handlerRef) {
@@ -3208,6 +3319,34 @@
3208
3319
  }
3209
3320
  return result;
3210
3321
  }
3322
+ function _doUnregister(target, events, evtName, unRegFn) {
3323
+ var idx = events.length;
3324
+ while (idx--) {
3325
+ var theEvent = events[idx];
3326
+ if (theEvent) {
3327
+ if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
3328
+ if (!unRegFn || unRegFn(theEvent)) {
3329
+ _doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
3330
+ events.splice(idx, 1);
3331
+ }
3332
+ }
3333
+ }
3334
+ }
3335
+ }
3336
+ function _unregisterEvents(target, evtName, unRegFn) {
3337
+ if (evtName.type) {
3338
+ _doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
3339
+ }
3340
+ else {
3341
+ var eventCache = elmNodeData.get(target, strEvents, {});
3342
+ objForEachKey(eventCache, function (evtType, events) {
3343
+ _doUnregister(target, events, evtName, unRegFn);
3344
+ });
3345
+ if (objKeys(eventCache).length === 0) {
3346
+ elmNodeData.kill(target, strEvents);
3347
+ }
3348
+ }
3349
+ }
3211
3350
  function mergeEvtNamespace(theNamespace, namespaces) {
3212
3351
  var newNamespaces;
3213
3352
  if (namespaces) {
@@ -3245,6 +3384,27 @@
3245
3384
  }
3246
3385
  return result;
3247
3386
  }
3387
+ function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
3388
+ if (useCapture === void 0) { useCapture = false; }
3389
+ if (target) {
3390
+ try {
3391
+ var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
3392
+ var found_1 = false;
3393
+ _unregisterEvents(target, evtName_1, function (regEvent) {
3394
+ if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
3395
+ found_1 = true;
3396
+ return true;
3397
+ }
3398
+ return false;
3399
+ });
3400
+ if (!found_1) {
3401
+ _doDetach(target, evtName_1, handlerRef, useCapture);
3402
+ }
3403
+ }
3404
+ catch (e) {
3405
+ }
3406
+ }
3407
+ }
3248
3408
  function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {
3249
3409
  if (useCapture === void 0) { useCapture = false; }
3250
3410
  return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);
@@ -3685,7 +3845,7 @@
3685
3845
  name = strTrim(name.toString());
3686
3846
  if (name.length > 150 ) {
3687
3847
  nameTrunc = name.substring(0, 150 );
3688
- logger && logger.throwInternal(2 , _InternalMessageId.NameTooLong, "name is too long. It has been truncated to " + 150 + " characters.", { name: name }, true);
3848
+ _throwInternal(logger, 2 , _InternalMessageId.NameTooLong, "name is too long. It has been truncated to " + 150 + " characters.", { name: name }, true);
3689
3849
  }
3690
3850
  }
3691
3851
  return nameTrunc || name;
@@ -3698,7 +3858,7 @@
3698
3858
  value = strTrim(value);
3699
3859
  if (value.toString().length > maxLength) {
3700
3860
  valueTrunc = value.toString().substring(0, maxLength);
3701
- logger && logger.throwInternal(2 , _InternalMessageId.StringValueTooLong, "string value is too long. It has been truncated to " + maxLength + " characters.", { value: value }, true);
3861
+ _throwInternal(logger, 2 , _InternalMessageId.StringValueTooLong, "string value is too long. It has been truncated to " + maxLength + " characters.", { value: value }, true);
3702
3862
  }
3703
3863
  }
3704
3864
  return valueTrunc || value;
@@ -3711,7 +3871,7 @@
3711
3871
  if (message) {
3712
3872
  if (message.length > 32768 ) {
3713
3873
  messageTrunc = message.substring(0, 32768 );
3714
- logger && logger.throwInternal(2 , _InternalMessageId.MessageTruncated, "message is too long, it has been truncated to " + 32768 + " characters.", { message: message }, true);
3874
+ _throwInternal(logger, 2 , _InternalMessageId.MessageTruncated, "message is too long, it has been truncated to " + 32768 + " characters.", { message: message }, true);
3715
3875
  }
3716
3876
  }
3717
3877
  return messageTrunc || message;
@@ -3722,7 +3882,7 @@
3722
3882
  var value = "" + exception;
3723
3883
  if (value.length > 32768 ) {
3724
3884
  exceptionTrunc = value.substring(0, 32768 );
3725
- logger && logger.throwInternal(2 , _InternalMessageId.ExceptionTruncated, "exception is too long, it has been truncated to " + 32768 + " characters.", { exception: exception }, true);
3885
+ _throwInternal(logger, 2 , _InternalMessageId.ExceptionTruncated, "exception is too long, it has been truncated to " + 32768 + " characters.", { exception: exception }, true);
3726
3886
  }
3727
3887
  }
3728
3888
  return exceptionTrunc || exception;
@@ -3736,7 +3896,7 @@
3736
3896
  value = getJSON().stringify(value);
3737
3897
  }
3738
3898
  catch (e) {
3739
- logger && logger.throwInternal(2 , _InternalMessageId.CannotSerializeObjectNonSerializable, "custom property is not valid", { exception: e }, true);
3899
+ _throwInternal(logger, 2 , _InternalMessageId.CannotSerializeObjectNonSerializable, "custom property is not valid", { exception: e }, true);
3740
3900
  }
3741
3901
  }
3742
3902
  value = dataSanitizeString(logger, value, 8192 );
@@ -3767,7 +3927,7 @@
3767
3927
  input = strTrim(input);
3768
3928
  if (input.length > maxLength) {
3769
3929
  inputTrunc = input.substring(0, maxLength);
3770
- logger && logger.throwInternal(2 , _msgId, "input is too long, it has been truncated to " + maxLength + " characters.", { data: input }, true);
3930
+ _throwInternal(logger, 2 , _msgId, "input is too long, it has been truncated to " + maxLength + " characters.", { data: input }, true);
3771
3931
  }
3772
3932
  }
3773
3933
  return inputTrunc || input;
@@ -3905,8 +4065,12 @@
3905
4065
  _canUseLocalStorage = false;
3906
4066
  _canUseSessionStorage = false;
3907
4067
  }
3908
- function utlCanUseLocalStorage() {
3909
- if (_canUseLocalStorage === undefined) {
4068
+ function utlEnableStorage() {
4069
+ _canUseLocalStorage = utlCanUseLocalStorage(true);
4070
+ _canUseSessionStorage = utlCanUseSessionStorage(true);
4071
+ }
4072
+ function utlCanUseLocalStorage(reset) {
4073
+ if (reset || _canUseLocalStorage === undefined) {
3910
4074
  _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);
3911
4075
  }
3912
4076
  return _canUseLocalStorage;
@@ -3919,7 +4083,7 @@
3919
4083
  }
3920
4084
  catch (e) {
3921
4085
  _canUseLocalStorage = false;
3922
- logger.throwInternal(2 , _InternalMessageId.BrowserCannotReadLocalStorage, "Browser failed read of local storage. " + getExceptionName(e), { exception: dumpObj(e) });
4086
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserCannotReadLocalStorage, "Browser failed read of local storage. " + getExceptionName(e), { exception: dumpObj(e) });
3923
4087
  }
3924
4088
  }
3925
4089
  return null;
@@ -3933,7 +4097,7 @@
3933
4097
  }
3934
4098
  catch (e) {
3935
4099
  _canUseLocalStorage = false;
3936
- logger.throwInternal(2 , _InternalMessageId.BrowserCannotWriteLocalStorage, "Browser failed write to local storage. " + getExceptionName(e), { exception: dumpObj(e) });
4100
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserCannotWriteLocalStorage, "Browser failed write to local storage. " + getExceptionName(e), { exception: dumpObj(e) });
3937
4101
  }
3938
4102
  }
3939
4103
  return false;
@@ -3947,13 +4111,13 @@
3947
4111
  }
3948
4112
  catch (e) {
3949
4113
  _canUseLocalStorage = false;
3950
- logger.throwInternal(2 , _InternalMessageId.BrowserFailedRemovalFromLocalStorage, "Browser failed removal of local storage item. " + getExceptionName(e), { exception: dumpObj(e) });
4114
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserFailedRemovalFromLocalStorage, "Browser failed removal of local storage item. " + getExceptionName(e), { exception: dumpObj(e) });
3951
4115
  }
3952
4116
  }
3953
4117
  return false;
3954
4118
  }
3955
- function utlCanUseSessionStorage() {
3956
- if (_canUseSessionStorage === undefined) {
4119
+ function utlCanUseSessionStorage(reset) {
4120
+ if (reset || _canUseSessionStorage === undefined) {
3957
4121
  _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
3958
4122
  }
3959
4123
  return _canUseSessionStorage;
@@ -3975,7 +4139,7 @@
3975
4139
  }
3976
4140
  catch (e) {
3977
4141
  _canUseSessionStorage = false;
3978
- logger.throwInternal(2 , _InternalMessageId.BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
4142
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
3979
4143
  }
3980
4144
  }
3981
4145
  return null;
@@ -3989,7 +4153,7 @@
3989
4153
  }
3990
4154
  catch (e) {
3991
4155
  _canUseSessionStorage = false;
3992
- logger.throwInternal(2 , _InternalMessageId.BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
4156
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
3993
4157
  }
3994
4158
  }
3995
4159
  return false;
@@ -4003,7 +4167,7 @@
4003
4167
  }
4004
4168
  catch (e) {
4005
4169
  _canUseSessionStorage = false;
4006
- logger.throwInternal(2 , _InternalMessageId.BrowserFailedRemovalFromSessionStorage, "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
4170
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserFailedRemovalFromSessionStorage, "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
4007
4171
  }
4008
4172
  }
4009
4173
  return false;
@@ -5738,6 +5902,33 @@
5738
5902
  return PageViewPerformanceManager;
5739
5903
  }());
5740
5904
 
5905
+ var Timing = /** @class */ (function () {
5906
+ function Timing(logger, name) {
5907
+ var _self = this;
5908
+ var _events = {};
5909
+ _self.start = function (name) {
5910
+ if (typeof _events[name] !== "undefined") {
5911
+ _throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
5912
+ }
5913
+ _events[name] = +new Date;
5914
+ };
5915
+ _self.stop = function (name, url, properties, measurements) {
5916
+ var start = _events[name];
5917
+ if (isNaN(start)) {
5918
+ _throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, "stop was called without a corresponding start.", { name: name, key: name }, true);
5919
+ }
5920
+ else {
5921
+ var end = +new Date;
5922
+ var duration = dateTimeUtilsDuration(start, end);
5923
+ _self.action(name, url, duration, properties, measurements);
5924
+ }
5925
+ delete _events[name];
5926
+ _events[name] = undefined;
5927
+ };
5928
+ }
5929
+ return Timing;
5930
+ }());
5931
+
5741
5932
  var durationProperty = "duration";
5742
5933
  var strEvent = "event";
5743
5934
  function _dispatchEvent(target, evnt) {
@@ -5755,47 +5946,78 @@
5755
5946
  }
5756
5947
  return error || "";
5757
5948
  }
5758
- var ApplicationInsights = /** @class */ (function (_super) {
5759
- __extendsFn(ApplicationInsights, _super);
5760
- function ApplicationInsights() {
5949
+ var MinMilliSeconds = 60000;
5950
+ function _configMilliseconds(value, defValue) {
5951
+ value = value || defValue;
5952
+ if (value < MinMilliSeconds) {
5953
+ value = MinMilliSeconds;
5954
+ }
5955
+ return value;
5956
+ }
5957
+ function _getDefaultConfig(config) {
5958
+ if (!config) {
5959
+ config = {};
5960
+ }
5961
+ config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);
5962
+ config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);
5963
+ config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);
5964
+ config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);
5965
+ config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);
5966
+ config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);
5967
+ if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
5968
+ config.samplingPercentage = 100;
5969
+ }
5970
+ config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
5971
+ config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
5972
+ config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
5973
+ config.namePrefix = config.namePrefix || "";
5974
+ config.enableDebug = stringToBoolOrDefault(config.enableDebug);
5975
+ config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
5976
+ config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
5977
+ return config;
5978
+ }
5979
+ function _updateStorageUsage(extConfig) {
5980
+ if (!isUndefined(extConfig.isStorageUseDisabled)) {
5981
+ if (extConfig.isStorageUseDisabled) {
5982
+ utlDisableStorage();
5983
+ }
5984
+ else {
5985
+ utlEnableStorage();
5986
+ }
5987
+ }
5988
+ }
5989
+ var AnalyticsPlugin = /** @class */ (function (_super) {
5990
+ __extendsFn(AnalyticsPlugin, _super);
5991
+ function AnalyticsPlugin() {
5761
5992
  var _this = _super.call(this) || this;
5762
5993
  _this.identifier = AnalyticsPluginIdentifier;
5763
5994
  _this.priority = 180;
5764
5995
  _this.autoRoutePVDelay = 500;
5765
5996
  var _eventTracking;
5766
5997
  var _pageTracking;
5767
- var _properties;
5998
+ var _pageViewManager;
5999
+ var _pageViewPerformanceManager;
6000
+ var _pageVisitTimeManager;
6001
+ var _preInitTelemetryInitializers;
6002
+ var _isBrowserLinkTrackingEnabled;
6003
+ var _browserLinkInitializerAdded;
6004
+ var _enableAutoRouteTracking;
6005
+ var _historyListenerAdded;
6006
+ var _disableExceptionTracking;
6007
+ var _autoExceptionInstrumented;
6008
+ var _enableUnhandledPromiseRejectionTracking;
6009
+ var _autoUnhandledPromiseInstrumented;
5768
6010
  var _prevUri;
5769
6011
  var _currUri;
5770
- dynamicProto(ApplicationInsights, _this, function (_self, _base) {
5771
- var location = getLocation(true);
5772
- _prevUri = location && location.href || "";
6012
+ var _evtNamespace;
6013
+ dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {
6014
+ var _addHook = _base._addHook;
6015
+ _initDefaults();
5773
6016
  _self.getCookieMgr = function () {
5774
6017
  return safeGetCookieMgr(_self.core);
5775
6018
  };
5776
6019
  _self.processTelemetry = function (env, itemCtx) {
5777
- doPerf(_self.core, function () { return _self.identifier + ":processTelemetry"; }, function () {
5778
- var doNotSendItem = false;
5779
- var telemetryInitializersCount = _self._telemetryInitializers.length;
5780
- itemCtx = _self._getTelCtx(itemCtx);
5781
- for (var i = 0; i < telemetryInitializersCount; ++i) {
5782
- var telemetryInitializer = _self._telemetryInitializers[i];
5783
- if (telemetryInitializer) {
5784
- try {
5785
- if (telemetryInitializer.apply(null, [env]) === false) {
5786
- doNotSendItem = true;
5787
- break;
5788
- }
5789
- }
5790
- catch (e) {
5791
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
5792
- }
5793
- }
5794
- }
5795
- if (!doNotSendItem) {
5796
- _self.processNext(env, itemCtx);
5797
- }
5798
- }, function () { return ({ item: env }); }, !(env.sync));
6020
+ _self.processNext(env, itemCtx);
5799
6021
  };
5800
6022
  _self.trackEvent = function (event, customProperties) {
5801
6023
  try {
@@ -5803,7 +6025,7 @@
5803
6025
  _self.core.track(telemetryItem);
5804
6026
  }
5805
6027
  catch (e) {
5806
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6028
+ _throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5807
6029
  }
5808
6030
  };
5809
6031
  _self.startTrackEvent = function (name) {
@@ -5811,7 +6033,7 @@
5811
6033
  _eventTracking.start(name);
5812
6034
  }
5813
6035
  catch (e) {
5814
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6036
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5815
6037
  }
5816
6038
  };
5817
6039
  _self.stopTrackEvent = function (name, properties, measurements) {
@@ -5819,7 +6041,7 @@
5819
6041
  _eventTracking.stop(name, undefined, properties);
5820
6042
  }
5821
6043
  catch (e) {
5822
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6044
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5823
6045
  }
5824
6046
  };
5825
6047
  _self.trackTrace = function (trace, customProperties) {
@@ -5828,7 +6050,7 @@
5828
6050
  _self.core.track(telemetryItem);
5829
6051
  }
5830
6052
  catch (e) {
5831
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6053
+ _throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5832
6054
  }
5833
6055
  };
5834
6056
  _self.trackMetric = function (metric, customProperties) {
@@ -5837,19 +6059,19 @@
5837
6059
  _self.core.track(telemetryItem);
5838
6060
  }
5839
6061
  catch (e) {
5840
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, "trackMetric failed, metric will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6062
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, "trackMetric failed, metric will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5841
6063
  }
5842
6064
  };
5843
6065
  _self.trackPageView = function (pageView, customProperties) {
5844
6066
  try {
5845
6067
  var inPv = pageView || {};
5846
- _self._pageViewManager.trackPageView(inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
6068
+ _pageViewManager.trackPageView(inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
5847
6069
  if (_self.config.autoTrackPageVisitTime) {
5848
- _self._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);
6070
+ _pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);
5849
6071
  }
5850
6072
  }
5851
6073
  catch (e) {
5852
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageView failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6074
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageView failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5853
6075
  }
5854
6076
  };
5855
6077
  _self.sendPageViewInternal = function (pageView, properties, systemProperties) {
@@ -5865,12 +6087,13 @@
5865
6087
  _self.core.track(telemetryItem);
5866
6088
  };
5867
6089
  _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {
6090
+ var inPvp = pageViewPerformance || {};
5868
6091
  try {
5869
- _self._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);
5870
- _self.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);
6092
+ _pageViewPerformanceManager.populatePageViewPerformanceEvent(inPvp);
6093
+ _self.sendPageViewPerformanceInternal(inPvp, customProperties);
5871
6094
  }
5872
6095
  catch (e) {
5873
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6096
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5874
6097
  }
5875
6098
  };
5876
6099
  _self.startTrackPage = function (name) {
@@ -5882,7 +6105,7 @@
5882
6105
  _pageTracking.start(name);
5883
6106
  }
5884
6107
  catch (e) {
5885
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, "startTrackPage failed, page view may not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6108
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, "startTrackPage failed, page view may not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5886
6109
  }
5887
6110
  };
5888
6111
  _self.stopTrackPage = function (name, url, properties, measurement) {
@@ -5897,11 +6120,11 @@
5897
6120
  }
5898
6121
  _pageTracking.stop(name, url, properties, measurement);
5899
6122
  if (_self.config.autoTrackPageVisitTime) {
5900
- _self._pageVisitTimeManager.trackPreviousPageVisit(name, url);
6123
+ _pageVisitTimeManager.trackPreviousPageVisit(name, url);
5901
6124
  }
5902
6125
  }
5903
6126
  catch (e) {
5904
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6127
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5905
6128
  }
5906
6129
  };
5907
6130
  _self.sendExceptionInternal = function (exception, customProperties, systemProperties) {
@@ -5911,11 +6134,14 @@
5911
6134
  _self.core.track(telemetryItem);
5912
6135
  };
5913
6136
  _self.trackException = function (exception, customProperties) {
6137
+ if (exception && !exception.exception && exception.error) {
6138
+ exception.exception = exception.error;
6139
+ }
5914
6140
  try {
5915
6141
  _self.sendExceptionInternal(exception, customProperties);
5916
6142
  }
5917
6143
  catch (e) {
5918
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, "trackException failed, exception will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6144
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, "trackException failed, exception will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
5919
6145
  }
5920
6146
  };
5921
6147
  _self._onerror = function (exception) {
@@ -5949,158 +6175,97 @@
5949
6175
  }
5950
6176
  catch (e) {
5951
6177
  var errorString = error ? (error.name + ", " + error.message) : "null";
5952
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, "_onError threw exception while logging error, error will not be collected: "
6178
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, "_onError threw exception while logging error, error will not be collected: "
5953
6179
  + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });
5954
6180
  }
5955
6181
  };
5956
6182
  _self.addTelemetryInitializer = function (telemetryInitializer) {
5957
- _self._telemetryInitializers.push(telemetryInitializer);
6183
+ if (_self.core) {
6184
+ return _self.core.addTelemetryInitializer(telemetryInitializer);
6185
+ }
6186
+ if (!_preInitTelemetryInitializers) {
6187
+ _preInitTelemetryInitializers = [];
6188
+ }
6189
+ _preInitTelemetryInitializers.push(telemetryInitializer);
5958
6190
  };
5959
6191
  _self.initialize = function (config, core, extensions, pluginChain) {
5960
6192
  if (_self.isInitialized()) {
5961
6193
  return;
5962
6194
  }
5963
6195
  if (isNullOrUndefined(core)) {
5964
- throw Error("Error initializing");
6196
+ throwError("Error initializing");
5965
6197
  }
5966
6198
  _base.initialize(config, core, extensions, pluginChain);
5967
- _self.setInitialized(false);
5968
- var ctx = _self._getTelCtx();
5969
- var identifier = _self.identifier;
5970
- _self.config = ctx.getExtCfg(identifier);
5971
- var defaults = ApplicationInsights.getDefaultConfig(config);
5972
- if (defaults !== undefined) {
5973
- objForEachKey(defaults, function (field, value) {
5974
- _self.config[field] = ctx.getConfig(identifier, field, value);
5975
- if (_self.config[field] === undefined) {
5976
- _self.config[field] = value;
5977
- }
5978
- });
5979
- }
5980
- if (_self.config.isStorageUseDisabled) {
5981
- utlDisableStorage();
5982
- }
5983
- var configGetters = {
5984
- instrumentationKey: function () { return config.instrumentationKey; },
5985
- accountId: function () { return _self.config.accountId || config.accountId; },
5986
- sessionRenewalMs: function () { return _self.config.sessionRenewalMs || config.sessionRenewalMs; },
5987
- sessionExpirationMs: function () { return _self.config.sessionExpirationMs || config.sessionExpirationMs; },
5988
- sampleRate: function () { return _self.config.samplingPercentage || config.samplingPercentage; },
5989
- sdkExtension: function () { return _self.config.sdkExtension || config.sdkExtension; },
5990
- isBrowserLinkTrackingEnabled: function () { return _self.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled; },
5991
- appId: function () { return _self.config.appId || config.appId; }
5992
- };
5993
- _self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
5994
- _self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);
5995
- _self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
5996
- _self._telemetryInitializers = _self._telemetryInitializers || [];
5997
- _addDefaultTelemetryInitializers(configGetters);
5998
- _eventTracking = new Timing(_self.diagLog(), "trackEvent");
5999
- _eventTracking.action =
6000
- function (name, url, duration, properties) {
6001
- if (!properties) {
6199
+ try {
6200
+ _evtNamespace = mergeEvtNamespace(createUniqueNamespace("AnalyticsPlugin"), core.evtNamespace && core.evtNamespace());
6201
+ if (_preInitTelemetryInitializers) {
6202
+ arrForEach(_preInitTelemetryInitializers, function (initializer) {
6203
+ core.addTelemetryInitializer(initializer);
6204
+ });
6205
+ _preInitTelemetryInitializers = null;
6206
+ }
6207
+ var extConfig = _populateDefaults(config);
6208
+ _updateStorageUsage(extConfig);
6209
+ _pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
6210
+ _pageViewManager = new PageViewManager(_this, extConfig.overridePageViewDuration, _self.core, _pageViewPerformanceManager);
6211
+ _pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
6212
+ _updateBrowserLinkTracking(extConfig, config);
6213
+ _eventTracking = new Timing(_self.diagLog(), "trackEvent");
6214
+ _eventTracking.action =
6215
+ function (name, url, duration, properties) {
6216
+ if (!properties) {
6217
+ properties = {};
6218
+ }
6219
+ properties[durationProperty] = duration.toString();
6220
+ _self.trackEvent({ name: name, properties: properties });
6221
+ };
6222
+ _pageTracking = new Timing(_self.diagLog(), "trackPageView");
6223
+ _pageTracking.action = function (name, url, duration, properties, measurements) {
6224
+ if (isNullOrUndefined(properties)) {
6002
6225
  properties = {};
6003
6226
  }
6004
6227
  properties[durationProperty] = duration.toString();
6005
- _self.trackEvent({ name: name, properties: properties });
6006
- };
6007
- _pageTracking = new Timing(_self.diagLog(), "trackPageView");
6008
- _pageTracking.action = function (name, url, duration, properties, measurements) {
6009
- if (isNullOrUndefined(properties)) {
6010
- properties = {};
6011
- }
6012
- properties[durationProperty] = duration.toString();
6013
- var pageViewItem = {
6014
- name: name,
6015
- uri: url,
6016
- properties: properties,
6017
- measurements: measurements
6018
- };
6019
- _self.sendPageViewInternal(pageViewItem, properties);
6020
- };
6021
- var _window = getWindow();
6022
- var _history = getHistory();
6023
- var _location = getLocation(true);
6024
- var instance = _this;
6025
- if (_self.config.disableExceptionTracking === false &&
6026
- !_self.config.autoExceptionInstrumented && _window) {
6027
- var onerror_1 = "onerror";
6028
- var originalOnError_1 = _window[onerror_1];
6029
- _window.onerror = function (message, url, lineNumber, columnNumber, error) {
6030
- var evt = _window[strEvent];
6031
- var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);
6032
- if (handled !== true) {
6033
- instance._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, evt));
6034
- }
6035
- return handled;
6036
- };
6037
- _self.config.autoExceptionInstrumented = true;
6038
- }
6039
- if (_self.config.disableExceptionTracking === false &&
6040
- _self.config.enableUnhandledPromiseRejectionTracking === true &&
6041
- !_self.config.autoUnhandledPromiseInstrumented && _window) {
6042
- var onunhandledrejection_1 = "onunhandledrejection";
6043
- var originalOnUnhandledRejection_1 = _window[onunhandledrejection_1];
6044
- _window[onunhandledrejection_1] = function (error) {
6045
- var evt = _window[strEvent];
6046
- var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);
6047
- if (handled !== true) {
6048
- instance._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, evt));
6049
- }
6050
- return handled;
6228
+ var pageViewItem = {
6229
+ name: name,
6230
+ uri: url,
6231
+ properties: properties,
6232
+ measurements: measurements
6233
+ };
6234
+ _self.sendPageViewInternal(pageViewItem, properties);
6051
6235
  };
6052
- _self.config.autoUnhandledPromiseInstrumented = true;
6053
- }
6054
- if (_self.config.enableAutoRouteTracking === true
6055
- && _history && isFunction(_history.pushState) && isFunction(_history.replaceState)
6056
- && _window
6057
- && typeof Event !== "undefined") {
6058
- var _self_1 = _this;
6059
- arrForEach(extensions, function (extension) {
6060
- if (extension.identifier === PropertiesPluginIdentifier) {
6061
- _properties = extension;
6062
- }
6063
- });
6064
- _history.pushState = (function (f) { return function pushState() {
6065
- var ret = f.apply(this, arguments);
6066
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "pushState"));
6067
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
6068
- return ret;
6069
- }; })(_history.pushState);
6070
- _history.replaceState = (function (f) { return function replaceState() {
6071
- var ret = f.apply(this, arguments);
6072
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "replaceState"));
6073
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
6074
- return ret;
6075
- }; })(_history.replaceState);
6076
- if (_window.addEventListener) {
6077
- _window.addEventListener(_self_1.config.namePrefix + "popstate", function () {
6078
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
6079
- });
6080
- _window.addEventListener(_self_1.config.namePrefix + "locationchange", function () {
6081
- if (_properties && _properties.context && _properties.context.telemetryTrace) {
6082
- _properties.context.telemetryTrace.traceID = generateW3CId();
6083
- var traceLocationName = "_unknown_";
6084
- if (_location && _location.pathname) {
6085
- traceLocationName = _location.pathname + (_location.hash || "");
6086
- }
6087
- _properties.context.telemetryTrace.name = dataSanitizeString(_self_1.diagLog(), traceLocationName);
6088
- }
6089
- if (_currUri) {
6090
- _prevUri = _currUri;
6091
- _currUri = _location && _location.href || "";
6092
- }
6093
- else {
6094
- _currUri = _location && _location.href || "";
6095
- }
6096
- setTimeout((function (uri) {
6097
- _self_1.trackPageView({ refUri: uri, properties: { duration: 0 } });
6098
- }).bind(_this, _prevUri), _self_1.autoRoutePVDelay);
6099
- });
6236
+ if (hasWindow()) {
6237
+ _updateExceptionTracking(extConfig);
6238
+ _updateLocationChange(extConfig);
6100
6239
  }
6101
6240
  }
6102
- _self.setInitialized(true);
6241
+ catch (e) {
6242
+ _self.setInitialized(false);
6243
+ throw e;
6244
+ }
6245
+ };
6246
+ _self._doTeardown = function (unloadCtx, unloadState) {
6247
+ eventOff(window, null, null, _evtNamespace);
6248
+ _initDefaults();
6103
6249
  };
6250
+ function _populateDefaults(config) {
6251
+ var ctx = createProcessTelemetryContext(null, config, _self.core);
6252
+ var identifier = _self.identifier;
6253
+ var defaults = _getDefaultConfig(config);
6254
+ var extConfig = _self.config = ctx.getExtCfg(identifier);
6255
+ if (defaults !== undefined) {
6256
+ objForEachKey(defaults, function (field, value) {
6257
+ extConfig[field] = ctx.getConfig(identifier, field, value);
6258
+ if (extConfig[field] === undefined) {
6259
+ extConfig = value;
6260
+ }
6261
+ });
6262
+ }
6263
+ return extConfig;
6264
+ }
6265
+ function _updateBrowserLinkTracking(extConfig, config) {
6266
+ _isBrowserLinkTrackingEnabled = extConfig.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled;
6267
+ _addDefaultTelemetryInitializers();
6268
+ }
6104
6269
  function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {
6105
6270
  var properties = { PageName: pageName, PageUrl: pageUrl };
6106
6271
  _self.trackMetric({
@@ -6111,11 +6276,11 @@
6111
6276
  sampleCount: 1
6112
6277
  }, properties);
6113
6278
  }
6114
- function _addDefaultTelemetryInitializers(configGetters) {
6115
- if (!configGetters.isBrowserLinkTrackingEnabled()) {
6279
+ function _addDefaultTelemetryInitializers() {
6280
+ if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {
6116
6281
  var browserLinkPaths_1 = ["/browserLinkSignalR/", "/__browserLink/"];
6117
6282
  var dropBrowserLinkRequests = function (envelope) {
6118
- if (envelope.baseType === RemoteDependencyData.dataType) {
6283
+ if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData.dataType) {
6119
6284
  var remoteData = envelope.baseData;
6120
6285
  if (remoteData) {
6121
6286
  for (var i = 0; i < browserLinkPaths_1.length; i++) {
@@ -6127,70 +6292,147 @@
6127
6292
  }
6128
6293
  return true;
6129
6294
  };
6130
- _addTelemetryInitializer(dropBrowserLinkRequests);
6295
+ _self.addTelemetryInitializer(dropBrowserLinkRequests);
6296
+ _browserLinkInitializerAdded = true;
6131
6297
  }
6132
6298
  }
6133
- function _addTelemetryInitializer(telemetryInitializer) {
6134
- _self._telemetryInitializers.push(telemetryInitializer);
6135
- }
6136
6299
  function _sendCORSException(exception, properties) {
6137
6300
  var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);
6138
6301
  _self.core.track(telemetryItem);
6139
6302
  }
6140
- });
6141
- return _this;
6142
- }
6143
- ApplicationInsights.getDefaultConfig = function (config) {
6144
- if (!config) {
6145
- config = {};
6146
- }
6147
- config.sessionRenewalMs = 30 * 60 * 1000;
6148
- config.sessionExpirationMs = 24 * 60 * 60 * 1000;
6149
- config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);
6150
- config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);
6151
- config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);
6152
- config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);
6153
- if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
6154
- config.samplingPercentage = 100;
6155
- }
6156
- config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
6157
- config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
6158
- config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
6159
- config.namePrefix = config.namePrefix || "";
6160
- config.enableDebug = stringToBoolOrDefault(config.enableDebug);
6161
- config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
6162
- config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
6163
- return config;
6164
- };
6165
- ApplicationInsights.Version = "2.8.0-beta.2203-03";
6166
- return ApplicationInsights;
6167
- }(BaseTelemetryPlugin));
6168
- var Timing = /** @class */ (function () {
6169
- function Timing(logger, name) {
6170
- var _self = this;
6171
- var _events = {};
6172
- _self.start = function (name) {
6173
- if (typeof _events[name] !== "undefined") {
6174
- logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
6303
+ function _updateExceptionTracking(extConfig) {
6304
+ var _window = getWindow();
6305
+ var locn = getLocation(true);
6306
+ _disableExceptionTracking = extConfig.disableExceptionTracking;
6307
+ if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {
6308
+ _addHook(InstrumentFunc(_window, "onerror", {
6309
+ ns: _evtNamespace,
6310
+ rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {
6311
+ if (!_disableExceptionTracking && callDetails.rslt !== true) {
6312
+ _self._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, callDetails.evt));
6313
+ }
6314
+ }
6315
+ }));
6316
+ _autoExceptionInstrumented = true;
6317
+ }
6318
+ _addUnhandledPromiseRejectionTracking(extConfig, _window, locn);
6175
6319
  }
6176
- _events[name] = +new Date;
6177
- };
6178
- _self.stop = function (name, url, properties, measurements) {
6179
- var start = _events[name];
6180
- if (isNaN(start)) {
6181
- logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, "stop was called without a corresponding start.", { name: name, key: name }, true);
6320
+ function _updateLocationChange(extConfig) {
6321
+ var win = getWindow();
6322
+ var locn = getLocation(true);
6323
+ _enableAutoRouteTracking = extConfig.enableAutoRouteTracking === true;
6324
+ if (win && _enableAutoRouteTracking && hasHistory()) {
6325
+ var _history = getHistory();
6326
+ if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strShimUndefined) {
6327
+ _addHistoryListener(extConfig, win, _history, locn);
6328
+ }
6329
+ }
6182
6330
  }
6183
- else {
6184
- var end = +new Date;
6185
- var duration = dateTimeUtilsDuration(start, end);
6186
- _self.action(name, url, duration, properties, measurements);
6331
+ function _addHistoryListener(extConfig, win, history, locn) {
6332
+ function _popstateHandler() {
6333
+ if (_enableAutoRouteTracking) {
6334
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
6335
+ }
6336
+ }
6337
+ function _locationChangeHandler() {
6338
+ if (_currUri) {
6339
+ _prevUri = _currUri;
6340
+ _currUri = locn && locn.href || "";
6341
+ }
6342
+ else {
6343
+ _currUri = locn && locn.href || "";
6344
+ }
6345
+ if (_enableAutoRouteTracking) {
6346
+ var properties = _self.core.getPlugin(PropertiesPluginIdentifier);
6347
+ if (properties) {
6348
+ var context = properties.plugin.context;
6349
+ if (context && context.telemetryTrace) {
6350
+ context.telemetryTrace.traceID = generateW3CId();
6351
+ var traceLocationName = "_unknown_";
6352
+ if (locn && locn.pathname) {
6353
+ traceLocationName = locn.pathname + (locn.hash || "");
6354
+ }
6355
+ context.telemetryTrace.name = dataSanitizeString(_self.diagLog(), traceLocationName);
6356
+ }
6357
+ }
6358
+ setTimeout((function (uri) {
6359
+ _self.trackPageView({ refUri: uri, properties: { duration: 0 } });
6360
+ }).bind(this, _prevUri), _self.autoRoutePVDelay);
6361
+ }
6362
+ }
6363
+ if (!_historyListenerAdded) {
6364
+ _addHook(InstrumentFunc(history, "pushState", {
6365
+ ns: _evtNamespace,
6366
+ rsp: function () {
6367
+ if (_enableAutoRouteTracking) {
6368
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "pushState"));
6369
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
6370
+ }
6371
+ }
6372
+ }));
6373
+ _addHook(InstrumentFunc(history, "replaceState", {
6374
+ ns: _evtNamespace,
6375
+ rsp: function () {
6376
+ if (_enableAutoRouteTracking) {
6377
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "replaceState"));
6378
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
6379
+ }
6380
+ }
6381
+ }));
6382
+ eventOn(win, extConfig.namePrefix + "popstate", _popstateHandler, _evtNamespace);
6383
+ eventOn(win, extConfig.namePrefix + "locationchange", _locationChangeHandler, _evtNamespace);
6384
+ _historyListenerAdded = true;
6385
+ }
6386
+ }
6387
+ function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {
6388
+ _enableUnhandledPromiseRejectionTracking = extConfig.enableUnhandledPromiseRejectionTracking === true;
6389
+ if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {
6390
+ _addHook(InstrumentFunc(_window, "onunhandledrejection", {
6391
+ ns: _evtNamespace,
6392
+ rsp: function (callDetails, error) {
6393
+ if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) {
6394
+ _self._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, callDetails.evt));
6395
+ }
6396
+ }
6397
+ }));
6398
+ _autoUnhandledPromiseInstrumented = true;
6399
+ extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;
6400
+ }
6187
6401
  }
6188
- delete _events[name];
6189
- _events[name] = undefined;
6190
- };
6402
+ function _throwInternal(severity, msgId, msg, properties, isUserAct) {
6403
+ _self.diagLog().throwInternal(severity, msgId, msg, properties, isUserAct);
6404
+ }
6405
+ function _initDefaults() {
6406
+ _eventTracking = null;
6407
+ _pageTracking = null;
6408
+ _pageViewManager = null;
6409
+ _pageViewPerformanceManager = null;
6410
+ _pageVisitTimeManager = null;
6411
+ _preInitTelemetryInitializers = null;
6412
+ _isBrowserLinkTrackingEnabled = false;
6413
+ _browserLinkInitializerAdded = false;
6414
+ _enableAutoRouteTracking = false;
6415
+ _historyListenerAdded = false;
6416
+ _disableExceptionTracking = false;
6417
+ _autoExceptionInstrumented = false;
6418
+ _enableUnhandledPromiseRejectionTracking = false;
6419
+ _autoUnhandledPromiseInstrumented = false;
6420
+ var location = getLocation(true);
6421
+ _prevUri = location && location.href || "";
6422
+ _currUri = null;
6423
+ _evtNamespace = null;
6424
+ }
6425
+ objDefineAccessors(_self, "_pageViewManager", function () { return _pageViewManager; });
6426
+ objDefineAccessors(_self, "_pageViewPerformanceManager", function () { return _pageViewPerformanceManager; });
6427
+ objDefineAccessors(_self, "_pageVisitTimeManager", function () { return _pageVisitTimeManager; });
6428
+ objDefineAccessors(_self, "_evtNamespace", function () { return "." + _evtNamespace; });
6429
+ });
6430
+ return _this;
6191
6431
  }
6192
- return Timing;
6193
- }());
6432
+ AnalyticsPlugin.Version = "2.8.0-beta.2203-06";
6433
+ AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;
6434
+ return AnalyticsPlugin;
6435
+ }(BaseTelemetryPlugin));
6194
6436
 
6195
6437
  var BaseSendBuffer = /** @class */ (function () {
6196
6438
  function BaseSendBuffer(logger, config) {
@@ -6469,7 +6711,7 @@
6469
6711
  }
6470
6712
  }
6471
6713
  var EnvelopeCreator = {
6472
- Version: "2.8.0-beta.2203-03"
6714
+ Version: "2.8.0-beta.2203-06"
6473
6715
  };
6474
6716
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
6475
6717
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -6764,65 +7006,81 @@
6764
7006
  return Serializer;
6765
7007
  }());
6766
7008
 
6767
- var OfflineListener = /** @class */ (function () {
6768
- function OfflineListener() {
6769
- var _window = getWindow();
6770
- var _document = getDocument();
6771
- var isListening = false;
6772
- var _onlineStatus = true;
6773
- dynamicProto(OfflineListener, this, function (_self) {
6774
- try {
6775
- if (_window) {
6776
- if (attachEvent(_window, "online", _setOnline)) {
6777
- attachEvent(_window, "offline", _setOffline);
6778
- isListening = true;
6779
- }
6780
- }
6781
- if (_document) {
6782
- var target = _document.body || _document;
6783
- if (!isUndefined(target.ononline)) {
6784
- target.ononline = _setOnline;
6785
- target.onoffline = _setOffline;
6786
- isListening = true;
6787
- }
6788
- }
6789
- if (isListening) {
6790
- var _navigator = getNavigator();
6791
- if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
6792
- _onlineStatus = _navigator.onLine;
6793
- }
7009
+ function _disableEvents(target, evtNamespace) {
7010
+ eventOff(target, null, null, evtNamespace);
7011
+ }
7012
+ function createOfflineListener(parentEvtNamespace) {
7013
+ var _document = getDocument();
7014
+ var _navigator = getNavigator();
7015
+ var _isListening = false;
7016
+ var _onlineStatus = true;
7017
+ var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("OfflineListener"), parentEvtNamespace);
7018
+ try {
7019
+ if (_enableEvents(getWindow())) {
7020
+ _isListening = true;
7021
+ }
7022
+ if (_document) {
7023
+ var target = _document.body || _document;
7024
+ if (target.ononline) {
7025
+ if (_enableEvents(target)) {
7026
+ _isListening = true;
6794
7027
  }
6795
7028
  }
6796
- catch (e) {
6797
- isListening = false;
7029
+ }
7030
+ if (_isListening) {
7031
+ if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
7032
+ _onlineStatus = _navigator.onLine;
6798
7033
  }
6799
- _self.isListening = isListening;
6800
- _self.isOnline = function () {
6801
- var result = true;
6802
- var _navigator = getNavigator();
6803
- if (isListening) {
6804
- result = _onlineStatus;
6805
- }
6806
- else if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
6807
- result = _navigator.onLine;
6808
- }
6809
- return result;
6810
- };
6811
- _self.isOffline = function () {
6812
- return !_self.isOnline();
6813
- };
6814
- function _setOnline() {
6815
- _onlineStatus = true;
7034
+ }
7035
+ }
7036
+ catch (e) {
7037
+ _isListening = false;
7038
+ }
7039
+ function _enableEvents(target) {
7040
+ var enabled = false;
7041
+ if (target) {
7042
+ enabled = eventOn(target, "online", _setOnline, _evtNamespace);
7043
+ if (enabled) {
7044
+ eventOn(target, "offline", _setOffline, _evtNamespace);
6816
7045
  }
6817
- function _setOffline() {
6818
- _onlineStatus = false;
7046
+ }
7047
+ return enabled;
7048
+ }
7049
+ function _setOnline() {
7050
+ _onlineStatus = true;
7051
+ }
7052
+ function _setOffline() {
7053
+ _onlineStatus = false;
7054
+ }
7055
+ function _isOnline() {
7056
+ var result = true;
7057
+ if (_isListening) {
7058
+ result = _onlineStatus;
7059
+ }
7060
+ else if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
7061
+ result = _navigator.onLine;
7062
+ }
7063
+ return result;
7064
+ }
7065
+ function _unload() {
7066
+ var win = getWindow();
7067
+ if (win && _isListening) {
7068
+ _disableEvents(win, _evtNamespace);
7069
+ if (_document) {
7070
+ var target = _document.body || _document;
7071
+ if (!isUndefined(target.ononline)) {
7072
+ _disableEvents(target, _evtNamespace);
7073
+ }
6819
7074
  }
6820
- });
7075
+ _isListening = false;
7076
+ }
6821
7077
  }
6822
- OfflineListener.Offline = new OfflineListener;
6823
- return OfflineListener;
6824
- }());
6825
- var Offline = OfflineListener.Offline;
7078
+ return {
7079
+ isOnline: _isOnline,
7080
+ isListening: function () { return _isListening; },
7081
+ unload: _unload
7082
+ };
7083
+ }
6826
7084
 
6827
7085
  var MIN_INPUT_LENGTH = 8;
6828
7086
  var HashCodeScoreGenerator = /** @class */ (function () {
@@ -6950,22 +7208,22 @@
6950
7208
  var _this = _super.call(this) || this;
6951
7209
  _this.priority = 1001;
6952
7210
  _this.identifier = BreezeChannelIdentifier;
7211
+ _this._senderConfig = _getDefaultAppInsightsChannelConfig();
6953
7212
  var _consecutiveErrors;
6954
7213
  var _retryAt;
6955
7214
  var _lastSend;
6956
- var _paused = false;
7215
+ var _paused;
6957
7216
  var _timeoutHandle;
6958
7217
  var _serializer;
6959
7218
  var _stamp_specific_redirects;
6960
- var _headers = {};
7219
+ var _headers;
6961
7220
  var _syncFetchPayload = 0;
6962
7221
  var _fallbackSender;
6963
7222
  var _syncUnloadSender;
6964
- _this._senderConfig = _getDefaultAppInsightsChannelConfig();
7223
+ var _offlineListener;
7224
+ var _evtNamespace;
6965
7225
  dynamicProto(Sender, _this, function (_self, _base) {
6966
- function _notImplemented() {
6967
- throwError("Method not implemented.");
6968
- }
7226
+ _initDefaults();
6969
7227
  _self.pause = function () {
6970
7228
  _clearScheduledTimer();
6971
7229
  _paused = true;
@@ -6988,7 +7246,7 @@
6988
7246
  _self.triggerSend(isAsync, null, sendReason || 1 );
6989
7247
  }
6990
7248
  catch (e) {
6991
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, "flush failed, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
7249
+ _throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, "flush failed, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
6992
7250
  }
6993
7251
  }
6994
7252
  };
@@ -6999,7 +7257,7 @@
6999
7257
  _self.triggerSend(true, _doUnloadSend, 2 );
7000
7258
  }
7001
7259
  catch (e) {
7002
- _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) });
7260
+ _throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, "failed to flush with beacon sender on page unload, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
7003
7261
  }
7004
7262
  }
7005
7263
  else {
@@ -7007,7 +7265,6 @@
7007
7265
  }
7008
7266
  }
7009
7267
  };
7010
- _self.teardown = _notImplemented;
7011
7268
  _self.addHeader = function (name, value) {
7012
7269
  _headers[name] = value;
7013
7270
  };
@@ -7022,6 +7279,8 @@
7022
7279
  _self._sender = null;
7023
7280
  _stamp_specific_redirects = 0;
7024
7281
  var diagLog = _self.diagLog();
7282
+ _evtNamespace = mergeEvtNamespace(createUniqueNamespace("Sender"), core.evtNamespace && core.evtNamespace());
7283
+ _offlineListener = createOfflineListener(_evtNamespace);
7025
7284
  var defaultConfig = _getDefaultAppInsightsChannelConfig();
7026
7285
  objForEachKey(defaultConfig, function (field, value) {
7027
7286
  _self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };
@@ -7030,7 +7289,7 @@
7030
7289
  ? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);
7031
7290
  _self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);
7032
7291
  if (!_validateInstrumentationKey(config)) {
7033
- diagLog.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, "Invalid Instrumentation key " + config.instrumentationKey);
7292
+ _throwInternal(diagLog, LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, "Invalid Instrumentation key " + config.instrumentationKey);
7034
7293
  }
7035
7294
  if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {
7036
7295
  arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {
@@ -7076,22 +7335,22 @@
7076
7335
  return;
7077
7336
  }
7078
7337
  if (!telemetryItem) {
7079
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, "Cannot send empty telemetry");
7338
+ _throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, "Cannot send empty telemetry");
7080
7339
  return;
7081
7340
  }
7082
7341
  if (telemetryItem.baseData && !telemetryItem.baseType) {
7083
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, "Cannot send telemetry without baseData and baseType");
7342
+ _throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, "Cannot send telemetry without baseData and baseType");
7084
7343
  return;
7085
7344
  }
7086
7345
  if (!telemetryItem.baseType) {
7087
7346
  telemetryItem.baseType = "EventData";
7088
7347
  }
7089
7348
  if (!_self._sender) {
7090
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, "Sender was not initialized");
7349
+ _throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, "Sender was not initialized");
7091
7350
  return;
7092
7351
  }
7093
7352
  if (!_isSampledIn(telemetryItem)) {
7094
- itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, "Telemetry item was sampled out and not sent", { SampleRate: _self._sample.sampleRate });
7353
+ _throwInternal(itemCtx.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, "Telemetry item was sampled out and not sent", { SampleRate: _self._sample.sampleRate });
7095
7354
  return;
7096
7355
  }
7097
7356
  else {
@@ -7101,7 +7360,7 @@
7101
7360
  var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();
7102
7361
  var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);
7103
7362
  if (!aiEnvelope_1) {
7104
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, "Unable to create an AppInsights envelope");
7363
+ _throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, "Unable to create an AppInsights envelope");
7105
7364
  return;
7106
7365
  }
7107
7366
  var doNotSendItem_1 = false;
@@ -7114,7 +7373,7 @@
7114
7373
  }
7115
7374
  }
7116
7375
  catch (e) {
7117
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
7376
+ _throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
7118
7377
  }
7119
7378
  });
7120
7379
  delete telemetryItem.tags[ProcessLegacy];
@@ -7132,7 +7391,7 @@
7132
7391
  _setupTimer();
7133
7392
  }
7134
7393
  catch (e) {
7135
- itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, "Failed adding telemetry to the sender's buffer, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
7394
+ _throwInternal(itemCtx.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, "Failed adding telemetry to the sender's buffer, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
7136
7395
  }
7137
7396
  _self.processNext(telemetryItem, itemCtx);
7138
7397
  };
@@ -7167,13 +7426,18 @@
7167
7426
  catch (e) {
7168
7427
  var ieVer = getIEVersion();
7169
7428
  if (!ieVer || ieVer > 9) {
7170
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, "Telemetry transmission failed, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
7429
+ _throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, "Telemetry transmission failed, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
7171
7430
  }
7172
7431
  }
7173
7432
  }
7174
7433
  };
7434
+ _self._doTeardown = function (unloadCtx, unloadState) {
7435
+ _self.onunloadFlush();
7436
+ _offlineListener.unload();
7437
+ _initDefaults();
7438
+ };
7175
7439
  _self._onError = function (payload, message, event) {
7176
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.OnError, "Failed to send telemetry.", { message: message });
7440
+ _throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.OnError, "Failed to send telemetry.", { message: message });
7177
7441
  _self._buffer.clearSent(payload);
7178
7442
  };
7179
7443
  _self._onPartialSuccess = function (payload, results) {
@@ -7198,7 +7462,7 @@
7198
7462
  }
7199
7463
  if (retry.length > 0) {
7200
7464
  _resendPayload(retry);
7201
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, "Partial success. " +
7465
+ _throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, "Partial success. " +
7202
7466
  "Delivered: " + payload.length + ", Failed: " + failed.length +
7203
7467
  ". Will retry to send " + retry.length + " our of " + results.itemsReceived + " items");
7204
7468
  }
@@ -7243,18 +7507,18 @@
7243
7507
  }
7244
7508
  if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {
7245
7509
  _resendPayload(payload);
7246
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
7510
+ _throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
7247
7511
  "Response code " + status + ". Will retry to send " + payload.length + " items.");
7248
7512
  }
7249
7513
  else {
7250
7514
  _self._onError(payload, errorMessage);
7251
7515
  }
7252
7516
  }
7253
- else if (Offline.isOffline()) {
7517
+ else if (_offlineListener && !_offlineListener.isOnline()) {
7254
7518
  if (!_self._senderConfig.isRetryDisabled()) {
7255
7519
  var offlineBackOffMultiplier = 10;
7256
7520
  _resendPayload(payload, offlineBackOffMultiplier);
7257
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". Offline - Response Code: ".concat(status, ". Offline status: ").concat(Offline.isOffline(), ". Will retry to send ").concat(payload.length, " items."));
7521
+ _throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". Offline - Response Code: ".concat(status, ". Offline status: ").concat(!_offlineListener.isOnline(), ". Will retry to send ").concat(payload.length, " items."));
7258
7522
  }
7259
7523
  }
7260
7524
  else {
@@ -7321,8 +7585,8 @@
7321
7585
  }
7322
7586
  }
7323
7587
  if (droppedPayload.length > 0) {
7324
- _fallbackSender(droppedPayload, true);
7325
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
7588
+ _fallbackSender && _fallbackSender(droppedPayload, true);
7589
+ _throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
7326
7590
  }
7327
7591
  }
7328
7592
  }
@@ -7363,7 +7627,7 @@
7363
7627
  }
7364
7628
  else {
7365
7629
  _fallbackSender && _fallbackSender(payload, true);
7366
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
7630
+ _throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
7367
7631
  }
7368
7632
  }
7369
7633
  }
@@ -7454,7 +7718,7 @@
7454
7718
  }
7455
7719
  }
7456
7720
  catch (e) {
7457
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, "Cannot parse the response. " + getExceptionName(e), {
7721
+ _throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, "Cannot parse the response. " + getExceptionName(e), {
7458
7722
  response: response
7459
7723
  });
7460
7724
  }
@@ -7525,7 +7789,7 @@
7525
7789
  xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };
7526
7790
  var hostingProtocol = _window && _window.location && _window.location.protocol || "";
7527
7791
  if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {
7528
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
7792
+ _throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
7529
7793
  "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
7530
7794
  buffer.clear();
7531
7795
  return;
@@ -7556,7 +7820,7 @@
7556
7820
  manager.eventsSendRequest(sendRequest, isAsync);
7557
7821
  }
7558
7822
  catch (e) {
7559
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, "send request notification failed: " + getExceptionName(e), { exception: dumpObj(e) });
7823
+ _throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, "send request notification failed: " + getExceptionName(e), { exception: dumpObj(e) });
7560
7824
  }
7561
7825
  }
7562
7826
  }
@@ -7569,6 +7833,25 @@
7569
7833
  var regexp = new RegExp(UUID_Regex);
7570
7834
  return regexp.test(config.instrumentationKey);
7571
7835
  }
7836
+ function _initDefaults() {
7837
+ _self._sender = null;
7838
+ _self._buffer = null;
7839
+ _self._appId = null;
7840
+ _self._sample = null;
7841
+ _headers = {};
7842
+ _offlineListener = null;
7843
+ _consecutiveErrors = 0;
7844
+ _retryAt = null;
7845
+ _lastSend = null;
7846
+ _paused = false;
7847
+ _timeoutHandle = null;
7848
+ _serializer = null;
7849
+ _stamp_specific_redirects = 0;
7850
+ _syncFetchPayload = 0;
7851
+ _fallbackSender = null;
7852
+ _syncUnloadSender = null;
7853
+ _evtNamespace = null;
7854
+ }
7572
7855
  });
7573
7856
  return _this;
7574
7857
  }
@@ -7738,7 +8021,7 @@
7738
8021
  return Device;
7739
8022
  }());
7740
8023
 
7741
- var Version = "2.8.0-beta.2203-03";
8024
+ var Version = "2.8.0-beta.2203-06";
7742
8025
  var Internal = /** @class */ (function () {
7743
8026
  function Internal(config) {
7744
8027
  this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + "_" : "") + "javascript:" + Version;
@@ -9161,7 +9444,7 @@
9161
9444
  config.endpointUrl = ingest ? "".concat(ingest, "/v2/track") : config.endpointUrl;
9162
9445
  config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;
9163
9446
  }
9164
- _self.appInsights = new ApplicationInsights();
9447
+ _self.appInsights = new AnalyticsPlugin();
9165
9448
  _self.properties = new PropertiesPlugin$1();
9166
9449
  _self.dependencies = new AjaxMonitor();
9167
9450
  _self.core = new AppInsightsCore();
@@ -9465,4 +9748,4 @@
9465
9748
  (function(obj, prop, descriptor) { /* ai_es3_polyfil defineProperty */ var func = Object["defineProperty"]; if (func) { try { return func(obj, prop, descriptor); } catch(e) { /* IE8 defines defineProperty, but will throw */ } } if (descriptor && typeof descriptor.value !== undefined) { obj[prop] = descriptor.value; } return obj; })(exports, '__esModule', { value: true });
9466
9749
 
9467
9750
  }));
9468
- //# sourceMappingURL=ai.2.8.0-beta.2203-03.js.map
9751
+ //# sourceMappingURL=ai.2.8.0-beta.2203-06.js.map