@microsoft/applicationinsights-analytics-js 2.8.0-beta.2203-04 → 2.8.0-beta.2203-07

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 (35) hide show
  1. package/browser/applicationinsights-analytics-js.integrity.json +9 -9
  2. package/browser/applicationinsights-analytics-js.js +771 -258
  3. package/browser/applicationinsights-analytics-js.js.map +1 -1
  4. package/browser/applicationinsights-analytics-js.min.js +2 -2
  5. package/browser/applicationinsights-analytics-js.min.js.map +1 -1
  6. package/dist/applicationinsights-analytics-js.api.json +48 -183
  7. package/dist/applicationinsights-analytics-js.api.md +8 -18
  8. package/dist/applicationinsights-analytics-js.d.ts +9 -104
  9. package/dist/applicationinsights-analytics-js.js +771 -258
  10. package/dist/applicationinsights-analytics-js.js.map +1 -1
  11. package/dist/applicationinsights-analytics-js.min.js +2 -2
  12. package/dist/applicationinsights-analytics-js.min.js.map +1 -1
  13. package/dist/applicationinsights-analytics-js.rollup.d.ts +9 -104
  14. package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js +674 -0
  15. package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js.map +1 -0
  16. package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js +21 -8
  17. package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js.map +1 -1
  18. package/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js +1 -1
  19. package/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js +1 -1
  20. package/dist-esm/JavaScriptSDK/Timing.js +39 -0
  21. package/dist-esm/JavaScriptSDK/Timing.js.map +1 -0
  22. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryConfig.js +1 -1
  23. package/dist-esm/applicationinsights-analytics-js.js +2 -2
  24. package/dist-esm/applicationinsights-analytics-js.js.map +1 -1
  25. package/package.json +5 -5
  26. package/src/JavaScriptSDK/{ApplicationInsights.ts → AnalyticsPlugin.ts} +403 -324
  27. package/src/JavaScriptSDK/Telemetry/PageViewManager.ts +28 -9
  28. package/src/JavaScriptSDK/Timing.ts +46 -0
  29. package/src/applicationinsights-analytics-js.ts +1 -1
  30. package/types/JavaScriptSDK/{ApplicationInsights.d.ts → AnalyticsPlugin.d.ts} +7 -11
  31. package/types/JavaScriptSDK/Telemetry/PageViewManager.d.ts +2 -1
  32. package/types/JavaScriptSDK/Timing.d.ts +18 -0
  33. package/types/applicationinsights-analytics-js.d.ts +1 -1
  34. package/dist-esm/JavaScriptSDK/ApplicationInsights.js +0 -606
  35. package/dist-esm/JavaScriptSDK/ApplicationInsights.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Web Analytics, 2.8.0-beta.2203-04
2
+ * Application Insights JavaScript SDK - Web Analytics, 2.8.0-beta.2203-07
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -340,6 +340,7 @@
340
340
  var strIsInitialized = "isInitialized";
341
341
  var strTeardown = "teardown";
342
342
  var strCore = "core";
343
+ var strUpdate = "update";
343
344
  var strDisabled = "disabled";
344
345
  var strDoTeardown = "_doTeardown";
345
346
 
@@ -352,6 +353,7 @@
352
353
  var strConstructor = "constructor";
353
354
  var _objDefineProperty$1 = ObjDefineProperty;
354
355
  var _objFreeze = ObjClass.freeze;
356
+ var _objKeys = ObjClass.keys;
355
357
  var StringProto = String[strShimPrototype];
356
358
  var _strTrim = StringProto[cStrTrim];
357
359
  var _strEndsWith = StringProto[cStrEndsWith];
@@ -386,6 +388,9 @@
386
388
  function isNotNullOrUndefined(value) {
387
389
  return !isNullOrUndefined(value);
388
390
  }
391
+ function hasOwnProperty(obj, prop) {
392
+ return !!(obj && ObjHasOwnProperty.call(obj, prop));
393
+ }
389
394
  function isObject(value) {
390
395
  return !!(value && typeof value === strShimObject);
391
396
  }
@@ -537,6 +542,40 @@
537
542
  }
538
543
  return str;
539
544
  }
545
+ var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable("toString");
546
+ var _objKeysDontEnums = [
547
+ "toString",
548
+ "toLocaleString",
549
+ "valueOf",
550
+ "hasOwnProperty",
551
+ "isPrototypeOf",
552
+ "propertyIsEnumerable",
553
+ "constructor"
554
+ ];
555
+ function objKeys(obj) {
556
+ var objType = typeof obj;
557
+ if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {
558
+ throwTypeError("objKeys called on non-object");
559
+ }
560
+ if (!_objKeysHasDontEnumBug && _objKeys) {
561
+ return _objKeys(obj);
562
+ }
563
+ var result = [];
564
+ for (var prop in obj) {
565
+ if (obj && ObjHasOwnProperty.call(obj, prop)) {
566
+ result.push(prop);
567
+ }
568
+ }
569
+ if (_objKeysHasDontEnumBug) {
570
+ var dontEnumsLength = _objKeysDontEnums.length;
571
+ for (var lp = 0; lp < dontEnumsLength; lp++) {
572
+ if (obj && ObjHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {
573
+ result.push(_objKeysDontEnums[lp]);
574
+ }
575
+ }
576
+ }
577
+ return result;
578
+ }
540
579
  function objDefineAccessors(target, prop, getProp, setProp) {
541
580
  if (_objDefineProperty$1) {
542
581
  try {
@@ -627,7 +666,7 @@
627
666
  });
628
667
  return objFreeze(enumClass);
629
668
  }
630
- function objExtend(obj, obj2, obj3, obj4, obj5, obj6) {
669
+ function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
631
670
  var theArgs = arguments;
632
671
  var extended = theArgs[0] || {};
633
672
  var argLen = theArgs.length;
@@ -957,6 +996,10 @@
957
996
  }
958
997
  return DiagnosticLogger;
959
998
  }());
999
+ function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
1000
+ if (isUserAct === void 0) { isUserAct = false; }
1001
+ (logger || new DiagnosticLogger()).throwInternal(severity, msgId, msg, properties, isUserAct);
1002
+ }
960
1003
 
961
1004
  var strExecutionContextKey = "ctx";
962
1005
  var PerfEvent = /** @class */ (function () {
@@ -1283,7 +1326,7 @@
1283
1326
  completeDetails.func.call(completeDetails.self, completeDetails.args);
1284
1327
  }
1285
1328
  catch (e) {
1286
- core.logger.throwInternal(2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1329
+ _throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1287
1330
  }
1288
1331
  });
1289
1332
  _onComplete = [];
@@ -1382,6 +1425,27 @@
1382
1425
  context.createNew = _createNew;
1383
1426
  return context;
1384
1427
  }
1428
+ function createProcessTelemetryUpdateContext(telemetryChain, config, core, startAt) {
1429
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1430
+ var context = internalContext.ctx;
1431
+ function _processNext(updateState) {
1432
+ return context.iterate(function (plugin) {
1433
+ if (isFunction(plugin[strUpdate])) {
1434
+ plugin[strUpdate](context, updateState);
1435
+ }
1436
+ });
1437
+ }
1438
+ function _createNew(plugins, startAt) {
1439
+ if (plugins === void 0) { plugins = null; }
1440
+ if (isArray(plugins)) {
1441
+ plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1442
+ }
1443
+ return createProcessTelemetryUpdateContext(plugins || context.getNext(), config, core, startAt);
1444
+ }
1445
+ context.processNext = _processNext;
1446
+ context.createNew = _createNew;
1447
+ return context;
1448
+ }
1385
1449
  function createTelemetryProxyChain(plugins, config, core, startAt) {
1386
1450
  var firstProxy = null;
1387
1451
  var add = startAt ? false : true;
@@ -1428,6 +1492,7 @@
1428
1492
  },
