@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.
- package/browser/applicationinsights-analytics-js.integrity.json +9 -9
- package/browser/applicationinsights-analytics-js.js +771 -258
- package/browser/applicationinsights-analytics-js.js.map +1 -1
- package/browser/applicationinsights-analytics-js.min.js +2 -2
- package/browser/applicationinsights-analytics-js.min.js.map +1 -1
- package/dist/applicationinsights-analytics-js.api.json +48 -183
- package/dist/applicationinsights-analytics-js.api.md +8 -18
- package/dist/applicationinsights-analytics-js.d.ts +9 -104
- package/dist/applicationinsights-analytics-js.js +771 -258
- package/dist/applicationinsights-analytics-js.js.map +1 -1
- package/dist/applicationinsights-analytics-js.min.js +2 -2
- package/dist/applicationinsights-analytics-js.min.js.map +1 -1
- package/dist/applicationinsights-analytics-js.rollup.d.ts +9 -104
- package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js +674 -0
- package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js.map +1 -0
- package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js +21 -8
- package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js.map +1 -1
- package/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js +1 -1
- package/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js +1 -1
- package/dist-esm/JavaScriptSDK/Timing.js +39 -0
- package/dist-esm/JavaScriptSDK/Timing.js.map +1 -0
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryConfig.js +1 -1
- package/dist-esm/applicationinsights-analytics-js.js +2 -2
- package/dist-esm/applicationinsights-analytics-js.js.map +1 -1
- package/package.json +5 -5
- package/src/JavaScriptSDK/{ApplicationInsights.ts → AnalyticsPlugin.ts} +403 -324
- package/src/JavaScriptSDK/Telemetry/PageViewManager.ts +28 -9
- package/src/JavaScriptSDK/Timing.ts +46 -0
- package/src/applicationinsights-analytics-js.ts +1 -1
- package/types/JavaScriptSDK/{ApplicationInsights.d.ts → AnalyticsPlugin.d.ts} +7 -11
- package/types/JavaScriptSDK/Telemetry/PageViewManager.d.ts +2 -1
- package/types/JavaScriptSDK/Timing.d.ts +18 -0
- package/types/applicationinsights-analytics-js.d.ts +1 -1
- package/dist-esm/JavaScriptSDK/ApplicationInsights.js +0 -606
- 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-
|
|
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(
|
|
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
|
|
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()
|
|
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
|
|
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()
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2218
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
3500
|
-
|
|
3501
|
-
|
|
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
|
|
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
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4078
|
+
_pageViewManager.trackPageView(inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
|
|
3588
4079
|
if (_self.config.autoTrackPageVisitTime) {
|
|
3589
|
-
|
|
4080
|
+
_pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);
|
|
3590
4081
|
}
|
|
3591
4082
|
}
|
|
3592
4083
|
catch (e) {
|
|
3593
|
-
|
|
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
|
-
|
|
3611
|
-
_self.sendPageViewPerformanceInternal(
|
|
4102
|
+
_pageViewPerformanceManager.populatePageViewPerformanceEvent(inPvp);
|
|
4103
|
+
_self.sendPageViewPerformanceInternal(inPvp, customProperties);
|
|
3612
4104
|
}
|
|
3613
4105
|
catch (e) {
|
|
3614
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4133
|
+
_pageVisitTimeManager.trackPreviousPageVisit(name, url);
|
|
3642
4134
|
}
|
|
3643
4135
|
}
|
|
3644
4136
|
catch (e) {
|
|
3645
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
4206
|
+
throwError("Error initializing");
|
|
3706
4207
|
}
|
|
3707
4208
|
_base.initialize(config, core, extensions, pluginChain);
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
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
|
-
|
|
4238
|
+
var pageViewItem = {
|
|
4239
|
+
name: name,
|
|
4240
|
+
uri: url,
|
|
4241
|
+
properties: properties,
|
|
4242
|
+
measurements: measurements
|
|
4243
|
+
};
|
|
4244
|
+
_self.sendPageViewInternal(pageViewItem, properties);
|
|
3747
4245
|
};
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
properties = {};
|
|
4246
|
+
if (hasWindow()) {
|
|
4247
|
+
_updateExceptionTracking(extConfig);
|
|
4248
|
+
_updateLocationChange(extConfig);
|
|
3752
4249
|
}
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
var
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
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
|
-
|
|
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(
|
|
3856
|
-
if (!
|
|
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
|
-
|
|
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
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
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
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
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
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
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
|
-
|
|
3930
|
-
|
|
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
|
-
|
|
3934
|
-
|
|
4443
|
+
AnalyticsPlugin.Version = "2.8.0-beta.2203-07";
|
|
4444
|
+
AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;
|
|
4445
|
+
return AnalyticsPlugin;
|
|
4446
|
+
}(BaseTelemetryPlugin));
|
|
3935
4447
|
|
|
3936
|
-
exports.
|
|
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
|
|