@microsoft/applicationinsights-analytics-js 2.8.0-beta.2203-04 → 2.8.0-beta.2203-05
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 +754 -251
- 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 +754 -251
- 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 +673 -0
- package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js.map +1 -0
- package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js +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} +401 -324
- 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/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-05
|
|
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;
|
|
@@ -3479,6 +3903,33 @@
|
|
|
3479
3903
|
return PageViewPerformanceManager;
|
|
3480
3904
|
}());
|
|
3481
3905
|
|
|
3906
|
+
var Timing = /** @class */ (function () {
|
|
3907
|
+
function Timing(logger, name) {
|
|
3908
|
+
var _self = this;
|
|
3909
|
+
var _events = {};
|
|
3910
|
+
_self.start = function (name) {
|
|
3911
|
+
if (typeof _events[name] !== "undefined") {
|
|
3912
|
+
_throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
|
|
3913
|
+
}
|
|
3914
|
+
_events[name] = +new Date;
|
|
3915
|
+
};
|
|
3916
|
+
_self.stop = function (name, url, properties, measurements) {
|
|
3917
|
+
var start = _events[name];
|
|
3918
|
+
if (isNaN(start)) {
|
|
3919
|
+
_throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, "stop was called without a corresponding start.", { name: name, key: name }, true);
|
|
3920
|
+
}
|
|
3921
|
+
else {
|
|
3922
|
+
var end = +new Date;
|
|
3923
|
+
var duration = dateTimeUtilsDuration(start, end);
|
|
3924
|
+
_self.action(name, url, duration, properties, measurements);
|
|
3925
|
+
}
|
|
3926
|
+
delete _events[name];
|
|
3927
|
+
_events[name] = undefined;
|
|
3928
|
+
};
|
|
3929
|
+
}
|
|
3930
|
+
return Timing;
|
|
3931
|
+
}());
|
|
3932
|
+
|
|
3482
3933
|
var durationProperty = "duration";
|
|
3483
3934
|
var strEvent = "event";
|
|
3484
3935
|
function _dispatchEvent(target, evnt) {
|
|
@@ -3496,47 +3947,78 @@
|
|
|
3496
3947
|
}
|
|
3497
3948
|
return error || "";
|
|
3498
3949
|
}
|
|
3499
|
-
var
|
|
3500
|
-
|
|
3501
|
-
|
|
3950
|
+
var MinMilliSeconds = 60000;
|
|
3951
|
+
function _configMilliseconds(value, defValue) {
|
|
3952
|
+
value = value || defValue;
|
|
3953
|
+
if (value < MinMilliSeconds) {
|
|
3954
|
+
value = MinMilliSeconds;
|
|
3955
|
+
}
|
|
3956
|
+
return value;
|
|
3957
|
+
}
|
|
3958
|
+
function _getDefaultConfig(config) {
|
|
3959
|
+
if (!config) {
|
|
3960
|
+
config = {};
|
|
3961
|
+
}
|
|
3962
|
+
config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);
|
|
3963
|
+
config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);
|
|
3964
|
+
config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);
|
|
3965
|
+
config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);
|
|
3966
|
+
config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);
|
|
3967
|
+
config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);
|
|
3968
|
+
if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
|
|
3969
|
+
config.samplingPercentage = 100;
|
|
3970
|
+
}
|
|
3971
|
+
config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
|
|
3972
|
+
config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
|
|
3973
|
+
config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
|
|
3974
|
+
config.namePrefix = config.namePrefix || "";
|
|
3975
|
+
config.enableDebug = stringToBoolOrDefault(config.enableDebug);
|
|
3976
|
+
config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
|
|
3977
|
+
config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
|
|
3978
|
+
return config;
|
|
3979
|
+
}
|
|
3980
|
+
function _updateStorageUsage(extConfig) {
|
|
3981
|
+
if (!isUndefined(extConfig.isStorageUseDisabled)) {
|
|
3982
|
+
if (extConfig.isStorageUseDisabled) {
|
|
3983
|
+
utlDisableStorage();
|
|
3984
|
+
}
|
|
3985
|
+
else {
|
|
3986
|
+
utlEnableStorage();
|
|
3987
|
+
}
|
|
3988
|
+
}
|
|
3989
|
+
}
|
|
3990
|
+
var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
3991
|
+
__extendsFn(AnalyticsPlugin, _super);
|
|
3992
|
+
function AnalyticsPlugin() {
|
|
3502
3993
|
var _this = _super.call(this) || this;
|
|
3503
3994
|
_this.identifier = AnalyticsPluginIdentifier;
|
|
3504
3995
|
_this.priority = 180;
|
|
3505
3996
|
_this.autoRoutePVDelay = 500;
|
|
3506
3997
|
var _eventTracking;
|
|
3507
3998
|
var _pageTracking;
|
|
3508
|
-
var
|
|
3999
|
+
var _pageViewManager;
|
|
4000
|
+
var _pageViewPerformanceManager;
|
|
4001
|
+
var _pageVisitTimeManager;
|
|
4002
|
+
var _preInitTelemetryInitializers;
|
|
4003
|
+
var _isBrowserLinkTrackingEnabled;
|
|
4004
|
+
var _browserLinkInitializerAdded;
|
|
4005
|
+
var _enableAutoRouteTracking;
|
|
4006
|
+
var _historyListenerAdded;
|
|
4007
|
+
var _disableExceptionTracking;
|
|
4008
|
+
var _autoExceptionInstrumented;
|
|
4009
|
+
var _enableUnhandledPromiseRejectionTracking;
|
|
4010
|
+
var _autoUnhandledPromiseInstrumented;
|
|
3509
4011
|
var _prevUri;
|
|
3510
4012
|
var _currUri;
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
4013
|
+
var _evtNamespace;
|
|
4014
|
+
dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {
|
|
4015
|
+
var _addHook = _base._addHook;
|
|
4016
|
+
_initDefaults();
|
|
3514
4017
|
_self.getCookieMgr = function () {
|
|
3515
4018
|
return safeGetCookieMgr(_self.core);
|
|
3516
4019
|
};
|
|
3517
4020
|
_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));
|
|
4021
|
+
_self.processNext(env, itemCtx);
|
|
3540
4022
|
};
|
|
3541
4023
|
_self.trackEvent = function (event, customProperties) {
|
|
3542
4024
|
try {
|
|
@@ -3544,7 +4026,7 @@
|
|
|
3544
4026
|
_self.core.track(telemetryItem);
|
|
3545
4027
|
}
|
|
3546
4028
|
catch (e) {
|
|
3547
|
-
|
|
4029
|
+
_throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3548
4030
|
}
|
|
3549
4031
|
};
|
|
3550
4032
|
_self.startTrackEvent = function (name) {
|
|
@@ -3552,7 +4034,7 @@
|
|
|
3552
4034
|
_eventTracking.start(name);
|
|
3553
4035
|
}
|
|
3554
4036
|
catch (e) {
|
|
3555
|
-
|
|
4037
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3556
4038
|
}
|
|
3557
4039
|
};
|
|
3558
4040
|
_self.stopTrackEvent = function (name, properties, measurements) {
|
|
@@ -3560,7 +4042,7 @@
|
|
|
3560
4042
|
_eventTracking.stop(name, undefined, properties);
|
|
3561
4043
|
}
|
|
3562
4044
|
catch (e) {
|
|
3563
|
-
|
|
4045
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3564
4046
|
}
|
|
3565
4047
|
};
|
|
3566
4048
|
_self.trackTrace = function (trace, customProperties) {
|
|
@@ -3569,7 +4051,7 @@
|
|
|
3569
4051
|
_self.core.track(telemetryItem);
|
|
3570
4052
|
}
|
|
3571
4053
|
catch (e) {
|
|
3572
|
-
|
|
4054
|
+
_throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3573
4055
|
}
|
|
3574
4056
|
};
|
|
3575
4057
|
_self.trackMetric = function (metric, customProperties) {
|
|
@@ -3578,19 +4060,19 @@
|
|
|
3578
4060
|
_self.core.track(telemetryItem);
|
|
3579
4061
|
}
|
|
3580
4062
|
catch (e) {
|
|
3581
|
-
|
|
4063
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, "trackMetric failed, metric will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3582
4064
|
}
|
|
3583
4065
|
};
|
|
3584
4066
|
_self.trackPageView = function (pageView, customProperties) {
|
|
3585
4067
|
try {
|
|
3586
4068
|
var inPv = pageView || {};
|
|
3587
|
-
|
|
4069
|
+
_pageViewManager.trackPageView(inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
|
|
3588
4070
|
if (_self.config.autoTrackPageVisitTime) {
|
|
3589
|
-
|
|
4071
|
+
_pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);
|
|
3590
4072
|
}
|
|
3591
4073
|
}
|
|
3592
4074
|
catch (e) {
|
|
3593
|
-
|
|
4075
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageView failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3594
4076
|
}
|
|
3595
4077
|
};
|
|
3596
4078
|
_self.sendPageViewInternal = function (pageView, properties, systemProperties) {
|
|
@@ -3606,12 +4088,13 @@
|
|
|
3606
4088
|
_self.core.track(telemetryItem);
|
|
3607
4089
|
};
|
|
3608
4090
|
_self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {
|
|
4091
|
+
var inPvp = pageViewPerformance || {};
|
|
3609
4092
|
try {
|
|
3610
|
-
|
|
3611
|
-
_self.sendPageViewPerformanceInternal(
|
|
4093
|
+
_pageViewPerformanceManager.populatePageViewPerformanceEvent(inPvp);
|
|
4094
|
+
_self.sendPageViewPerformanceInternal(inPvp, customProperties);
|
|
3612
4095
|
}
|
|
3613
4096
|
catch (e) {
|
|
3614
|
-
|
|
4097
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3615
4098
|
}
|
|
3616
4099
|
};
|
|
3617
4100
|
_self.startTrackPage = function (name) {
|
|
@@ -3623,7 +4106,7 @@
|
|
|
3623
4106
|
_pageTracking.start(name);
|
|
3624
4107
|
}
|
|
3625
4108
|
catch (e) {
|
|
3626
|
-
|
|
4109
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, "startTrackPage failed, page view may not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3627
4110
|
}
|
|
3628
4111
|
};
|
|
3629
4112
|
_self.stopTrackPage = function (name, url, properties, measurement) {
|
|
@@ -3638,11 +4121,11 @@
|
|
|
3638
4121
|
}
|
|
3639
4122
|
_pageTracking.stop(name, url, properties, measurement);
|
|
3640
4123
|
if (_self.config.autoTrackPageVisitTime) {
|
|
3641
|
-
|
|
4124
|
+
_pageVisitTimeManager.trackPreviousPageVisit(name, url);
|
|
3642
4125
|
}
|
|
3643
4126
|
}
|
|
3644
4127
|
catch (e) {
|
|
3645
|
-
|
|
4128
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3646
4129
|
}
|
|
3647
4130
|
};
|
|
3648
4131
|
_self.sendExceptionInternal = function (exception, customProperties, systemProperties) {
|
|
@@ -3652,11 +4135,14 @@
|
|
|
3652
4135
|
_self.core.track(telemetryItem);
|
|
3653
4136
|
};
|
|
3654
4137
|
_self.trackException = function (exception, customProperties) {
|
|
4138
|
+
if (exception && !exception.exception && exception.error) {
|
|
4139
|
+
exception.exception = exception.error;
|
|
4140
|
+
}
|
|
3655
4141
|
try {
|
|
3656
4142
|
_self.sendExceptionInternal(exception, customProperties);
|
|
3657
4143
|
}
|
|
3658
4144
|
catch (e) {
|
|
3659
|
-
|
|
4145
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, "trackException failed, exception will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3660
4146
|
}
|
|
3661
4147
|
};
|
|
3662
4148
|
_self._onerror = function (exception) {
|
|
@@ -3690,158 +4176,97 @@
|
|
|
3690
4176
|
}
|
|
3691
4177
|
catch (e) {
|
|
3692
4178
|
var errorString = error ? (error.name + ", " + error.message) : "null";
|
|
3693
|
-
|
|
4179
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, "_onError threw exception while logging error, error will not be collected: "
|
|
3694
4180
|
+ getExceptionName(e), { exception: dumpObj(e), errorString: errorString });
|
|
3695
4181
|
}
|
|
3696
4182
|
};
|
|
3697
4183
|
_self.addTelemetryInitializer = function (telemetryInitializer) {
|
|
3698
|
-
_self.
|
|
4184
|
+
if (_self.core) {
|
|
4185
|
+
return _self.core.addTelemetryInitializer(telemetryInitializer);
|
|
4186
|
+
}
|
|
4187
|
+
if (!_preInitTelemetryInitializers) {
|
|
4188
|
+
_preInitTelemetryInitializers = [];
|
|
4189
|
+
}
|
|
4190
|
+
_preInitTelemetryInitializers.push(telemetryInitializer);
|
|
3699
4191
|
};
|
|
3700
4192
|
_self.initialize = function (config, core, extensions, pluginChain) {
|
|
3701
4193
|
if (_self.isInitialized()) {
|
|
3702
4194
|
return;
|
|
3703
4195
|
}
|
|
3704
4196
|
if (isNullOrUndefined(core)) {
|
|
3705
|
-
|
|
4197
|
+
throwError("Error initializing");
|
|
3706
4198
|
}
|
|
3707
4199
|
_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) {
|
|
4200
|
+
try {
|
|
4201
|
+
_evtNamespace = mergeEvtNamespace(createUniqueNamespace("AnalyticsPlugin"), core.evtNamespace && core.evtNamespace());
|
|
4202
|
+
if (_preInitTelemetryInitializers) {
|
|
4203
|
+
arrForEach(_preInitTelemetryInitializers, function (initializer) {
|
|
4204
|
+
core.addTelemetryInitializer(initializer);
|
|
4205
|
+
});
|
|
4206
|
+
_preInitTelemetryInitializers = null;
|
|
4207
|
+
}
|
|
4208
|
+
var extConfig = _populateDefaults(config);
|
|
4209
|
+
_updateStorageUsage(extConfig);
|
|
4210
|
+
_pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
|
|
4211
|
+
_pageViewManager = new PageViewManager(_this, extConfig.overridePageViewDuration, _self.core, _pageViewPerformanceManager);
|
|
4212
|
+
_pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
|
|
4213
|
+
_updateBrowserLinkTracking(extConfig, config);
|
|
4214
|
+
_eventTracking = new Timing(_self.diagLog(), "trackEvent");
|
|
4215
|
+
_eventTracking.action =
|
|
4216
|
+
function (name, url, duration, properties) {
|
|
4217
|
+
if (!properties) {
|
|
4218
|
+
properties = {};
|
|
4219
|
+
}
|
|
4220
|
+
properties[durationProperty] = duration.toString();
|
|
4221
|
+
_self.trackEvent({ name: name, properties: properties });
|
|
4222
|
+
};
|
|
4223
|
+
_pageTracking = new Timing(_self.diagLog(), "trackPageView");
|
|
4224
|
+
_pageTracking.action = function (name, url, duration, properties, measurements) {
|
|
4225
|
+
if (isNullOrUndefined(properties)) {
|
|
3743
4226
|
properties = {};
|
|
3744
4227
|
}
|
|
3745
4228
|
properties[durationProperty] = duration.toString();
|
|
3746
|
-
|
|
4229
|
+
var pageViewItem = {
|
|
4230
|
+
name: name,
|
|
4231
|
+
uri: url,
|
|
4232
|
+
properties: properties,
|
|
4233
|
+
measurements: measurements
|
|
4234
|
+
};
|
|
4235
|
+
_self.sendPageViewInternal(pageViewItem, properties);
|
|
3747
4236
|
};
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
properties = {};
|
|
4237
|
+
if (hasWindow()) {
|
|
4238
|
+
_updateExceptionTracking(extConfig);
|
|
4239
|
+
_updateLocationChange(extConfig);
|
|
3752
4240
|
}
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
var
|
|
3765
|
-
var
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
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;
|
|
4241
|
+
}
|
|
4242
|
+
catch (e) {
|
|
4243
|
+
_self.setInitialized(false);
|
|
4244
|
+
throw e;
|
|
4245
|
+
}
|
|
4246
|
+
};
|
|
4247
|
+
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
4248
|
+
eventOff(window, null, null, _evtNamespace);
|
|
4249
|
+
_initDefaults();
|
|
4250
|
+
};
|
|
4251
|
+
function _populateDefaults(config) {
|
|
4252
|
+
var ctx = createProcessTelemetryContext(null, config, _self.core);
|
|
4253
|
+
var identifier = _self.identifier;
|
|
4254
|
+
var defaults = _getDefaultConfig(config);
|
|
4255
|
+
var extConfig = _self.config = ctx.getExtCfg(identifier);
|
|
4256
|
+
if (defaults !== undefined) {
|
|
4257
|
+
objForEachKey(defaults, function (field, value) {
|
|
4258
|
+
extConfig[field] = ctx.getConfig(identifier, field, value);
|
|
4259
|
+
if (extConfig[field] === undefined) {
|
|
4260
|
+
extConfig = value;
|
|
3803
4261
|
}
|
|
3804
4262
|
});
|
|
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
4263
|
}
|
|
3843
|
-
|
|
3844
|
-
}
|
|
4264
|
+
return extConfig;
|
|
4265
|
+
}
|
|
4266
|
+
function _updateBrowserLinkTracking(extConfig, config) {
|
|
4267
|
+
_isBrowserLinkTrackingEnabled = extConfig.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled;
|
|
4268
|
+
_addDefaultTelemetryInitializers();
|
|
4269
|
+
}
|
|
3845
4270
|
function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {
|
|
3846
4271
|
var properties = { PageName: pageName, PageUrl: pageUrl };
|
|
3847
4272
|
_self.trackMetric({
|
|
@@ -3852,11 +4277,11 @@
|
|
|
3852
4277
|
sampleCount: 1
|
|
3853
4278
|
}, properties);
|
|
3854
4279
|
}
|
|
3855
|
-
function _addDefaultTelemetryInitializers(
|
|
3856
|
-
if (!
|
|
4280
|
+
function _addDefaultTelemetryInitializers() {
|
|
4281
|
+
if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {
|
|
3857
4282
|
var browserLinkPaths_1 = ["/browserLinkSignalR/", "/__browserLink/"];
|
|
3858
4283
|
var dropBrowserLinkRequests = function (envelope) {
|
|
3859
|
-
if (envelope.baseType === RemoteDependencyData.dataType) {
|
|
4284
|
+
if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData.dataType) {
|
|
3860
4285
|
var remoteData = envelope.baseData;
|
|
3861
4286
|
if (remoteData) {
|
|
3862
4287
|
for (var i = 0; i < browserLinkPaths_1.length; i++) {
|
|
@@ -3868,72 +4293,150 @@
|
|
|
3868
4293
|
}
|
|
3869
4294
|
return true;
|
|
3870
4295
|
};
|
|
3871
|
-
|
|
4296
|
+
_self.addTelemetryInitializer(dropBrowserLinkRequests);
|
|
4297
|
+
_browserLinkInitializerAdded = true;
|
|
3872
4298
|
}
|
|
3873
4299
|
}
|
|
3874
|
-
function _addTelemetryInitializer(telemetryInitializer) {
|
|
3875
|
-
_self._telemetryInitializers.push(telemetryInitializer);
|
|
3876
|
-
}
|
|
3877
4300
|
function _sendCORSException(exception, properties) {
|
|
3878
4301
|
var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);
|
|
3879
4302
|
_self.core.track(telemetryItem);
|
|
3880
4303
|
}
|
|
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);
|
|
4304
|
+
function _updateExceptionTracking(extConfig) {
|
|
4305
|
+
var _window = getWindow();
|
|
4306
|
+
var locn = getLocation(true);
|
|
4307
|
+
_disableExceptionTracking = extConfig.disableExceptionTracking;
|
|
4308
|
+
if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {
|
|
4309
|
+
_addHook(InstrumentFunc(_window, "onerror", {
|
|
4310
|
+
ns: _evtNamespace,
|
|
4311
|
+
rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {
|
|
4312
|
+
if (!_disableExceptionTracking && callDetails.rslt !== true) {
|
|
4313
|
+
_self._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, callDetails.evt));
|
|
4314
|
+
}
|
|
4315
|
+
}
|
|
4316
|
+
}));
|
|
4317
|
+
_autoExceptionInstrumented = true;
|
|
4318
|
+
}
|
|
4319
|
+
_addUnhandledPromiseRejectionTracking(extConfig, _window, locn);
|
|
3916
4320
|
}
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
4321
|
+
function _updateLocationChange(extConfig) {
|
|
4322
|
+
var win = getWindow();
|
|
4323
|
+
var locn = getLocation(true);
|
|
4324
|
+
_enableAutoRouteTracking = extConfig.enableAutoRouteTracking === true;
|
|
4325
|
+
if (win && _enableAutoRouteTracking && hasHistory()) {
|
|
4326
|
+
var _history = getHistory();
|
|
4327
|
+
if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strShimUndefined) {
|
|
4328
|
+
_addHistoryListener(extConfig, win, _history, locn);
|
|
4329
|
+
}
|
|
4330
|
+
}
|
|
3923
4331
|
}
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
4332
|
+
function _addHistoryListener(extConfig, win, history, locn) {
|
|
4333
|
+
function _popstateHandler() {
|
|
4334
|
+
if (_enableAutoRouteTracking) {
|
|
4335
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
4336
|
+
}
|
|
4337
|
+
}
|
|
4338
|
+
function _locationChangeHandler() {
|
|
4339
|
+
if (_currUri) {
|
|
4340
|
+
_prevUri = _currUri;
|
|
4341
|
+
_currUri = locn && locn.href || "";
|
|
4342
|
+
}
|
|
4343
|
+
else {
|
|
4344
|
+
_currUri = locn && locn.href || "";
|
|
4345
|
+
}
|
|
4346
|
+
if (_enableAutoRouteTracking) {
|
|
4347
|
+
var properties = _self.core.getPlugin(PropertiesPluginIdentifier);
|
|
4348
|
+
if (properties) {
|
|
4349
|
+
var context = properties.plugin.context;
|
|
4350
|
+
if (context && context.telemetryTrace) {
|
|
4351
|
+
context.telemetryTrace.traceID = generateW3CId();
|
|
4352
|
+
var traceLocationName = "_unknown_";
|
|
4353
|
+
if (locn && locn.pathname) {
|
|
4354
|
+
traceLocationName = locn.pathname + (locn.hash || "");
|
|
4355
|
+
}
|
|
4356
|
+
context.telemetryTrace.name = dataSanitizeString(_self.diagLog(), traceLocationName);
|
|
4357
|
+
}
|
|
4358
|
+
}
|
|
4359
|
+
setTimeout((function (uri) {
|
|
4360
|
+
_self.trackPageView({ refUri: uri, properties: { duration: 0 } });
|
|
4361
|
+
}).bind(this, _prevUri), _self.autoRoutePVDelay);
|
|
4362
|
+
}
|
|
4363
|
+
}
|
|
4364
|
+
if (!_historyListenerAdded) {
|
|
4365
|
+
_addHook(InstrumentFunc(history, "pushState", {
|
|
4366
|
+
ns: _evtNamespace,
|
|
4367
|
+
rsp: function () {
|
|
4368
|
+
if (_enableAutoRouteTracking) {
|
|
4369
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "pushState"));
|
|
4370
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
4371
|
+
}
|
|
4372
|
+
}
|
|
4373
|
+
}));
|
|
4374
|
+
_addHook(InstrumentFunc(history, "replaceState", {
|
|
4375
|
+
ns: _evtNamespace,
|
|
4376
|
+
rsp: function () {
|
|
4377
|
+
if (_enableAutoRouteTracking) {
|
|
4378
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "replaceState"));
|
|
4379
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
4380
|
+
}
|
|
4381
|
+
}
|
|
4382
|
+
}));
|
|
4383
|
+
eventOn(win, extConfig.namePrefix + "popstate", _popstateHandler, _evtNamespace);
|
|
4384
|
+
eventOn(win, extConfig.namePrefix + "locationchange", _locationChangeHandler, _evtNamespace);
|
|
4385
|
+
_historyListenerAdded = true;
|
|
4386
|
+
}
|
|
3928
4387
|
}
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
4388
|
+
function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {
|
|
4389
|
+
_enableUnhandledPromiseRejectionTracking = extConfig.enableUnhandledPromiseRejectionTracking === true;
|
|
4390
|
+
if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {
|
|
4391
|
+
_addHook(InstrumentFunc(_window, "onunhandledrejection", {
|
|
4392
|
+
ns: _evtNamespace,
|
|
4393
|
+
rsp: function (callDetails, error) {
|
|
4394
|
+
if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) {
|
|
4395
|
+
_self._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, callDetails.evt));
|
|
4396
|
+
}
|
|
4397
|
+
}
|
|
4398
|
+
}));
|
|
4399
|
+
_autoUnhandledPromiseInstrumented = true;
|
|
4400
|
+
extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;
|
|
4401
|
+
}
|
|
4402
|
+
}
|
|
4403
|
+
function _throwInternal(severity, msgId, msg, properties, isUserAct) {
|
|
4404
|
+
_self.diagLog().throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
4405
|
+
}
|
|
4406
|
+
function _initDefaults() {
|
|
4407
|
+
_eventTracking = null;
|
|
4408
|
+
_pageTracking = null;
|
|
4409
|
+
_pageViewManager = null;
|
|
4410
|
+
_pageViewPerformanceManager = null;
|
|
4411
|
+
_pageVisitTimeManager = null;
|
|
4412
|
+
_preInitTelemetryInitializers = null;
|
|
4413
|
+
_isBrowserLinkTrackingEnabled = false;
|
|
4414
|
+
_browserLinkInitializerAdded = false;
|
|
4415
|
+
_enableAutoRouteTracking = false;
|
|
4416
|
+
_historyListenerAdded = false;
|
|
4417
|
+
_disableExceptionTracking = false;
|
|
4418
|
+
_autoExceptionInstrumented = false;
|
|
4419
|
+
_enableUnhandledPromiseRejectionTracking = false;
|
|
4420
|
+
_autoUnhandledPromiseInstrumented = false;
|
|
4421
|
+
var location = getLocation(true);
|
|
4422
|
+
_prevUri = location && location.href || "";
|
|
4423
|
+
_currUri = null;
|
|
4424
|
+
_evtNamespace = null;
|
|
4425
|
+
}
|
|
4426
|
+
objDefineAccessors(_self, "_pageViewManager", function () { return _pageViewManager; });
|
|
4427
|
+
objDefineAccessors(_self, "_pageViewPerformanceManager", function () { return _pageViewPerformanceManager; });
|
|
4428
|
+
objDefineAccessors(_self, "_pageVisitTimeManager", function () { return _pageVisitTimeManager; });
|
|
4429
|
+
objDefineAccessors(_self, "_evtNamespace", function () { return "." + _evtNamespace; });
|
|
4430
|
+
});
|
|
4431
|
+
return _this;
|
|
3932
4432
|
}
|
|
3933
|
-
|
|
3934
|
-
|
|
4433
|
+
AnalyticsPlugin.Version = "2.8.0-beta.2203-05";
|
|
4434
|
+
AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;
|
|
4435
|
+
return AnalyticsPlugin;
|
|
4436
|
+
}(BaseTelemetryPlugin));
|
|
3935
4437
|
|
|
3936
|
-
exports.
|
|
4438
|
+
exports.AnalyticsPlugin = AnalyticsPlugin;
|
|
4439
|
+
exports.ApplicationInsights = AnalyticsPlugin;
|
|
3937
4440
|
|
|
3938
4441
|
(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
4442
|
|