1429
1493
  processTelemetry: _processTelemetry,
1430
1494
  unload: _unloadPlugin,
1495
+ update: _updatePlugin,
1431
1496
  _id: chainId,
1432
1497
  _setNext: function (nextPlugin) {
1433
1498
  nextProxy = nextPlugin;
@@ -1467,7 +1532,7 @@
1467
1532
  hasRun = true;
1468
1533
  }
1469
1534
  if (!nextProxy || !hasNextRun) {
1470
- itemCtx.diagLog().throwInternal(1 , 73 , "Plugin [" + plugin.identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1535
+ _throwInternal(itemCtx.diagLog(), 1 , 73 , "Plugin [" + plugin.identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1471
1536
  }
1472
1537
  }
1473
1538
  }, details, isAsync);
@@ -1515,6 +1580,24 @@
1515
1580
  unloadCtx.processNext(unloadState);
1516
1581
  }
1517
1582
  }
1583
+ function _updatePlugin(updateCtx, updateState) {
1584
+ function _callUpdate() {
1585
+ var hasRun = false;
1586
+ if (plugin) {
1587
+ var pluginState = _getPluginState(plugin);
1588
+ var pluginCore = plugin[strCore] || pluginState.core;
1589
+ if (plugin && (!pluginCore || pluginCore === updateCtx[strCore]()) && !pluginState[strTeardown]) {
1590
+ if (plugin[strUpdate] && plugin[strUpdate](updateCtx, updateState) === true) {
1591
+ hasRun = true;
1592
+ }
1593
+ }
1594
+ }
1595
+ return hasRun;
1596
+ }
1597
+ if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
1598
+ updateCtx.processNext(updateState);
1599
+ }
1600
+ }
1518
1601
  return objFreeze(proxyChain);
1519
1602
  }
1520
1603
 
@@ -1684,7 +1767,7 @@
1684
1767
  _supportsCookies = doc[strCookie] !== undefined;
1685
1768
  }
1686
1769
  catch (e) {
1687
- logger && logger.throwInternal(2 , 68 , "Cannot access document.cookie - " + getExceptionName(e), { exception: dumpObj(e) });
1770
+ _throwInternal(logger, 2 , 68 , "Cannot access document.cookie - " + getExceptionName(e), { exception: dumpObj(e) });
1688
1771
  }
1689
1772
  }
1690
1773
  return _supportsCookies;
@@ -1778,7 +1861,7 @@
1778
1861
  handler(unloadCtx, unloadState);
1779
1862
  }
1780
1863
  catch (e) {
1781
- unloadCtx.diagLog().throwInternal(2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
1864
+ _throwInternal(unloadCtx.diagLog(), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
1782
1865
  }
1783
1866
  });
1784
1867
  handlers = [];
@@ -1837,6 +1920,30 @@
1837
1920
  }
1838
1921
  return result;
1839
1922
  };
1923
+ _self.update = function (updateCtx, updateState) {
1924
+ if (!_self.core || (updateCtx && _self.core !== updateCtx.core())) {
1925
+ return;
1926
+ }
1927
+ var result;
1928
+ var updateDone = false;
1929
+ var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, {}, _self.core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
1930
+ var theUpdateState = updateState || {
1931
+ reason: 0
1932
+ };
1933
+ function _updateCallback() {
1934
+ if (!updateDone) {
1935
+ updateDone = true;
1936
+ _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx.getNext());
1937
+ }
1938
+ }
1939
+ if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
1940
+ _updateCallback();
1941
+ }
1942
+ else {
1943
+ result = true;
1944
+ }
1945
+ return result;
1946
+ };
1840
1947
  _self._addHook = function (hooks) {
1841
1948
  if (hooks) {
1842
1949
  if (isArray(hooks)) {
@@ -1910,6 +2017,174 @@
1910
2017
  return BaseTelemetryPlugin;
1911
2018
  }());
1912
2019
 
2020
+ var strOnPrefix = "on";
2021
+ var strAttachEvent = "attachEvent";
2022
+ var strAddEventHelper = "addEventListener";
2023
+ var strDetachEvent = "detachEvent";
2024
+ var strRemoveEventListener = "removeEventListener";
2025
+ var strEvents = "events";
2026
+ createUniqueNamespace("aiEvtPageHide");
2027
+ createUniqueNamespace("aiEvtPageShow");
2028
+ var _guid = 1;
2029
+ var elmNodeData = createElmNodeData("events");
2030
+ var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
2031
+ function _normalizeNamespace(name) {
2032
+ if (name && name.replace) {
2033
+ return name.replace(/^\s*\.*|\.*\s*$/g, "");
2034
+ }
2035
+ return name;
2036
+ }
2037
+ function _getEvtNamespace(eventName, evtNamespace) {
2038
+ if (evtNamespace) {
2039
+ var theNamespace_1 = "";
2040
+ if (isArray(evtNamespace)) {
2041
+ theNamespace_1 = "";
2042
+ arrForEach(evtNamespace, function (name) {
2043
+ name = _normalizeNamespace(name);
2044
+ if (name) {
2045
+ if (name[0] !== ".") {
2046
+ name = "." + name;
2047
+ }
2048
+ theNamespace_1 += name;
2049
+ }
2050
+ });
2051
+ }
2052
+ else {
2053
+ theNamespace_1 = _normalizeNamespace(evtNamespace);
2054
+ }
2055
+ if (theNamespace_1) {
2056
+ if (theNamespace_1[0] !== ".") {
2057
+ theNamespace_1 = "." + theNamespace_1;
2058
+ }
2059
+ eventName = (eventName || "") + theNamespace_1;
2060
+ }
2061
+ }
2062
+ var parsedEvent = (eventNamespace.exec(eventName) || []);
2063
+ return {
2064
+ type: parsedEvent[1],
2065
+ ns: ((parsedEvent[2] || "").split(".").sort()).join(".")
2066
+ };
2067
+ }
2068
+ function _getRegisteredEvents(target, evtName, addDefault) {
2069
+ if (addDefault === void 0) { addDefault = true; }
2070
+ var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
2071
+ var registeredEvents = aiEvts[evtName];
2072
+ if (!registeredEvents) {
2073
+ registeredEvents = aiEvts[evtName] = [];
2074
+ }
2075
+ return registeredEvents;
2076
+ }
2077
+ function _doDetach(obj, evtName, handlerRef, useCapture) {
2078
+ if (obj && evtName && evtName.type) {
2079
+ if (obj[strRemoveEventListener]) {
2080
+ obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
2081
+ }
2082
+ else if (obj[strDetachEvent]) {
2083
+ obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
2084
+ }
2085
+ }
2086
+ }
2087
+ function _doAttach(obj, evtName, handlerRef, useCapture) {
2088
+ var result = false;
2089
+ if (obj && evtName && evtName.type && handlerRef) {
2090
+ if (obj[strAddEventHelper]) {
2091
+ obj[strAddEventHelper](evtName.type, handlerRef, useCapture);
2092
+ result = true;
2093
+ }
2094
+ else if (obj[strAttachEvent]) {
2095
+ obj[strAttachEvent](strOnPrefix + evtName.type, handlerRef);
2096
+ result = true;
2097
+ }
2098
+ }
2099
+ return result;
2100
+ }
2101
+ function _doUnregister(target, events, evtName, unRegFn) {
2102
+ var idx = events.length;
2103
+ while (idx--) {
2104
+ var theEvent = events[idx];
2105
+ if (theEvent) {
2106
+ if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
2107
+ if (!unRegFn || unRegFn(theEvent)) {
2108
+ _doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
2109
+ events.splice(idx, 1);
2110
+ }
2111
+ }
2112
+ }
2113
+ }
2114
+ }
2115
+ function _unregisterEvents(target, evtName, unRegFn) {
2116
+ if (evtName.type) {
2117
+ _doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
2118
+ }
2119
+ else {
2120
+ var eventCache = elmNodeData.get(target, strEvents, {});
2121
+ objForEachKey(eventCache, function (evtType, events) {
2122
+ _doUnregister(target, events, evtName, unRegFn);
2123
+ });
2124
+ if (objKeys(eventCache).length === 0) {
2125
+ elmNodeData.kill(target, strEvents);
2126
+ }
2127
+ }
2128
+ }
2129
+ function mergeEvtNamespace(theNamespace, namespaces) {
2130
+ var newNamespaces;
2131
+ if (namespaces) {
2132
+ if (isArray(namespaces)) {
2133
+ newNamespaces = [theNamespace].concat(namespaces);
2134
+ }
2135
+ else {
2136
+ newNamespaces = [theNamespace, namespaces];
2137
+ }
2138
+ }
2139
+ else {
2140
+ newNamespaces = theNamespace;
2141
+ }
2142
+ return newNamespaces;
2143
+ }
2144
+ function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
2145
+ if (useCapture === void 0) { useCapture = false; }
2146
+ var result = false;
2147
+ if (target) {
2148
+ try {
2149
+ var evtName = _getEvtNamespace(eventName, evtNamespace);
2150
+ result = _doAttach(target, evtName, handlerRef, useCapture);
2151
+ if (result && elmNodeData.accept(target)) {
2152
+ var registeredEvent = {
2153
+ guid: _guid++,
2154
+ evtName: evtName,
2155
+ handler: handlerRef,
2156
+ capture: useCapture
2157
+ };
2158
+ _getRegisteredEvents(target, evtName.type).push(registeredEvent);
2159
+ }
2160
+ }
2161
+ catch (e) {
2162
+ }
2163
+ }
2164
+ return result;
2165
+ }
2166
+ function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
2167
+ if (useCapture === void 0) { useCapture = false; }
2168
+ if (target) {
2169
+ try {
2170
+ var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
2171
+ var found_1 = false;
2172
+ _unregisterEvents(target, evtName_1, function (regEvent) {
2173
+ if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
2174
+ found_1 = true;
2175
+ return true;
2176
+ }
2177
+ return false;
2178
+ });
2179
+ if (!found_1) {
2180
+ _doDetach(target, evtName_1, handlerRef, useCapture);
2181
+ }
2182
+ }
2183
+ catch (e) {
2184
+ }
2185
+ }
2186
+ }
2187
+
1913
2188
  function generateW3CId() {
1914
2189
  var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
1915
2190
  var oct = strEmpty$1, tmp;
@@ -2018,6 +2293,143 @@
2018
2293
  InMemoryStorageBufferFull: 105
2019
2294
  });
