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