@microsoft/applicationinsights-analytics-js 3.4.0-nightlybeta3.2505-36 → 3.4.0-nightlybeta3.2507-23
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/es5/applicationinsights-analytics-js.cjs.js +471 -422
- package/browser/es5/applicationinsights-analytics-js.cjs.js.map +1 -1
- package/browser/es5/applicationinsights-analytics-js.cjs.min.js +2 -2
- package/browser/es5/applicationinsights-analytics-js.cjs.min.js.map +1 -1
- package/browser/es5/applicationinsights-analytics-js.gbl.js +473 -424
- package/browser/es5/applicationinsights-analytics-js.gbl.js.map +1 -1
- package/browser/es5/applicationinsights-analytics-js.gbl.min.js +2 -2
- package/browser/es5/applicationinsights-analytics-js.gbl.min.js.map +1 -1
- package/browser/es5/applicationinsights-analytics-js.integrity.json +25 -25
- package/browser/es5/applicationinsights-analytics-js.js +473 -424
- package/browser/es5/applicationinsights-analytics-js.js.map +1 -1
- package/browser/es5/applicationinsights-analytics-js.min.js +2 -2
- package/browser/es5/applicationinsights-analytics-js.min.js.map +1 -1
- package/dist/es5/applicationinsights-analytics-js.js +471 -422
- package/dist/es5/applicationinsights-analytics-js.js.map +1 -1
- package/dist/es5/applicationinsights-analytics-js.min.js +2 -2
- package/dist/es5/applicationinsights-analytics-js.min.js.map +1 -1
- package/dist-es5/JavaScriptSDK/AnalyticsPlugin.js +40 -41
- package/dist-es5/JavaScriptSDK/AnalyticsPlugin.js.map +1 -1
- package/dist-es5/JavaScriptSDK/Interfaces/IAnalyticsConfig.js +8 -0
- package/dist-es5/JavaScriptSDK/Interfaces/IAnalyticsConfig.js.map +1 -0
- package/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js +175 -178
- package/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js.map +1 -1
- package/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js +86 -96
- package/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js.map +1 -1
- package/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js +85 -92
- package/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js.map +1 -1
- package/dist-es5/JavaScriptSDK/Timing.js +18 -15
- package/dist-es5/JavaScriptSDK/Timing.js.map +1 -1
- package/dist-es5/__DynamicConstants.js +7 -4
- package/dist-es5/__DynamicConstants.js.map +1 -1
- package/dist-es5/applicationinsights-analytics-js.js +1 -1
- package/package.json +5 -5
- package/types/applicationinsights-analytics-js.d.ts +100 -1
- package/types/applicationinsights-analytics-js.namespaced.d.ts +381 -14
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Web Analytics, 3.4.0-nightlybeta3.
|
|
2
|
+
* Application Insights JavaScript SDK - Web Analytics, 3.4.0-nightlybeta3.2507-23
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
typeof exports === "object" && typeof module !== undef ? factory(exports) :
|
|
8
8
|
typeof define === "function" && define.amd ? define(["exports"], factory) :
|
|
9
9
|
(function(global){
|
|
10
|
-
var nsKey, key, nm, theExports = {}, modName = "
|
|
11
|
-
var mods={}, modDetail=mods[modName]={}, ver="3.4.0-nightlybeta3.
|
|
10
|
+
var nsKey, key, nm, theExports = {}, modName = "es5_applicationinsights_analytics_js_3_4_0_nightlybeta3_2507_23", msMod="__ms$mod__";
|
|
11
|
+
var mods={}, modDetail=mods[modName]={}, ver="3.4.0-nightlybeta3.2507-23";
|
|
12
12
|
var baseNs=global, nsKey="Microsoft", baseNs=baseNs[nsKey]=(baseNs[nsKey]||{});
|
|
13
13
|
// Versioned namespace "Microsoft.ApplicationInsights3"
|
|
14
14
|
var exportNs=baseNs, nsKey="ApplicationInsights3", exportNs=exportNs[nsKey]=(exportNs[nsKey]||{});
|
|
@@ -1222,6 +1222,8 @@ var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
|
|
|
1222
1222
|
var _DYN_USER_AGENT = "userAgent";
|
|
1223
1223
|
var _DYN_SPLIT$1 = "split";
|
|
1224
1224
|
var _DYN_REPLACE = "replace";
|
|
1225
|
+
var _DYN_SUBSTRING = "substring";
|
|
1226
|
+
var _DYN_INDEX_OF = "indexOf";
|
|
1225
1227
|
var _DYN_TYPE = "type";
|
|
1226
1228
|
var _DYN_EVT_NAME = "evtName";
|
|
1227
1229
|
var _DYN_IS_CHILD_EVT = "isChildEvt";
|
|
@@ -1256,6 +1258,8 @@ var STR_GET_PERF_MGR = "getPerfMgr";
|
|
|
1256
1258
|
var STR_DOMAIN = "domain";
|
|
1257
1259
|
var STR_PATH = "path";
|
|
1258
1260
|
var STR_NOT_DYNAMIC_ERROR = "Not dynamic - ";
|
|
1261
|
+
var STR_REDACTED = "REDACTED";
|
|
1262
|
+
var DEFAULT_SENSITIVE_PARAMS = ["sig", "Signature", "AWSAccessKeyId", "X-Goog-Signature"];
|
|
1259
1263
|
|
|
1260
1264
|
var strGetPrototypeOf = "getPrototypeOf";
|
|
1261
1265
|
var rCamelCase = /-([a-z])/g;
|
|
@@ -1383,6 +1387,110 @@ function isIE() {
|
|
|
1383
1387
|
}
|
|
1384
1388
|
return _isTrident;
|
|
1385
1389
|
}
|
|
1390
|
+
function redactUserInfo(url) {
|
|
1391
|
+
return url.replace(/^([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^:@]{1,200}):([^@]{1,200})@(.*)$/, "$1REDACTED:REDACTED@$4");
|
|
1392
|
+
}
|
|
1393
|
+
function redactQueryParameters(url, config) {
|
|
1394
|
+
var sensitiveParams;
|
|
1395
|
+
var questionMarkIndex = strIndexOf(url, "?");
|
|
1396
|
+
if (questionMarkIndex === -1) {
|
|
1397
|
+
return url;
|
|
1398
|
+
}
|
|
1399
|
+
if (config && config.redactQueryParams) {
|
|
1400
|
+
sensitiveParams = DEFAULT_SENSITIVE_PARAMS.concat(config.redactQueryParams);
|
|
1401
|
+
}
|
|
1402
|
+
else {
|
|
1403
|
+
sensitiveParams = DEFAULT_SENSITIVE_PARAMS;
|
|
1404
|
+
}
|
|
1405
|
+
var baseUrl = strSubstring(url, 0, questionMarkIndex + 1);
|
|
1406
|
+
var queryString = strSubstring(url, questionMarkIndex + 1);
|
|
1407
|
+
var fragment = STR_EMPTY;
|
|
1408
|
+
var hashIndex = strIndexOf(queryString, "#");
|
|
1409
|
+
if (hashIndex !== -1) {
|
|
1410
|
+
fragment = strSubstring(queryString, hashIndex);
|
|
1411
|
+
queryString = strSubstring(queryString, 0, hashIndex);
|
|
1412
|
+
}
|
|
1413
|
+
var hasPotentialSensitiveParam = false;
|
|
1414
|
+
for (var i = 0; i < sensitiveParams[_DYN_LENGTH$2 ]; i++) {
|
|
1415
|
+
var paramCheck = sensitiveParams[i] + "=";
|
|
1416
|
+
if (strIndexOf(queryString, paramCheck) !== -1) {
|
|
1417
|
+
hasPotentialSensitiveParam = true;
|
|
1418
|
+
break;
|
|
1419
|
+
}
|
|
1420
|
+
}
|
|
1421
|
+
if (!hasPotentialSensitiveParam) {
|
|
1422
|
+
return url;
|
|
1423
|
+
}
|
|
1424
|
+
var resultParts = [];
|
|
1425
|
+
var anyParamRedacted = false;
|
|
1426
|
+
if (queryString && queryString[_DYN_LENGTH$2 ]) {
|
|
1427
|
+
var pairs = queryString[_DYN_SPLIT$1 ]("&");
|
|
1428
|
+
for (var i = 0; i < pairs[_DYN_LENGTH$2 ]; i++) {
|
|
1429
|
+
var pair = pairs[i];
|
|
1430
|
+
if (!pair) {
|
|
1431
|
+
continue;
|
|
1432
|
+
}
|
|
1433
|
+
var equalsIndex = strIndexOf(pair, "=");
|
|
1434
|
+
if (equalsIndex === -1) {
|
|
1435
|
+
resultParts[_DYN_PUSH ](pair);
|
|
1436
|
+
}
|
|
1437
|
+
else {
|
|
1438
|
+
var paramName = pair[_DYN_SUBSTRING ](0, equalsIndex);
|
|
1439
|
+
var paramValue = pair[_DYN_SUBSTRING ](equalsIndex + 1);
|
|
1440
|
+
if (paramValue === STR_EMPTY) {
|
|
1441
|
+
resultParts[_DYN_PUSH ](pair);
|
|
1442
|
+
}
|
|
1443
|
+
else {
|
|
1444
|
+
var shouldRedact = false;
|
|
1445
|
+
for (var j = 0; j < sensitiveParams[_DYN_LENGTH$2 ]; j++) {
|
|
1446
|
+
if (paramName === sensitiveParams[j]) {
|
|
1447
|
+
shouldRedact = true;
|
|
1448
|
+
anyParamRedacted = true;
|
|
1449
|
+
break;
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
if (shouldRedact) {
|
|
1453
|
+
resultParts[_DYN_PUSH ](paramName + "=" + STR_REDACTED);
|
|
1454
|
+
}
|
|
1455
|
+
else {
|
|
1456
|
+
resultParts[_DYN_PUSH ](pair);
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
if (!anyParamRedacted) {
|
|
1463
|
+
return url;
|
|
1464
|
+
}
|
|
1465
|
+
return baseUrl + resultParts.join("&") + fragment;
|
|
1466
|
+
}
|
|
1467
|
+
function fieldRedaction(input, config) {
|
|
1468
|
+
if (!input || input[_DYN_INDEX_OF ](" ") !== -1) {
|
|
1469
|
+
return input;
|
|
1470
|
+
}
|
|
1471
|
+
var isRedactionDisabled = config && config.redactUrls === false;
|
|
1472
|
+
if (isRedactionDisabled) {
|
|
1473
|
+
return input;
|
|
1474
|
+
}
|
|
1475
|
+
var hasCredentials = strIndexOf(input, "@") !== -1;
|
|
1476
|
+
var hasQueryParams = strIndexOf(input, "?") !== -1;
|
|
1477
|
+
if (!hasCredentials && !hasQueryParams) {
|
|
1478
|
+
return input;
|
|
1479
|
+
}
|
|
1480
|
+
try {
|
|
1481
|
+
var result = input;
|
|
1482
|
+
if (hasCredentials) {
|
|
1483
|
+
result = redactUserInfo(input);
|
|
1484
|
+
}
|
|
1485
|
+
if (hasQueryParams) {
|
|
1486
|
+
result = redactQueryParameters(result, config);
|
|
1487
|
+
}
|
|
1488
|
+
return result;
|
|
1489
|
+
}
|
|
1490
|
+
catch (e) {
|
|
1491
|
+
return input;
|
|
1492
|
+
}
|
|
1493
|
+
}
|
|
1386
1494
|
|
|
1387
1495
|
var UInt32Mask = 0x100000000;
|
|
1388
1496
|
var MaxUInt32 = 0xffffffff;
|
|
@@ -1454,7 +1562,7 @@ function newId(maxLength) {
|
|
|
1454
1562
|
return result;
|
|
1455
1563
|
}
|
|
1456
1564
|
|
|
1457
|
-
var version = '3.4.0-nightlybeta3.
|
|
1565
|
+
var version = '3.4.0-nightlybeta3.2507-23';
|
|
1458
1566
|
var instanceName = "." + newId(6);
|
|
1459
1567
|
var _dataUid = 0;
|
|
1460
1568
|
function _canAcceptData(target) {
|
|
@@ -2120,6 +2228,54 @@ function onConfigChange(config, configHandler, logger) {
|
|
|
2120
2228
|
return createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
|
|
2121
2229
|
}
|
|
2122
2230
|
|
|
2231
|
+
function generateW3CId() {
|
|
2232
|
+
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
2233
|
+
var oct = STR_EMPTY, tmp;
|
|
2234
|
+
for (var a = 0; a < 4; a++) {
|
|
2235
|
+
tmp = random32();
|
|
2236
|
+
oct +=
|
|
2237
|
+
hexValues[tmp & 0xF] +
|
|
2238
|
+
hexValues[tmp >> 4 & 0xF] +
|
|
2239
|
+
hexValues[tmp >> 8 & 0xF] +
|
|
2240
|
+
hexValues[tmp >> 12 & 0xF] +
|
|
2241
|
+
hexValues[tmp >> 16 & 0xF] +
|
|
2242
|
+
hexValues[tmp >> 20 & 0xF] +
|
|
2243
|
+
hexValues[tmp >> 24 & 0xF] +
|
|
2244
|
+
hexValues[tmp >> 28 & 0xF];
|
|
2245
|
+
}
|
|
2246
|
+
var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
|
|
2247
|
+
return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
|
|
2248
|
+
}
|
|
2249
|
+
|
|
2250
|
+
function findAllScripts(doc) {
|
|
2251
|
+
var scripts = doc.getElementsByTagName("script");
|
|
2252
|
+
var result = [];
|
|
2253
|
+
arrForEach(scripts, function (script) {
|
|
2254
|
+
var src = script[_DYN_GET_ATTRIBUTE ]("src");
|
|
2255
|
+
if (src) {
|
|
2256
|
+
var crossOrigin = script[_DYN_GET_ATTRIBUTE ]("crossorigin");
|
|
2257
|
+
var async = script.hasAttribute("async") === true;
|
|
2258
|
+
var defer = script.hasAttribute("defer") === true;
|
|
2259
|
+
var referrerPolicy = script[_DYN_GET_ATTRIBUTE ]("referrerpolicy");
|
|
2260
|
+
var info = { url: src };
|
|
2261
|
+
if (crossOrigin) {
|
|
2262
|
+
info.crossOrigin = crossOrigin;
|
|
2263
|
+
}
|
|
2264
|
+
if (async) {
|
|
2265
|
+
info.async = async;
|
|
2266
|
+
}
|
|
2267
|
+
if (defer) {
|
|
2268
|
+
info.defer = defer;
|
|
2269
|
+
}
|
|
2270
|
+
if (referrerPolicy) {
|
|
2271
|
+
info.referrerPolicy = referrerPolicy;
|
|
2272
|
+
}
|
|
2273
|
+
result[_DYN_PUSH ](info);
|
|
2274
|
+
}
|
|
2275
|
+
});
|
|
2276
|
+
return result;
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2123
2279
|
function _stringToBoolOrDefault(theValue, defaultValue, theConfig) {
|
|
2124
2280
|
if (!theValue && isNullOrUndefined(theValue)) {
|
|
2125
2281
|
return defaultValue;
|
|
@@ -2769,68 +2925,6 @@ function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
|
2769
2925
|
return func();
|
|
2770
2926
|
}
|
|
2771
2927
|
|
|
2772
|
-
function generateW3CId() {
|
|
2773
|
-
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
2774
|
-
var oct = STR_EMPTY, tmp;
|
|
2775
|
-
for (var a = 0; a < 4; a++) {
|
|
2776
|
-
tmp = random32();
|
|
2777
|
-
oct +=
|
|
2778
|
-
hexValues[tmp & 0xF] +
|
|
2779
|
-
hexValues[tmp >> 4 & 0xF] +
|
|
2780
|
-
hexValues[tmp >> 8 & 0xF] +
|
|
2781
|
-
hexValues[tmp >> 12 & 0xF] +
|
|
2782
|
-
hexValues[tmp >> 16 & 0xF] +
|
|
2783
|
-
hexValues[tmp >> 20 & 0xF] +
|
|
2784
|
-
hexValues[tmp >> 24 & 0xF] +
|
|
2785
|
-
hexValues[tmp >> 28 & 0xF];
|
|
2786
|
-
}
|
|
2787
|
-
var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
|
|
2788
|
-
return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
|
|
2789
|
-
}
|
|
2790
|
-
|
|
2791
|
-
var INVALID_TRACE_ID = "00000000000000000000000000000000";
|
|
2792
|
-
var INVALID_SPAN_ID = "0000000000000000";
|
|
2793
|
-
function _isValid(value, len, invalidValue) {
|
|
2794
|
-
if (value && value[_DYN_LENGTH$2 ] === len && value !== invalidValue) {
|
|
2795
|
-
return !!value.match(/^[\da-f]*$/i);
|
|
2796
|
-
}
|
|
2797
|
-
return false;
|
|
2798
|
-
}
|
|
2799
|
-
function isValidTraceId(value) {
|
|
2800
|
-
return _isValid(value, 32, INVALID_TRACE_ID);
|
|
2801
|
-
}
|
|
2802
|
-
function isValidSpanId(value) {
|
|
2803
|
-
return _isValid(value, 16, INVALID_SPAN_ID);
|
|
2804
|
-
}
|
|
2805
|
-
function findAllScripts(doc) {
|
|
2806
|
-
var scripts = doc.getElementsByTagName("script");
|
|
2807
|
-
var result = [];
|
|
2808
|
-
arrForEach(scripts, function (script) {
|
|
2809
|
-
var src = script[_DYN_GET_ATTRIBUTE ]("src");
|
|
2810
|
-
if (src) {
|
|
2811
|
-
var crossOrigin = script[_DYN_GET_ATTRIBUTE ]("crossorigin");
|
|
2812
|
-
var async = script.hasAttribute("async") === true;
|
|
2813
|
-
var defer = script.hasAttribute("defer") === true;
|
|
2814
|
-
var referrerPolicy = script[_DYN_GET_ATTRIBUTE ]("referrerpolicy");
|
|
2815
|
-
var info = { url: src };
|
|
2816
|
-
if (crossOrigin) {
|
|
2817
|
-
info.crossOrigin = crossOrigin;
|
|
2818
|
-
}
|
|
2819
|
-
if (async) {
|
|
2820
|
-
info.async = async;
|
|
2821
|
-
}
|
|
2822
|
-
if (defer) {
|
|
2823
|
-
info.defer = defer;
|
|
2824
|
-
}
|
|
2825
|
-
if (referrerPolicy) {
|
|
2826
|
-
info.referrerPolicy = referrerPolicy;
|
|
2827
|
-
}
|
|
2828
|
-
result[_DYN_PUSH ](info);
|
|
2829
|
-
}
|
|
2830
|
-
});
|
|
2831
|
-
return result;
|
|
2832
|
-
}
|
|
2833
|
-
|
|
2834
2928
|
var pluginStateData = createElmNodeData("plugin");
|
|
2835
2929
|
function _getPluginState(plugin) {
|
|
2836
2930
|
return pluginStateData.get(plugin, "state", {}, true);
|
|
@@ -2919,27 +3013,26 @@ function _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {
|
|
|
2919
3013
|
}
|
|
2920
3014
|
function _getExtCfg(identifier, createIfMissing) {
|
|
2921
3015
|
var idCfg = null;
|
|
2922
|
-
var
|
|
3016
|
+
var extCfg = _getCfg(dynamicHandler.cfg, "extensionConfig", createIfMissing);
|
|
3017
|
+
if (extCfg) {
|
|
3018
|
+
idCfg = _getCfg(extCfg, identifier, createIfMissing);
|
|
3019
|
+
}
|
|
3020
|
+
return idCfg;
|
|
3021
|
+
}
|
|
3022
|
+
function _getCfg(cfg, identifier, createIfMissing) {
|
|
3023
|
+
var idCfg = null;
|
|
2923
3024
|
if (cfg && identifier) {
|
|
2924
|
-
|
|
2925
|
-
if (!
|
|
2926
|
-
|
|
2927
|
-
}
|
|
2928
|
-
cfg[STR_EXTENSION_CONFIG] = extCfg;
|
|
2929
|
-
extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);
|
|
2930
|
-
if (extCfg) {
|
|
2931
|
-
idCfg = extCfg[identifier];
|
|
2932
|
-
if (!idCfg && createIfMissing) {
|
|
2933
|
-
idCfg = {};
|
|
2934
|
-
}
|
|
2935
|
-
extCfg[identifier] = idCfg;
|
|
2936
|
-
idCfg = dynamicHandler.ref(extCfg, identifier);
|
|
3025
|
+
idCfg = cfg[identifier];
|
|
3026
|
+
if (!idCfg && createIfMissing) {
|
|
3027
|
+
idCfg = {};
|
|
2937
3028
|
}
|
|
3029
|
+
cfg[identifier] = idCfg;
|
|
3030
|
+
idCfg = dynamicHandler.ref(cfg, identifier);
|
|
2938
3031
|
}
|
|
2939
3032
|
return idCfg;
|
|
2940
3033
|
}
|
|
2941
|
-
function _resolveExtCfg(identifier, defaultValues) {
|
|
2942
|
-
var newConfig = _getExtCfg(identifier, true);
|
|
3034
|
+
function _resolveExtCfg(identifier, defaultValues, rootOnly) {
|
|
3035
|
+
var newConfig = rootOnly ? _getCfg(dynamicHandler.cfg, identifier, true) : _getExtCfg(identifier, true);
|
|
2943
3036
|
if (defaultValues) {
|
|
2944
3037
|
objForEachKey(defaultValues, function (field, defaultValue) {
|
|
2945
3038
|
if (isNullOrUndefined(newConfig[field])) {
|
|
@@ -3760,7 +3853,10 @@ function dataSanitizeString(logger, value, maxLength) {
|
|
|
3760
3853
|
}
|
|
3761
3854
|
return valueTrunc || value;
|
|
3762
3855
|
}
|
|
3763
|
-
function dataSanitizeUrl(logger, url) {
|
|
3856
|
+
function dataSanitizeUrl(logger, url, config) {
|
|
3857
|
+
if (isString(url)) {
|
|
3858
|
+
url = fieldRedaction(url, config);
|
|
3859
|
+
}
|
|
3764
3860
|
return dataSanitizeInput(logger, url, 2048 , 66 );
|
|
3765
3861
|
}
|
|
3766
3862
|
function dataSanitizeMessage(logger, message) {
|
|
@@ -3923,48 +4019,11 @@ function dateTimeUtilsDuration(start, end) {
|
|
|
3923
4019
|
}
|
|
3924
4020
|
return result;
|
|
3925
4021
|
}
|
|
3926
|
-
function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {
|
|
3927
|
-
var trace = telemetryTrace || {};
|
|
3928
|
-
return {
|
|
3929
|
-
getName: function () {
|
|
3930
|
-
return trace[_DYN_NAME ];
|
|
3931
|
-
},
|
|
3932
|
-
setName: function (newValue) {
|
|
3933
|
-
parentCtx && parentCtx.setName(newValue);
|
|
3934
|
-
trace[_DYN_NAME ] = newValue;
|
|
3935
|
-
},
|
|
3936
|
-
getTraceId: function () {
|
|
3937
|
-
return trace.traceID;
|
|
3938
|
-
},
|
|
3939
|
-
setTraceId: function (newValue) {
|
|
3940
|
-
parentCtx && parentCtx.setTraceId(newValue);
|
|
3941
|
-
if (isValidTraceId(newValue)) {
|
|
3942
|
-
trace.traceID = newValue;
|
|
3943
|
-
}
|
|
3944
|
-
},
|
|
3945
|
-
getSpanId: function () {
|
|
3946
|
-
return trace.parentID;
|
|
3947
|
-
},
|
|
3948
|
-
setSpanId: function (newValue) {
|
|
3949
|
-
parentCtx && parentCtx.setSpanId(newValue);
|
|
3950
|
-
if (isValidSpanId(newValue)) {
|
|
3951
|
-
trace.parentID = newValue;
|
|
3952
|
-
}
|
|
3953
|
-
},
|
|
3954
|
-
getTraceFlags: function () {
|
|
3955
|
-
return trace.traceFlags;
|
|
3956
|
-
},
|
|
3957
|
-
setTraceFlags: function (newTraceFlags) {
|
|
3958
|
-
parentCtx && parentCtx.setTraceFlags(newTraceFlags);
|
|
3959
|
-
trace.traceFlags = newTraceFlags;
|
|
3960
|
-
}
|
|
3961
|
-
};
|
|
3962
|
-
}
|
|
3963
4022
|
|
|
3964
|
-
var StorageType = createEnumStyle({
|
|
4023
|
+
var StorageType = ( /* @__PURE__ */createEnumStyle({
|
|
3965
4024
|
LocalStorage: 0 ,
|
|
3966
4025
|
SessionStorage: 1
|
|
3967
|
-
});
|
|
4026
|
+
}));
|
|
3968
4027
|
|
|
3969
4028
|
var _canUseLocalStorage = undefined;
|
|
3970
4029
|
var _canUseSessionStorage = undefined;
|
|
@@ -4897,7 +4956,6 @@ function createDomEvent(eventName) {
|
|
|
4897
4956
|
return event;
|
|
4898
4957
|
}
|
|
4899
4958
|
|
|
4900
|
-
var PropertiesPluginIdentifier = "AppInsightsPropertiesPlugin";
|
|
4901
4959
|
var AnalyticsPluginIdentifier = "ApplicationInsightsAnalytics";
|
|
4902
4960
|
|
|
4903
4961
|
var _DYN_TO_STRING = "toString";
|
|
@@ -4909,8 +4967,10 @@ var _DYN_ENVELOPE_TYPE = "envelopeType";
|
|
|
4909
4967
|
var _DYN_DIAG_LOG = "diagLog";
|
|
4910
4968
|
var _DYN_TRACK = "track";
|
|
4911
4969
|
var _DYN_TRACK_PAGE_VIEW = "trackPageView";
|
|
4970
|
+
var _DYN_CONFIG = "config";
|
|
4912
4971
|
var _DYN_TRACK_PREVIOUS_PAGE_1 = "trackPreviousPageVisit";
|
|
4913
4972
|
var _DYN_SEND_PAGE_VIEW_INTER2 = "sendPageViewInternal";
|
|
4973
|
+
var _DYN_REF_URI = "refUri";
|
|
4914
4974
|
var _DYN_START_TIME = "startTime";
|
|
4915
4975
|
var _DYN_PROPERTIES = "properties";
|
|
4916
4976
|
var _DYN_DURATION = "duration";
|
|
@@ -4942,168 +5002,168 @@ var _DYN_REQUEST_START = "requestStart";
|
|
|
4942
5002
|
var _DYN_LOAD_EVENT_END = "loadEventEnd";
|
|
4943
5003
|
var _DYN_RESPONSE_END = "responseEnd";
|
|
4944
5004
|
var _DYN_CONNECT_END = "connectEnd";
|
|
5005
|
+
var _DYN_PAGE_VISIT_TIME = "pageVisitTime";
|
|
4945
5006
|
|
|
4946
|
-
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
|
|
4954
|
-
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
function
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
function
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
if (!item()) {
|
|
4972
|
-
itemQueue.push(item);
|
|
4973
|
-
}
|
|
4974
|
-
else {
|
|
4975
|
-
doFlush = true;
|
|
4976
|
-
}
|
|
4977
|
-
});
|
|
4978
|
-
if (itemQueue[_DYN_LENGTH ] > 0) {
|
|
4979
|
-
_startTimer();
|
|
4980
|
-
}
|
|
4981
|
-
if (doFlush) {
|
|
4982
|
-
_flushChannels(true);
|
|
4983
|
-
}
|
|
4984
|
-
}), 100);
|
|
4985
|
-
}
|
|
4986
|
-
}
|
|
4987
|
-
function _addQueue(cb) {
|
|
4988
|
-
itemQueue.push(cb);
|
|
4989
|
-
_startTimer();
|
|
4990
|
-
}
|
|
4991
|
-
_self[_DYN_TRACK_PAGE_VIEW ] = function (pageView, customProperties) {
|
|
4992
|
-
var name = pageView.name;
|
|
4993
|
-
if (isNullOrUndefined(name) || typeof name !== "string") {
|
|
4994
|
-
var doc = getDocument();
|
|
4995
|
-
name = pageView.name = doc && doc.title || "";
|
|
4996
|
-
}
|
|
4997
|
-
var uri = pageView.uri;
|
|
4998
|
-
if (isNullOrUndefined(uri) || typeof uri !== "string") {
|
|
4999
|
-
var location_1 = getLocation();
|
|
5000
|
-
uri = pageView.uri = location_1 && location_1[_DYN_HREF ] || "";
|
|
5001
|
-
}
|
|
5002
|
-
if (!firstPageViewSent) {
|
|
5003
|
-
var perf = getPerformance();
|
|
5004
|
-
var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE ] && perf[_DYN_GET_ENTRIES_BY_TYPE ]("navigation"));
|
|
5005
|
-
if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {
|
|
5006
|
-
var loadEventStart = navigationEntries[0].loadEventStart;
|
|
5007
|
-
pageView[_DYN_START_TIME ] = new Date(perf.timeOrigin + loadEventStart);
|
|
5007
|
+
function createPageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {
|
|
5008
|
+
var queueTimer = null;
|
|
5009
|
+
var itemQueue = [];
|
|
5010
|
+
var pageViewPerformanceSent = false;
|
|
5011
|
+
var firstPageViewSent = false;
|
|
5012
|
+
var _logger;
|
|
5013
|
+
if (core) {
|
|
5014
|
+
_logger = core.logger;
|
|
5015
|
+
}
|
|
5016
|
+
function _flushChannels(isAsync) {
|
|
5017
|
+
if (core) {
|
|
5018
|
+
core.flush(isAsync, function () {
|
|
5019
|
+
});
|
|
5020
|
+
}
|
|
5021
|
+
}
|
|
5022
|
+
function _startTimer() {
|
|
5023
|
+
if (!queueTimer) {
|
|
5024
|
+
queueTimer = scheduleTimeout((function () {
|
|
5025
|
+
queueTimer = null;
|
|
5026
|
+
var allItems = itemQueue.slice(0);
|
|
5027
|
+
var doFlush = false;
|
|
5028
|
+
itemQueue = [];
|
|
5029
|
+
arrForEach(allItems, function (item) {
|
|
5030
|
+
if (!item()) {
|
|
5031
|
+
itemQueue.push(item);
|
|
5008
5032
|
}
|
|
5009
5033
|
else {
|
|
5010
|
-
|
|
5011
|
-
pageView[_DYN_START_TIME ] = new Date(new Date().getTime() - duration_1);
|
|
5034
|
+
doFlush = true;
|
|
5012
5035
|
}
|
|
5013
|
-
|
|
5036
|
+
});
|
|
5037
|
+
if (itemQueue[_DYN_LENGTH ] > 0) {
|
|
5038
|
+
_startTimer();
|
|
5014
5039
|
}
|
|
5015
|
-
if (
|
|
5016
|
-
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5040
|
+
if (doFlush) {
|
|
5017
5041
|
_flushChannels(true);
|
|
5018
|
-
if (!isWebWorker()) {
|
|
5019
|
-
_throwInternal(_logger, 2 , 25 , "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.");
|
|
5020
|
-
}
|
|
5021
|
-
return;
|
|
5022
5042
|
}
|
|
5023
|
-
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
|
|
5028
|
-
|
|
5029
|
-
|
|
5030
|
-
|
|
5043
|
+
}), 100);
|
|
5044
|
+
}
|
|
5045
|
+
}
|
|
5046
|
+
function _addQueue(cb) {
|
|
5047
|
+
itemQueue.push(cb);
|
|
5048
|
+
_startTimer();
|
|
5049
|
+
}
|
|
5050
|
+
return {
|
|
5051
|
+
trackPageView: function (pageView, customProperties) {
|
|
5052
|
+
var name = pageView.name;
|
|
5053
|
+
if (isNullOrUndefined(name) || typeof name !== "string") {
|
|
5054
|
+
var doc = getDocument();
|
|
5055
|
+
name = pageView.name = doc && doc.title || "";
|
|
5056
|
+
}
|
|
5057
|
+
var uri = pageView.uri;
|
|
5058
|
+
if (isNullOrUndefined(uri) || typeof uri !== "string") {
|
|
5059
|
+
var location_1 = getLocation();
|
|
5060
|
+
uri = pageView.uri = location_1 && location_1[_DYN_HREF ] || "";
|
|
5061
|
+
}
|
|
5062
|
+
if (core && core[_DYN_CONFIG ]) {
|
|
5063
|
+
uri = pageView.uri = fieldRedaction(pageView.uri, core[_DYN_CONFIG ]);
|
|
5064
|
+
}
|
|
5065
|
+
if (!firstPageViewSent) {
|
|
5066
|
+
var perf = getPerformance();
|
|
5067
|
+
var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE ] && perf[_DYN_GET_ENTRIES_BY_TYPE ]("navigation"));
|
|
5068
|
+
if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {
|
|
5069
|
+
var loadEventStart = navigationEntries[0].loadEventStart;
|
|
5070
|
+
pageView[_DYN_START_TIME ] = new Date(perf.timeOrigin + loadEventStart);
|
|
5031
5071
|
}
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
duration = customProperties[_DYN_DURATION ];
|
|
5072
|
+
else {
|
|
5073
|
+
var duration_1 = ((customProperties || pageView[_DYN_PROPERTIES ] || {})[_DYN_DURATION ] || 0);
|
|
5074
|
+
pageView[_DYN_START_TIME ] = new Date(new Date().getTime() - duration_1);
|
|
5036
5075
|
}
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
|
|
5044
|
-
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5045
|
-
_flushChannels(true);
|
|
5046
|
-
pageViewSent = true;
|
|
5076
|
+
firstPageViewSent = true;
|
|
5077
|
+
}
|
|
5078
|
+
if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN15 ]()) {
|
|
5079
|
+
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5080
|
+
_flushChannels(true);
|
|
5081
|
+
if (!isWebWorker()) {
|
|
5082
|
+
_throwInternal(_logger, 2 , 25 , "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.");
|
|
5047
5083
|
}
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5084
|
+
return;
|
|
5085
|
+
}
|
|
5086
|
+
var pageViewSent = false;
|
|
5087
|
+
var customDuration;
|
|
5088
|
+
var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI16 ]()[_DYN_NAVIGATION_START ];
|
|
5089
|
+
if (start > 0) {
|
|
5090
|
+
customDuration = dateTimeUtilsDuration(start, +new Date);
|
|
5091
|
+
if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT17 ](customDuration)) {
|
|
5092
|
+
customDuration = undefined;
|
|
5051
5093
|
}
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
5055
|
-
|
|
5056
|
-
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
|
|
5069
|
-
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5094
|
+
}
|
|
5095
|
+
var duration;
|
|
5096
|
+
if (!isNullOrUndefined(customProperties) &&
|
|
5097
|
+
!isNullOrUndefined(customProperties[_DYN_DURATION ])) {
|
|
5098
|
+
duration = customProperties[_DYN_DURATION ];
|
|
5099
|
+
}
|
|
5100
|
+
if (overridePageViewDuration || !isNaN(duration)) {
|
|
5101
|
+
if (isNaN(duration)) {
|
|
5102
|
+
if (!customProperties) {
|
|
5103
|
+
customProperties = {};
|
|
5104
|
+
}
|
|
5105
|
+
customProperties[_DYN_DURATION ] = customDuration;
|
|
5106
|
+
}
|
|
5107
|
+
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5108
|
+
_flushChannels(true);
|
|
5109
|
+
pageViewSent = true;
|
|
5110
|
+
}
|
|
5111
|
+
var maxDurationLimit = 60000;
|
|
5112
|
+
if (!customProperties) {
|
|
5113
|
+
customProperties = {};
|
|
5114
|
+
}
|
|
5115
|
+
_addQueue(function () {
|
|
5116
|
+
var processed = false;
|
|
5117
|
+
try {
|
|
5118
|
+
if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN18 ]()) {
|
|
5119
|
+
processed = true;
|
|
5120
|
+
var pageViewPerformance = {
|
|
5121
|
+
name: name,
|
|
5122
|
+
uri: uri
|
|
5123
|
+
};
|
|
5124
|
+
pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 ](pageViewPerformance);
|
|
5125
|
+
if (!pageViewPerformance.isValid && !pageViewSent) {
|
|
5126
|
+
customProperties[_DYN_DURATION ] = customDuration;
|
|
5127
|
+
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5076
5128
|
}
|
|
5077
|
-
else
|
|
5078
|
-
processed = true;
|
|
5129
|
+
else {
|
|
5079
5130
|
if (!pageViewSent) {
|
|
5080
|
-
customProperties[_DYN_DURATION ] =
|
|
5131
|
+
customProperties[_DYN_DURATION ] = pageViewPerformance.durationMs;
|
|
5081
5132
|
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5082
5133
|
}
|
|
5134
|
+
if (!pageViewPerformanceSent) {
|
|
5135
|
+
appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 ](pageViewPerformance, customProperties);
|
|
5136
|
+
pageViewPerformanceSent = true;
|
|
5137
|
+
}
|
|
5083
5138
|
}
|
|
5084
5139
|
}
|
|
5085
|
-
|
|
5086
|
-
|
|
5140
|
+
else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {
|
|
5141
|
+
processed = true;
|
|
5142
|
+
if (!pageViewSent) {
|
|
5143
|
+
customProperties[_DYN_DURATION ] = maxDurationLimit;
|
|
5144
|
+
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5145
|
+
}
|
|
5087
5146
|
}
|
|
5088
|
-
return processed;
|
|
5089
|
-
});
|
|
5090
|
-
};
|
|
5091
|
-
_self.teardown = function (unloadCtx, unloadState) {
|
|
5092
|
-
if (queueTimer) {
|
|
5093
|
-
queueTimer.cancel();
|
|
5094
|
-
queueTimer = null;
|
|
5095
|
-
var allItems = itemQueue.slice(0);
|
|
5096
|
-
itemQueue = [];
|
|
5097
|
-
arrForEach(allItems, function (item) {
|
|
5098
|
-
if (item()) ;
|
|
5099
|
-
});
|
|
5100
5147
|
}
|
|
5101
|
-
|
|
5102
|
-
|
|
5103
|
-
|
|
5104
|
-
|
|
5105
|
-
|
|
5106
|
-
}
|
|
5148
|
+
catch (e) {
|
|
5149
|
+
_throwInternal(_logger, 1 , 38 , "trackPageView failed on page load calculation: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5150
|
+
}
|
|
5151
|
+
return processed;
|
|
5152
|
+
});
|
|
5153
|
+
},
|
|
5154
|
+
teardown: function (unloadCtx, unloadState) {
|
|
5155
|
+
if (queueTimer) {
|
|
5156
|
+
queueTimer.cancel();
|
|
5157
|
+
queueTimer = null;
|
|
5158
|
+
var allItems = itemQueue.slice(0);
|
|
5159
|
+
itemQueue = [];
|
|
5160
|
+
arrForEach(allItems, function (item) {
|
|
5161
|
+
if (item()) ;
|
|
5162
|
+
});
|
|
5163
|
+
}
|
|
5164
|
+
}
|
|
5165
|
+
};
|
|
5166
|
+
}
|
|
5107
5167
|
|
|
5108
5168
|
var MAX_DURATION_ALLOWED = 3600000;
|
|
5109
5169
|
var botAgentNames = ["googlebot", "adsbot-google", "apis-google", "mediapartners-google"];
|
|
@@ -5165,143 +5225,136 @@ function _shouldCollectDuration() {
|
|
|
5165
5225
|
}
|
|
5166
5226
|
return true;
|
|
5167
5227
|
}
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
|
|
5174
|
-
|
|
5175
|
-
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
|
|
5179
|
-
|
|
5180
|
-
|
|
5181
|
-
|
|
5182
|
-
|
|
5183
|
-
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
}
|
|
5189
|
-
else {
|
|
5190
|
-
total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START ], timing[_DYN_LOAD_EVENT_END ]);
|
|
5191
|
-
network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START ], timing[_DYN_CONNECT_END ]);
|
|
5192
|
-
request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START ]);
|
|
5193
|
-
response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START ], timing[_DYN_RESPONSE_END ]);
|
|
5194
|
-
dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END ]);
|
|
5195
|
-
}
|
|
5196
|
-
if (total === 0) {
|
|
5197
|
-
_throwInternal(_logger, 2 , 10 , "error calculating page view performance.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5198
|
-
}
|
|
5199
|
-
else if (!_self[_DYN_SHOULD_COLLECT_DURAT17 ](total, network, request, response, dom)) {
|
|
5200
|
-
_throwInternal(_logger, 2 , 45 , "Invalid page load duration value. Browser perf data won't be sent.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5201
|
-
}
|
|
5202
|
-
else if (total < mathFloor(network) + mathFloor(request) + mathFloor(response) + mathFloor(dom)) {
|
|
5203
|
-
_throwInternal(_logger, 2 , 8 , "client performance math error.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5204
|
-
}
|
|
5205
|
-
else {
|
|
5206
|
-
pageViewPerformance.durationMs = total;
|
|
5207
|
-
pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION ] = msToTimeSpan(total);
|
|
5208
|
-
pageViewPerformance.networkConnect = msToTimeSpan(network);
|
|
5209
|
-
pageViewPerformance.sentRequest = msToTimeSpan(request);
|
|
5210
|
-
pageViewPerformance.receivedResponse = msToTimeSpan(response);
|
|
5211
|
-
pageViewPerformance.domProcessing = msToTimeSpan(dom);
|
|
5212
|
-
pageViewPerformance.isValid = true;
|
|
5213
|
-
}
|
|
5228
|
+
function createPageViewPerformanceManager(core) {
|
|
5229
|
+
var _a;
|
|
5230
|
+
var _logger = safeGetLogger(core);
|
|
5231
|
+
return _a = {},
|
|
5232
|
+
_a[_DYN_POPULATE_PAGE_VIEW_P4 ] = function (pageViewPerformance) {
|
|
5233
|
+
pageViewPerformance.isValid = false;
|
|
5234
|
+
var navigationTiming = _getPerformanceNavigationTiming();
|
|
5235
|
+
var timing = _getPerformanceTiming();
|
|
5236
|
+
var total = 0;
|
|
5237
|
+
var network = 0;
|
|
5238
|
+
var request = 0;
|
|
5239
|
+
var response = 0;
|
|
5240
|
+
var dom = 0;
|
|
5241
|
+
if (navigationTiming || timing) {
|
|
5242
|
+
if (navigationTiming) {
|
|
5243
|
+
total = navigationTiming[_DYN_DURATION ];
|
|
5244
|
+
network = navigationTiming[_DYN_START_TIME ] === 0 ? navigationTiming[_DYN_CONNECT_END ] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME ], navigationTiming[_DYN_CONNECT_END ]);
|
|
5245
|
+
request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START ]);
|
|
5246
|
+
response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START ], navigationTiming[_DYN_RESPONSE_END ]);
|
|
5247
|
+
dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END ]);
|
|
5214
5248
|
}
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
}
|
|
5222
|
-
PageViewPerformanceManager.__ieDyn=1;
|
|
5223
|
-
return PageViewPerformanceManager;
|
|
5224
|
-
}());
|
|
5225
|
-
|
|
5226
|
-
var PageVisitTimeManager = /** @class */ (function () {
|
|
5227
|
-
function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {
|
|
5228
|
-
var prevPageVisitDataKeyName = "prevPageVisitData";
|
|
5229
|
-
dynamicProto(PageVisitTimeManager, this, function (_self) {
|
|
5230
|
-
_self[_DYN_TRACK_PREVIOUS_PAGE_1 ] = function (currentPageName, currentPageUrl) {
|
|
5231
|
-
try {
|
|
5232
|
-
var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);
|
|
5233
|
-
if (prevPageVisitTimeData) {
|
|
5234
|
-
pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);
|
|
5235
|
-
}
|
|
5249
|
+
else {
|
|
5250
|
+
total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START ], timing[_DYN_LOAD_EVENT_END ]);
|
|
5251
|
+
network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START ], timing[_DYN_CONNECT_END ]);
|
|
5252
|
+
request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START ]);
|
|
5253
|
+
response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START ], timing[_DYN_RESPONSE_END ]);
|
|
5254
|
+
dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END ]);
|
|
5236
5255
|
}
|
|
5237
|
-
|
|
5238
|
-
|
|
5256
|
+
if (total === 0) {
|
|
5257
|
+
_throwInternal(_logger, 2 , 10 , "error calculating page view performance.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5239
5258
|
}
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
var prevPageVisitData = null;
|
|
5243
|
-
try {
|
|
5244
|
-
prevPageVisitData = stopPageVisitTimer();
|
|
5245
|
-
if (utlCanUseSessionStorage()) {
|
|
5246
|
-
if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {
|
|
5247
|
-
throwError("Cannot call startPageVisit consecutively without first calling stopPageVisit");
|
|
5248
|
-
}
|
|
5249
|
-
var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));
|
|
5250
|
-
utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);
|
|
5251
|
-
}
|
|
5259
|
+
else if (!_shouldCollectDuration(total, network, request, response, dom)) {
|
|
5260
|
+
_throwInternal(_logger, 2 , 45 , "Invalid page load duration value. Browser perf data won't be sent.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5252
5261
|
}
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
prevPageVisitData = null;
|
|
5262
|
+
else if (total < mathFloor(network) + mathFloor(request) + mathFloor(response) + mathFloor(dom)) {
|
|
5263
|
+
_throwInternal(_logger, 2 , 8 , "client performance math error.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5256
5264
|
}
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
if (pageVisitDataJsonStr && hasJSON()) {
|
|
5266
|
-
prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);
|
|
5267
|
-
prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;
|
|
5268
|
-
utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);
|
|
5269
|
-
}
|
|
5270
|
-
}
|
|
5265
|
+
else {
|
|
5266
|
+
pageViewPerformance.durationMs = total;
|
|
5267
|
+
pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION ] = msToTimeSpan(total);
|
|
5268
|
+
pageViewPerformance.networkConnect = msToTimeSpan(network);
|
|
5269
|
+
pageViewPerformance.sentRequest = msToTimeSpan(request);
|
|
5270
|
+
pageViewPerformance.receivedResponse = msToTimeSpan(response);
|
|
5271
|
+
pageViewPerformance.domProcessing = msToTimeSpan(dom);
|
|
5272
|
+
pageViewPerformance.isValid = true;
|
|
5271
5273
|
}
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
|
|
5274
|
+
}
|
|
5275
|
+
},
|
|
5276
|
+
_a[_DYN_GET_PERFORMANCE_TIMI16 ] = _getPerformanceTiming,
|
|
5277
|
+
_a[_DYN_IS_PERFORMANCE_TIMIN15 ] = _isPerformanceTimingSupported,
|
|
5278
|
+
_a[_DYN_IS_PERFORMANCE_TIMIN18 ] = _isPerformanceTimingDataReady,
|
|
5279
|
+
_a[_DYN_SHOULD_COLLECT_DURAT17 ] = _shouldCollectDuration,
|
|
5280
|
+
_a;
|
|
5281
|
+
}
|
|
5282
|
+
|
|
5283
|
+
function createPageVisitData(pageName, pageUrl) {
|
|
5284
|
+
return {
|
|
5285
|
+
pageVisitStartTime: utcNow(),
|
|
5286
|
+
pageName: pageName,
|
|
5287
|
+
pageUrl: pageUrl,
|
|
5288
|
+
pageVisitTime: 0
|
|
5289
|
+
};
|
|
5290
|
+
}
|
|
5291
|
+
function createPageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {
|
|
5292
|
+
var prevPageVisitDataKeyName = "prevPageVisitData";
|
|
5293
|
+
function restartPageVisitTimer(pageName, pageUrl) {
|
|
5294
|
+
var prevPageVisitData = null;
|
|
5295
|
+
try {
|
|
5296
|
+
prevPageVisitData = stopPageVisitTimer();
|
|
5297
|
+
if (utlCanUseSessionStorage()) {
|
|
5298
|
+
if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {
|
|
5299
|
+
throwError("Cannot call startPageVisit consecutively without first calling stopPageVisit");
|
|
5275
5300
|
}
|
|
5276
|
-
|
|
5301
|
+
var currPageVisitDataStr = getJSON().stringify(createPageVisitData(pageName, pageUrl));
|
|
5302
|
+
utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);
|
|
5277
5303
|
}
|
|
5278
|
-
|
|
5279
|
-
|
|
5280
|
-
|
|
5304
|
+
}
|
|
5305
|
+
catch (e) {
|
|
5306
|
+
_warnToConsole(logger, "Call to restart failed: " + dumpObj(e));
|
|
5307
|
+
prevPageVisitData = null;
|
|
5308
|
+
}
|
|
5309
|
+
return prevPageVisitData;
|
|
5281
5310
|
}
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5311
|
+
function stopPageVisitTimer() {
|
|
5312
|
+
var prevPageVisitData = null;
|
|
5313
|
+
try {
|
|
5314
|
+
if (utlCanUseSessionStorage()) {
|
|
5315
|
+
var pageVisitEndTime = utcNow();
|
|
5316
|
+
var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);
|
|
5317
|
+
if (pageVisitDataJsonStr && hasJSON()) {
|
|
5318
|
+
prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);
|
|
5319
|
+
prevPageVisitData[_DYN_PAGE_VISIT_TIME ] = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;
|
|
5320
|
+
utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);
|
|
5321
|
+
}
|
|
5322
|
+
}
|
|
5323
|
+
}
|
|
5324
|
+
catch (e) {
|
|
5325
|
+
_warnToConsole(logger, "Stop page visit timer failed: " + dumpObj(e));
|
|
5326
|
+
prevPageVisitData = null;
|
|
5327
|
+
}
|
|
5328
|
+
return prevPageVisitData;
|
|
5290
5329
|
}
|
|
5291
|
-
return
|
|
5292
|
-
|
|
5330
|
+
return {
|
|
5331
|
+
trackPreviousPageVisit: function (currentPageName, currentPageUrl) {
|
|
5332
|
+
try {
|
|
5333
|
+
var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);
|
|
5334
|
+
if (prevPageVisitTimeData) {
|
|
5335
|
+
pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData[_DYN_PAGE_VISIT_TIME ]);
|
|
5336
|
+
}
|
|
5337
|
+
}
|
|
5338
|
+
catch (e) {
|
|
5339
|
+
_warnToConsole(logger, "Auto track page visit time failed, metric will not be collected: " + dumpObj(e));
|
|
5340
|
+
}
|
|
5341
|
+
},
|
|
5342
|
+
_logger: logger,
|
|
5343
|
+
pageVisitTimeTrackingHandler: pageVisitTimeTrackingHandler
|
|
5344
|
+
};
|
|
5345
|
+
}
|
|
5293
5346
|
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
5297
|
-
|
|
5298
|
-
|
|
5347
|
+
function createTiming(logger, name) {
|
|
5348
|
+
var _events = {};
|
|
5349
|
+
var timing = {
|
|
5350
|
+
action: null,
|
|
5351
|
+
start: function (name) {
|
|
5299
5352
|
if (typeof _events[name] !== "undefined") {
|
|
5300
5353
|
_throwInternal(logger, 2 , 62 , "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
|
|
5301
5354
|
}
|
|
5302
5355
|
_events[name] = +new Date;
|
|
5303
|
-
}
|
|
5304
|
-
|
|
5356
|
+
},
|
|
5357
|
+
stop: function (name, url, properties, measurements) {
|
|
5305
5358
|
var start = _events[name];
|
|
5306
5359
|
if (isNaN(start)) {
|
|
5307
5360
|
_throwInternal(logger, 2 , 63 , "stop was called without a corresponding start.", { name: name, key: name }, true);
|
|
@@ -5309,14 +5362,14 @@ var Timing = /** @class */ (function () {
|
|
|
5309
5362
|
else {
|
|
5310
5363
|
var end = +new Date;
|
|
5311
5364
|
var duration = dateTimeUtilsDuration(start, end);
|
|
5312
|
-
|
|
5365
|
+
timing.action(name, url, duration, properties, measurements);
|
|
5313
5366
|
}
|
|
5314
5367
|
delete _events[name];
|
|
5315
5368
|
_events[name] = undefined;
|
|
5316
|
-
}
|
|
5317
|
-
}
|
|
5318
|
-
return
|
|
5319
|
-
}
|
|
5369
|
+
}
|
|
5370
|
+
};
|
|
5371
|
+
return timing;
|
|
5372
|
+
}
|
|
5320
5373
|
|
|
5321
5374
|
var _a;
|
|
5322
5375
|
var strEvent = "event";
|
|
@@ -5458,6 +5511,9 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5458
5511
|
_self[_DYN_TRACK_PAGE_VIEW ] = function (pageView, customProperties) {
|
|
5459
5512
|
try {
|
|
5460
5513
|
var inPv = pageView || {};
|
|
5514
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5515
|
+
inPv.uri = fieldRedaction(inPv.uri, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5516
|
+
}
|
|
5461
5517
|
_pageViewManager[_DYN_TRACK_PAGE_VIEW ](inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
|
|
5462
5518
|
if (_autoTrackPageVisitTime) {
|
|
5463
5519
|
_pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 ](inPv.name, inPv.uri);
|
|
@@ -5470,7 +5526,10 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5470
5526
|
_self[_DYN_SEND_PAGE_VIEW_INTER2 ] = function (pageView, properties, systemProperties) {
|
|
5471
5527
|
var doc = getDocument();
|
|
5472
5528
|
if (doc) {
|
|
5473
|
-
pageView
|
|
5529
|
+
pageView[_DYN_REF_URI ] = pageView[_DYN_REF_URI ] === undefined ? doc.referrer : pageView[_DYN_REF_URI ];
|
|
5530
|
+
}
|
|
5531
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5532
|
+
pageView.refUri = fieldRedaction(pageView.refUri, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5474
5533
|
}
|
|
5475
5534
|
if (isNullOrUndefined(pageView[_DYN_START_TIME ])) {
|
|
5476
5535
|
var duration = ((properties || pageView[_DYN_PROPERTIES ] || {})[_DYN_DURATION ] || 0);
|
|
@@ -5515,6 +5574,9 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5515
5574
|
var loc = getLocation();
|
|
5516
5575
|
url = loc && loc[_DYN_HREF ] || "";
|
|
5517
5576
|
}
|
|
5577
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5578
|
+
url = fieldRedaction(url, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5579
|
+
}
|
|
5518
5580
|
_pageTracking.stop(name, url, properties, measurement);
|
|
5519
5581
|
if (_autoTrackPageVisitTime) {
|
|
5520
5582
|
_pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 ](name, url);
|
|
@@ -5616,10 +5678,10 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5616
5678
|
_preInitTelemetryInitializers = null;
|
|
5617
5679
|
}
|
|
5618
5680
|
_populateDefaults(config);
|
|
5619
|
-
_pageViewPerformanceManager =
|
|
5620
|
-
_pageViewManager =
|
|
5621
|
-
_pageVisitTimeManager =
|
|
5622
|
-
_eventTracking =
|
|
5681
|
+
_pageViewPerformanceManager = createPageViewPerformanceManager(_self[_DYN_CORE ]);
|
|
5682
|
+
_pageViewManager = createPageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE ], _pageViewPerformanceManager);
|
|
5683
|
+
_pageVisitTimeManager = createPageVisitTimeManager(_self[_DYN_DIAG_LOG ](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
|
|
5684
|
+
_eventTracking = createTiming(_self[_DYN_DIAG_LOG ]());
|
|
5623
5685
|
_eventTracking.action =
|
|
5624
5686
|
function (name, url, duration, properties, measurements) {
|
|
5625
5687
|
if (!properties) {
|
|
@@ -5631,7 +5693,7 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5631
5693
|
properties.duration = duration[_DYN_TO_STRING ]();
|
|
5632
5694
|
_self.trackEvent({ name: name, properties: properties, measurements: measurements });
|
|
5633
5695
|
};
|
|
5634
|
-
_pageTracking =
|
|
5696
|
+
_pageTracking = createTiming(_self[_DYN_DIAG_LOG ]());
|
|
5635
5697
|
_pageTracking.action = function (name, url, duration, properties, measurements) {
|
|
5636
5698
|
if (isNullOrUndefined(properties)) {
|
|
5637
5699
|
properties = {};
|
|
@@ -5747,22 +5809,6 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5747
5809
|
}
|
|
5748
5810
|
}));
|
|
5749
5811
|
}
|
|
5750
|
-
function _getDistributedTraceCtx() {
|
|
5751
|
-
var distributedTraceCtx = null;
|
|
5752
|
-
if (_self[_DYN_CORE ] && _self[_DYN_CORE ].getTraceCtx) {
|
|
5753
|
-
distributedTraceCtx = _self[_DYN_CORE ].getTraceCtx(false);
|
|
5754
|
-
}
|
|
5755
|
-
if (!distributedTraceCtx) {
|
|
5756
|
-
var properties = _self[_DYN_CORE ].getPlugin(PropertiesPluginIdentifier);
|
|
5757
|
-
if (properties) {
|
|
5758
|
-
var context = properties.plugin.context;
|
|
5759
|
-
if (context) {
|
|
5760
|
-
distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);
|
|
5761
|
-
}
|
|
5762
|
-
}
|
|
5763
|
-
}
|
|
5764
|
-
return distributedTraceCtx;
|
|
5765
|
-
}
|
|
5766
5812
|
function _addHistoryListener(win, history, locn) {
|
|
5767
5813
|
if (_historyListenerAdded) {
|
|
5768
5814
|
return;
|
|
@@ -5781,15 +5827,15 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5781
5827
|
else {
|
|
5782
5828
|
_currUri = locn && locn[_DYN_HREF ] || "";
|
|
5783
5829
|
}
|
|
5830
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5831
|
+
_currUri = fieldRedaction(_currUri, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5832
|
+
}
|
|
5784
5833
|
if (_enableAutoRouteTracking) {
|
|
5785
|
-
var
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
traceLocationName = locn.pathname + (locn.hash || "");
|
|
5791
|
-
}
|
|
5792
|
-
distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG ](), traceLocationName));
|
|
5834
|
+
var newContext = _self[_DYN_CORE ].getTraceCtx(true);
|
|
5835
|
+
newContext.setTraceId(generateW3CId());
|
|
5836
|
+
newContext.pageName = dataSanitizeString(_self[_DYN_DIAG_LOG ](), newContext.pageName || "_unknown_");
|
|
5837
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ].getTraceCtx) {
|
|
5838
|
+
_self[_DYN_CORE ].setTraceCtx(newContext);
|
|
5793
5839
|
}
|
|
5794
5840
|
scheduleTimeout((function (uri) {
|
|
5795
5841
|
_self[_DYN_TRACK_PAGE_VIEW ]({ refUri: uri, properties: { duration: 0 } });
|
|
@@ -5857,6 +5903,9 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5857
5903
|
_autoTrackPageVisitTime = false;
|
|
5858
5904
|
var location = getLocation(true);
|
|
5859
5905
|
_prevUri = location && location[_DYN_HREF ] || "";
|
|
5906
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5907
|
+
_prevUri = fieldRedaction(_prevUri, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5908
|
+
}
|
|
5860
5909
|
_currUri = null;
|
|
5861
5910
|
_evtNamespace = null;
|
|
5862
5911
|
_extConfig = null;
|
|
@@ -5872,7 +5921,7 @@ var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
5872
5921
|
});
|
|
5873
5922
|
return _this;
|
|
5874
5923
|
}
|
|
5875
|
-
AnalyticsPlugin.Version = '3.4.0-nightlybeta3.
|
|
5924
|
+
AnalyticsPlugin.Version = '3.4.0-nightlybeta3.2507-23';
|
|
5876
5925
|
return AnalyticsPlugin;
|
|
5877
5926
|
}(BaseTelemetryPlugin));
|
|
5878
5927
|
|