2020
2295
 
2296
+ var aiInstrumentHooks = "_aiHooks";
2297
+ var cbNames = [
2298
+ "req", "rsp", "hkErr", "fnErr"
2299
+ ];
2300
+ function _arrLoop(arr, fn) {
2301
+ if (arr) {
2302
+ for (var lp = 0; lp < arr.length; lp++) {
2303
+ if (fn(arr[lp], lp)) {
2304
+ break;
2305
+ }
2306
+ }
2307
+ }
2308
+ }
2309
+ function _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {
2310
+ if (type >= 0 && type <= 2 ) {
2311
+ _arrLoop(hooks, function (hook, idx) {
2312
+ var cbks = hook.cbks;
2313
+ var cb = cbks[cbNames[type]];
2314
+ if (cb) {
2315
+ callDetails.ctx = function () {
2316
+ var ctx = hookCtx[idx] = (hookCtx[idx] || {});
2317
+ return ctx;
2318
+ };
2319
+ try {
2320
+ cb.apply(callDetails.inst, cbArgs);
2321
+ }
2322
+ catch (err) {
2323
+ var orgEx = callDetails.err;
2324
+ try {
2325
+ var hookErrorCb = cbks[cbNames[2 ]];
2326
+ if (hookErrorCb) {
2327
+ callDetails.err = err;
2328
+ hookErrorCb.apply(callDetails.inst, cbArgs);
2329
+ }
2330
+ }
2331
+ catch (e) {
2332
+ }
2333
+ finally {
2334
+ callDetails.err = orgEx;
2335
+ }
2336
+ }
2337
+ }
2338
+ });
2339
+ }
2340
+ }
2341
+ function _createFunctionHook(aiHook) {
2342
+ return function () {
2343
+ var funcThis = this;
2344
+ var orgArgs = arguments;
2345
+ var hooks = aiHook.h;
2346
+ var funcArgs = {
2347
+ name: aiHook.n,
2348
+ inst: funcThis,
2349
+ ctx: null,
2350
+ set: _replaceArg
2351
+ };
2352
+ var hookCtx = [];
2353
+ var cbArgs = _createArgs([funcArgs], orgArgs);
2354
+ funcArgs.evt = getGlobalInst("event");
2355
+ function _createArgs(target, theArgs) {
2356
+ _arrLoop(theArgs, function (arg) {
2357
+ target.push(arg);
2358
+ });
2359
+ return target;
2360
+ }
2361
+ function _replaceArg(idx, value) {
2362
+ orgArgs = _createArgs([], orgArgs);
2363
+ orgArgs[idx] = value;
2364
+ cbArgs = _createArgs([funcArgs], orgArgs);
2365
+ }
2366
+ _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 );
2367
+ var theFunc = aiHook.f;
2368
+ try {
2369
+ funcArgs.rslt = theFunc.apply(funcThis, orgArgs);
2370
+ }
2371
+ catch (err) {
2372
+ funcArgs.err = err;
2373
+ _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 );
2374
+ throw err;
2375
+ }
2376
+ _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 );
2377
+ return funcArgs.rslt;
2378
+ };
2379
+ }
2380
+ function _getOwner(target, name, checkPrototype) {
2381
+ var owner = null;
2382
+ if (target) {
2383
+ if (hasOwnProperty(target, name)) {
2384
+ owner = target;
2385
+ }
2386
+ else if (checkPrototype) {
2387
+ owner = _getOwner(_getObjProto(target), name, false);
2388
+ }
2389
+ }
2390
+ return owner;
2391
+ }
2392
+ function InstrumentFunc(target, funcName, callbacks, checkPrototype) {
2393
+ if (checkPrototype === void 0) { checkPrototype = true; }
2394
+ if (target && funcName && callbacks) {
2395
+ var owner = _getOwner(target, funcName, checkPrototype);
2396
+ if (owner) {
2397
+ var fn = owner[funcName];
2398
+ if (typeof fn === strShimFunction) {
2399
+ var aiHook_1 = fn[aiInstrumentHooks];
2400
+ if (!aiHook_1) {
2401
+ aiHook_1 = {
2402
+ i: 0,
2403
+ n: funcName,
2404
+ f: fn,
2405
+ h: []
2406
+ };
2407
+ var newFunc = _createFunctionHook(aiHook_1);
2408
+ newFunc[aiInstrumentHooks] = aiHook_1;
2409
+ owner[funcName] = newFunc;
2410
+ }
2411
+ var theHook = {
2412
+ id: aiHook_1.i,
2413
+ cbks: callbacks,
2414
+ rm: function () {
2415
+ var id = this.id;
2416
+ _arrLoop(aiHook_1.h, function (hook, idx) {
2417
+ if (hook.id === id) {
2418
+ aiHook_1.h.splice(idx, 1);
2419
+ return 1;
2420
+ }
2421
+ });
2422
+ }
2423
+ };
2424
+ aiHook_1.i++;
2425
+ aiHook_1.h.push(theHook);
2426
+ return theHook;
2427
+ }
2428
+ }
2429
+ }
2430
+ return null;
2431
+ }
2432
+
2021
2433
  function dataSanitizeKeyAndAddUniqueness(logger, key, map) {
2022
2434
  var origLength = key.length;
2023
2435
  var field = dataSanitizeKey(logger, key);
@@ -2038,7 +2450,7 @@
2038
2450
  name = strTrim(name.toString());
2039
2451
  if (name.length > 150 ) {
2040
2452
  nameTrunc = name.substring(0, 150 );
2041
- logger && logger.throwInternal(2 , _InternalMessageId.NameTooLong, "name is too long. It has been truncated to " + 150 + " characters.", { name: name }, true);
2453
+ _throwInternal(logger, 2 , _InternalMessageId.NameTooLong, "name is too long. It has been truncated to " + 150 + " characters.", { name: name }, true);
2042
2454
  }
2043
2455
  }
