@microsoft/applicationinsights-analytics-js 3.4.0-nightlybeta3.2505-36 → 3.4.0-nightlybeta3.2507-22
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-22
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -1200,6 +1200,8 @@
|
|
|
1200
1200
|
var _DYN_USER_AGENT = "userAgent";
|
|
1201
1201
|
var _DYN_SPLIT$1 = "split";
|
|
1202
1202
|
var _DYN_REPLACE = "replace";
|
|
1203
|
+
var _DYN_SUBSTRING = "substring";
|
|
1204
|
+
var _DYN_INDEX_OF = "indexOf";
|
|
1203
1205
|
var _DYN_TYPE = "type";
|
|
1204
1206
|
var _DYN_EVT_NAME = "evtName";
|
|
1205
1207
|
var _DYN_IS_CHILD_EVT = "isChildEvt";
|
|
@@ -1234,6 +1236,8 @@
|
|
|
1234
1236
|
var STR_DOMAIN = "domain";
|
|
1235
1237
|
var STR_PATH = "path";
|
|
1236
1238
|
var STR_NOT_DYNAMIC_ERROR = "Not dynamic - ";
|
|
1239
|
+
var STR_REDACTED = "REDACTED";
|
|
1240
|
+
var DEFAULT_SENSITIVE_PARAMS = ["sig", "Signature", "AWSAccessKeyId", "X-Goog-Signature"];
|
|
1237
1241
|
|
|
1238
1242
|
var strGetPrototypeOf = "getPrototypeOf";
|
|
1239
1243
|
var rCamelCase = /-([a-z])/g;
|
|
@@ -1361,6 +1365,110 @@
|
|
|
1361
1365
|
}
|
|
1362
1366
|
return _isTrident;
|
|
1363
1367
|
}
|
|
1368
|
+
function redactUserInfo(url) {
|
|
1369
|
+
return url.replace(/^([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^:@]{1,200}):([^@]{1,200})@(.*)$/, "$1REDACTED:REDACTED@$4");
|
|
1370
|
+
}
|
|
1371
|
+
function redactQueryParameters(url, config) {
|
|
1372
|
+
var sensitiveParams;
|
|
1373
|
+
var questionMarkIndex = strIndexOf(url, "?");
|
|
1374
|
+
if (questionMarkIndex === -1) {
|
|
1375
|
+
return url;
|
|
1376
|
+
}
|
|
1377
|
+
if (config && config.redactQueryParams) {
|
|
1378
|
+
sensitiveParams = DEFAULT_SENSITIVE_PARAMS.concat(config.redactQueryParams);
|
|
1379
|
+
}
|
|
1380
|
+
else {
|
|
1381
|
+
sensitiveParams = DEFAULT_SENSITIVE_PARAMS;
|
|
1382
|
+
}
|
|
1383
|
+
var baseUrl = strSubstring(url, 0, questionMarkIndex + 1);
|
|
1384
|
+
var queryString = strSubstring(url, questionMarkIndex + 1);
|
|
1385
|
+
var fragment = STR_EMPTY;
|
|
1386
|
+
var hashIndex = strIndexOf(queryString, "#");
|
|
1387
|
+
if (hashIndex !== -1) {
|
|
1388
|
+
fragment = strSubstring(queryString, hashIndex);
|
|
1389
|
+
queryString = strSubstring(queryString, 0, hashIndex);
|
|
1390
|
+
}
|
|
1391
|
+
var hasPotentialSensitiveParam = false;
|
|
1392
|
+
for (var i = 0; i < sensitiveParams[_DYN_LENGTH$2 ]; i++) {
|
|
1393
|
+
var paramCheck = sensitiveParams[i] + "=";
|
|
1394
|
+
if (strIndexOf(queryString, paramCheck) !== -1) {
|
|
1395
|
+
hasPotentialSensitiveParam = true;
|
|
1396
|
+
break;
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
if (!hasPotentialSensitiveParam) {
|
|
1400
|
+
return url;
|
|
1401
|
+
}
|
|
1402
|
+
var resultParts = [];
|
|
1403
|
+
var anyParamRedacted = false;
|
|
1404
|
+
if (queryString && queryString[_DYN_LENGTH$2 ]) {
|
|
1405
|
+
var pairs = queryString[_DYN_SPLIT$1 ]("&");
|
|
1406
|
+
for (var i = 0; i < pairs[_DYN_LENGTH$2 ]; i++) {
|
|
1407
|
+
var pair = pairs[i];
|
|
1408
|
+
if (!pair) {
|
|
1409
|
+
continue;
|
|
1410
|
+
}
|
|
1411
|
+
var equalsIndex = strIndexOf(pair, "=");
|
|
1412
|
+
if (equalsIndex === -1) {
|
|
1413
|
+
resultParts[_DYN_PUSH ](pair);
|
|
1414
|
+
}
|
|
1415
|
+
else {
|
|
1416
|
+
var paramName = pair[_DYN_SUBSTRING ](0, equalsIndex);
|
|
1417
|
+
var paramValue = pair[_DYN_SUBSTRING ](equalsIndex + 1);
|
|
1418
|
+
if (paramValue === STR_EMPTY) {
|
|
1419
|
+
resultParts[_DYN_PUSH ](pair);
|
|
1420
|
+
}
|
|
1421
|
+
else {
|
|
1422
|
+
var shouldRedact = false;
|
|
1423
|
+
for (var j = 0; j < sensitiveParams[_DYN_LENGTH$2 ]; j++) {
|
|
1424
|
+
if (paramName === sensitiveParams[j]) {
|
|
1425
|
+
shouldRedact = true;
|
|
1426
|
+
anyParamRedacted = true;
|
|
1427
|
+
break;
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
if (shouldRedact) {
|
|
1431
|
+
resultParts[_DYN_PUSH ](paramName + "=" + STR_REDACTED);
|
|
1432
|
+
}
|
|
1433
|
+
else {
|
|
1434
|
+
resultParts[_DYN_PUSH ](pair);
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
}
|
|
1440
|
+
if (!anyParamRedacted) {
|
|
1441
|
+
return url;
|
|
1442
|
+
}
|
|
1443
|
+
return baseUrl + resultParts.join("&") + fragment;
|
|
1444
|
+
}
|
|
1445
|
+
function fieldRedaction(input, config) {
|
|
1446
|
+
if (!input || input[_DYN_INDEX_OF ](" ") !== -1) {
|
|
1447
|
+
return input;
|
|
1448
|
+
}
|
|
1449
|
+
var isRedactionDisabled = config && config.redactUrls === false;
|
|
1450
|
+
if (isRedactionDisabled) {
|
|
1451
|
+
return input;
|
|
1452
|
+
}
|
|
1453
|
+
var hasCredentials = strIndexOf(input, "@") !== -1;
|
|
1454
|
+
var hasQueryParams = strIndexOf(input, "?") !== -1;
|
|
1455
|
+
if (!hasCredentials && !hasQueryParams) {
|
|
1456
|
+
return input;
|
|
1457
|
+
}
|
|
1458
|
+
try {
|
|
1459
|
+
var result = input;
|
|
1460
|
+
if (hasCredentials) {
|
|
1461
|
+
result = redactUserInfo(input);
|
|
1462
|
+
}
|
|
1463
|
+
if (hasQueryParams) {
|
|
1464
|
+
result = redactQueryParameters(result, config);
|
|
1465
|
+
}
|
|
1466
|
+
return result;
|
|
1467
|
+
}
|
|
1468
|
+
catch (e) {
|
|
1469
|
+
return input;
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1364
1472
|
|
|
1365
1473
|
var UInt32Mask = 0x100000000;
|
|
1366
1474
|
var MaxUInt32 = 0xffffffff;
|
|
@@ -1432,7 +1540,7 @@
|
|
|
1432
1540
|
return result;
|
|
1433
1541
|
}
|
|
1434
1542
|
|
|
1435
|
-
var version = '3.4.0-nightlybeta3.
|
|
1543
|
+
var version = '3.4.0-nightlybeta3.2507-22';
|
|
1436
1544
|
var instanceName = "." + newId(6);
|
|
1437
1545
|
var _dataUid = 0;
|
|
1438
1546
|
function _canAcceptData(target) {
|
|
@@ -2098,6 +2206,54 @@
|
|
|
2098
2206
|
return createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
|
|
2099
2207
|
}
|
|
2100
2208
|
|
|
2209
|
+
function generateW3CId() {
|
|
2210
|
+
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
2211
|
+
var oct = STR_EMPTY, tmp;
|
|
2212
|
+
for (var a = 0; a < 4; a++) {
|
|
2213
|
+
tmp = random32();
|
|
2214
|
+
oct +=
|
|
2215
|
+
hexValues[tmp & 0xF] +
|
|
2216
|
+
hexValues[tmp >> 4 & 0xF] +
|
|
2217
|
+
hexValues[tmp >> 8 & 0xF] +
|
|
2218
|
+
hexValues[tmp >> 12 & 0xF] +
|
|
2219
|
+
hexValues[tmp >> 16 & 0xF] +
|
|
2220
|
+
hexValues[tmp >> 20 & 0xF] +
|
|
2221
|
+
hexValues[tmp >> 24 & 0xF] +
|
|
2222
|
+
hexValues[tmp >> 28 & 0xF];
|
|
2223
|
+
}
|
|
2224
|
+
var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
|
|
2225
|
+
return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
|
|
2226
|
+
}
|
|
2227
|
+
|
|
2228
|
+
function findAllScripts(doc) {
|
|
2229
|
+
var scripts = doc.getElementsByTagName("script");
|
|
2230
|
+
var result = [];
|
|
2231
|
+
arrForEach(scripts, function (script) {
|
|
2232
|
+
var src = script[_DYN_GET_ATTRIBUTE ]("src");
|
|
2233
|
+
if (src) {
|
|
2234
|
+
var crossOrigin = script[_DYN_GET_ATTRIBUTE ]("crossorigin");
|
|
2235
|
+
var async = script.hasAttribute("async") === true;
|
|
2236
|
+
var defer = script.hasAttribute("defer") === true;
|
|
2237
|
+
var referrerPolicy = script[_DYN_GET_ATTRIBUTE ]("referrerpolicy");
|
|
2238
|
+
var info = { url: src };
|
|
2239
|
+
if (crossOrigin) {
|
|
2240
|
+
info.crossOrigin = crossOrigin;
|
|
2241
|
+
}
|
|
2242
|
+
if (async) {
|
|
2243
|
+
info.async = async;
|
|
2244
|
+
}
|
|
2245
|
+
if (defer) {
|
|
2246
|
+
info.defer = defer;
|
|
2247
|
+
}
|
|
2248
|
+
if (referrerPolicy) {
|
|
2249
|
+
info.referrerPolicy = referrerPolicy;
|
|
2250
|
+
}
|
|
2251
|
+
result[_DYN_PUSH ](info);
|
|
2252
|
+
}
|
|
2253
|
+
});
|
|
2254
|
+
return result;
|
|
2255
|
+
}
|
|
2256
|
+
|
|
2101
2257
|
function _stringToBoolOrDefault(theValue, defaultValue, theConfig) {
|
|
2102
2258
|
if (!theValue && isNullOrUndefined(theValue)) {
|
|
2103
2259
|
return defaultValue;
|
|
@@ -2747,68 +2903,6 @@
|
|
|
2747
2903
|
return func();
|
|
2748
2904
|
}
|
|
2749
2905
|
|
|
2750
|
-
function generateW3CId() {
|
|
2751
|
-
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
2752
|
-
var oct = STR_EMPTY, tmp;
|
|
2753
|
-
for (var a = 0; a < 4; a++) {
|
|
2754
|
-
tmp = random32();
|
|
2755
|
-
oct +=
|
|
2756
|
-
hexValues[tmp & 0xF] +
|
|
2757
|
-
hexValues[tmp >> 4 & 0xF] +
|
|
2758
|
-
hexValues[tmp >> 8 & 0xF] +
|
|
2759
|
-
hexValues[tmp >> 12 & 0xF] +
|
|
2760
|
-
hexValues[tmp >> 16 & 0xF] +
|
|
2761
|
-
hexValues[tmp >> 20 & 0xF] +
|
|
2762
|
-
hexValues[tmp >> 24 & 0xF] +
|
|
2763
|
-
hexValues[tmp >> 28 & 0xF];
|
|
2764
|
-
}
|
|
2765
|
-
var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
|
|
2766
|
-
return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
|
|
2767
|
-
}
|
|
2768
|
-
|
|
2769
|
-
var INVALID_TRACE_ID = "00000000000000000000000000000000";
|
|
2770
|
-
var INVALID_SPAN_ID = "0000000000000000";
|
|
2771
|
-
function _isValid(value, len, invalidValue) {
|
|
2772
|
-
if (value && value[_DYN_LENGTH$2 ] === len && value !== invalidValue) {
|
|
2773
|
-
return !!value.match(/^[\da-f]*$/i);
|
|
2774
|
-
}
|
|
2775
|
-
return false;
|
|
2776
|
-
}
|
|
2777
|
-
function isValidTraceId(value) {
|
|
2778
|
-
return _isValid(value, 32, INVALID_TRACE_ID);
|
|
2779
|
-
}
|
|
2780
|
-
function isValidSpanId(value) {
|
|
2781
|
-
return _isValid(value, 16, INVALID_SPAN_ID);
|
|
2782
|
-
}
|
|
2783
|
-
function findAllScripts(doc) {
|
|
2784
|
-
var scripts = doc.getElementsByTagName("script");
|
|
2785
|
-
var result = [];
|
|
2786
|
-
arrForEach(scripts, function (script) {
|
|
2787
|
-
var src = script[_DYN_GET_ATTRIBUTE ]("src");
|
|
2788
|
-
if (src) {
|
|
2789
|
-
var crossOrigin = script[_DYN_GET_ATTRIBUTE ]("crossorigin");
|
|
2790
|
-
var async = script.hasAttribute("async") === true;
|
|
2791
|
-
var defer = script.hasAttribute("defer") === true;
|
|
2792
|
-
var referrerPolicy = script[_DYN_GET_ATTRIBUTE ]("referrerpolicy");
|
|
2793
|
-
var info = { url: src };
|
|
2794
|
-
if (crossOrigin) {
|
|
2795
|
-
info.crossOrigin = crossOrigin;
|
|
2796
|
-
}
|
|
2797
|
-
if (async) {
|
|
2798
|
-
info.async = async;
|
|
2799
|
-
}
|
|
2800
|
-
if (defer) {
|
|
2801
|
-
info.defer = defer;
|
|
2802
|
-
}
|
|
2803
|
-
if (referrerPolicy) {
|
|
2804
|
-
info.referrerPolicy = referrerPolicy;
|
|
2805
|
-
}
|
|
2806
|
-
result[_DYN_PUSH ](info);
|
|
2807
|
-
}
|
|
2808
|
-
});
|
|
2809
|
-
return result;
|
|
2810
|
-
}
|
|
2811
|
-
|
|
2812
2906
|
var pluginStateData = createElmNodeData("plugin");
|
|
2813
2907
|
function _getPluginState(plugin) {
|
|
2814
2908
|
return pluginStateData.get(plugin, "state", {}, true);
|
|
@@ -2897,27 +2991,26 @@
|
|
|
2897
2991
|
}
|
|
2898
2992
|
function _getExtCfg(identifier, createIfMissing) {
|
|
2899
2993
|
var idCfg = null;
|
|
2900
|
-
var
|
|
2994
|
+
var extCfg = _getCfg(dynamicHandler.cfg, "extensionConfig", createIfMissing);
|
|
2995
|
+
if (extCfg) {
|
|
2996
|
+
idCfg = _getCfg(extCfg, identifier, createIfMissing);
|
|
2997
|
+
}
|
|
2998
|
+
return idCfg;
|
|
2999
|
+
}
|
|
3000
|
+
function _getCfg(cfg, identifier, createIfMissing) {
|
|
3001
|
+
var idCfg = null;
|
|
2901
3002
|
if (cfg && identifier) {
|
|
2902
|
-
|
|
2903
|
-
if (!
|
|
2904
|
-
|
|
2905
|
-
}
|
|
2906
|
-
cfg[STR_EXTENSION_CONFIG] = extCfg;
|
|
2907
|
-
extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);
|
|
2908
|
-
if (extCfg) {
|
|
2909
|
-
idCfg = extCfg[identifier];
|
|
2910
|
-
if (!idCfg && createIfMissing) {
|
|
2911
|
-
idCfg = {};
|
|
2912
|
-
}
|
|
2913
|
-
extCfg[identifier] = idCfg;
|
|
2914
|
-
idCfg = dynamicHandler.ref(extCfg, identifier);
|
|
3003
|
+
idCfg = cfg[identifier];
|
|
3004
|
+
if (!idCfg && createIfMissing) {
|
|
3005
|
+
idCfg = {};
|
|
2915
3006
|
}
|
|
3007
|
+
cfg[identifier] = idCfg;
|
|
3008
|
+
idCfg = dynamicHandler.ref(cfg, identifier);
|
|
2916
3009
|
}
|
|
2917
3010
|
return idCfg;
|
|
2918
3011
|
}
|
|
2919
|
-
function _resolveExtCfg(identifier, defaultValues) {
|
|
2920
|
-
var newConfig = _getExtCfg(identifier, true);
|
|
3012
|
+
function _resolveExtCfg(identifier, defaultValues, rootOnly) {
|
|
3013
|
+
var newConfig = rootOnly ? _getCfg(dynamicHandler.cfg, identifier, true) : _getExtCfg(identifier, true);
|
|
2921
3014
|
if (defaultValues) {
|
|
2922
3015
|
objForEachKey(defaultValues, function (field, defaultValue) {
|
|
2923
3016
|
if (isNullOrUndefined(newConfig[field])) {
|
|
@@ -3738,7 +3831,10 @@
|
|
|
3738
3831
|
}
|
|
3739
3832
|
return valueTrunc || value;
|
|
3740
3833
|
}
|
|
3741
|
-
function dataSanitizeUrl(logger, url) {
|
|
3834
|
+
function dataSanitizeUrl(logger, url, config) {
|
|
3835
|
+
if (isString(url)) {
|
|
3836
|
+
url = fieldRedaction(url, config);
|
|
3837
|
+
}
|
|
3742
3838
|
return dataSanitizeInput(logger, url, 2048 , 66 );
|
|
3743
3839
|
}
|
|
3744
3840
|
function dataSanitizeMessage(logger, message) {
|
|
@@ -3901,48 +3997,11 @@
|
|
|
3901
3997
|
}
|
|
3902
3998
|
return result;
|
|
3903
3999
|
}
|
|
3904
|
-
function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {
|
|
3905
|
-
var trace = telemetryTrace || {};
|
|
3906
|
-
return {
|
|
3907
|
-
getName: function () {
|
|
3908
|
-
return trace[_DYN_NAME ];
|
|
3909
|
-
},
|
|
3910
|
-
setName: function (newValue) {
|
|
3911
|
-
parentCtx && parentCtx.setName(newValue);
|
|
3912
|
-
trace[_DYN_NAME ] = newValue;
|
|
3913
|
-
},
|
|
3914
|
-
getTraceId: function () {
|
|
3915
|
-
return trace.traceID;
|
|
3916
|
-
},
|
|
3917
|
-
setTraceId: function (newValue) {
|
|
3918
|
-
parentCtx && parentCtx.setTraceId(newValue);
|
|
3919
|
-
if (isValidTraceId(newValue)) {
|
|
3920
|
-
trace.traceID = newValue;
|
|
3921
|
-
}
|
|
3922
|
-
},
|
|
3923
|
-
getSpanId: function () {
|
|
3924
|
-
return trace.parentID;
|
|
3925
|
-
},
|
|
3926
|
-
setSpanId: function (newValue) {
|
|
3927
|
-
parentCtx && parentCtx.setSpanId(newValue);
|
|
3928
|
-
if (isValidSpanId(newValue)) {
|
|
3929
|
-
trace.parentID = newValue;
|
|
3930
|
-
}
|
|
3931
|
-
},
|
|
3932
|
-
getTraceFlags: function () {
|
|
3933
|
-
return trace.traceFlags;
|
|
3934
|
-
},
|
|
3935
|
-
setTraceFlags: function (newTraceFlags) {
|
|
3936
|
-
parentCtx && parentCtx.setTraceFlags(newTraceFlags);
|
|
3937
|
-
trace.traceFlags = newTraceFlags;
|
|
3938
|
-
}
|
|
3939
|
-
};
|
|
3940
|
-
}
|
|
3941
4000
|
|
|
3942
|
-
var StorageType = createEnumStyle({
|
|
4001
|
+
var StorageType = ( /* @__PURE__ */createEnumStyle({
|
|
3943
4002
|
LocalStorage: 0 ,
|
|
3944
4003
|
SessionStorage: 1
|
|
3945
|
-
});
|
|
4004
|
+
}));
|
|
3946
4005
|
|
|
3947
4006
|
var _canUseLocalStorage = undefined;
|
|
3948
4007
|
var _canUseSessionStorage = undefined;
|
|
@@ -4875,7 +4934,6 @@
|
|
|
4875
4934
|
return event;
|
|
4876
4935
|
}
|
|
4877
4936
|
|
|
4878
|
-
var PropertiesPluginIdentifier = "AppInsightsPropertiesPlugin";
|
|
4879
4937
|
var AnalyticsPluginIdentifier = "ApplicationInsightsAnalytics";
|
|
4880
4938
|
|
|
4881
4939
|
var _DYN_TO_STRING = "toString";
|
|
@@ -4887,8 +4945,10 @@
|
|
|
4887
4945
|
var _DYN_DIAG_LOG = "diagLog";
|
|
4888
4946
|
var _DYN_TRACK = "track";
|
|
4889
4947
|
var _DYN_TRACK_PAGE_VIEW = "trackPageView";
|
|
4948
|
+
var _DYN_CONFIG = "config";
|
|
4890
4949
|
var _DYN_TRACK_PREVIOUS_PAGE_1 = "trackPreviousPageVisit";
|
|
4891
4950
|
var _DYN_SEND_PAGE_VIEW_INTER2 = "sendPageViewInternal";
|
|
4951
|
+
var _DYN_REF_URI = "refUri";
|
|
4892
4952
|
var _DYN_START_TIME = "startTime";
|
|
4893
4953
|
var _DYN_PROPERTIES = "properties";
|
|
4894
4954
|
var _DYN_DURATION = "duration";
|
|
@@ -4920,168 +4980,168 @@
|
|
|
4920
4980
|
var _DYN_LOAD_EVENT_END = "loadEventEnd";
|
|
4921
4981
|
var _DYN_RESPONSE_END = "responseEnd";
|
|
4922
4982
|
var _DYN_CONNECT_END = "connectEnd";
|
|
4983
|
+
var _DYN_PAGE_VISIT_TIME = "pageVisitTime";
|
|
4923
4984
|
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
function
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
function
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
if (!item()) {
|
|
4950
|
-
itemQueue.push(item);
|
|
4951
|
-
}
|
|
4952
|
-
else {
|
|
4953
|
-
doFlush = true;
|
|
4954
|
-
}
|
|
4955
|
-
});
|
|
4956
|
-
if (itemQueue[_DYN_LENGTH ] > 0) {
|
|
4957
|
-
_startTimer();
|
|
4958
|
-
}
|
|
4959
|
-
if (doFlush) {
|
|
4960
|
-
_flushChannels(true);
|
|
4961
|
-
}
|
|
4962
|
-
}), 100);
|
|
4963
|
-
}
|
|
4964
|
-
}
|
|
4965
|
-
function _addQueue(cb) {
|
|
4966
|
-
itemQueue.push(cb);
|
|
4967
|
-
_startTimer();
|
|
4968
|
-
}
|
|
4969
|
-
_self[_DYN_TRACK_PAGE_VIEW ] = function (pageView, customProperties) {
|
|
4970
|
-
var name = pageView.name;
|
|
4971
|
-
if (isNullOrUndefined(name) || typeof name !== "string") {
|
|
4972
|
-
var doc = getDocument();
|
|
4973
|
-
name = pageView.name = doc && doc.title || "";
|
|
4974
|
-
}
|
|
4975
|
-
var uri = pageView.uri;
|
|
4976
|
-
if (isNullOrUndefined(uri) || typeof uri !== "string") {
|
|
4977
|
-
var location_1 = getLocation();
|
|
4978
|
-
uri = pageView.uri = location_1 && location_1[_DYN_HREF ] || "";
|
|
4979
|
-
}
|
|
4980
|
-
if (!firstPageViewSent) {
|
|
4981
|
-
var perf = getPerformance();
|
|
4982
|
-
var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE ] && perf[_DYN_GET_ENTRIES_BY_TYPE ]("navigation"));
|
|
4983
|
-
if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {
|
|
4984
|
-
var loadEventStart = navigationEntries[0].loadEventStart;
|
|
4985
|
-
pageView[_DYN_START_TIME ] = new Date(perf.timeOrigin + loadEventStart);
|
|
4985
|
+
function createPageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {
|
|
4986
|
+
var queueTimer = null;
|
|
4987
|
+
var itemQueue = [];
|
|
4988
|
+
var pageViewPerformanceSent = false;
|
|
4989
|
+
var firstPageViewSent = false;
|
|
4990
|
+
var _logger;
|
|
4991
|
+
if (core) {
|
|
4992
|
+
_logger = core.logger;
|
|
4993
|
+
}
|
|
4994
|
+
function _flushChannels(isAsync) {
|
|
4995
|
+
if (core) {
|
|
4996
|
+
core.flush(isAsync, function () {
|
|
4997
|
+
});
|
|
4998
|
+
}
|
|
4999
|
+
}
|
|
5000
|
+
function _startTimer() {
|
|
5001
|
+
if (!queueTimer) {
|
|
5002
|
+
queueTimer = scheduleTimeout((function () {
|
|
5003
|
+
queueTimer = null;
|
|
5004
|
+
var allItems = itemQueue.slice(0);
|
|
5005
|
+
var doFlush = false;
|
|
5006
|
+
itemQueue = [];
|
|
5007
|
+
arrForEach(allItems, function (item) {
|
|
5008
|
+
if (!item()) {
|
|
5009
|
+
itemQueue.push(item);
|
|
4986
5010
|
}
|
|
4987
5011
|
else {
|
|
4988
|
-
|
|
4989
|
-
pageView[_DYN_START_TIME ] = new Date(new Date().getTime() - duration_1);
|
|
5012
|
+
doFlush = true;
|
|
4990
5013
|
}
|
|
4991
|
-
|
|
5014
|
+
});
|
|
5015
|
+
if (itemQueue[_DYN_LENGTH ] > 0) {
|
|
5016
|
+
_startTimer();
|
|
4992
5017
|
}
|
|
4993
|
-
if (
|
|
4994
|
-
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5018
|
+
if (doFlush) {
|
|
4995
5019
|
_flushChannels(true);
|
|
4996
|
-
if (!isWebWorker()) {
|
|
4997
|
-
_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.");
|
|
4998
|
-
}
|
|
4999
|
-
return;
|
|
5000
5020
|
}
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5021
|
+
}), 100);
|
|
5022
|
+
}
|
|
5023
|
+
}
|
|
5024
|
+
function _addQueue(cb) {
|
|
5025
|
+
itemQueue.push(cb);
|
|
5026
|
+
_startTimer();
|
|
5027
|
+
}
|
|
5028
|
+
return {
|
|
5029
|
+
trackPageView: function (pageView, customProperties) {
|
|
5030
|
+
var name = pageView.name;
|
|
5031
|
+
if (isNullOrUndefined(name) || typeof name !== "string") {
|
|
5032
|
+
var doc = getDocument();
|
|
5033
|
+
name = pageView.name = doc && doc.title || "";
|
|
5034
|
+
}
|
|
5035
|
+
var uri = pageView.uri;
|
|
5036
|
+
if (isNullOrUndefined(uri) || typeof uri !== "string") {
|
|
5037
|
+
var location_1 = getLocation();
|
|
5038
|
+
uri = pageView.uri = location_1 && location_1[_DYN_HREF ] || "";
|
|
5039
|
+
}
|
|
5040
|
+
if (core && core[_DYN_CONFIG ]) {
|
|
5041
|
+
uri = pageView.uri = fieldRedaction(pageView.uri, core[_DYN_CONFIG ]);
|
|
5042
|
+
}
|
|
5043
|
+
if (!firstPageViewSent) {
|
|
5044
|
+
var perf = getPerformance();
|
|
5045
|
+
var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE ] && perf[_DYN_GET_ENTRIES_BY_TYPE ]("navigation"));
|
|
5046
|
+
if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {
|
|
5047
|
+
var loadEventStart = navigationEntries[0].loadEventStart;
|
|
5048
|
+
pageView[_DYN_START_TIME ] = new Date(perf.timeOrigin + loadEventStart);
|
|
5009
5049
|
}
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
duration = customProperties[_DYN_DURATION ];
|
|
5050
|
+
else {
|
|
5051
|
+
var duration_1 = ((customProperties || pageView[_DYN_PROPERTIES ] || {})[_DYN_DURATION ] || 0);
|
|
5052
|
+
pageView[_DYN_START_TIME ] = new Date(new Date().getTime() - duration_1);
|
|
5014
5053
|
}
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
5020
|
-
|
|
5021
|
-
|
|
5022
|
-
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5023
|
-
_flushChannels(true);
|
|
5024
|
-
pageViewSent = true;
|
|
5054
|
+
firstPageViewSent = true;
|
|
5055
|
+
}
|
|
5056
|
+
if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN15 ]()) {
|
|
5057
|
+
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5058
|
+
_flushChannels(true);
|
|
5059
|
+
if (!isWebWorker()) {
|
|
5060
|
+
_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.");
|
|
5025
5061
|
}
|
|
5026
|
-
|
|
5027
|
-
|
|
5028
|
-
|
|
5062
|
+
return;
|
|
5063
|
+
}
|
|
5064
|
+
var pageViewSent = false;
|
|
5065
|
+
var customDuration;
|
|
5066
|
+
var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI16 ]()[_DYN_NAVIGATION_START ];
|
|
5067
|
+
if (start > 0) {
|
|
5068
|
+
customDuration = dateTimeUtilsDuration(start, +new Date);
|
|
5069
|
+
if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT17 ](customDuration)) {
|
|
5070
|
+
customDuration = undefined;
|
|
5029
5071
|
}
|
|
5030
|
-
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5072
|
+
}
|
|
5073
|
+
var duration;
|
|
5074
|
+
if (!isNullOrUndefined(customProperties) &&
|
|
5075
|
+
!isNullOrUndefined(customProperties[_DYN_DURATION ])) {
|
|
5076
|
+
duration = customProperties[_DYN_DURATION ];
|
|
5077
|
+
}
|
|
5078
|
+
if (overridePageViewDuration || !isNaN(duration)) {
|
|
5079
|
+
if (isNaN(duration)) {
|
|
5080
|
+
if (!customProperties) {
|
|
5081
|
+
customProperties = {};
|
|
5082
|
+
}
|
|
5083
|
+
customProperties[_DYN_DURATION ] = customDuration;
|
|
5084
|
+
}
|
|
5085
|
+
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5086
|
+
_flushChannels(true);
|
|
5087
|
+
pageViewSent = true;
|
|
5088
|
+
}
|
|
5089
|
+
var maxDurationLimit = 60000;
|
|
5090
|
+
if (!customProperties) {
|
|
5091
|
+
customProperties = {};
|
|
5092
|
+
}
|
|
5093
|
+
_addQueue(function () {
|
|
5094
|
+
var processed = false;
|
|
5095
|
+
try {
|
|
5096
|
+
if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN18 ]()) {
|
|
5097
|
+
processed = true;
|
|
5098
|
+
var pageViewPerformance = {
|
|
5099
|
+
name: name,
|
|
5100
|
+
uri: uri
|
|
5101
|
+
};
|
|
5102
|
+
pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 ](pageViewPerformance);
|
|
5103
|
+
if (!pageViewPerformance.isValid && !pageViewSent) {
|
|
5104
|
+
customProperties[_DYN_DURATION ] = customDuration;
|
|
5105
|
+
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5054
5106
|
}
|
|
5055
|
-
else
|
|
5056
|
-
processed = true;
|
|
5107
|
+
else {
|
|
5057
5108
|
if (!pageViewSent) {
|
|
5058
|
-
customProperties[_DYN_DURATION ] =
|
|
5109
|
+
customProperties[_DYN_DURATION ] = pageViewPerformance.durationMs;
|
|
5059
5110
|
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5060
5111
|
}
|
|
5112
|
+
if (!pageViewPerformanceSent) {
|
|
5113
|
+
appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 ](pageViewPerformance, customProperties);
|
|
5114
|
+
pageViewPerformanceSent = true;
|
|
5115
|
+
}
|
|
5061
5116
|
}
|
|
5062
5117
|
}
|
|
5063
|
-
|
|
5064
|
-
|
|
5118
|
+
else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {
|
|
5119
|
+
processed = true;
|
|
5120
|
+
if (!pageViewSent) {
|
|
5121
|
+
customProperties[_DYN_DURATION ] = maxDurationLimit;
|
|
5122
|
+
appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
|
|
5123
|
+
}
|
|
5065
5124
|
}
|
|
5066
|
-
return processed;
|
|
5067
|
-
});
|
|
5068
|
-
};
|
|
5069
|
-
_self.teardown = function (unloadCtx, unloadState) {
|
|
5070
|
-
if (queueTimer) {
|
|
5071
|
-
queueTimer.cancel();
|
|
5072
|
-
queueTimer = null;
|
|
5073
|
-
var allItems = itemQueue.slice(0);
|
|
5074
|
-
itemQueue = [];
|
|
5075
|
-
arrForEach(allItems, function (item) {
|
|
5076
|
-
if (item()) ;
|
|
5077
|
-
});
|
|
5078
5125
|
}
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5126
|
+
catch (e) {
|
|
5127
|
+
_throwInternal(_logger, 1 , 38 , "trackPageView failed on page load calculation: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5128
|
+
}
|
|
5129
|
+
return processed;
|
|
5130
|
+
});
|
|
5131
|
+
},
|
|
5132
|
+
teardown: function (unloadCtx, unloadState) {
|
|
5133
|
+
if (queueTimer) {
|
|
5134
|
+
queueTimer.cancel();
|
|
5135
|
+
queueTimer = null;
|
|
5136
|
+
var allItems = itemQueue.slice(0);
|
|
5137
|
+
itemQueue = [];
|
|
5138
|
+
arrForEach(allItems, function (item) {
|
|
5139
|
+
if (item()) ;
|
|
5140
|
+
});
|
|
5141
|
+
}
|
|
5142
|
+
}
|
|
5143
|
+
};
|
|
5144
|
+
}
|
|
5085
5145
|
|
|
5086
5146
|
var MAX_DURATION_ALLOWED = 3600000;
|
|
5087
5147
|
var botAgentNames = ["googlebot", "adsbot-google", "apis-google", "mediapartners-google"];
|
|
@@ -5143,143 +5203,136 @@
|
|
|
5143
5203
|
}
|
|
5144
5204
|
return true;
|
|
5145
5205
|
}
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
5166
|
-
}
|
|
5167
|
-
else {
|
|
5168
|
-
total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START ], timing[_DYN_LOAD_EVENT_END ]);
|
|
5169
|
-
network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START ], timing[_DYN_CONNECT_END ]);
|
|
5170
|
-
request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START ]);
|
|
5171
|
-
response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START ], timing[_DYN_RESPONSE_END ]);
|
|
5172
|
-
dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END ]);
|
|
5173
|
-
}
|
|
5174
|
-
if (total === 0) {
|
|
5175
|
-
_throwInternal(_logger, 2 , 10 , "error calculating page view performance.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5176
|
-
}
|
|
5177
|
-
else if (!_self[_DYN_SHOULD_COLLECT_DURAT17 ](total, network, request, response, dom)) {
|
|
5178
|
-
_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 });
|
|
5179
|
-
}
|
|
5180
|
-
else if (total < mathFloor(network) + mathFloor(request) + mathFloor(response) + mathFloor(dom)) {
|
|
5181
|
-
_throwInternal(_logger, 2 , 8 , "client performance math error.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5182
|
-
}
|
|
5183
|
-
else {
|
|
5184
|
-
pageViewPerformance.durationMs = total;
|
|
5185
|
-
pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION ] = msToTimeSpan(total);
|
|
5186
|
-
pageViewPerformance.networkConnect = msToTimeSpan(network);
|
|
5187
|
-
pageViewPerformance.sentRequest = msToTimeSpan(request);
|
|
5188
|
-
pageViewPerformance.receivedResponse = msToTimeSpan(response);
|
|
5189
|
-
pageViewPerformance.domProcessing = msToTimeSpan(dom);
|
|
5190
|
-
pageViewPerformance.isValid = true;
|
|
5191
|
-
}
|
|
5206
|
+
function createPageViewPerformanceManager(core) {
|
|
5207
|
+
var _a;
|
|
5208
|
+
var _logger = safeGetLogger(core);
|
|
5209
|
+
return _a = {},
|
|
5210
|
+
_a[_DYN_POPULATE_PAGE_VIEW_P4 ] = function (pageViewPerformance) {
|
|
5211
|
+
pageViewPerformance.isValid = false;
|
|
5212
|
+
var navigationTiming = _getPerformanceNavigationTiming();
|
|
5213
|
+
var timing = _getPerformanceTiming();
|
|
5214
|
+
var total = 0;
|
|
5215
|
+
var network = 0;
|
|
5216
|
+
var request = 0;
|
|
5217
|
+
var response = 0;
|
|
5218
|
+
var dom = 0;
|
|
5219
|
+
if (navigationTiming || timing) {
|
|
5220
|
+
if (navigationTiming) {
|
|
5221
|
+
total = navigationTiming[_DYN_DURATION ];
|
|
5222
|
+
network = navigationTiming[_DYN_START_TIME ] === 0 ? navigationTiming[_DYN_CONNECT_END ] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME ], navigationTiming[_DYN_CONNECT_END ]);
|
|
5223
|
+
request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START ]);
|
|
5224
|
+
response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START ], navigationTiming[_DYN_RESPONSE_END ]);
|
|
5225
|
+
dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END ]);
|
|
5192
5226
|
}
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
}
|
|
5200
|
-
PageViewPerformanceManager.__ieDyn=1;
|
|
5201
|
-
return PageViewPerformanceManager;
|
|
5202
|
-
}());
|
|
5203
|
-
|
|
5204
|
-
var PageVisitTimeManager = /** @class */ (function () {
|
|
5205
|
-
function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {
|
|
5206
|
-
var prevPageVisitDataKeyName = "prevPageVisitData";
|
|
5207
|
-
dynamicProto(PageVisitTimeManager, this, function (_self) {
|
|
5208
|
-
_self[_DYN_TRACK_PREVIOUS_PAGE_1 ] = function (currentPageName, currentPageUrl) {
|
|
5209
|
-
try {
|
|
5210
|
-
var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);
|
|
5211
|
-
if (prevPageVisitTimeData) {
|
|
5212
|
-
pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);
|
|
5213
|
-
}
|
|
5227
|
+
else {
|
|
5228
|
+
total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START ], timing[_DYN_LOAD_EVENT_END ]);
|
|
5229
|
+
network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START ], timing[_DYN_CONNECT_END ]);
|
|
5230
|
+
request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START ]);
|
|
5231
|
+
response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START ], timing[_DYN_RESPONSE_END ]);
|
|
5232
|
+
dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END ]);
|
|
5214
5233
|
}
|
|
5215
|
-
|
|
5216
|
-
|
|
5234
|
+
if (total === 0) {
|
|
5235
|
+
_throwInternal(_logger, 2 , 10 , "error calculating page view performance.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5217
5236
|
}
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
var prevPageVisitData = null;
|
|
5221
|
-
try {
|
|
5222
|
-
prevPageVisitData = stopPageVisitTimer();
|
|
5223
|
-
if (utlCanUseSessionStorage()) {
|
|
5224
|
-
if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {
|
|
5225
|
-
throwError("Cannot call startPageVisit consecutively without first calling stopPageVisit");
|
|
5226
|
-
}
|
|
5227
|
-
var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));
|
|
5228
|
-
utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);
|
|
5229
|
-
}
|
|
5237
|
+
else if (!_shouldCollectDuration(total, network, request, response, dom)) {
|
|
5238
|
+
_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 });
|
|
5230
5239
|
}
|
|
5231
|
-
|
|
5232
|
-
|
|
5233
|
-
prevPageVisitData = null;
|
|
5240
|
+
else if (total < mathFloor(network) + mathFloor(request) + mathFloor(response) + mathFloor(dom)) {
|
|
5241
|
+
_throwInternal(_logger, 2 , 8 , "client performance math error.", { total: total, network: network, request: request, response: response, dom: dom });
|
|
5234
5242
|
}
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
if (pageVisitDataJsonStr && hasJSON()) {
|
|
5244
|
-
prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);
|
|
5245
|
-
prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;
|
|
5246
|
-
utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);
|
|
5247
|
-
}
|
|
5248
|
-
}
|
|
5243
|
+
else {
|
|
5244
|
+
pageViewPerformance.durationMs = total;
|
|
5245
|
+
pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION ] = msToTimeSpan(total);
|
|
5246
|
+
pageViewPerformance.networkConnect = msToTimeSpan(network);
|
|
5247
|
+
pageViewPerformance.sentRequest = msToTimeSpan(request);
|
|
5248
|
+
pageViewPerformance.receivedResponse = msToTimeSpan(response);
|
|
5249
|
+
pageViewPerformance.domProcessing = msToTimeSpan(dom);
|
|
5250
|
+
pageViewPerformance.isValid = true;
|
|
5249
5251
|
}
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5252
|
+
}
|
|
5253
|
+
},
|
|
5254
|
+
_a[_DYN_GET_PERFORMANCE_TIMI16 ] = _getPerformanceTiming,
|
|
5255
|
+
_a[_DYN_IS_PERFORMANCE_TIMIN15 ] = _isPerformanceTimingSupported,
|
|
5256
|
+
_a[_DYN_IS_PERFORMANCE_TIMIN18 ] = _isPerformanceTimingDataReady,
|
|
5257
|
+
_a[_DYN_SHOULD_COLLECT_DURAT17 ] = _shouldCollectDuration,
|
|
5258
|
+
_a;
|
|
5259
|
+
}
|
|
5260
|
+
|
|
5261
|
+
function createPageVisitData(pageName, pageUrl) {
|
|
5262
|
+
return {
|
|
5263
|
+
pageVisitStartTime: utcNow(),
|
|
5264
|
+
pageName: pageName,
|
|
5265
|
+
pageUrl: pageUrl,
|
|
5266
|
+
pageVisitTime: 0
|
|
5267
|
+
};
|
|
5268
|
+
}
|
|
5269
|
+
function createPageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {
|
|
5270
|
+
var prevPageVisitDataKeyName = "prevPageVisitData";
|
|
5271
|
+
function restartPageVisitTimer(pageName, pageUrl) {
|
|
5272
|
+
var prevPageVisitData = null;
|
|
5273
|
+
try {
|
|
5274
|
+
prevPageVisitData = stopPageVisitTimer();
|
|
5275
|
+
if (utlCanUseSessionStorage()) {
|
|
5276
|
+
if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {
|
|
5277
|
+
throwError("Cannot call startPageVisit consecutively without first calling stopPageVisit");
|
|
5253
5278
|
}
|
|
5254
|
-
|
|
5279
|
+
var currPageVisitDataStr = getJSON().stringify(createPageVisitData(pageName, pageUrl));
|
|
5280
|
+
utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);
|
|
5255
5281
|
}
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5282
|
+
}
|
|
5283
|
+
catch (e) {
|
|
5284
|
+
_warnToConsole(logger, "Call to restart failed: " + dumpObj(e));
|
|
5285
|
+
prevPageVisitData = null;
|
|
5286
|
+
}
|
|
5287
|
+
return prevPageVisitData;
|
|
5259
5288
|
}
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5289
|
+
function stopPageVisitTimer() {
|
|
5290
|
+
var prevPageVisitData = null;
|
|
5291
|
+
try {
|
|
5292
|
+
if (utlCanUseSessionStorage()) {
|
|
5293
|
+
var pageVisitEndTime = utcNow();
|
|
5294
|
+
var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);
|
|
5295
|
+
if (pageVisitDataJsonStr && hasJSON()) {
|
|
5296
|
+
prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);
|
|
5297
|
+
prevPageVisitData[_DYN_PAGE_VISIT_TIME ] = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;
|
|
5298
|
+
utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);
|
|
5299
|
+
}
|
|
5300
|
+
}
|
|
5301
|
+
}
|
|
5302
|
+
catch (e) {
|
|
5303
|
+
_warnToConsole(logger, "Stop page visit timer failed: " + dumpObj(e));
|
|
5304
|
+
prevPageVisitData = null;
|
|
5305
|
+
}
|
|
5306
|
+
return prevPageVisitData;
|
|
5268
5307
|
}
|
|
5269
|
-
return
|
|
5270
|
-
|
|
5308
|
+
return {
|
|
5309
|
+
trackPreviousPageVisit: function (currentPageName, currentPageUrl) {
|
|
5310
|
+
try {
|
|
5311
|
+
var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);
|
|
5312
|
+
if (prevPageVisitTimeData) {
|
|
5313
|
+
pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData[_DYN_PAGE_VISIT_TIME ]);
|
|
5314
|
+
}
|
|
5315
|
+
}
|
|
5316
|
+
catch (e) {
|
|
5317
|
+
_warnToConsole(logger, "Auto track page visit time failed, metric will not be collected: " + dumpObj(e));
|
|
5318
|
+
}
|
|
5319
|
+
},
|
|
5320
|
+
_logger: logger,
|
|
5321
|
+
pageVisitTimeTrackingHandler: pageVisitTimeTrackingHandler
|
|
5322
|
+
};
|
|
5323
|
+
}
|
|
5271
5324
|
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5325
|
+
function createTiming(logger, name) {
|
|
5326
|
+
var _events = {};
|
|
5327
|
+
var timing = {
|
|
5328
|
+
action: null,
|
|
5329
|
+
start: function (name) {
|
|
5277
5330
|
if (typeof _events[name] !== "undefined") {
|
|
5278
5331
|
_throwInternal(logger, 2 , 62 , "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
|
|
5279
5332
|
}
|
|
5280
5333
|
_events[name] = +new Date;
|
|
5281
|
-
}
|
|
5282
|
-
|
|
5334
|
+
},
|
|
5335
|
+
stop: function (name, url, properties, measurements) {
|
|
5283
5336
|
var start = _events[name];
|
|
5284
5337
|
if (isNaN(start)) {
|
|
5285
5338
|
_throwInternal(logger, 2 , 63 , "stop was called without a corresponding start.", { name: name, key: name }, true);
|
|
@@ -5287,14 +5340,14 @@
|
|
|
5287
5340
|
else {
|
|
5288
5341
|
var end = +new Date;
|
|
5289
5342
|
var duration = dateTimeUtilsDuration(start, end);
|
|
5290
|
-
|
|
5343
|
+
timing.action(name, url, duration, properties, measurements);
|
|
5291
5344
|
}
|
|
5292
5345
|
delete _events[name];
|
|
5293
5346
|
_events[name] = undefined;
|
|
5294
|
-
}
|
|
5295
|
-
}
|
|
5296
|
-
return
|
|
5297
|
-
}
|
|
5347
|
+
}
|
|
5348
|
+
};
|
|
5349
|
+
return timing;
|
|
5350
|
+
}
|
|
5298
5351
|
|
|
5299
5352
|
var _a;
|
|
5300
5353
|
var strEvent = "event";
|
|
@@ -5436,6 +5489,9 @@
|
|
|
5436
5489
|
_self[_DYN_TRACK_PAGE_VIEW ] = function (pageView, customProperties) {
|
|
5437
5490
|
try {
|
|
5438
5491
|
var inPv = pageView || {};
|
|
5492
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5493
|
+
inPv.uri = fieldRedaction(inPv.uri, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5494
|
+
}
|
|
5439
5495
|
_pageViewManager[_DYN_TRACK_PAGE_VIEW ](inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
|
|
5440
5496
|
if (_autoTrackPageVisitTime) {
|
|
5441
5497
|
_pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 ](inPv.name, inPv.uri);
|
|
@@ -5448,7 +5504,10 @@
|
|
|
5448
5504
|
_self[_DYN_SEND_PAGE_VIEW_INTER2 ] = function (pageView, properties, systemProperties) {
|
|
5449
5505
|
var doc = getDocument();
|
|
5450
5506
|
if (doc) {
|
|
5451
|
-
pageView
|
|
5507
|
+
pageView[_DYN_REF_URI ] = pageView[_DYN_REF_URI ] === undefined ? doc.referrer : pageView[_DYN_REF_URI ];
|
|
5508
|
+
}
|
|
5509
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5510
|
+
pageView.refUri = fieldRedaction(pageView.refUri, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5452
5511
|
}
|
|
5453
5512
|
if (isNullOrUndefined(pageView[_DYN_START_TIME ])) {
|
|
5454
5513
|
var duration = ((properties || pageView[_DYN_PROPERTIES ] || {})[_DYN_DURATION ] || 0);
|
|
@@ -5493,6 +5552,9 @@
|
|
|
5493
5552
|
var loc = getLocation();
|
|
5494
5553
|
url = loc && loc[_DYN_HREF ] || "";
|
|
5495
5554
|
}
|
|
5555
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5556
|
+
url = fieldRedaction(url, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5557
|
+
}
|
|
5496
5558
|
_pageTracking.stop(name, url, properties, measurement);
|
|
5497
5559
|
if (_autoTrackPageVisitTime) {
|
|
5498
5560
|
_pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 ](name, url);
|
|
@@ -5594,10 +5656,10 @@
|
|
|
5594
5656
|
_preInitTelemetryInitializers = null;
|
|
5595
5657
|
}
|
|
5596
5658
|
_populateDefaults(config);
|
|
5597
|
-
_pageViewPerformanceManager =
|
|
5598
|
-
_pageViewManager =
|
|
5599
|
-
_pageVisitTimeManager =
|
|
5600
|
-
_eventTracking =
|
|
5659
|
+
_pageViewPerformanceManager = createPageViewPerformanceManager(_self[_DYN_CORE ]);
|
|
5660
|
+
_pageViewManager = createPageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE ], _pageViewPerformanceManager);
|
|
5661
|
+
_pageVisitTimeManager = createPageVisitTimeManager(_self[_DYN_DIAG_LOG ](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
|
|
5662
|
+
_eventTracking = createTiming(_self[_DYN_DIAG_LOG ]());
|
|
5601
5663
|
_eventTracking.action =
|
|
5602
5664
|
function (name, url, duration, properties, measurements) {
|
|
5603
5665
|
if (!properties) {
|
|
@@ -5609,7 +5671,7 @@
|
|
|
5609
5671
|
properties.duration = duration[_DYN_TO_STRING ]();
|
|
5610
5672
|
_self.trackEvent({ name: name, properties: properties, measurements: measurements });
|
|
5611
5673
|
};
|
|
5612
|
-
_pageTracking =
|
|
5674
|
+
_pageTracking = createTiming(_self[_DYN_DIAG_LOG ]());
|
|
5613
5675
|
_pageTracking.action = function (name, url, duration, properties, measurements) {
|
|
5614
5676
|
if (isNullOrUndefined(properties)) {
|
|
5615
5677
|
properties = {};
|
|
@@ -5725,22 +5787,6 @@
|
|
|
5725
5787
|
}
|
|
5726
5788
|
}));
|
|
5727
5789
|
}
|
|
5728
|
-
function _getDistributedTraceCtx() {
|
|
5729
|
-
var distributedTraceCtx = null;
|
|
5730
|
-
if (_self[_DYN_CORE ] && _self[_DYN_CORE ].getTraceCtx) {
|
|
5731
|
-
distributedTraceCtx = _self[_DYN_CORE ].getTraceCtx(false);
|
|
5732
|
-
}
|
|
5733
|
-
if (!distributedTraceCtx) {
|
|
5734
|
-
var properties = _self[_DYN_CORE ].getPlugin(PropertiesPluginIdentifier);
|
|
5735
|
-
if (properties) {
|
|
5736
|
-
var context = properties.plugin.context;
|
|
5737
|
-
if (context) {
|
|
5738
|
-
distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);
|
|
5739
|
-
}
|
|
5740
|
-
}
|
|
5741
|
-
}
|
|
5742
|
-
return distributedTraceCtx;
|
|
5743
|
-
}
|
|
5744
5790
|
function _addHistoryListener(win, history, locn) {
|
|
5745
5791
|
if (_historyListenerAdded) {
|
|
5746
5792
|
return;
|
|
@@ -5759,15 +5805,15 @@
|
|
|
5759
5805
|
else {
|
|
5760
5806
|
_currUri = locn && locn[_DYN_HREF ] || "";
|
|
5761
5807
|
}
|
|
5808
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5809
|
+
_currUri = fieldRedaction(_currUri, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5810
|
+
}
|
|
5762
5811
|
if (_enableAutoRouteTracking) {
|
|
5763
|
-
var
|
|
5764
|
-
|
|
5765
|
-
|
|
5766
|
-
|
|
5767
|
-
|
|
5768
|
-
traceLocationName = locn.pathname + (locn.hash || "");
|
|
5769
|
-
}
|
|
5770
|
-
distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG ](), traceLocationName));
|
|
5812
|
+
var newContext = _self[_DYN_CORE ].getTraceCtx(true);
|
|
5813
|
+
newContext.setTraceId(generateW3CId());
|
|
5814
|
+
newContext.pageName = dataSanitizeString(_self[_DYN_DIAG_LOG ](), newContext.pageName || "_unknown_");
|
|
5815
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ].getTraceCtx) {
|
|
5816
|
+
_self[_DYN_CORE ].setTraceCtx(newContext);
|
|
5771
5817
|
}
|
|
5772
5818
|
scheduleTimeout((function (uri) {
|
|
5773
5819
|
_self[_DYN_TRACK_PAGE_VIEW ]({ refUri: uri, properties: { duration: 0 } });
|
|
@@ -5835,6 +5881,9 @@
|
|
|
5835
5881
|
_autoTrackPageVisitTime = false;
|
|
5836
5882
|
var location = getLocation(true);
|
|
5837
5883
|
_prevUri = location && location[_DYN_HREF ] || "";
|
|
5884
|
+
if (_self[_DYN_CORE ] && _self[_DYN_CORE ][_DYN_CONFIG ]) {
|
|
5885
|
+
_prevUri = fieldRedaction(_prevUri, _self[_DYN_CORE ][_DYN_CONFIG ]);
|
|
5886
|
+
}
|
|
5838
5887
|
_currUri = null;
|
|
5839
5888
|
_evtNamespace = null;
|
|
5840
5889
|
_extConfig = null;
|
|
@@ -5850,7 +5899,7 @@
|
|
|
5850
5899
|
});
|
|
5851
5900
|
return _this;
|
|
5852
5901
|
}
|
|
5853
|
-
AnalyticsPlugin.Version = '3.4.0-nightlybeta3.
|
|
5902
|
+
AnalyticsPlugin.Version = '3.4.0-nightlybeta3.2507-22';
|
|
5854
5903
|
return AnalyticsPlugin;
|
|
5855
5904
|
}(BaseTelemetryPlugin));
|
|
5856
5905
|
|