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