2044
2456
  return nameTrunc || name;
@@ -2051,7 +2463,7 @@
2051
2463
  value = strTrim(value);
2052
2464
  if (value.toString().length > maxLength) {
2053
2465
  valueTrunc = value.toString().substring(0, maxLength);
2054
- logger && logger.throwInternal(2 , _InternalMessageId.StringValueTooLong, "string value is too long. It has been truncated to " + maxLength + " characters.", { value: value }, true);
2466
+ _throwInternal(logger, 2 , _InternalMessageId.StringValueTooLong, "string value is too long. It has been truncated to " + maxLength + " characters.", { value: value }, true);
2055
2467
  }
2056
2468
  }
2057
2469
  return valueTrunc || value;
@@ -2064,7 +2476,7 @@
2064
2476
  if (message) {
2065
2477
  if (message.length > 32768 ) {
2066
2478
  messageTrunc = message.substring(0, 32768 );
2067
- logger && logger.throwInternal(2 , _InternalMessageId.MessageTruncated, "message is too long, it has been truncated to " + 32768 + " characters.", { message: message }, true);
2479
+ _throwInternal(logger, 2 , _InternalMessageId.MessageTruncated, "message is too long, it has been truncated to " + 32768 + " characters.", { message: message }, true);
2068
2480
  }
2069
2481
  }
2070
2482
  return messageTrunc || message;
@@ -2075,7 +2487,7 @@
2075
2487
  var value = "" + exception;
2076
2488
  if (value.length > 32768 ) {
2077
2489
  exceptionTrunc = value.substring(0, 32768 );
2078
- logger && logger.throwInternal(2 , _InternalMessageId.ExceptionTruncated, "exception is too long, it has been truncated to " + 32768 + " characters.", { exception: exception }, true);
2490
+ _throwInternal(logger, 2 , _InternalMessageId.ExceptionTruncated, "exception is too long, it has been truncated to " + 32768 + " characters.", { exception: exception }, true);
2079
2491
  }
2080
2492
  }
2081
2493
  return exceptionTrunc || exception;
@@ -2089,7 +2501,7 @@
2089
2501
  value = getJSON().stringify(value);
2090
2502
  }
2091
2503
  catch (e) {
2092
- logger && logger.throwInternal(2 , _InternalMessageId.CannotSerializeObjectNonSerializable, "custom property is not valid", { exception: e }, true);
2504
+ _throwInternal(logger, 2 , _InternalMessageId.CannotSerializeObjectNonSerializable, "custom property is not valid", { exception: e }, true);
2093
2505
  }
2094
2506
  }
2095
2507
  value = dataSanitizeString(logger, value, 8192 );
@@ -2120,7 +2532,7 @@
2120
2532
  input = strTrim(input);
2121
2533
  if (input.length > maxLength) {
2122
2534
  inputTrunc = input.substring(0, maxLength);
2123
- logger && logger.throwInternal(2 , _msgId, "input is too long, it has been truncated to " + maxLength + " characters.", { data: input }, true);
2535
+ _throwInternal(logger, 2 , _msgId, "input is too long, it has been truncated to " + maxLength + " characters.", { data: input }, true);
2124
2536
  }
2125
2537
  }
2126
2538
  return inputTrunc || input;
@@ -2186,6 +2598,7 @@
2186
2598
  W3C: 2
2187
2599
  });
2188
2600
 
2601
+ var _canUseLocalStorage = undefined;
2189
2602
  var _canUseSessionStorage = undefined;
2190
2603
  function _getVerifiedStorageObject(storageType) {
2191
2604
  try {
@@ -2212,10 +2625,21 @@
2212
2625
  return null;
2213
2626
  }
2214
2627
  function utlDisableStorage() {
2628
+ _canUseLocalStorage = false;
2215
2629
  _canUseSessionStorage = false;
2216
2630
  }
2217
- function utlCanUseSessionStorage() {
2218
- if (_canUseSessionStorage === undefined) {
2631
+ function utlEnableStorage() {
2632
+ _canUseLocalStorage = utlCanUseLocalStorage(true);
2633
+ _canUseSessionStorage = utlCanUseSessionStorage(true);
2634
+ }
2635
+ function utlCanUseLocalStorage(reset) {
2636
+ if (reset || _canUseLocalStorage === undefined) {
2637
+ _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);
2638
+ }
2639
+ return _canUseLocalStorage;
2640
+ }
2641
+ function utlCanUseSessionStorage(reset) {
2642
+ if (reset || _canUseSessionStorage === undefined) {
2219
2643
  _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
2220
2644
  }
2221
2645
  return _canUseSessionStorage;
@@ -2228,7 +2652,7 @@
2228
2652
  }
2229
2653
  catch (e) {
2230
2654
  _canUseSessionStorage = false;
2231
- logger.throwInternal(2 , _InternalMessageId.BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
2655
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
2232
2656
  }
2233
2657
  }
2234
2658
  return null;
@@ -2242,7 +2666,7 @@
2242
2666
  }
2243
2667
  catch (e) {
2244
2668
  _canUseSessionStorage = false;
2245
- logger.throwInternal(2 , _InternalMessageId.BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
2669
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
2246
2670
  }
2247
2671
  }
2248
2672
  return false;
@@ -2256,7 +2680,7 @@
2256
2680
  }
2257
2681
  catch (e) {
2258
2682
  _canUseSessionStorage = false;
2259
- logger.throwInternal(2 , _InternalMessageId.BrowserFailedRemovalFromSessionStorage, "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
2683
+ _throwInternal(logger, 2 , _InternalMessageId.BrowserFailedRemovalFromSessionStorage, "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
2260
2684
  }
2261
2685
  }
2262
2686
  return false;
@@ -3168,11 +3592,9 @@
3168
3592
  if (core) {
3169
3593
  _logger = core.logger;
3170
3594
  }
3171
- function _flushChannels() {
3595
+ function _flushChannels(isAsync) {
3172
3596
  if (core) {
3173
- arrForEach(core.getTransmissionControls(), function (queues) {
3174
- arrForEach(queues, function (q) { q.flush(true); });
3175
- });
3597
+ core.flush(isAsync);
3176
3598
  }
3177
3599
  }
3178
3600
  function _addQueue(cb) {
@@ -3195,7 +3617,7 @@
3195
3617
  intervalHandle = null;
3196
3618
  }
3197
3619
  if (doFlush) {
3198
- _flushChannels();
3620
+ _flushChannels(true);
3199
3621
  }
3200
3622
  }), 100);
3201
3623
  }
@@ -3213,7 +3635,7 @@
3213
3635
  }
3214
3636
  if (!pageViewPerformanceManager.isPerformanceTimingSupported()) {
3215
3637
  appInsights.sendPageViewInternal(pageView, customProperties);
3216
- _flushChannels();
3638
+ _flushChannels(true);
3217
3639
  _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NavigationTimingNotSupported, "trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.");
3218
3640
  return;
3219
3641
  }
@@ -3239,7 +3661,7 @@
3239
3661
  customProperties["duration"] = customDuration;
