@cloudcare/browser-rum-slim 3.3.3
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/LICENSE +21 -0
- package/README.md +15 -0
- package/bundle/dataflux-rum-slim.js +1 -0
- package/cjs/boot/buildEnv.js +11 -0
- package/cjs/boot/buildEnv.js.map +1 -0
- package/cjs/boot/perStartRum.js +227 -0
- package/cjs/boot/perStartRum.js.map +1 -0
- package/cjs/boot/rum.js +180 -0
- package/cjs/boot/rum.js.map +1 -0
- package/cjs/boot/rum.slim.entry.js +13 -0
- package/cjs/boot/rum.slim.entry.js.map +1 -0
- package/cjs/boot/rumEntryFactory.js +15 -0
- package/cjs/boot/rumEntryFactory.js.map +1 -0
- package/cjs/boot/rumPublicApi.js +285 -0
- package/cjs/boot/rumPublicApi.js.map +1 -0
- package/cjs/boot/rumRecorderApiStub.js +19 -0
- package/cjs/boot/rumRecorderApiStub.js.map +1 -0
- package/cjs/boot/rumSlimConfiguration.js +16 -0
- package/cjs/boot/rumSlimConfiguration.js.map +1 -0
- package/cjs/constants.js +41 -0
- package/cjs/constants.js.map +1 -0
- package/cjs/domain/assembly.js +172 -0
- package/cjs/domain/assembly.js.map +1 -0
- package/cjs/domain/configuration.js +272 -0
- package/cjs/domain/configuration.js.map +1 -0
- package/cjs/domain/contexts/commonContext.js +14 -0
- package/cjs/domain/contexts/commonContext.js.map +1 -0
- package/cjs/domain/contexts/displayContext.js +22 -0
- package/cjs/domain/contexts/displayContext.js.map +1 -0
- package/cjs/domain/contexts/foregroundContexts.js +111 -0
- package/cjs/domain/contexts/foregroundContexts.js.map +1 -0
- package/cjs/domain/contexts/internalContext.js +47 -0
- package/cjs/domain/contexts/internalContext.js.map +1 -0
- package/cjs/domain/contexts/pageStateHistory.js +111 -0
- package/cjs/domain/contexts/pageStateHistory.js.map +1 -0
- package/cjs/domain/contexts/urlContexts.js +73 -0
- package/cjs/domain/contexts/urlContexts.js.map +1 -0
- package/cjs/domain/contexts/viewContexts.js +51 -0
- package/cjs/domain/contexts/viewContexts.js.map +1 -0
- package/cjs/domain/domMutationObservable.js +69 -0
- package/cjs/domain/domMutationObservable.js.map +1 -0
- package/cjs/domain/encoderStreamId.js +11 -0
- package/cjs/domain/encoderStreamId.js.map +1 -0
- package/cjs/domain/firstInputPolyfill.js +83 -0
- package/cjs/domain/firstInputPolyfill.js.map +1 -0
- package/cjs/domain/initViewportObservable.js +44 -0
- package/cjs/domain/initViewportObservable.js.map +1 -0
- package/cjs/domain/locationChangeObservable.js +57 -0
- package/cjs/domain/locationChangeObservable.js.map +1 -0
- package/cjs/domain/performanceObservable.js +124 -0
- package/cjs/domain/performanceObservable.js.map +1 -0
- package/cjs/domain/performanceUtils.js +47 -0
- package/cjs/domain/performanceUtils.js.map +1 -0
- package/cjs/domain/requestCollection.js +127 -0
- package/cjs/domain/requestCollection.js.map +1 -0
- package/cjs/domain/rumEventsCollection/actions/actionCollection.js +89 -0
- package/cjs/domain/rumEventsCollection/actions/actionCollection.js.map +1 -0
- package/cjs/domain/rumEventsCollection/actions/clickChain.js +69 -0
- package/cjs/domain/rumEventsCollection/actions/clickChain.js.map +1 -0
- package/cjs/domain/rumEventsCollection/actions/computeFrustration.js +75 -0
- package/cjs/domain/rumEventsCollection/actions/computeFrustration.js.map +1 -0
- package/cjs/domain/rumEventsCollection/actions/getActionNameFromElement.js +232 -0
- package/cjs/domain/rumEventsCollection/actions/getActionNameFromElement.js.map +1 -0
- package/cjs/domain/rumEventsCollection/actions/getSelectorsFromElement.js +220 -0
- package/cjs/domain/rumEventsCollection/actions/getSelectorsFromElement.js.map +1 -0
- package/cjs/domain/rumEventsCollection/actions/interactionSelectorCache.js +28 -0
- package/cjs/domain/rumEventsCollection/actions/interactionSelectorCache.js.map +1 -0
- package/cjs/domain/rumEventsCollection/actions/listenActionEvents.js +73 -0
- package/cjs/domain/rumEventsCollection/actions/listenActionEvents.js.map +1 -0
- package/cjs/domain/rumEventsCollection/actions/trackClickActions.js +253 -0
- package/cjs/domain/rumEventsCollection/actions/trackClickActions.js.map +1 -0
- package/cjs/domain/rumEventsCollection/error/errorCollection.js +90 -0
- package/cjs/domain/rumEventsCollection/error/errorCollection.js.map +1 -0
- package/cjs/domain/rumEventsCollection/error/trackConsoleError.js +18 -0
- package/cjs/domain/rumEventsCollection/error/trackConsoleError.js.map +1 -0
- package/cjs/domain/rumEventsCollection/error/trackReportError.js +25 -0
- package/cjs/domain/rumEventsCollection/error/trackReportError.js.map +1 -0
- package/cjs/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js +61 -0
- package/cjs/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js.map +1 -0
- package/cjs/domain/rumEventsCollection/longTask/longTaskCollection.js +44 -0
- package/cjs/domain/rumEventsCollection/longTask/longTaskCollection.js.map +1 -0
- package/cjs/domain/rumEventsCollection/resource/matchRequestResourceEntry.js +74 -0
- package/cjs/domain/rumEventsCollection/resource/matchRequestResourceEntry.js.map +1 -0
- package/cjs/domain/rumEventsCollection/resource/resourceCollection.js +239 -0
- package/cjs/domain/rumEventsCollection/resource/resourceCollection.js.map +1 -0
- package/cjs/domain/rumEventsCollection/resource/resourceTrackerManager.js +237 -0
- package/cjs/domain/rumEventsCollection/resource/resourceTrackerManager.js.map +1 -0
- package/cjs/domain/rumEventsCollection/resource/resourceUtils.js +240 -0
- package/cjs/domain/rumEventsCollection/resource/resourceUtils.js.map +1 -0
- package/cjs/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js +25 -0
- package/cjs/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/interactionCountPolyfill.js +54 -0
- package/cjs/domain/rumEventsCollection/view/interactionCountPolyfill.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackCommonViewMetrics.js +48 -0
- package/cjs/domain/rumEventsCollection/view/trackCommonViewMetrics.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js +125 -0
- package/cjs/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackFirstContentfulPaint.js +27 -0
- package/cjs/domain/rumEventsCollection/view/trackFirstContentfulPaint.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackFirstHidden.js +55 -0
- package/cjs/domain/rumEventsCollection/view/trackFirstHidden.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackFirstInput.js +47 -0
- package/cjs/domain/rumEventsCollection/view/trackFirstInput.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackInitialViewTimings.js +51 -0
- package/cjs/domain/rumEventsCollection/view/trackInitialViewTimings.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackInteractionToNextPaint.js +162 -0
- package/cjs/domain/rumEventsCollection/view/trackInteractionToNextPaint.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackLargestContentfulPaint.js +61 -0
- package/cjs/domain/rumEventsCollection/view/trackLargestContentfulPaint.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackLoadingTime.js +51 -0
- package/cjs/domain/rumEventsCollection/view/trackLoadingTime.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackNavigationTimings.js +57 -0
- package/cjs/domain/rumEventsCollection/view/trackNavigationTimings.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackScrollMetrics.js +92 -0
- package/cjs/domain/rumEventsCollection/view/trackScrollMetrics.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackViewEventCounts.js +21 -0
- package/cjs/domain/rumEventsCollection/view/trackViewEventCounts.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/trackViews.js +269 -0
- package/cjs/domain/rumEventsCollection/view/trackViews.js.map +1 -0
- package/cjs/domain/rumEventsCollection/view/viewCollection.js +131 -0
- package/cjs/domain/rumEventsCollection/view/viewCollection.js.map +1 -0
- package/cjs/domain/rumSessionManager.js +187 -0
- package/cjs/domain/rumSessionManager.js.map +1 -0
- package/cjs/domain/tracing/ddtraceTracer.js +46 -0
- package/cjs/domain/tracing/ddtraceTracer.js.map +1 -0
- package/cjs/domain/tracing/getDocumentTraceId.js +80 -0
- package/cjs/domain/tracing/getDocumentTraceId.js.map +1 -0
- package/cjs/domain/tracing/jaegerTracer.js +48 -0
- package/cjs/domain/tracing/jaegerTracer.js.map +1 -0
- package/cjs/domain/tracing/sampler.js +69 -0
- package/cjs/domain/tracing/sampler.js.map +1 -0
- package/cjs/domain/tracing/skywalkingTracer.js +96 -0
- package/cjs/domain/tracing/skywalkingTracer.js.map +1 -0
- package/cjs/domain/tracing/traceIdentifier.js +66 -0
- package/cjs/domain/tracing/traceIdentifier.js.map +1 -0
- package/cjs/domain/tracing/tracer.js +133 -0
- package/cjs/domain/tracing/tracer.js.map +1 -0
- package/cjs/domain/tracing/w3cTraceParentTracer.js +74 -0
- package/cjs/domain/tracing/w3cTraceParentTracer.js.map +1 -0
- package/cjs/domain/tracing/zipkinMultiTracer.js +48 -0
- package/cjs/domain/tracing/zipkinMultiTracer.js.map +1 -0
- package/cjs/domain/tracing/zipkinSingleTracer.js +47 -0
- package/cjs/domain/tracing/zipkinSingleTracer.js.map +1 -0
- package/cjs/domain/trackEventCounts.js +55 -0
- package/cjs/domain/trackEventCounts.js.map +1 -0
- package/cjs/domain/usr/index.js +44 -0
- package/cjs/domain/usr/index.js.map +1 -0
- package/cjs/domain/waitPageActivityEnd.js +151 -0
- package/cjs/domain/waitPageActivityEnd.js.map +1 -0
- package/cjs/index.js +13 -0
- package/cjs/index.js.map +1 -0
- package/cjs/transport/startRumBatch.js +26 -0
- package/cjs/transport/startRumBatch.js.map +1 -0
- package/cjs/transport/startRumEventBridge.js +15 -0
- package/cjs/transport/startRumEventBridge.js.map +1 -0
- package/esm/boot/buildEnv.js +5 -0
- package/esm/boot/buildEnv.js.map +1 -0
- package/esm/boot/perStartRum.js +221 -0
- package/esm/boot/perStartRum.js.map +1 -0
- package/esm/boot/rum.js +173 -0
- package/esm/boot/rum.js.map +1 -0
- package/esm/boot/rum.slim.entry.js +7 -0
- package/esm/boot/rum.slim.entry.js.map +1 -0
- package/esm/boot/rumEntryFactory.js +9 -0
- package/esm/boot/rumEntryFactory.js.map +1 -0
- package/esm/boot/rumPublicApi.js +279 -0
- package/esm/boot/rumPublicApi.js.map +1 -0
- package/esm/boot/rumRecorderApiStub.js +13 -0
- package/esm/boot/rumRecorderApiStub.js.map +1 -0
- package/esm/boot/rumSlimConfiguration.js +10 -0
- package/esm/boot/rumSlimConfiguration.js.map +1 -0
- package/esm/constants.js +35 -0
- package/esm/constants.js.map +1 -0
- package/esm/domain/assembly.js +166 -0
- package/esm/domain/assembly.js.map +1 -0
- package/esm/domain/configuration.js +266 -0
- package/esm/domain/configuration.js.map +1 -0
- package/esm/domain/contexts/commonContext.js +8 -0
- package/esm/domain/contexts/commonContext.js.map +1 -0
- package/esm/domain/contexts/displayContext.js +16 -0
- package/esm/domain/contexts/displayContext.js.map +1 -0
- package/esm/domain/contexts/foregroundContexts.js +103 -0
- package/esm/domain/contexts/foregroundContexts.js.map +1 -0
- package/esm/domain/contexts/internalContext.js +41 -0
- package/esm/domain/contexts/internalContext.js.map +1 -0
- package/esm/domain/contexts/pageStateHistory.js +104 -0
- package/esm/domain/contexts/pageStateHistory.js.map +1 -0
- package/esm/domain/contexts/urlContexts.js +67 -0
- package/esm/domain/contexts/urlContexts.js.map +1 -0
- package/esm/domain/contexts/viewContexts.js +44 -0
- package/esm/domain/contexts/viewContexts.js.map +1 -0
- package/esm/domain/domMutationObservable.js +62 -0
- package/esm/domain/domMutationObservable.js.map +1 -0
- package/esm/domain/encoderStreamId.js +5 -0
- package/esm/domain/encoderStreamId.js.map +1 -0
- package/esm/domain/firstInputPolyfill.js +77 -0
- package/esm/domain/firstInputPolyfill.js.map +1 -0
- package/esm/domain/initViewportObservable.js +36 -0
- package/esm/domain/initViewportObservable.js.map +1 -0
- package/esm/domain/locationChangeObservable.js +51 -0
- package/esm/domain/locationChangeObservable.js.map +1 -0
- package/esm/domain/performanceObservable.js +116 -0
- package/esm/domain/performanceObservable.js.map +1 -0
- package/esm/domain/performanceUtils.js +40 -0
- package/esm/domain/performanceUtils.js.map +1 -0
- package/esm/domain/requestCollection.js +119 -0
- package/esm/domain/requestCollection.js.map +1 -0
- package/esm/domain/rumEventsCollection/actions/actionCollection.js +83 -0
- package/esm/domain/rumEventsCollection/actions/actionCollection.js.map +1 -0
- package/esm/domain/rumEventsCollection/actions/clickChain.js +62 -0
- package/esm/domain/rumEventsCollection/actions/clickChain.js.map +1 -0
- package/esm/domain/rumEventsCollection/actions/computeFrustration.js +67 -0
- package/esm/domain/rumEventsCollection/actions/computeFrustration.js.map +1 -0
- package/esm/domain/rumEventsCollection/actions/getActionNameFromElement.js +225 -0
- package/esm/domain/rumEventsCollection/actions/getActionNameFromElement.js.map +1 -0
- package/esm/domain/rumEventsCollection/actions/getSelectorsFromElement.js +212 -0
- package/esm/domain/rumEventsCollection/actions/getSelectorsFromElement.js.map +1 -0
- package/esm/domain/rumEventsCollection/actions/interactionSelectorCache.js +20 -0
- package/esm/domain/rumEventsCollection/actions/interactionSelectorCache.js.map +1 -0
- package/esm/domain/rumEventsCollection/actions/listenActionEvents.js +67 -0
- package/esm/domain/rumEventsCollection/actions/listenActionEvents.js.map +1 -0
- package/esm/domain/rumEventsCollection/actions/trackClickActions.js +244 -0
- package/esm/domain/rumEventsCollection/actions/trackClickActions.js.map +1 -0
- package/esm/domain/rumEventsCollection/error/errorCollection.js +83 -0
- package/esm/domain/rumEventsCollection/error/errorCollection.js.map +1 -0
- package/esm/domain/rumEventsCollection/error/trackConsoleError.js +12 -0
- package/esm/domain/rumEventsCollection/error/trackConsoleError.js.map +1 -0
- package/esm/domain/rumEventsCollection/error/trackReportError.js +19 -0
- package/esm/domain/rumEventsCollection/error/trackReportError.js.map +1 -0
- package/esm/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js +55 -0
- package/esm/domain/rumEventsCollection/longTask/longAnimationFrameCollection.js.map +1 -0
- package/esm/domain/rumEventsCollection/longTask/longTaskCollection.js +38 -0
- package/esm/domain/rumEventsCollection/longTask/longTaskCollection.js.map +1 -0
- package/esm/domain/rumEventsCollection/resource/matchRequestResourceEntry.js +69 -0
- package/esm/domain/rumEventsCollection/resource/matchRequestResourceEntry.js.map +1 -0
- package/esm/domain/rumEventsCollection/resource/resourceCollection.js +233 -0
- package/esm/domain/rumEventsCollection/resource/resourceCollection.js.map +1 -0
- package/esm/domain/rumEventsCollection/resource/resourceTrackerManager.js +231 -0
- package/esm/domain/rumEventsCollection/resource/resourceTrackerManager.js.map +1 -0
- package/esm/domain/rumEventsCollection/resource/resourceUtils.js +218 -0
- package/esm/domain/rumEventsCollection/resource/resourceUtils.js.map +1 -0
- package/esm/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js +19 -0
- package/esm/domain/rumEventsCollection/resource/retrieveInitialDocumentResourceTiming.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/interactionCountPolyfill.js +47 -0
- package/esm/domain/rumEventsCollection/view/interactionCountPolyfill.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackCommonViewMetrics.js +42 -0
- package/esm/domain/rumEventsCollection/view/trackCommonViewMetrics.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js +117 -0
- package/esm/domain/rumEventsCollection/view/trackCumulativeLayoutShift.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackFirstContentfulPaint.js +20 -0
- package/esm/domain/rumEventsCollection/view/trackFirstContentfulPaint.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackFirstHidden.js +49 -0
- package/esm/domain/rumEventsCollection/view/trackFirstHidden.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackFirstInput.js +41 -0
- package/esm/domain/rumEventsCollection/view/trackFirstInput.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackInitialViewTimings.js +44 -0
- package/esm/domain/rumEventsCollection/view/trackInitialViewTimings.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackInteractionToNextPaint.js +153 -0
- package/esm/domain/rumEventsCollection/view/trackInteractionToNextPaint.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackLargestContentfulPaint.js +54 -0
- package/esm/domain/rumEventsCollection/view/trackLargestContentfulPaint.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackLoadingTime.js +45 -0
- package/esm/domain/rumEventsCollection/view/trackLoadingTime.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackNavigationTimings.js +51 -0
- package/esm/domain/rumEventsCollection/view/trackNavigationTimings.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackScrollMetrics.js +84 -0
- package/esm/domain/rumEventsCollection/view/trackScrollMetrics.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackViewEventCounts.js +15 -0
- package/esm/domain/rumEventsCollection/view/trackViewEventCounts.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/trackViews.js +262 -0
- package/esm/domain/rumEventsCollection/view/trackViews.js.map +1 -0
- package/esm/domain/rumEventsCollection/view/viewCollection.js +125 -0
- package/esm/domain/rumEventsCollection/view/viewCollection.js.map +1 -0
- package/esm/domain/rumSessionManager.js +179 -0
- package/esm/domain/rumSessionManager.js.map +1 -0
- package/esm/domain/tracing/ddtraceTracer.js +40 -0
- package/esm/domain/tracing/ddtraceTracer.js.map +1 -0
- package/esm/domain/tracing/getDocumentTraceId.js +69 -0
- package/esm/domain/tracing/getDocumentTraceId.js.map +1 -0
- package/esm/domain/tracing/jaegerTracer.js +42 -0
- package/esm/domain/tracing/jaegerTracer.js.map +1 -0
- package/esm/domain/tracing/sampler.js +61 -0
- package/esm/domain/tracing/sampler.js.map +1 -0
- package/esm/domain/tracing/skywalkingTracer.js +90 -0
- package/esm/domain/tracing/skywalkingTracer.js.map +1 -0
- package/esm/domain/tracing/traceIdentifier.js +57 -0
- package/esm/domain/tracing/traceIdentifier.js.map +1 -0
- package/esm/domain/tracing/tracer.js +124 -0
- package/esm/domain/tracing/tracer.js.map +1 -0
- package/esm/domain/tracing/w3cTraceParentTracer.js +69 -0
- package/esm/domain/tracing/w3cTraceParentTracer.js.map +1 -0
- package/esm/domain/tracing/zipkinMultiTracer.js +42 -0
- package/esm/domain/tracing/zipkinMultiTracer.js.map +1 -0
- package/esm/domain/tracing/zipkinSingleTracer.js +41 -0
- package/esm/domain/tracing/zipkinSingleTracer.js.map +1 -0
- package/esm/domain/trackEventCounts.js +49 -0
- package/esm/domain/trackEventCounts.js.map +1 -0
- package/esm/domain/usr/index.js +38 -0
- package/esm/domain/usr/index.js.map +1 -0
- package/esm/domain/waitPageActivityEnd.js +142 -0
- package/esm/domain/waitPageActivityEnd.js.map +1 -0
- package/esm/index.js +3 -0
- package/esm/index.js.map +1 -0
- package/esm/transport/startRumBatch.js +20 -0
- package/esm/transport/startRumBatch.js.map +1 -0
- package/esm/transport/startRumEventBridge.js +9 -0
- package/esm/transport/startRumEventBridge.js.map +1 -0
- package/package.json +39 -0
- package/types/index.d.ts +134 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.THROTTLE_SCROLL_DURATION = void 0;
|
|
7
|
+
exports.computeScrollValues = computeScrollValues;
|
|
8
|
+
exports.createScrollValuesObservable = createScrollValuesObservable;
|
|
9
|
+
exports.trackScrollMetrics = trackScrollMetrics;
|
|
10
|
+
var _browserCore = require("@cloudcare/browser-core");
|
|
11
|
+
var _initViewportObservable = require("../../initViewportObservable");
|
|
12
|
+
/** Arbitrary scroll throttle duration */
|
|
13
|
+
var THROTTLE_SCROLL_DURATION = exports.THROTTLE_SCROLL_DURATION = _browserCore.ONE_SECOND;
|
|
14
|
+
function trackScrollMetrics(configuration, viewStart, callback, scrollValues) {
|
|
15
|
+
if (scrollValues === undefined) {
|
|
16
|
+
scrollValues = createScrollValuesObservable(configuration);
|
|
17
|
+
}
|
|
18
|
+
var maxScrollDepth = 0;
|
|
19
|
+
var maxScrollHeight = 0;
|
|
20
|
+
var maxScrollHeightTime = 0;
|
|
21
|
+
var subscription = scrollValues.subscribe(function (data) {
|
|
22
|
+
var scrollDepth = data.scrollDepth;
|
|
23
|
+
var scrollTop = data.scrollTop;
|
|
24
|
+
var scrollHeight = data.scrollHeight;
|
|
25
|
+
var shouldUpdate = false;
|
|
26
|
+
if (scrollDepth > maxScrollDepth) {
|
|
27
|
+
maxScrollDepth = scrollDepth;
|
|
28
|
+
shouldUpdate = true;
|
|
29
|
+
}
|
|
30
|
+
if (scrollHeight > maxScrollHeight) {
|
|
31
|
+
maxScrollHeight = scrollHeight;
|
|
32
|
+
var now = (0, _browserCore.relativeNow)();
|
|
33
|
+
maxScrollHeightTime = (0, _browserCore.elapsed)(viewStart.relative, now);
|
|
34
|
+
shouldUpdate = true;
|
|
35
|
+
}
|
|
36
|
+
if (shouldUpdate) {
|
|
37
|
+
callback({
|
|
38
|
+
maxDepth: Math.min(maxScrollDepth, maxScrollHeight),
|
|
39
|
+
maxDepthScrollTop: scrollTop,
|
|
40
|
+
maxScrollHeight: maxScrollHeight,
|
|
41
|
+
maxScrollHeightTime: maxScrollHeightTime
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
stop: function stop() {
|
|
47
|
+
return subscription.unsubscribe();
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function computeScrollValues() {
|
|
52
|
+
var scrollTop = (0, _browserCore.getScrollY)();
|
|
53
|
+
var viewport = (0, _initViewportObservable.getViewportDimension)();
|
|
54
|
+
var height = viewport.height;
|
|
55
|
+
var scrollHeight = Math.round((document.scrollingElement || document.documentElement).scrollHeight);
|
|
56
|
+
var scrollDepth = Math.round(height + scrollTop);
|
|
57
|
+
return {
|
|
58
|
+
scrollHeight: scrollHeight,
|
|
59
|
+
scrollDepth: scrollDepth,
|
|
60
|
+
scrollTop: scrollTop
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function createScrollValuesObservable(configuration, throttleDuration) {
|
|
64
|
+
if (throttleDuration === undefined) {
|
|
65
|
+
throttleDuration = THROTTLE_SCROLL_DURATION;
|
|
66
|
+
}
|
|
67
|
+
return new _browserCore.Observable(function (observable) {
|
|
68
|
+
function notify() {
|
|
69
|
+
observable.notify(computeScrollValues());
|
|
70
|
+
}
|
|
71
|
+
if (window.ResizeObserver) {
|
|
72
|
+
var throttledNotify = (0, _browserCore.throttle)(notify, throttleDuration, {
|
|
73
|
+
leading: false,
|
|
74
|
+
trailing: true
|
|
75
|
+
});
|
|
76
|
+
var observerTarget = document.scrollingElement || document.documentElement;
|
|
77
|
+
var resizeObserver = new ResizeObserver((0, _browserCore.monitor)(throttledNotify.throttled));
|
|
78
|
+
if (observerTarget) {
|
|
79
|
+
resizeObserver.observe(observerTarget);
|
|
80
|
+
}
|
|
81
|
+
var eventListener = (0, _browserCore.addEventListener)(window, _browserCore.DOM_EVENT.SCROLL, throttledNotify.throttled, {
|
|
82
|
+
passive: true
|
|
83
|
+
});
|
|
84
|
+
return function () {
|
|
85
|
+
throttledNotify.cancel();
|
|
86
|
+
resizeObserver.unobserve(observerTarget);
|
|
87
|
+
eventListener.stop();
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=trackScrollMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackScrollMetrics.js","names":["_browserCore","require","_initViewportObservable","THROTTLE_SCROLL_DURATION","exports","ONE_SECOND","trackScrollMetrics","configuration","viewStart","callback","scrollValues","undefined","createScrollValuesObservable","maxScrollDepth","maxScrollHeight","maxScrollHeightTime","subscription","subscribe","data","scrollDepth","scrollTop","scrollHeight","shouldUpdate","now","relativeNow","elapsed","relative","maxDepth","Math","min","maxDepthScrollTop","stop","unsubscribe","computeScrollValues","getScrollY","viewport","getViewportDimension","height","round","document","scrollingElement","documentElement","throttleDuration","Observable","observable","notify","window","ResizeObserver","throttledNotify","throttle","leading","trailing","observerTarget","resizeObserver","monitor","throttled","observe","eventListener","addEventListener","DOM_EVENT","SCROLL","passive","cancel","unobserve"],"sources":["../../../../../rum/src/domain/rumEventsCollection/view/trackScrollMetrics.js"],"sourcesContent":["import {\n ONE_SECOND,\n elapsed,\n relativeNow,\n throttle,\n addEventListener,\n DOM_EVENT,\n getScrollY,\n monitor,\n Observable\n} from '@cloudcare/browser-core'\nimport { getViewportDimension } from '../../initViewportObservable'\n\n/** Arbitrary scroll throttle duration */\nexport var THROTTLE_SCROLL_DURATION = ONE_SECOND\n\nexport function trackScrollMetrics(\n configuration,\n viewStart,\n callback,\n scrollValues\n) {\n if (scrollValues === undefined) {\n scrollValues = createScrollValuesObservable(configuration)\n }\n var maxScrollDepth = 0\n var maxScrollHeight = 0\n var maxScrollHeightTime = 0\n var subscription = scrollValues.subscribe(function (data) {\n var scrollDepth = data.scrollDepth\n var scrollTop = data.scrollTop\n var scrollHeight = data.scrollHeight\n var shouldUpdate = false\n\n if (scrollDepth > maxScrollDepth) {\n maxScrollDepth = scrollDepth\n shouldUpdate = true\n }\n\n if (scrollHeight > maxScrollHeight) {\n maxScrollHeight = scrollHeight\n var now = relativeNow()\n maxScrollHeightTime = elapsed(viewStart.relative, now)\n shouldUpdate = true\n }\n\n if (shouldUpdate) {\n callback({\n maxDepth: Math.min(maxScrollDepth, maxScrollHeight),\n maxDepthScrollTop: scrollTop,\n maxScrollHeight: maxScrollHeight,\n maxScrollHeightTime: maxScrollHeightTime\n })\n }\n })\n\n return {\n stop: function () {\n return subscription.unsubscribe()\n }\n }\n}\n\nexport function computeScrollValues() {\n var scrollTop = getScrollY()\n\n var viewport = getViewportDimension()\n var height = viewport.height\n var scrollHeight = Math.round(\n (document.scrollingElement || document.documentElement).scrollHeight\n )\n var scrollDepth = Math.round(height + scrollTop)\n\n return {\n scrollHeight: scrollHeight,\n scrollDepth: scrollDepth,\n scrollTop: scrollTop\n }\n}\nexport function createScrollValuesObservable(configuration, throttleDuration) {\n if (throttleDuration === undefined) {\n throttleDuration = THROTTLE_SCROLL_DURATION\n }\n return new Observable(function (observable) {\n function notify() {\n observable.notify(computeScrollValues())\n }\n\n if (window.ResizeObserver) {\n var throttledNotify = throttle(notify, throttleDuration, {\n leading: false,\n trailing: true\n })\n\n var observerTarget = document.scrollingElement || document.documentElement\n var resizeObserver = new ResizeObserver(\n monitor(throttledNotify.throttled)\n )\n if (observerTarget) {\n resizeObserver.observe(observerTarget)\n }\n var eventListener = addEventListener(\n window,\n DOM_EVENT.SCROLL,\n throttledNotify.throttled,\n {\n passive: true\n }\n )\n\n return function () {\n throttledNotify.cancel()\n resizeObserver.unobserve(observerTarget)\n eventListener.stop()\n }\n }\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.trackViewEventCounts = trackViewEventCounts;
|
|
7
|
+
var _trackEventCounts2 = require("../../trackEventCounts");
|
|
8
|
+
function trackViewEventCounts(lifeCycle, viewId, onChange) {
|
|
9
|
+
var _trackEventCounts = (0, _trackEventCounts2.trackEventCounts)({
|
|
10
|
+
lifeCycle: lifeCycle,
|
|
11
|
+
isChildEvent: function isChildEvent(event) {
|
|
12
|
+
return event.view.id === viewId;
|
|
13
|
+
},
|
|
14
|
+
onChange: onChange
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
stop: _trackEventCounts.stop,
|
|
18
|
+
eventCounts: _trackEventCounts.eventCounts
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=trackViewEventCounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackViewEventCounts.js","names":["_trackEventCounts2","require","trackViewEventCounts","lifeCycle","viewId","onChange","_trackEventCounts","trackEventCounts","isChildEvent","event","view","id","stop","eventCounts"],"sources":["../../../../../rum/src/domain/rumEventsCollection/view/trackViewEventCounts.js"],"sourcesContent":["import { trackEventCounts } from '../../trackEventCounts'\n\nexport function trackViewEventCounts(lifeCycle, viewId, onChange) {\n var _trackEventCounts = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) {\n return event.view.id === viewId\n },\n onChange: onChange\n })\n return {\n stop: _trackEventCounts.stop,\n eventCounts: _trackEventCounts.eventCounts\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEO,SAASC,oBAAoBA,CAACC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,EAAE;EAChE,IAAIC,iBAAiB,GAAG,IAAAC,mCAAgB,EAAC;IACvCJ,SAAS,EAAEA,SAAS;IACpBK,YAAY,EAAE,SAAdA,YAAYA,CAAYC,KAAK,EAAE;MAC7B,OAAOA,KAAK,CAACC,IAAI,CAACC,EAAE,KAAKP,MAAM;IACjC,CAAC;IACDC,QAAQ,EAAEA;EACZ,CAAC,CAAC;EACF,OAAO;IACLO,IAAI,EAAEN,iBAAiB,CAACM,IAAI;IAC5BC,WAAW,EAAEP,iBAAiB,CAACO;EACjC,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.THROTTLE_VIEW_UPDATE_PERIOD = exports.SESSION_KEEP_ALIVE_INTERVAL = exports.KEEP_TRACKING_AFTER_VIEW_DELAY = void 0;
|
|
7
|
+
exports.trackViews = trackViews;
|
|
8
|
+
var _browserCore = require("@cloudcare/browser-core");
|
|
9
|
+
var _trackInitialViewTimings2 = require("./trackInitialViewTimings");
|
|
10
|
+
var _trackCommonViewMetrics2 = require("./trackCommonViewMetrics");
|
|
11
|
+
var _trackViewEventCounts2 = require("./trackViewEventCounts");
|
|
12
|
+
var THROTTLE_VIEW_UPDATE_PERIOD = exports.THROTTLE_VIEW_UPDATE_PERIOD = 3000;
|
|
13
|
+
var SESSION_KEEP_ALIVE_INTERVAL = exports.SESSION_KEEP_ALIVE_INTERVAL = 5 * _browserCore.ONE_MINUTE;
|
|
14
|
+
var KEEP_TRACKING_AFTER_VIEW_DELAY = exports.KEEP_TRACKING_AFTER_VIEW_DELAY = 5 * _browserCore.ONE_MINUTE;
|
|
15
|
+
function trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, areViewsTrackedAutomatically, initialViewOptions) {
|
|
16
|
+
var activeViews = new Set();
|
|
17
|
+
function startNewView(loadingType, startClocks, viewOptions) {
|
|
18
|
+
var newlyCreatedView = newView(lifeCycle, domMutationObservable, configuration, location, loadingType, startClocks, viewOptions);
|
|
19
|
+
activeViews.add(newlyCreatedView);
|
|
20
|
+
newlyCreatedView.stopObservable.subscribe(function () {
|
|
21
|
+
activeViews["delete"](newlyCreatedView);
|
|
22
|
+
});
|
|
23
|
+
return newlyCreatedView;
|
|
24
|
+
}
|
|
25
|
+
var currentView = startNewView(_browserCore.ViewLoadingType.INITIAL_LOAD, (0, _browserCore.clocksOrigin)(), initialViewOptions);
|
|
26
|
+
startViewLifeCycle();
|
|
27
|
+
var locationChangeSubscription;
|
|
28
|
+
if (areViewsTrackedAutomatically) {
|
|
29
|
+
locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable);
|
|
30
|
+
}
|
|
31
|
+
function startViewLifeCycle() {
|
|
32
|
+
lifeCycle.subscribe(_browserCore.LifeCycleEventType.SESSION_RENEWED, function () {
|
|
33
|
+
currentView = startNewView(_browserCore.ViewLoadingType.ROUTE_CHANGE, undefined, {
|
|
34
|
+
name: currentView.name,
|
|
35
|
+
service: currentView.service,
|
|
36
|
+
version: currentView.version,
|
|
37
|
+
context: currentView.contextManager.getContext()
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
lifeCycle.subscribe(_browserCore.LifeCycleEventType.SESSION_EXPIRED, function () {
|
|
41
|
+
currentView.end({
|
|
42
|
+
sessionIsActive: false
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
// // End the current view on page unload
|
|
46
|
+
// lifeCycle.subscribe(
|
|
47
|
+
// LifeCycleEventType.PAGE_EXITED,
|
|
48
|
+
// function (pageExitEvent) {
|
|
49
|
+
// if (pageExitEvent.reason === PageExitReason.UNLOADING) {
|
|
50
|
+
// currentView.end()
|
|
51
|
+
// }
|
|
52
|
+
// }
|
|
53
|
+
// )
|
|
54
|
+
}
|
|
55
|
+
function renewViewOnLocationChange(locationChangeObservable) {
|
|
56
|
+
return locationChangeObservable.subscribe(function (params) {
|
|
57
|
+
var oldLocation = params.oldLocation;
|
|
58
|
+
var newLocation = params.newLocation;
|
|
59
|
+
if (areDifferentLocation(oldLocation, newLocation)) {
|
|
60
|
+
currentView.end();
|
|
61
|
+
currentView = startNewView(_browserCore.ViewLoadingType.ROUTE_CHANGE);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
addTiming: function addTiming(name, time) {
|
|
68
|
+
if (typeof time === 'undefined') {
|
|
69
|
+
time = (0, _browserCore.timeStampNow)();
|
|
70
|
+
}
|
|
71
|
+
currentView.addTiming(name, time);
|
|
72
|
+
},
|
|
73
|
+
startView: function startView(options, startClocks) {
|
|
74
|
+
currentView.end({
|
|
75
|
+
endClocks: startClocks
|
|
76
|
+
});
|
|
77
|
+
currentView = startNewView(_browserCore.ViewLoadingType.ROUTE_CHANGE, startClocks, options);
|
|
78
|
+
},
|
|
79
|
+
setViewContext: function setViewContext(context) {
|
|
80
|
+
currentView.contextManager.setContext(context);
|
|
81
|
+
},
|
|
82
|
+
setViewContextProperty: function setViewContextProperty(key, value) {
|
|
83
|
+
currentView.contextManager.setContextProperty(key, value);
|
|
84
|
+
},
|
|
85
|
+
setViewName: function setViewName(name) {
|
|
86
|
+
currentView.setViewName(name);
|
|
87
|
+
},
|
|
88
|
+
getViewContext: function getViewContext() {
|
|
89
|
+
return currentView.contextManager.getContext();
|
|
90
|
+
},
|
|
91
|
+
stop: function stop() {
|
|
92
|
+
if (locationChangeSubscription) {
|
|
93
|
+
locationChangeSubscription.unsubscribe();
|
|
94
|
+
}
|
|
95
|
+
currentView.end();
|
|
96
|
+
activeViews.forEach(function (view) {
|
|
97
|
+
view.stop();
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function newView(lifeCycle, domMutationObservable, configuration, initialLocation, loadingType, startClocks, viewOptions) {
|
|
103
|
+
// Setup initial values
|
|
104
|
+
if (startClocks === undefined) {
|
|
105
|
+
startClocks = (0, _browserCore.clocksNow)();
|
|
106
|
+
}
|
|
107
|
+
var id = (0, _browserCore.UUID)();
|
|
108
|
+
var stopObservable = new _browserCore.Observable();
|
|
109
|
+
var customTimings = {};
|
|
110
|
+
var documentVersion = 0;
|
|
111
|
+
var endClocks;
|
|
112
|
+
var location = (0, _browserCore.shallowClone)(initialLocation);
|
|
113
|
+
var contextManager = (0, _browserCore.createContextManager)();
|
|
114
|
+
var sessionIsActive = true;
|
|
115
|
+
var name;
|
|
116
|
+
var service;
|
|
117
|
+
var version;
|
|
118
|
+
var context;
|
|
119
|
+
if (viewOptions) {
|
|
120
|
+
name = viewOptions.name;
|
|
121
|
+
service = viewOptions.service;
|
|
122
|
+
version = viewOptions.version;
|
|
123
|
+
context = viewOptions.context;
|
|
124
|
+
}
|
|
125
|
+
if (context) {
|
|
126
|
+
contextManager.setContext(context);
|
|
127
|
+
}
|
|
128
|
+
var viewCreatedEvent = {
|
|
129
|
+
id: id,
|
|
130
|
+
name: name,
|
|
131
|
+
startClocks: startClocks,
|
|
132
|
+
service: service,
|
|
133
|
+
version: version
|
|
134
|
+
};
|
|
135
|
+
lifeCycle.notify(_browserCore.LifeCycleEventType.BEFORE_VIEW_CREATED, viewCreatedEvent);
|
|
136
|
+
lifeCycle.notify(_browserCore.LifeCycleEventType.VIEW_CREATED, viewCreatedEvent);
|
|
137
|
+
|
|
138
|
+
// Update the view every time the measures are changing
|
|
139
|
+
var _scheduleViewUpdate = (0, _browserCore.throttle)(triggerViewUpdate, THROTTLE_VIEW_UPDATE_PERIOD, {
|
|
140
|
+
leading: false
|
|
141
|
+
});
|
|
142
|
+
var throttled = _scheduleViewUpdate.throttled;
|
|
143
|
+
var cancelScheduleViewUpdate = _scheduleViewUpdate.cancel;
|
|
144
|
+
var _trackCommonViewMetrics = (0, _trackCommonViewMetrics2.trackCommonViewMetrics)(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, startClocks);
|
|
145
|
+
var setLoadEvent = _trackCommonViewMetrics.setLoadEvent;
|
|
146
|
+
var stopCommonViewMetricsTracking = _trackCommonViewMetrics.stop;
|
|
147
|
+
var getCommonViewMetrics = _trackCommonViewMetrics.getCommonViewMetrics;
|
|
148
|
+
var stopINPTracking = _trackCommonViewMetrics.stopINPTracking;
|
|
149
|
+
var setViewEnd = _trackCommonViewMetrics.setViewEnd;
|
|
150
|
+
var _trackInitialViewTimings = loadingType === _browserCore.ViewLoadingType.INITIAL_LOAD ? (0, _trackInitialViewTimings2.trackInitialViewMetrics)(configuration, startClocks, setLoadEvent, scheduleViewUpdate) : {
|
|
151
|
+
stop: _browserCore.noop,
|
|
152
|
+
initialViewMetrics: {}
|
|
153
|
+
};
|
|
154
|
+
var stopInitialViewMetricsTracking = _trackInitialViewTimings.stop;
|
|
155
|
+
var initialViewMetrics = _trackInitialViewTimings.initialViewMetrics;
|
|
156
|
+
var _trackViewEventCounts = (0, _trackViewEventCounts2.trackViewEventCounts)(lifeCycle, id, scheduleViewUpdate);
|
|
157
|
+
var stopEventCountsTracking = _trackViewEventCounts.stop;
|
|
158
|
+
var eventCounts = _trackViewEventCounts.eventCounts;
|
|
159
|
+
|
|
160
|
+
// Session keep alive
|
|
161
|
+
var keepAliveIntervalId = (0, _browserCore.setInterval)(triggerViewUpdate, SESSION_KEEP_ALIVE_INTERVAL);
|
|
162
|
+
var pageMayExitSubscription = lifeCycle.subscribe(_browserCore.LifeCycleEventType.PAGE_EXITED, function (pageMayExitEvent) {
|
|
163
|
+
if (pageMayExitEvent.reason === _browserCore.PageExitReason.UNLOADING) {
|
|
164
|
+
triggerViewUpdate();
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
triggerViewUpdate();
|
|
168
|
+
// View context update should always be throttled
|
|
169
|
+
contextManager.changeObservable.subscribe(scheduleViewUpdate);
|
|
170
|
+
function triggerBeforeViewUpdate() {
|
|
171
|
+
lifeCycle.notify(_browserCore.LifeCycleEventType.BEFORE_VIEW_UPDATED, {
|
|
172
|
+
id: id,
|
|
173
|
+
name: name,
|
|
174
|
+
context: contextManager.getContext(),
|
|
175
|
+
startClocks: startClocks
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
function scheduleViewUpdate() {
|
|
179
|
+
triggerBeforeViewUpdate();
|
|
180
|
+
throttled();
|
|
181
|
+
}
|
|
182
|
+
function triggerViewUpdate() {
|
|
183
|
+
cancelScheduleViewUpdate();
|
|
184
|
+
triggerBeforeViewUpdate();
|
|
185
|
+
documentVersion += 1;
|
|
186
|
+
var currentEnd = endClocks === undefined ? (0, _browserCore.timeStampNow)() : endClocks.timeStamp;
|
|
187
|
+
lifeCycle.notify(_browserCore.LifeCycleEventType.VIEW_UPDATED, {
|
|
188
|
+
customTimings: customTimings,
|
|
189
|
+
documentVersion: documentVersion,
|
|
190
|
+
id: id,
|
|
191
|
+
name: name,
|
|
192
|
+
service: service,
|
|
193
|
+
version: version,
|
|
194
|
+
context: contextManager.getContext(),
|
|
195
|
+
loadingType: loadingType,
|
|
196
|
+
location: location,
|
|
197
|
+
startClocks: startClocks,
|
|
198
|
+
commonViewMetrics: getCommonViewMetrics(),
|
|
199
|
+
initialViewMetrics: initialViewMetrics,
|
|
200
|
+
duration: (0, _browserCore.elapsed)(startClocks.timeStamp, currentEnd),
|
|
201
|
+
isActive: endClocks === undefined,
|
|
202
|
+
sessionIsActive: sessionIsActive,
|
|
203
|
+
eventCounts: eventCounts
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
var result = {
|
|
207
|
+
name: name,
|
|
208
|
+
service: service,
|
|
209
|
+
version: version,
|
|
210
|
+
contextManager: contextManager,
|
|
211
|
+
stopObservable: stopObservable,
|
|
212
|
+
end: function end(options) {
|
|
213
|
+
if (endClocks) {
|
|
214
|
+
// view already ended
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
endClocks = (0, _browserCore.isNullUndefinedDefaultValue)(options && options.endClocks, (0, _browserCore.clocksNow)());
|
|
218
|
+
sessionIsActive = (0, _browserCore.isNullUndefinedDefaultValue)(options && options.sessionIsActive, true);
|
|
219
|
+
lifeCycle.notify(_browserCore.LifeCycleEventType.VIEW_ENDED, {
|
|
220
|
+
endClocks: endClocks
|
|
221
|
+
});
|
|
222
|
+
lifeCycle.notify(_browserCore.LifeCycleEventType.AFTER_VIEW_ENDED, {
|
|
223
|
+
endClocks: endClocks
|
|
224
|
+
});
|
|
225
|
+
(0, _browserCore.clearInterval)(keepAliveIntervalId);
|
|
226
|
+
setViewEnd(endClocks.relative);
|
|
227
|
+
stopCommonViewMetricsTracking();
|
|
228
|
+
pageMayExitSubscription.unsubscribe();
|
|
229
|
+
triggerViewUpdate();
|
|
230
|
+
(0, _browserCore.setTimeout)(function () {
|
|
231
|
+
result.stop();
|
|
232
|
+
}, KEEP_TRACKING_AFTER_VIEW_DELAY);
|
|
233
|
+
},
|
|
234
|
+
stop: function stop() {
|
|
235
|
+
stopInitialViewMetricsTracking();
|
|
236
|
+
stopEventCountsTracking();
|
|
237
|
+
stopINPTracking();
|
|
238
|
+
stopObservable.notify();
|
|
239
|
+
},
|
|
240
|
+
addTiming: function addTiming(name, time) {
|
|
241
|
+
if (endClocks) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
var relativeTime = (0, _browserCore.looksLikeRelativeTime)(time) ? time : (0, _browserCore.elapsed)(startClocks.timeStamp, time);
|
|
245
|
+
customTimings[sanitizeTiming(name)] = relativeTime;
|
|
246
|
+
scheduleViewUpdate();
|
|
247
|
+
},
|
|
248
|
+
setViewName: function setViewName(updatedName) {
|
|
249
|
+
name = updatedName;
|
|
250
|
+
triggerViewUpdate();
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
return result;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Timing name is used as facet path that must contain only letters, digits, or the characters - _ . @ $
|
|
258
|
+
*/
|
|
259
|
+
function sanitizeTiming(name) {
|
|
260
|
+
var sanitized = name.replace(/[^a-zA-Z0-9-_.@$]/g, '_');
|
|
261
|
+
if (sanitized !== name) {
|
|
262
|
+
console.warn('Invalid timing name: ' + name + ', sanitized to: ' + sanitized);
|
|
263
|
+
}
|
|
264
|
+
return sanitized;
|
|
265
|
+
}
|
|
266
|
+
function areDifferentLocation(currentLocation, otherLocation) {
|
|
267
|
+
return currentLocation.pathname !== otherLocation.pathname || !(0, _browserCore.isHashAnAnchor)(otherLocation.hash) && (0, _browserCore.getPathFromHash)(otherLocation.hash) !== (0, _browserCore.getPathFromHash)(currentLocation.hash);
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=trackViews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackViews.js","names":["_browserCore","require","_trackInitialViewTimings2","_trackCommonViewMetrics2","_trackViewEventCounts2","THROTTLE_VIEW_UPDATE_PERIOD","exports","SESSION_KEEP_ALIVE_INTERVAL","ONE_MINUTE","KEEP_TRACKING_AFTER_VIEW_DELAY","trackViews","location","lifeCycle","domMutationObservable","configuration","locationChangeObservable","areViewsTrackedAutomatically","initialViewOptions","activeViews","Set","startNewView","loadingType","startClocks","viewOptions","newlyCreatedView","newView","add","stopObservable","subscribe","currentView","ViewLoadingType","INITIAL_LOAD","clocksOrigin","startViewLifeCycle","locationChangeSubscription","renewViewOnLocationChange","LifeCycleEventType","SESSION_RENEWED","ROUTE_CHANGE","undefined","name","service","version","context","contextManager","getContext","SESSION_EXPIRED","end","sessionIsActive","params","oldLocation","newLocation","areDifferentLocation","addTiming","time","timeStampNow","startView","options","endClocks","setViewContext","setContext","setViewContextProperty","key","value","setContextProperty","setViewName","getViewContext","stop","unsubscribe","forEach","view","initialLocation","clocksNow","id","UUID","Observable","customTimings","documentVersion","shallowClone","createContextManager","viewCreatedEvent","notify","BEFORE_VIEW_CREATED","VIEW_CREATED","_scheduleViewUpdate","throttle","triggerViewUpdate","leading","throttled","cancelScheduleViewUpdate","cancel","_trackCommonViewMetrics","trackCommonViewMetrics","scheduleViewUpdate","setLoadEvent","stopCommonViewMetricsTracking","getCommonViewMetrics","stopINPTracking","setViewEnd","_trackInitialViewTimings","trackInitialViewMetrics","noop","initialViewMetrics","stopInitialViewMetricsTracking","_trackViewEventCounts","trackViewEventCounts","stopEventCountsTracking","eventCounts","keepAliveIntervalId","setInterval","pageMayExitSubscription","PAGE_EXITED","pageMayExitEvent","reason","PageExitReason","UNLOADING","changeObservable","triggerBeforeViewUpdate","BEFORE_VIEW_UPDATED","currentEnd","timeStamp","VIEW_UPDATED","commonViewMetrics","duration","elapsed","isActive","result","isNullUndefinedDefaultValue","VIEW_ENDED","AFTER_VIEW_ENDED","clearInterval","relative","setTimeout","relativeTime","looksLikeRelativeTime","sanitizeTiming","updatedName","sanitized","replace","console","warn","currentLocation","otherLocation","pathname","isHashAnAnchor","hash","getPathFromHash"],"sources":["../../../../../rum/src/domain/rumEventsCollection/view/trackViews.js"],"sourcesContent":["import {\n shallowClone,\n elapsed,\n UUID,\n ONE_MINUTE,\n throttle,\n clocksNow,\n clocksOrigin,\n timeStampNow,\n looksLikeRelativeTime,\n ViewLoadingType,\n LifeCycleEventType,\n PageExitReason,\n isHashAnAnchor,\n getPathFromHash,\n noop,\n setInterval,\n Observable,\n clearInterval,\n setTimeout,\n isNullUndefinedDefaultValue,\n createContextManager\n} from '@cloudcare/browser-core'\n\nimport { trackInitialViewMetrics } from './trackInitialViewTimings'\nimport { trackCommonViewMetrics } from './trackCommonViewMetrics'\nimport { trackViewEventCounts } from './trackViewEventCounts'\nexport var THROTTLE_VIEW_UPDATE_PERIOD = 3000\nexport var SESSION_KEEP_ALIVE_INTERVAL = 5 * ONE_MINUTE\nexport var KEEP_TRACKING_AFTER_VIEW_DELAY = 5 * ONE_MINUTE\nexport function trackViews(\n location,\n lifeCycle,\n domMutationObservable,\n configuration,\n locationChangeObservable,\n areViewsTrackedAutomatically,\n initialViewOptions\n) {\n var activeViews = new Set()\n function startNewView(loadingType, startClocks, viewOptions) {\n var newlyCreatedView = newView(\n lifeCycle,\n domMutationObservable,\n configuration,\n location,\n loadingType,\n startClocks,\n viewOptions\n )\n activeViews.add(newlyCreatedView)\n newlyCreatedView.stopObservable.subscribe(function () {\n activeViews.delete(newlyCreatedView)\n })\n return newlyCreatedView\n }\n var currentView = startNewView(\n ViewLoadingType.INITIAL_LOAD,\n clocksOrigin(),\n initialViewOptions\n )\n startViewLifeCycle()\n var locationChangeSubscription\n if (areViewsTrackedAutomatically) {\n locationChangeSubscription = renewViewOnLocationChange(\n locationChangeObservable\n )\n }\n function startViewLifeCycle() {\n lifeCycle.subscribe(LifeCycleEventType.SESSION_RENEWED, function () {\n currentView = startNewView(ViewLoadingType.ROUTE_CHANGE, undefined, {\n name: currentView.name,\n service: currentView.service,\n version: currentView.version,\n context: currentView.contextManager.getContext()\n })\n })\n\n lifeCycle.subscribe(LifeCycleEventType.SESSION_EXPIRED, function () {\n currentView.end({ sessionIsActive: false })\n })\n // // End the current view on page unload\n // lifeCycle.subscribe(\n // LifeCycleEventType.PAGE_EXITED,\n // function (pageExitEvent) {\n // if (pageExitEvent.reason === PageExitReason.UNLOADING) {\n // currentView.end()\n // }\n // }\n // )\n }\n\n function renewViewOnLocationChange(locationChangeObservable) {\n return locationChangeObservable.subscribe(function (params) {\n var oldLocation = params.oldLocation\n var newLocation = params.newLocation\n if (areDifferentLocation(oldLocation, newLocation)) {\n currentView.end()\n currentView = startNewView(ViewLoadingType.ROUTE_CHANGE)\n return\n }\n })\n }\n\n return {\n addTiming: function (name, time) {\n if (typeof time === 'undefined') {\n time = timeStampNow()\n }\n currentView.addTiming(name, time)\n },\n startView: function (options, startClocks) {\n currentView.end({ endClocks: startClocks })\n currentView = startNewView(\n ViewLoadingType.ROUTE_CHANGE,\n startClocks,\n options\n )\n },\n setViewContext: (context) => {\n currentView.contextManager.setContext(context)\n },\n setViewContextProperty: (key, value) => {\n currentView.contextManager.setContextProperty(key, value)\n },\n setViewName: (name) => {\n currentView.setViewName(name)\n },\n getViewContext: () => currentView.contextManager.getContext(),\n stop: function () {\n if (locationChangeSubscription) {\n locationChangeSubscription.unsubscribe()\n }\n currentView.end()\n activeViews.forEach(function (view) {\n view.stop()\n })\n }\n }\n}\n\nfunction newView(\n lifeCycle,\n domMutationObservable,\n configuration,\n initialLocation,\n loadingType,\n startClocks,\n viewOptions\n) {\n // Setup initial values\n if (startClocks === undefined) {\n startClocks = clocksNow()\n }\n var id = UUID()\n var stopObservable = new Observable()\n var customTimings = {}\n var documentVersion = 0\n var endClocks\n var location = shallowClone(initialLocation)\n const contextManager = createContextManager()\n var sessionIsActive = true\n var name\n var service\n var version\n var context\n if (viewOptions) {\n name = viewOptions.name\n service = viewOptions.service\n version = viewOptions.version\n context = viewOptions.context\n }\n if (context) {\n contextManager.setContext(context)\n }\n var viewCreatedEvent = {\n id: id,\n name: name,\n startClocks: startClocks,\n service: service,\n version: version\n }\n lifeCycle.notify(LifeCycleEventType.BEFORE_VIEW_CREATED, viewCreatedEvent)\n lifeCycle.notify(LifeCycleEventType.VIEW_CREATED, viewCreatedEvent)\n\n // Update the view every time the measures are changing\n var _scheduleViewUpdate = throttle(\n triggerViewUpdate,\n THROTTLE_VIEW_UPDATE_PERIOD,\n {\n leading: false\n }\n )\n var throttled = _scheduleViewUpdate.throttled\n var cancelScheduleViewUpdate = _scheduleViewUpdate.cancel\n\n var _trackCommonViewMetrics = trackCommonViewMetrics(\n lifeCycle,\n domMutationObservable,\n configuration,\n scheduleViewUpdate,\n loadingType,\n startClocks\n )\n var setLoadEvent = _trackCommonViewMetrics.setLoadEvent\n var stopCommonViewMetricsTracking = _trackCommonViewMetrics.stop\n var getCommonViewMetrics = _trackCommonViewMetrics.getCommonViewMetrics\n var stopINPTracking = _trackCommonViewMetrics.stopINPTracking\n var setViewEnd = _trackCommonViewMetrics.setViewEnd\n var _trackInitialViewTimings =\n loadingType === ViewLoadingType.INITIAL_LOAD\n ? trackInitialViewMetrics(\n configuration,\n startClocks,\n setLoadEvent,\n scheduleViewUpdate\n )\n : {\n stop: noop,\n initialViewMetrics: {}\n }\n var stopInitialViewMetricsTracking = _trackInitialViewTimings.stop\n var initialViewMetrics = _trackInitialViewTimings.initialViewMetrics\n var _trackViewEventCounts = trackViewEventCounts(\n lifeCycle,\n id,\n scheduleViewUpdate\n )\n var stopEventCountsTracking = _trackViewEventCounts.stop\n var eventCounts = _trackViewEventCounts.eventCounts\n\n // Session keep alive\n var keepAliveIntervalId = setInterval(\n triggerViewUpdate,\n SESSION_KEEP_ALIVE_INTERVAL\n )\n const pageMayExitSubscription = lifeCycle.subscribe(\n LifeCycleEventType.PAGE_EXITED,\n (pageMayExitEvent) => {\n if (pageMayExitEvent.reason === PageExitReason.UNLOADING) {\n triggerViewUpdate()\n }\n }\n )\n triggerViewUpdate()\n // View context update should always be throttled\n contextManager.changeObservable.subscribe(scheduleViewUpdate)\n\n function triggerBeforeViewUpdate() {\n lifeCycle.notify(LifeCycleEventType.BEFORE_VIEW_UPDATED, {\n id,\n name,\n context: contextManager.getContext(),\n startClocks\n })\n }\n function scheduleViewUpdate() {\n triggerBeforeViewUpdate()\n throttled()\n }\n\n function triggerViewUpdate() {\n cancelScheduleViewUpdate()\n triggerBeforeViewUpdate()\n documentVersion += 1\n var currentEnd =\n endClocks === undefined ? timeStampNow() : endClocks.timeStamp\n lifeCycle.notify(LifeCycleEventType.VIEW_UPDATED, {\n customTimings: customTimings,\n documentVersion: documentVersion,\n id: id,\n name: name,\n service: service,\n version: version,\n context: contextManager.getContext(),\n loadingType: loadingType,\n location: location,\n startClocks: startClocks,\n commonViewMetrics: getCommonViewMetrics(),\n initialViewMetrics: initialViewMetrics,\n duration: elapsed(startClocks.timeStamp, currentEnd),\n isActive: endClocks === undefined,\n sessionIsActive: sessionIsActive,\n eventCounts: eventCounts\n })\n }\n var result = {\n name: name,\n service: service,\n version: version,\n contextManager: contextManager,\n stopObservable: stopObservable,\n end: function (options) {\n if (endClocks) {\n // view already ended\n return\n }\n endClocks = isNullUndefinedDefaultValue(\n options && options.endClocks,\n clocksNow()\n )\n sessionIsActive = isNullUndefinedDefaultValue(\n options && options.sessionIsActive,\n true\n )\n lifeCycle.notify(LifeCycleEventType.VIEW_ENDED, { endClocks: endClocks })\n lifeCycle.notify(LifeCycleEventType.AFTER_VIEW_ENDED, {\n endClocks: endClocks\n })\n clearInterval(keepAliveIntervalId)\n setViewEnd(endClocks.relative)\n stopCommonViewMetricsTracking()\n pageMayExitSubscription.unsubscribe()\n triggerViewUpdate()\n setTimeout(function () {\n result.stop()\n }, KEEP_TRACKING_AFTER_VIEW_DELAY)\n },\n stop: function () {\n stopInitialViewMetricsTracking()\n stopEventCountsTracking()\n stopINPTracking()\n stopObservable.notify()\n },\n addTiming: function (name, time) {\n if (endClocks) {\n return\n }\n var relativeTime = looksLikeRelativeTime(time)\n ? time\n : elapsed(startClocks.timeStamp, time)\n customTimings[sanitizeTiming(name)] = relativeTime\n scheduleViewUpdate()\n },\n setViewName(updatedName) {\n name = updatedName\n triggerViewUpdate()\n }\n }\n return result\n}\n\n/**\n * Timing name is used as facet path that must contain only letters, digits, or the characters - _ . @ $\n */\nfunction sanitizeTiming(name) {\n var sanitized = name.replace(/[^a-zA-Z0-9-_.@$]/g, '_')\n if (sanitized !== name) {\n console.warn(\n 'Invalid timing name: ' + name + ', sanitized to: ' + sanitized\n )\n }\n return sanitized\n}\n\nfunction areDifferentLocation(currentLocation, otherLocation) {\n return (\n currentLocation.pathname !== otherLocation.pathname ||\n (!isHashAnAnchor(otherLocation.hash) &&\n getPathFromHash(otherLocation.hash) !==\n getPathFromHash(currentLocation.hash))\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.startViewCollection = startViewCollection;
|
|
7
|
+
var _browserCore = require("@cloudcare/browser-core");
|
|
8
|
+
var _trackViews = require("./trackViews");
|
|
9
|
+
function startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, pageStateHistory, recorderApi, initialViewOptions) {
|
|
10
|
+
lifeCycle.subscribe(_browserCore.LifeCycleEventType.VIEW_UPDATED, function (view) {
|
|
11
|
+
lifeCycle.notify(_browserCore.LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, processViewUpdate(view, configuration, recorderApi, pageStateHistory));
|
|
12
|
+
});
|
|
13
|
+
return (0, _trackViews.trackViews)(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, !configuration.trackViewsManually, initialViewOptions);
|
|
14
|
+
}
|
|
15
|
+
function computePerformanceViewDetails(navigationTimings) {
|
|
16
|
+
if (!navigationTimings) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
var fetchStart = navigationTimings.fetchStart,
|
|
20
|
+
responseEnd = navigationTimings.responseEnd,
|
|
21
|
+
domInteractive = navigationTimings.domInteractive,
|
|
22
|
+
domContentLoaded = navigationTimings.domContentLoaded,
|
|
23
|
+
domComplete = navigationTimings.domComplete,
|
|
24
|
+
loadEventEnd = navigationTimings.loadEventEnd,
|
|
25
|
+
loadEventStart = navigationTimings.loadEventStart,
|
|
26
|
+
domContentLoadedEventEnd = navigationTimings.domContentLoadedEventEnd;
|
|
27
|
+
var details = {};
|
|
28
|
+
if ((0, _browserCore.isNumber)(responseEnd) && (0, _browserCore.isNumber)(fetchStart) && responseEnd !== fetchStart && responseEnd > fetchStart) {
|
|
29
|
+
details.fpt = (0, _browserCore.toServerDuration)(responseEnd - fetchStart);
|
|
30
|
+
var apdexLevel = parseInt((responseEnd - fetchStart) / 1000);
|
|
31
|
+
details.apdexLevel = apdexLevel > 9 ? 9 : apdexLevel;
|
|
32
|
+
}
|
|
33
|
+
if ((0, _browserCore.isNumber)(domInteractive) && (0, _browserCore.isNumber)(fetchStart) && domInteractive !== fetchStart && domInteractive > fetchStart) {
|
|
34
|
+
details.tti = (0, _browserCore.toServerDuration)(domInteractive - fetchStart);
|
|
35
|
+
}
|
|
36
|
+
if ((0, _browserCore.isNumber)(domContentLoaded) && (0, _browserCore.isNumber)(fetchStart) && domContentLoaded !== fetchStart && domContentLoaded > fetchStart) {
|
|
37
|
+
details.dom_ready = (0, _browserCore.toServerDuration)(domContentLoaded - fetchStart);
|
|
38
|
+
}
|
|
39
|
+
// Make sure a connection occurred
|
|
40
|
+
if ((0, _browserCore.isNumber)(loadEventEnd) && (0, _browserCore.isNumber)(fetchStart) && loadEventEnd !== fetchStart && loadEventEnd > fetchStart) {
|
|
41
|
+
details.load = (0, _browserCore.toServerDuration)(loadEventEnd - fetchStart);
|
|
42
|
+
}
|
|
43
|
+
if ((0, _browserCore.isNumber)(loadEventStart) && (0, _browserCore.isNumber)(domContentLoadedEventEnd) && loadEventStart !== domContentLoadedEventEnd && loadEventStart > domContentLoadedEventEnd) {
|
|
44
|
+
details.resource_load_time = (0, _browserCore.toServerDuration)(loadEventStart - domContentLoadedEventEnd);
|
|
45
|
+
}
|
|
46
|
+
if ((0, _browserCore.isNumber)(domComplete) && (0, _browserCore.isNumber)(domInteractive) && domComplete !== domInteractive && domComplete > domInteractive) {
|
|
47
|
+
details.dom = (0, _browserCore.toServerDuration)(domComplete - domInteractive);
|
|
48
|
+
}
|
|
49
|
+
return details;
|
|
50
|
+
}
|
|
51
|
+
function processViewUpdate(view, configuration, recorderApi, pageStateHistory) {
|
|
52
|
+
var replayStats = recorderApi.getReplayStats(view.id);
|
|
53
|
+
var pageStates = pageStateHistory.findAll(view.startClocks.relative, view.duration);
|
|
54
|
+
var viewEvent = {
|
|
55
|
+
_gc: {
|
|
56
|
+
document_version: view.documentVersion,
|
|
57
|
+
replay_stats: replayStats,
|
|
58
|
+
page_states: pageStates,
|
|
59
|
+
view_update_time: view.documentVersion
|
|
60
|
+
},
|
|
61
|
+
date: view.startClocks.timeStamp,
|
|
62
|
+
type: _browserCore.RumEventType.VIEW,
|
|
63
|
+
view: {
|
|
64
|
+
action: {
|
|
65
|
+
count: view.eventCounts.actionCount
|
|
66
|
+
},
|
|
67
|
+
frustration: {
|
|
68
|
+
count: view.eventCounts.frustrationCount
|
|
69
|
+
},
|
|
70
|
+
cumulative_layout_shift: (0, _browserCore.findByPath)(view.commonViewMetrics, 'cumulativeLayoutShift.value'),
|
|
71
|
+
cumulative_layout_shift_time: (0, _browserCore.findByPath)(view.commonViewMetrics, 'cumulativeLayoutShift.time'),
|
|
72
|
+
cumulative_layout_shift_target_selector: (0, _browserCore.findByPath)(view.commonViewMetrics, 'cumulativeLayoutShift.targetSelector'),
|
|
73
|
+
first_byte: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'navigationTimings.firstByte')),
|
|
74
|
+
dom_complete: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'navigationTimings.domComplete')),
|
|
75
|
+
dom_content_loaded: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'navigationTimings.domContentLoaded')),
|
|
76
|
+
dom_interactive: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'navigationTimings.domInteractive')),
|
|
77
|
+
error: {
|
|
78
|
+
count: view.eventCounts.errorCount
|
|
79
|
+
},
|
|
80
|
+
first_contentful_paint: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'firstContentfulPaint')),
|
|
81
|
+
first_input_delay: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'firstInput.delay')),
|
|
82
|
+
first_input_time: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'firstInput.time')),
|
|
83
|
+
first_input_target_selector: (0, _browserCore.findByPath)(view.initialViewMetrics, 'firstInput.targetSelector'),
|
|
84
|
+
interaction_to_next_paint: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.commonViewMetrics, 'interactionToNextPaint.value')),
|
|
85
|
+
interaction_to_next_paint_target_selector: (0, _browserCore.findByPath)(view.commonViewMetrics, 'interactionToNextPaint.targetSelector'),
|
|
86
|
+
is_active: view.isActive,
|
|
87
|
+
name: view.name,
|
|
88
|
+
largest_contentful_paint: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'largestContentfulPaint.value')),
|
|
89
|
+
largest_contentful_paint_element_selector: (0, _browserCore.findByPath)(view.initialViewMetrics, 'largestContentfulPaint.targetSelector'),
|
|
90
|
+
load_event: (0, _browserCore.toServerDuration)((0, _browserCore.findByPath)(view.initialViewMetrics, 'navigationTimings.loadEvent')),
|
|
91
|
+
loading_time: (0, _browserCore.discardNegativeDuration)((0, _browserCore.toServerDuration)(view.commonViewMetrics.loadingTime)),
|
|
92
|
+
loading_type: view.loadingType,
|
|
93
|
+
long_task: {
|
|
94
|
+
count: view.eventCounts.longTaskCount
|
|
95
|
+
},
|
|
96
|
+
resource: {
|
|
97
|
+
count: view.eventCounts.resourceCount
|
|
98
|
+
},
|
|
99
|
+
time_spent: (0, _browserCore.toServerDuration)(view.duration)
|
|
100
|
+
},
|
|
101
|
+
display: view.commonViewMetrics.scroll ? {
|
|
102
|
+
scroll: {
|
|
103
|
+
max_depth: view.commonViewMetrics.scroll.maxDepth,
|
|
104
|
+
max_depth_scroll_top: view.commonViewMetrics.scroll.maxDepthScrollTop,
|
|
105
|
+
max_scroll_height: view.commonViewMetrics.scroll.maxScrollHeight,
|
|
106
|
+
max_scroll_height_time: (0, _browserCore.toServerDuration)(view.commonViewMetrics.scroll.maxScrollHeightTime)
|
|
107
|
+
}
|
|
108
|
+
} : undefined,
|
|
109
|
+
session: {
|
|
110
|
+
has_replay: replayStats ? true : undefined,
|
|
111
|
+
is_active: view.sessionIsActive ? undefined : false
|
|
112
|
+
},
|
|
113
|
+
privacy: {
|
|
114
|
+
replay_level: configuration.defaultPrivacyLevel
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
if (!(0, _browserCore.isEmptyObject)(view.customTimings)) {
|
|
118
|
+
viewEvent.view.custom_timings = (0, _browserCore.mapValues)(view.customTimings, _browserCore.toServerDuration);
|
|
119
|
+
}
|
|
120
|
+
viewEvent = (0, _browserCore.extend2Lev)(viewEvent, {
|
|
121
|
+
view: computePerformanceViewDetails(view.initialViewMetrics.navigationTimings)
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
rawRumEvent: viewEvent,
|
|
125
|
+
startTime: view.startClocks.relative,
|
|
126
|
+
domainContext: {
|
|
127
|
+
location: view.location
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=viewCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewCollection.js","names":["_browserCore","require","_trackViews","startViewCollection","lifeCycle","configuration","location","domMutationObservable","locationChangeObservable","pageStateHistory","recorderApi","initialViewOptions","subscribe","LifeCycleEventType","VIEW_UPDATED","view","notify","RAW_RUM_EVENT_COLLECTED","processViewUpdate","trackViews","trackViewsManually","computePerformanceViewDetails","navigationTimings","undefined","fetchStart","responseEnd","domInteractive","domContentLoaded","domComplete","loadEventEnd","loadEventStart","domContentLoadedEventEnd","details","isNumber","fpt","toServerDuration","apdexLevel","parseInt","tti","dom_ready","load","resource_load_time","dom","replayStats","getReplayStats","id","pageStates","findAll","startClocks","relative","duration","viewEvent","_gc","document_version","documentVersion","replay_stats","page_states","view_update_time","date","timeStamp","type","RumEventType","VIEW","action","count","eventCounts","actionCount","frustration","frustrationCount","cumulative_layout_shift","findByPath","commonViewMetrics","cumulative_layout_shift_time","cumulative_layout_shift_target_selector","first_byte","initialViewMetrics","dom_complete","dom_content_loaded","dom_interactive","error","errorCount","first_contentful_paint","first_input_delay","first_input_time","first_input_target_selector","interaction_to_next_paint","interaction_to_next_paint_target_selector","is_active","isActive","name","largest_contentful_paint","largest_contentful_paint_element_selector","load_event","loading_time","discardNegativeDuration","loadingTime","loading_type","loadingType","long_task","longTaskCount","resource","resourceCount","time_spent","display","scroll","max_depth","maxDepth","max_depth_scroll_top","maxDepthScrollTop","max_scroll_height","maxScrollHeight","max_scroll_height_time","maxScrollHeightTime","session","has_replay","sessionIsActive","privacy","replay_level","defaultPrivacyLevel","isEmptyObject","customTimings","custom_timings","mapValues","extend2Lev","rawRumEvent","startTime","domainContext"],"sources":["../../../../../rum/src/domain/rumEventsCollection/view/viewCollection.js"],"sourcesContent":["import {\n isEmptyObject,\n mapValues,\n toServerDuration,\n isNumber,\n RumEventType,\n LifeCycleEventType,\n extend2Lev,\n findByPath,\n discardNegativeDuration,\n timeStampNow\n} from '@cloudcare/browser-core'\nimport { trackViews } from './trackViews'\nexport function startViewCollection(\n lifeCycle,\n configuration,\n location,\n domMutationObservable,\n locationChangeObservable,\n pageStateHistory,\n recorderApi,\n initialViewOptions\n) {\n lifeCycle.subscribe(LifeCycleEventType.VIEW_UPDATED, function (view) {\n lifeCycle.notify(\n LifeCycleEventType.RAW_RUM_EVENT_COLLECTED,\n processViewUpdate(view, configuration, recorderApi, pageStateHistory)\n )\n })\n\n return trackViews(\n location,\n lifeCycle,\n domMutationObservable,\n configuration,\n locationChangeObservable,\n !configuration.trackViewsManually,\n initialViewOptions\n )\n}\nfunction computePerformanceViewDetails(navigationTimings) {\n if (!navigationTimings) {\n return undefined\n }\n var fetchStart = navigationTimings.fetchStart,\n responseEnd = navigationTimings.responseEnd,\n domInteractive = navigationTimings.domInteractive,\n domContentLoaded = navigationTimings.domContentLoaded,\n domComplete = navigationTimings.domComplete,\n loadEventEnd = navigationTimings.loadEventEnd,\n loadEventStart = navigationTimings.loadEventStart,\n domContentLoadedEventEnd = navigationTimings.domContentLoadedEventEnd\n var details = {}\n if (\n isNumber(responseEnd) &&\n isNumber(fetchStart) &&\n responseEnd !== fetchStart &&\n responseEnd > fetchStart\n ) {\n details.fpt = toServerDuration(responseEnd - fetchStart)\n var apdexLevel = parseInt((responseEnd - fetchStart) / 1000)\n details.apdexLevel = apdexLevel > 9 ? 9 : apdexLevel\n }\n if (\n isNumber(domInteractive) &&\n isNumber(fetchStart) &&\n domInteractive !== fetchStart &&\n domInteractive > fetchStart\n ) {\n details.tti = toServerDuration(domInteractive - fetchStart)\n }\n if (\n isNumber(domContentLoaded) &&\n isNumber(fetchStart) &&\n domContentLoaded !== fetchStart &&\n domContentLoaded > fetchStart\n ) {\n details.dom_ready = toServerDuration(domContentLoaded - fetchStart)\n }\n // Make sure a connection occurred\n if (\n isNumber(loadEventEnd) &&\n isNumber(fetchStart) &&\n loadEventEnd !== fetchStart &&\n loadEventEnd > fetchStart\n ) {\n details.load = toServerDuration(loadEventEnd - fetchStart)\n }\n if (\n isNumber(loadEventStart) &&\n isNumber(domContentLoadedEventEnd) &&\n loadEventStart !== domContentLoadedEventEnd &&\n loadEventStart > domContentLoadedEventEnd\n ) {\n details.resource_load_time = toServerDuration(\n loadEventStart - domContentLoadedEventEnd\n )\n }\n if (\n isNumber(domComplete) &&\n isNumber(domInteractive) &&\n domComplete !== domInteractive &&\n domComplete > domInteractive\n ) {\n details.dom = toServerDuration(domComplete - domInteractive)\n }\n return details\n}\n\nfunction processViewUpdate(view, configuration, recorderApi, pageStateHistory) {\n var replayStats = recorderApi.getReplayStats(view.id)\n var pageStates = pageStateHistory.findAll(\n view.startClocks.relative,\n view.duration\n )\n var viewEvent = {\n _gc: {\n document_version: view.documentVersion,\n replay_stats: replayStats,\n page_states: pageStates,\n view_update_time: view.documentVersion\n },\n date: view.startClocks.timeStamp,\n type: RumEventType.VIEW,\n view: {\n action: {\n count: view.eventCounts.actionCount\n },\n frustration: {\n count: view.eventCounts.frustrationCount\n },\n cumulative_layout_shift: findByPath(\n view.commonViewMetrics,\n 'cumulativeLayoutShift.value'\n ),\n cumulative_layout_shift_time: findByPath(\n view.commonViewMetrics,\n 'cumulativeLayoutShift.time'\n ),\n cumulative_layout_shift_target_selector: findByPath(\n view.commonViewMetrics,\n 'cumulativeLayoutShift.targetSelector'\n ),\n first_byte: toServerDuration(\n findByPath(view.initialViewMetrics, 'navigationTimings.firstByte')\n ),\n dom_complete: toServerDuration(\n findByPath(view.initialViewMetrics, 'navigationTimings.domComplete')\n ),\n dom_content_loaded: toServerDuration(\n findByPath(\n view.initialViewMetrics,\n 'navigationTimings.domContentLoaded'\n )\n ),\n dom_interactive: toServerDuration(\n findByPath(view.initialViewMetrics, 'navigationTimings.domInteractive')\n ),\n error: {\n count: view.eventCounts.errorCount\n },\n first_contentful_paint: toServerDuration(\n findByPath(view.initialViewMetrics, 'firstContentfulPaint')\n ),\n first_input_delay: toServerDuration(\n findByPath(view.initialViewMetrics, 'firstInput.delay')\n ),\n first_input_time: toServerDuration(\n findByPath(view.initialViewMetrics, 'firstInput.time')\n ),\n first_input_target_selector: findByPath(\n view.initialViewMetrics,\n 'firstInput.targetSelector'\n ),\n interaction_to_next_paint: toServerDuration(\n findByPath(view.commonViewMetrics, 'interactionToNextPaint.value')\n ),\n interaction_to_next_paint_target_selector: findByPath(\n view.commonViewMetrics,\n 'interactionToNextPaint.targetSelector'\n ),\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration(\n findByPath(view.initialViewMetrics, 'largestContentfulPaint.value')\n ),\n largest_contentful_paint_element_selector: findByPath(\n view.initialViewMetrics,\n 'largestContentfulPaint.targetSelector'\n ),\n load_event: toServerDuration(\n findByPath(view.initialViewMetrics, 'navigationTimings.loadEvent')\n ),\n loading_time: discardNegativeDuration(\n toServerDuration(view.commonViewMetrics.loadingTime)\n ),\n loading_type: view.loadingType,\n long_task: {\n count: view.eventCounts.longTaskCount\n },\n resource: {\n count: view.eventCounts.resourceCount\n },\n time_spent: toServerDuration(view.duration)\n },\n display: view.commonViewMetrics.scroll\n ? {\n scroll: {\n max_depth: view.commonViewMetrics.scroll.maxDepth,\n max_depth_scroll_top:\n view.commonViewMetrics.scroll.maxDepthScrollTop,\n max_scroll_height: view.commonViewMetrics.scroll.maxScrollHeight,\n max_scroll_height_time: toServerDuration(\n view.commonViewMetrics.scroll.maxScrollHeightTime\n )\n }\n }\n : undefined,\n session: {\n has_replay: replayStats ? true : undefined,\n is_active: view.sessionIsActive ? undefined : false\n },\n privacy: {\n replay_level: configuration.defaultPrivacyLevel\n }\n }\n if (!isEmptyObject(view.customTimings)) {\n viewEvent.view.custom_timings = mapValues(\n view.customTimings,\n toServerDuration\n )\n }\n viewEvent = extend2Lev(viewEvent, {\n view: computePerformanceViewDetails(\n view.initialViewMetrics.navigationTimings\n )\n })\n return {\n rawRumEvent: viewEvent,\n startTime: view.startClocks.relative,\n domainContext: {\n location: view.location\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|