@microsoft/applicationinsights-analytics-js 2.8.0-nightly.2204-04 → 2.8.0-nightly.2204-07
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/applicationinsights-analytics-js.integrity.json +9 -9
- package/browser/applicationinsights-analytics-js.js +351 -440
- package/browser/applicationinsights-analytics-js.js.map +1 -1
- package/browser/applicationinsights-analytics-js.min.js +2 -2
- package/browser/applicationinsights-analytics-js.min.js.map +1 -1
- package/dist/applicationinsights-analytics-js.d.ts +1 -1
- package/dist/applicationinsights-analytics-js.js +351 -440
- package/dist/applicationinsights-analytics-js.js.map +1 -1
- package/dist/applicationinsights-analytics-js.min.js +2 -2
- package/dist/applicationinsights-analytics-js.min.js.map +1 -1
- package/dist/applicationinsights-analytics-js.rollup.d.ts +1 -1
- package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js +23 -23
- package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js.map +1 -1
- package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js +4 -4
- package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js.map +1 -1
- package/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js +6 -5
- package/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js.map +1 -1
- package/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js +6 -6
- package/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js.map +1 -1
- package/dist-esm/JavaScriptSDK/Timing.js +4 -4
- package/dist-esm/JavaScriptSDK/Timing.js.map +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryConfig.js +1 -1
- package/dist-esm/applicationinsights-analytics-js.js +1 -1
- package/package.json +5 -5
- package/src/JavaScriptSDK/AnalyticsPlugin.ts +34 -34
- package/src/JavaScriptSDK/Telemetry/PageViewManager.ts +8 -8
- package/src/JavaScriptSDK/Telemetry/PageViewPerformanceManager.ts +13 -11
- package/src/JavaScriptSDK/Telemetry/PageVisitTimeManager.ts +5 -5
- package/src/JavaScriptSDK/Timing.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageViewPerformanceManager.js.map","sources":["PageViewPerformanceManager.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getNavigator, getPerformance } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n }\r\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = this.getPerformanceNavigationTiming();\r\n var timing = this.getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming.duration;\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming.startTime === 0 ? navigationTiming.connectEnd : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n response = dateTimeUtilsDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing.navigationStart, timing.loadEventEnd);\r\n network = dateTimeUtilsDuration(timing.navigationStart, timing.connectEnd);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing.responseStart);\r\n response = dateTimeUtilsDuration(timing.responseStart, timing.responseEnd);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);\r\n }\r\n if (total === 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ErrorPVCalc, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InvalidDurationValue, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ClientPerformanceMathError, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n if (this.isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\r\n if (this.isPerformanceNavigationTimingSupported()) {\r\n return getPerformance().getEntriesByType(\"navigation\")[0];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.timing;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames.length; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations.length; i++) {\r\n if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"PageViewPerformanceManager.js.map","sources":["PageViewPerformanceManager.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { getNavigator, getPerformance, _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n }\r\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = this.getPerformanceNavigationTiming();\r\n var timing = this.getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming.duration;\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming.startTime === 0 ? navigationTiming.connectEnd : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n response = dateTimeUtilsDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing.navigationStart, timing.loadEventEnd);\r\n network = dateTimeUtilsDuration(timing.navigationStart, timing.connectEnd);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing.responseStart);\r\n response = dateTimeUtilsDuration(timing.responseStart, timing.responseEnd);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);\r\n }\r\n var logger = this._logger;\r\n if (total === 0) {\r\n _throwInternal(logger, 2 /* WARNING */, 10 /* ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n _throwInternal(logger, 2 /* WARNING */, 45 /* InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(logger, 2 /* WARNING */, 8 /* ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n if (this.isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\r\n if (this.isPerformanceNavigationTimingSupported()) {\r\n return getPerformance().getEntriesByType(\"navigation\")[0];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.timing;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames.length; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations.length; i++) {\r\n if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Web Analytics, 2.8.0-nightly.2204-
|
|
2
|
+
* Application Insights JavaScript SDK - Web Analytics, 2.8.0-nightly.2204-07
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
import { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from "@microsoft/applicationinsights-common";
|
|
8
|
-
import { hasJSON, getJSON, dateNow, dumpObj, throwError } from "@microsoft/applicationinsights-core-js";
|
|
8
|
+
import { hasJSON, getJSON, dateNow, dumpObj, throwError, _warnToConsole } from "@microsoft/applicationinsights-core-js";
|
|
9
9
|
/**
|
|
10
10
|
* Used to track page visit durations
|
|
11
11
|
*/
|
|
@@ -35,7 +35,7 @@ var PageVisitTimeManager = /** @class */ (function () {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
catch (e) {
|
|
38
|
-
this._logger
|
|
38
|
+
_warnToConsole(this._logger, "Auto track page visit time failed, metric will not be collected: " + dumpObj(e));
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
@@ -50,7 +50,7 @@ var PageVisitTimeManager = /** @class */ (function () {
|
|
|
50
50
|
return prevPageVisitData;
|
|
51
51
|
}
|
|
52
52
|
catch (e) {
|
|
53
|
-
this._logger
|
|
53
|
+
_warnToConsole(this._logger, "Call to restart failed: " + dumpObj(e));
|
|
54
54
|
return null;
|
|
55
55
|
}
|
|
56
56
|
};
|
|
@@ -72,7 +72,7 @@ var PageVisitTimeManager = /** @class */ (function () {
|
|
|
72
72
|
}
|
|
73
73
|
catch (e) {
|
|
74
74
|
// TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out
|
|
75
|
-
this._logger
|
|
75
|
+
_warnToConsole(this._logger, "Call to start failed: " + dumpObj(e));
|
|
76
76
|
}
|
|
77
77
|
};
|
|
78
78
|
/**
|
|
@@ -102,7 +102,7 @@ var PageVisitTimeManager = /** @class */ (function () {
|
|
|
102
102
|
return null;
|
|
103
103
|
}
|
|
104
104
|
catch (e) {
|
|
105
|
-
this._logger
|
|
105
|
+
_warnToConsole(this._logger, "Stop page visit timer failed: " + dumpObj(e));
|
|
106
106
|
return null;
|
|
107
107
|
}
|
|
108
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageVisitTimeManager.js.map","sources":["PageVisitTimeManager.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { hasJSON, getJSON, dateNow, dumpObj, throwError } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n this._logger
|
|
1
|
+
{"version":3,"file":"PageVisitTimeManager.js.map","sources":["PageVisitTimeManager.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { hasJSON, getJSON, dateNow, dumpObj, throwError, _warnToConsole } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(this._logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n var prevPageVisitData = this.stopPageVisitTimer();\r\n this.startPageVisitTimer(pageName, pageUrl);\r\n return prevPageVisitData;\r\n }\r\n catch (e) {\r\n _warnToConsole(this._logger, \"Call to restart failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n utlSetSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n _warnToConsole(this._logger, \"Call to start failed: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n var prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n // Return page visit data\r\n return prevPageVisitData;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n _warnToConsole(this._logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this.pageVisitStartTime = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Web Analytics, 2.8.0-nightly.2204-
|
|
2
|
+
* Application Insights JavaScript SDK - Web Analytics, 2.8.0-nightly.2204-07
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
import { dateTimeUtilsDuration } from "@microsoft/applicationinsights-common";
|
|
8
|
-
import {
|
|
8
|
+
import { _throwInternal } from "@microsoft/applicationinsights-core-js";
|
|
9
9
|
/**
|
|
10
10
|
* Used to record timed events and page views.
|
|
11
11
|
*/
|
|
@@ -15,14 +15,14 @@ var Timing = /** @class */ (function () {
|
|
|
15
15
|
var _events = {};
|
|
16
16
|
_self.start = function (name) {
|
|
17
17
|
if (typeof _events[name] !== "undefined") {
|
|
18
|
-
_throwInternal(logger,
|
|
18
|
+
_throwInternal(logger, 2 /* WARNING */, 62 /* StartCalledMoreThanOnce */, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
|
|
19
19
|
}
|
|
20
20
|
_events[name] = +new Date;
|
|
21
21
|
};
|
|
22
22
|
_self.stop = function (name, url, properties, measurements) {
|
|
23
23
|
var start = _events[name];
|
|
24
24
|
if (isNaN(start)) {
|
|
25
|
-
_throwInternal(logger,
|
|
25
|
+
_throwInternal(logger, 2 /* WARNING */, 63 /* StopCalledWithoutStart */, "stop was called without a corresponding start.", { name: name, key: name }, true);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
var end = +new Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timing.js.map","sources":["Timing.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport {
|
|
1
|
+
{"version":3,"file":"Timing.js.map","sources":["Timing.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* WARNING */, 62 /* StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* WARNING */, 63 /* StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/applicationinsights-analytics-js",
|
|
3
|
-
"version": "2.8.0-nightly.2204-
|
|
3
|
+
"version": "2.8.0-nightly.2204-07",
|
|
4
4
|
"description": "Microsoft Application Insights JavaScript SDK - Web Analytics",
|
|
5
5
|
"homepage": "https://github.com/microsoft/ApplicationInsights-JS#readme",
|
|
6
6
|
"author": "Microsoft Application Insights Team",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"@microsoft/ai-test-framework": "0.0.1",
|
|
27
27
|
"@microsoft/applicationinsights-rollup-plugin-uglify3-js": "1.0.0",
|
|
28
28
|
"@microsoft/applicationinsights-rollup-es3": "1.1.3",
|
|
29
|
-
"@microsoft/applicationinsights-properties-js": "2.8.0-nightly.2204-
|
|
30
|
-
"@microsoft/applicationinsights-channel-js": "2.8.0-nightly.2204-
|
|
29
|
+
"@microsoft/applicationinsights-properties-js": "2.8.0-nightly.2204-07",
|
|
30
|
+
"@microsoft/applicationinsights-channel-js": "2.8.0-nightly.2204-07",
|
|
31
31
|
"@microsoft/api-extractor": "^7.18.1",
|
|
32
32
|
"typescript": "^4.3.4",
|
|
33
33
|
"tslib": "^2.0.0",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@microsoft/dynamicproto-js": "^1.1.4",
|
|
55
55
|
"@microsoft/applicationinsights-shims": "2.0.1",
|
|
56
|
-
"@microsoft/applicationinsights-core-js": "2.8.0-nightly.2204-
|
|
57
|
-
"@microsoft/applicationinsights-common": "2.8.0-nightly.2204-
|
|
56
|
+
"@microsoft/applicationinsights-core-js": "2.8.0-nightly.2204-07",
|
|
57
|
+
"@microsoft/applicationinsights-common": "2.8.0-nightly.2204-07"
|
|
58
58
|
},
|
|
59
59
|
"license": "MIT",
|
|
60
60
|
"publishConfig": {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
IConfig, PageViewPerformance, IAppInsights, PageView, RemoteDependencyData, Event as EventTelemetry, IEventTelemetry,
|
|
8
|
-
|
|
8
|
+
createTelemetryItem, Metric, Exception, eSeverityLevel, Trace, IDependencyTelemetry,
|
|
9
9
|
IExceptionTelemetry, ITraceTelemetry, IMetricTelemetry, IAutoExceptionTelemetry,
|
|
10
10
|
IPageViewTelemetryInternal, IPageViewTelemetry, IPageViewPerformanceTelemetry, IPageViewPerformanceTelemetryInternal,
|
|
11
11
|
IExceptionInternal, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, stringToBoolOrDefault, createDomEvent,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
IPlugin, IConfiguration, IAppInsightsCore,
|
|
17
17
|
BaseTelemetryPlugin, ITelemetryItem, IProcessTelemetryContext, ITelemetryPluginChain,
|
|
18
|
-
|
|
18
|
+
eLoggingSeverity, _eInternalMessageId, ICustomProperties,
|
|
19
19
|
getWindow, getDocument, getHistory, getLocation, objForEachKey,
|
|
20
20
|
isString, isFunction, isNullOrUndefined, arrForEach, generateW3CId, dumpObj, getExceptionName, ICookieMgr, safeGetCookieMgr,
|
|
21
21
|
TelemetryInitializerFunction, hasHistory, strUndefined, objDefineAccessors, InstrumentFunc, IInstrumentCallDetails, eventOn, eventOff,
|
|
@@ -109,7 +109,7 @@ function _updateStorageUsage(extConfig: IConfig) {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights, IAppInsightsInternal {
|
|
112
|
-
public static Version = "2.8.0-nightly.2204-
|
|
112
|
+
public static Version = "2.8.0-nightly.2204-07"; // Not currently used anywhere
|
|
113
113
|
|
|
114
114
|
public static getDefaultConfig = _getDefaultConfig;
|
|
115
115
|
|
|
@@ -162,7 +162,7 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
162
162
|
|
|
163
163
|
_self.trackEvent = (event: IEventTelemetry, customProperties?: ICustomProperties): void => {
|
|
164
164
|
try {
|
|
165
|
-
let telemetryItem =
|
|
165
|
+
let telemetryItem = createTelemetryItem<IEventTelemetry>(
|
|
166
166
|
event,
|
|
167
167
|
EventTelemetry.dataType,
|
|
168
168
|
EventTelemetry.envelopeType,
|
|
@@ -172,8 +172,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
172
172
|
|
|
173
173
|
_self.core.track(telemetryItem);
|
|
174
174
|
} catch (e) {
|
|
175
|
-
_throwInternal(
|
|
176
|
-
|
|
175
|
+
_throwInternal(eLoggingSeverity.WARNING,
|
|
176
|
+
_eInternalMessageId.TrackTraceFailed,
|
|
177
177
|
"trackTrace failed, trace will not be collected: " + getExceptionName(e),
|
|
178
178
|
{ exception: dumpObj(e) });
|
|
179
179
|
}
|
|
@@ -187,8 +187,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
187
187
|
try {
|
|
188
188
|
_eventTracking.start(name);
|
|
189
189
|
} catch (e) {
|
|
190
|
-
_throwInternal(
|
|
191
|
-
|
|
190
|
+
_throwInternal(eLoggingSeverity.CRITICAL,
|
|
191
|
+
_eInternalMessageId.StartTrackEventFailed,
|
|
192
192
|
"startTrackEvent failed, event will not be collected: " + getExceptionName(e),
|
|
193
193
|
{ exception: dumpObj(e) });
|
|
194
194
|
}
|
|
@@ -204,8 +204,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
204
204
|
try {
|
|
205
205
|
_eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated
|
|
206
206
|
} catch (e) {
|
|
207
|
-
_throwInternal(
|
|
208
|
-
|
|
207
|
+
_throwInternal(eLoggingSeverity.CRITICAL,
|
|
208
|
+
_eInternalMessageId.StopTrackEventFailed,
|
|
209
209
|
"stopTrackEvent failed, event will not be collected: " + getExceptionName(e),
|
|
210
210
|
{ exception: dumpObj(e) });
|
|
211
211
|
}
|
|
@@ -219,7 +219,7 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
219
219
|
*/
|
|
220
220
|
_self.trackTrace = (trace: ITraceTelemetry, customProperties?: ICustomProperties): void => {
|
|
221
221
|
try {
|
|
222
|
-
let telemetryItem =
|
|
222
|
+
let telemetryItem = createTelemetryItem<ITraceTelemetry>(
|
|
223
223
|
trace,
|
|
224
224
|
Trace.dataType,
|
|
225
225
|
Trace.envelopeType,
|
|
@@ -228,8 +228,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
228
228
|
|
|
229
229
|
_self.core.track(telemetryItem);
|
|
230
230
|
} catch (e) {
|
|
231
|
-
_throwInternal(
|
|
232
|
-
|
|
231
|
+
_throwInternal(eLoggingSeverity.WARNING,
|
|
232
|
+
_eInternalMessageId.TrackTraceFailed,
|
|
233
233
|
"trackTrace failed, trace will not be collected: " + getExceptionName(e),
|
|
234
234
|
{ exception: dumpObj(e) });
|
|
235
235
|
}
|
|
@@ -248,7 +248,7 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
248
248
|
*/
|
|
249
249
|
_self.trackMetric = (metric: IMetricTelemetry, customProperties?: ICustomProperties): void => {
|
|
250
250
|
try {
|
|
251
|
-
let telemetryItem =
|
|
251
|
+
let telemetryItem = createTelemetryItem<IMetricTelemetry>(
|
|
252
252
|
metric,
|
|
253
253
|
Metric.dataType,
|
|
254
254
|
Metric.envelopeType,
|
|
@@ -258,8 +258,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
258
258
|
|
|
259
259
|
_self.core.track(telemetryItem);
|
|
260
260
|
} catch (e) {
|
|
261
|
-
_throwInternal(
|
|
262
|
-
|
|
261
|
+
_throwInternal(eLoggingSeverity.CRITICAL,
|
|
262
|
+
_eInternalMessageId.TrackMetricFailed,
|
|
263
263
|
"trackMetric failed, metric will not be collected: " + getExceptionName(e),
|
|
264
264
|
{ exception: dumpObj(e) });
|
|
265
265
|
}
|
|
@@ -281,8 +281,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
281
281
|
}
|
|
282
282
|
} catch (e) {
|
|
283
283
|
_throwInternal(
|
|
284
|
-
|
|
285
|
-
|
|
284
|
+
eLoggingSeverity.CRITICAL,
|
|
285
|
+
_eInternalMessageId.TrackPVFailed,
|
|
286
286
|
"trackPageView failed, page view will not be collected: " + getExceptionName(e),
|
|
287
287
|
{ exception: dumpObj(e) });
|
|
288
288
|
}
|
|
@@ -300,7 +300,7 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
300
300
|
pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
-
let telemetryItem =
|
|
303
|
+
let telemetryItem = createTelemetryItem<IPageViewTelemetryInternal>(
|
|
304
304
|
pageView,
|
|
305
305
|
PageView.dataType,
|
|
306
306
|
PageView.envelopeType,
|
|
@@ -320,7 +320,7 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
320
320
|
* @param properties
|
|
321
321
|
*/
|
|
322
322
|
_self.sendPageViewPerformanceInternal = (pageViewPerformance: IPageViewPerformanceTelemetryInternal, properties?: { [key: string]: any }, systemProperties?: { [key: string]: any }) => {
|
|
323
|
-
let telemetryItem =
|
|
323
|
+
let telemetryItem = createTelemetryItem<IPageViewPerformanceTelemetryInternal>(
|
|
324
324
|
pageViewPerformance,
|
|
325
325
|
PageViewPerformance.dataType,
|
|
326
326
|
PageViewPerformance.envelopeType,
|
|
@@ -343,8 +343,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
343
343
|
_self.sendPageViewPerformanceInternal(inPvp, customProperties);
|
|
344
344
|
} catch (e) {
|
|
345
345
|
_throwInternal(
|
|
346
|
-
|
|
347
|
-
|
|
346
|
+
eLoggingSeverity.CRITICAL,
|
|
347
|
+
_eInternalMessageId.TrackPVFailed,
|
|
348
348
|
"trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e),
|
|
349
349
|
{ exception: dumpObj(e) });
|
|
350
350
|
}
|
|
@@ -366,8 +366,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
366
366
|
_pageTracking.start(name);
|
|
367
367
|
} catch (e) {
|
|
368
368
|
_throwInternal(
|
|
369
|
-
|
|
370
|
-
|
|
369
|
+
eLoggingSeverity.CRITICAL,
|
|
370
|
+
_eInternalMessageId.StartTrackFailed,
|
|
371
371
|
"startTrackPage failed, page view may not be collected: " + getExceptionName(e),
|
|
372
372
|
{ exception: dumpObj(e) });
|
|
373
373
|
}
|
|
@@ -400,8 +400,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
400
400
|
}
|
|
401
401
|
} catch (e) {
|
|
402
402
|
_throwInternal(
|
|
403
|
-
|
|
404
|
-
|
|
403
|
+
eLoggingSeverity.CRITICAL,
|
|
404
|
+
_eInternalMessageId.StopTrackFailed,
|
|
405
405
|
"stopTrackPage failed, page view will not be collected: " + getExceptionName(e),
|
|
406
406
|
{ exception: dumpObj(e) });
|
|
407
407
|
}
|
|
@@ -424,7 +424,7 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
424
424
|
exception.id
|
|
425
425
|
).toInterface();
|
|
426
426
|
|
|
427
|
-
let telemetryItem: ITelemetryItem =
|
|
427
|
+
let telemetryItem: ITelemetryItem = createTelemetryItem<IExceptionInternal>(
|
|
428
428
|
exceptionPartB,
|
|
429
429
|
Exception.dataType,
|
|
430
430
|
Exception.envelopeType,
|
|
@@ -453,8 +453,8 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
453
453
|
_self.sendExceptionInternal(exception, customProperties);
|
|
454
454
|
} catch (e) {
|
|
455
455
|
_throwInternal(
|
|
456
|
-
|
|
457
|
-
|
|
456
|
+
eLoggingSeverity.CRITICAL,
|
|
457
|
+
_eInternalMessageId.TrackExceptionFailed,
|
|
458
458
|
"trackException failed, exception will not be collected: " + getExceptionName(e),
|
|
459
459
|
{ exception: dumpObj(e) });
|
|
460
460
|
}
|
|
@@ -502,14 +502,14 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
502
502
|
if (!exception.errorSrc) {
|
|
503
503
|
exception.errorSrc = errorSrc;
|
|
504
504
|
}
|
|
505
|
-
_self.trackException({ exception, severityLevel:
|
|
505
|
+
_self.trackException({ exception, severityLevel: eSeverityLevel.Error }, properties);
|
|
506
506
|
}
|
|
507
507
|
} catch (e) {
|
|
508
508
|
const errorString = error ? (error.name + ", " + error.message) : "null";
|
|
509
509
|
|
|
510
510
|
_throwInternal(
|
|
511
|
-
|
|
512
|
-
|
|
511
|
+
eLoggingSeverity.CRITICAL,
|
|
512
|
+
_eInternalMessageId.ExceptionWhileLoggingError,
|
|
513
513
|
"_onError threw exception while logging error, error will not be collected: "
|
|
514
514
|
+ getExceptionName(e),
|
|
515
515
|
{ exception: dumpObj(e), errorString }
|
|
@@ -677,7 +677,7 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
677
677
|
}
|
|
678
678
|
|
|
679
679
|
function _sendCORSException(exception: IAutoExceptionTelemetry, properties?: ICustomProperties) {
|
|
680
|
-
let telemetryItem: ITelemetryItem =
|
|
680
|
+
let telemetryItem: ITelemetryItem = createTelemetryItem<IAutoExceptionTelemetry>(
|
|
681
681
|
exception,
|
|
682
682
|
Exception.dataType,
|
|
683
683
|
Exception.envelopeType,
|
|
@@ -839,7 +839,7 @@ export class AnalyticsPlugin extends BaseTelemetryPlugin implements IAppInsights
|
|
|
839
839
|
* @param severity {LoggingSeverity} - The severity of the log message
|
|
840
840
|
* @param message {_InternalLogMessage} - The log message.
|
|
841
841
|
*/
|
|
842
|
-
function _throwInternal(severity:
|
|
842
|
+
function _throwInternal(severity: eLoggingSeverity, msgId: _eInternalMessageId, msg: string, properties?: Object, isUserAct?: boolean): void {
|
|
843
843
|
_self.diagLog().throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
844
844
|
}
|
|
845
845
|
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
dateTimeUtilsDuration, IPageViewTelemetry, IPageViewTelemetryInternal, IPageViewPerformanceTelemetryInternal
|
|
6
6
|
} from "@microsoft/applicationinsights-common";
|
|
7
7
|
import {
|
|
8
|
-
IAppInsightsCore, IDiagnosticLogger,
|
|
9
|
-
|
|
8
|
+
IAppInsightsCore, IDiagnosticLogger, eLoggingSeverity,
|
|
9
|
+
_eInternalMessageId, getDocument, getLocation, arrForEach, isNullOrUndefined, getExceptionName, dumpObj, IProcessTelemetryUnloadContext, ITelemetryUnloadState, _throwInternal
|
|
10
10
|
} from "@microsoft/applicationinsights-core-js";
|
|
11
11
|
import { PageViewPerformanceManager } from "./PageViewPerformanceManager";
|
|
12
12
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
@@ -100,9 +100,9 @@ export class PageViewManager {
|
|
|
100
100
|
_flushChannels(true);
|
|
101
101
|
|
|
102
102
|
// no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)
|
|
103
|
-
_logger
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
_throwInternal(_logger,
|
|
104
|
+
eLoggingSeverity.WARNING,
|
|
105
|
+
_eInternalMessageId.NavigationTimingNotSupported,
|
|
106
106
|
"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.");
|
|
107
107
|
|
|
108
108
|
return;
|
|
@@ -196,9 +196,9 @@ export class PageViewManager {
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
} catch (e) {
|
|
199
|
-
_logger
|
|
200
|
-
|
|
201
|
-
|
|
199
|
+
_throwInternal(_logger,
|
|
200
|
+
eLoggingSeverity.CRITICAL,
|
|
201
|
+
_eInternalMessageId.TrackPVFailedCalc,
|
|
202
202
|
"trackPageView failed on page load calculation: " + getExceptionName(e),
|
|
203
203
|
{ exception: dumpObj(e) });
|
|
204
204
|
}
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
IPageViewPerformanceTelemetryInternal, dateTimeUtilsDuration, msToTimeSpan
|
|
6
6
|
} from "@microsoft/applicationinsights-common";
|
|
7
7
|
import {
|
|
8
|
-
IAppInsightsCore, IDiagnosticLogger,
|
|
9
|
-
|
|
8
|
+
IAppInsightsCore, IDiagnosticLogger, eLoggingSeverity,
|
|
9
|
+
_eInternalMessageId, getNavigator, getPerformance, _throwInternal
|
|
10
10
|
} from "@microsoft/applicationinsights-core-js";
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -74,26 +74,28 @@ export class PageViewPerformanceManager {
|
|
|
74
74
|
dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
let logger = this._logger;
|
|
78
|
+
|
|
77
79
|
if (total === 0) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
_throwInternal(logger,
|
|
81
|
+
eLoggingSeverity.WARNING,
|
|
82
|
+
_eInternalMessageId.ErrorPVCalc,
|
|
81
83
|
"error calculating page view performance.",
|
|
82
84
|
{ total, network, request, response, dom });
|
|
83
85
|
|
|
84
86
|
} else if (!this.shouldCollectDuration(total, network, request, response, dom)) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
_throwInternal(logger,
|
|
88
|
+
eLoggingSeverity.WARNING,
|
|
89
|
+
_eInternalMessageId.InvalidDurationValue,
|
|
88
90
|
"Invalid page load duration value. Browser perf data won't be sent.",
|
|
89
91
|
{ total, network, request, response, dom });
|
|
90
92
|
|
|
91
93
|
} else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {
|
|
92
94
|
// some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT
|
|
93
95
|
// in this case, don't report client performance from this page
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
_throwInternal(logger,
|
|
97
|
+
eLoggingSeverity.WARNING,
|
|
98
|
+
_eInternalMessageId.ClientPerformanceMathError,
|
|
97
99
|
"client performance math error.",
|
|
98
100
|
{ total, network, request, response, dom });
|
|
99
101
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
|
|
4
4
|
import { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from "@microsoft/applicationinsights-common";
|
|
5
|
-
import { IDiagnosticLogger, hasJSON, getJSON, dateNow, dumpObj, throwError } from "@microsoft/applicationinsights-core-js";
|
|
5
|
+
import { IDiagnosticLogger, hasJSON, getJSON, dateNow, dumpObj, throwError, _warnToConsole } from "@microsoft/applicationinsights-core-js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Used to track page visit durations
|
|
@@ -39,7 +39,7 @@ export class PageVisitTimeManager {
|
|
|
39
39
|
this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);
|
|
40
40
|
}
|
|
41
41
|
} catch (e) {
|
|
42
|
-
this._logger
|
|
42
|
+
_warnToConsole(this._logger, "Auto track page visit time failed, metric will not be collected: " + dumpObj(e));
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
|
|
@@ -55,7 +55,7 @@ export class PageVisitTimeManager {
|
|
|
55
55
|
|
|
56
56
|
return prevPageVisitData;
|
|
57
57
|
} catch (e) {
|
|
58
|
-
this._logger
|
|
58
|
+
_warnToConsole(this._logger, "Call to restart failed: " + dumpObj(e));
|
|
59
59
|
return null;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
@@ -78,7 +78,7 @@ export class PageVisitTimeManager {
|
|
|
78
78
|
}
|
|
79
79
|
} catch (e) {
|
|
80
80
|
// TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out
|
|
81
|
-
this._logger
|
|
81
|
+
_warnToConsole(this._logger, "Call to start failed: " + dumpObj(e));
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
@@ -113,7 +113,7 @@ export class PageVisitTimeManager {
|
|
|
113
113
|
}
|
|
114
114
|
return null;
|
|
115
115
|
} catch (e) {
|
|
116
|
-
this._logger
|
|
116
|
+
_warnToConsole(this._logger, "Stop page visit timer failed: " + dumpObj(e));
|
|
117
117
|
return null;
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
|
|
4
4
|
import { dateTimeUtilsDuration } from "@microsoft/applicationinsights-common";
|
|
5
|
-
import { IDiagnosticLogger,
|
|
5
|
+
import { IDiagnosticLogger, eLoggingSeverity, _eInternalMessageId, _throwInternal } from "@microsoft/applicationinsights-core-js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Used to record timed events and page views.
|
|
@@ -20,7 +20,7 @@ export class Timing {
|
|
|
20
20
|
_self.start = (name: string) => {
|
|
21
21
|
if (typeof _events[name] !== "undefined") {
|
|
22
22
|
_throwInternal(logger,
|
|
23
|
-
|
|
23
|
+
eLoggingSeverity.WARNING, _eInternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.",
|
|
24
24
|
{ name, key: name }, true);
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -31,7 +31,7 @@ export class Timing {
|
|
|
31
31
|
const start = _events[name];
|
|
32
32
|
if (isNaN(start)) {
|
|
33
33
|
_throwInternal(logger,
|
|
34
|
-
|
|
34
|
+
eLoggingSeverity.WARNING, _eInternalMessageId.StopCalledWithoutStart, "stop was called without a corresponding start.",
|
|
35
35
|
{ name, key: name }, true);
|
|
36
36
|
} else {
|
|
37
37
|
const end = +new Date;
|