3240
3662
  }
3241
3663
  appInsights.sendPageViewInternal(pageView, customProperties);
3242
- _flushChannels();
3664
+ _flushChannels(true);
3243
3665
  pageViewSent = true;
3244
3666
  }
3245
3667
  var maxDurationLimit = 60000;
@@ -3285,6 +3707,17 @@
3285
3707
  return processed;
3286
3708
  });
3287
3709
  };
3710
+ _self.teardown = function (unloadCtx, unloadState) {
3711
+ if (intervalHandle) {
3712
+ clearInterval(intervalHandle);
3713
+ intervalHandle = null;
3714
+ var allItems = itemQueue.slice(0);
3715
+ itemQueue = [];
3716
+ arrForEach(allItems, function (item) {
3717
+ if (item()) ;
3718
+ });
3719
+ }
3720
+ };
3288
3721
  });
3289
3722
  }
3290
3723
  return PageViewManager;
@@ -3479,6 +3912,33 @@
3479
3912
  return PageViewPerformanceManager;
3480
3913
  }());
3481
3914
 
3915
+ var Timing = /** @class */ (function () {
3916
+ function Timing(logger, name) {
3917
+ var _self = this;
3918
+ var _events = {};
3919
+ _self.start = function (name) {
3920
+ if (typeof _events[name] !== "undefined") {
3921
+ _throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
3922
+ }
3923
+ _events[name] = +new Date;
3924
+ };
3925
+ _self.stop = function (name, url, properties, measurements) {
3926
+ var start = _events[name];
3927
+ if (isNaN(start)) {
3928
+ _throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, "stop was called without a corresponding start.", { name: name, key: name }, true);
3929
+ }
3930
+ else {
3931
+ var end = +new Date;
3932
+ var duration = dateTimeUtilsDuration(start, end);
3933
+ _self.action(name, url, duration, properties, measurements);
3934
+ }
3935
+ delete _events[name];
3936
+ _events[name] = undefined;
3937
+ };
3938
+ }
3939
+ return Timing;
3940
+ }());
3941
+
3482
3942
  var durationProperty = "duration";
3483
3943
  var strEvent = "event";
3484
3944
  function _dispatchEvent(target, evnt) {
@@ -3496,47 +3956,78 @@
3496
3956
  }
3497
3957
  return error || "";
3498
3958
  }
3499
- var ApplicationInsights = /** @class */ (function (_super) {
3500
- __extendsFn(ApplicationInsights, _super);
3501
- function ApplicationInsights() {
3959
+ var MinMilliSeconds = 60000;
3960
+ function _configMilliseconds(value, defValue) {
3961
+ value = value || defValue;
3962
+ if (value < MinMilliSeconds) {
3963
+ value = MinMilliSeconds;
3964
+ }
3965
+ return value;
3966
+ }
3967
+ function _getDefaultConfig(config) {
3968
+ if (!config) {
3969
+ config = {};
3970
+ }
3971
+ config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);
3972
+ config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);
3973
+ config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);
3974
+ config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);
3975
+ config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);
3976
+ config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);
3977
+ if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
3978
+ config.samplingPercentage = 100;
3979
+ }
3980
+ config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
3981
+ config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
3982
+ config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
3983
+ config.namePrefix = config.namePrefix || "";
3984
+ config.enableDebug = stringToBoolOrDefault(config.enableDebug);
3985
+ config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
3986
+ config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
3987
+ return config;
3988
+ }
3989
+ function _updateStorageUsage(extConfig) {
3990
+ if (!isUndefined(extConfig.isStorageUseDisabled)) {
3991
+ if (extConfig.isStorageUseDisabled) {
3992
+ utlDisableStorage();
3993
+ }
3994
+ else {
3995
+ utlEnableStorage();
3996
+ }
3997
+ }
3998
+ }
3999
+ var AnalyticsPlugin = /** @class */ (function (_super) {
4000
+ __extendsFn(AnalyticsPlugin, _super);
4001
+ function AnalyticsPlugin() {
3502
4002
  var _this = _super.call(this) || this;
3503
4003
  _this.identifier = AnalyticsPluginIdentifier;
3504
4004
  _this.priority = 180;
3505
4005
  _this.autoRoutePVDelay = 500;
3506
4006
  var _eventTracking;
3507
4007
  var _pageTracking;
3508
- var _properties;
4008
+ var _pageViewManager;
4009
+ var _pageViewPerformanceManager;
4010
+ var _pageVisitTimeManager;
4011
+ var _preInitTelemetryInitializers;
4012
+ var _isBrowserLinkTrackingEnabled;
4013
+ var _browserLinkInitializerAdded;
4014
+ var _enableAutoRouteTracking;
4015
+ var _historyListenerAdded;
4016
+ var _disableExceptionTracking;
4017
+ var _autoExceptionInstrumented;
4018
+ var _enableUnhandledPromiseRejectionTracking;
4019
+ var _autoUnhandledPromiseInstrumented;
3509
4020
  var _prevUri;
3510
4021
  var _currUri;
3511
- dynamicProto(ApplicationInsights, _this, function (_self, _base) {
3512
- var location = getLocation(true);
3513
- _prevUri = location && location.href || "";
4022
+ var _evtNamespace;
4023
+ dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {
4024
+ var _addHook = _base._addHook;
4025
+ _initDefaults();
3514
4026
  _self.getCookieMgr = function () {
3515
4027
  return safeGetCookieMgr(_self.core);
3516
4028
  };
3517
4029
  _self.processTelemetry = function (env, itemCtx) {
3518
- doPerf(_self.core, function () { return _self.identifier + ":processTelemetry"; }, function () {
3519
- var doNotSendItem = false;
3520
- var telemetryInitializersCount = _self._telemetryInitializers.length;
3521
- itemCtx = _self._getTelCtx(itemCtx);
3522
- for (var i = 0; i < telemetryInitializersCount; ++i) {
3523
- var telemetryInitializer = _self._telemetryInitializers[i];
3524
- if (telemetryInitializer) {
3525
- try {
3526
- if (telemetryInitializer.apply(null, [env]) === false) {
3527
- doNotSendItem = true;
3528
- break;
3529
- }
3530
- }
3531
- catch (e) {
3532
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
3533
- }
3534
- }
3535
- }
3536
- if (!doNotSendItem) {
3537
- _self.processNext(env, itemCtx);
3538
- }
3539
- }, function () { return ({ item: env }); }, !(env.sync));
4030
+ _self.processNext(env, itemCtx);
3540
4031
  };
3541
4032
  _self.trackEvent = function (event, customProperties) {
3542
4033
  try {
@@ -3544,7 +4035,7 @@
3544
4035
  _self.core.track(telemetryItem);
3545
4036
  }
3546
4037
  catch (e) {
3547
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4038
+ _throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3548
4039
  }
3549
4040
  };
3550
4041
  _self.startTrackEvent = function (name) {
@@ -3552,7 +4043,7 @@
3552
4043
  _eventTracking.start(name);
3553
4044
  }
3554
4045
  catch (e) {
3555
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4046
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3556
4047
  }
3557
4048
  };
3558
4049
  _self.stopTrackEvent = function (name, properties, measurements) {
@@ -3560,7 +4051,7 @@
3560
4051
  _eventTracking.stop(name, undefined, properties);
3561
4052
  }
3562
4053
  catch (e) {
3563
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4054
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3564
4055
  }
3565
4056
  };
3566
4057
  _self.trackTrace = function (trace, customProperties) {
@@ -3569,7 +4060,7 @@
3569
4060
  _self.core.track(telemetryItem);
3570
4061
  }
3571
4062
  catch (e) {
3572
- _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4063
+ _throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3573
4064
  }
3574
4065
  };
3575
4066
  _self.trackMetric = function (metric, customProperties) {
@@ -3578,19 +4069,19 @@
3578
4069
  _self.core.track(telemetryItem);
3579
4070
  }
3580
4071
  catch (e) {
3581
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, "trackMetric failed, metric will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4072
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, "trackMetric failed, metric will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3582
4073
  }
3583
4074
  };
3584
4075
  _self.trackPageView = function (pageView, customProperties) {
3585
4076
  try {
3586
4077
  var inPv = pageView || {};
3587
- _self._pageViewManager.trackPageView(inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
4078
+ _pageViewManager.trackPageView(inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
3588
4079
  if (_self.config.autoTrackPageVisitTime) {
3589
- _self._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);
4080
+ _pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);
3590
4081
  }
3591
4082
  }
3592
4083
  catch (e) {
3593
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageView failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4084
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageView failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3594
4085
  }
3595
4086
  };
3596
4087
  _self.sendPageViewInternal = function (pageView, properties, systemProperties) {
@@ -3606,12 +4097,13 @@
3606
4097
  _self.core.track(telemetryItem);
3607
4098
  };
3608
4099
  _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {
4100
+ var inPvp = pageViewPerformance || {};
3609
4101
  try {
3610
- _self._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);
3611
- _self.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);
4102
+ _pageViewPerformanceManager.populatePageViewPerformanceEvent(inPvp);
4103
+ _self.sendPageViewPerformanceInternal(inPvp, customProperties);
3612
4104
  }
3613
4105
  catch (e) {
3614
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4106
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3615
4107
  }
3616
4108
  };
