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