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