3617
4109
  _self.startTrackPage = function (name) {
@@ -3623,7 +4115,7 @@
3623
4115
  _pageTracking.start(name);
3624
4116
  }
3625
4117
  catch (e) {
3626
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, "startTrackPage failed, page view may not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4118
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, "startTrackPage failed, page view may not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3627
4119
  }
3628
4120
  };
3629
4121
  _self.stopTrackPage = function (name, url, properties, measurement) {
@@ -3638,11 +4130,11 @@
3638
4130
  }
3639
4131
  _pageTracking.stop(name, url, properties, measurement);
3640
4132
  if (_self.config.autoTrackPageVisitTime) {
3641
- _self._pageVisitTimeManager.trackPreviousPageVisit(name, url);
4133
+ _pageVisitTimeManager.trackPreviousPageVisit(name, url);
3642
4134
  }
3643
4135
  }
3644
4136
  catch (e) {
3645
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4137
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3646
4138
  }
3647
4139
  };
3648
4140
  _self.sendExceptionInternal = function (exception, customProperties, systemProperties) {
@@ -3652,11 +4144,14 @@
3652
4144
  _self.core.track(telemetryItem);
3653
4145
  };
3654
4146
  _self.trackException = function (exception, customProperties) {
4147
+ if (exception && !exception.exception && exception.error) {
4148
+ exception.exception = exception.error;
4149
+ }
3655
4150
  try {
3656
4151
  _self.sendExceptionInternal(exception, customProperties);
3657
4152
  }
3658
4153
  catch (e) {
3659
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, "trackException failed, exception will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4154
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, "trackException failed, exception will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
3660
4155
  }
3661
4156
  };
3662
4157
  _self._onerror = function (exception) {
@@ -3690,158 +4185,98 @@
3690
4185
  }
3691
4186
  catch (e) {
3692
4187
  var errorString = error ? (error.name + ", " + error.message) : "null";
3693
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, "_onError threw exception while logging error, error will not be collected: "
4188
+ _throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, "_onError threw exception while logging error, error will not be collected: "
3694
4189
  + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });
3695
4190
  }
3696
4191
  };
3697
4192
  _self.addTelemetryInitializer = function (telemetryInitializer) {
3698
- _self._telemetryInitializers.push(telemetryInitializer);
4193
+ if (_self.core) {
4194
+ return _self.core.addTelemetryInitializer(telemetryInitializer);
4195
+ }
4196
+ if (!_preInitTelemetryInitializers) {
4197
+ _preInitTelemetryInitializers = [];
4198
+ }
4199
+ _preInitTelemetryInitializers.push(telemetryInitializer);
3699
4200
  };
