@kubesense/kubesense-browser-rum-core 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/cjs/boot/preStartRum.d.ts +4 -3
- package/cjs/boot/preStartRum.js +229 -204
- package/cjs/boot/preStartRum.js.map +1 -1
- package/cjs/boot/rumPublicApi.d.ts +190 -51
- package/cjs/boot/rumPublicApi.js +267 -164
- package/cjs/boot/rumPublicApi.js.map +1 -1
- package/cjs/boot/startRum.d.ts +42 -31
- package/cjs/boot/startRum.js +157 -150
- package/cjs/boot/startRum.js.map +1 -1
- package/cjs/browser/cookieObservable.d.ts +1 -5
- package/cjs/browser/cookieObservable.js +30 -34
- package/cjs/browser/cookieObservable.js.map +1 -1
- package/cjs/browser/domMutationObservable.d.ts +3 -3
- package/cjs/browser/domMutationObservable.js +29 -53
- package/cjs/browser/domMutationObservable.js.map +1 -1
- package/cjs/browser/htmlDomUtils.d.ts +5 -0
- package/cjs/browser/htmlDomUtils.js +38 -28
- package/cjs/browser/htmlDomUtils.js.map +1 -1
- package/cjs/browser/locationChangeObservable.d.ts +1 -2
- package/cjs/browser/locationChangeObservable.js +44 -45
- package/cjs/browser/locationChangeObservable.js.map +1 -1
- package/cjs/browser/performanceObservable.d.ts +4 -4
- package/cjs/browser/performanceObservable.js +50 -114
- package/cjs/browser/performanceObservable.js.map +1 -1
- package/cjs/browser/performanceUtils.d.ts +13 -1
- package/cjs/browser/performanceUtils.js +63 -37
- package/cjs/browser/performanceUtils.js.map +1 -1
- package/cjs/browser/scroll.js +17 -28
- package/cjs/browser/scroll.js.map +1 -1
- package/cjs/browser/viewportObservable.d.ts +2 -3
- package/cjs/browser/viewportObservable.js +29 -31
- package/cjs/browser/viewportObservable.js.map +1 -1
- package/cjs/browser/windowOpenObservable.js +11 -7
- package/cjs/browser/windowOpenObservable.js.map +1 -1
- package/cjs/domain/action/actionCollection.d.ts +11 -12
- package/cjs/domain/action/actionCollection.js +82 -89
- package/cjs/domain/action/actionCollection.js.map +1 -1
- package/cjs/domain/action/actionNameConstants.js +10 -9
- package/cjs/domain/action/actionNameConstants.js.map +1 -1
- package/cjs/domain/action/clickChain.js +51 -54
- package/cjs/domain/action/clickChain.js.map +1 -1
- package/cjs/domain/action/computeFrustration.js +30 -62
- package/cjs/domain/action/computeFrustration.js.map +1 -1
- package/cjs/domain/action/frustrationIgnore.d.ts +9 -0
- package/cjs/domain/action/frustrationIgnore.js +32 -0
- package/cjs/domain/action/frustrationIgnore.js.map +1 -0
- package/cjs/domain/action/getActionNameFromElement.js +141 -217
- package/cjs/domain/action/getActionNameFromElement.js.map +1 -1
- package/cjs/domain/action/interactionSelectorCache.d.ts +1 -1
- package/cjs/domain/action/interactionSelectorCache.js +17 -18
- package/cjs/domain/action/interactionSelectorCache.js.map +1 -1
- package/cjs/domain/action/isActionChildEvent.d.ts +2 -0
- package/cjs/domain/action/isActionChildEvent.js +8 -0
- package/cjs/domain/action/isActionChildEvent.js.map +1 -0
- package/cjs/domain/action/listenActionEvents.d.ts +2 -3
- package/cjs/domain/action/listenActionEvents.js +51 -55
- package/cjs/domain/action/listenActionEvents.js.map +1 -1
- package/cjs/domain/action/trackClickActions.d.ts +15 -21
- package/cjs/domain/action/trackClickActions.js +188 -226
- package/cjs/domain/action/trackClickActions.js.map +1 -1
- package/cjs/domain/action/trackManualActions.d.ts +45 -0
- package/cjs/domain/action/trackManualActions.js +48 -0
- package/cjs/domain/action/trackManualActions.js.map +1 -0
- package/cjs/domain/assembly.d.ts +1 -2
- package/cjs/domain/assembly.js +80 -95
- package/cjs/domain/assembly.js.map +1 -1
- package/cjs/domain/configuration/configuration.d.ts +575 -81
- package/cjs/domain/configuration/configuration.js +464 -199
- package/cjs/domain/configuration/configuration.js.map +1 -1
- package/cjs/domain/configuration/index.d.ts +1 -0
- package/cjs/domain/configuration/index.js +27 -21
- package/cjs/domain/configuration/jsonPathParser.js +125 -139
- package/cjs/domain/configuration/jsonPathParser.js.map +1 -1
- package/cjs/domain/configuration/remoteConfiguration.d.ts +18 -5
- package/cjs/domain/configuration/remoteConfiguration.js +268 -226
- package/cjs/domain/configuration/remoteConfiguration.js.map +1 -1
- package/cjs/domain/configuration/remoteConfiguration.types.d.ts +49 -0
- package/cjs/domain/configuration/remoteConfigurationCache.d.ts +42 -0
- package/cjs/domain/configuration/remoteConfigurationCache.js +95 -0
- package/cjs/domain/configuration/remoteConfigurationCache.js.map +1 -0
- package/cjs/domain/configuration/remoteSdkConfiguration.d.ts +11 -2
- package/cjs/domain/configuration/remoteSdkConfiguration.js +185 -117
- package/cjs/domain/configuration/remoteSdkConfiguration.js.map +1 -1
- package/cjs/domain/configuration/sessionReplayRoutes.d.ts +1 -6
- package/cjs/domain/configuration/sessionReplayRoutes.js +20 -63
- package/cjs/domain/configuration/sessionReplayRoutes.js.map +1 -1
- package/cjs/domain/contexts/ciVisibilityContext.d.ts +2 -4
- package/cjs/domain/contexts/ciVisibilityContext.js +36 -32
- package/cjs/domain/contexts/ciVisibilityContext.js.map +1 -1
- package/cjs/domain/contexts/connectivityContext.d.ts +2 -2
- package/cjs/domain/contexts/connectivityContext.js +10 -9
- package/cjs/domain/contexts/connectivityContext.js.map +1 -1
- package/cjs/domain/contexts/defaultContext.d.ts +3 -3
- package/cjs/domain/contexts/defaultContext.js +28 -32
- package/cjs/domain/contexts/defaultContext.js.map +1 -1
- package/cjs/domain/contexts/displayContext.d.ts +2 -3
- package/cjs/domain/contexts/displayContext.js +22 -26
- package/cjs/domain/contexts/displayContext.js.map +1 -1
- package/cjs/domain/contexts/featureFlagContext.d.ts +2 -2
- package/cjs/domain/contexts/featureFlagContext.js +38 -50
- package/cjs/domain/contexts/featureFlagContext.js.map +1 -1
- package/cjs/domain/contexts/internalContext.d.ts +2 -3
- package/cjs/domain/contexts/internalContext.js +26 -22
- package/cjs/domain/contexts/internalContext.js.map +1 -1
- package/cjs/domain/contexts/pageStateHistory.d.ts +3 -4
- package/cjs/domain/contexts/pageStateHistory.js +76 -96
- package/cjs/domain/contexts/pageStateHistory.js.map +1 -1
- package/cjs/domain/contexts/sessionContext.d.ts +9 -3
- package/cjs/domain/contexts/sessionContext.js +31 -45
- package/cjs/domain/contexts/sessionContext.js.map +1 -1
- package/cjs/domain/contexts/sourceCodeMfeContext.d.ts +10 -0
- package/cjs/domain/contexts/sourceCodeMfeContext.js +35 -0
- package/cjs/domain/contexts/sourceCodeMfeContext.js.map +1 -0
- package/cjs/domain/contexts/syntheticsContext.d.ts +2 -2
- package/cjs/domain/contexts/syntheticsContext.js +19 -23
- package/cjs/domain/contexts/syntheticsContext.js.map +1 -1
- package/cjs/domain/contexts/trackingConsentContext.d.ts +2 -2
- package/cjs/domain/contexts/trackingConsentContext.js +10 -12
- package/cjs/domain/contexts/trackingConsentContext.js.map +1 -1
- package/cjs/domain/contexts/urlContexts.d.ts +4 -3
- package/cjs/domain/contexts/urlContexts.js +65 -61
- package/cjs/domain/contexts/urlContexts.js.map +1 -1
- package/cjs/domain/contexts/userAgentDataContext.d.ts +2 -2
- package/cjs/domain/contexts/userAgentDataContext.js +20 -29
- package/cjs/domain/contexts/userAgentDataContext.js.map +1 -1
- package/cjs/domain/contexts/viewHistory.d.ts +5 -2
- package/cjs/domain/contexts/viewHistory.js +41 -45
- package/cjs/domain/contexts/viewHistory.js.map +1 -1
- package/cjs/domain/discardNegativeDuration.d.ts +1 -1
- package/cjs/domain/discardNegativeDuration.js +6 -5
- package/cjs/domain/discardNegativeDuration.js.map +1 -1
- package/cjs/domain/error/errorCollection.d.ts +3 -3
- package/cjs/domain/error/errorCollection.js +67 -68
- package/cjs/domain/error/errorCollection.js.map +1 -1
- package/cjs/domain/error/trackReportError.d.ts +1 -2
- package/cjs/domain/error/trackReportError.js +10 -14
- package/cjs/domain/error/trackReportError.js.map +1 -1
- package/cjs/domain/event/eventCollection.d.ts +2 -1
- package/cjs/domain/event/eventCollection.js +21 -22
- package/cjs/domain/event/eventCollection.js.map +1 -1
- package/cjs/domain/eventTracker.d.ts +37 -0
- package/cjs/domain/eventTracker.js +94 -0
- package/cjs/domain/eventTracker.js.map +1 -0
- package/cjs/domain/extractRegexMatch.d.ts +5 -0
- package/cjs/domain/extractRegexMatch.js +16 -0
- package/cjs/domain/extractRegexMatch.js.map +1 -0
- package/cjs/domain/getComposedPathSelector.d.ts +22 -0
- package/cjs/domain/getComposedPathSelector.js +95 -0
- package/cjs/domain/getComposedPathSelector.js.map +1 -0
- package/cjs/domain/getSelectorFromElement.d.ts +18 -6
- package/cjs/domain/getSelectorFromElement.js +199 -191
- package/cjs/domain/getSelectorFromElement.js.map +1 -1
- package/cjs/domain/getSessionReplayUrl.d.ts +2 -2
- package/cjs/domain/getSessionReplayUrl.js +17 -30
- package/cjs/domain/getSessionReplayUrl.js.map +1 -1
- package/cjs/domain/hooks.d.ts +26 -17
- package/cjs/domain/hooks.js +12 -5
- package/cjs/domain/hooks.js.map +1 -1
- package/cjs/domain/lifeCycle.d.ts +26 -12
- package/cjs/domain/lifeCycle.js +28 -5
- package/cjs/domain/lifeCycle.js.map +1 -1
- package/cjs/domain/limitModification.d.ts +5 -1
- package/cjs/domain/limitModification.js +32 -36
- package/cjs/domain/limitModification.js.map +1 -1
- package/cjs/domain/longTask/longTaskCollection.d.ts +0 -13
- package/cjs/domain/longTask/longTaskCollection.js +75 -87
- package/cjs/domain/longTask/longTaskCollection.js.map +1 -1
- package/cjs/domain/plugins.d.ts +37 -14
- package/cjs/domain/plugins.js +22 -13
- package/cjs/domain/plugins.js.map +1 -1
- package/cjs/domain/privacy.d.ts +6 -1
- package/cjs/domain/privacy.js +143 -286
- package/cjs/domain/privacy.js.map +1 -1
- package/cjs/domain/privacyConstants.js +43 -34
- package/cjs/domain/privacyConstants.js.map +1 -1
- package/cjs/domain/requestCollection.d.ts +6 -5
- package/cjs/domain/requestCollection.js +82 -105
- package/cjs/domain/requestCollection.js.map +1 -1
- package/cjs/domain/resource/graphql.d.ts +1 -1
- package/cjs/domain/resource/graphql.js +85 -86
- package/cjs/domain/resource/graphql.js.map +1 -1
- package/cjs/domain/resource/requestRegistry.js +30 -38
- package/cjs/domain/resource/requestRegistry.js.map +1 -1
- package/cjs/domain/resource/resourceCollection.d.ts +5 -3
- package/cjs/domain/resource/resourceCollection.js +241 -175
- package/cjs/domain/resource/resourceCollection.js.map +1 -1
- package/cjs/domain/resource/resourceUtils.d.ts +13 -13
- package/cjs/domain/resource/resourceUtils.js +323 -221
- package/cjs/domain/resource/resourceUtils.js.map +1 -1
- package/cjs/domain/resource/trackManualResources.d.ts +55 -0
- package/cjs/domain/resource/trackManualResources.js +53 -0
- package/cjs/domain/resource/trackManualResources.js.map +1 -0
- package/cjs/domain/resource/webSocketCollection.d.ts +46 -0
- package/cjs/domain/resource/webSocketCollection.js +163 -0
- package/cjs/domain/resource/webSocketCollection.js.map +1 -0
- package/cjs/domain/session/session.types.d.ts +4 -0
- package/cjs/domain/sessionReplayState.d.ts +8 -0
- package/cjs/domain/sessionReplayState.js +19 -0
- package/cjs/domain/sessionReplayState.js.map +1 -0
- package/cjs/domain/startCustomerDataTelemetry.js +39 -43
- package/cjs/domain/startCustomerDataTelemetry.js.map +1 -1
- package/cjs/domain/tracing/getDocumentTraceId.d.ts +1 -1
- package/cjs/domain/tracing/getDocumentTraceId.js +42 -63
- package/cjs/domain/tracing/getDocumentTraceId.js.map +1 -1
- package/cjs/domain/tracing/identifier.js +13 -46
- package/cjs/domain/tracing/identifier.js.map +1 -1
- package/cjs/domain/tracing/tracer.d.ts +2 -5
- package/cjs/domain/tracing/tracer.js +110 -150
- package/cjs/domain/tracing/tracer.js.map +1 -1
- package/cjs/domain/trackEventCounts.js +43 -48
- package/cjs/domain/trackEventCounts.js.map +1 -1
- package/cjs/domain/view/bfCacheSupport.d.ts +1 -2
- package/cjs/domain/view/bfCacheSupport.js +10 -11
- package/cjs/domain/view/bfCacheSupport.js.map +1 -1
- package/cjs/domain/view/trackViewEventCounts.js +14 -13
- package/cjs/domain/view/trackViewEventCounts.js.map +1 -1
- package/cjs/domain/view/trackViews.d.ts +8 -2
- package/cjs/domain/view/trackViews.js +221 -270
- package/cjs/domain/view/trackViews.js.map +1 -1
- package/cjs/domain/view/viewCollection.d.ts +4 -3
- package/cjs/domain/view/viewCollection.js +124 -148
- package/cjs/domain/view/viewCollection.js.map +1 -1
- package/cjs/domain/view/viewDiff.d.ts +22 -0
- package/cjs/domain/view/viewDiff.js +62 -0
- package/cjs/domain/view/viewDiff.js.map +1 -0
- package/cjs/domain/view/viewMetrics/getClsAttributionImpactedArea.js +20 -22
- package/cjs/domain/view/viewMetrics/getClsAttributionImpactedArea.js.map +1 -1
- package/cjs/domain/view/viewMetrics/interactionCountPolyfill.d.ts +1 -0
- package/cjs/domain/view/viewMetrics/interactionCountPolyfill.js +35 -33
- package/cjs/domain/view/viewMetrics/interactionCountPolyfill.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackBfcacheMetrics.d.ts +1 -1
- package/cjs/domain/view/viewMetrics/trackBfcacheMetrics.js +14 -13
- package/cjs/domain/view/viewMetrics/trackBfcacheMetrics.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackCommonViewMetrics.d.ts +4 -2
- package/cjs/domain/view/viewMetrics/trackCommonViewMetrics.js +51 -34
- package/cjs/domain/view/viewMetrics/trackCommonViewMetrics.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackCumulativeLayoutShift.d.ts +1 -1
- package/cjs/domain/view/viewMetrics/trackCumulativeLayoutShift.js +106 -122
- package/cjs/domain/view/viewMetrics/trackCumulativeLayoutShift.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackFirstContentfulPaint.d.ts +2 -3
- package/cjs/domain/view/viewMetrics/trackFirstContentfulPaint.js +26 -34
- package/cjs/domain/view/viewMetrics/trackFirstContentfulPaint.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackFirstHidden.d.ts +2 -3
- package/cjs/domain/view/viewMetrics/trackFirstHidden.js +31 -31
- package/cjs/domain/view/viewMetrics/trackFirstHidden.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackInitialViewMetrics.d.ts +1 -3
- package/cjs/domain/view/viewMetrics/trackInitialViewMetrics.js +33 -38
- package/cjs/domain/view/viewMetrics/trackInitialViewMetrics.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackInteractionToNextPaint.d.ts +10 -1
- package/cjs/domain/view/viewMetrics/trackInteractionToNextPaint.js +202 -144
- package/cjs/domain/view/viewMetrics/trackInteractionToNextPaint.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackLargestContentfulPaint.d.ts +6 -1
- package/cjs/domain/view/viewMetrics/trackLargestContentfulPaint.js +65 -55
- package/cjs/domain/view/viewMetrics/trackLargestContentfulPaint.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackLoadingTime.d.ts +2 -1
- package/cjs/domain/view/viewMetrics/trackLoadingTime.js +42 -46
- package/cjs/domain/view/viewMetrics/trackLoadingTime.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackNavigationTimings.d.ts +2 -3
- package/cjs/domain/view/viewMetrics/trackNavigationTimings.js +28 -36
- package/cjs/domain/view/viewMetrics/trackNavigationTimings.js.map +1 -1
- package/cjs/domain/view/viewMetrics/trackScrollMetrics.d.ts +3 -4
- package/cjs/domain/view/viewMetrics/trackScrollMetrics.js +63 -72
- package/cjs/domain/view/viewMetrics/trackScrollMetrics.js.map +1 -1
- package/cjs/domain/vital/vitalCollection.d.ts +44 -20
- package/cjs/domain/vital/vitalCollection.js +81 -109
- package/cjs/domain/vital/vitalCollection.js.map +1 -1
- package/cjs/domain/waitPageActivityEnd.d.ts +1 -4
- package/cjs/domain/waitPageActivityEnd.js +99 -119
- package/cjs/domain/waitPageActivityEnd.js.map +1 -1
- package/cjs/domainContext.types.d.ts +21 -13
- package/cjs/index.d.ts +11 -10
- package/cjs/index.js +84 -62
- package/cjs/rawRumEvent.types.d.ts +79 -13
- package/cjs/rawRumEvent.types.js +40 -27
- package/cjs/rawRumEvent.types.js.map +1 -1
- package/cjs/rumEvent.types.d.ts +906 -669
- package/cjs/transport/formDataTransport.js +43 -41
- package/cjs/transport/formDataTransport.js.map +1 -1
- package/cjs/transport/startRumBatch.d.ts +27 -3
- package/cjs/transport/startRumBatch.js +132 -31
- package/cjs/transport/startRumBatch.js.map +1 -1
- package/cjs/transport/startRumEventBridge.js +10 -8
- package/cjs/transport/startRumEventBridge.js.map +1 -1
- package/esm/boot/preStartRum.mjs +233 -0
- package/esm/boot/preStartRum.mjs.map +1 -0
- package/esm/boot/rumPublicApi.mjs +271 -0
- package/esm/boot/rumPublicApi.mjs.map +1 -0
- package/esm/boot/startRum.mjs +159 -0
- package/esm/boot/startRum.mjs.map +1 -0
- package/esm/browser/cookieObservable.mjs +34 -0
- package/esm/browser/cookieObservable.mjs.map +1 -0
- package/esm/browser/domMutationObservable.mjs +33 -0
- package/esm/browser/domMutationObservable.mjs.map +1 -0
- package/esm/browser/htmlDomUtils.mjs +48 -0
- package/esm/browser/htmlDomUtils.mjs.map +1 -0
- package/esm/browser/locationChangeObservable.mjs +50 -0
- package/esm/browser/locationChangeObservable.mjs.map +1 -0
- package/esm/browser/performanceObservable.mjs +60 -0
- package/esm/browser/performanceObservable.mjs.map +1 -0
- package/esm/browser/performanceUtils.mjs +64 -0
- package/esm/browser/performanceUtils.mjs.map +1 -0
- package/esm/browser/scroll.mjs +21 -0
- package/esm/browser/scroll.mjs.map +1 -0
- package/esm/browser/viewportObservable.mjs +33 -0
- package/esm/browser/viewportObservable.mjs.map +1 -0
- package/esm/browser/windowOpenObservable.mjs +14 -0
- package/esm/browser/windowOpenObservable.mjs.map +1 -0
- package/esm/domain/action/actionCollection.mjs +89 -0
- package/esm/domain/action/actionCollection.mjs.map +1 -0
- package/esm/domain/action/actionNameConstants.mjs +11 -0
- package/esm/domain/action/actionNameConstants.mjs.map +1 -0
- package/esm/domain/action/clickChain.mjs +57 -0
- package/esm/domain/action/clickChain.mjs.map +1 -0
- package/esm/domain/action/computeFrustration.mjs +36 -0
- package/esm/domain/action/computeFrustration.mjs.map +1 -0
- package/esm/domain/action/frustrationIgnore.mjs +31 -0
- package/esm/domain/action/frustrationIgnore.mjs.map +1 -0
- package/esm/domain/action/getActionNameFromElement.mjs +163 -0
- package/esm/domain/action/getActionNameFromElement.mjs.map +1 -0
- package/esm/domain/action/interactionSelectorCache.mjs +19 -0
- package/esm/domain/action/interactionSelectorCache.mjs.map +1 -0
- package/esm/domain/action/isActionChildEvent.mjs +8 -0
- package/esm/domain/action/isActionChildEvent.mjs.map +1 -0
- package/esm/domain/action/listenActionEvents.mjs +57 -0
- package/esm/domain/action/listenActionEvents.mjs.map +1 -0
- package/esm/domain/action/trackClickActions.mjs +198 -0
- package/esm/domain/action/trackClickActions.mjs.map +1 -0
- package/esm/domain/action/trackManualActions.mjs +48 -0
- package/esm/domain/action/trackManualActions.mjs.map +1 -0
- package/esm/domain/assembly.mjs +87 -0
- package/esm/domain/assembly.mjs.map +1 -0
- package/esm/domain/configuration/configuration.mjs +474 -0
- package/esm/domain/configuration/configuration.mjs.map +1 -0
- package/esm/domain/configuration/index.mjs +6 -0
- package/esm/domain/configuration/jsonPathParser.mjs +145 -0
- package/esm/domain/configuration/jsonPathParser.mjs.map +1 -0
- package/esm/domain/configuration/remoteConfiguration.mjs +279 -0
- package/esm/domain/configuration/remoteConfiguration.mjs.map +1 -0
- package/esm/domain/configuration/remoteConfigurationCache.mjs +92 -0
- package/esm/domain/configuration/remoteConfigurationCache.mjs.map +1 -0
- package/esm/domain/configuration/remoteSdkConfiguration.mjs +208 -0
- package/esm/domain/configuration/remoteSdkConfiguration.mjs.map +1 -0
- package/esm/domain/configuration/sessionReplayRoutes.mjs +26 -0
- package/esm/domain/configuration/sessionReplayRoutes.mjs.map +1 -0
- package/esm/domain/contexts/ciVisibilityContext.mjs +37 -0
- package/esm/domain/contexts/ciVisibilityContext.mjs.map +1 -0
- package/esm/domain/contexts/connectivityContext.mjs +12 -0
- package/esm/domain/contexts/connectivityContext.mjs.map +1 -0
- package/esm/domain/contexts/defaultContext.mjs +30 -0
- package/esm/domain/contexts/defaultContext.mjs.map +1 -0
- package/esm/domain/contexts/displayContext.mjs +24 -0
- package/esm/domain/contexts/displayContext.mjs.map +1 -0
- package/esm/domain/contexts/featureFlagContext.mjs +40 -0
- package/esm/domain/contexts/featureFlagContext.mjs.map +1 -0
- package/esm/domain/contexts/internalContext.mjs +30 -0
- package/esm/domain/contexts/internalContext.mjs.map +1 -0
- package/esm/domain/contexts/pageStateHistory.mjs +82 -0
- package/esm/domain/contexts/pageStateHistory.mjs.map +1 -0
- package/esm/domain/contexts/sessionContext.mjs +33 -0
- package/esm/domain/contexts/sessionContext.mjs.map +1 -0
- package/esm/domain/contexts/sourceCodeMfeContext.mjs +35 -0
- package/esm/domain/contexts/sourceCodeMfeContext.mjs.map +1 -0
- package/esm/domain/contexts/syntheticsContext.mjs +21 -0
- package/esm/domain/contexts/syntheticsContext.mjs.map +1 -0
- package/esm/domain/contexts/trackingConsentContext.mjs +12 -0
- package/esm/domain/contexts/trackingConsentContext.mjs.map +1 -0
- package/esm/domain/contexts/urlContexts.mjs +67 -0
- package/esm/domain/contexts/urlContexts.mjs.map +1 -0
- package/esm/domain/contexts/userAgentDataContext.mjs +22 -0
- package/esm/domain/contexts/userAgentDataContext.mjs.map +1 -0
- package/esm/domain/contexts/viewHistory.mjs +43 -0
- package/esm/domain/contexts/viewHistory.mjs.map +1 -0
- package/esm/domain/discardNegativeDuration.mjs +9 -0
- package/esm/domain/discardNegativeDuration.mjs.map +1 -0
- package/esm/domain/error/errorCollection.mjs +72 -0
- package/esm/domain/error/errorCollection.mjs.map +1 -0
- package/esm/domain/error/trackReportError.mjs +12 -0
- package/esm/domain/error/trackReportError.mjs.map +1 -0
- package/esm/domain/event/eventCollection.mjs +26 -0
- package/esm/domain/event/eventCollection.mjs.map +1 -0
- package/esm/domain/eventTracker.mjs +93 -0
- package/esm/domain/eventTracker.mjs.map +1 -0
- package/esm/domain/extractRegexMatch.mjs +16 -0
- package/esm/domain/extractRegexMatch.mjs.map +1 -0
- package/esm/domain/getComposedPathSelector.mjs +93 -0
- package/esm/domain/getComposedPathSelector.mjs.map +1 -0
- package/esm/domain/getSelectorFromElement.mjs +218 -0
- package/esm/domain/getSelectorFromElement.mjs.map +1 -0
- package/esm/domain/getSessionReplayUrl.mjs +20 -0
- package/esm/domain/getSessionReplayUrl.mjs.map +1 -0
- package/esm/domain/hooks.mjs +13 -0
- package/esm/domain/hooks.mjs.map +1 -0
- package/esm/domain/lifeCycle.mjs +28 -0
- package/esm/domain/lifeCycle.mjs.map +1 -0
- package/esm/domain/limitModification.mjs +42 -0
- package/esm/domain/limitModification.mjs.map +1 -0
- package/esm/domain/longTask/longTaskCollection.mjs +79 -0
- package/esm/domain/longTask/longTaskCollection.mjs.map +1 -0
- package/esm/domain/plugins.mjs +23 -0
- package/esm/domain/plugins.mjs.map +1 -0
- package/esm/domain/privacy.mjs +161 -0
- package/esm/domain/privacy.mjs.map +1 -0
- package/esm/domain/privacyConstants.mjs +36 -0
- package/esm/domain/privacyConstants.mjs.map +1 -0
- package/esm/domain/requestCollection.mjs +86 -0
- package/esm/domain/requestCollection.mjs.map +1 -0
- package/esm/domain/resource/graphql.mjs +93 -0
- package/esm/domain/resource/graphql.mjs.map +1 -0
- package/esm/domain/resource/requestRegistry.mjs +32 -0
- package/esm/domain/resource/requestRegistry.mjs.map +1 -0
- package/esm/domain/resource/resourceCollection.mjs +256 -0
- package/esm/domain/resource/resourceCollection.mjs.map +1 -0
- package/esm/domain/resource/resourceUtils.mjs +349 -0
- package/esm/domain/resource/resourceUtils.mjs.map +1 -0
- package/esm/domain/resource/trackManualResources.mjs +53 -0
- package/esm/domain/resource/trackManualResources.mjs.map +1 -0
- package/esm/domain/resource/webSocketCollection.mjs +160 -0
- package/esm/domain/resource/webSocketCollection.mjs.map +1 -0
- package/esm/domain/sessionReplayState.mjs +18 -0
- package/esm/domain/sessionReplayState.mjs.map +1 -0
- package/esm/domain/startCustomerDataTelemetry.mjs +51 -0
- package/esm/domain/startCustomerDataTelemetry.mjs.map +1 -0
- package/esm/domain/tracing/getDocumentTraceId.mjs +50 -0
- package/esm/domain/tracing/getDocumentTraceId.mjs.map +1 -0
- package/esm/domain/tracing/identifier.mjs +20 -0
- package/esm/domain/tracing/identifier.mjs.map +1 -0
- package/esm/domain/tracing/tracer.mjs +120 -0
- package/esm/domain/tracing/tracer.mjs.map +1 -0
- package/esm/domain/trackEventCounts.mjs +45 -0
- package/esm/domain/trackEventCounts.mjs.map +1 -0
- package/esm/domain/view/bfCacheSupport.mjs +12 -0
- package/esm/domain/view/bfCacheSupport.mjs.map +1 -0
- package/esm/domain/view/trackViewEventCounts.mjs +17 -0
- package/esm/domain/view/trackViewEventCounts.mjs.map +1 -0
- package/esm/domain/view/trackViews.mjs +230 -0
- package/esm/domain/view/trackViews.mjs.map +1 -0
- package/esm/domain/view/viewCollection.mjs +129 -0
- package/esm/domain/view/viewCollection.mjs.map +1 -0
- package/esm/domain/view/viewDiff.mjs +61 -0
- package/esm/domain/view/viewDiff.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/getClsAttributionImpactedArea.mjs +30 -0
- package/esm/domain/view/viewMetrics/getClsAttributionImpactedArea.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/interactionCountPolyfill.mjs +45 -0
- package/esm/domain/view/viewMetrics/interactionCountPolyfill.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackBfcacheMetrics.mjs +18 -0
- package/esm/domain/view/viewMetrics/trackBfcacheMetrics.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackCommonViewMetrics.mjs +54 -0
- package/esm/domain/view/viewMetrics/trackCommonViewMetrics.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.mjs +117 -0
- package/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackFirstContentfulPaint.mjs +29 -0
- package/esm/domain/view/viewMetrics/trackFirstContentfulPaint.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackFirstHidden.mjs +33 -0
- package/esm/domain/view/viewMetrics/trackFirstHidden.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackInitialViewMetrics.mjs +36 -0
- package/esm/domain/view/viewMetrics/trackInitialViewMetrics.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackInteractionToNextPaint.mjs +210 -0
- package/esm/domain/view/viewMetrics/trackInteractionToNextPaint.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackLargestContentfulPaint.mjs +70 -0
- package/esm/domain/view/viewMetrics/trackLargestContentfulPaint.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackLoadingTime.mjs +46 -0
- package/esm/domain/view/viewMetrics/trackLoadingTime.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackNavigationTimings.mjs +35 -0
- package/esm/domain/view/viewMetrics/trackNavigationTimings.mjs.map +1 -0
- package/esm/domain/view/viewMetrics/trackScrollMetrics.mjs +66 -0
- package/esm/domain/view/viewMetrics/trackScrollMetrics.mjs.map +1 -0
- package/esm/domain/vital/vitalCollection.mjs +85 -0
- package/esm/domain/vital/vitalCollection.mjs.map +1 -0
- package/esm/domain/waitPageActivityEnd.mjs +107 -0
- package/esm/domain/waitPageActivityEnd.mjs.map +1 -0
- package/esm/index.mjs +23 -0
- package/esm/rawRumEvent.types.mjs +42 -0
- package/esm/rawRumEvent.types.mjs.map +1 -0
- package/esm/transport/formDataTransport.mjs +48 -0
- package/esm/transport/formDataTransport.mjs.map +1 -0
- package/esm/transport/startRumBatch.mjs +132 -0
- package/esm/transport/startRumBatch.mjs.map +1 -0
- package/esm/transport/startRumEventBridge.mjs +13 -0
- package/esm/transport/startRumEventBridge.mjs.map +1 -0
- package/package.json +19 -11
- package/src/boot/preStartRum.ts +216 -88
- package/src/boot/rumPublicApi.ts +358 -119
- package/src/boot/startRum.ts +88 -84
- package/src/browser/cookieObservable.ts +19 -28
- package/src/browser/domMutationObservable.ts +7 -12
- package/src/browser/htmlDomUtils.ts +15 -0
- package/src/browser/locationChangeObservable.ts +23 -12
- package/src/browser/performanceObservable.ts +23 -73
- package/src/browser/performanceUtils.ts +52 -4
- package/src/browser/viewportObservable.ts +4 -6
- package/src/domain/action/actionCollection.ts +94 -87
- package/src/domain/action/clickChain.ts +11 -10
- package/src/domain/action/computeFrustration.ts +19 -5
- package/src/domain/action/frustrationIgnore.ts +54 -0
- package/src/domain/action/getActionNameFromElement.ts +27 -61
- package/src/domain/action/interactionSelectorCache.ts +2 -2
- package/src/domain/action/isActionChildEvent.ts +6 -0
- package/src/domain/action/listenActionEvents.ts +2 -11
- package/src/domain/action/trackClickActions.ts +92 -82
- package/src/domain/action/trackManualActions.ts +104 -0
- package/src/domain/assembly.ts +57 -70
- package/src/domain/configuration/configuration.ts +587 -208
- package/src/domain/configuration/index.ts +1 -0
- package/src/domain/configuration/remoteConfiguration.ts +152 -29
- package/src/domain/configuration/remoteConfiguration.types.ts +51 -1
- package/src/domain/configuration/remoteConfigurationCache.ts +153 -0
- package/src/domain/configuration/remoteSdkConfiguration.ts +131 -13
- package/src/domain/configuration/sessionReplayRoutes.ts +2 -47
- package/src/domain/contexts/ciVisibilityContext.ts +23 -12
- package/src/domain/contexts/connectivityContext.ts +7 -10
- package/src/domain/contexts/defaultContext.ts +11 -14
- package/src/domain/contexts/displayContext.ts +8 -12
- package/src/domain/contexts/featureFlagContext.ts +5 -4
- package/src/domain/contexts/internalContext.ts +3 -3
- package/src/domain/contexts/pageStateHistory.ts +20 -31
- package/src/domain/contexts/sessionContext.ts +16 -22
- package/src/domain/contexts/sourceCodeMfeContext.ts +53 -0
- package/src/domain/contexts/syntheticsContext.ts +7 -17
- package/src/domain/contexts/trackingConsentContext.ts +7 -4
- package/src/domain/contexts/urlContexts.ts +13 -9
- package/src/domain/contexts/userAgentDataContext.ts +12 -13
- package/src/domain/contexts/viewHistory.ts +4 -3
- package/src/domain/discardNegativeDuration.ts +1 -1
- package/src/domain/error/errorCollection.ts +12 -22
- package/src/domain/error/trackReportError.ts +4 -7
- package/src/domain/event/eventCollection.ts +4 -2
- package/src/domain/eventTracker.ts +169 -0
- package/src/domain/extractRegexMatch.ts +15 -0
- package/src/domain/getComposedPathSelector.ts +130 -0
- package/src/domain/getSelectorFromElement.ts +125 -31
- package/src/domain/getSessionReplayUrl.ts +4 -13
- package/src/domain/hooks.ts +34 -21
- package/src/domain/lifeCycle.ts +21 -8
- package/src/domain/limitModification.ts +20 -4
- package/src/domain/longTask/longTaskCollection.ts +18 -47
- package/src/domain/plugins.ts +54 -25
- package/src/domain/privacy.ts +16 -24
- package/src/domain/requestCollection.ts +108 -97
- package/src/domain/resource/graphql.ts +71 -25
- package/src/domain/resource/requestRegistry.ts +1 -3
- package/src/domain/resource/resourceCollection.ts +319 -137
- package/src/domain/resource/resourceUtils.ts +24 -26
- package/src/domain/resource/trackManualResources.ts +121 -0
- package/src/domain/resource/webSocketCollection.ts +281 -0
- package/src/domain/session/session.types.ts +5 -0
- package/src/domain/sessionReplayState.ts +36 -0
- package/src/domain/startCustomerDataTelemetry.ts +2 -2
- package/src/domain/tracing/getDocumentTraceId.ts +5 -4
- package/src/domain/tracing/identifier.ts +6 -37
- package/src/domain/tracing/tracer.ts +22 -21
- package/src/domain/tracing/tracer.types.ts +3 -3
- package/src/domain/view/bfCacheSupport.ts +1 -6
- package/src/domain/view/trackViews.ts +40 -37
- package/src/domain/view/viewCollection.ts +29 -23
- package/src/domain/view/viewDiff.ts +115 -0
- package/src/domain/view/viewMetrics/interactionCountPolyfill.ts +13 -2
- package/src/domain/view/viewMetrics/trackBfcacheMetrics.ts +1 -1
- package/src/domain/view/viewMetrics/trackCommonViewMetrics.ts +27 -6
- package/src/domain/view/viewMetrics/trackCumulativeLayoutShift.ts +5 -3
- package/src/domain/view/viewMetrics/trackFirstContentfulPaint.ts +4 -9
- package/src/domain/view/viewMetrics/trackFirstHidden.ts +2 -8
- package/src/domain/view/viewMetrics/trackInitialViewMetrics.ts +4 -13
- package/src/domain/view/viewMetrics/trackInteractionToNextPaint.ts +180 -35
- package/src/domain/view/viewMetrics/trackLargestContentfulPaint.ts +47 -6
- package/src/domain/view/viewMetrics/trackLoadingTime.ts +4 -3
- package/src/domain/view/viewMetrics/trackNavigationTimings.ts +10 -18
- package/src/domain/view/viewMetrics/trackScrollMetrics.ts +23 -37
- package/src/domain/vital/vitalCollection.ts +83 -102
- package/src/domain/waitPageActivityEnd.ts +7 -11
- package/src/domainContext.types.ts +23 -15
- package/src/index.ts +17 -11
- package/src/rawRumEvent.types.ts +80 -26
- package/src/rumEvent.types.ts +730 -505
- package/src/transport/formDataTransport.ts +16 -6
- package/src/transport/startRumBatch.ts +181 -24
- package/cjs/browser/firstInputPolyfill.d.ts +0 -8
- package/cjs/browser/firstInputPolyfill.js +0 -68
- package/cjs/browser/firstInputPolyfill.js.map +0 -1
- package/cjs/domain/configuration/index.js.map +0 -1
- package/cjs/domain/configuration/remoteConfiguration.types.js +0 -7
- package/cjs/domain/configuration/remoteConfiguration.types.js.map +0 -1
- package/cjs/domain/error/trackConsoleError.d.ts +0 -4
- package/cjs/domain/error/trackConsoleError.js +0 -13
- package/cjs/domain/error/trackConsoleError.js.map +0 -1
- package/cjs/domain/resource/matchRequestResourceEntry.d.ts +0 -16
- package/cjs/domain/resource/matchRequestResourceEntry.js +0 -49
- package/cjs/domain/resource/matchRequestResourceEntry.js.map +0 -1
- package/cjs/domain/resource/retrieveInitialDocumentResourceTiming.d.ts +0 -4
- package/cjs/domain/resource/retrieveInitialDocumentResourceTiming.js +0 -24
- package/cjs/domain/resource/retrieveInitialDocumentResourceTiming.js.map +0 -1
- package/cjs/domain/rumSessionManager.d.ts +0 -36
- package/cjs/domain/rumSessionManager.js +0 -77
- package/cjs/domain/rumSessionManager.js.map +0 -1
- package/cjs/domain/sampler/sampler.d.ts +0 -10
- package/cjs/domain/sampler/sampler.js +0 -63
- package/cjs/domain/sampler/sampler.js.map +0 -1
- package/cjs/domain/tracing/sampler.d.ts +0 -10
- package/cjs/domain/tracing/sampler.js +0 -69
- package/cjs/domain/tracing/sampler.js.map +0 -1
- package/cjs/domain/tracing/tracer.types.js +0 -3
- package/cjs/domain/tracing/tracer.types.js.map +0 -1
- package/cjs/domain/view/viewMetrics/startInitialViewMetricsTelemetry.d.ts +0 -6
- package/cjs/domain/view/viewMetrics/startInitialViewMetricsTelemetry.js +0 -44
- package/cjs/domain/view/viewMetrics/startInitialViewMetricsTelemetry.js.map +0 -1
- package/cjs/domain/view/viewMetrics/trackFirstInput.d.ts +0 -19
- package/cjs/domain/view/viewMetrics/trackFirstInput.js +0 -43
- package/cjs/domain/view/viewMetrics/trackFirstInput.js.map +0 -1
- package/cjs/domainContext.types.js +0 -6
- package/cjs/domainContext.types.js.map +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/rumEvent.types.js +0 -7
- package/cjs/rumEvent.types.js.map +0 -1
- package/esm/boot/preStartRum.d.ts +0 -7
- package/esm/boot/preStartRum.js +0 -205
- package/esm/boot/preStartRum.js.map +0 -1
- package/esm/boot/rumPublicApi.d.ts +0 -409
- package/esm/boot/rumPublicApi.js +0 -165
- package/esm/boot/rumPublicApi.js.map +0 -1
- package/esm/boot/startRum.d.ts +0 -109
- package/esm/boot/startRum.js +0 -149
- package/esm/boot/startRum.js.map +0 -1
- package/esm/browser/cookieObservable.d.ts +0 -8
- package/esm/browser/cookieObservable.js +0 -35
- package/esm/browser/cookieObservable.js.map +0 -1
- package/esm/browser/domMutationObservable.d.ts +0 -27
- package/esm/browser/domMutationObservable.js +0 -54
- package/esm/browser/domMutationObservable.js.map +0 -1
- package/esm/browser/firstInputPolyfill.d.ts +0 -8
- package/esm/browser/firstInputPolyfill.js +0 -65
- package/esm/browser/firstInputPolyfill.js.map +0 -1
- package/esm/browser/htmlDomUtils.d.ts +0 -13
- package/esm/browser/htmlDomUtils.js +0 -36
- package/esm/browser/htmlDomUtils.js.map +0 -1
- package/esm/browser/locationChangeObservable.d.ts +0 -7
- package/esm/browser/locationChangeObservable.js +0 -48
- package/esm/browser/locationChangeObservable.js.map +0 -1
- package/esm/browser/performanceObservable.d.ts +0 -174
- package/esm/browser/performanceObservable.js +0 -121
- package/esm/browser/performanceObservable.js.map +0 -1
- package/esm/browser/performanceUtils.d.ts +0 -7
- package/esm/browser/performanceUtils.js +0 -38
- package/esm/browser/performanceUtils.js.map +0 -1
- package/esm/browser/scroll.d.ts +0 -2
- package/esm/browser/scroll.js +0 -29
- package/esm/browser/scroll.js.map +0 -1
- package/esm/browser/viewportObservable.d.ts +0 -10
- package/esm/browser/viewportObservable.js +0 -32
- package/esm/browser/viewportObservable.js.map +0 -1
- package/esm/browser/windowOpenObservable.d.ts +0 -5
- package/esm/browser/windowOpenObservable.js +0 -7
- package/esm/browser/windowOpenObservable.js.map +0 -1
- package/esm/domain/action/actionCollection.d.ts +0 -21
- package/esm/domain/action/actionCollection.js +0 -93
- package/esm/domain/action/actionCollection.js.map +0 -1
- package/esm/domain/action/actionNameConstants.d.ts +0 -18
- package/esm/domain/action/actionNameConstants.js +0 -8
- package/esm/domain/action/actionNameConstants.js.map +0 -1
- package/esm/domain/action/clickChain.d.ts +0 -8
- package/esm/domain/action/clickChain.js +0 -57
- package/esm/domain/action/clickChain.js.map +0 -1
- package/esm/domain/action/computeFrustration.d.ts +0 -6
- package/esm/domain/action/computeFrustration.js +0 -65
- package/esm/domain/action/computeFrustration.js.map +0 -1
- package/esm/domain/action/getActionNameFromElement.d.ts +0 -4
- package/esm/domain/action/getActionNameFromElement.js +0 -236
- package/esm/domain/action/getActionNameFromElement.js.map +0 -1
- package/esm/domain/action/interactionSelectorCache.d.ts +0 -5
- package/esm/domain/action/interactionSelectorCache.js +0 -18
- package/esm/domain/action/interactionSelectorCache.js.map +0 -1
- package/esm/domain/action/listenActionEvents.d.ts +0 -19
- package/esm/domain/action/listenActionEvents.js +0 -58
- package/esm/domain/action/listenActionEvents.js.map +0 -1
- package/esm/domain/action/trackClickActions.d.ts +0 -81
- package/esm/domain/action/trackClickActions.js +0 -232
- package/esm/domain/action/trackClickActions.js.map +0 -1
- package/esm/domain/assembly.d.ts +0 -5
- package/esm/domain/assembly.js +0 -99
- package/esm/domain/assembly.js.map +0 -1
- package/esm/domain/configuration/configuration.d.ts +0 -358
- package/esm/domain/configuration/configuration.js +0 -209
- package/esm/domain/configuration/configuration.js.map +0 -1
- package/esm/domain/configuration/index.d.ts +0 -4
- package/esm/domain/configuration/index.js +0 -5
- package/esm/domain/configuration/index.js.map +0 -1
- package/esm/domain/configuration/jsonPathParser.d.ts +0 -28
- package/esm/domain/configuration/jsonPathParser.js +0 -156
- package/esm/domain/configuration/jsonPathParser.js.map +0 -1
- package/esm/domain/configuration/remoteConfiguration.d.ts +0 -39
- package/esm/domain/configuration/remoteConfiguration.js +0 -236
- package/esm/domain/configuration/remoteConfiguration.js.map +0 -1
- package/esm/domain/configuration/remoteConfiguration.types.d.ts +0 -138
- package/esm/domain/configuration/remoteConfiguration.types.js +0 -6
- package/esm/domain/configuration/remoteConfiguration.types.js.map +0 -1
- package/esm/domain/configuration/remoteSdkConfiguration.d.ts +0 -18
- package/esm/domain/configuration/remoteSdkConfiguration.js +0 -137
- package/esm/domain/configuration/remoteSdkConfiguration.js.map +0 -1
- package/esm/domain/configuration/sessionReplayRoutes.d.ts +0 -35
- package/esm/domain/configuration/sessionReplayRoutes.js +0 -65
- package/esm/domain/configuration/sessionReplayRoutes.js.map +0 -1
- package/esm/domain/contexts/ciVisibilityContext.d.ts +0 -12
- package/esm/domain/contexts/ciVisibilityContext.js +0 -30
- package/esm/domain/contexts/ciVisibilityContext.js.map +0 -1
- package/esm/domain/contexts/connectivityContext.d.ts +0 -2
- package/esm/domain/contexts/connectivityContext.js +0 -8
- package/esm/domain/contexts/connectivityContext.js.map +0 -1
- package/esm/domain/contexts/defaultContext.d.ts +0 -4
- package/esm/domain/contexts/defaultContext.js +0 -31
- package/esm/domain/contexts/defaultContext.js.map +0 -1
- package/esm/domain/contexts/displayContext.d.ts +0 -6
- package/esm/domain/contexts/displayContext.js +0 -25
- package/esm/domain/contexts/displayContext.js.map +0 -1
- package/esm/domain/contexts/featureFlagContext.d.ts +0 -19
- package/esm/domain/contexts/featureFlagContext.js +0 -49
- package/esm/domain/contexts/featureFlagContext.js.map +0 -1
- package/esm/domain/contexts/internalContext.d.ts +0 -12
- package/esm/domain/contexts/internalContext.js +0 -23
- package/esm/domain/contexts/internalContext.js.map +0 -1
- package/esm/domain/contexts/pageStateHistory.d.ts +0 -23
- package/esm/domain/contexts/pageStateHistory.js +0 -100
- package/esm/domain/contexts/pageStateHistory.js.map +0 -1
- package/esm/domain/contexts/sessionContext.d.ts +0 -5
- package/esm/domain/contexts/sessionContext.js +0 -44
- package/esm/domain/contexts/sessionContext.js.map +0 -1
- package/esm/domain/contexts/syntheticsContext.d.ts +0 -2
- package/esm/domain/contexts/syntheticsContext.js +0 -22
- package/esm/domain/contexts/syntheticsContext.js.map +0 -1
- package/esm/domain/contexts/trackingConsentContext.d.ts +0 -3
- package/esm/domain/contexts/trackingConsentContext.js +0 -11
- package/esm/domain/contexts/trackingConsentContext.js.map +0 -1
- package/esm/domain/contexts/urlContexts.d.ts +0 -22
- package/esm/domain/contexts/urlContexts.js +0 -60
- package/esm/domain/contexts/urlContexts.js.map +0 -1
- package/esm/domain/contexts/userAgentDataContext.d.ts +0 -2
- package/esm/domain/contexts/userAgentDataContext.js +0 -28
- package/esm/domain/contexts/userAgentDataContext.js.map +0 -1
- package/esm/domain/contexts/viewHistory.d.ts +0 -17
- package/esm/domain/contexts/viewHistory.js +0 -44
- package/esm/domain/contexts/viewHistory.js.map +0 -1
- package/esm/domain/discardNegativeDuration.d.ts +0 -2
- package/esm/domain/discardNegativeDuration.js +0 -5
- package/esm/domain/discardNegativeDuration.js.map +0 -1
- package/esm/domain/error/errorCollection.d.ts +0 -17
- package/esm/domain/error/errorCollection.js +0 -70
- package/esm/domain/error/errorCollection.js.map +0 -1
- package/esm/domain/error/trackConsoleError.d.ts +0 -4
- package/esm/domain/error/trackConsoleError.js +0 -10
- package/esm/domain/error/trackConsoleError.js.map +0 -1
- package/esm/domain/error/trackReportError.d.ts +0 -5
- package/esm/domain/error/trackReportError.js +0 -13
- package/esm/domain/error/trackReportError.js.map +0 -1
- package/esm/domain/event/eventCollection.d.ts +0 -10
- package/esm/domain/event/eventCollection.js +0 -24
- package/esm/domain/event/eventCollection.js.map +0 -1
- package/esm/domain/getSelectorFromElement.d.ts +0 -64
- package/esm/domain/getSelectorFromElement.js +0 -213
- package/esm/domain/getSelectorFromElement.js.map +0 -1
- package/esm/domain/getSessionReplayUrl.d.ts +0 -9
- package/esm/domain/getSessionReplayUrl.js +0 -30
- package/esm/domain/getSessionReplayUrl.js.map +0 -1
- package/esm/domain/hooks.d.ts +0 -23
- package/esm/domain/hooks.js +0 -3
- package/esm/domain/hooks.js.map +0 -1
- package/esm/domain/lifeCycle.d.ts +0 -73
- package/esm/domain/lifeCycle.js +0 -3
- package/esm/domain/lifeCycle.js.map +0 -1
- package/esm/domain/limitModification.d.ts +0 -8
- package/esm/domain/limitModification.js +0 -43
- package/esm/domain/limitModification.js.map +0 -1
- package/esm/domain/longTask/longTaskCollection.d.ts +0 -18
- package/esm/domain/longTask/longTaskCollection.js +0 -87
- package/esm/domain/longTask/longTaskCollection.js.map +0 -1
- package/esm/domain/plugins.d.ts +0 -40
- package/esm/domain/plugins.js +0 -12
- package/esm/domain/plugins.js.map +0 -1
- package/esm/domain/privacy.d.ts +0 -44
- package/esm/domain/privacy.js +0 -302
- package/esm/domain/privacy.js.map +0 -1
- package/esm/domain/privacyConstants.d.ts +0 -23
- package/esm/domain/privacyConstants.js +0 -35
- package/esm/domain/privacyConstants.js.map +0 -1
- package/esm/domain/requestCollection.d.ts +0 -54
- package/esm/domain/requestCollection.js +0 -106
- package/esm/domain/requestCollection.js.map +0 -1
- package/esm/domain/resource/graphql.d.ts +0 -23
- package/esm/domain/resource/graphql.js +0 -91
- package/esm/domain/resource/graphql.js.map +0 -1
- package/esm/domain/resource/matchRequestResourceEntry.d.ts +0 -16
- package/esm/domain/resource/matchRequestResourceEntry.js +0 -46
- package/esm/domain/resource/matchRequestResourceEntry.js.map +0 -1
- package/esm/domain/resource/requestRegistry.d.ts +0 -9
- package/esm/domain/resource/requestRegistry.js +0 -37
- package/esm/domain/resource/requestRegistry.js.map +0 -1
- package/esm/domain/resource/resourceCollection.d.ts +0 -7
- package/esm/domain/resource/resourceCollection.js +0 -187
- package/esm/domain/resource/resourceCollection.js.map +0 -1
- package/esm/domain/resource/resourceUtils.d.ts +0 -55
- package/esm/domain/resource/resourceUtils.js +0 -244
- package/esm/domain/resource/resourceUtils.js.map +0 -1
- package/esm/domain/resource/retrieveInitialDocumentResourceTiming.d.ts +0 -4
- package/esm/domain/resource/retrieveInitialDocumentResourceTiming.js +0 -21
- package/esm/domain/resource/retrieveInitialDocumentResourceTiming.js.map +0 -1
- package/esm/domain/rumSessionManager.d.ts +0 -36
- package/esm/domain/rumSessionManager.js +0 -72
- package/esm/domain/rumSessionManager.js.map +0 -1
- package/esm/domain/sampler/sampler.d.ts +0 -10
- package/esm/domain/sampler/sampler.js +0 -58
- package/esm/domain/sampler/sampler.js.map +0 -1
- package/esm/domain/startCustomerDataTelemetry.d.ts +0 -4
- package/esm/domain/startCustomerDataTelemetry.js +0 -52
- package/esm/domain/startCustomerDataTelemetry.js.map +0 -1
- package/esm/domain/tracing/getDocumentTraceId.d.ts +0 -12
- package/esm/domain/tracing/getDocumentTraceId.js +0 -68
- package/esm/domain/tracing/getDocumentTraceId.js.map +0 -1
- package/esm/domain/tracing/identifier.d.ts +0 -13
- package/esm/domain/tracing/identifier.js +0 -50
- package/esm/domain/tracing/identifier.js.map +0 -1
- package/esm/domain/tracing/sampler.d.ts +0 -10
- package/esm/domain/tracing/sampler.js +0 -64
- package/esm/domain/tracing/sampler.js.map +0 -1
- package/esm/domain/tracing/tracer.d.ts +0 -30
- package/esm/domain/tracing/tracer.js +0 -156
- package/esm/domain/tracing/tracer.js.map +0 -1
- package/esm/domain/tracing/tracer.types.d.ts +0 -12
- package/esm/domain/tracing/tracer.types.js +0 -2
- package/esm/domain/tracing/tracer.types.js.map +0 -1
- package/esm/domain/trackEventCounts.d.ts +0 -17
- package/esm/domain/trackEventCounts.js +0 -47
- package/esm/domain/trackEventCounts.js.map +0 -1
- package/esm/domain/view/bfCacheSupport.d.ts +0 -2
- package/esm/domain/view/bfCacheSupport.js +0 -10
- package/esm/domain/view/bfCacheSupport.js.map +0 -1
- package/esm/domain/view/trackViewEventCounts.d.ts +0 -5
- package/esm/domain/view/trackViewEventCounts.js +0 -13
- package/esm/domain/view/trackViewEventCounts.js.map +0 -1
- package/esm/domain/view/trackViews.d.ts +0 -65
- package/esm/domain/view/trackViews.js +0 -278
- package/esm/domain/view/trackViews.js.map +0 -1
- package/esm/domain/view/viewCollection.d.ts +0 -18
- package/esm/domain/view/viewCollection.js +0 -150
- package/esm/domain/view/viewCollection.js.map +0 -1
- package/esm/domain/view/viewMetrics/getClsAttributionImpactedArea.d.ts +0 -6
- package/esm/domain/view/viewMetrics/getClsAttributionImpactedArea.js +0 -28
- package/esm/domain/view/viewMetrics/getClsAttributionImpactedArea.js.map +0 -1
- package/esm/domain/view/viewMetrics/interactionCountPolyfill.d.ts +0 -18
- package/esm/domain/view/viewMetrics/interactionCountPolyfill.js +0 -39
- package/esm/domain/view/viewMetrics/interactionCountPolyfill.js.map +0 -1
- package/esm/domain/view/viewMetrics/startInitialViewMetricsTelemetry.d.ts +0 -6
- package/esm/domain/view/viewMetrics/startInitialViewMetricsTelemetry.js +0 -41
- package/esm/domain/view/viewMetrics/startInitialViewMetricsTelemetry.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackBfcacheMetrics.d.ts +0 -8
- package/esm/domain/view/viewMetrics/trackBfcacheMetrics.js +0 -14
- package/esm/domain/view/viewMetrics/trackBfcacheMetrics.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackCommonViewMetrics.d.ts +0 -21
- package/esm/domain/view/viewMetrics/trackCommonViewMetrics.js +0 -34
- package/esm/domain/view/viewMetrics/trackCommonViewMetrics.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.d.ts +0 -37
- package/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js +0 -130
- package/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackFirstContentfulPaint.d.ts +0 -13
- package/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js +0 -34
- package/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackFirstHidden.d.ts +0 -10
- package/esm/domain/view/viewMetrics/trackFirstHidden.js +0 -30
- package/esm/domain/view/viewMetrics/trackFirstHidden.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackFirstInput.d.ts +0 -19
- package/esm/domain/view/viewMetrics/trackFirstInput.js +0 -40
- package/esm/domain/view/viewMetrics/trackFirstInput.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackInitialViewMetrics.d.ts +0 -15
- package/esm/domain/view/viewMetrics/trackInitialViewMetrics.js +0 -38
- package/esm/domain/view/viewMetrics/trackInitialViewMetrics.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackInteractionToNextPaint.d.ts +0 -25
- package/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js +0 -149
- package/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackLargestContentfulPaint.d.ts +0 -18
- package/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js +0 -57
- package/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackLoadingTime.d.ts +0 -14
- package/esm/domain/view/viewMetrics/trackLoadingTime.js +0 -47
- package/esm/domain/view/viewMetrics/trackLoadingTime.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackNavigationTimings.d.ts +0 -14
- package/esm/domain/view/viewMetrics/trackNavigationTimings.js +0 -40
- package/esm/domain/view/viewMetrics/trackNavigationTimings.js.map +0 -1
- package/esm/domain/view/viewMetrics/trackScrollMetrics.d.ts +0 -25
- package/esm/domain/view/viewMetrics/trackScrollMetrics.js +0 -72
- package/esm/domain/view/viewMetrics/trackScrollMetrics.js.map +0 -1
- package/esm/domain/vital/vitalCollection.d.ts +0 -55
- package/esm/domain/vital/vitalCollection.js +0 -107
- package/esm/domain/vital/vitalCollection.js.map +0 -1
- package/esm/domain/waitPageActivityEnd.d.ts +0 -54
- package/esm/domain/waitPageActivityEnd.js +0 -123
- package/esm/domain/waitPageActivityEnd.js.map +0 -1
- package/esm/domainContext.types.d.ts +0 -39
- package/esm/domainContext.types.js +0 -5
- package/esm/domainContext.types.js.map +0 -1
- package/esm/index.d.ts +0 -42
- package/esm/index.js +0 -22
- package/esm/index.js.map +0 -1
- package/esm/rawRumEvent.types.d.ts +0 -326
- package/esm/rawRumEvent.types.js +0 -31
- package/esm/rawRumEvent.types.js.map +0 -1
- package/esm/rumEvent.types.d.ts +0 -2038
- package/esm/rumEvent.types.js +0 -6
- package/esm/rumEvent.types.js.map +0 -1
- package/esm/transport/formDataTransport.d.ts +0 -16
- package/esm/transport/formDataTransport.js +0 -43
- package/esm/transport/formDataTransport.js.map +0 -1
- package/esm/transport/startRumBatch.d.ts +0 -5
- package/esm/transport/startRumBatch.js +0 -30
- package/esm/transport/startRumBatch.js.map +0 -1
- package/esm/transport/startRumEventBridge.d.ts +0 -2
- package/esm/transport/startRumEventBridge.js +0 -8
- package/esm/transport/startRumEventBridge.js.map +0 -1
- package/src/browser/firstInputPolyfill.ts +0 -87
- package/src/domain/error/trackConsoleError.ts +0 -14
- package/src/domain/resource/matchRequestResourceEntry.ts +0 -68
- package/src/domain/resource/retrieveInitialDocumentResourceTiming.ts +0 -27
- package/src/domain/rumSessionManager.ts +0 -134
- package/src/domain/sampler/sampler.ts +0 -63
- package/src/domain/tracing/sampler.ts +0 -69
- package/src/domain/view/viewMetrics/startInitialViewMetricsTelemetry.ts +0 -70
- package/src/domain/view/viewMetrics/trackFirstInput.ts +0 -59
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/domain/configuration/configuration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"configuration.js","names":["BROWSER_CORE_SCHEMA","DefaultPrivacyLevel","TraceContextInjection","canUseEventBridge","validateAndBuildConfiguration","display","catchUserErrors","isNumber","getRemoteConfigurationId","isNonEmptyArray","isMatchOption","isIndexableObject","serializeConfiguration"],"sources":["../../../src/domain/configuration/configuration.ts"],"sourcesContent":["import type { InitConfiguration, RawTelemetryConfiguration } from '@kubesense/kubesense-browser-core'\nimport {\n canUseEventBridge,\n catchUserErrors,\n serializeConfiguration,\n DefaultPrivacyLevel,\n TraceContextInjection,\n display,\n isNumber,\n isNonEmptyArray,\n BROWSER_CORE_SCHEMA,\n} from '@kubesense/kubesense-browser-core'\nimport { isIndexableObject, isMatchOption } from '@kubesense/kubesense-js-core/util'\nimport { validateAndBuildConfiguration } from '@kubesense/kubesense-js-core/configuration'\nimport type { InferredConfig, MatchOption } from '@kubesense/kubesense-js-core/configuration'\nimport type { RumEventDomainContext } from '../../domainContext.types'\nimport type { RumEvent } from '../../rumEvent.types'\nimport type { SdkName } from '../contexts/defaultContext'\nimport type { RumPlugin } from '../plugins'\nimport type { PropagatorType, TracingOption } from '../tracing/tracer.types'\nimport { getRemoteConfigurationId } from './remoteConfiguration'\nimport type { RemoteConfigurationMetadata } from './remoteConfigurationCache'\nimport type { SessionReplayRoutes } from './sessionReplayRoutes'\n\n// replaced at build time\ndeclare const __BUILD_ENV__SDK_SETUP__: string\n\nexport const DEFAULT_PROPAGATOR_TYPES: PropagatorType[] = ['tracecontext', 'kubesense']\n\n/**\n * Default list of headers collected on resource events when {@link RumInitConfiguration.trackResourceHeaders | trackResourceHeaders}\n * is set to `true`.\n */\nexport const DEFAULT_TRACKED_RESOURCE_HEADERS = [\n 'cache-control',\n 'etag',\n 'age',\n 'expires',\n 'content-type',\n 'content-encoding',\n 'vary',\n 'content-length',\n 'server-timing',\n 'x-cache',\n 'cf-cache-status',\n 'x-vercel-cache',\n] as const\n\n/**\n * Init Configuration for the RUM browser SDK.\n *\n * @category Main\n * @example NPM\n * ```ts\n * import { kubesenseSdk } from '@kubesense/kubesense-browser-rum'\n *\n * kubesenseSdk.init({\n * applicationId: '<KUBESENSE_APPLICATION_ID>',\n * clientToken: '<KUBESENSE_CLIENT_TOKEN>',\n * kubesenseRumEndpoint: '<KUBESENSE_RUM_ENDPOINT>',\n * // ...\n * })\n * ```\n * @example CDN\n * ```ts\n * KUBESENSE_SDK.init({\n * applicationId: '<KUBESENSE_APPLICATION_ID>',\n * clientToken: '<KUBESENSE_CLIENT_TOKEN>',\n * kubesenseRumEndpoint: '<KUBESENSE_RUM_ENDPOINT>',\n * ...\n * })\n * ```\n */\nexport interface RumInitConfiguration extends InitConfiguration {\n // global options\n /**\n * The RUM application ID.\n *\n * @category Authentication\n */\n applicationId: string\n\n /**\n * The service name for your application. Follows the [tag syntax requirements](https://docs.kubesense.ai/getting_started/tagging/#define-tags).\n *\n * `allowedTracingUrls` still requires an explicitly configured service.\n *\n * @category Data Collection\n * @defaultValue the `applicationId`\n */\n service?: string | undefined | null\n\n /**\n * Whether to propagate user and account IDs in the baggage header of trace requests.\n *\n * @category Tracing\n * @defaultValue true\n */\n propagateTraceBaggage?: boolean | undefined\n\n /**\n * Access to every event collected by the RUM SDK before they are sent to KubeSense.\n * It allows:\n * - Enrich your RUM events with additional context attributes\n * - Modify your RUM events to modify their content, or redact sensitive sequences (see the list of editable properties)\n * - Discard selected RUM events\n *\n * See [Enrich And Control Browser RUM Data With beforeSend](https://docs.kubesense.ai/real_user_monitoring/guide/enrich-and-control-rum-data) for further information.\n *\n * @category Data Collection\n */\n beforeSend?: RumBeforeSend | undefined\n\n /**\n * A list of request origins ignored when computing the page activity.\n * See [How page activity is calculated](https://docs.kubesense.ai/real_user_monitoring/browser/monitoring_page_performance/#how-page-activity-is-calculated) for further information.\n */\n excludedActivityUrls?: MatchOption[] | undefined\n\n /**\n * URL pointing to the KubeSense Browser SDK Worker JavaScript file. The URL can be relative or absolute, but is required to have the same origin as the web application.\n * See [Content Security Policy guidelines](https://docs.kubesense.ai/integrations/content_security_policy_logs/?tab=firefox#use-csp-with-real-user-monitoring-and-session-replay) for further information.\n *\n * @category Transport\n */\n workerUrl?: string\n\n /**\n * Compress requests sent to the KubeSense intake to reduce bandwidth usage when sending large amounts of data. The compression is done in a Worker thread.\n * See [Content Security Policy guidelines](https://docs.kubesense.ai/integrations/content_security_policy_logs/?tab=firefox#use-csp-with-real-user-monitoring-and-session-replay) for further information.\n *\n * @category Transport\n */\n compressIntakeRequests?: boolean | undefined\n\n /**\n * [Internal option] Id of the remote configuration.\n * Prefer `remoteConfiguration.id` for the non-blocking cache-and-reload path.\n *\n * @internal\n */\n remoteConfigurationId?: string | undefined\n\n /**\n * [Internal option] Remote configuration descriptor. By default the SDK reads a cached\n * configuration synchronously and refreshes it in the background. Set `sync: true` to fall back\n * to the legacy blocking fetch. Set `required: true` to prevent the SDK from starting on the\n * current page load when the remote configuration cache is empty or unreadable (the background\n * fetch still runs to populate the cache for the next load). Ignored when `sync: true` is set\n * or when the legacy `remoteConfigurationId` field is used.\n *\n * @internal\n */\n remoteConfiguration?: { id: string; sync?: boolean; required?: boolean } | undefined\n\n /**\n * [Internal option] set a proxy URL for the remote configuration\n *\n * @internal\n */\n remoteConfigurationProxy?: string | undefined\n\n /**\n * Enable dashboard-managed SDK settings served by the KubeSense collector.\n *\n * The configuration document is fetched asynchronously after the SDK starts and cached in\n * local storage, so it never delays initialization. Cached settings are applied on the next\n * page load. Local `init()` values are used until a document has been fetched, and any\n * setting absent from the document keeps its local value.\n *\n * @category Data Collection\n * @defaultValue false\n */\n enableRemoteSdkConfiguration?: boolean | undefined\n\n /**\n * Restrict Session Replay recording to specific routes.\n *\n * Recording starts and stops as the user navigates: it runs only while the current route\n * matches `include` (when provided) and does not match `exclude`. Rules are matched against\n * the path (`pathname` + `search` + `hash`), and string entries match by prefix, so\n * `/checkout` also covers `/checkout/payment`.\n *\n * These rules only narrow recording — a session that was not sampled in by\n * `sessionReplaySampleRate` is never recorded, whatever the routes say.\n *\n * @category Session Replay\n * @example\n * ```ts\n * sessionReplayRoutes: { include: ['/checkout', '/signup'], exclude: ['/checkout/card'] }\n * ```\n */\n sessionReplayRoutes?: SessionReplayRoutes | undefined\n\n /**\n * A list of domains to treat as first-party in resource provider classification.\n * Accepts strings (exact hostname match), RegExp, or functions.\n * The current page hostname is always treated as first-party.\n *\n * @category Data Collection\n * @example ['api.myapp.com', /\\.myapp\\.com$/, (host) => host.endsWith('.internal')]\n */\n firstPartyDomains?: MatchOption[] | undefined\n\n // tracing options\n /**\n * A list of request URLs used to inject tracing headers.\n * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.\n *\n * @category Tracing\n */\n allowedTracingUrls?:\n Array<MatchOption | { match: MatchOption; propagatorTypes?: PropagatorType[] | null | undefined }> | undefined\n\n /**\n * The percentage of requests to trace: 100 for all, 0 for none.\n * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.\n *\n * @category Tracing\n * @defaultValue 100\n */\n traceSampleRate?: number | undefined\n /**\n * If you set a `traceSampleRate`, to ensure backend services' sampling decisions are still applied, configure the `traceContextInjection` initialization parameter to sampled.\n *\n * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.\n *\n * @category Tracing\n * @defaultValue sampled\n */\n traceContextInjection?: TraceContextInjection | undefined\n\n // replay options\n /**\n * Allow to protect end user privacy and prevent sensitive organizational information from being collected.\n *\n * See [Replay Privacy Options](https://docs.kubesense.ai/real_user_monitoring/session_replay/browser/privacy_options) for further information.\n *\n * @category Privacy\n * @defaultValue mask-user-input\n */\n defaultPrivacyLevel?: DefaultPrivacyLevel | undefined\n\n /**\n * If you are accessing KubeSense through a custom subdomain, you can set `subdomain` to include your custom domain in the `getSessionReplayLink()` returned URL .\n *\n * See [Connect Session Replay To Your Third-Party Tools](https://docs.kubesense.ai/real_user_monitoring/guide/connect-session-replay-to-your-third-party-tools) for further information.\n *\n * @category Session Replay\n */\n subdomain?: string\n\n /**\n * The percentage of tracked sessions with [Browser RUM & Session Replay pricing](https://rum.kubesense.ai/pricing/?product=real-user-monitoring--session-replay#real-user-monitoring--session-replay) features: 100 for all, 0 for none.\n *\n * See [Configure Your Setup For Browser RUM and Browser RUM & Session Replay Sampling](https://docs.kubesense.ai/real_user_monitoring/guide/sampling-browser-plans) for further information.\n *\n * @category Session Replay\n * @defaultValue 0\n */\n sessionReplaySampleRate?: number | undefined\n\n /**\n * If the session is sampled for Session Replay, only start the recording when `startSessionReplayRecording()` is called, instead of at the beginning of the session.\n *\n * See [Session Replay Usage](https://docs.kubesense.ai/real_user_monitoring/session_replay/browser/#usage) for further information.\n *\n * @category Session Replay\n * @defaultValue false\n */\n startSessionReplayRecordingManually?: boolean | undefined\n\n /**\n * Records `<canvas>` content (most chart libraries draw on one) in Session Replay as captured frames.\n * Canvas recording is disabled when this option is omitted.\n *\n * A canvas is captured only when its privacy level is `allow` — set with `data-kubesense-privacy=\"allow\"`\n * or the `kubesense-privacy-allow` class on it or an ancestor — and only when its content changed.\n * Frames are WebP images (PNG where the browser cannot encode WebP), uploaded next to the replay\n * segments and deduplicated by content.\n *\n * `quality` picks a preset; the other fields override single values of that preset.\n *\n * @category Session Replay\n */\n sessionReplayCanvasRecording?:\n | {\n /**\n * Enables recording canvas elements in Session Replay.\n */\n enable: boolean\n\n /**\n * Trades frame rate and image resolution for bandwidth. See {@link CanvasRecordingQuality}.\n *\n * @defaultValue 'medium'\n */\n quality?: CanvasRecordingQuality | undefined\n\n /**\n * Overrides the preset's maximum number of frames captured per second, between 0 and 8. `0`\n * stops capturing frames.\n */\n maxFramesPerSecond?: number | undefined\n\n /**\n * Overrides the preset's longest side of a captured frame, in pixels, between 1 and 1280. Larger\n * canvases are downscaled proportionally.\n */\n maxImageDimension?: number | undefined\n\n /**\n * Overrides the preset's size of the thumbnail compared to detect a changed canvas, in pixels,\n * between 1 and 100.\n */\n hashingMaxDimension?: number | undefined\n }\n | undefined\n\n /**\n * Enables privacy control for action names.\n *\n * @category Privacy\n * @defaultValue true\n */\n enablePrivacyForActionName?: boolean | undefined\n\n /**\n * Enables automatic collection of users actions.\n *\n * Add `data-dd-ignore-frustration` without a value, or set it to `all`, to ignore all frustration signals for an element and its descendants. To ignore specific signals, use a space-separated list of `rage-click`, `dead-click`, and `error-click`.\n *\n * See [Tracking User Actions](https://docs.kubesense.ai/real_user_monitoring/browser/tracking_user_actions) for further information.\n *\n * @category Data Collection\n * @defaultValue true\n */\n trackUserInteractions?: boolean | undefined\n\n /**\n * Specify your own attribute to use to name actions.\n *\n * See [Declare a name for click actions](https://docs.kubesense.ai/real_user_monitoring/browser/tracking_user_actions/#declare-a-name-for-click-actions) for further information.\n *\n * @category Data Collection\n */\n actionNameAttribute?: string | undefined\n\n // view options\n /**\n * Allows you to control RUM views creation. See [Override default RUM view names](https://docs.kubesense.ai/real_user_monitoring/browser/advanced_configuration/?tab=npm#override-default-rum-view-names) for further information.\n *\n * @category Data Collection\n */\n trackViewsManually?: boolean | undefined\n\n /**\n * Enables collection of resource events.\n *\n * @category Data Collection\n * @defaultValue true\n */\n trackResources?: boolean | undefined\n\n /**\n * Enables collection of request and response headers on resource events.\n *\n * - `true`: collect {@link DEFAULT_TRACKED_RESOURCE_HEADERS} for all URLs, both directions\n * - `MatchHeader[]`: each {@link MatchHeader} targets a header name, with optional URL scope\n * (`url`), value extraction (`extractor`), and `location`. When `name` is omitted, the matcher\n * applies to {@link DEFAULT_TRACKED_RESOURCE_HEADERS}. By default, both request and response\n * headers are captured; set `location` to `'request'` or `'response'` to restrict to one.\n *\n * Headers whose names match a built-in sensitive-data pattern are always dropped, regardless\n * of the configured matchers. The pattern blocks headers whose names contain: `token`, `cookie`,\n * `secret`, `authorization`, `api-key`, `secret-key`, `access-key`, `app-key`, `client-ip`,\n * `connecting-ip`, `real-ip`, or `forwarded`.\n *\n * @category Data Collection\n * @defaultValue false (disabled)\n * @example\n * // Collect default headers plus custom ones for all URLs\n * trackResourceHeaders: [{}, { name: 'x-request-id' }]\n * @example\n * // Collect default headers from responses only\n * trackResourceHeaders: [{ location: 'response' }]\n * @example\n * // URL-scoped rule: capture specific response headers only for calls to /api\n * trackResourceHeaders: [{ url: /\\/api\\//, name: 'cache-control', location: 'response' }]\n * @example\n * // Extract a partial value from a header\n * trackResourceHeaders: [{ url: /\\/api\\//, name: 'server-timing', extractor: /dur=(\\d+)/, location: 'response' }]\n */\n trackResourceHeaders?: boolean | MatchHeader[] | undefined\n\n /**\n * Enables collection of long task events.\n *\n * @category Data Collection\n * @defaultValue true\n */\n trackLongTasks?: boolean | undefined\n\n /**\n * List of plugins to enable. The plugins API is unstable and experimental, and may change without\n * notice. Please use only plugins provided by KubeSense matching the version of the SDK you are\n * using.\n */\n plugins?: RumPlugin[] | undefined\n\n /**\n * Enables collection of features flags in additional events (e.g. long task, resource, action, vital).\n *\n * @category Data Collection\n */\n trackFeatureFlagsForEvents?: FeatureFlagsForEvents[]\n\n /**\n * The percentage of users profiled. A value between 0 and 100.\n *\n * @category Profiling\n * @defaultValue 0\n */\n profilingSampleRate?: number | undefined\n\n /**\n * A list of GraphQL endpoint URLs to track and enrich with GraphQL-specific metadata.\n *\n * @category Data Collection\n */\n allowedGraphQlUrls?: Array<MatchOption | GraphQlUrlOption> | undefined\n\n /**\n * Enable partial view updates, which reduces bandwidth by sending only changed\n * fields instead of full view events on intermediate updates.\n *\n * Enabled by default when the SDK is loaded from the CDN and no `proxy` is configured.\n * Disabled by default otherwise, because a proxy may not forward the `view_update` event type.\n *\n * @category Beta\n */\n betaEnableViewUpdates?: boolean | undefined\n\n /**\n * Enables collection of WebSocket resource events.\n *\n * Warning: enabling this option introduces WebSocket resource events to the `beforeSend` hook.\n * Their domain context is WebSocket-specific and does not contain the XHR, Fetch, or performance\n * entry fields available on regular resource events. Narrow the context using the existing\n * `isManual` and `isWebSocket` discriminants before accessing those fields.\n *\n * @category Beta\n */\n betaTrackWebSockets?: boolean | undefined\n}\n\n/**\n * Recording quality presets for canvas capture. See {@link RumInitConfiguration.sessionReplayCanvasRecording}.\n *\n * | Preset | Frames per second | Longest side | WebP quality |\n * | -------- | ----------------- | ------------ | ------------ |\n * | `low` | 1 | 600 px | 0.3 |\n * | `medium` | 4 | 1000 px | 0.5 |\n * | `high` | 8 | 1280 px | 0.75 |\n *\n * @example\n * ```ts\n * kubesenseSdk.init({\n * // ...\n * sessionReplayCanvasRecording: {\n * enable: true,\n * quality: CanvasRecordingQuality.MEDIUM,\n * },\n * })\n * ```\n */\nexport const CanvasRecordingQuality = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n} as const\nexport type CanvasRecordingQuality = (typeof CanvasRecordingQuality)[keyof typeof CanvasRecordingQuality]\n\n/**\n * The resolved canvas recording tuning behind each {@link CanvasRecordingQuality} preset.\n */\nexport interface CanvasRecordingConfiguration {\n enable: true\n maxFramesPerSecond: number\n hashingMaxDimension: number\n maxImageDimension: number\n encodeQuality: number\n}\n\nconst CANVAS_RECORDING_QUALITY_PRESETS: Record<CanvasRecordingQuality, Omit<CanvasRecordingConfiguration, 'enable'>> = {\n [CanvasRecordingQuality.LOW]: {\n maxFramesPerSecond: 1,\n hashingMaxDimension: 50,\n maxImageDimension: 600,\n encodeQuality: 0.3,\n },\n [CanvasRecordingQuality.MEDIUM]: {\n maxFramesPerSecond: 4,\n hashingMaxDimension: 100,\n maxImageDimension: 1000,\n encodeQuality: 0.5,\n },\n [CanvasRecordingQuality.HIGH]: {\n maxFramesPerSecond: 8,\n hashingMaxDimension: 100,\n maxImageDimension: 1280,\n encodeQuality: 0.75,\n },\n}\n\n/**\n * Upstream gates canvas recording behind the `session_replay_record_canvas` experimental flag; in\n * this SDK it is a regular option. The preset's values can be overridden one by one, which is how the\n * dashboard's remote configuration tunes them.\n */\nfunction resolveCanvasRecordingConfiguration(\n configuration:\n | {\n enable: boolean\n quality: CanvasRecordingQuality\n maxFramesPerSecond?: number\n maxImageDimension?: number\n hashingMaxDimension?: number\n }\n | undefined\n): CanvasRecordingConfiguration | undefined {\n const preset = configuration && CANVAS_RECORDING_QUALITY_PRESETS[configuration.quality]\n if (!configuration?.enable || !preset) {\n return undefined\n }\n\n return {\n enable: true,\n ...preset,\n maxFramesPerSecond: configuration.maxFramesPerSecond ?? preset.maxFramesPerSecond,\n maxImageDimension: configuration.maxImageDimension ?? preset.maxImageDimension,\n hashingMaxDimension: configuration.hashingMaxDimension ?? preset.hashingMaxDimension,\n }\n}\n\nexport type FeatureFlagsForEvents = 'vital' | 'action' | 'long_task' | 'resource'\n\n/**\n * Function called before a RUM event is sent to KubeSense. See {@link RumInitConfiguration.beforeSend}\n *\n * @param event - The RUM event\n * @param context - The RUM event domain context providing access to native browser data based on the event type (e.g. error, performance entry).\n * @returns true if the event should be sent to KubeSense, false otherwise\n */\nexport type RumBeforeSend = (event: RumEvent, context: RumEventDomainContext) => boolean\n\nexport interface GraphQlUrlOption {\n match: MatchOption\n trackPayload?: boolean\n trackResponseErrors?: boolean\n}\n\nexport interface MatchHeader {\n url?: MatchOption\n name?: MatchOption\n extractor?: RegExp\n location?: 'request' | 'response' | 'any'\n}\n\nexport const RUM_SCHEMA = {\n ...BROWSER_CORE_SCHEMA,\n\n // Required\n applicationId: { type: 'string', required: true },\n\n // Optional strings\n actionNameAttribute: { type: 'string' },\n workerUrl: { type: 'string' },\n subdomain: { type: 'string' },\n\n // Sample rates\n sessionReplaySampleRate: { type: 'percentage', default: 0 },\n traceSampleRate: { type: 'percentage', default: 100 },\n profilingSampleRate: { type: 'percentage', default: 0 },\n\n // Booleans\n compressIntakeRequests: { type: 'boolean', default: false },\n trackUserInteractions: { type: 'boolean', default: true, strict: false },\n trackResources: { type: 'boolean', default: true, strict: false },\n trackLongTasks: { type: 'boolean', default: true, strict: false },\n trackViewsManually: { type: 'boolean', default: false, strict: false },\n betaEnableViewUpdates: { type: 'boolean' },\n betaTrackWebSockets: { type: 'boolean', default: false, strict: false },\n enablePrivacyForActionName: { type: 'boolean', default: true },\n propagateTraceBaggage: { type: 'boolean', default: true },\n startSessionReplayRecordingManually: { type: 'boolean', default: false, strict: false },\n enableRemoteSdkConfiguration: { type: 'boolean', default: false, strict: false },\n // KubeSense extensions\n firstPartyDomains: { type: 'match-option', multiple: true, default: [] as MatchOption[] },\n sessionReplayRoutes: {\n type: 'schema',\n strict: false,\n schema: {\n // Not strict: an unusable entry is dropped rather than failing the whole configuration, so a\n // typo in one route does not take Session Replay down entirely.\n include: { type: 'match-option', multiple: true, strict: false },\n exclude: { type: 'match-option', multiple: true, strict: false },\n },\n },\n\n sessionReplayCanvasRecording: {\n type: 'schema',\n schema: {\n enable: { type: 'boolean', required: true },\n quality: { type: 'enum', values: CanvasRecordingQuality, default: CanvasRecordingQuality.MEDIUM },\n maxFramesPerSecond: { type: 'number', min: 0, max: 8 },\n maxImageDimension: { type: 'number', min: 1, max: 1280 },\n hashingMaxDimension: { type: 'number', min: 1, max: 100 },\n },\n },\n\n // Enums\n defaultPrivacyLevel: {\n type: 'enum',\n values: DefaultPrivacyLevel,\n default: DefaultPrivacyLevel.MASK_USER_INPUT,\n strict: false,\n },\n traceContextInjection: {\n type: 'enum',\n values: TraceContextInjection,\n default: TraceContextInjection.SAMPLED,\n strict: false,\n },\n\n // Arrays\n excludedActivityUrls: { type: 'match-option', multiple: true, default: [] as MatchOption[] },\n allowedTracingUrls: {\n type: 'union',\n multiple: true,\n strict: false,\n default: [] as Array<MatchOption | { match: MatchOption; propagatorTypes: PropagatorType[] }>,\n variants: [\n { type: 'match-option' },\n {\n type: 'schema',\n schema: {\n match: { type: 'match-option', required: true },\n propagatorTypes: {\n type: 'enum',\n values: ['kubesense', 'b3', 'b3multi', 'tracecontext'] as const,\n multiple: true,\n strict: false,\n default: DEFAULT_PROPAGATOR_TYPES,\n },\n },\n },\n ],\n },\n plugins: {\n type: 'schema',\n multiple: true,\n strict: false,\n default: [] as RumPlugin[],\n schema: {\n name: { type: 'string', required: true },\n getConfigurationTelemetry: {\n type: 'function',\n strict: false,\n signature: undefined as RumPlugin['getConfigurationTelemetry'],\n },\n onInit: { type: 'function', strict: false, signature: undefined as RumPlugin['onInit'] },\n onRumStart: { type: 'function', strict: false, signature: undefined as RumPlugin['onRumStart'] },\n },\n },\n trackFeatureFlagsForEvents: {\n type: 'enum',\n values: ['vital', 'action', 'long_task', 'resource'] as const,\n multiple: true,\n strict: false,\n default: [] as FeatureFlagsForEvents[],\n },\n} as const\n\nexport type RumConfiguration = Omit<\n InferredConfig<typeof RUM_SCHEMA>,\n 'allowedTracingUrls' | 'sessionReplayCanvasRecording'\n> & {\n allowedTracingUrls: TracingOption[]\n betaEnableViewUpdates: boolean\n rulePsr: number | undefined\n trackResourceHeaders: MatchHeader[]\n allowedGraphQlUrls: GraphQlUrlOption[]\n remoteConfigurationId: string | undefined\n sessionReplayCanvasRecording: CanvasRecordingConfiguration | undefined\n}\n\n/**\n * Resolves whether partial view updates are enabled. Never enabled when the event bridge is used.\n * Otherwise an explicit `betaEnableViewUpdates` takes precedence, and it defaults to true for CDN\n * users that do not go through a proxy: a proxy may not forward the `view_update` event type yet,\n * and npm users pin an SDK version so they opt in explicitly.\n *\n * The CDN check is temporary, the next step is to default this to true unless `proxy` is set.\n * TODO next major: remove the option.\n */\nfunction isViewUpdatesEnabled(\n explicit: boolean | undefined,\n proxy: InitConfiguration['proxy'],\n sdkName: SdkName | undefined\n): boolean {\n if (canUseEventBridge()) {\n // The bridge replaces the batch transport, and `view_update` events are only created by the\n // batch dispatcher, so partial updates never happen in a WebView. Ignore the explicit value\n // too, otherwise telemetry reports updates that cannot be sent.\n return false\n }\n\n // The Salesforce bundle is a CDN build, but the supported install flow uploads it as a static\n // resource, so publishing a new bundle does not roll those deployments back. Keep them out of\n // the default, they can still opt in explicitly.\n return explicit ?? (__BUILD_ENV__SDK_SETUP__ === 'cdn' && !proxy && sdkName !== 'rum-salesforce')\n}\n\nexport function validateAndBuildRumConfiguration(\n initConfiguration: RumInitConfiguration,\n sdkName?: SdkName\n): RumConfiguration | undefined {\n const config = validateAndBuildConfiguration(\n initConfiguration as unknown as Record<string, unknown>,\n RUM_SCHEMA,\n display\n )\n\n if (!config) {\n return\n }\n\n const allowedTracingUrls = config.allowedTracingUrls.map(normalizeTracingOption).filter(Boolean) as TracingOption[]\n\n if (allowedTracingUrls.length > 0 && !config.service) {\n display.error('Service needs to be configured when tracing is enabled')\n return\n }\n\n const sessionReplayCanvasRecording = resolveCanvasRecordingConfiguration(config.sessionReplayCanvasRecording)\n\n return {\n ...config,\n service: config.service || config.applicationId,\n sessionReplayCanvasRecording,\n betaEnableViewUpdates: isViewUpdatesEnabled(config.betaEnableViewUpdates, config.proxy, sdkName),\n allowedTracingUrls,\n beforeSend: config.beforeSend\n ? (catchUserErrors(config.beforeSend, 'beforeSend threw an error:') as typeof config.beforeSend)\n : undefined,\n rulePsr: isNumber(initConfiguration.traceSampleRate) ? initConfiguration.traceSampleRate / 100 : undefined,\n trackResourceHeaders: validateAndBuildTrackResourceHeaders(initConfiguration),\n allowedGraphQlUrls: validateAndBuildGraphQlOptions(initConfiguration),\n remoteConfigurationId: getRemoteConfigurationId(initConfiguration),\n }\n}\n\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls\n */\nfunction getSelectedTracingPropagators(configuration: RumInitConfiguration): PropagatorType[] {\n const usedTracingPropagators = new Set<PropagatorType>()\n\n if (isNonEmptyArray(configuration.allowedTracingUrls)) {\n configuration.allowedTracingUrls.forEach((option) => {\n normalizeTracingOption(option)?.propagatorTypes.forEach((propagatorType) =>\n usedTracingPropagators.add(propagatorType)\n )\n })\n }\n\n return Array.from(usedTracingPropagators)\n}\n\nfunction normalizeTracingOption(option: unknown): TracingOption | undefined {\n if (isMatchOption(option)) {\n return { match: option, propagatorTypes: DEFAULT_PROPAGATOR_TYPES }\n }\n\n if (\n isIndexableObject(option) &&\n isMatchOption(option.match) &&\n (option.propagatorTypes === null || option.propagatorTypes === undefined || Array.isArray(option.propagatorTypes))\n ) {\n return {\n match: option.match,\n propagatorTypes: option.propagatorTypes || DEFAULT_PROPAGATOR_TYPES,\n }\n }\n}\n\n/**\n * Build GraphQL options from configuration\n */\nfunction validateAndBuildGraphQlOptions(initConfiguration: RumInitConfiguration): GraphQlUrlOption[] {\n if (!initConfiguration.allowedGraphQlUrls) {\n return []\n }\n\n if (!Array.isArray(initConfiguration.allowedGraphQlUrls)) {\n display.warn('allowedGraphQlUrls should be an array')\n return []\n }\n\n const graphQlOptions: GraphQlUrlOption[] = []\n\n initConfiguration.allowedGraphQlUrls.forEach((option) => {\n if (isMatchOption(option)) {\n graphQlOptions.push({ match: option, trackPayload: false, trackResponseErrors: false })\n } else if (isIndexableObject(option) && isMatchOption(option.match)) {\n graphQlOptions.push({\n match: option.match,\n trackPayload: !!option.trackPayload,\n trackResponseErrors: !!option.trackResponseErrors,\n })\n }\n })\n\n return graphQlOptions\n}\n\nconst VALID_HEADER_LOCATIONS = ['request', 'response', 'any']\n\nfunction validateAndBuildTrackResourceHeaders(initConfiguration: RumInitConfiguration): MatchHeader[] {\n const option = initConfiguration.trackResourceHeaders\n\n if (option === undefined || option === false) {\n return []\n }\n\n if (option === true) {\n return DEFAULT_TRACKED_RESOURCE_HEADERS.map((name) => ({ name }))\n }\n\n if (!Array.isArray(option)) {\n display.warn('trackResourceHeaders should be true or an array of MatchHeader')\n return []\n }\n\n if (option.length === 0) {\n display.warn('trackResourceHeaders is an empty array, no headers will be captured')\n return []\n }\n\n const result: MatchHeader[] = []\n\n option.forEach((item, index) => {\n if (!isIndexableObject(item)) {\n display.warn(`trackResourceHeaders[${index}] should be a MatchHeader object`)\n return\n }\n if (item.name !== undefined && !isMatchOption(item.name)) {\n display.warn(`trackResourceHeaders[${index}].name should be a MatchOption`)\n return\n }\n if (item.url !== undefined && !isMatchOption(item.url)) {\n display.warn(`trackResourceHeaders[${index}].url should be a MatchOption`)\n return\n }\n if (item.extractor !== undefined && !(item.extractor instanceof RegExp)) {\n display.warn(`trackResourceHeaders[${index}].extractor should be a RegExp`)\n return\n }\n if (\n item.location !== undefined &&\n (typeof item.location !== 'string' || !VALID_HEADER_LOCATIONS.includes(item.location))\n ) {\n display.warn(`trackResourceHeaders[${index}].location should be 'request', 'response', or 'any'`)\n return\n }\n\n const { name, ...rest } = item\n result.push({\n ...rest,\n ...(name !== undefined ? { name: typeof name === 'string' ? name.toLowerCase() : name } : {}),\n })\n })\n\n return result\n}\n\nfunction hasGraphQlPayloadTracking(allowedGraphQlUrls: RumInitConfiguration['allowedGraphQlUrls']): boolean {\n return (\n isNonEmptyArray(allowedGraphQlUrls) &&\n allowedGraphQlUrls.some((option) => isIndexableObject(option) && option.trackPayload)\n )\n}\n\nfunction hasGraphQlResponseErrorsTracking(allowedGraphQlUrls: RumInitConfiguration['allowedGraphQlUrls']): boolean {\n return (\n isNonEmptyArray(allowedGraphQlUrls) &&\n allowedGraphQlUrls.some((option) => isIndexableObject(option) && option.trackResponseErrors)\n )\n}\n\nfunction getTrackResourceHeadersTelemetryValue(\n trackResourceHeaders: RumInitConfiguration['trackResourceHeaders']\n): 'default_headers' | 'custom' | undefined {\n if (trackResourceHeaders === true) {\n return 'default_headers'\n }\n if (Array.isArray(trackResourceHeaders)) {\n return 'custom'\n }\n}\n\nexport function serializeRumConfiguration(\n configuration: RumInitConfiguration,\n sdkName?: SdkName,\n remoteConfigurationMetadata?: RemoteConfigurationMetadata\n) {\n const baseSerializedConfiguration = serializeConfiguration(configuration)\n\n // `use_` prefix is for telemetry options that track usage of a configuration option as a boolean to avoid capturing customer data\n return {\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n trace_sample_rate: configuration.traceSampleRate,\n trace_context_injection: configuration.traceContextInjection,\n propagate_trace_baggage: configuration.propagateTraceBaggage,\n action_name_attribute: configuration.actionNameAttribute,\n use_allowed_tracing_urls: isNonEmptyArray(configuration.allowedTracingUrls),\n use_allowed_graph_ql_urls: isNonEmptyArray(configuration.allowedGraphQlUrls),\n use_track_graph_ql_payload: hasGraphQlPayloadTracking(configuration.allowedGraphQlUrls),\n use_track_graph_ql_response_errors: hasGraphQlResponseErrorsTracking(configuration.allowedGraphQlUrls),\n selected_tracing_propagators: getSelectedTracingPropagators(configuration),\n default_privacy_level: configuration.defaultPrivacyLevel,\n enable_privacy_for_action_name: configuration.enablePrivacyForActionName,\n use_excluded_activity_urls: isNonEmptyArray(configuration.excludedActivityUrls),\n use_worker_url: !!configuration.workerUrl,\n compress_intake_requests: configuration.compressIntakeRequests,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: configuration.trackUserInteractions,\n track_resources: configuration.trackResources,\n track_long_task: configuration.trackLongTasks,\n plugins: configuration.plugins?.map((plugin) => ({\n name: plugin.name,\n ...plugin.getConfigurationTelemetry?.(),\n })),\n track_feature_flags_for_events: configuration.trackFeatureFlagsForEvents,\n remote_configuration_id: getRemoteConfigurationId(configuration),\n remote_configuration: remoteConfigurationMetadata && {\n last_modified: remoteConfigurationMetadata.lastModified,\n last_synced: remoteConfigurationMetadata.lastSynced,\n first_applied: remoteConfigurationMetadata.firstApplied,\n sync_id: remoteConfigurationMetadata.syncId,\n },\n profiling_sample_rate: configuration.profilingSampleRate,\n use_remote_configuration_proxy: !!configuration.remoteConfigurationProxy,\n // KubeSense extensions: whether the dashboard-managed remote document is in play, whether\n // replay recording is route-scoped, and whether resource classification has an explicit\n // first-party list — all needed to interpret the reported values on the dashboard side.\n enable_remote_sdk_configuration: !!configuration.enableRemoteSdkConfiguration,\n use_session_replay_routes:\n !!configuration.sessionReplayRoutes &&\n (isNonEmptyArray(configuration.sessionReplayRoutes.include) ||\n isNonEmptyArray(configuration.sessionReplayRoutes.exclude)),\n use_first_party_domains: isNonEmptyArray(configuration.firstPartyDomains),\n track_resource_headers: getTrackResourceHeadersTelemetryValue(configuration.trackResourceHeaders),\n beta_enable_view_updates: isViewUpdatesEnabled(configuration.betaEnableViewUpdates, configuration.proxy, sdkName),\n beta_track_web_sockets: configuration.betaTrackWebSockets,\n ...baseSerializedConfiguration,\n } satisfies RawTelemetryConfiguration\n}\n"],"mappings":"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"}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
const require_remoteConfigurationCache = require("./remoteConfigurationCache.js");
|
|
2
|
+
const require_remoteConfiguration = require("./remoteConfiguration.js");
|
|
3
|
+
const require_configuration = require("./configuration.js");
|
|
4
|
+
const require_remoteSdkConfiguration = require("./remoteSdkConfiguration.js");
|
|
5
|
+
const require_sessionReplayRoutes = require("./sessionReplayRoutes.js");
|
|
6
|
+
exports.CACHE_KEY_PREFIX = require_remoteConfigurationCache.CACHE_KEY_PREFIX;
|
|
7
|
+
exports.CACHE_STATUS_TO_METRIC_MAP = require_remoteConfigurationCache.CACHE_STATUS_TO_METRIC_MAP;
|
|
8
|
+
exports.CanvasRecordingQuality = require_configuration.CanvasRecordingQuality;
|
|
9
|
+
exports.DEFAULT_PROPAGATOR_TYPES = require_configuration.DEFAULT_PROPAGATOR_TYPES;
|
|
10
|
+
exports.DEFAULT_TRACKED_RESOURCE_HEADERS = require_configuration.DEFAULT_TRACKED_RESOURCE_HEADERS;
|
|
11
|
+
exports.RUM_SCHEMA = require_configuration.RUM_SCHEMA;
|
|
12
|
+
exports.applyCachedSdkConfiguration = require_remoteSdkConfiguration.applyCachedSdkConfiguration;
|
|
13
|
+
exports.applyRemoteConfiguration = require_remoteConfiguration.applyRemoteConfiguration;
|
|
14
|
+
exports.applySdkConfiguration = require_remoteSdkConfiguration.applySdkConfiguration;
|
|
15
|
+
exports.buildCacheKey = require_remoteConfigurationCache.buildCacheKey;
|
|
16
|
+
exports.buildEndpoint = require_remoteConfiguration.buildEndpoint;
|
|
17
|
+
exports.createConfigurationCache = require_remoteConfigurationCache.createConfigurationCache;
|
|
18
|
+
exports.fetchAndApplyRemoteConfiguration = require_remoteConfiguration.fetchAndApplyRemoteConfiguration;
|
|
19
|
+
exports.fetchRemoteConfiguration = require_remoteConfiguration.fetchRemoteConfiguration;
|
|
20
|
+
exports.getRemoteConfiguration = require_remoteConfiguration.getRemoteConfiguration;
|
|
21
|
+
exports.getRemoteConfigurationId = require_remoteConfiguration.getRemoteConfigurationId;
|
|
22
|
+
exports.getRoutePath = require_sessionReplayRoutes.getRoutePath;
|
|
23
|
+
exports.initMetrics = require_remoteConfiguration.initMetrics;
|
|
24
|
+
exports.isRouteRecordable = require_sessionReplayRoutes.isRouteRecordable;
|
|
25
|
+
exports.scheduleSdkConfigurationRefresh = require_remoteSdkConfiguration.scheduleSdkConfigurationRefresh;
|
|
26
|
+
exports.serializeRumConfiguration = require_configuration.serializeRumConfiguration;
|
|
27
|
+
exports.validateAndBuildRumConfiguration = require_configuration.validateAndBuildRumConfiguration;
|
|
@@ -1,159 +1,145 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/domain/configuration/jsonPathParser.ts
|
|
2
2
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
* Extract selectors from a simple JSON path expression, return [] for an invalid path
|
|
18
|
-
*
|
|
19
|
-
* Supports:
|
|
20
|
-
* - Dot notation: `foo.bar.baz`
|
|
21
|
-
* - Bracket notation: `['foo']["bar"]`
|
|
22
|
-
* - Array indices: `items[0]`, `data['users'][1]`
|
|
23
|
-
*
|
|
24
|
-
* Examples:
|
|
25
|
-
* parseJsonPath("['foo'].bar[12]")
|
|
26
|
-
* => ['foo', 'bar', '12']
|
|
27
|
-
*
|
|
28
|
-
* parseJsonPath("['foo")
|
|
29
|
-
* => []
|
|
30
|
-
*/
|
|
3
|
+
* Extract selectors from a simple JSON path expression, return [] for an invalid path
|
|
4
|
+
*
|
|
5
|
+
* Supports:
|
|
6
|
+
* - Dot notation: `foo.bar.baz`
|
|
7
|
+
* - Bracket notation: `['foo']["bar"]`
|
|
8
|
+
* - Array indices: `items[0]`, `data['users'][1]`
|
|
9
|
+
*
|
|
10
|
+
* Examples:
|
|
11
|
+
* parseJsonPath("['foo'].bar[12]")
|
|
12
|
+
* => ['foo', 'bar', '12']
|
|
13
|
+
*
|
|
14
|
+
* parseJsonPath("['foo")
|
|
15
|
+
* => []
|
|
16
|
+
*/
|
|
31
17
|
function parseJsonPath(path) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
selectors.push(currentSelector);
|
|
61
|
-
currentSelector = '';
|
|
62
|
-
}
|
|
63
|
-
else if (currentToken === 12 /* Token.ESCAPE_SEQUENCE_CHAR */) {
|
|
64
|
-
parsingContext.escapeSequence = parsingContext.escapeSequence ? `${parsingContext.escapeSequence}${char}` : char;
|
|
65
|
-
}
|
|
66
|
-
else if (currentToken === 8 /* Token.QUOTE_START */) {
|
|
67
|
-
parsingContext.quote = char;
|
|
68
|
-
}
|
|
69
|
-
else if (currentToken === 9 /* Token.QUOTE_END */) {
|
|
70
|
-
parsingContext.quote = undefined;
|
|
71
|
-
}
|
|
72
|
-
previousToken = currentToken;
|
|
73
|
-
}
|
|
74
|
-
if (!ALLOWED_NEXT_TOKENS[previousToken].includes(1 /* Token.END */)) {
|
|
75
|
-
return [];
|
|
76
|
-
}
|
|
77
|
-
if (currentSelector !== '') {
|
|
78
|
-
selectors.push(currentSelector);
|
|
79
|
-
}
|
|
80
|
-
return selectors;
|
|
18
|
+
const selectors = [];
|
|
19
|
+
let previousToken = 0;
|
|
20
|
+
let currentToken;
|
|
21
|
+
const parsingContext = {
|
|
22
|
+
quote: void 0,
|
|
23
|
+
escapeSequence: void 0
|
|
24
|
+
};
|
|
25
|
+
let currentSelector = "";
|
|
26
|
+
for (const char of path) {
|
|
27
|
+
currentToken = ALLOWED_NEXT_TOKENS[previousToken].find((token) => TOKEN_PREDICATE[token](char, parsingContext));
|
|
28
|
+
if (!currentToken) return [];
|
|
29
|
+
if (parsingContext.escapeSequence !== void 0 && currentToken !== 12) {
|
|
30
|
+
if (!isValidEscapeSequence(parsingContext.escapeSequence)) return [];
|
|
31
|
+
currentSelector += resolveEscapeSequence(parsingContext.escapeSequence);
|
|
32
|
+
parsingContext.escapeSequence = void 0;
|
|
33
|
+
}
|
|
34
|
+
if (ALLOWED_SELECTOR_TOKENS.includes(currentToken)) currentSelector += char;
|
|
35
|
+
else if (ALLOWED_SELECTOR_DELIMITER_TOKENS.includes(currentToken) && currentSelector !== "") {
|
|
36
|
+
selectors.push(currentSelector);
|
|
37
|
+
currentSelector = "";
|
|
38
|
+
} else if (currentToken === 12) parsingContext.escapeSequence = parsingContext.escapeSequence ? `${parsingContext.escapeSequence}${char}` : char;
|
|
39
|
+
else if (currentToken === 8) parsingContext.quote = char;
|
|
40
|
+
else if (currentToken === 9) parsingContext.quote = void 0;
|
|
41
|
+
previousToken = currentToken;
|
|
42
|
+
}
|
|
43
|
+
if (!ALLOWED_NEXT_TOKENS[previousToken].includes(1)) return [];
|
|
44
|
+
if (currentSelector !== "") selectors.push(currentSelector);
|
|
45
|
+
return selectors;
|
|
81
46
|
}
|
|
82
47
|
const NAME_SHORTHAND_FIRST_CHAR_REGEX = /[a-zA-Z_$]/;
|
|
83
48
|
const NAME_SHORTHAND_CHAR_REGEX = /[a-zA-Z0-9_$]/;
|
|
84
49
|
const DIGIT_REGEX = /[0-9]/;
|
|
85
50
|
const UNICODE_CHAR_REGEX = /[a-fA-F0-9]/;
|
|
86
|
-
const QUOTE_CHARS = '\
|
|
51
|
+
const QUOTE_CHARS = "'\"";
|
|
87
52
|
const TOKEN_PREDICATE = {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
else if (parsingContext.escapeSequence.startsWith('u') && parsingContext.escapeSequence.length < 5) {
|
|
107
|
-
return UNICODE_CHAR_REGEX.test(char);
|
|
108
|
-
}
|
|
109
|
-
return false;
|
|
110
|
-
},
|
|
53
|
+
[0]: () => false,
|
|
54
|
+
[1]: () => false,
|
|
55
|
+
[2]: (char) => NAME_SHORTHAND_FIRST_CHAR_REGEX.test(char),
|
|
56
|
+
[3]: (char) => NAME_SHORTHAND_CHAR_REGEX.test(char),
|
|
57
|
+
[4]: (char) => char === ".",
|
|
58
|
+
[5]: (char) => char === "[",
|
|
59
|
+
[6]: (char) => char === "]",
|
|
60
|
+
[7]: (char) => DIGIT_REGEX.test(char),
|
|
61
|
+
[8]: (char) => QUOTE_CHARS.includes(char),
|
|
62
|
+
[9]: (char, parsingContext) => char === parsingContext.quote,
|
|
63
|
+
[10]: () => true,
|
|
64
|
+
[11]: (char) => char === "\\",
|
|
65
|
+
[12]: (char, parsingContext) => {
|
|
66
|
+
if (parsingContext.escapeSequence === void 0) return `${parsingContext.quote}/\\bfnrtu`.includes(char);
|
|
67
|
+
else if (parsingContext.escapeSequence.startsWith("u") && parsingContext.escapeSequence.length < 5) return UNICODE_CHAR_REGEX.test(char);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
111
70
|
};
|
|
112
71
|
const ALLOWED_NEXT_TOKENS = {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
72
|
+
[0]: [2, 5],
|
|
73
|
+
[1]: [],
|
|
74
|
+
[2]: [
|
|
75
|
+
3,
|
|
76
|
+
4,
|
|
77
|
+
5,
|
|
78
|
+
1
|
|
79
|
+
],
|
|
80
|
+
[3]: [
|
|
81
|
+
3,
|
|
82
|
+
4,
|
|
83
|
+
5,
|
|
84
|
+
1
|
|
85
|
+
],
|
|
86
|
+
[4]: [2],
|
|
87
|
+
[5]: [8, 7],
|
|
88
|
+
[6]: [
|
|
89
|
+
4,
|
|
90
|
+
5,
|
|
91
|
+
1
|
|
92
|
+
],
|
|
93
|
+
[7]: [7, 6],
|
|
94
|
+
[8]: [
|
|
95
|
+
11,
|
|
96
|
+
9,
|
|
97
|
+
10
|
|
98
|
+
],
|
|
99
|
+
[9]: [6],
|
|
100
|
+
[10]: [
|
|
101
|
+
11,
|
|
102
|
+
9,
|
|
103
|
+
10
|
|
104
|
+
],
|
|
105
|
+
[11]: [12],
|
|
106
|
+
[12]: [
|
|
107
|
+
12,
|
|
108
|
+
11,
|
|
109
|
+
9,
|
|
110
|
+
10
|
|
111
|
+
]
|
|
126
112
|
};
|
|
127
|
-
// foo['bar\n'][12]
|
|
128
|
-
// ^^ ^ ^^ ^
|
|
129
113
|
const ALLOWED_SELECTOR_TOKENS = [
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
114
|
+
2,
|
|
115
|
+
3,
|
|
116
|
+
7,
|
|
117
|
+
10
|
|
118
|
+
];
|
|
119
|
+
const ALLOWED_SELECTOR_DELIMITER_TOKENS = [
|
|
120
|
+
4,
|
|
121
|
+
5,
|
|
122
|
+
6
|
|
134
123
|
];
|
|
135
|
-
// foo.bar['qux']
|
|
136
|
-
// ^ ^ ^
|
|
137
|
-
const ALLOWED_SELECTOR_DELIMITER_TOKENS = [4 /* Token.DOT */, 5 /* Token.BRACKET_START */, 6 /* Token.BRACKET_END */];
|
|
138
124
|
function isValidEscapeSequence(escapeSequence) {
|
|
139
|
-
|
|
125
|
+
return "\"'/\\bfnrt".includes(escapeSequence) || escapeSequence.startsWith("u") && escapeSequence.length === 5;
|
|
140
126
|
}
|
|
141
127
|
const ESCAPED_CHARS = {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
128
|
+
"\"": "\"",
|
|
129
|
+
"'": "'",
|
|
130
|
+
"/": "/",
|
|
131
|
+
"\\": "\\",
|
|
132
|
+
b: "\b",
|
|
133
|
+
f: "\f",
|
|
134
|
+
n: "\n",
|
|
135
|
+
r: "\r",
|
|
136
|
+
t: " "
|
|
151
137
|
};
|
|
152
138
|
function resolveEscapeSequence(escapeSequence) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
return String.fromCharCode(parseInt(escapeSequence.slice(1), 16));
|
|
156
|
-
}
|
|
157
|
-
return ESCAPED_CHARS[escapeSequence];
|
|
139
|
+
if (escapeSequence.startsWith("u")) return String.fromCharCode(parseInt(escapeSequence.slice(1), 16));
|
|
140
|
+
return ESCAPED_CHARS[escapeSequence];
|
|
158
141
|
}
|
|
142
|
+
//#endregion
|
|
143
|
+
exports.parseJsonPath = parseJsonPath;
|
|
144
|
+
|
|
159
145
|
//# sourceMappingURL=jsonPathParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonPathParser.js","sourceRoot":"","sources":["../../../src/domain/configuration/jsonPathParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsonPathParser.js","names":[],"sources":["../../../src/domain/configuration/jsonPathParser.ts"],"sourcesContent":["/**\n * Terminology inspired from https://www.rfc-editor.org/rfc/rfc9535.html\n *\n * jsonpath-query = segment*\n * segment = .name-shorthand / bracketed-selection\n * bracketed-selection = ['name-selector'] / [\"name-selector\"] / [index-selector]\n *\n * Useful references:\n * - https://goessner.net/articles/JsonPath/\n * - https://jsonpath.com/\n * - https://github.com/jsonpath-standard\n */\n\ninterface ParsingContext {\n quote: string | undefined\n escapeSequence: string | undefined\n}\n\n/**\n * Extract selectors from a simple JSON path expression, return [] for an invalid path\n *\n * Supports:\n * - Dot notation: `foo.bar.baz`\n * - Bracket notation: `['foo'][\"bar\"]`\n * - Array indices: `items[0]`, `data['users'][1]`\n *\n * Examples:\n * parseJsonPath(\"['foo'].bar[12]\")\n * => ['foo', 'bar', '12']\n *\n * parseJsonPath(\"['foo\")\n * => []\n */\nexport function parseJsonPath(path: string): string[] {\n const selectors: string[] = []\n let previousToken = Token.START\n let currentToken: Token | undefined\n const parsingContext: ParsingContext = { quote: undefined, escapeSequence: undefined }\n let currentSelector = ''\n for (const char of path) {\n // find which kind of token is this char\n currentToken = ALLOWED_NEXT_TOKENS[previousToken].find((token) => TOKEN_PREDICATE[token](char, parsingContext))\n if (!currentToken) {\n return []\n }\n if (parsingContext.escapeSequence !== undefined && currentToken !== Token.ESCAPE_SEQUENCE_CHAR) {\n if (!isValidEscapeSequence(parsingContext.escapeSequence)) {\n return []\n }\n currentSelector += resolveEscapeSequence(parsingContext.escapeSequence)\n parsingContext.escapeSequence = undefined\n }\n if (ALLOWED_SELECTOR_TOKENS.includes(currentToken)) {\n // buffer the char if it belongs to the selector\n // ex: foo['bar']\n // ^ ^\n currentSelector += char\n } else if (ALLOWED_SELECTOR_DELIMITER_TOKENS.includes(currentToken) && currentSelector !== '') {\n // close the current path part if we have reach a path part delimiter\n // ex: foo.bar['qux']\n // ^ ^ ^\n selectors.push(currentSelector)\n currentSelector = ''\n } else if (currentToken === Token.ESCAPE_SEQUENCE_CHAR) {\n parsingContext.escapeSequence = parsingContext.escapeSequence ? `${parsingContext.escapeSequence}${char}` : char\n } else if (currentToken === Token.QUOTE_START) {\n parsingContext.quote = char\n } else if (currentToken === Token.QUOTE_END) {\n parsingContext.quote = undefined\n }\n previousToken = currentToken\n }\n if (!ALLOWED_NEXT_TOKENS[previousToken].includes(Token.END)) {\n return []\n }\n if (currentSelector !== '') {\n selectors.push(currentSelector)\n }\n return selectors\n}\n\n/**\n * List of all tokens in the path\n *\n * @example foo.bar['qu\\'x'][0]\n * | | | | |\n * Token sequence: | | | | |\n * 1. START (before first char) <-+ | | | |\n * 2. NAME_SHORTHAND_FIRST_CHAR: f | | | |\n * 3. NAME_SHORTHAND_CHAR: oo | | | |\n * 4. DOT: . <------------------------+ | | |\n * 5. NAME_SHORTHAND_FIRST_CHAR: b | | |\n * 6. NAME_SHORTHAND_CHAR: ar | | |\n * 7. BRACKET_START: [ <------------------+ | |\n * 8. QUOTE_START: ' | |\n * 9. NAME_SELECTOR_CHAR: qu | |\n * 10. ESCAPE: \\ | |\n * 11. ESCAPABLE_CHAR: ' | |\n * 12. NAME_SELECTOR_CHAR: x | |\n * 13. QUOTE_END: ' | |\n * 14. BRACKET_END: ] | |\n * 15. BRACKET_START: [ <--------------------------+ |\n * 16. DIGIT: 0 |\n * 17. BRACKET_END: ] |\n * 18. END (after last char) <------------------------+\n */\nconst enum Token {\n START,\n END,\n\n NAME_SHORTHAND_FIRST_CHAR,\n NAME_SHORTHAND_CHAR,\n DOT,\n\n BRACKET_START,\n BRACKET_END,\n DIGIT,\n\n QUOTE_START,\n QUOTE_END,\n NAME_SELECTOR_CHAR,\n ESCAPE,\n ESCAPE_SEQUENCE_CHAR,\n}\n\nconst NAME_SHORTHAND_FIRST_CHAR_REGEX = /[a-zA-Z_$]/\nconst NAME_SHORTHAND_CHAR_REGEX = /[a-zA-Z0-9_$]/\nconst DIGIT_REGEX = /[0-9]/\nconst UNICODE_CHAR_REGEX = /[a-fA-F0-9]/\nconst QUOTE_CHARS = '\\'\"'\n\nconst TOKEN_PREDICATE: { [token in Token]: (char: string, parsingContext: ParsingContext) => boolean } = {\n // no char should match to START or END\n [Token.START]: () => false,\n [Token.END]: () => false,\n\n [Token.NAME_SHORTHAND_FIRST_CHAR]: (char) => NAME_SHORTHAND_FIRST_CHAR_REGEX.test(char),\n [Token.NAME_SHORTHAND_CHAR]: (char) => NAME_SHORTHAND_CHAR_REGEX.test(char),\n [Token.DOT]: (char) => char === '.',\n\n [Token.BRACKET_START]: (char) => char === '[',\n [Token.BRACKET_END]: (char) => char === ']',\n [Token.DIGIT]: (char) => DIGIT_REGEX.test(char),\n\n [Token.QUOTE_START]: (char) => QUOTE_CHARS.includes(char),\n [Token.QUOTE_END]: (char, parsingContext) => char === parsingContext.quote,\n [Token.NAME_SELECTOR_CHAR]: () => true, // any char can be used in name selector\n [Token.ESCAPE]: (char) => char === '\\\\',\n [Token.ESCAPE_SEQUENCE_CHAR]: (char, parsingContext) => {\n if (parsingContext.escapeSequence === undefined) {\n // see https://www.rfc-editor.org/rfc/rfc9535.html#name-semantics-3\n return `${parsingContext.quote}/\\\\bfnrtu`.includes(char)\n } else if (parsingContext.escapeSequence.startsWith('u') && parsingContext.escapeSequence.length < 5) {\n return UNICODE_CHAR_REGEX.test(char)\n }\n return false\n },\n}\n\nconst ALLOWED_NEXT_TOKENS: { [token in Token]: Token[] } = {\n [Token.START]: [Token.NAME_SHORTHAND_FIRST_CHAR, Token.BRACKET_START],\n [Token.END]: [],\n\n [Token.NAME_SHORTHAND_FIRST_CHAR]: [Token.NAME_SHORTHAND_CHAR, Token.DOT, Token.BRACKET_START, Token.END],\n [Token.NAME_SHORTHAND_CHAR]: [Token.NAME_SHORTHAND_CHAR, Token.DOT, Token.BRACKET_START, Token.END],\n [Token.DOT]: [Token.NAME_SHORTHAND_FIRST_CHAR],\n\n [Token.BRACKET_START]: [Token.QUOTE_START, Token.DIGIT],\n [Token.BRACKET_END]: [Token.DOT, Token.BRACKET_START, Token.END],\n [Token.DIGIT]: [Token.DIGIT, Token.BRACKET_END],\n\n [Token.QUOTE_START]: [Token.ESCAPE, Token.QUOTE_END, Token.NAME_SELECTOR_CHAR],\n [Token.QUOTE_END]: [Token.BRACKET_END],\n [Token.NAME_SELECTOR_CHAR]: [Token.ESCAPE, Token.QUOTE_END, Token.NAME_SELECTOR_CHAR],\n [Token.ESCAPE]: [Token.ESCAPE_SEQUENCE_CHAR],\n [Token.ESCAPE_SEQUENCE_CHAR]: [Token.ESCAPE_SEQUENCE_CHAR, Token.ESCAPE, Token.QUOTE_END, Token.NAME_SELECTOR_CHAR],\n}\n\n// foo['bar\\n'][12]\n// ^^ ^ ^^ ^\nconst ALLOWED_SELECTOR_TOKENS = [\n Token.NAME_SHORTHAND_FIRST_CHAR,\n Token.NAME_SHORTHAND_CHAR,\n Token.DIGIT,\n Token.NAME_SELECTOR_CHAR,\n]\n\n// foo.bar['qux']\n// ^ ^ ^\nconst ALLOWED_SELECTOR_DELIMITER_TOKENS = [Token.DOT, Token.BRACKET_START, Token.BRACKET_END]\n\nfunction isValidEscapeSequence(escapeSequence: string): boolean {\n return '\"\\'/\\\\bfnrt'.includes(escapeSequence) || (escapeSequence.startsWith('u') && escapeSequence.length === 5)\n}\n\nconst ESCAPED_CHARS: { [key: string]: string } = {\n '\"': '\"',\n \"'\": \"'\",\n '/': '/',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n}\n\nfunction resolveEscapeSequence(escapeSequence: string): string {\n if (escapeSequence.startsWith('u')) {\n // build Unicode char from code\n return String.fromCharCode(parseInt(escapeSequence.slice(1), 16))\n }\n return ESCAPED_CHARS[escapeSequence]\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { createContextManager, Context } from '@kubesense/kubesense-browser-core';
|
|
2
2
|
import type { RumInitConfiguration } from './configuration';
|
|
3
3
|
import type { RumSdkConfig, DynamicOption } from './remoteConfiguration.types';
|
|
4
|
+
import type { RemoteConfigurationMetadata } from './remoteConfigurationCache';
|
|
4
5
|
export type RemoteConfiguration = RumSdkConfig;
|
|
5
6
|
export type RumRemoteConfiguration = Exclude<RemoteConfiguration['rum'], undefined>;
|
|
6
7
|
interface SupportedContextManagers {
|
|
@@ -9,9 +10,11 @@ interface SupportedContextManagers {
|
|
|
9
10
|
}
|
|
10
11
|
export interface RemoteConfigurationMetrics extends Context {
|
|
11
12
|
fetch: RemoteConfigurationMetricCounters;
|
|
13
|
+
cache?: RemoteConfigurationMetricCounters;
|
|
12
14
|
cookie?: RemoteConfigurationMetricCounters;
|
|
13
15
|
dom?: RemoteConfigurationMetricCounters;
|
|
14
16
|
js?: RemoteConfigurationMetricCounters;
|
|
17
|
+
localStorage?: RemoteConfigurationMetricCounters;
|
|
15
18
|
}
|
|
16
19
|
interface RemoteConfigurationMetricCounters {
|
|
17
20
|
success?: number;
|
|
@@ -20,20 +23,30 @@ interface RemoteConfigurationMetricCounters {
|
|
|
20
23
|
[key: string]: number | undefined;
|
|
21
24
|
}
|
|
22
25
|
export declare function fetchAndApplyRemoteConfiguration(initConfiguration: RumInitConfiguration, supportedContextManagers: SupportedContextManagers): Promise<RumInitConfiguration | undefined>;
|
|
23
|
-
export declare function applyRemoteConfiguration(initConfiguration: RumInitConfiguration,
|
|
24
|
-
[key: string]: unknown;
|
|
25
|
-
}, supportedContextManagers: SupportedContextManagers, metrics: ReturnType<typeof initMetrics>): RumInitConfiguration;
|
|
26
|
+
export declare function applyRemoteConfiguration(initConfiguration: RumInitConfiguration, remoteConfiguration: RemoteConfiguration, supportedContextManagers: SupportedContextManagers, metrics: ReturnType<typeof initMetrics>): RumInitConfiguration;
|
|
26
27
|
export declare function initMetrics(): {
|
|
27
28
|
get: () => RemoteConfigurationMetrics;
|
|
28
|
-
increment: (metricName: "fetch" | DynamicOption["strategy"], type: keyof RemoteConfigurationMetricCounters) => void;
|
|
29
|
+
increment: (metricName: "fetch" | "cache" | DynamicOption["strategy"], type: keyof RemoteConfigurationMetricCounters) => void;
|
|
29
30
|
};
|
|
30
31
|
type FetchRemoteConfigurationResult = {
|
|
31
32
|
ok: true;
|
|
32
|
-
value:
|
|
33
|
+
value: RemoteConfiguration;
|
|
34
|
+
lastModified?: number;
|
|
33
35
|
} | {
|
|
34
36
|
ok: false;
|
|
35
37
|
error: Error;
|
|
36
38
|
};
|
|
37
39
|
export declare function fetchRemoteConfiguration(configuration: RumInitConfiguration): Promise<FetchRemoteConfigurationResult>;
|
|
40
|
+
export declare function getRemoteConfigurationId(configuration: RumInitConfiguration): string | undefined;
|
|
38
41
|
export declare function buildEndpoint(configuration: RumInitConfiguration): string;
|
|
42
|
+
export interface ResolvedRemoteConfiguration {
|
|
43
|
+
initConfiguration: RumInitConfiguration;
|
|
44
|
+
/** Only set when a cached configuration was applied, and reported on configuration telemetry. */
|
|
45
|
+
metadata?: RemoteConfigurationMetadata;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns `undefined` when RUM must not start, which only happens with `required: true` and no
|
|
49
|
+
* usable cache entry.
|
|
50
|
+
*/
|
|
51
|
+
export declare function getRemoteConfiguration(initConfiguration: RumInitConfiguration, supportedContextManagers: SupportedContextManagers): ResolvedRemoteConfiguration | undefined;
|
|
39
52
|
export {};
|