@kubesense/kubesense-browser-rum 1.8.0 → 2.0.0-beta.1
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 +1 -1
- package/README.md +23 -0
- package/bundle/chunks/kubesenseProfiler-4b8cfd8f889074788478-kubesense-rum.js +1 -0
- package/bundle/chunks/kubesenseRecorder-db948e96649585a2b3e9-kubesense-rum.js +1 -0
- package/bundle/kubesense-rum.js +1 -1
- package/cjs/boot/kubesenseRecorder.d.ts +6 -0
- package/cjs/boot/kubesenseRecorder.js +75 -0
- package/cjs/boot/kubesenseRecorder.js.map +1 -0
- package/cjs/boot/lazyLoadProfiler.d.ts +3 -4
- package/cjs/boot/lazyLoadProfiler.js +18 -50
- package/cjs/boot/lazyLoadProfiler.js.map +1 -1
- package/cjs/boot/lazyLoadRecorder.d.ts +3 -4
- package/cjs/boot/lazyLoadRecorder.js +18 -50
- package/cjs/boot/lazyLoadRecorder.js.map +1 -1
- package/cjs/boot/postStartStrategy.d.ts +4 -4
- package/cjs/boot/postStartStrategy.js +89 -110
- package/cjs/boot/postStartStrategy.js.map +1 -1
- package/cjs/boot/preStartStrategy.js +21 -21
- package/cjs/boot/preStartStrategy.js.map +1 -1
- package/cjs/boot/profilerApi.js +44 -50
- package/cjs/boot/profilerApi.js.map +1 -1
- package/cjs/boot/recorderApi.d.ts +1 -3
- package/cjs/boot/recorderApi.js +41 -71
- package/cjs/boot/recorderApi.js.map +1 -1
- package/cjs/domain/deflate/deflateEncoder.d.ts +1 -2
- package/cjs/domain/deflate/deflateEncoder.js +94 -108
- package/cjs/domain/deflate/deflateEncoder.js.map +1 -1
- package/cjs/domain/deflate/deflateWorker.d.ts +3 -4
- package/cjs/domain/deflate/deflateWorker.js +79 -90
- package/cjs/domain/deflate/deflateWorker.js.map +1 -1
- package/cjs/domain/deflate/index.d.ts +1 -1
- package/cjs/domain/deflate/index.js +5 -10
- package/cjs/domain/getSessionReplayLink.d.ts +3 -2
- package/cjs/domain/getSessionReplayLink.js +17 -31
- package/cjs/domain/getSessionReplayLink.js.map +1 -1
- package/cjs/domain/profiling/actionHistory.d.ts +10 -0
- package/cjs/domain/profiling/actionHistory.js +37 -0
- package/cjs/domain/profiling/actionHistory.js.map +1 -0
- package/cjs/domain/profiling/kubesenseProfiler.d.ts +6 -0
- package/cjs/domain/profiling/kubesenseProfiler.js +243 -0
- package/cjs/domain/profiling/kubesenseProfiler.js.map +1 -0
- package/cjs/domain/profiling/longTaskHistory.d.ts +11 -0
- package/cjs/domain/profiling/longTaskHistory.js +22 -0
- package/cjs/domain/profiling/longTaskHistory.js.map +1 -0
- package/cjs/domain/profiling/profilerDebugIds.d.ts +2 -0
- package/cjs/domain/profiling/profilerDebugIds.js +18 -0
- package/cjs/domain/profiling/profilerDebugIds.js.map +1 -0
- package/cjs/domain/profiling/profilingContext.js +20 -25
- package/cjs/domain/profiling/profilingContext.js.map +1 -1
- package/cjs/domain/profiling/profilingSupported.js +6 -8
- package/cjs/domain/profiling/profilingSupported.js.map +1 -1
- package/cjs/domain/profiling/quotaCheck.d.ts +9 -0
- package/cjs/domain/profiling/quotaCheck.js +66 -0
- package/cjs/domain/profiling/quotaCheck.js.map +1 -0
- package/cjs/domain/profiling/test-utils/mockedTrace.d.ts +1 -1
- package/cjs/domain/profiling/transport/buildProfileEvent.d.ts +38 -0
- package/cjs/domain/profiling/transport/buildProfileEvent.js +91 -0
- package/cjs/domain/profiling/transport/buildProfileEvent.js.map +1 -0
- package/cjs/domain/profiling/transport/formDataEmitter.d.ts +5 -0
- package/cjs/domain/profiling/transport/formDataEmitter.js +17 -0
- package/cjs/domain/profiling/transport/formDataEmitter.js.map +1 -0
- package/cjs/domain/profiling/transport/profilingBridge.d.ts +2 -0
- package/cjs/domain/profiling/transport/profilingBridge.js +12 -0
- package/cjs/domain/profiling/transport/profilingBridge.js.map +1 -0
- package/cjs/domain/profiling/{types/rumProfiler.types.d.ts → types.d.ts} +13 -24
- package/cjs/domain/profiling/utils/getCustomOrDefaultViewName.js +5 -5
- package/cjs/domain/profiling/utils/getCustomOrDefaultViewName.js.map +1 -1
- package/cjs/domain/profiling/utils/getDefaultViewName.js +6 -10
- package/cjs/domain/profiling/utils/getDefaultViewName.js.map +1 -1
- package/cjs/domain/profiling/vitalHistory.d.ts +13 -0
- package/cjs/domain/profiling/vitalHistory.js +56 -0
- package/cjs/domain/profiling/vitalHistory.js.map +1 -0
- package/cjs/domain/record/assembly.d.ts +2 -1
- package/cjs/domain/record/assembly.js +15 -14
- package/cjs/domain/record/assembly.js.map +1 -1
- package/cjs/domain/record/canvas/canvasHash.d.ts +2 -0
- package/cjs/domain/record/canvas/canvasHash.js +33 -0
- package/cjs/domain/record/canvas/canvasHash.js.map +1 -0
- package/cjs/domain/record/canvas/canvasManager.d.ts +42 -0
- package/cjs/domain/record/canvas/canvasManager.js +99 -0
- package/cjs/domain/record/canvas/canvasManager.js.map +1 -0
- package/cjs/domain/record/canvas/canvasSnapshot.d.ts +8 -0
- package/cjs/domain/record/canvas/canvasSnapshot.js +40 -0
- package/cjs/domain/record/canvas/canvasSnapshot.js.map +1 -0
- package/cjs/domain/record/canvas/canvasUtils.d.ts +2 -0
- package/cjs/domain/record/canvas/canvasUtils.js +14 -0
- package/cjs/domain/record/canvas/canvasUtils.js.map +1 -0
- package/cjs/domain/record/elementsScrollPositions.js +17 -20
- package/cjs/domain/record/elementsScrollPositions.js.map +1 -1
- package/cjs/domain/record/encoding/changeDecoder.d.ts +39 -0
- package/cjs/domain/record/encoding/changeDecoder.js +152 -0
- package/cjs/domain/record/encoding/changeDecoder.js.map +1 -0
- package/cjs/domain/record/encoding/changeEncoder.d.ts +39 -0
- package/cjs/domain/record/encoding/changeEncoder.js +146 -0
- package/cjs/domain/record/encoding/changeEncoder.js.map +1 -0
- package/cjs/domain/record/encoding/index.d.ts +10 -0
- package/cjs/domain/record/encoding/itemIds.d.ts +32 -0
- package/cjs/domain/record/encoding/itemIds.js +49 -0
- package/cjs/domain/record/encoding/itemIds.js.map +1 -0
- package/cjs/domain/record/encoding/roles.d.ts +52 -0
- package/cjs/domain/record/encoding/roles.js +66 -0
- package/cjs/domain/record/encoding/roles.js.map +1 -0
- package/cjs/domain/record/encoding/stringIds.d.ts +15 -0
- package/cjs/domain/record/encoding/stringIds.js +47 -0
- package/cjs/domain/record/encoding/stringIds.js.map +1 -0
- package/cjs/domain/record/encoding/stringTable.d.ts +15 -0
- package/cjs/domain/record/encoding/stringTable.js +38 -0
- package/cjs/domain/record/encoding/stringTable.js.map +1 -0
- package/cjs/domain/record/eventsUtils.js +9 -10
- package/cjs/domain/record/eventsUtils.js.map +1 -1
- package/cjs/domain/record/index.d.ts +5 -2
- package/cjs/domain/record/index.js +13 -17
- package/cjs/domain/record/internalApi.d.ts +6 -6
- package/cjs/domain/record/internalApi.js +55 -49
- package/cjs/domain/record/internalApi.js.map +1 -1
- package/cjs/domain/record/mutationBatch.d.ts +1 -0
- package/cjs/domain/record/mutationBatch.js +38 -39
- package/cjs/domain/record/mutationBatch.js.map +1 -1
- package/cjs/domain/record/record.d.ts +7 -1
- package/cjs/domain/record/record.js +76 -87
- package/cjs/domain/record/record.js.map +1 -1
- package/cjs/domain/record/record.types.d.ts +1 -0
- package/cjs/domain/record/recordingScope.d.ts +7 -3
- package/cjs/domain/record/recordingScope.js +25 -11
- package/cjs/domain/record/recordingScope.js.map +1 -1
- package/cjs/domain/record/serialization/index.d.ts +4 -2
- package/cjs/domain/record/serialization/index.js +16 -18
- package/cjs/domain/record/serialization/insertionCursor.d.ts +57 -0
- package/cjs/domain/record/serialization/insertionCursor.js +55 -0
- package/cjs/domain/record/serialization/insertionCursor.js.map +1 -0
- package/cjs/domain/record/serialization/serialization.types.d.ts +0 -6
- package/cjs/domain/record/serialization/serializationStats.js +26 -25
- package/cjs/domain/record/serialization/serializationStats.js.map +1 -1
- package/cjs/domain/record/serialization/serializationTransaction.d.ts +44 -22
- package/cjs/domain/record/serialization/serializationTransaction.js +90 -36
- package/cjs/domain/record/serialization/serializationTransaction.js.map +1 -1
- package/cjs/domain/record/serialization/serializationUtils.d.ts +0 -1
- package/cjs/domain/record/serialization/serializationUtils.js +46 -75
- package/cjs/domain/record/serialization/serializationUtils.js.map +1 -1
- package/cjs/domain/record/serialization/serializeAttribute.js +24 -39
- package/cjs/domain/record/serialization/serializeAttribute.js.map +1 -1
- package/cjs/domain/record/serialization/serializeAttributes.d.ts +2 -2
- package/cjs/domain/record/serialization/serializeAttributes.js +100 -152
- package/cjs/domain/record/serialization/serializeAttributes.js.map +1 -1
- package/cjs/domain/record/serialization/serializeFullSnapshot.d.ts +5 -0
- package/cjs/domain/record/serialization/serializeFullSnapshot.js +14 -0
- package/cjs/domain/record/serialization/serializeFullSnapshot.js.map +1 -0
- package/cjs/domain/record/serialization/serializeMutations.d.ts +5 -0
- package/cjs/domain/record/serialization/serializeMutations.js +152 -0
- package/cjs/domain/record/serialization/serializeMutations.js.map +1 -0
- package/cjs/domain/record/serialization/serializeNode.d.ts +3 -6
- package/cjs/domain/record/serialization/serializeNode.js +116 -144
- package/cjs/domain/record/serialization/serializeNode.js.map +1 -1
- package/cjs/domain/record/shadowRootsController.d.ts +2 -2
- package/cjs/domain/record/shadowRootsController.js +37 -42
- package/cjs/domain/record/shadowRootsController.js.map +1 -1
- package/cjs/domain/record/startFullSnapshots.d.ts +1 -1
- package/cjs/domain/record/startFullSnapshots.js +38 -54
- package/cjs/domain/record/startFullSnapshots.js.map +1 -1
- package/cjs/domain/record/trackers/index.d.ts +2 -1
- package/cjs/domain/record/trackers/index.js +25 -27
- package/cjs/domain/record/trackers/trackCanvasCapture.d.ts +3 -0
- package/cjs/domain/record/trackers/trackCanvasCapture.js +102 -0
- package/cjs/domain/record/trackers/trackCanvasCapture.js.map +1 -0
- package/cjs/domain/record/trackers/trackCanvasContent.d.ts +3 -0
- package/cjs/domain/record/trackers/trackCanvasContent.js +31 -0
- package/cjs/domain/record/trackers/trackCanvasContent.js.map +1 -0
- package/cjs/domain/record/trackers/trackFocus.d.ts +1 -2
- package/cjs/domain/record/trackers/trackFocus.js +15 -13
- package/cjs/domain/record/trackers/trackFocus.js.map +1 -1
- package/cjs/domain/record/trackers/trackInput.d.ts +2 -2
- package/cjs/domain/record/trackers/trackInput.js +129 -102
- package/cjs/domain/record/trackers/trackInput.js.map +1 -1
- package/cjs/domain/record/trackers/trackMediaInteraction.js +22 -26
- package/cjs/domain/record/trackers/trackMediaInteraction.js.map +1 -1
- package/cjs/domain/record/trackers/trackMouseInteraction.js +47 -54
- package/cjs/domain/record/trackers/trackMouseInteraction.js.map +1 -1
- package/cjs/domain/record/trackers/trackMove.js +43 -49
- package/cjs/domain/record/trackers/trackMove.js.map +1 -1
- package/cjs/domain/record/trackers/trackMutation.d.ts +3 -3
- package/cjs/domain/record/trackers/trackMutation.js +42 -267
- package/cjs/domain/record/trackers/trackMutation.js.map +1 -1
- package/cjs/domain/record/trackers/trackScroll.js +36 -44
- package/cjs/domain/record/trackers/trackScroll.js.map +1 -1
- package/cjs/domain/record/trackers/trackStyleSheet.js +75 -84
- package/cjs/domain/record/trackers/trackStyleSheet.js.map +1 -1
- package/cjs/domain/record/trackers/trackViewEnd.js +17 -17
- package/cjs/domain/record/trackers/trackViewEnd.js.map +1 -1
- package/cjs/domain/record/trackers/trackViewportResize.d.ts +2 -3
- package/cjs/domain/record/trackers/trackViewportResize.js +36 -42
- package/cjs/domain/record/trackers/trackViewportResize.js.map +1 -1
- package/cjs/domain/record/viewports.js +32 -50
- package/cjs/domain/record/viewports.js.map +1 -1
- package/cjs/domain/replayStats.d.ts +1 -0
- package/cjs/domain/replayStats.js +36 -44
- package/cjs/domain/replayStats.js.map +1 -1
- package/cjs/domain/scriptLoadingError.js +15 -22
- package/cjs/domain/scriptLoadingError.js.map +1 -1
- package/cjs/domain/segmentCollection/buildReplayPayload.js +22 -23
- package/cjs/domain/segmentCollection/buildReplayPayload.js.map +1 -1
- package/cjs/domain/segmentCollection/buildResourcePayload.d.ts +5 -0
- package/cjs/domain/segmentCollection/buildResourcePayload.js +19 -0
- package/cjs/domain/segmentCollection/buildResourcePayload.js.map +1 -0
- package/cjs/domain/segmentCollection/index.d.ts +3 -0
- package/cjs/domain/segmentCollection/index.js +14 -11
- package/cjs/domain/segmentCollection/replayResourceCollection.d.ts +10 -0
- package/cjs/domain/segmentCollection/replayResourceCollection.js +52 -0
- package/cjs/domain/segmentCollection/replayResourceCollection.js.map +1 -0
- package/cjs/domain/segmentCollection/segment.js +50 -80
- package/cjs/domain/segmentCollection/segment.js.map +1 -1
- package/cjs/domain/segmentCollection/segmentCollection.d.ts +4 -4
- package/cjs/domain/segmentCollection/segmentCollection.js +87 -105
- package/cjs/domain/segmentCollection/segmentCollection.js.map +1 -1
- package/cjs/domain/segmentCollection/startDroppedSegmentRecovery.d.ts +16 -0
- package/cjs/domain/segmentCollection/startDroppedSegmentRecovery.js +29 -0
- package/cjs/domain/segmentCollection/startDroppedSegmentRecovery.js.map +1 -0
- package/cjs/domain/segmentCollection/startSegmentTelemetry.js +40 -42
- package/cjs/domain/segmentCollection/startSegmentTelemetry.js.map +1 -1
- package/cjs/domain/startRecordBridge.js +10 -14
- package/cjs/domain/startRecordBridge.js.map +1 -1
- package/cjs/domain/startRecorderInitTelemetry.js +42 -50
- package/cjs/domain/startRecorderInitTelemetry.js.map +1 -1
- package/cjs/entries/internal.d.ts +11 -2
- package/cjs/entries/internal.js +47 -28
- package/cjs/entries/internalSynthetics.js +26 -24
- package/cjs/entries/internalSynthetics.js.map +1 -1
- package/cjs/entries/main.d.ts +5 -3
- package/cjs/entries/main.js +50 -31
- package/cjs/entries/main.js.map +1 -1
- package/cjs/types/index.d.ts +1 -0
- package/cjs/types/profiling.d.ts +313 -0
- package/cjs/types/sessionReplay.d.ts +381 -3
- package/cjs/types/sessionReplayConstants.d.ts +57 -0
- package/cjs/types/sessionReplayConstants.js +104 -47
- package/cjs/types/sessionReplayConstants.js.map +1 -1
- package/esm/boot/kubesenseRecorder.mjs +75 -0
- package/esm/boot/kubesenseRecorder.mjs.map +1 -0
- package/esm/boot/lazyLoadProfiler.mjs +24 -0
- package/esm/boot/lazyLoadProfiler.mjs.map +1 -0
- package/esm/boot/lazyLoadRecorder.mjs +24 -0
- package/esm/boot/lazyLoadRecorder.mjs.map +1 -0
- package/esm/boot/postStartStrategy.mjs +97 -0
- package/esm/boot/postStartStrategy.mjs.map +1 -0
- package/esm/boot/preStartStrategy.mjs +24 -0
- package/esm/boot/preStartStrategy.mjs.map +1 -0
- package/esm/boot/profilerApi.mjs +47 -0
- package/esm/boot/profilerApi.mjs.map +1 -0
- package/esm/boot/recorderApi.mjs +43 -0
- package/esm/boot/recorderApi.mjs.map +1 -0
- package/esm/domain/deflate/deflateEncoder.mjs +96 -0
- package/esm/domain/deflate/deflateEncoder.mjs.map +1 -0
- package/esm/domain/deflate/deflateWorker.mjs +90 -0
- package/esm/domain/deflate/deflateWorker.mjs.map +1 -0
- package/esm/domain/deflate/index.mjs +3 -0
- package/esm/domain/getSessionReplayLink.mjs +21 -0
- package/esm/domain/getSessionReplayLink.mjs.map +1 -0
- package/esm/domain/profiling/actionHistory.mjs +36 -0
- package/esm/domain/profiling/actionHistory.mjs.map +1 -0
- package/esm/domain/profiling/kubesenseProfiler.mjs +242 -0
- package/esm/domain/profiling/kubesenseProfiler.mjs.map +1 -0
- package/esm/domain/profiling/longTaskHistory.mjs +21 -0
- package/esm/domain/profiling/longTaskHistory.mjs.map +1 -0
- package/esm/domain/profiling/profilerDebugIds.mjs +18 -0
- package/esm/domain/profiling/profilerDebugIds.mjs.map +1 -0
- package/esm/domain/profiling/profilingContext.mjs +23 -0
- package/esm/domain/profiling/profilingContext.mjs.map +1 -0
- package/esm/domain/profiling/profilingSupported.mjs +9 -0
- package/esm/domain/profiling/profilingSupported.mjs.map +1 -0
- package/esm/domain/profiling/quotaCheck.mjs +66 -0
- package/esm/domain/profiling/quotaCheck.mjs.map +1 -0
- package/esm/domain/profiling/transport/buildProfileEvent.mjs +90 -0
- package/esm/domain/profiling/transport/buildProfileEvent.mjs.map +1 -0
- package/esm/domain/profiling/transport/formDataEmitter.mjs +17 -0
- package/esm/domain/profiling/transport/formDataEmitter.mjs.map +1 -0
- package/esm/domain/profiling/transport/profilingBridge.mjs +12 -0
- package/esm/domain/profiling/transport/profilingBridge.mjs.map +1 -0
- package/esm/domain/profiling/utils/getCustomOrDefaultViewName.mjs +7 -0
- package/esm/domain/profiling/utils/getCustomOrDefaultViewName.mjs.map +1 -0
- package/esm/domain/profiling/utils/getDefaultViewName.mjs +10 -0
- package/esm/domain/profiling/utils/getDefaultViewName.mjs.map +1 -0
- package/esm/domain/profiling/vitalHistory.mjs +55 -0
- package/esm/domain/profiling/vitalHistory.mjs.map +1 -0
- package/esm/domain/record/assembly.mjs +17 -0
- package/esm/domain/record/assembly.mjs.map +1 -0
- package/esm/domain/record/canvas/canvasHash.mjs +33 -0
- package/esm/domain/record/canvas/canvasHash.mjs.map +1 -0
- package/esm/domain/record/canvas/canvasManager.mjs +99 -0
- package/esm/domain/record/canvas/canvasManager.mjs.map +1 -0
- package/esm/domain/record/canvas/canvasSnapshot.mjs +38 -0
- package/esm/domain/record/canvas/canvasSnapshot.mjs.map +1 -0
- package/esm/domain/record/canvas/canvasUtils.mjs +13 -0
- package/esm/domain/record/canvas/canvasUtils.mjs.map +1 -0
- package/esm/domain/record/elementsScrollPositions.mjs +20 -0
- package/esm/domain/record/elementsScrollPositions.mjs.map +1 -0
- package/esm/domain/record/encoding/changeDecoder.mjs +152 -0
- package/esm/domain/record/encoding/changeDecoder.mjs.map +1 -0
- package/esm/domain/record/encoding/changeEncoder.mjs +146 -0
- package/esm/domain/record/encoding/changeEncoder.mjs.map +1 -0
- package/esm/domain/record/encoding/itemIds.mjs +47 -0
- package/esm/domain/record/encoding/itemIds.mjs.map +1 -0
- package/esm/domain/record/encoding/roles.mjs +64 -0
- package/esm/domain/record/encoding/roles.mjs.map +1 -0
- package/esm/domain/record/encoding/stringIds.mjs +47 -0
- package/esm/domain/record/encoding/stringIds.mjs.map +1 -0
- package/esm/domain/record/encoding/stringTable.mjs +38 -0
- package/esm/domain/record/encoding/stringTable.mjs.map +1 -0
- package/esm/domain/record/eventsUtils.mjs +13 -0
- package/esm/domain/record/eventsUtils.mjs.map +1 -0
- package/esm/domain/record/index.mjs +8 -0
- package/esm/domain/record/internalApi.mjs +62 -0
- package/esm/domain/record/internalApi.mjs.map +1 -0
- package/esm/domain/record/mutationBatch.mjs +43 -0
- package/esm/domain/record/mutationBatch.mjs.map +1 -0
- package/esm/domain/record/record.mjs +79 -0
- package/esm/domain/record/record.mjs.map +1 -0
- package/esm/domain/record/recordingScope.mjs +27 -0
- package/esm/domain/record/recordingScope.mjs.map +1 -0
- package/esm/domain/record/serialization/index.mjs +9 -0
- package/esm/domain/record/serialization/insertionCursor.mjs +54 -0
- package/esm/domain/record/serialization/insertionCursor.mjs.map +1 -0
- package/esm/domain/record/serialization/serializationStats.mjs +31 -0
- package/esm/domain/record/serialization/serializationStats.mjs.map +1 -0
- package/esm/domain/record/serialization/serializationTransaction.mjs +92 -0
- package/esm/domain/record/serialization/serializationTransaction.mjs.map +1 -0
- package/esm/domain/record/serialization/serializationUtils.mjs +53 -0
- package/esm/domain/record/serialization/serializationUtils.mjs.map +1 -0
- package/esm/domain/record/serialization/serializeAttribute.mjs +26 -0
- package/esm/domain/record/serialization/serializeAttribute.mjs.map +1 -0
- package/esm/domain/record/serialization/serializeAttributes.mjs +113 -0
- package/esm/domain/record/serialization/serializeAttributes.mjs.map +1 -0
- package/esm/domain/record/serialization/serializeFullSnapshot.mjs +14 -0
- package/esm/domain/record/serialization/serializeFullSnapshot.mjs.map +1 -0
- package/esm/domain/record/serialization/serializeMutations.mjs +152 -0
- package/esm/domain/record/serialization/serializeMutations.mjs.map +1 -0
- package/esm/domain/record/serialization/serializeNode.mjs +126 -0
- package/esm/domain/record/serialization/serializeNode.mjs.map +1 -0
- package/esm/domain/record/shadowRootsController.mjs +40 -0
- package/esm/domain/record/shadowRootsController.mjs.map +1 -0
- package/esm/domain/record/startFullSnapshots.mjs +42 -0
- package/esm/domain/record/startFullSnapshots.mjs.map +1 -0
- package/esm/domain/record/trackers/index.mjs +13 -0
- package/esm/domain/record/trackers/trackCanvasCapture.mjs +102 -0
- package/esm/domain/record/trackers/trackCanvasCapture.mjs.map +1 -0
- package/esm/domain/record/trackers/trackCanvasContent.mjs +31 -0
- package/esm/domain/record/trackers/trackCanvasContent.mjs.map +1 -0
- package/esm/domain/record/trackers/trackFocus.mjs +17 -0
- package/esm/domain/record/trackers/trackFocus.mjs.map +1 -0
- package/esm/domain/record/trackers/trackInput.mjs +131 -0
- package/esm/domain/record/trackers/trackInput.mjs.map +1 -0
- package/esm/domain/record/trackers/trackMediaInteraction.mjs +25 -0
- package/esm/domain/record/trackers/trackMediaInteraction.mjs.map +1 -0
- package/esm/domain/record/trackers/trackMouseInteraction.mjs +52 -0
- package/esm/domain/record/trackers/trackMouseInteraction.mjs.map +1 -0
- package/esm/domain/record/trackers/trackMove.mjs +48 -0
- package/esm/domain/record/trackers/trackMove.mjs.map +1 -0
- package/esm/domain/record/trackers/trackMutation.mjs +45 -0
- package/esm/domain/record/trackers/trackMutation.mjs.map +1 -0
- package/esm/domain/record/trackers/trackScroll.mjs +40 -0
- package/esm/domain/record/trackers/trackScroll.mjs.map +1 -0
- package/esm/domain/record/trackers/trackStyleSheet.mjs +79 -0
- package/esm/domain/record/trackers/trackStyleSheet.mjs.map +1 -0
- package/esm/domain/record/trackers/trackViewEnd.mjs +20 -0
- package/esm/domain/record/trackers/trackViewEnd.mjs.map +1 -0
- package/esm/domain/record/trackers/trackViewportResize.mjs +39 -0
- package/esm/domain/record/trackers/trackViewportResize.mjs.map +1 -0
- package/esm/domain/record/viewports.mjs +41 -0
- package/esm/domain/record/viewports.mjs.map +1 -0
- package/esm/domain/replayStats.mjs +46 -0
- package/esm/domain/replayStats.mjs.map +1 -0
- package/esm/domain/scriptLoadingError.mjs +19 -0
- package/esm/domain/scriptLoadingError.mjs.map +1 -0
- package/esm/domain/segmentCollection/buildReplayPayload.mjs +25 -0
- package/esm/domain/segmentCollection/buildReplayPayload.mjs.map +1 -0
- package/esm/domain/segmentCollection/buildResourcePayload.mjs +19 -0
- package/esm/domain/segmentCollection/buildResourcePayload.mjs.map +1 -0
- package/esm/domain/segmentCollection/index.mjs +5 -0
- package/esm/domain/segmentCollection/replayResourceCollection.mjs +52 -0
- package/esm/domain/segmentCollection/replayResourceCollection.mjs.map +1 -0
- package/esm/domain/segmentCollection/segment.mjs +52 -0
- package/esm/domain/segmentCollection/segment.mjs.map +1 -0
- package/esm/domain/segmentCollection/segmentCollection.mjs +87 -0
- package/esm/domain/segmentCollection/segmentCollection.mjs.map +1 -0
- package/esm/domain/segmentCollection/startDroppedSegmentRecovery.mjs +28 -0
- package/esm/domain/segmentCollection/startDroppedSegmentRecovery.mjs.map +1 -0
- package/esm/domain/segmentCollection/startSegmentTelemetry.mjs +45 -0
- package/esm/domain/segmentCollection/startSegmentTelemetry.mjs.map +1 -0
- package/esm/domain/startRecordBridge.mjs +13 -0
- package/esm/domain/startRecordBridge.mjs.map +1 -0
- package/esm/domain/startRecorderInitTelemetry.mjs +47 -0
- package/esm/domain/startRecorderInitTelemetry.mjs.map +1 -0
- package/esm/entries/internal.mjs +8 -0
- package/esm/entries/internalSynthetics.mjs +22 -0
- package/esm/entries/internalSynthetics.mjs.map +1 -0
- package/esm/entries/main.mjs +35 -0
- package/esm/entries/main.mjs.map +1 -0
- package/esm/types/sessionReplayConstants.mjs +97 -0
- package/esm/types/sessionReplayConstants.mjs.map +1 -0
- package/internal/package.json +1 -1
- package/internal-synthetics/package.json +1 -1
- package/package.json +26 -15
- package/src/boot/kubesenseRecorder.ts +134 -0
- package/src/boot/lazyLoadProfiler.ts +6 -7
- package/src/boot/lazyLoadRecorder.ts +6 -7
- package/src/boot/postStartStrategy.ts +18 -16
- package/src/boot/profilerApi.ts +29 -19
- package/src/boot/recorderApi.ts +6 -21
- package/src/domain/deflate/deflateEncoder.ts +3 -8
- package/src/domain/deflate/deflateWorker.ts +8 -13
- package/src/domain/deflate/index.ts +1 -0
- package/src/domain/getSessionReplayLink.ts +15 -11
- package/src/domain/profiling/actionHistory.ts +66 -0
- package/src/domain/profiling/{profiler.ts → kubesenseProfiler.ts} +166 -79
- package/src/domain/profiling/longTaskHistory.ts +45 -0
- package/src/domain/profiling/profilerDebugIds.ts +17 -0
- package/src/domain/profiling/profilingContext.ts +8 -3
- package/src/domain/profiling/profilingSupported.ts +2 -7
- package/src/domain/profiling/quotaCheck.ts +89 -0
- package/src/domain/profiling/test-utils/mockedTrace.ts +1 -2
- package/src/domain/profiling/transport/buildProfileEvent.ts +143 -0
- package/src/domain/profiling/transport/formDataEmitter.ts +17 -0
- package/src/domain/profiling/transport/profilingBridge.ts +9 -0
- package/src/domain/profiling/{types/rumProfiler.types.ts → types.ts} +14 -26
- package/src/domain/profiling/vitalHistory.ts +106 -0
- package/src/domain/record/assembly.ts +5 -3
- package/src/domain/record/canvas/canvasHash.ts +54 -0
- package/src/domain/record/canvas/canvasManager.ts +175 -0
- package/src/domain/record/canvas/canvasSnapshot.ts +52 -0
- package/src/domain/record/canvas/canvasUtils.ts +11 -0
- package/src/domain/record/encoding/changeDecoder.ts +287 -0
- package/src/domain/record/encoding/changeEncoder.ts +327 -0
- package/src/domain/record/encoding/index.ts +19 -0
- package/src/domain/record/encoding/itemIds.ts +84 -0
- package/src/domain/record/encoding/roles.ts +136 -0
- package/src/domain/record/encoding/stringIds.ts +70 -0
- package/src/domain/record/encoding/stringTable.ts +68 -0
- package/src/domain/record/index.ts +5 -2
- package/src/domain/record/internalApi.ts +21 -18
- package/src/domain/record/mutationBatch.ts +14 -3
- package/src/domain/record/record.ts +35 -16
- package/src/domain/record/record.types.ts +1 -0
- package/src/domain/record/recordingScope.ts +28 -5
- package/src/domain/record/serialization/index.ts +4 -2
- package/src/domain/record/serialization/insertionCursor.ts +131 -0
- package/src/domain/record/serialization/serialization.types.ts +0 -16
- package/src/domain/record/serialization/serializationTransaction.ts +191 -37
- package/src/domain/record/serialization/serializationUtils.ts +1 -15
- package/src/domain/record/serialization/serializeAttributes.ts +36 -32
- package/src/domain/record/serialization/serializeFullSnapshot.ts +26 -0
- package/src/domain/record/serialization/serializeMutations.ts +357 -0
- package/src/domain/record/serialization/serializeNode.ts +200 -164
- package/src/domain/record/shadowRootsController.ts +4 -3
- package/src/domain/record/startFullSnapshots.ts +28 -41
- package/src/domain/record/trackers/index.ts +2 -1
- package/src/domain/record/trackers/trackCanvasCapture.ts +137 -0
- package/src/domain/record/trackers/trackCanvasContent.ts +46 -0
- package/src/domain/record/trackers/trackFocus.ts +4 -4
- package/src/domain/record/trackers/trackInput.ts +146 -41
- package/src/domain/record/trackers/trackMediaInteraction.ts +0 -1
- package/src/domain/record/trackers/trackMouseInteraction.ts +1 -2
- package/src/domain/record/trackers/trackMove.ts +0 -1
- package/src/domain/record/trackers/trackMutation.ts +17 -355
- package/src/domain/record/trackers/trackScroll.ts +1 -1
- package/src/domain/record/trackers/trackStyleSheet.ts +1 -1
- package/src/domain/record/trackers/trackViewEnd.ts +1 -1
- package/src/domain/record/trackers/trackViewportResize.ts +7 -16
- package/src/domain/record/trackers/tracker.types.ts +1 -1
- package/src/domain/replayStats.ts +5 -0
- package/src/domain/scriptLoadingError.ts +2 -1
- package/src/domain/segmentCollection/buildResourcePayload.ts +20 -0
- package/src/domain/segmentCollection/index.ts +3 -0
- package/src/domain/segmentCollection/replayResourceCollection.ts +79 -0
- package/src/domain/segmentCollection/segment.ts +2 -1
- package/src/domain/segmentCollection/segmentCollection.ts +14 -13
- package/src/domain/segmentCollection/startDroppedSegmentRecovery.ts +37 -0
- package/src/domain/segmentCollection/startSegmentTelemetry.ts +16 -2
- package/src/domain/startRecorderInitTelemetry.ts +5 -3
- package/src/entries/internal.ts +13 -2
- package/src/entries/internalSynthetics.ts +3 -4
- package/src/entries/main.ts +23 -14
- package/src/types/index.ts +1 -0
- package/src/types/profiling.ts +315 -0
- package/src/types/sessionReplay.ts +395 -3
- package/src/types/sessionReplayConstants.ts +109 -0
- package/bundle/chunks/profiler-6f621c66a29d9f39a9bd-kubesense-rum.js +0 -1
- package/bundle/chunks/recorder-c73b8d42b98d4a01f120-kubesense-rum.js +0 -1
- package/cjs/boot/isBrowserSupported.d.ts +0 -4
- package/cjs/boot/isBrowserSupported.js +0 -17
- package/cjs/boot/isBrowserSupported.js.map +0 -1
- package/cjs/boot/startRecording.d.ts +0 -6
- package/cjs/boot/startRecording.js +0 -45
- package/cjs/boot/startRecording.js.map +0 -1
- package/cjs/domain/deflate/index.js.map +0 -1
- package/cjs/domain/profiling/profiler.d.ts +0 -7
- package/cjs/domain/profiling/profiler.js +0 -244
- package/cjs/domain/profiling/profiler.js.map +0 -1
- package/cjs/domain/profiling/test-utils/mockedTrace.js +0 -57
- package/cjs/domain/profiling/test-utils/mockedTrace.js.map +0 -1
- package/cjs/domain/profiling/transport/assembly.d.ts +0 -21
- package/cjs/domain/profiling/transport/assembly.js +0 -45
- package/cjs/domain/profiling/transport/assembly.js.map +0 -1
- package/cjs/domain/profiling/transport/buildProfileEventAttributes.d.ts +0 -25
- package/cjs/domain/profiling/transport/buildProfileEventAttributes.js +0 -50
- package/cjs/domain/profiling/transport/buildProfileEventAttributes.js.map +0 -1
- package/cjs/domain/profiling/types/index.d.ts +0 -2
- package/cjs/domain/profiling/types/index.js +0 -3
- package/cjs/domain/profiling/types/index.js.map +0 -1
- package/cjs/domain/profiling/types/profilerApi.types.d.ts +0 -58
- package/cjs/domain/profiling/types/profilerApi.types.js +0 -5
- package/cjs/domain/profiling/types/profilerApi.types.js.map +0 -1
- package/cjs/domain/profiling/types/rumProfiler.types.js +0 -3
- package/cjs/domain/profiling/types/rumProfiler.types.js.map +0 -1
- package/cjs/domain/profiling/utils/getNumberOfSamples.d.ts +0 -7
- package/cjs/domain/profiling/utils/getNumberOfSamples.js +0 -18
- package/cjs/domain/profiling/utils/getNumberOfSamples.js.map +0 -1
- package/cjs/domain/record/eventIds.d.ts +0 -4
- package/cjs/domain/record/eventIds.js +0 -16
- package/cjs/domain/record/eventIds.js.map +0 -1
- package/cjs/domain/record/index.js.map +0 -1
- package/cjs/domain/record/nodeIds.d.ts +0 -15
- package/cjs/domain/record/nodeIds.js +0 -32
- package/cjs/domain/record/nodeIds.js.map +0 -1
- package/cjs/domain/record/record.types.js +0 -3
- package/cjs/domain/record/record.types.js.map +0 -1
- package/cjs/domain/record/serialization/index.js.map +0 -1
- package/cjs/domain/record/serialization/serialization.types.js +0 -3
- package/cjs/domain/record/serialization/serialization.types.js.map +0 -1
- package/cjs/domain/record/serialization/serializeDocument.d.ts +0 -3
- package/cjs/domain/record/serialization/serializeDocument.js +0 -11
- package/cjs/domain/record/serialization/serializeDocument.js.map +0 -1
- package/cjs/domain/record/serialization/serializeStyleSheets.d.ts +0 -2
- package/cjs/domain/record/serialization/serializeStyleSheets.js +0 -19
- package/cjs/domain/record/serialization/serializeStyleSheets.js.map +0 -1
- package/cjs/domain/record/trackers/index.js.map +0 -1
- package/cjs/domain/record/trackers/trackFrustration.d.ts +0 -7
- package/cjs/domain/record/trackers/trackFrustration.js +0 -31
- package/cjs/domain/record/trackers/trackFrustration.js.map +0 -1
- package/cjs/domain/record/trackers/tracker.types.js +0 -3
- package/cjs/domain/record/trackers/tracker.types.js.map +0 -1
- package/cjs/domain/segmentCollection/index.js.map +0 -1
- package/cjs/entries/internal.js.map +0 -1
- package/cjs/types/index.js +0 -18
- package/cjs/types/index.js.map +0 -1
- package/cjs/types/sessionReplay.js +0 -7
- package/cjs/types/sessionReplay.js.map +0 -1
- package/esm/boot/isBrowserSupported.d.ts +0 -4
- package/esm/boot/isBrowserSupported.js +0 -14
- package/esm/boot/isBrowserSupported.js.map +0 -1
- package/esm/boot/lazyLoadProfiler.d.ts +0 -4
- package/esm/boot/lazyLoadProfiler.js +0 -18
- package/esm/boot/lazyLoadProfiler.js.map +0 -1
- package/esm/boot/lazyLoadRecorder.d.ts +0 -4
- package/esm/boot/lazyLoadRecorder.js +0 -18
- package/esm/boot/lazyLoadRecorder.js.map +0 -1
- package/esm/boot/postStartStrategy.d.ts +0 -33
- package/esm/boot/postStartStrategy.js +0 -115
- package/esm/boot/postStartStrategy.js.map +0 -1
- package/esm/boot/preStartStrategy.d.ts +0 -6
- package/esm/boot/preStartStrategy.js +0 -21
- package/esm/boot/preStartStrategy.js.map +0 -1
- package/esm/boot/profilerApi.d.ts +0 -2
- package/esm/boot/profilerApi.js +0 -50
- package/esm/boot/profilerApi.js.map +0 -1
- package/esm/boot/recorderApi.d.ts +0 -4
- package/esm/boot/recorderApi.js +0 -70
- package/esm/boot/recorderApi.js.map +0 -1
- package/esm/boot/startRecording.d.ts +0 -6
- package/esm/boot/startRecording.js +0 -42
- package/esm/boot/startRecording.js.map +0 -1
- package/esm/domain/deflate/deflateEncoder.d.ts +0 -3
- package/esm/domain/deflate/deflateEncoder.js +0 -107
- package/esm/domain/deflate/deflateEncoder.js.map +0 -1
- package/esm/domain/deflate/deflateWorker.d.ts +0 -30
- package/esm/domain/deflate/deflateWorker.js +0 -97
- package/esm/domain/deflate/deflateWorker.js.map +0 -1
- package/esm/domain/deflate/index.d.ts +0 -3
- package/esm/domain/deflate/index.js +0 -3
- package/esm/domain/deflate/index.js.map +0 -1
- package/esm/domain/getSessionReplayLink.d.ts +0 -2
- package/esm/domain/getSessionReplayLink.js +0 -32
- package/esm/domain/getSessionReplayLink.js.map +0 -1
- package/esm/domain/profiling/profiler.d.ts +0 -7
- package/esm/domain/profiling/profiler.js +0 -240
- package/esm/domain/profiling/profiler.js.map +0 -1
- package/esm/domain/profiling/profilingContext.d.ts +0 -6
- package/esm/domain/profiling/profilingContext.js +0 -25
- package/esm/domain/profiling/profilingContext.js.map +0 -1
- package/esm/domain/profiling/profilingSupported.d.ts +0 -1
- package/esm/domain/profiling/profilingSupported.js +0 -8
- package/esm/domain/profiling/profilingSupported.js.map +0 -1
- package/esm/domain/profiling/test-utils/mockedTrace.d.ts +0 -3
- package/esm/domain/profiling/test-utils/mockedTrace.js +0 -54
- package/esm/domain/profiling/test-utils/mockedTrace.js.map +0 -1
- package/esm/domain/profiling/transport/assembly.d.ts +0 -21
- package/esm/domain/profiling/transport/assembly.js +0 -42
- package/esm/domain/profiling/transport/assembly.js.map +0 -1
- package/esm/domain/profiling/transport/buildProfileEventAttributes.d.ts +0 -25
- package/esm/domain/profiling/transport/buildProfileEventAttributes.js +0 -47
- package/esm/domain/profiling/transport/buildProfileEventAttributes.js.map +0 -1
- package/esm/domain/profiling/types/index.d.ts +0 -2
- package/esm/domain/profiling/types/index.js +0 -2
- package/esm/domain/profiling/types/index.js.map +0 -1
- package/esm/domain/profiling/types/profilerApi.types.d.ts +0 -58
- package/esm/domain/profiling/types/profilerApi.types.js +0 -4
- package/esm/domain/profiling/types/profilerApi.types.js.map +0 -1
- package/esm/domain/profiling/types/rumProfiler.types.d.ts +0 -72
- package/esm/domain/profiling/types/rumProfiler.types.js +0 -2
- package/esm/domain/profiling/types/rumProfiler.types.js.map +0 -1
- package/esm/domain/profiling/utils/getCustomOrDefaultViewName.d.ts +0 -1
- package/esm/domain/profiling/utils/getCustomOrDefaultViewName.js +0 -3
- package/esm/domain/profiling/utils/getCustomOrDefaultViewName.js.map +0 -1
- package/esm/domain/profiling/utils/getDefaultViewName.d.ts +0 -1
- package/esm/domain/profiling/utils/getDefaultViewName.js +0 -11
- package/esm/domain/profiling/utils/getDefaultViewName.js.map +0 -1
- package/esm/domain/profiling/utils/getNumberOfSamples.d.ts +0 -7
- package/esm/domain/profiling/utils/getNumberOfSamples.js +0 -15
- package/esm/domain/profiling/utils/getNumberOfSamples.js.map +0 -1
- package/esm/domain/record/assembly.d.ts +0 -2
- package/esm/domain/record/assembly.js +0 -13
- package/esm/domain/record/assembly.js.map +0 -1
- package/esm/domain/record/elementsScrollPositions.d.ts +0 -10
- package/esm/domain/record/elementsScrollPositions.js +0 -20
- package/esm/domain/record/elementsScrollPositions.js.map +0 -1
- package/esm/domain/record/eventIds.d.ts +0 -4
- package/esm/domain/record/eventIds.js +0 -13
- package/esm/domain/record/eventIds.js.map +0 -1
- package/esm/domain/record/eventsUtils.d.ts +0 -2
- package/esm/domain/record/eventsUtils.js +0 -11
- package/esm/domain/record/eventsUtils.js.map +0 -1
- package/esm/domain/record/index.d.ts +0 -7
- package/esm/domain/record/index.js +0 -6
- package/esm/domain/record/index.js.map +0 -1
- package/esm/domain/record/internalApi.d.ts +0 -22
- package/esm/domain/record/internalApi.js +0 -53
- package/esm/domain/record/internalApi.js.map +0 -1
- package/esm/domain/record/mutationBatch.d.ts +0 -12
- package/esm/domain/record/mutationBatch.js +0 -40
- package/esm/domain/record/mutationBatch.js.map +0 -1
- package/esm/domain/record/nodeIds.d.ts +0 -15
- package/esm/domain/record/nodeIds.js +0 -29
- package/esm/domain/record/nodeIds.js.map +0 -1
- package/esm/domain/record/record.d.ts +0 -16
- package/esm/domain/record/record.js +0 -54
- package/esm/domain/record/record.js.map +0 -1
- package/esm/domain/record/record.types.d.ts +0 -4
- package/esm/domain/record/record.types.js +0 -2
- package/esm/domain/record/record.types.js.map +0 -1
- package/esm/domain/record/recordingScope.d.ts +0 -19
- package/esm/domain/record/recordingScope.js +0 -10
- package/esm/domain/record/recordingScope.js.map +0 -1
- package/esm/domain/record/serialization/index.d.ts +0 -8
- package/esm/domain/record/serialization/index.js +0 -7
- package/esm/domain/record/serialization/index.js.map +0 -1
- package/esm/domain/record/serialization/serialization.types.d.ts +0 -28
- package/esm/domain/record/serialization/serialization.types.js +0 -2
- package/esm/domain/record/serialization/serialization.types.js.map +0 -1
- package/esm/domain/record/serialization/serializationStats.d.ts +0 -12
- package/esm/domain/record/serialization/serializationStats.js +0 -27
- package/esm/domain/record/serialization/serializationStats.js.map +0 -1
- package/esm/domain/record/serialization/serializationTransaction.d.ts +0 -45
- package/esm/domain/record/serialization/serializationTransaction.js +0 -35
- package/esm/domain/record/serialization/serializationTransaction.js.map +0 -1
- package/esm/domain/record/serialization/serializationUtils.d.ts +0 -18
- package/esm/domain/record/serialization/serializationUtils.js +0 -80
- package/esm/domain/record/serialization/serializationUtils.js.map +0 -1
- package/esm/domain/record/serialization/serializeAttribute.d.ts +0 -4
- package/esm/domain/record/serialization/serializeAttribute.js +0 -38
- package/esm/domain/record/serialization/serializeAttribute.js.map +0 -1
- package/esm/domain/record/serialization/serializeAttributes.d.ts +0 -7
- package/esm/domain/record/serialization/serializeAttributes.js +0 -161
- package/esm/domain/record/serialization/serializeAttributes.js.map +0 -1
- package/esm/domain/record/serialization/serializeDocument.d.ts +0 -3
- package/esm/domain/record/serialization/serializeDocument.js +0 -8
- package/esm/domain/record/serialization/serializeDocument.js.map +0 -1
- package/esm/domain/record/serialization/serializeNode.d.ts +0 -7
- package/esm/domain/record/serialization/serializeNode.js +0 -149
- package/esm/domain/record/serialization/serializeNode.js.map +0 -1
- package/esm/domain/record/serialization/serializeStyleSheets.d.ts +0 -2
- package/esm/domain/record/serialization/serializeStyleSheets.js +0 -16
- package/esm/domain/record/serialization/serializeStyleSheets.js.map +0 -1
- package/esm/domain/record/shadowRootsController.d.ts +0 -11
- package/esm/domain/record/shadowRootsController.js +0 -41
- package/esm/domain/record/shadowRootsController.js.map +0 -1
- package/esm/domain/record/startFullSnapshots.d.ts +0 -9
- package/esm/domain/record/startFullSnapshots.js +0 -55
- package/esm/domain/record/startFullSnapshots.js.map +0 -1
- package/esm/domain/record/trackers/index.d.ts +0 -12
- package/esm/domain/record/trackers/index.js +0 -12
- package/esm/domain/record/trackers/index.js.map +0 -1
- package/esm/domain/record/trackers/trackFocus.d.ts +0 -5
- package/esm/domain/record/trackers/trackFocus.js +0 -12
- package/esm/domain/record/trackers/trackFocus.js.map +0 -1
- package/esm/domain/record/trackers/trackFrustration.d.ts +0 -7
- package/esm/domain/record/trackers/trackFrustration.js +0 -28
- package/esm/domain/record/trackers/trackFrustration.js.map +0 -1
- package/esm/domain/record/trackers/trackInput.d.ts +0 -4
- package/esm/domain/record/trackers/trackInput.js +0 -101
- package/esm/domain/record/trackers/trackInput.js.map +0 -1
- package/esm/domain/record/trackers/trackMediaInteraction.d.ts +0 -5
- package/esm/domain/record/trackers/trackMediaInteraction.js +0 -26
- package/esm/domain/record/trackers/trackMediaInteraction.js.map +0 -1
- package/esm/domain/record/trackers/trackMouseInteraction.d.ts +0 -5
- package/esm/domain/record/trackers/trackMouseInteraction.js +0 -56
- package/esm/domain/record/trackers/trackMouseInteraction.js.map +0 -1
- package/esm/domain/record/trackers/trackMove.d.ts +0 -9
- package/esm/domain/record/trackers/trackMove.js +0 -51
- package/esm/domain/record/trackers/trackMove.js.map +0 -1
- package/esm/domain/record/trackers/trackMutation.d.ts +0 -11
- package/esm/domain/record/trackers/trackMutation.js +0 -266
- package/esm/domain/record/trackers/trackMutation.js.map +0 -1
- package/esm/domain/record/trackers/trackScroll.d.ts +0 -5
- package/esm/domain/record/trackers/trackScroll.js +0 -45
- package/esm/domain/record/trackers/trackScroll.js.map +0 -1
- package/esm/domain/record/trackers/trackStyleSheet.d.ts +0 -6
- package/esm/domain/record/trackers/trackStyleSheet.js +0 -85
- package/esm/domain/record/trackers/trackStyleSheet.js.map +0 -1
- package/esm/domain/record/trackers/trackViewEnd.d.ts +0 -5
- package/esm/domain/record/trackers/trackViewEnd.js +0 -17
- package/esm/domain/record/trackers/trackViewEnd.js.map +0 -1
- package/esm/domain/record/trackers/trackViewportResize.d.ts +0 -6
- package/esm/domain/record/trackers/trackViewportResize.js +0 -42
- package/esm/domain/record/trackers/trackViewportResize.js.map +0 -1
- package/esm/domain/record/trackers/tracker.types.d.ts +0 -3
- package/esm/domain/record/trackers/tracker.types.js +0 -2
- package/esm/domain/record/trackers/tracker.types.js.map +0 -1
- package/esm/domain/record/viewports.d.ts +0 -20
- package/esm/domain/record/viewports.js +0 -55
- package/esm/domain/record/viewports.js.map +0 -1
- package/esm/domain/replayStats.d.ts +0 -8
- package/esm/domain/replayStats.js +0 -51
- package/esm/domain/replayStats.js.map +0 -1
- package/esm/domain/scriptLoadingError.d.ts +0 -6
- package/esm/domain/scriptLoadingError.js +0 -23
- package/esm/domain/scriptLoadingError.js.map +0 -1
- package/esm/domain/segmentCollection/buildReplayPayload.d.ts +0 -15
- package/esm/domain/segmentCollection/buildReplayPayload.js +0 -23
- package/esm/domain/segmentCollection/buildReplayPayload.js.map +0 -1
- package/esm/domain/segmentCollection/index.d.ts +0 -4
- package/esm/domain/segmentCollection/index.js +0 -4
- package/esm/domain/segmentCollection/index.js.map +0 -1
- package/esm/domain/segmentCollection/segment.d.ts +0 -16
- package/esm/domain/segmentCollection/segment.js +0 -46
- package/esm/domain/segmentCollection/segment.js.map +0 -1
- package/esm/domain/segmentCollection/segmentCollection.d.ts +0 -31
- package/esm/domain/segmentCollection/segmentCollection.js +0 -106
- package/esm/domain/segmentCollection/segmentCollection.js.map +0 -1
- package/esm/domain/segmentCollection/startSegmentTelemetry.d.ts +0 -6
- package/esm/domain/segmentCollection/startSegmentTelemetry.js +0 -44
- package/esm/domain/segmentCollection/startSegmentTelemetry.js.map +0 -1
- package/esm/domain/startRecordBridge.d.ts +0 -5
- package/esm/domain/startRecordBridge.js +0 -14
- package/esm/domain/startRecordBridge.js.map +0 -1
- package/esm/domain/startRecorderInitTelemetry.d.ts +0 -15
- package/esm/domain/startRecorderInitTelemetry.js +0 -52
- package/esm/domain/startRecorderInitTelemetry.js.map +0 -1
- package/esm/entries/internal.d.ts +0 -11
- package/esm/entries/internal.js +0 -4
- package/esm/entries/internal.js.map +0 -1
- package/esm/entries/internalSynthetics.d.ts +0 -2
- package/esm/entries/internalSynthetics.js +0 -23
- package/esm/entries/internalSynthetics.js.map +0 -1
- package/esm/entries/main.d.ts +0 -23
- package/esm/entries/main.js +0 -31
- package/esm/entries/main.js.map +0 -1
- package/esm/types/index.d.ts +0 -2
- package/esm/types/index.js +0 -2
- package/esm/types/index.js.map +0 -1
- package/esm/types/sessionReplay.d.ts +0 -703
- package/esm/types/sessionReplay.js +0 -6
- package/esm/types/sessionReplay.js.map +0 -1
- package/esm/types/sessionReplayConstants.d.ts +0 -49
- package/esm/types/sessionReplayConstants.js +0 -46
- package/esm/types/sessionReplayConstants.js.map +0 -1
- package/src/boot/isBrowserSupported.ts +0 -14
- package/src/boot/startRecording.ts +0 -70
- package/src/domain/profiling/transport/assembly.ts +0 -78
- package/src/domain/profiling/transport/buildProfileEventAttributes.ts +0 -66
- package/src/domain/profiling/types/index.ts +0 -2
- package/src/domain/profiling/types/profilerApi.types.ts +0 -87
- package/src/domain/profiling/utils/getNumberOfSamples.ts +0 -16
- package/src/domain/record/eventIds.ts +0 -17
- package/src/domain/record/nodeIds.ts +0 -46
- package/src/domain/record/serialization/serializeDocument.ts +0 -13
- package/src/domain/record/serialization/serializeStyleSheets.ts +0 -18
- package/src/domain/record/trackers/trackFrustration.ts +0 -41
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
LifeCycle,
|
|
3
3
|
RumConfiguration,
|
|
4
|
-
RumSessionManager,
|
|
5
4
|
StartRecordingOptions,
|
|
6
5
|
ViewHistory,
|
|
7
|
-
RumSession,
|
|
8
6
|
} from '@kubesense/kubesense-browser-rum-core'
|
|
9
7
|
import {
|
|
10
8
|
LifeCycleEventType,
|
|
11
9
|
SessionReplayState,
|
|
10
|
+
computeSessionReplayState,
|
|
12
11
|
getRoutePath,
|
|
13
12
|
isRouteRecordable,
|
|
14
13
|
} from '@kubesense/kubesense-browser-rum-core'
|
|
15
|
-
import type { Telemetry, DeflateEncoder } from '@kubesense/kubesense-browser-core'
|
|
16
|
-
import {
|
|
14
|
+
import type { Telemetry, DeflateEncoder, SessionManager } from '@kubesense/kubesense-browser-core'
|
|
15
|
+
import { monitorError } from '@kubesense/kubesense-js-core/monitor'
|
|
16
|
+
import { asyncRunOnReadyState, Observable } from '@kubesense/kubesense-browser-core'
|
|
17
17
|
import { getSessionReplayLink } from '../domain/getSessionReplayLink'
|
|
18
18
|
import { startRecorderInitTelemetry } from '../domain/startRecorderInitTelemetry'
|
|
19
|
-
import type { startRecording } from './
|
|
19
|
+
import type { startRecording } from './kubesenseRecorder'
|
|
20
|
+
import { lazyLoadRecorder } from './lazyLoadRecorder'
|
|
20
21
|
|
|
21
22
|
export type StartRecording = typeof startRecording
|
|
22
23
|
|
|
@@ -51,9 +52,8 @@ export interface Strategy {
|
|
|
51
52
|
export function createPostStartStrategy(
|
|
52
53
|
configuration: RumConfiguration,
|
|
53
54
|
lifeCycle: LifeCycle,
|
|
54
|
-
sessionManager:
|
|
55
|
+
sessionManager: SessionManager,
|
|
55
56
|
viewHistory: ViewHistory,
|
|
56
|
-
loadRecorder: () => Promise<StartRecording | undefined>,
|
|
57
57
|
getOrCreateDeflateEncoder: () => DeflateEncoder | undefined,
|
|
58
58
|
telemetry: Telemetry
|
|
59
59
|
): Strategy {
|
|
@@ -93,8 +93,8 @@ export function createPostStartStrategy(
|
|
|
93
93
|
observable.notify({ type: 'start', forced })
|
|
94
94
|
|
|
95
95
|
const [startRecordingImpl] = await Promise.all([
|
|
96
|
-
notifyWhenSettled(observable, { type: 'recorder-settled' },
|
|
97
|
-
notifyWhenSettled(observable, { type: 'document-ready' }, asyncRunOnReadyState(
|
|
96
|
+
notifyWhenSettled(observable, { type: 'recorder-settled' }, lazyLoadRecorder()),
|
|
97
|
+
notifyWhenSettled(observable, { type: 'document-ready' }, asyncRunOnReadyState('interactive')),
|
|
98
98
|
])
|
|
99
99
|
|
|
100
100
|
if (status !== RecorderStatus.Starting) {
|
|
@@ -137,7 +137,9 @@ export function createPostStartStrategy(
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
const session = sessionManager.findTrackedSession()
|
|
140
|
-
|
|
140
|
+
const replayState = session ? computeSessionReplayState(session, configuration) : undefined
|
|
141
|
+
|
|
142
|
+
if (!canStartRecording(replayState, options)) {
|
|
141
143
|
status = RecorderStatus.IntentToStart
|
|
142
144
|
return
|
|
143
145
|
}
|
|
@@ -148,13 +150,13 @@ export function createPostStartStrategy(
|
|
|
148
150
|
|
|
149
151
|
status = RecorderStatus.Starting
|
|
150
152
|
|
|
151
|
-
const forced = shouldForceReplay(
|
|
153
|
+
const forced = shouldForceReplay(replayState, options) || false
|
|
152
154
|
|
|
153
155
|
// Intentionally not awaiting doStart() to keep it asynchronous
|
|
154
156
|
doStart(forced).catch(monitorError)
|
|
155
157
|
|
|
156
158
|
if (forced) {
|
|
157
|
-
sessionManager.
|
|
159
|
+
sessionManager.updateSessionState({ forcedReplay: '1' })
|
|
158
160
|
}
|
|
159
161
|
}
|
|
160
162
|
|
|
@@ -176,16 +178,16 @@ export function createPostStartStrategy(
|
|
|
176
178
|
}
|
|
177
179
|
}
|
|
178
180
|
|
|
179
|
-
function canStartRecording(
|
|
180
|
-
return
|
|
181
|
+
function canStartRecording(replayState: SessionReplayState | undefined, options?: StartRecordingOptions) {
|
|
182
|
+
return replayState !== undefined && (replayState !== SessionReplayState.OFF || options?.force)
|
|
181
183
|
}
|
|
182
184
|
|
|
183
185
|
function isRecordingInProgress(status: RecorderStatus) {
|
|
184
186
|
return status === RecorderStatus.Starting || status === RecorderStatus.Started
|
|
185
187
|
}
|
|
186
188
|
|
|
187
|
-
function shouldForceReplay(
|
|
188
|
-
return options && options.force &&
|
|
189
|
+
function shouldForceReplay(replayState: SessionReplayState | undefined, options?: StartRecordingOptions) {
|
|
190
|
+
return options && options.force && replayState === SessionReplayState.OFF
|
|
189
191
|
}
|
|
190
192
|
|
|
191
193
|
async function notifyWhenSettled<Event, Result>(
|
package/src/boot/profilerApi.ts
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
Hooks,
|
|
2
3
|
LifeCycle,
|
|
3
|
-
ViewHistory,
|
|
4
|
-
RumSessionManager,
|
|
5
|
-
RumConfiguration,
|
|
6
4
|
ProfilerApi,
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
RumConfiguration,
|
|
6
|
+
ViewHistory,
|
|
9
7
|
} from '@kubesense/kubesense-browser-rum-core'
|
|
10
|
-
import type { DeflateEncoderStreamId, Encoder } from '@kubesense/kubesense-browser-core'
|
|
11
|
-
import {
|
|
12
|
-
|
|
8
|
+
import type { DeflateEncoderStreamId, Encoder, SessionContext, SessionManager } from '@kubesense/kubesense-browser-core'
|
|
9
|
+
import {
|
|
10
|
+
BridgeCapability,
|
|
11
|
+
bridgeSupports,
|
|
12
|
+
canUseEventBridge,
|
|
13
|
+
correctedChildSampleRate,
|
|
14
|
+
isSampled,
|
|
15
|
+
mockable,
|
|
16
|
+
} from '@kubesense/kubesense-browser-core'
|
|
17
|
+
import { monitorError } from '@kubesense/kubesense-js-core/monitor'
|
|
13
18
|
import type { RUMProfiler } from '../domain/profiling/types'
|
|
14
19
|
import { isProfilingSupported } from '../domain/profiling/profilingSupported'
|
|
15
20
|
import { startProfilingContext } from '../domain/profiling/profilingContext'
|
|
@@ -22,9 +27,8 @@ export function makeProfilerApi(): ProfilerApi {
|
|
|
22
27
|
lifeCycle: LifeCycle,
|
|
23
28
|
hooks: Hooks,
|
|
24
29
|
configuration: RumConfiguration,
|
|
25
|
-
sessionManager:
|
|
30
|
+
sessionManager: SessionManager,
|
|
26
31
|
viewHistory: ViewHistory,
|
|
27
|
-
longTaskContexts: LongTaskContexts,
|
|
28
32
|
createEncoder: (streamId: DeflateEncoderStreamId) => Encoder
|
|
29
33
|
) {
|
|
30
34
|
const session = sessionManager.findTrackedSession() // Check if the session is tracked.
|
|
@@ -35,10 +39,7 @@ export function makeProfilerApi(): ProfilerApi {
|
|
|
35
39
|
return
|
|
36
40
|
}
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
if (!isSampled(session.id, configuration.profilingSampleRate)) {
|
|
40
|
-
// No sampling, no profiling.
|
|
41
|
-
// Note: No Profiling context is set at this stage.
|
|
42
|
+
if (!isProfilingSampled(configuration, session)) {
|
|
42
43
|
return
|
|
43
44
|
}
|
|
44
45
|
|
|
@@ -46,7 +47,7 @@ export function makeProfilerApi(): ProfilerApi {
|
|
|
46
47
|
const profilingContextManager = startProfilingContext(hooks)
|
|
47
48
|
|
|
48
49
|
// Browser support check
|
|
49
|
-
if (!isProfilingSupported()) {
|
|
50
|
+
if (!mockable(isProfilingSupported)()) {
|
|
50
51
|
profilingContextManager.set({
|
|
51
52
|
status: 'error',
|
|
52
53
|
error_reason: 'not-supported-by-browser',
|
|
@@ -54,10 +55,9 @@ export function makeProfilerApi(): ProfilerApi {
|
|
|
54
55
|
return
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
lazyLoadProfiler()
|
|
58
|
+
mockable(lazyLoadProfiler)()
|
|
58
59
|
.then((createRumProfiler) => {
|
|
59
60
|
if (!createRumProfiler) {
|
|
60
|
-
addTelemetryDebug('[KUBESENSE_SDK] Failed to lazy load the RUM Profiler')
|
|
61
61
|
profilingContextManager.set({ status: 'error', error_reason: 'failed-to-lazy-load' })
|
|
62
62
|
return
|
|
63
63
|
}
|
|
@@ -67,7 +67,6 @@ export function makeProfilerApi(): ProfilerApi {
|
|
|
67
67
|
lifeCycle,
|
|
68
68
|
sessionManager,
|
|
69
69
|
profilingContextManager,
|
|
70
|
-
longTaskContexts,
|
|
71
70
|
createEncoder,
|
|
72
71
|
viewHistory,
|
|
73
72
|
undefined
|
|
@@ -80,7 +79,18 @@ export function makeProfilerApi(): ProfilerApi {
|
|
|
80
79
|
return {
|
|
81
80
|
onRumStart,
|
|
82
81
|
stop: () => {
|
|
83
|
-
profiler?.stop()
|
|
82
|
+
profiler?.stop()
|
|
84
83
|
},
|
|
85
84
|
}
|
|
86
85
|
}
|
|
86
|
+
|
|
87
|
+
function isProfilingSampled(configuration: RumConfiguration, session: SessionContext) {
|
|
88
|
+
if (canUseEventBridge()) {
|
|
89
|
+
// In bridge mode, native SDK owns the sampling decision, skip the rate check
|
|
90
|
+
return bridgeSupports(BridgeCapability.PROFILES)
|
|
91
|
+
}
|
|
92
|
+
return isSampled(
|
|
93
|
+
session.id,
|
|
94
|
+
correctedChildSampleRate(configuration.sessionSampleRate, configuration.profilingSampleRate)
|
|
95
|
+
)
|
|
96
|
+
}
|
package/src/boot/recorderApi.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DeflateEncoder, DeflateWorker, Telemetry } from '@kubesense/kubesense-browser-core'
|
|
1
|
+
import type { DeflateEncoder, DeflateWorker, Telemetry, SessionManager } from '@kubesense/kubesense-browser-core'
|
|
2
2
|
import {
|
|
3
3
|
canUseEventBridge,
|
|
4
4
|
noop,
|
|
@@ -9,29 +9,22 @@ import {
|
|
|
9
9
|
import type {
|
|
10
10
|
LifeCycle,
|
|
11
11
|
ViewHistory,
|
|
12
|
-
RumSessionManager,
|
|
13
12
|
RecorderApi,
|
|
14
13
|
RumConfiguration,
|
|
15
14
|
StartRecordingOptions,
|
|
16
15
|
} from '@kubesense/kubesense-browser-rum-core'
|
|
17
16
|
import { getReplayStats as getReplayStatsImpl } from '../domain/replayStats'
|
|
18
|
-
import type { CreateDeflateWorker } from '../domain/deflate'
|
|
19
17
|
import {
|
|
20
18
|
createDeflateEncoder,
|
|
21
19
|
DeflateWorkerStatus,
|
|
22
20
|
getDeflateWorkerStatus,
|
|
23
21
|
startDeflateWorker,
|
|
24
22
|
} from '../domain/deflate'
|
|
25
|
-
import { isBrowserSupported } from './isBrowserSupported'
|
|
26
|
-
import type { StartRecording } from './postStartStrategy'
|
|
27
23
|
import { createPostStartStrategy } from './postStartStrategy'
|
|
28
24
|
import { createPreStartStrategy } from './preStartStrategy'
|
|
29
25
|
|
|
30
|
-
export function makeRecorderApi(
|
|
31
|
-
|
|
32
|
-
createDeflateWorkerImpl?: CreateDeflateWorker
|
|
33
|
-
): RecorderApi {
|
|
34
|
-
if ((canUseEventBridge() && !bridgeSupports(BridgeCapability.RECORDS)) || !isBrowserSupported()) {
|
|
26
|
+
export function makeRecorderApi(): RecorderApi {
|
|
27
|
+
if (canUseEventBridge() && !bridgeSupports(BridgeCapability.RECORDS)) {
|
|
35
28
|
return {
|
|
36
29
|
start: noop,
|
|
37
30
|
stop: noop,
|
|
@@ -82,7 +75,7 @@ export function makeRecorderApi(
|
|
|
82
75
|
function onRumStart(
|
|
83
76
|
lifeCycle: LifeCycle,
|
|
84
77
|
configuration: RumConfiguration,
|
|
85
|
-
sessionManager:
|
|
78
|
+
sessionManager: SessionManager,
|
|
86
79
|
viewHistory: ViewHistory,
|
|
87
80
|
worker: DeflateWorker | undefined,
|
|
88
81
|
telemetry: Telemetry
|
|
@@ -91,17 +84,10 @@ export function makeRecorderApi(
|
|
|
91
84
|
|
|
92
85
|
function getOrCreateDeflateEncoder() {
|
|
93
86
|
if (!cachedDeflateEncoder) {
|
|
94
|
-
worker ??= startDeflateWorker(
|
|
95
|
-
configuration,
|
|
96
|
-
'Kubesense Session Replay',
|
|
97
|
-
() => {
|
|
98
|
-
strategy.stop()
|
|
99
|
-
},
|
|
100
|
-
createDeflateWorkerImpl
|
|
101
|
-
)
|
|
87
|
+
worker ??= startDeflateWorker(configuration, 'KubeSense Session Replay', () => strategy.stop())
|
|
102
88
|
|
|
103
89
|
if (worker) {
|
|
104
|
-
cachedDeflateEncoder = createDeflateEncoder(
|
|
90
|
+
cachedDeflateEncoder = createDeflateEncoder(worker, DeflateEncoderStreamId.REPLAY)
|
|
105
91
|
}
|
|
106
92
|
}
|
|
107
93
|
return cachedDeflateEncoder
|
|
@@ -112,7 +98,6 @@ export function makeRecorderApi(
|
|
|
112
98
|
lifeCycle,
|
|
113
99
|
sessionManager,
|
|
114
100
|
viewHistory,
|
|
115
|
-
loadRecorder,
|
|
116
101
|
getOrCreateDeflateEncoder,
|
|
117
102
|
telemetry
|
|
118
103
|
)
|
|
@@ -7,13 +7,8 @@ import type {
|
|
|
7
7
|
Uint8ArrayBuffer,
|
|
8
8
|
} from '@kubesense/kubesense-browser-core'
|
|
9
9
|
import { addEventListener, concatBuffers } from '@kubesense/kubesense-browser-core'
|
|
10
|
-
import type { RumConfiguration } from '@kubesense/kubesense-browser-rum-core'
|
|
11
10
|
|
|
12
|
-
export function createDeflateEncoder(
|
|
13
|
-
configuration: RumConfiguration,
|
|
14
|
-
worker: DeflateWorker,
|
|
15
|
-
streamId: DeflateEncoderStreamId
|
|
16
|
-
): DeflateEncoder {
|
|
11
|
+
export function createDeflateEncoder(worker: DeflateWorker, streamId: DeflateEncoderStreamId): DeflateEncoder {
|
|
17
12
|
let rawBytesCount = 0
|
|
18
13
|
let compressedData: Uint8ArrayBuffer[] = []
|
|
19
14
|
let compressedDataTrailer: Uint8ArrayBuffer
|
|
@@ -27,12 +22,12 @@ export function createDeflateEncoder(
|
|
|
27
22
|
data: string
|
|
28
23
|
}> = []
|
|
29
24
|
|
|
25
|
+
const expectedStreamId: number = streamId
|
|
30
26
|
const { stop: removeMessageListener } = addEventListener(
|
|
31
|
-
configuration,
|
|
32
27
|
worker,
|
|
33
28
|
'message',
|
|
34
29
|
({ data: workerResponse }: MessageEvent<DeflateWorkerResponse>) => {
|
|
35
|
-
if (workerResponse.type !== 'wrote' ||
|
|
30
|
+
if (workerResponse.type !== 'wrote' || workerResponse.streamId !== expectedStreamId) {
|
|
36
31
|
return
|
|
37
32
|
}
|
|
38
33
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DeflateWorker, DeflateWorkerResponse } from '@kubesense/kubesense-browser-core'
|
|
2
|
-
import {
|
|
2
|
+
import { ONE_SECOND } from '@kubesense/kubesense-js-core/time'
|
|
3
|
+
import { addTelemetryError, display, addEventListener, setTimeout, mockable } from '@kubesense/kubesense-browser-core'
|
|
3
4
|
import type { RumConfiguration } from '@kubesense/kubesense-browser-rum-core'
|
|
4
5
|
import { reportScriptLoadingError } from '../scriptLoadingError'
|
|
5
6
|
|
|
@@ -41,7 +42,7 @@ type DeflateWorkerState =
|
|
|
41
42
|
|
|
42
43
|
export type CreateDeflateWorker = typeof createDeflateWorker
|
|
43
44
|
|
|
44
|
-
function createDeflateWorker(configuration: RumConfiguration): DeflateWorker {
|
|
45
|
+
export function createDeflateWorker(configuration: RumConfiguration): DeflateWorker {
|
|
45
46
|
return new Worker(configuration.workerUrl || URL.createObjectURL(new Blob([__BUILD_ENV__WORKER_STRING__])))
|
|
46
47
|
}
|
|
47
48
|
|
|
@@ -50,12 +51,11 @@ let state: DeflateWorkerState = { status: DeflateWorkerStatus.Nil }
|
|
|
50
51
|
export function startDeflateWorker(
|
|
51
52
|
configuration: RumConfiguration,
|
|
52
53
|
source: string,
|
|
53
|
-
onInitializationFailure: () => void
|
|
54
|
-
createDeflateWorkerImpl = createDeflateWorker
|
|
54
|
+
onInitializationFailure: () => void
|
|
55
55
|
) {
|
|
56
56
|
if (state.status === DeflateWorkerStatus.Nil) {
|
|
57
57
|
// doStartDeflateWorker updates the state to "loading" or "error"
|
|
58
|
-
doStartDeflateWorker(configuration, source
|
|
58
|
+
doStartDeflateWorker(configuration, source)
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
switch (state.status) {
|
|
@@ -87,18 +87,13 @@ export function getDeflateWorkerStatus() {
|
|
|
87
87
|
*
|
|
88
88
|
* more details: https://bugzilla.mozilla.org/show_bug.cgi?id=1736865#c2
|
|
89
89
|
*/
|
|
90
|
-
export function doStartDeflateWorker(
|
|
91
|
-
configuration: RumConfiguration,
|
|
92
|
-
source: string,
|
|
93
|
-
createDeflateWorkerImpl = createDeflateWorker
|
|
94
|
-
) {
|
|
90
|
+
export function doStartDeflateWorker(configuration: RumConfiguration, source: string) {
|
|
95
91
|
try {
|
|
96
|
-
const worker =
|
|
97
|
-
const { stop: removeErrorListener } = addEventListener(
|
|
92
|
+
const worker = mockable(createDeflateWorker)(configuration)
|
|
93
|
+
const { stop: removeErrorListener } = addEventListener(worker, 'error', (error) => {
|
|
98
94
|
onError(configuration, source, error)
|
|
99
95
|
})
|
|
100
96
|
const { stop: removeMessageListener } = addEventListener(
|
|
101
|
-
configuration,
|
|
102
97
|
worker,
|
|
103
98
|
'message',
|
|
104
99
|
({ data }: MessageEvent<DeflateWorkerResponse>) => {
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import type { RumConfiguration,
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { RumConfiguration, ViewHistory } from '@kubesense/kubesense-browser-rum-core'
|
|
2
|
+
import {
|
|
3
|
+
getSessionReplayUrl,
|
|
4
|
+
SessionReplayState,
|
|
5
|
+
computeSessionReplayState,
|
|
6
|
+
} from '@kubesense/kubesense-browser-rum-core'
|
|
7
|
+
import type { SessionManager, SessionContext } from '@kubesense/kubesense-browser-core'
|
|
5
8
|
export function getSessionReplayLink(
|
|
6
9
|
configuration: RumConfiguration,
|
|
7
|
-
sessionManager:
|
|
10
|
+
sessionManager: SessionManager,
|
|
8
11
|
viewHistory: ViewHistory,
|
|
9
12
|
isRecordingStarted: boolean
|
|
10
13
|
): string | undefined {
|
|
11
14
|
const session = sessionManager.findTrackedSession()
|
|
12
|
-
const errorType = getErrorType(session, isRecordingStarted)
|
|
15
|
+
const errorType = getErrorType(configuration, session, isRecordingStarted)
|
|
13
16
|
const viewContext = viewHistory.findView()
|
|
14
17
|
|
|
15
18
|
return getSessionReplayUrl(configuration, {
|
|
@@ -19,17 +22,18 @@ export function getSessionReplayLink(
|
|
|
19
22
|
})
|
|
20
23
|
}
|
|
21
24
|
|
|
22
|
-
function getErrorType(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
function getErrorType(
|
|
26
|
+
configuration: RumConfiguration,
|
|
27
|
+
session: SessionContext | undefined,
|
|
28
|
+
isRecordingStarted: boolean
|
|
29
|
+
) {
|
|
26
30
|
if (!session) {
|
|
27
31
|
// possibilities:
|
|
28
32
|
// - rum sampled out
|
|
29
33
|
// - session expired (edge case)
|
|
30
34
|
return 'rum-not-tracked'
|
|
31
35
|
}
|
|
32
|
-
if (session
|
|
36
|
+
if (computeSessionReplayState(session, configuration) === SessionReplayState.OFF) {
|
|
33
37
|
// possibilities
|
|
34
38
|
// - replay sampled out
|
|
35
39
|
return 'incorrect-session-plan'
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { ClocksState, Duration } from '@kubesense/kubesense-js-core/time'
|
|
2
|
+
import { addDuration } from '@kubesense/kubesense-js-core/time'
|
|
3
|
+
import { createValueHistory, SESSION_TIME_OUT_DELAY } from '@kubesense/kubesense-browser-core'
|
|
4
|
+
import type { LifeCycle } from '@kubesense/kubesense-browser-rum-core'
|
|
5
|
+
import { LifeCycleEventType } from '@kubesense/kubesense-browser-rum-core'
|
|
6
|
+
|
|
7
|
+
export const ACTION_ID_HISTORY_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY
|
|
8
|
+
|
|
9
|
+
export interface ActionContext {
|
|
10
|
+
id: string
|
|
11
|
+
label: string
|
|
12
|
+
duration?: Duration
|
|
13
|
+
startClocks: ClocksState
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function createActionHistory(lifeCycle: LifeCycle) {
|
|
17
|
+
const history = createValueHistory<ActionContext>({
|
|
18
|
+
expireDelay: ACTION_ID_HISTORY_TIME_OUT_DELAY,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
lifeCycle.subscribe(LifeCycleEventType.ACTION_STARTED, (actionStart) => {
|
|
22
|
+
history.add(
|
|
23
|
+
{
|
|
24
|
+
id: actionStart.id,
|
|
25
|
+
// The label is temporarily empty since we need to account for customers that might
|
|
26
|
+
// redact the action name in the beforeSend callback. We will either try to do patch this
|
|
27
|
+
// behavior, or remove the label field entirely.
|
|
28
|
+
label: '',
|
|
29
|
+
startClocks: actionStart.startClocks,
|
|
30
|
+
duration: undefined,
|
|
31
|
+
},
|
|
32
|
+
actionStart.startClocks.relative
|
|
33
|
+
)
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
lifeCycle.subscribe(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, ({ rawRumEvent, startClocks, duration }) => {
|
|
37
|
+
if (rawRumEvent.type === 'action') {
|
|
38
|
+
const historyEntry = history
|
|
39
|
+
.getEntries(startClocks.relative)
|
|
40
|
+
.find((entry) => entry.value.id === rawRumEvent.action.id)
|
|
41
|
+
const durationForEntry = duration ?? (0 as Duration)
|
|
42
|
+
|
|
43
|
+
if (historyEntry) {
|
|
44
|
+
historyEntry.value.duration = durationForEntry
|
|
45
|
+
historyEntry.close(addDuration(startClocks.relative, durationForEntry))
|
|
46
|
+
} else {
|
|
47
|
+
history
|
|
48
|
+
.add(
|
|
49
|
+
{
|
|
50
|
+
id: rawRumEvent.action.id,
|
|
51
|
+
// The label is temporarily empty since we need to account for customers that might
|
|
52
|
+
// redact the action name in the beforeSend callback. We will either try to do patch this
|
|
53
|
+
// behavior, or remove the label field entirely.
|
|
54
|
+
label: '',
|
|
55
|
+
startClocks,
|
|
56
|
+
duration,
|
|
57
|
+
},
|
|
58
|
+
startClocks.relative
|
|
59
|
+
)
|
|
60
|
+
.close(addDuration(startClocks.relative, durationForEntry))
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
return history
|
|
66
|
+
}
|