3700
4201
  _self.initialize = function (config, core, extensions, pluginChain) {
3701
4202
  if (_self.isInitialized()) {
3702
4203
  return;
3703
4204
  }
3704
4205
  if (isNullOrUndefined(core)) {
3705
- throw Error("Error initializing");
4206
+ throwError("Error initializing");
3706
4207
  }
3707
4208
  _base.initialize(config, core, extensions, pluginChain);
3708
- _self.setInitialized(false);
3709
- var ctx = _self._getTelCtx();
3710
- var identifier = _self.identifier;
3711
- _self.config = ctx.getExtCfg(identifier);
3712
- var defaults = ApplicationInsights.getDefaultConfig(config);
3713
- if (defaults !== undefined) {
3714
- objForEachKey(defaults, function (field, value) {
3715
- _self.config[field] = ctx.getConfig(identifier, field, value);
3716
- if (_self.config[field] === undefined) {
3717
- _self.config[field] = value;
3718
- }
3719
- });
3720
- }
3721
- if (_self.config.isStorageUseDisabled) {
3722
- utlDisableStorage();
3723
- }
3724
- var configGetters = {
3725
- instrumentationKey: function () { return config.instrumentationKey; },
3726
- accountId: function () { return _self.config.accountId || config.accountId; },
3727
- sessionRenewalMs: function () { return _self.config.sessionRenewalMs || config.sessionRenewalMs; },
3728
- sessionExpirationMs: function () { return _self.config.sessionExpirationMs || config.sessionExpirationMs; },
3729
- sampleRate: function () { return _self.config.samplingPercentage || config.samplingPercentage; },
3730
- sdkExtension: function () { return _self.config.sdkExtension || config.sdkExtension; },
3731
- isBrowserLinkTrackingEnabled: function () { return _self.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled; },
3732
- appId: function () { return _self.config.appId || config.appId; }
3733
- };
3734
- _self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
3735
- _self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);
3736
- _self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
3737
- _self._telemetryInitializers = _self._telemetryInitializers || [];
3738
- _addDefaultTelemetryInitializers(configGetters);
3739
- _eventTracking = new Timing(_self.diagLog(), "trackEvent");
3740
- _eventTracking.action =
3741
- function (name, url, duration, properties) {
3742
- if (!properties) {
4209
+ try {
4210
+ _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());
4211
+ if (_preInitTelemetryInitializers) {
4212
+ arrForEach(_preInitTelemetryInitializers, function (initializer) {
4213
+ core.addTelemetryInitializer(initializer);
4214
+ });
4215
+ _preInitTelemetryInitializers = null;
4216
+ }
4217
+ var extConfig = _populateDefaults(config);
4218
+ _updateStorageUsage(extConfig);
4219
+ _pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
4220
+ _pageViewManager = new PageViewManager(_this, extConfig.overridePageViewDuration, _self.core, _pageViewPerformanceManager);
4221
+ _pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
4222
+ _updateBrowserLinkTracking(extConfig, config);
4223
+ _eventTracking = new Timing(_self.diagLog(), "trackEvent");
4224
+ _eventTracking.action =
4225
+ function (name, url, duration, properties) {
4226
+ if (!properties) {
4227
+ properties = {};
4228
+ }
4229
+ properties[durationProperty] = duration.toString();
4230
+ _self.trackEvent({ name: name, properties: properties });
4231
+ };
4232
+ _pageTracking = new Timing(_self.diagLog(), "trackPageView");
4233
+ _pageTracking.action = function (name, url, duration, properties, measurements) {
4234
+ if (isNullOrUndefined(properties)) {
3743
4235
  properties = {};
3744
4236
  }
3745
4237
  properties[durationProperty] = duration.toString();
3746
- _self.trackEvent({ name: name, properties: properties });
4238
+ var pageViewItem = {
4239
+ name: name,
4240
+ uri: url,
4241
+ properties: properties,
4242
+ measurements: measurements
4243
+ };
4244
+ _self.sendPageViewInternal(pageViewItem, properties);
3747
4245
  };
3748
- _pageTracking = new Timing(_self.diagLog(), "trackPageView");
3749
- _pageTracking.action = function (name, url, duration, properties, measurements) {
3750
- if (isNullOrUndefined(properties)) {
3751
- properties = {};
4246
+ if (hasWindow()) {
4247
+ _updateExceptionTracking(extConfig);
4248
+ _updateLocationChange(extConfig);
3752
4249
  }
3753
- properties[durationProperty] = duration.toString();
3754
- var pageViewItem = {
3755
- name: name,
3756
- uri: url,
3757
- properties: properties,
3758
- measurements: measurements
3759
- };
3760
- _self.sendPageViewInternal(pageViewItem, properties);
3761
- };
3762
- var _window = getWindow();
3763
- var _history = getHistory();
3764
- var _location = getLocation(true);
3765
- var instance = _this;
3766
- if (_self.config.disableExceptionTracking === false &&
3767
- !_self.config.autoExceptionInstrumented && _window) {
3768
- var onerror_1 = "onerror";
3769
- var originalOnError_1 = _window[onerror_1];
3770
- _window.onerror = function (message, url, lineNumber, columnNumber, error) {
3771
- var evt = _window[strEvent];
3772
- var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);
3773
- if (handled !== true) {
3774
- instance._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, evt));
3775
- }
3776
- return handled;
3777
- };
3778
- _self.config.autoExceptionInstrumented = true;
3779
- }
3780
- if (_self.config.disableExceptionTracking === false &&
3781
- _self.config.enableUnhandledPromiseRejectionTracking === true &&
3782
- !_self.config.autoUnhandledPromiseInstrumented && _window) {
3783
- var onunhandledrejection_1 = "onunhandledrejection";
3784
- var originalOnUnhandledRejection_1 = _window[onunhandledrejection_1];
3785
- _window[onunhandledrejection_1] = function (error) {
3786
- var evt = _window[strEvent];
3787
- var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);
3788
- if (handled !== true) {
3789
- instance._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, evt));
3790
- }
3791
- return handled;
3792
- };
3793
- _self.config.autoUnhandledPromiseInstrumented = true;
3794
- }
3795
- if (_self.config.enableAutoRouteTracking === true
3796
- && _history && isFunction(_history.pushState) && isFunction(_history.replaceState)
3797
- && _window
3798
- && typeof Event !== "undefined") {
3799
- var _self_1 = _this;
3800
- arrForEach(extensions, function (extension) {
3801
- if (extension.identifier === PropertiesPluginIdentifier) {
3802
- _properties = extension;
4250
+ }
4251
+ catch (e) {
4252
+ _self.setInitialized(false);
4253
+ throw e;
4254
+ }
4255
+ };
4256
+ _self._doTeardown = function (unloadCtx, unloadState) {
4257
+ _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);
4258
+ eventOff(window, null, null, _evtNamespace);
4259
+ _initDefaults();
4260
+ };
4261
+ function _populateDefaults(config) {
4262
+ var ctx = createProcessTelemetryContext(null, config, _self.core);
4263
+ var identifier = _self.identifier;
4264
+ var defaults = _getDefaultConfig(config);
4265
+ var extConfig = _self.config = ctx.getExtCfg(identifier);
4266
+ if (defaults !== undefined) {
4267
+ objForEachKey(defaults, function (field, value) {
4268
+ extConfig[field] = ctx.getConfig(identifier, field, value);
4269
+ if (extConfig[field] === undefined) {
4270
+ extConfig = value;
3803
4271
  }
3804
4272
  });
3805
- _history.pushState = (function (f) { return function pushState() {
3806
- var ret = f.apply(this, arguments);
3807
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "pushState"));
3808
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
3809
- return ret;
3810
- }; })(_history.pushState);
3811
- _history.replaceState = (function (f) { return function replaceState() {
3812
- var ret = f.apply(this, arguments);
3813
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "replaceState"));
3814
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
3815
- return ret;
3816
- }; })(_history.replaceState);
3817
- if (_window.addEventListener) {
3818
- _window.addEventListener(_self_1.config.namePrefix + "popstate", function () {
3819
- _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
3820
- });
3821
- _window.addEventListener(_self_1.config.namePrefix + "locationchange", function () {
3822
- if (_properties && _properties.context && _properties.context.telemetryTrace) {
3823
- _properties.context.telemetryTrace.traceID = generateW3CId();
3824
- var traceLocationName = "_unknown_";
3825
- if (_location && _location.pathname) {
3826
- traceLocationName = _location.pathname + (_location.hash || "");
3827
- }
3828
- _properties.context.telemetryTrace.name = dataSanitizeString(_self_1.diagLog(), traceLocationName);
3829
- }
3830
- if (_currUri) {
3831
- _prevUri = _currUri;
3832
- _currUri = _location && _location.href || "";
3833
- }
3834
- else {
3835
- _currUri = _location && _location.href || "";
3836
- }
3837
- setTimeout((function (uri) {
3838
- _self_1.trackPageView({ refUri: uri, properties: { duration: 0 } });
3839
- }).bind(_this, _prevUri), _self_1.autoRoutePVDelay);
3840
- });
3841
- }
3842
4273
  }
3843
- _self.setInitialized(true);
3844
- };
4274
+ return extConfig;
4275
+ }
4276
+ function _updateBrowserLinkTracking(extConfig, config) {
4277
+ _isBrowserLinkTrackingEnabled = extConfig.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled;
4278
+ _addDefaultTelemetryInitializers();
4279
+ }
3845
4280
  function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {
3846
4281
  var properties = { PageName: pageName, PageUrl: pageUrl };
3847
4282
  _self.trackMetric({
@@ -3852,11 +4287,11 @@
3852
4287
  sampleCount: 1
3853
4288
  }, properties);
3854
4289
  }
