@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
package/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2019-Present KubeSense, Inc.
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
package/README.md
CHANGED
|
@@ -81,6 +81,29 @@ Route rules only ever narrow recording: a session that lost the
|
|
|
81
81
|
`sessionReplaySampleRate` draw is still never recorded. Omit `sessionReplayRoutes`
|
|
82
82
|
to record everywhere — that remains the default. See [Route-Based Recording][routes].
|
|
83
83
|
|
|
84
|
+
### Recording `<canvas>` content
|
|
85
|
+
|
|
86
|
+
Session Replay does not capture canvas pixels by default. `sessionReplayCanvasRecording`
|
|
87
|
+
turns it on, with limits on how often frames are captured and how large the captured
|
|
88
|
+
images can be:
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
kubesenseSdk.init({
|
|
92
|
+
// ...
|
|
93
|
+
sessionReplaySampleRate: 100,
|
|
94
|
+
sessionReplayCanvasRecording: {
|
|
95
|
+
enable: true,
|
|
96
|
+
quality: 'medium', // 'low' (1 fps, 600px) | 'medium' (4 fps, 1000px, default) | 'high' (8 fps, 1280px)
|
|
97
|
+
maxFramesPerSecond: 1, // optional override of the preset, 0–8
|
|
98
|
+
},
|
|
99
|
+
})
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Only canvases whose privacy level is `allow` are captured, so mark the ones worth
|
|
103
|
+
recording — typically chart containers — with `data-kubesense-privacy="allow"` or the
|
|
104
|
+
`kubesense-privacy-allow` class. Each captured frame is an image upload, so start with a
|
|
105
|
+
low frame rate.
|
|
106
|
+
|
|
84
107
|
### Dashboard-managed configuration
|
|
85
108
|
|
|
86
109
|
With `enableRemoteSdkConfiguration`, sampling rates, feature switches and privacy
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const __webpack_esm_id__="kubesenseProfiler";export const __webpack_esm_ids__=["kubesenseProfiler"];export const __webpack_esm_modules__={8039(e,t,n){n.d(t,{createRumProfiler:()=>x});var s=n(2128),a=n(8333),i=n(1362),o=n(9079),r=n(6330),l=n(7197),c=n(875),u=n(1636),d=n(1e3);function p(){const e=(0,i.Y9)();return t=>{e.send("profile",t)}}var v=n(9772);function f(e,t,n){const s=(0,v.wP)(e,t,n,6);return({profile:e,trace:t})=>{const n={event:e,"wall-time.json":t};s.send(n)}}const m=/\/(?![vV]\d{1,2}\/)([^/\d?]*\d+[^/?]*)/g,k=(e,t)=>e||function(e){return e?e.replace(m,"/?"):"/"}(t);var b=n(485);function _(e,t,n){const s=(0,b.m5)(t),i=function(e,t,n){const{ids:s,names:a}=function(e){const t={ids:[],names:[]};for(const n of e)t.ids.push(n.viewId),n.viewName&&t.names.push(n.viewName);return t.names=Array.from(new Set(t.names)),t}(e.views),i=e.longTasks.map(e=>e.id).filter(e=>void 0!==e),o=e.actions?.map(e=>e.id).filter(e=>void 0!==e)??[],{ids:r,labels:l}=function(e){const t={ids:[],labels:[]};if(!e)return t;for(const n of e)t.ids.push(n.id),t.labels.push(n.label);return t.labels=Array.from(new Set(t.labels)),t}(e.vitals),c={application:{id:t}};return n&&(c.session={id:n}),s.length&&(c.view={id:s,name:a}),i.length&&(c.long_task={id:i}),o.length&&(c.action={id:o,label:[]}),r.length&&(c.vital={id:r,label:l}),c}(e,t.applicationId,n),o=function(e){return e.concat(["language:javascript","runtime:chrome","family:chrome","host:browser"])}(s);return{...i,attachments:["wall-time.json"],start:new Date(e.startClocks.timeStamp).toISOString(),end:new Date(e.endClocks.timeStamp).toISOString(),family:"chrome",runtime:"chrome",format:"json",version:4,tags_profiler:o.join(","),_kubesense:{clock_drift:(0,a._O)()}}}var g=n(2500),w=n(5286);const h=g.AQ;function y(e){const t=(0,w.qj)({expireDelay:h});return e.subscribe(13,({rawRumEvent:e,startClocks:n,duration:s})=>{"long_task"===e.type&&t.add({id:e.long_task.id,startClocks:n,duration:s,entryType:e.long_task.entry_type===v.K.LONG_TASK?v.do.LONG_TASK:v.do.LONG_ANIMATION_FRAME},n.relative).close((0,a.Gw)(n.relative,s))}),t}const I=g.AQ;function C(e){const t=(0,w.qj)({expireDelay:I});return e.subscribe(16,e=>{t.add({id:e.id,label:"",startClocks:e.startClocks,duration:void 0},e.startClocks.relative)}),e.subscribe(13,({rawRumEvent:e,startClocks:n,duration:s})=>{if("action"===e.type){const i=t.getEntries(n.relative).find(t=>t.value.id===e.action.id),o=s??0;i?(i.value.duration=o,i.close((0,a.Gw)(n.relative,o))):t.add({id:e.action.id,label:"",startClocks:n,duration:s},n.relative).close((0,a.Gw)(n.relative,o))}}),t}const E=g.AQ;function T(e){const t=(0,w.qj)({expireDelay:E});return e.subscribe(17,e=>{t.add({id:e.id,type:v.DL.DURATION,startClocks:e.startClocks,duration:void 0,label:e.name},e.startClocks.relative)}),e.subscribe(13,({rawRumEvent:e,startClocks:n,duration:s})=>{if("vital"!==e.type)return;if(e.vital.type===v.DL.OPERATION_STEP){if("start"===e.vital.step_type)t.add({id:e.vital.id,type:e.vital.type,operationKey:e.vital.operation_key,startClocks:n,label:e.vital.name},n.relative);else if("end"===e.vital.step_type){const s=t.findAllEntries().find(t=>t.value.type===v.DL.OPERATION_STEP&&t.value.label===e.vital.name&&t.value.operationKey===e.vital.operation_key);if(!s)return;s.value.duration=(0,a.vk)(s.value.startClocks.relative,n.relative),s.close(n.relative)}return}const i=t.getEntries(n.relative).find(t=>t.value.id===e.vital.id);if(i)return i.value.duration=s,void i.close((0,a.Gw)(n.relative,s));t.add({id:e.vital.id,type:e.vital.type,operationKey:e.vital.operation_key,startClocks:n,duration:s,label:e.vital.name},n.relative).close((0,a.Gw)(n.relative,s))}),t}var D=n(7754),S=n(5387);function q(e,t,n=5e3){const s=function(e,t){return(0,S.Hg)({proxy:e.proxy,kubesenseRumEndpoint:e.kubesenseRumEndpoint,path:"/rum/api/v1/profiling/quota",parameters:"session_id="+t,subdomain:"quota"})}(e,t),a=new AbortController;let i;const o=(0,D.h)(s,{credentials:"omit",signal:a.signal,headers:new Headers({"DD-CLIENT-TOKEN":e.clientToken})}).then(e=>{const t=429===e.status?{decision:"quota_ko",reason:"quota_exceeded"}:{decision:"quota_ok",reason:"api-error"};return e.json().then(e=>((0,u.DJ)(i),function(e,t){const n=e?.data?.attributes;if(!n||"boolean"!=typeof n.admitted||"string"!=typeof n.reason)return t;const s="backend_client_not_initialized"===n.reason?"backend_unavailable":n.reason;return{decision:n.admitted?"quota_ok":"quota_ko",reason:s}}(e,t)),()=>((0,u.DJ)(i),t))}).catch(()=>((0,u.DJ)(i),{decision:"quota_ok",reason:"api-error"})),r=new Promise(e=>{i=(0,u.wg)(()=>{a.abort(),e({decision:"quota_ok",reason:"timeout"})},n)});return Promise.race([o,r])}var R=n(7129);function A(e){const t=new Map((0,R.Jv)(e)?.map(e=>[e.url,e.id])),n=[];return e.forEach((e,s)=>{const a=t.get(e);void 0!==a&&n.push({resourceId:s,debugId:a})}),n.length?n:void 0}const P={sampleIntervalMs:10,collectIntervalMs:6e4,minProfileDurationMs:5e3};function x(e,t,n,v,m,b,g=P){const w=(0,i.d0)()?(0,o.B)(p)():(0,o.B)(f)(e,t,m);let h;const I=[],E=(0,o.B)(y)(t),D=(0,o.B)(C)(t),S=(0,o.B)(T)(t);let R={state:"stopped",stateReason:"initializing"},x=0;function M(){if("running"===R.state)return;const t=b.findView();h=t?{startClocks:t.startClocks,viewId:t.id,viewName:k(t.name,document.location.pathname)}:void 0,I.push((0,l.q2)(window,"visibilitychange",B).stop,(0,l.q2)(window,"beforeunload",G).stop),N(),function(){if((0,i.d0)())return;const t=++x,s=n.findTrackedSession()?.id;s&&(0,o.B)(q)(e,s).then(e=>{t===x&&("running"!==R.state&&"paused"!==R.state||"quota_ko"===e.decision&&O("quota_ko",e.reason))}).catch(d.Dx)}()}function O(e,t){!function(e){if("running"!==R.state)return void(("paused"===R.state||"stopped"===R.state&&"stopped-by-user"===e)&&(R={state:"stopped",stateReason:e}));const t=R;R={state:"stopped",stateReason:e},t.cleanupTasks.forEach(e=>e()),"quota_ko"===e?((0,u.DJ)(t.timeoutId),t.profiler.removeEventListener("samplebufferfull",K),t.profiler.stop().catch(d.Dx)):j(t)}(e),I.forEach(e=>e()),I.length=0,v.set({status:"stopped",error_reason:void 0,quota_reason:t})}function N(){const e=s.J.Profiler;if(!e)throw v.set({status:"error",error_reason:"not-supported-by-browser"}),Error("RUM Profiler is not supported in this browser.");"running"===R.state&&j(R);const{cleanupTasks:i}=function(e){if("running"===e.state)return{cleanupTasks:e.cleanupTasks};const n=[],s=t.subscribe(2,e=>{const t={viewId:e.id,viewName:k(e.name,document.location.pathname),startClocks:e.startClocks};L(t),h=t});return n.push(s.unsubscribe),{cleanupTasks:n}}(R);let o;try{o=new e({sampleInterval:g.sampleIntervalMs,maxBufferSize:Math.round(1.5*g.collectIntervalMs/g.sampleIntervalMs)})}catch(e){return void(e instanceof Error&&e.message.includes("disabled by Document Policy")?(c.V.warn("[KUBESENSE_SDK] Profiler startup failed. Ensure your server includes the `Document-Policy: js-profiling` response header when serving HTML pages.",e),v.set({status:"error",error_reason:"missing-document-policy-header"})):v.set({status:"error",error_reason:"unexpected-exception"}))}v.set({status:"running",error_reason:void 0}),R={state:"running",startClocks:(0,a.M8)(),profiler:o,timeoutId:(0,u.wg)(N,g.collectIntervalMs),views:[],cleanupTasks:i,longTasks:[],sessionId:n.findTrackedSession()?.id},L(h),o.addEventListener("samplebufferfull",K)}function j(t){(0,u.DJ)(t.timeoutId),t.profiler.removeEventListener("samplebufferfull",K);const{startClocks:n,views:s,sessionId:i}=t;t.profiler.stop().then(t=>{const o=(0,a.M8)(),r=(0,a.vk)(n.relative,o.relative),l=E.findAll(n.relative,r),c=D.findAll(n.relative,r),u=S.findAll(n.relative,r).map(e=>({id:e.id,label:e.label,startClocks:e.startClocks,duration:e.duration})),d=r<g.minProfileDurationMs;0===l.length&&d||function(t,n){const s={profile:_(t,e,n),trace:t};w(s)}(Object.assign({},t,{startClocks:n,endClocks:o,clocksOrigin:(0,a.Oc)(),longTasks:l,actions:c,vitals:u,views:s,sampleInterval:g.sampleIntervalMs,debugIds:A(t.resources)}),i)}).catch(d.Dx)}function L(e){"running"===R.state&&e&&R.views.push(e)}function K(){N()}function B(){"hidden"===document.visibilityState&&"running"===R.state?function(){if("running"!==R.state)return;const e=R;R={state:"paused"},e.cleanupTasks.forEach(e=>e()),j(e)}():"visible"===document.visibilityState&&"paused"===R.state&&N()}function G(){N()}return t.subscribe(10,()=>{O("session-expired")}),t.subscribe(11,()=>{if("stopped"===R.state&&("session-expired"===R.stateReason||"quota_ko"===R.stateReason)){const t=n.findTrackedSession();if(!t||!(0,r.$5)(t.id,(0,r.it)(e.sessionSampleRate,e.profilingSampleRate)))return;M()}}),{start:M,stop(){O("stopped-by-user")},isStopped:()=>"stopped"===R.state,isRunning:()=>"running"===R.state,isPaused:()=>"paused"===R.state}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const __webpack_esm_id__="kubesenseRecorder";export const __webpack_esm_ids__=["kubesenseRecorder"];export const __webpack_esm_modules__={7706(t,e,n){n.d(e,{startRecording:()=>Bt});var o=n(7314),s=n(2048),r=n(6725),a=n(4474),i=n(1362),c=n(8333),u=n(5387),d=n(9772);const l={AddString:0,AddNode:1,RemoveNode:2,Attribute:3,Text:4,Size:5,ScrollPosition:6,AddStyleSheet:7,AttachedStyleSheets:8,MediaPlaybackState:9,VisualViewport:10,AddRoleAnnotatedStrings:11,InputValue:12,InputSelection:13,ClearStrings:14,ImageContent:15},p=0,f=1,h=2,g=3,m=4,v=5,y=6,S=7,w=8;var b=n(9164);function C(t,e){const n=t.tagName,o=t.value;if((0,d.Ie)(t,e)){const e=t.type;if("INPUT"===n&&("button"===e||"submit"===e||"reset"===e))return o;if(!o||"OPTION"===n)return;return d.o}return"OPTION"===n||"SELECT"===n?t.value:"INPUT"===n||"TEXTAREA"===n?o:void 0}const I=/url\((?:(')([^']*)'|(")([^"]*)"|([^)]*))\)/gm,x=/^[A-Za-z]+:|^\/\//,M=/^["']?data:.*,/i;function T(t){return t.tagName.toLowerCase()}function E(t,e){return`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${t}' height='${e}' style='background-color:silver'%3E%3C/svg%3E`}function N(t,e){return{role:t,string:e}}function D(t,e,n){return[N(2,e),N(k(t,e),n)]}function R(t,e,n){const o=N(2,e);return null===n?[o]:[o,N(k(t,e),n)]}const A=new Set(["input","option","select","textarea"]),_=new Set(["action","background","cite","data","formaction","href","longdesc","manifest","ping","poster","src","srcset","xlink:href"]);function k(t,e){switch(e){case"value":return A.has(t)?5:3;case"style":return 6;default:return _.has(e)?7:3}}function P(t){const e={},n=new Map,o=[];let s=0,r=!1;const a=e=>{const o=t.get(e);if(void 0!==o)return o;r=!0;let a=n.get(e.role);a||(a={role:e.role,strings:new Map,references:0},n.set(e.role,a)),a.references++;const i=a.strings.get(e.string);if(i)return i;const c={literal:e,id:void 0};return a.strings.set(e.string,c),s++,c},i=t=>{for(let e=0,n=t.length;e<n;e++){const n=t[e];"string"==typeof n?t[e]=a(N(0,n)):Array.isArray(n)?i(n):H(n)&&(t[e]=a(n))}};return{add(t,n){t in e||(e[t]=[t]),Array.isArray(n)&&(r=!1,i(n),r&&o.push(n)),e[t].push(n)},flushInto(s){const r=(()=>{if(0===n.size)return;const e=[l.AddRoleAnnotatedStrings];for(const o of Array.from(n.values()).sort(O)){const n=[o.role];for(const e of o.strings.values())e.id=t.getOrInsert(e.literal),n.push(e.literal.string);e.push(n)}return e})();r&&s.push(r);for(const t of o)L(t);[l.AddNode,l.RemoveNode,l.Attribute,l.Text,l.InputValue,l.InputSelection,l.Size,l.ScrollPosition,l.AddStyleSheet,l.AttachedStyleSheets,l.MediaPlaybackState,l.VisualViewport,l.ImageContent].forEach(t=>{const n=e[t];n&&s.push(n)})},get pendingStringCount(){return s}}}function L(t){for(let e=0,n=t.length;e<n;e++){const n=t[e];Array.isArray(n)?L(n):$(n)&&(t[e]=n.id)}}function O(t,e){return e.references-t.references}function H(t){return"object"==typeof t&&null!==t&&"string"in t}function $(t){return"object"==typeof t&&null!==t&&"literal"in t}function V(t){return function(t,e){let n=t(),o=e;const s=t=>n.get(t);return{clear(){o!==e&&(n=t(),o=e)},delete(t){n.delete(t)},get:s,getOrInsert(t){let e=s(t);return void 0===e&&(e=o++,n.set(t,e)),e},get nextId(){return o},get size(){return o-e}}}(()=>new WeakMap,t)}function z(){return{[p]:F(),[f]:F(),[h]:F(),[g]:F(),[m]:F(),[v]:F(),[y]:F(),[S]:F(),[w]:F()}}function F(){return Object.create(null)}function J(t,e,n){t[e].count+=1,t[e].max=Math.max(t[e].max,n),t[e].sum+=n}function W(t,e,n,o,s,r){const a=function(t){let e=[],n=P(t);const o=()=>{n.flushInto(e),n=P(t)};return{add(s,r){n.add(s,r),t.size+n.pendingStringCount>=Number(1e6)&&(o(),e.push([l.ClearStrings]),t.clear())},flush(){o();const t=e;return e=[],t}}}(o.stringIds),i={cssText:{count:0,max:0,sum:0},serializationDuration:{count:0,max:0,sum:0}},u={addMetric(t,e){J(i,t,e)},addNode(...t){a.add(l.AddNode,t)},addStyleSheet(t,e,n){n?a.add(l.AddStyleSheet,[t,e||[],n]):e?a.add(l.AddStyleSheet,[t,e]):a.add(l.AddStyleSheet,[t])},attachStyleSheets(t,e){const n=[t];for(const t of e)n.push(t);a.add(l.AttachedStyleSheets,n)},removeNode(t){a.add(l.RemoveNode,t)},setAttributes(t){a.add(l.Attribute,t)},setInputSelection(t,e){const n=[t];for(const t of e)n.push(t);a.add(l.InputSelection,n)},setInputValue(t,e){a.add(l.InputValue,[t,e])},setMediaPlaybackState(t,e){a.add(l.MediaPlaybackState,[t,e])},setScrollPosition(t,e,n){a.add(l.ScrollPosition,[t,e,n])},setSize(t,e,n){a.add(l.Size,[t,e,n])},setText(t,e){a.add(l.Text,[t,e])},setImageContent(t,e){a.add(l.ImageContent,[t,e])},kind:t,scope:o},d=(0,c.nx)();r(u),J(i,"serializationDuration",(0,c.vk)(d,(0,c.nx)()));const p=a.flush();p.length>0&&e(0===t||1===t?{data:p,format:1,type:2,timestamp:s}:{data:p,type:12,timestamp:s}),n(i)}const B=["width","height"];function G(t){return(0,d.nS)(t)&&"CANVAS"===t.tagName}function X(t){return B.includes(t.toLowerCase())}let Y;function U(t,e,n,o){if(e===d.$m.HIDDEN)return null;const s=t.getAttribute(n),r=t.tagName;if((0,d.ap)(r,n,s,e,o)){if("IMG"===r){const e=t;if(e.naturalWidth>0)return E(e.naturalWidth,e.naturalHeight);const{width:n,height:o}=t.getBoundingClientRect();return n>0||o>0?E(n,o):d.eT}return"SOURCE"===r?d.eT:d.o}return s?(0,d.ei)(s,1e6):s}function j(t,e,n,o,s,r){const a=U(e,s,o,r.scope.configuration);null!==a&&t.push(D(n,o,a))}function q(t){if(!t)return null;let e;try{e=t.rules||t.cssRules}catch{}return e?(n=Array.from(e,1===(Y??(Y=function(t=window){const e=t.navigator.userAgent;return t.chrome||/HeadlessChrome/.test(e)?0:0===t.navigator.vendor?.indexOf("Apple")||/safari/i.test(e)&&!/chrome|android/i.test(e)?1:2}()))?Q:K).join(""),o=t.href,n.replace(I,(t,e,n,s,r,a)=>{const i=n||r||a;if(!o||!i||x.test(i)||M.test(i))return t;const c=e||s||"";return`url(${c}${function(t,e){try{return(0,b.c$)(t,e).href}catch{return t}}(i,o)}${c})`})):null;var n,o}function Q(t){if(function(t){return"selectorText"in t}(t)&&t.selectorText.includes(":")){const e=/(\[[\w-]+[^\\])(:[^\]]+\])/g;return t.cssText.replace(e,"$1\\$2")}return K(t)}function K(t){return function(t){return"styleSheet"in t}(t)&&q(t.styleSheet)||t.cssText}function Z(t,e,n,o){if("STYLE"===e.parentNode?.nodeName)return;if(n===d.$m.HIDDEN||n===d.$m.IGNORE)return;let s;const r=(0,d.dT)(e);if(s=r?(0,d.jR)(r,n):n,s!==d.$m.HIDDEN){if(s!==d.$m.IGNORE){switch(e.nodeType){case e.CDATA_SECTION_NODE:!function(t,e,n){const{insertionPoint:o}=t.advance(e);n.addNode(o,N(1,"#cdata-section"))}(t,e,o);break;case e.DOCUMENT_NODE:!function(t,e,n){const{nodeId:o,insertionPoint:s}=t.advance(e);n.addNode(s,N(1,"#document")),n.setScrollPosition(o,(0,d.Gn)(),(0,d.zL)()),tt(e.adoptedStyleSheets,o,n)}(t,e,o);break;case e.DOCUMENT_FRAGMENT_NODE:!function(t,e,n){const{nodeId:o,insertionPoint:s}=t.advance(e);(0,d.p_)(e)?(n.addNode(s,N(1,"#shadow-root")),n.scope.shadowRootsController.addShadowRoot(e,n.scope),tt(e.adoptedStyleSheets,o,n)):n.addNode(s,N(1,"#document-fragment"))}(t,e,o);break;case e.DOCUMENT_TYPE_NODE:!function(t,e,n){const{insertionPoint:o}=t.advance(e);n.addNode(o,N(1,"#doctype"),N(3,e.name),N(3,e.publicId),N(7,e.systemId))}(t,e,o);break;case e.ELEMENT_NODE:!function(t,e,n,o){const{nodeId:s,insertionPoint:r}=t.advance(e),a=function(t,e,n){if(e===d.$m.HIDDEN)return[];const o=[],s=T(t);for(let r=0;r<t.attributes.length;r+=1){const a=t.attributes.item(r).name;"value"!==a&&"selected"!==a&&"checked"!==a&&j(o,t,s,a,e,n)}if(!t.value||"textarea"!==s&&"select"!==s&&"option"!==s&&"input"!==s)t.hasAttribute("value")&&j(o,t,s,"value",e,n);else{const n=C(t,e);void 0!==n&&o.push(D(s,"value",n))}"option"===s?t.selected&&!(0,d.Ie)(t,e)&&o.push(D(s,"selected","")):t.hasAttribute("selected")&&j(o,t,s,"selected",e,n);const r=t;return"input"!==s||"radio"!==r.type&&"checkbox"!==r.type?t.hasAttribute("checked")&&j(o,t,s,"checked",e,n):r.checked&&!(0,d.Ie)(t,e)&&o.push(D(s,"checked","")),o}(e,n,o);o.addNode(r,et(e),...a),G(e)&&o.scope.canvasManager.markCanvas(e,1);const{_cssText:i,rr_mediaState:c,rr_scrollLeft:u,rr_scrollTop:l}=function(t,e,n){if(e===d.$m.HIDDEN)return{};const o={},s=T(t);if("link"===s){const e=q(t.sheet);e&&(n.addMetric("cssText",e.length),o._cssText=e)}if("style"===s&&t.sheet){const e=q(t.sheet);e&&(n.addMetric("cssText",e.length),o._cssText=e)}if("audio"===s||"video"===s){const e=t;o.rr_mediaState=e.paused?"paused":"played"}let r,a;switch(n.kind){case 0:r=Math.round(t.scrollTop),a=Math.round(t.scrollLeft),(r||a)&&n.scope.elementsScrollPositions.set(t,{scrollTop:r,scrollLeft:a});break;case 1:n.scope.elementsScrollPositions.has(t)&&({scrollTop:r,scrollLeft:a}=n.scope.elementsScrollPositions.get(t))}return a&&(o.rr_scrollLeft=a),r&&(o.rr_scrollTop=r),o}(e,n,o),p=e;if(void 0!==i&&p.sheet){const t=o.scope.styleSheetIds.getOrInsert(p.sheet);o.addStyleSheet(N(6,i)),o.attachStyleSheets(s,[t])}"played"===c?o.setMediaPlaybackState(s,0):"paused"===c&&o.setMediaPlaybackState(s,1),void 0===u&&void 0===l||o.setScrollPosition(s,u||0,l||0)}(t,e,s,o);break;case e.TEXT_NODE:!function(t,e,n,o){const{insertionPoint:s}=t.advance(e),r=(0,d.rf)(e,n);o.addNode(s,N(1,"#text"),N(4,r))}(t,e,s,o);break;default:return}switch(e.nodeType){case e.CDATA_SECTION_NODE:case e.DOCUMENT_TYPE_NODE:case e.TEXT_NODE:return}t.descend(),(0,d.wI)(e,e=>{Z(t,e,s,o)}),t.ascend()}}else!function(t,e,n){if(!(0,d.nS)(e))return;const{nodeId:o,insertionPoint:s}=t.advance(e);n.addNode(s,et(e),D(T(e),d.NT,d.Wd));const{width:r,height:a}=e.getBoundingClientRect();n.setSize(o,r,a)}(t,e,o)}function tt(t,e,n){t&&0!==t.length&&n.attachStyleSheets(e,t.map(t=>function(t,e){const n=Array.from(t.cssRules||t.rules,t=>N(6,t.cssText)),o=t.media.length>0?Array.from(t.media).map(t=>N(6,t)):void 0;return e.addMetric("cssText",n.reduce((t,e)=>t+e.string.length,0)),e.addStyleSheet(n,o,t.disabled),e.scope.styleSheetIds.getOrInsert(t)}(t,n)))}function et(t){const e=t.nodeName;return function(t){return"http://www.w3.org/2000/svg"===t.namespaceURI}(t)?N(1,"svg>"+e):N(1,e)}function nt(t,e,n){return ot(t,e,n)}function ot(t,e,n){let o={container:void 0,parentId:t,previousSiblingId:void 0,nextSiblingId:e};return{advance(t){const e=n.getOrInsert(t),s=(t=>o.previousSiblingId===t-1?0:void 0!==o.nextSiblingId?o.nextSiblingId-t:void 0!==o.parentId?t-o.parentId:null)(e);return o.previousSiblingId=e,{nodeId:e,insertionPoint:s}},ascend(){o.container&&(o=o.container)},descend(){void 0!==o.previousSiblingId&&(o={container:o,parentId:o.previousSiblingId,previousSiblingId:void 0,nextSiblingId:void 0})}}}function st(t,e){let n=t.nextSibling;for(;n;){const t=e.get(n);if(void 0!==t)return t;n=n.nextSibling}}function rt(t,e){e(t),(0,d.wI)(t,t=>rt(t,e))}const at=t=>({scale:t.scale,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,pageLeft:t.pageLeft,pageTop:t.pageTop,height:t.height,width:t.width});function it(t,e,n,o,s){const{width:r,height:a}=(0,d.pB)();n({data:{height:a,href:window.location.href,width:r},type:4,timestamp:t}),n({data:{has_focus:document.hasFocus()},type:6,timestamp:t}),function(t,e,n,o,s,r){r.resetIds(),W(e,o,s,r,t,t=>{Z(ot(void 0,void 0,r.nodeIds),n,r.configuration.defaultPrivacyLevel,t)})}(t,e,document,n,o,s),window.visualViewport&&n({data:at(window.visualViewport),type:8,timestamp:t})}var ct=n(8769),ut=n(2300),dt=n(7197);function lt(t){return!!t.changedTouches}function pt(t){return!0===t.composed&&(0,d.XS)(t.target)?t.composedPath()[0]:t.target}function ft(t,e,n=(0,c.nx)()){return{data:{source:t,...e},type:3,timestamp:n}}function ht(t,e){const{throttled:n,cancel:o}=(0,a.n)(n=>{const o=pt(n),s=e.nodeIds.get(o);if(void 0===s)return;const r=gt(n);if(!r)return;const a={id:s,timeOffset:0,x:r.x,y:r.y};t(ft(lt(n)?6:1,{positions:[a]}))},50,{trailing:!1}),{stop:s}=(0,dt.lQ)(document,["mousemove","touchmove"],n,{capture:!0,passive:!0});return{stop(){s(),o()}}}function gt(t){let{clientX:e,clientY:n}=lt(t)?t.changedTouches[0]:t;if(window.visualViewport){const{visualViewportX:t,visualViewportY:o}=((t,e)=>{const n=window.visualViewport,o={layoutViewportX:t,layoutViewportY:e,visualViewportX:t,visualViewportY:e};return n?(function(t){return Math.abs(t.pageTop-t.offsetTop-window.scrollY)>25||Math.abs(t.pageLeft-t.offsetLeft-window.scrollX)>25}(n)?(o.layoutViewportX=Math.round(t+n.offsetLeft),o.layoutViewportY=Math.round(e+n.offsetTop)):(o.visualViewportX=Math.round(t-n.offsetLeft),o.visualViewportY=Math.round(e-n.offsetTop)),o):o})(e,n);e=t,n=o}if(Number.isFinite(e)&&Number.isFinite(n))return{x:e,y:n}}const mt={pointerup:0,mousedown:1,click:2,contextmenu:3,dblclick:4,focus:5,blur:6,touchstart:7,touchend:9};function vt(t,e){return(0,dt.lQ)(document,Object.keys(mt),n=>{const o=pt(n),s=e.nodeIds.get(o);if(void 0===s||(0,d.PJ)(o,e.configuration.defaultPrivacyLevel)===d.$m.HIDDEN)return;const r=mt[n.type];let a;if(6!==r&&5!==r){const t=gt(n);if(!t)return;a={id:s,type:r,x:t.x,y:t.y}}else a={id:s,type:r};t({id:e.eventIds.getOrInsert(n),...ft(2,a)})},{capture:!0,passive:!0})}function yt(t,e,n){const{throttled:o,cancel:s}=(0,a.n)(t=>{const o=pt(t);if(!o)return;const s=n.nodeIds.get(o);if(void 0===s||(0,d.PJ)(o,n.configuration.defaultPrivacyLevel)===d.$m.HIDDEN)return;const r=o===document?{scrollTop:(0,d.zL)(),scrollLeft:(0,d.Gn)()}:{scrollTop:Math.round(o.scrollTop),scrollLeft:Math.round(o.scrollLeft)};n.elementsScrollPositions.set(o,r),e(ft(3,{id:s,x:r.scrollLeft,y:r.scrollTop}))},100),{stop:r}=(0,dt.q2)(t,"scroll",o,{capture:!0,passive:!0});return{stop(){r(),s()}}}function St(t){const e=(0,d.g1)().subscribe(e=>{t(ft(4,e))});return{stop(){e.unsubscribe()}}}function wt(t){const e=window.visualViewport;if(!e)return{stop:a.l};const{throttled:n,cancel:o}=(0,a.n)(()=>{t({data:at(e),type:8,timestamp:(0,c.nx)()})},200,{trailing:!1}),{stop:s}=(0,dt.lQ)(e,["resize","scroll"],n,{capture:!0,passive:!0});return{stop(){s(),o()}}}function bt(t,e){return(0,dt.lQ)(document,["play","pause"],n=>{const o=pt(n);if(!o)return;const s=e.nodeIds.get(o);void 0!==s&&(0,d.PJ)(o,e.configuration.defaultPrivacyLevel)!==d.$m.HIDDEN&&t(ft(7,{id:s,type:"play"===n.type?0:1}))},{capture:!0,passive:!0})}var Ct=n(2801);function It(t,e){function n(t,n){if(!t?.ownerNode)return;const o=e.nodeIds.get(t.ownerNode);void 0!==o&&n(o)}const o=[(0,Ct.H7)(CSSStyleSheet.prototype,"insertRule",({target:e,parameters:[o,s]})=>{n(e,e=>t(ft(8,{id:e,adds:[{rule:o,index:s}]})))}),(0,Ct.H7)(CSSStyleSheet.prototype,"deleteRule",({target:e,parameters:[o]})=>{n(e,e=>t(ft(8,{id:e,removes:[{index:o}]})))})];function s(e){o.push((0,Ct.H7)(e.prototype,"insertRule",({target:e,parameters:[o,s]})=>{n(e.parentStyleSheet,n=>{const r=xt(e);r&&(r.push(s||0),t(ft(8,{id:n,adds:[{rule:o,index:r}]})))})}),(0,Ct.H7)(e.prototype,"deleteRule",({target:e,parameters:[o]})=>{n(e.parentStyleSheet,n=>{const s=xt(e);s&&(s.push(o),t(ft(8,{id:n,removes:[{index:s}]})))})}))}return"undefined"!=typeof CSSGroupingRule?s(CSSGroupingRule):(s(CSSMediaRule),s(CSSSupportsRule)),{stop(){o.forEach(t=>t.stop())}}}function xt(t){const e=[];let n=t;for(;n.parentRule;){const t=Array.from(n.parentRule.cssRules).indexOf(n);e.unshift(t),n=n.parentRule}if(!n.parentStyleSheet)return;const o=Array.from(n.parentStyleSheet.cssRules).indexOf(n);return e.unshift(o),e}function Mt(t){return(0,dt.lQ)(window,["focus","blur"],()=>{t({data:{has_focus:document.hasFocus()},type:6,timestamp:(0,c.nx)()})})}function Tt(t,e,n){const o=t.subscribe(5,()=>{n(),e({timestamp:(0,c.nx)(),type:7})});return{stop(){o.unsubscribe()}}}const Et={type:1,selection:1};function Nt(t,e,n,o){const s=o.configuration.defaultPrivacyLevel,r=new WeakMap,i=t.nodeType!==t.DOCUMENT_NODE,u=(i?t.ownerDocument:t).defaultView;if(!u)return{stop:a.l};const{stop:l}=(0,dt.lQ)(t,i?["change"]:["input","change"],t=>{const e=pt(t);(e instanceof u.HTMLInputElement||e instanceof u.HTMLTextAreaElement||e instanceof u.HTMLSelectElement)&&f(e)},{capture:!0,passive:!0});let p;if(i)p=a.l;else{const t=[(0,Ct.tv)(u.HTMLInputElement.prototype,"value",f),(0,Ct.tv)(u.HTMLInputElement.prototype,"checked",f),(0,Ct.tv)(u.HTMLSelectElement.prototype,"value",f),(0,Ct.tv)(u.HTMLTextAreaElement.prototype,"value",f),(0,Ct.tv)(u.HTMLSelectElement.prototype,"selectedIndex",f)];p=()=>{t.forEach(t=>t.stop())}}return{stop(){p(),l()}};function f(t){const a=(0,d.PJ)(t,s);if(a===d.$m.HIDDEN)return;const i=t.type;let u,l=t;if("radio"===i||"checkbox"===i){if((0,d.Ie)(t,a))return;u={type:1,selection:(p=t,p.checked?0:1)}}else if(Dt(t)){if((0,d.Ie)(t,a))return;const e=t.options[t.selectedIndex];if(!e)return;l=e,u={type:1,selection:0}}else{const e=C(t,a);if(void 0===e)return;u={type:0,value:e}}var p;const f=h(l,u),g=[];if("radio"===i&&t.checked&&(m=t).name&&m.ownerDocument.querySelectorAll(`input[type="radio"][name="${CSS.escape(m.name)}"]`).forEach(t=>{t!==m&&(t=>{const e=h(t,Et);void 0!==e&&g.push(e)})(t)}),Dt(t))for(let e=0;e<t.options.length;e++){const n=t.options[e];n!==l&&r.delete(n)}var m;void 0===f&&0===g.length||W(2,e,n,o,(0,c.nx)(),t=>{void 0!==f&&(0===u.type?t.setInputValue(f,N(5,u.value)):t.setInputSelection(u.selection,[f])),g.length>0&&t.setInputSelection(1,g)})}function h(t,e){const n=o.nodeIds.get(t);if(void 0===n)return;const s=r.get(t);return s&&(i=e,0===(a=s).type?0===i.type&&a.value===i.value:1===i.type&&a.selection===i.selection)?void 0:(r.set(t,e),n);var a,i}}function Dt(t){return"SELECT"===t.tagName}var Rt=n(1e3),At=n(5981);function _t(t,e,n,o,s){const r=(0,d.W3)();if(!r)return{stop:a.l,flush:a.l,notifyContentMutated:a.l};const i=function(){let t=a.l,r=[],i=!1;function l(){i||(i=!0,t=(0,At.BB)(f,{timeout:100}))}function p(){var a;t(),i=!1,a=r,function(t,e,n,o,s,r){W(2,n,s,r,t,t=>function(t,e,n){const o=new Set,s=new Map,r=new Map,a=new Set;for(const e of t)switch(e.type){case"attributes":{const t=e.target;let n=s.get(t);n||(n=new Map,s.set(t,n));const o=e.attributeName;n.has(o)||n.set(o,e.oldValue);break}case"characterData":r.has(e.target)||r.set(e.target,e.oldValue);break;case"childList":for(let t=0;t<e.addedNodes.length;t++)o.add(e.addedNodes[t]);for(let t=0;t<e.removedNodes.length;t++)a.add(e.removedNodes[t])}const i=n.scope.nodeIds.nextId,c=new Map;(function(t,e){const n=e.scope.nodeIds;for(const o of t){const t=n.get(o);void 0!==t&&(rt(o,t=>{G(t)&&e.scope.canvasManager.forgetCanvas(t),(0,d.XS)(t)&&e.scope.shadowRootsController.removeShadowRoot(t.shadowRoot),n.delete(t)}),e.removeNode(t))}})(a,n),function(t,e,n){const o=n.scope.nodeIds;for(const s of t){if(!s.isConnected)continue;if(void 0!==o.get(s))continue;const t=(0,d.$4)(s);if(!t)continue;const r=o.get(t);if(void 0===r)continue;const a=(0,d.PJ)(t,n.scope.configuration.defaultPrivacyLevel,e);Z(nt(r,st(s,o),o),s,a,n)}}(o,c,n),function(t,e,n,o){const s=o.scope.nodeIds;for(const[r,a]of t){if(r.textContent===a)continue;if(!r.isConnected)continue;const t=s.get(r);if(void 0===t)continue;if(t>=e)continue;const i=(0,d.$4)(r);if(!i)continue;const c=(0,d.PJ)(i,o.scope.configuration.defaultPrivacyLevel,n);if(c===d.$m.HIDDEN||c===d.$m.IGNORE)continue;const u=(0,d.rf)(r,c);o.setText(t,N(4,u))}}(r,i,c,n),function(t,e,n,o){const s=o.scope.nodeIds;for(const[r,a]of t){if(!r.isConnected)continue;const t=s.get(r);if(void 0===t)continue;if(t>=e)continue;const i=(0,d.PJ)(r,o.scope.configuration.defaultPrivacyLevel,n);if(i===d.$m.HIDDEN||i===d.$m.IGNORE)continue;const c=T(r),u=[t];for(const[t,e]of a){if(G(r)&&X(t)&&o.scope.canvasManager.resetCanvasBitmap(r),r.getAttribute(t)===e)continue;if("value"===t){const e=C(r,i);void 0!==e&&u.push(D(c,t,e));continue}const n=U(r,i,t,o.scope.configuration);u.push(R(c,t,n))}u.length>1&&o.setAttributes(u)}}(s,i,c,n),function(t,e,n){for(const{canvas:o,captureAttempt:s,hash:r,image:a}of n.scope.canvasManager.takeCanvasContentMutations()){if(!s.isCurrent()||!o.isConnected)continue;const i=n.scope.nodeIds.get(o);if(void 0!==i)if((0,d.PJ)(o,n.scope.configuration.defaultPrivacyLevel,t)===d.$m.ALLOW)try{e(r,a,()=>{s.isCurrent()&&n.scope.canvasManager.retryCanvas(o)}),n.setImageContent(i,N(8,r)),s.setLastChangeHash(r)}catch{n.scope.canvasManager.markCanvas(o,1)}else n.scope.canvasManager.markCanvas(o,1);else n.scope.canvasManager.forgetCanvas(o)}}(c,e,n)}(e,o,t))}((0,c.nx)(),a.concat(u.takeRecords()),e,n,o,s),r=[]}const{throttled:f,cancel:h}=(0,a.n)(p,16,{leading:!1});return{addMutations(t){l();for(const e of t)r.push(e)},notifyContentMutated:l,flush:p,stop(){t(),h()}}}(),u=new r((0,Rt.dm)(i.addMutations));return u.observe(t,{attributeOldValue:!0,attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),{stop(){u.disconnect(),i.stop()},flush(){i.flush()},notifyContentMutated:i.notifyContentMutated}}const kt=["clearRect","fillRect","strokeRect","fill","stroke","fillText","strokeText","drawImage","putImageData","drawFocusIfNeeded","reset"];function Pt(t){if(!t.configuration.sessionReplayCanvasRecording?.enable||0===t.configuration.sessionReplayCanvasRecording.maxFramesPerSecond||"undefined"==typeof CanvasRenderingContext2D)return{stop:a.l};const e=[];return kt.forEach(n=>{e.push((0,Ct.H7)(CanvasRenderingContext2D.prototype,n,({target:e,onPostCall:n})=>{n(()=>{void 0!==t.nodeIds.get(e.canvas)&&t.canvasManager.markCanvas(e.canvas,1)})}))}),{stop:()=>e.forEach(t=>t.stop())}}var Lt=n(1636);function Ot(t,e,n,o){const s=Math.min(1,o/Math.max(e,n)),r=Math.max(1,Math.round(e*s)),a=Math.max(1,Math.round(n*s)),i=document.createElement("canvas");i.width=r,i.height=a;const c=i.getContext("2d");if(c)return c.imageSmoothingQuality="low",c.drawImage(t,0,0,r,a),i}var Ht=n(9079),$t=n(2128);function Vt(t,e,n){return`${t}x${e}-${n}`}function zt(t){let e=2166136261;for(let n=0;n<t.length;n+=1)e^=t[n],e=Math.imul(e,16777619);return(e>>>0).toString(16).padStart(8,"0")}const Ft=(t,e)=>{const n=t.canvasManager,o=t.configuration.sessionReplayCanvasRecording,s=o?.maxFramesPerSecond??0;if(!o?.enable||0===s)return{stop:a.l};let r,i=!1;const c=1e3/s;function u(t,e){t.isCurrent()&&n.markCanvas(e,1)}async function l(t){const s=n.startCaptureAttempt(t),r=()=>i||!s.isCurrent();if(!r())try{const a=function(t,e){const n=t.width,o=t.height,s=Ot(t,n,o,e);if(s)return{canvasHeight:o,canvasWidth:n,source:s}}(t,o?.maxImageDimension??1e3);if(!a)return u(s,t),void n.discardCaptureAttempt(t,s);const i=await function(t,e){const{height:n,width:o}=t.source,s=Math.max(o,n)<=e?t.source:Ot(t.source,o,n,e);if(!s)return Promise.resolve(void 0);const r=s.getContext("2d");if(!r)return Promise.resolve(void 0);const a=r.getImageData(0,0,s.width,s.height).data,i=(0,Ht.B)($t.J.crypto?.subtle);return i?i.digest("SHA-256",a).then(e=>Vt(t.canvasWidth,t.canvasHeight,function(t){return Array.from(new Uint8Array(t),t=>t.toString(16).padStart(2,"0")).join("")}(e)),()=>Vt(t.canvasWidth,t.canvasHeight,zt(a))):Promise.resolve(Vt(t.canvasWidth,t.canvasHeight,zt(a)))}(a,o?.hashingMaxDimension??100);if(r())return;if(void 0===i)return u(s,t),void n.discardCaptureAttempt(t,s);if(i===s.lastChangeHash)return void n.discardCaptureAttempt(t,s);const c=await function(t,e){return new Promise(n=>{try{t.source.toBlob(t=>n(t??void 0),"image/webp",e)}catch{n(void 0)}})}(a,o?.encodeQuality??.5);if(r())return;if(!c)return u(s,t),void n.discardCaptureAttempt(t,s);n.addCanvasContentMutation({canvas:t,captureAttempt:s,hash:i,image:c}),e()}catch(e){r()||(n.markCanvas(t,function(t){return t instanceof DOMException&&"SecurityError"===t.name}(e)?2:1),n.discardCaptureAttempt(t,s))}}return function e(o){i||(r=(0,Lt.wg)(()=>{!async function(){const o=performance.now();try{await async function(){const e=n.takeCapturableCanvases();if(!i)for(const o of e)void 0!==t.nodeIds.get(o)?(0,d.PJ)(o,t.configuration.defaultPrivacyLevel)===d.$m.ALLOW?await l(o):n.markCanvas(o,1):n.forgetCanvas(o)}()}finally{const t=performance.now()-o;e(Math.max(c-t,.5*c))}}()},o))}(c),{stop(){i=!0,(0,Lt.DJ)(r)}}};var Jt=n(2887);function Wt({context:t,creationReason:e,encoder:n}){let o=0;const s=t.view.id,r={start:1/0,end:-1/0,creation_reason:e,records_count:0,has_full_snapshot:!1,index_in_view:ut.K_(s),source:"browser",...t},a={cssText:{count:0,max:0,sum:0},serializationDuration:{count:0,max:0,sum:0}};return ut.H5(s),{addRecord(t,e){r.start=Math.min(r.start,t.timestamp),r.end=Math.max(r.end,t.timestamp),r.records_count+=1,r.has_full_snapshot||(r.has_full_snapshot=2===t.type||12===t.type&&0===r.index_in_view);const s=n.isEmpty?'{"records":[':",";n.write(s+JSON.stringify(t),t=>{o+=t,e(o)})},addStats(t){!function(t,e){for(const n of["cssText","serializationDuration"])t[n].count+=e[n].count,t[n].max=Math.max(t[n].max,e[n].max),t[n].sum+=e[n].sum}(a,t)},flush(t){if(n.isEmpty)throw Error("Empty segment flushed");n.write(`],${JSON.stringify(r).slice(1)}\n`),n.finish(e=>{ut.L7(r.view.id,e.rawBytesCount),t(r,a,e)})}}}function Bt(t,e,n,d,l,p,f,h){const g=[],m=e=>{t.notify(15,{error:{message:e,type:"Error",source:o.g.AGENT,startClocks:(0,c.M8)()}}),(0,s.A2)("Error reported to customer",{"error.message":e})},v=f||(0,r.sA)([(0,u.ns)(e,"replay")],m,6e4,3),y=h||(0,r.sA)([(0,u.ns)(e,"replay")],m,0,3);let S,w,b=a.l,C=a.l;const{unsubscribe:I}=t.subscribe(12,()=>C());if(g.push(I),(0,i.d0)())({addRecord:S}=function(t){const e=(0,i.Y9)();return{addRecord(n){const o=t.findView();e.send("record",n,o.id)}}}(d)),w=a.l;else{const o=function(t,e,n,o,s,r){return function(t,s,r,a){let i={status:0,nextSegmentCreationReason:"init"};const{unsubscribe:c}=t.subscribe(2,()=>{d("view_change")}),{unsubscribe:u}=t.subscribe(12,t=>{d(t)});function d(t){1===i.status&&(i.segment.flush((e,n,o)=>{const s=function(t,e,n,o){const s=new FormData;s.append("segment",new Blob([t],{type:"application/octet-stream"}),`${e.session.id}-${e.start}`);const r={raw_segment_size:o,compressed_segment_size:t.byteLength,...e},a=JSON.stringify(r);return s.append("event",new Blob([a],{type:"application/json"})),{data:s,bytesCount:t.byteLength,cssText:n.cssText,isFullSnapshot:0===e.index_in_view,rawSize:o,recordCount:e.records_count,serializationDuration:n.serializationDuration}}(o.output,e,n,o.rawBytesCount);(0,Jt.Kp)(t)&&t!==Jt.y5.HIDDEN?r.sendOnExit(s):r.send(s)}),(0,Lt.DJ)(i.expirationTimeoutId)),i="stop"!==t?{status:0,nextSegmentCreationReason:t}:{status:2}}return{addRecord(t){if(2!==i.status){if(0===i.status){const t=function(t,e,n){const o=e.findTrackedSession(),s=n.findView();if(o&&s)return{application:{id:t},session:{id:o.id},view:{id:s.id}}}(e.applicationId,n,o);if(!t)return;i={status:1,segment:Wt({encoder:a,context:t,creationReason:i.nextSegmentCreationReason}),expirationTimeoutId:(0,Lt.wg)(()=>{d("segment_duration_limit")},5e3)}}i.segment.addRecord(t,t=>{t>6e4&&d("segment_bytes_limit")})}},addStats(t){1===i.status&&i.segment.addStats(t)},stop(){d("stop"),c(),u()}}}(t,0,s,r)}(t,e,n,d,v,l);S=o.addRecord,w=o.addStats,g.push(o.stop);const r=function(t,e){if(!t.metricsEnabled)return{stop:a.l};const{unsubscribe:n}=e.subscribe(t=>{if("failure"===t.type||"queue-full"===t.type||"success"===t.type&&t.payload.isFullSnapshot){const r=(e=t.type,n=t.bandwidth,{cssText:{count:(o=t.payload).cssText.count,max:o.cssText.max,sum:o.cssText.sum},encoding:{fullSnapshot:"change",incrementalSnapshot:"change"},isFullSnapshot:o.isFullSnapshot,ongoingRequests:{count:n.ongoingRequestCount,totalSize:n.ongoingByteCount},recordCount:o.recordCount,result:e,serializationDuration:{count:o.serializationDuration.count,max:o.serializationDuration.max,sum:o.serializationDuration.sum},size:{compressed:o.bytesCount,raw:o.rawSize}});(0,s.Gk)("Segment network request metrics",{metrics:r})}var e,n,o});return{stop:n}}(p,v.observable);g.push(r.stop);const i=function(t,e,n){const o=new Set,s=new Map,{unsubscribe:r}=n.observable.subscribe(t=>{if("success"===t.type){const e=s.get(t.payload.hash);s.delete(t.payload.hash),e&&e.onDiscards.clear()}else if("queue-full"===t.type||"dropped"===t.type){const e=s.get(t.payload.hash);s.delete(t.payload.hash),e&&(o.delete(t.payload.hash),e.onDiscards.forEach(t=>t()))}}),{unsubscribe:a}=e.subscribe(12,t=>{(0,Jt.Kp)(t)&&t!==Jt.y5.HIDDEN&&s.forEach(({payload:t})=>n.sendOnExit(t))});return{emitResource(e,r,a){if(o.has(e))return void(a&&s.get(e)?.onDiscards.add(a));o.add(e);const i=function(t,e,n){const o=new FormData;o.append("image",e,t);const s={application:{id:n},type:"resource"};return o.append("event",new Blob([JSON.stringify(s)],{type:"application/json"})),{data:o,bytesCount:e.size,hash:t}}(e,r,t),c={payload:i,onDiscards:new Set};a&&c.onDiscards.add(a),s.set(e,c),n.send(i)},stop(){r(),a(),s.clear(),o.clear()}}}(e.applicationId,t,y);b=i.emitResource,g.push(i.stop)}const x=function(t){const{emitRecord:e,emitResource:n,emitStats:o,configuration:s,lifeCycle:r}=t;if(!e||!n||!o)throw Error("emit functions are required");const a=n=>{e(n),(0,ct.b)("record",{record:n});const o=t.viewHistory.findView();ut.$1(o.id)},i=(e,o,s)=>{n(e,o,s);const r=t.viewHistory.findView();ut.Mt(r.id)},u=function(){const t=new Set,e=new WeakSet;let n=[],o=new WeakMap;function s(t){let e=o.get(t);return e||(e={capturePending:!1},o.set(t,e)),e}function r(n){n.isConnected&&!e.has(n)&&t.add(n)}return{markCanvas(n,o){switch(o){case 1:return void r(n);case 0:return void function(e){t.delete(e)}(n);case 2:return void function(n){e.add(n),t.delete(n)}(n);default:return}},forgetCanvas(e){t.delete(e),o.delete(e)},resetCanvasBitmap(t){o.delete(t),r(t)},takeCapturableCanvases(){const n=[];return t.forEach(o=>{o.isConnected?e.has(o)||s(o).capturePending||(t.delete(o),n.push(o)):t.delete(o)}),n},startCaptureAttempt(t){const e=s(t);e.capturePending=!0;const n=()=>o.get(t)===e;return{lastChangeHash:e.lastChangeHash,isCurrent:n,setLastChangeHash(t){n()&&(e.lastChangeHash=t)}}},discardCaptureAttempt(t,e){e.isCurrent()&&(s(t).capturePending=!1)},retryCanvas(t){o.delete(t),r(t)},addCanvasContentMutation(t){n.push(t)},takeCanvasContentMutations(){const t=n;n=[];for(const e of t)e.captureAttempt.isCurrent()&&(s(e.canvas).capturePending=!1);return t},reset(){t.clear(),n=[],o=new WeakMap}}}(),d=((t,e,n)=>{const o=new Map;return{addShadowRoot(s,r){if(o.has(s))return;const a=_t(s,t,e,n,r),i=Nt(s,t,n,r),c=yt(s,t,r);o.set(s,{flush:()=>a.flush(),stop(){a.stop(),i.stop(),c.stop()}})},removeShadowRoot(t){const e=o.get(t);e&&(e.stop(),o.delete(t))},stop(){o.forEach(({stop:t})=>t())},flush(){o.forEach(({flush:t})=>t())}}})(a,i,o),l=function(t,e,n,o){const s=V(1),r=V(0),a=function(){let t=0,e=z();const n=t=>e[t.role][t.string];return{clear(){0!==t&&(e=z(),t=0)},get:n,getOrInsert(o){let s=n(o);return void 0===s&&(s=t++,e[o.role][o.string]=s),s},get size(){return t-0}}}(),i=V(0),c={resetIds(){c.eventIds.clear(),c.nodeIds.clear(),c.stringIds.clear(),c.styleSheetIds.clear(),c.canvasManager.reset()},canvasManager:t,configuration:e,elementsScrollPositions:n,eventIds:s,nodeIds:r,shadowRootsController:o,stringIds:a,styleSheetIds:i};return c}(u,s,function(){const t=new WeakMap;return{set(e,n){(e!==document||document.scrollingElement)&&t.set(e===document?document.scrollingElement:e,n)},get(e){return t.get(e)},has(e){return t.has(e)}}}(),d),{stop:p}=function(t,e,n,o,s){it((0,c.nx)(),0,e,n,s);const{unsubscribe:r}=t.subscribe(2,t=>{o(),it(t.startClocks.timeStamp,1,e,n,s)});return{stop:r}}(r,a,o,f,l);function f(){d.flush(),h.flush()}const h=_t(document,a,i,o,l),g=[h,ht(a,l),vt(a,l),yt(document,a,l),St(a),Nt(document,a,o,l),bt(a,l),It(a,l),Mt(a),wt(a),Tt(r,a,f),Pt(l),Ft(l,h.notifyContentMutated)];return{stop(){d.stop(),g.forEach(t=>t.stop()),p()},flushMutations:f,shadowRootsController:d,takeFullSnapshot(){f(),it((0,c.nx)(),1,a,o,l)}}}({emitRecord:S,emitResource:b,emitStats:w,configuration:e,lifeCycle:t,viewHistory:d});if(C=x.flushMutations,!(0,i.d0)()){const t=function(t,e){let n;const{unsubscribe:o}=t.subscribe(t=>{if("dropped"!==t.type||0!==t.status)return;const o=(0,c.nx)();void 0!==n&&(0,c.vk)(n,o)<3e4||(n=o,e())});return{stop:o}}(v.observable,x.takeFullSnapshot);g.push(t.stop)}return{stop(){x.flushMutations(),x.stop(),g.forEach(t=>t())}}}}};
|