3855
- function _addDefaultTelemetryInitializers(configGetters) {
3856
- if (!configGetters.isBrowserLinkTrackingEnabled()) {
4290
+ function _addDefaultTelemetryInitializers() {
4291
+ if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {
3857
4292
  var browserLinkPaths_1 = ["/browserLinkSignalR/", "/__browserLink/"];
3858
4293
  var dropBrowserLinkRequests = function (envelope) {
3859
- if (envelope.baseType === RemoteDependencyData.dataType) {
4294
+ if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData.dataType) {
3860
4295
  var remoteData = envelope.baseData;
3861
4296
  if (remoteData) {
3862
4297
  for (var i = 0; i < browserLinkPaths_1.length; i++) {
@@ -3868,72 +4303,150 @@
3868
4303
  }
3869
4304
  return true;
3870
4305
  };
3871
- _addTelemetryInitializer(dropBrowserLinkRequests);
4306
+ _self.addTelemetryInitializer(dropBrowserLinkRequests);
4307
+ _browserLinkInitializerAdded = true;
3872
4308
  }
3873
4309
  }
3874
- function _addTelemetryInitializer(telemetryInitializer) {
3875
- _self._telemetryInitializers.push(telemetryInitializer);
3876
- }
3877
4310
  function _sendCORSException(exception, properties) {
3878
4311
  var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);
3879
4312
  _self.core.track(telemetryItem);
3880
4313
  }
3881
- });
3882
- return _this;
3883
- }
3884
- ApplicationInsights.getDefaultConfig = function (config) {
3885
- if (!config) {
3886
- config = {};
3887
- }
3888
- config.sessionRenewalMs = 30 * 60 * 1000;
3889
- config.sessionExpirationMs = 24 * 60 * 60 * 1000;
3890
- config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);
3891
- config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);
3892
- config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);
3893
- config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);
3894
- if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
3895
- config.samplingPercentage = 100;
3896
- }
3897
- config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
3898
- config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
3899
- config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
3900
- config.namePrefix = config.namePrefix || "";
3901
- config.enableDebug = stringToBoolOrDefault(config.enableDebug);
3902
- config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
3903
- config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
3904
- return config;
3905
- };
3906
- ApplicationInsights.Version = "2.8.0-beta.2203-04";
3907
- return ApplicationInsights;
3908
- }(BaseTelemetryPlugin));
3909
- var Timing = /** @class */ (function () {
3910
- function Timing(logger, name) {
3911
- var _self = this;
3912
- var _events = {};
3913
- _self.start = function (name) {
3914
- if (typeof _events[name] !== "undefined") {
3915
- logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
4314
+ function _updateExceptionTracking(extConfig) {
4315
+ var _window = getWindow();
4316
+ var locn = getLocation(true);
4317
+ _disableExceptionTracking = extConfig.disableExceptionTracking;
4318
+ if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {
4319
+ _addHook(InstrumentFunc(_window, "onerror", {
4320
+ ns: _evtNamespace,
4321
+ rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {
4322
+ if (!_disableExceptionTracking && callDetails.rslt !== true) {
4323
+ _self._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, callDetails.evt));
4324
+ }
4325
+ }
4326
+ }));
4327
+ _autoExceptionInstrumented = true;
4328
+ }
4329
+ _addUnhandledPromiseRejectionTracking(extConfig, _window, locn);
3916
4330
  }
3917
- _events[name] = +new Date;
3918
- };
3919
- _self.stop = function (name, url, properties, measurements) {
3920
- var start = _events[name];
3921
- if (isNaN(start)) {
3922
- logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, "stop was called without a corresponding start.", { name: name, key: name }, true);
4331
+ function _updateLocationChange(extConfig) {
4332
+ var win = getWindow();
4333
+ var locn = getLocation(true);
4334
+ _enableAutoRouteTracking = extConfig.enableAutoRouteTracking === true;
4335
+ if (win && _enableAutoRouteTracking && hasHistory()) {
4336
+ var _history = getHistory();
4337
+ if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strShimUndefined) {
4338
+ _addHistoryListener(extConfig, win, _history, locn);
4339
+ }
4340
+ }
3923
4341
  }
3924
- else {
3925
- var end = +new Date;
3926
- var duration = dateTimeUtilsDuration(start, end);
3927
- _self.action(name, url, duration, properties, measurements);
4342
+ function _addHistoryListener(extConfig, win, history, locn) {
4343
+ function _popstateHandler() {
4344
+ if (_enableAutoRouteTracking) {
4345
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
4346
+ }
4347
+ }
4348
+ function _locationChangeHandler() {
4349
+ if (_currUri) {
4350
+ _prevUri = _currUri;
4351
+ _currUri = locn && locn.href || "";
4352
+ }
4353
+ else {
4354
+ _currUri = locn && locn.href || "";
4355
+ }
4356
+ if (_enableAutoRouteTracking) {
4357
+ var properties = _self.core.getPlugin(PropertiesPluginIdentifier);
4358
+ if (properties) {
4359
+ var context = properties.plugin.context;
4360
+ if (context && context.telemetryTrace) {
4361
+ context.telemetryTrace.traceID = generateW3CId();
4362
+ var traceLocationName = "_unknown_";
4363
+ if (locn && locn.pathname) {
4364
+ traceLocationName = locn.pathname + (locn.hash || "");
4365
+ }
4366
+ context.telemetryTrace.name = dataSanitizeString(_self.diagLog(), traceLocationName);
4367
+ }
4368
+ }
4369
+ setTimeout((function (uri) {
4370
+ _self.trackPageView({ refUri: uri, properties: { duration: 0 } });
4371
+ }).bind(this, _prevUri), _self.autoRoutePVDelay);
4372
+ }
4373
+ }
4374
+ if (!_historyListenerAdded) {
4375
+ _addHook(InstrumentFunc(history, "pushState", {
4376
+ ns: _evtNamespace,
4377
+ rsp: function () {
4378
+ if (_enableAutoRouteTracking) {
4379
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "pushState"));
4380
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
4381
+ }
4382
+ }
4383
+ }));
4384
+ _addHook(InstrumentFunc(history, "replaceState", {
4385
+ ns: _evtNamespace,
4386
+ rsp: function () {
4387
+ if (_enableAutoRouteTracking) {
4388
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "replaceState"));
4389
+ _dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
4390
+ }
4391
+ }
4392
+ }));
4393
+ eventOn(win, extConfig.namePrefix + "popstate", _popstateHandler, _evtNamespace);
4394
+ eventOn(win, extConfig.namePrefix + "locationchange", _locationChangeHandler, _evtNamespace);
4395
+ _historyListenerAdded = true;
4396
+ }
3928
4397
  }
3929
- delete _events[name];
3930
- _events[name] = undefined;
3931
- };
4398
+ function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {
4399
+ _enableUnhandledPromiseRejectionTracking = extConfig.enableUnhandledPromiseRejectionTracking === true;
4400
+ if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {
4401
+ _addHook(InstrumentFunc(_window, "onunhandledrejection", {
4402
+ ns: _evtNamespace,
4403
+ rsp: function (callDetails, error) {
4404
+ if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) {
4405
+ _self._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, callDetails.evt));
4406
+ }
4407
+ }
4408
+ }));
4409
+ _autoUnhandledPromiseInstrumented = true;
4410
+ extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;
4411
+ }
4412
+ }
4413
+ function _throwInternal(severity, msgId, msg, properties, isUserAct) {
4414
+ _self.diagLog().throwInternal(severity, msgId, msg, properties, isUserAct);
4415
+ }
4416
+ function _initDefaults() {
4417
+ _eventTracking = null;
4418
+ _pageTracking = null;
4419
+ _pageViewManager = null;
4420
+ _pageViewPerformanceManager = null;
4421
+ _pageVisitTimeManager = null;
4422
+ _preInitTelemetryInitializers = null;
4423
+ _isBrowserLinkTrackingEnabled = false;
4424
+ _browserLinkInitializerAdded = false;
4425
+ _enableAutoRouteTracking = false;
4426
+ _historyListenerAdded = false;
4427
+ _disableExceptionTracking = false;
4428
+ _autoExceptionInstrumented = false;
4429
+ _enableUnhandledPromiseRejectionTracking = false;
4430
+ _autoUnhandledPromiseInstrumented = false;
4431
+ var location = getLocation(true);
4432
+ _prevUri = location && location.href || "";
4433
+ _currUri = null;
4434
+ _evtNamespace = null;
4435
+ }
4436
+ objDefineAccessors(_self, "_pageViewManager", function () { return _pageViewManager; });
4437
+ objDefineAccessors(_self, "_pageViewPerformanceManager", function () { return _pageViewPerformanceManager; });
4438
+ objDefineAccessors(_self, "_pageVisitTimeManager", function () { return _pageVisitTimeManager; });
4439
+ objDefineAccessors(_self, "_evtNamespace", function () { return "." + _evtNamespace; });
4440
+ });
4441
+ return _this;
3932
4442
  }
3933
- return Timing;
3934
- }());
4443
+ AnalyticsPlugin.Version = "2.8.0-beta.2203-07";
4444
+ AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;
4445
+ return AnalyticsPlugin;
4446
+ }(BaseTelemetryPlugin));
3935
4447
 
3936
- exports.ApplicationInsights = ApplicationInsights;
4448
+ exports.AnalyticsPlugin = AnalyticsPlugin;
4449
+ exports.ApplicationInsights = AnalyticsPlugin;
3937
4450
 
3938
4451
  (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 });
3939
4452