@safaricom-mxl/web-sdk 0.0.18 → 0.0.20
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/DATA_EXPORT.md +17 -1
- package/REACT.md +6 -6
- package/TANSTACK.md +92 -0
- package/dist/api-logs/api/LogAPI/LogAPI.cjs.map +1 -1
- package/dist/api-logs/api/LogAPI/LogAPI.js.map +1 -1
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.cjs.map +1 -1
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.js.map +1 -1
- package/dist/api-page/api/PageAPI/PageAPI.cjs.map +1 -1
- package/dist/api-page/api/PageAPI/PageAPI.js.map +1 -1
- package/dist/api-page/manager/ProxyPageManager/ProxyPageManager.cjs.map +1 -1
- package/dist/api-page/manager/ProxyPageManager/ProxyPageManager.js.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.cjs.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.js.map +1 -1
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.cjs.map +1 -1
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.d.cts.map +1 -1
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.d.ts.map +1 -1
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.js.map +1 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.cjs.map +1 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.js.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.cjs.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.d.cts.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.d.ts.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.js.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.cjs.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.d.cts.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.d.ts.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.js.map +1 -1
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.cjs.map +1 -1
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.d.cts.map +1 -1
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.d.ts.map +1 -1
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.js.map +1 -1
- package/dist/api-users/api/UserAPI/UserAPI.cjs.map +1 -1
- package/dist/api-users/api/UserAPI/UserAPI.js.map +1 -1
- package/dist/api-users/manager/ProxyUserManager/ProxyUserManager.cjs.map +1 -1
- package/dist/api-users/manager/ProxyUserManager/ProxyUserManager.js.map +1 -1
- package/dist/constants/attributes.cjs.map +1 -1
- package/dist/constants/attributes.js.map +1 -1
- package/dist/exporters/MXLLogExporter/MXLLogExporter.cjs +2 -2
- package/dist/exporters/MXLLogExporter/MXLLogExporter.cjs.map +1 -1
- package/dist/exporters/MXLLogExporter/MXLLogExporter.d.cts +1 -1
- package/dist/exporters/MXLLogExporter/MXLLogExporter.d.cts.map +1 -1
- package/dist/exporters/MXLLogExporter/MXLLogExporter.d.ts +1 -1
- package/dist/exporters/MXLLogExporter/MXLLogExporter.d.ts.map +1 -1
- package/dist/exporters/MXLLogExporter/MXLLogExporter.js +2 -2
- package/dist/exporters/MXLLogExporter/MXLLogExporter.js.map +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.cjs +2 -2
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.cjs.map +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.d.cts +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.d.ts +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.js +2 -2
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.js.map +1 -1
- package/dist/exporters/MXLLogExporter/types.d.cts +1 -1
- package/dist/exporters/MXLLogExporter/types.d.cts.map +1 -1
- package/dist/exporters/MXLLogExporter/types.d.ts +1 -1
- package/dist/exporters/MXLLogExporter/types.d.ts.map +1 -1
- package/dist/exporters/MXLLogExporter/utils.cjs +1 -1
- package/dist/exporters/MXLLogExporter/utils.cjs.map +1 -1
- package/dist/exporters/MXLLogExporter/utils.d.cts +1 -1
- package/dist/exporters/MXLLogExporter/utils.d.cts.map +1 -1
- package/dist/exporters/MXLLogExporter/utils.d.ts +1 -1
- package/dist/exporters/MXLLogExporter/utils.d.ts.map +1 -1
- package/dist/exporters/MXLLogExporter/utils.js +2 -2
- package/dist/exporters/MXLLogExporter/utils.js.map +1 -1
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.cjs +2 -2
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.cjs.map +1 -1
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.d.cts +1 -1
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.d.cts.map +1 -1
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.d.ts +1 -1
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.d.ts.map +1 -1
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.js +2 -2
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.js.map +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.cjs +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.cjs.map +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.js +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.js.map +1 -1
- package/dist/exporters/MXLTraceExporter/types.d.cts +1 -1
- package/dist/exporters/MXLTraceExporter/types.d.cts.map +1 -1
- package/dist/exporters/MXLTraceExporter/types.d.ts +1 -1
- package/dist/exporters/MXLTraceExporter/types.d.ts.map +1 -1
- package/dist/exporters/MXLTraceExporter/utils.cjs +1 -1
- package/dist/exporters/MXLTraceExporter/utils.cjs.map +1 -1
- package/dist/exporters/MXLTraceExporter/utils.d.cts +1 -1
- package/dist/exporters/MXLTraceExporter/utils.d.cts.map +1 -1
- package/dist/exporters/MXLTraceExporter/utils.d.ts +1 -1
- package/dist/exporters/MXLTraceExporter/utils.d.ts.map +1 -1
- package/dist/exporters/MXLTraceExporter/utils.js +2 -2
- package/dist/exporters/MXLTraceExporter/utils.js.map +1 -1
- package/dist/exporters/otlpBrowserFetchExportDelegate.d.cts +1 -1
- package/dist/exporters/otlpBrowserFetchExportDelegate.d.ts +1 -1
- package/dist/exporters/utils.cjs +2 -2
- package/dist/exporters/utils.cjs.map +1 -1
- package/dist/exporters/utils.d.cts +2 -2
- package/dist/exporters/utils.d.cts.map +1 -1
- package/dist/exporters/utils.d.ts +2 -2
- package/dist/exporters/utils.d.ts.map +1 -1
- package/dist/exporters/utils.js +2 -2
- package/dist/exporters/utils.js.map +1 -1
- package/dist/index.cjs +5 -0
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.cjs.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.js.map +1 -1
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.js.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.cjs.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.js.map +1 -1
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.cjs +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.js +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.cjs +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.js +1 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.cjs +51 -207
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.cts +12 -36
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.ts +12 -36
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.js +52 -204
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.js.map +1 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/types.d.cts +15 -2
- package/dist/instrumentations/replay/ReplayInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/types.d.ts +15 -2
- package/dist/instrumentations/replay/ReplayInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.cjs +1 -1
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.cjs.map +1 -1
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.js +1 -1
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.js.map +1 -1
- package/dist/instrumentations/replay/events/capture/console.cjs +48 -0
- package/dist/instrumentations/replay/events/capture/console.cjs.map +1 -0
- package/dist/instrumentations/replay/events/capture/console.d.cts +7 -0
- package/dist/instrumentations/replay/events/capture/console.d.cts.map +1 -0
- package/dist/instrumentations/replay/events/capture/console.d.ts +7 -0
- package/dist/instrumentations/replay/events/capture/console.d.ts.map +1 -0
- package/dist/instrumentations/replay/events/capture/console.js +47 -0
- package/dist/instrumentations/replay/events/capture/console.js.map +1 -0
- package/dist/instrumentations/replay/events/capture/errors.cjs +41 -0
- package/dist/instrumentations/replay/events/capture/errors.cjs.map +1 -0
- package/dist/instrumentations/replay/events/capture/errors.d.cts +7 -0
- package/dist/instrumentations/replay/events/capture/errors.d.cts.map +1 -0
- package/dist/instrumentations/replay/events/capture/errors.d.ts +7 -0
- package/dist/instrumentations/replay/events/capture/errors.d.ts.map +1 -0
- package/dist/instrumentations/replay/events/capture/errors.js +40 -0
- package/dist/instrumentations/replay/events/capture/errors.js.map +1 -0
- package/dist/instrumentations/replay/events/capture/interactions.cjs +41 -0
- package/dist/instrumentations/replay/events/capture/interactions.cjs.map +1 -0
- package/dist/instrumentations/replay/events/capture/interactions.d.cts +7 -0
- package/dist/instrumentations/replay/events/capture/interactions.d.cts.map +1 -0
- package/dist/instrumentations/replay/events/capture/interactions.d.ts +7 -0
- package/dist/instrumentations/replay/events/capture/interactions.d.ts.map +1 -0
- package/dist/instrumentations/replay/events/capture/interactions.js +40 -0
- package/dist/instrumentations/replay/events/capture/interactions.js.map +1 -0
- package/dist/instrumentations/replay/events/capture/navigation.cjs +40 -0
- package/dist/instrumentations/replay/events/capture/navigation.cjs.map +1 -0
- package/dist/instrumentations/replay/events/capture/navigation.d.cts +7 -0
- package/dist/instrumentations/replay/events/capture/navigation.d.cts.map +1 -0
- package/dist/instrumentations/replay/events/capture/navigation.d.ts +7 -0
- package/dist/instrumentations/replay/events/capture/navigation.d.ts.map +1 -0
- package/dist/instrumentations/replay/events/capture/navigation.js +39 -0
- package/dist/instrumentations/replay/events/capture/navigation.js.map +1 -0
- package/dist/instrumentations/replay/events/capture/network.cjs +75 -0
- package/dist/instrumentations/replay/events/capture/network.cjs.map +1 -0
- package/dist/instrumentations/replay/events/capture/network.d.cts +7 -0
- package/dist/instrumentations/replay/events/capture/network.d.cts.map +1 -0
- package/dist/instrumentations/replay/events/capture/network.d.ts +7 -0
- package/dist/instrumentations/replay/events/capture/network.d.ts.map +1 -0
- package/dist/instrumentations/replay/events/capture/network.js +74 -0
- package/dist/instrumentations/replay/events/capture/network.js.map +1 -0
- package/dist/instrumentations/replay/events/capture/shared.cjs +12 -0
- package/dist/instrumentations/replay/events/capture/shared.cjs.map +1 -0
- package/dist/instrumentations/replay/events/capture/shared.d.cts +10 -0
- package/dist/instrumentations/replay/events/capture/shared.d.cts.map +1 -0
- package/dist/instrumentations/replay/events/capture/shared.d.ts +10 -0
- package/dist/instrumentations/replay/events/capture/shared.d.ts.map +1 -0
- package/dist/instrumentations/replay/events/capture/shared.js +11 -0
- package/dist/instrumentations/replay/events/capture/shared.js.map +1 -0
- package/dist/instrumentations/replay/events/startEventCapture.cjs +88 -0
- package/dist/instrumentations/replay/events/startEventCapture.cjs.map +1 -0
- package/dist/instrumentations/replay/events/startEventCapture.d.cts +33 -0
- package/dist/instrumentations/replay/events/startEventCapture.d.cts.map +1 -0
- package/dist/instrumentations/replay/events/startEventCapture.d.ts +33 -0
- package/dist/instrumentations/replay/events/startEventCapture.d.ts.map +1 -0
- package/dist/instrumentations/replay/events/startEventCapture.js +86 -0
- package/dist/instrumentations/replay/events/startEventCapture.js.map +1 -0
- package/dist/instrumentations/replay/events/types.cjs +14 -0
- package/dist/instrumentations/replay/events/types.cjs.map +1 -0
- package/dist/instrumentations/replay/events/types.d.cts +28 -0
- package/dist/instrumentations/replay/events/types.d.cts.map +1 -0
- package/dist/instrumentations/replay/events/types.d.ts +28 -0
- package/dist/instrumentations/replay/events/types.d.ts.map +1 -0
- package/dist/instrumentations/replay/events/types.js +12 -0
- package/dist/instrumentations/replay/events/types.js.map +1 -0
- package/dist/instrumentations/replay/recorder/startRecording.cjs +75 -0
- package/dist/instrumentations/replay/recorder/startRecording.cjs.map +1 -0
- package/dist/instrumentations/replay/recorder/startRecording.d.cts +30 -0
- package/dist/instrumentations/replay/recorder/startRecording.d.cts.map +1 -0
- package/dist/instrumentations/replay/recorder/startRecording.d.ts +30 -0
- package/dist/instrumentations/replay/recorder/startRecording.d.ts.map +1 -0
- package/dist/instrumentations/replay/recorder/startRecording.js +74 -0
- package/dist/instrumentations/replay/recorder/startRecording.js.map +1 -0
- package/dist/instrumentations/replay/recorder/types.cjs +0 -0
- package/dist/instrumentations/replay/recorder/types.d.cts +11 -0
- package/dist/instrumentations/replay/recorder/types.d.cts.map +1 -0
- package/dist/instrumentations/replay/recorder/types.d.ts +11 -0
- package/dist/instrumentations/replay/recorder/types.d.ts.map +1 -0
- package/dist/instrumentations/replay/recorder/types.js +0 -0
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.cjs +32 -6
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.cjs.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.d.cts +1 -2
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.d.cts.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.d.ts +1 -2
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.d.ts.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.js +32 -6
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.js.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.iife.cjs.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.iife.d.cts.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.iife.d.ts.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.iife.js.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/types.d.cts.map +1 -1
- package/dist/instrumentations/replay/rrwebLoader/types.d.ts.map +1 -1
- package/dist/instrumentations/replay/session-recording/SessionRecording.cjs +175 -0
- package/dist/instrumentations/replay/session-recording/SessionRecording.cjs.map +1 -0
- package/dist/instrumentations/replay/session-recording/SessionRecording.d.cts +54 -0
- package/dist/instrumentations/replay/session-recording/SessionRecording.d.cts.map +1 -0
- package/dist/instrumentations/replay/session-recording/SessionRecording.d.ts +54 -0
- package/dist/instrumentations/replay/session-recording/SessionRecording.d.ts.map +1 -0
- package/dist/instrumentations/replay/session-recording/SessionRecording.js +174 -0
- package/dist/instrumentations/replay/session-recording/SessionRecording.js.map +1 -0
- package/dist/instrumentations/replay/session-recording/chunkSeq.cjs +17 -0
- package/dist/instrumentations/replay/session-recording/chunkSeq.cjs.map +1 -0
- package/dist/instrumentations/replay/session-recording/chunkSeq.d.cts +10 -0
- package/dist/instrumentations/replay/session-recording/chunkSeq.d.cts.map +1 -0
- package/dist/instrumentations/replay/session-recording/chunkSeq.d.ts +10 -0
- package/dist/instrumentations/replay/session-recording/chunkSeq.d.ts.map +1 -0
- package/dist/instrumentations/replay/session-recording/chunkSeq.js +16 -0
- package/dist/instrumentations/replay/session-recording/chunkSeq.js.map +1 -0
- package/dist/instrumentations/replay/session-recording/config.cjs +23 -0
- package/dist/instrumentations/replay/session-recording/config.cjs.map +1 -0
- package/dist/instrumentations/replay/session-recording/config.d.cts +31 -0
- package/dist/instrumentations/replay/session-recording/config.d.cts.map +1 -0
- package/dist/instrumentations/replay/session-recording/config.d.ts +31 -0
- package/dist/instrumentations/replay/session-recording/config.d.ts.map +1 -0
- package/dist/instrumentations/replay/session-recording/config.js +22 -0
- package/dist/instrumentations/replay/session-recording/config.js.map +1 -0
- package/dist/instrumentations/replay/session-recording/format.cjs +26 -0
- package/dist/instrumentations/replay/session-recording/format.cjs.map +1 -0
- package/dist/instrumentations/replay/session-recording/format.d.cts +16 -0
- package/dist/instrumentations/replay/session-recording/format.d.cts.map +1 -0
- package/dist/instrumentations/replay/session-recording/format.d.ts +16 -0
- package/dist/instrumentations/replay/session-recording/format.d.ts.map +1 -0
- package/dist/instrumentations/replay/session-recording/format.js +24 -0
- package/dist/instrumentations/replay/session-recording/format.js.map +1 -0
- package/dist/instrumentations/replay/session-recording/lifecycle.cjs +72 -0
- package/dist/instrumentations/replay/session-recording/lifecycle.cjs.map +1 -0
- package/dist/instrumentations/replay/session-recording/lifecycle.d.cts +21 -0
- package/dist/instrumentations/replay/session-recording/lifecycle.d.cts.map +1 -0
- package/dist/instrumentations/replay/session-recording/lifecycle.d.ts +21 -0
- package/dist/instrumentations/replay/session-recording/lifecycle.d.ts.map +1 -0
- package/dist/instrumentations/replay/session-recording/lifecycle.js +69 -0
- package/dist/instrumentations/replay/session-recording/lifecycle.js.map +1 -0
- package/dist/instrumentations/replay/trace-sink/traceSink.cjs +42 -0
- package/dist/instrumentations/replay/trace-sink/traceSink.cjs.map +1 -0
- package/dist/instrumentations/replay/trace-sink/traceSink.d.cts +17 -0
- package/dist/instrumentations/replay/trace-sink/traceSink.d.cts.map +1 -0
- package/dist/instrumentations/replay/trace-sink/traceSink.d.ts +17 -0
- package/dist/instrumentations/replay/trace-sink/traceSink.d.ts.map +1 -0
- package/dist/instrumentations/replay/trace-sink/traceSink.js +36 -0
- package/dist/instrumentations/replay/trace-sink/traceSink.js.map +1 -0
- package/dist/instrumentations/replay/transport/gzip.cjs +16 -0
- package/dist/instrumentations/replay/transport/gzip.cjs.map +1 -0
- package/dist/instrumentations/replay/transport/gzip.d.cts +10 -0
- package/dist/instrumentations/replay/transport/gzip.d.cts.map +1 -0
- package/dist/instrumentations/replay/transport/gzip.d.ts +10 -0
- package/dist/instrumentations/replay/transport/gzip.d.ts.map +1 -0
- package/dist/instrumentations/replay/transport/gzip.js +15 -0
- package/dist/instrumentations/replay/transport/gzip.js.map +1 -0
- package/dist/instrumentations/replay/transport/replayTransport.cjs +95 -0
- package/dist/instrumentations/replay/transport/replayTransport.cjs.map +1 -0
- package/dist/instrumentations/replay/transport/replayTransport.d.cts +14 -0
- package/dist/instrumentations/replay/transport/replayTransport.d.cts.map +1 -0
- package/dist/instrumentations/replay/transport/replayTransport.d.ts +14 -0
- package/dist/instrumentations/replay/transport/replayTransport.d.ts.map +1 -0
- package/dist/instrumentations/replay/transport/replayTransport.js +92 -0
- package/dist/instrumentations/replay/transport/replayTransport.js.map +1 -0
- package/dist/instrumentations/replay/transport/types.cjs +0 -0
- package/dist/instrumentations/replay/transport/types.d.cts +23 -0
- package/dist/instrumentations/replay/transport/types.d.cts.map +1 -0
- package/dist/instrumentations/replay/transport/types.d.ts +23 -0
- package/dist/instrumentations/replay/transport/types.d.ts.map +1 -0
- package/dist/instrumentations/replay/transport/types.js +0 -0
- package/dist/instrumentations/replay/transport/util.cjs +18 -0
- package/dist/instrumentations/replay/transport/util.cjs.map +1 -0
- package/dist/instrumentations/replay/transport/util.d.cts +10 -0
- package/dist/instrumentations/replay/transport/util.d.cts.map +1 -0
- package/dist/instrumentations/replay/transport/util.d.ts +10 -0
- package/dist/instrumentations/replay/transport/util.d.ts.map +1 -0
- package/dist/instrumentations/replay/transport/util.js +17 -0
- package/dist/instrumentations/replay/transport/util.js.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.js.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.js.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs +19 -11
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts +3 -3
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts +3 -3
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js +19 -11
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js.map +1 -1
- package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.cjs +28 -0
- package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.cjs.map +1 -0
- package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.cts +23 -0
- package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.cts.map +1 -0
- package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.ts +23 -0
- package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.ts.map +1 -0
- package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.js +27 -0
- package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.js.map +1 -0
- package/dist/managers/MXLConfigManager/types.d.cts +16 -6
- package/dist/managers/MXLConfigManager/types.d.cts.map +1 -1
- package/dist/managers/MXLConfigManager/types.d.ts +16 -6
- package/dist/managers/MXLConfigManager/types.d.ts.map +1 -1
- package/dist/managers/MXLConfigManager/utils.cjs +66 -1
- package/dist/managers/MXLConfigManager/utils.cjs.map +1 -1
- package/dist/managers/MXLConfigManager/utils.d.cts +10 -3
- package/dist/managers/MXLConfigManager/utils.d.cts.map +1 -1
- package/dist/managers/MXLConfigManager/utils.d.ts +10 -3
- package/dist/managers/MXLConfigManager/utils.d.ts.map +1 -1
- package/dist/managers/MXLConfigManager/utils.js +64 -2
- package/dist/managers/MXLConfigManager/utils.js.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.cjs +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.cjs.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.d.cts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.d.ts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.js +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.js.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs +8 -0
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.cts +2 -0
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.cts.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.ts +2 -0
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.ts.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js +8 -0
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/types.d.cts +2 -0
- package/dist/managers/MXLSDKFeaturesManager/types.d.cts.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/types.d.ts +2 -0
- package/dist/managers/MXLSDKFeaturesManager/types.d.ts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.cjs.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.d.cts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.d.ts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.js.map +1 -1
- package/dist/managers/MXLTraceManager/MXLTraceManager.cjs.map +1 -1
- package/dist/managers/MXLTraceManager/MXLTraceManager.d.cts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLTraceManager.d.ts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLTraceManager.js.map +1 -1
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.cjs +1 -1
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.cjs.map +1 -1
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.d.cts.map +1 -1
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.d.ts.map +1 -1
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.js +1 -1
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.js.map +1 -1
- package/dist/managers/MXLUserSessionManager/utils/state.cjs +1 -1
- package/dist/managers/MXLUserSessionManager/utils/state.cjs.map +1 -1
- package/dist/managers/MXLUserSessionManager/utils/state.js +1 -1
- package/dist/managers/MXLUserSessionManager/utils/state.js.map +1 -1
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.cjs +1 -1
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.js +1 -1
- package/dist/mxl-web-sdk.js +2 -1
- package/dist/mxl-web-sdk.js.map +1 -1
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/esm/common/internal.js +1 -1
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/esm/common/internal.js.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/esm/common/utils.js +1 -1
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/esm/common/utils.js.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/esm/logs/internal.js +1 -1
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/esm/logs/internal.js.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/esm/logs/json/logs.js +1 -1
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/esm/logs/json/logs.js.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/esm/trace/internal.js +1 -1
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/internal.js.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/esm/trace/json/trace.js +1 -1
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/json/trace.js.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/common/hex-to-binary.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/common/hex-to-binary.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/common/internal.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/common/internal.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/common/protobuf/common-serializer.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/common-serializer.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/common/protobuf/protobuf-reader.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-reader.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/common/protobuf/protobuf-size-estimator.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-size-estimator.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/common/protobuf/protobuf-writer.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-writer.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/common/protobuf/utils.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/utils.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/common/utils.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/common/utils.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/i-serializer.d.cts +1 -1
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/i-serializer.d.cts.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/i-serializer.d.ts +1 -1
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/i-serializer.d.ts.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/internal.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/logs/internal.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/json/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/logs/json/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/json/logs.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/logs/json/logs.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/protobuf/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/logs/protobuf/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/protobuf/logs-serializer.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/logs/protobuf/logs-serializer.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/protobuf/logs.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/logs/protobuf/logs.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/protobuf/response-deserializer.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/logs/protobuf/response-deserializer.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/internal-types.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/internal-types.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/internal.cjs +3 -3
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/internal.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/json/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/json/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/json/metrics.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/json/metrics.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/protobuf/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/protobuf/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/protobuf/metrics-serializer.cjs +3 -3
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/protobuf/metrics-serializer.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/protobuf/metrics.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/protobuf/metrics.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/protobuf/response-deserializer.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/protobuf/response-deserializer.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/internal.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/trace/internal.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/json/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/trace/json/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/json/trace.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/trace/json/trace.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/protobuf/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/trace/protobuf/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/protobuf/response-deserializer.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/trace/protobuf/response-deserializer.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/protobuf/trace-serializer.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/trace/protobuf/trace-serializer.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/protobuf/trace.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/otlp-transformer/build/src/trace/protobuf/trace.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/InstrumentDescriptor.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/InstrumentDescriptor.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/Instruments.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/Instruments.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/Meter.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/Meter.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/MeterProvider.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/MeterProvider.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/ObservableResult.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/ObservableResult.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Drop.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Drop.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/ExponentialHistogram.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Histogram.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/LastValue.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Sum.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/ExponentMapping.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/ExponentMapping.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/LogarithmMapping.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/LogarithmMapping.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/getMapping.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/getMapping.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/ieee754.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/ieee754.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/types.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/types.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/exponential-histogram/util.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/util.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/types.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/types.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/AggregationSelector.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/AggregationSelector.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/AggregationTemporality.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/AggregationTemporality.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/ConsoleMetricExporter.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/ConsoleMetricExporter.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/InMemoryMetricExporter.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/InMemoryMetricExporter.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricData.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricData.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricReader.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/PeriodicExportingMetricReader.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/index.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/index.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/AsyncMetricStorage.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/AsyncMetricStorage.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/DeltaMetricProcessor.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/HashMap.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/MeterProviderSharedState.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterProviderSharedState.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/MeterSharedState.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterSharedState.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/MetricCollector.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricCollector.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/MetricStorage.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorage.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/MetricStorageRegistry.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorageRegistry.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/MultiWritableMetricStorage.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/MultiWritableMetricStorage.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/ObservableRegistry.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/ObservableRegistry.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/SyncMetricStorage.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/SyncMetricStorage.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/state/TemporalMetricProcessor.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/utils.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/utils.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/Aggregation.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/AggregationOption.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/AggregationOption.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/AttributesProcessor.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/AttributesProcessor.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/InstrumentSelector.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/InstrumentSelector.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/MeterSelector.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/MeterSelector.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/Predicate.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/Predicate.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/RegistrationConflicts.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/RegistrationConflicts.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/View.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/View.cjs.map +1 -0
- package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/ViewRegistry.cjs +2 -2
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/ViewRegistry.cjs.map +1 -0
- package/dist/node_modules/{hoist-non-react-statics → .pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics}/dist/hoist-non-react-statics.cjs.cjs +3 -3
- package/dist/node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.cjs.map +1 -0
- package/dist/node_modules/{hoist-non-react-statics → .pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics}/dist/hoist-non-react-statics.cjs.js +3 -3
- package/dist/node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js.map +1 -0
- package/dist/node_modules/{react-is → .pnpm/react-is@16.13.1/node_modules/react-is}/cjs/react-is.development.cjs +2 -2
- package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.cjs.map +1 -0
- package/dist/node_modules/{react-is → .pnpm/react-is@16.13.1/node_modules/react-is}/cjs/react-is.development.js +2 -2
- package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/{react-is → .pnpm/react-is@16.13.1/node_modules/react-is}/cjs/react-is.production.min.cjs +2 -2
- package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.cjs.map +1 -0
- package/dist/node_modules/{react-is → .pnpm/react-is@16.13.1/node_modules/react-is}/index.cjs +2 -2
- package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.cjs.map +1 -0
- package/dist/node_modules/{react-is → .pnpm/react-is@16.13.1/node_modules/react-is}/index.js +2 -2
- package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js.map +1 -0
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.cjs +2 -0
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.cjs.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.d.cts.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.d.ts.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.js +2 -0
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.js.map +1 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.cjs +10 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.cjs.map +1 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.cts +3 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.cts.map +1 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.ts +3 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.ts.map +1 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.js +10 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.js.map +1 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.cts +1 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.cts.map +1 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.ts +1 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.ts.map +1 -1
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.d.cts.map +1 -1
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.d.ts.map +1 -1
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.js.map +1 -1
- package/dist/processors/PageSpanProcessor/PageSpanProcessor.cjs.map +1 -1
- package/dist/processors/PageSpanProcessor/PageSpanProcessor.d.cts.map +1 -1
- package/dist/processors/PageSpanProcessor/PageSpanProcessor.d.ts.map +1 -1
- package/dist/processors/PageSpanProcessor/PageSpanProcessor.js.map +1 -1
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.d.cts.map +1 -1
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.d.ts.map +1 -1
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.js.map +1 -1
- package/dist/resources/sdkConstants.cjs +1 -1
- package/dist/resources/sdkConstants.cjs.map +1 -1
- package/dist/resources/sdkConstants.d.cts +1 -1
- package/dist/resources/sdkConstants.d.ts +1 -1
- package/dist/resources/sdkConstants.js +1 -1
- package/dist/resources/sdkConstants.js.map +1 -1
- package/dist/resources/webSdkResource.cjs.map +1 -1
- package/dist/resources/webSdkResource.d.cts.map +1 -1
- package/dist/resources/webSdkResource.d.ts.map +1 -1
- package/dist/resources/webSdkResource.js.map +1 -1
- package/dist/sdk/initSDK.cjs +65 -14
- package/dist/sdk/initSDK.cjs.map +1 -1
- package/dist/sdk/initSDK.d.cts +2 -2
- package/dist/sdk/initSDK.d.cts.map +1 -1
- package/dist/sdk/initSDK.d.ts +2 -2
- package/dist/sdk/initSDK.d.ts.map +1 -1
- package/dist/sdk/initSDK.js +65 -14
- package/dist/sdk/initSDK.js.map +1 -1
- package/dist/sdk/networkInstrumentations.cjs +28 -0
- package/dist/sdk/networkInstrumentations.cjs.map +1 -0
- package/dist/sdk/networkInstrumentations.d.cts +12 -0
- package/dist/sdk/networkInstrumentations.d.cts.map +1 -0
- package/dist/sdk/networkInstrumentations.d.ts +12 -0
- package/dist/sdk/networkInstrumentations.d.ts.map +1 -0
- package/dist/sdk/networkInstrumentations.js +27 -0
- package/dist/sdk/networkInstrumentations.js.map +1 -0
- package/dist/sdk/setupDefaultInstrumentations.cjs +12 -17
- package/dist/sdk/setupDefaultInstrumentations.cjs.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.d.cts +3 -1
- package/dist/sdk/setupDefaultInstrumentations.d.cts.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.d.ts +3 -1
- package/dist/sdk/setupDefaultInstrumentations.d.ts.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.js +12 -16
- package/dist/sdk/setupDefaultInstrumentations.js.map +1 -1
- package/dist/sdk/types.d.cts +38 -9
- package/dist/sdk/types.d.cts.map +1 -1
- package/dist/sdk/types.d.ts +38 -9
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/transport/RetryingTransport/RetryingTransport.cjs.map +1 -1
- package/dist/transport/RetryingTransport/RetryingTransport.js.map +1 -1
- package/package.json +28 -27
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.cjs +0 -15
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.cjs.map +0 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.d.cts +0 -9
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.d.cts.map +0 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.d.ts +0 -9
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.d.ts.map +0 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.js +0 -10
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.js.map +0 -1
- package/dist/instrumentations/replay/utils/session-recording-utils.cjs +0 -79
- package/dist/instrumentations/replay/utils/session-recording-utils.cjs.map +0 -1
- package/dist/instrumentations/replay/utils/session-recording-utils.d.cts +0 -32
- package/dist/instrumentations/replay/utils/session-recording-utils.d.cts.map +0 -1
- package/dist/instrumentations/replay/utils/session-recording-utils.d.ts +0 -32
- package/dist/instrumentations/replay/utils/session-recording-utils.d.ts.map +0 -1
- package/dist/instrumentations/replay/utils/session-recording-utils.js +0 -73
- package/dist/instrumentations/replay/utils/session-recording-utils.js.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/esm/common/internal.js.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/esm/common/utils.js.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/esm/logs/internal.js.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/esm/logs/json/logs.js.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/internal.js.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/json/trace.js.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/common/hex-to-binary.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/common/internal.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/common-serializer.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-reader.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-size-estimator.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-writer.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/utils.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/common/utils.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/i-serializer.d.cts.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/i-serializer.d.ts.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/logs/internal.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/logs/json/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/logs/json/logs.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/logs/protobuf/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/logs/protobuf/logs-serializer.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/logs/protobuf/logs.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/logs/protobuf/response-deserializer.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/internal-types.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/internal.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/json/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/json/metrics.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/protobuf/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/protobuf/metrics-serializer.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/protobuf/metrics.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/protobuf/response-deserializer.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/trace/internal.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/trace/json/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/trace/json/trace.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/trace/protobuf/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/trace/protobuf/response-deserializer.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/trace/protobuf/trace-serializer.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/otlp-transformer/build/src/trace/protobuf/trace.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/InstrumentDescriptor.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/Instruments.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/Meter.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/MeterProvider.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/ObservableResult.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Drop.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/ExponentMapping.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/LogarithmMapping.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/getMapping.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/ieee754.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/mapping/types.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/util.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/types.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/export/AggregationSelector.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/export/AggregationTemporality.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/export/ConsoleMetricExporter.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/export/InMemoryMetricExporter.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricData.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/index.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/AsyncMetricStorage.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterProviderSharedState.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterSharedState.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricCollector.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorage.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorageRegistry.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/MultiWritableMetricStorage.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/ObservableRegistry.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/SyncMetricStorage.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/utils.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/AggregationOption.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/AttributesProcessor.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/InstrumentSelector.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/MeterSelector.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/Predicate.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/RegistrationConflicts.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/View.cjs.map +0 -1
- package/dist/node_modules/@opentelemetry/sdk-metrics/build/src/view/ViewRegistry.cjs.map +0 -1
- package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.cjs.map +0 -1
- package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.development.cjs.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.production.min.cjs.map +0 -1
- package/dist/node_modules/react-is/index.cjs.map +0 -1
- package/dist/node_modules/react-is/index.js.map +0 -1
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/json/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/json/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/json/logs.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/json/logs.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/protobuf/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/protobuf/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/protobuf/logs.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/logs/protobuf/logs.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/json/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/json/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/json/metrics.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/json/metrics.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/protobuf/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/protobuf/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/protobuf/metrics.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/metrics/protobuf/metrics.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/json/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/json/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/json/trace.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/json/trace.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/protobuf/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/protobuf/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/protobuf/trace.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_otlp-transformer@0.218.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/otlp-transformer/build/src/trace/protobuf/trace.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/InstrumentDescriptor.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/InstrumentDescriptor.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/MeterProvider.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/MeterProvider.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Drop.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Drop.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/ExponentialHistogram.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/ExponentialHistogram.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Histogram.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Histogram.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/LastValue.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/LastValue.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Sum.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/Sum.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/types.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/aggregator/types.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/AggregationSelector.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/AggregationSelector.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/CardinalitySelector.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/CardinalitySelector.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/ConsoleMetricExporter.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/ConsoleMetricExporter.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/InMemoryMetricExporter.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/InMemoryMetricExporter.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricData.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricData.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricExporter.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricExporter.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricProducer.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricProducer.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricReader.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/MetricReader.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/PeriodicExportingMetricReader.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/export/PeriodicExportingMetricReader.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/utils.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/utils.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/Aggregation.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/Aggregation.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/AggregationOption.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/AggregationOption.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/AttributesProcessor.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/AttributesProcessor.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/InstrumentSelector.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/InstrumentSelector.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/View.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-metrics@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-metrics/build/src/view/View.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/BasicTracerProvider.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/BasicTracerProvider.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/Sampler.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/Sampler.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/Span.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/Span.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/SpanProcessor.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/SpanProcessor.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/TimedEvent.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/TimedEvent.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/BatchSpanProcessorBase.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/BatchSpanProcessorBase.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/ConsoleSpanExporter.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/ConsoleSpanExporter.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/InMemorySpanExporter.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/InMemorySpanExporter.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/NoopSpanProcessor.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/NoopSpanProcessor.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/ReadableSpan.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/ReadableSpan.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/SimpleSpanProcessor.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/SimpleSpanProcessor.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/SpanExporter.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/export/SpanExporter.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/platform/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/platform/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/platform/node/export/BatchSpanProcessor.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/platform/node/export/BatchSpanProcessor.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/platform/node/index.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/platform/node/index.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/sampler/AlwaysOffSampler.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/sampler/AlwaysOffSampler.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/sampler/AlwaysOnSampler.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/sampler/AlwaysOnSampler.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/sampler/ParentBasedSampler.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/sampler/ParentBasedSampler.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/sampler/TraceIdRatioBasedSampler.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/sampler/TraceIdRatioBasedSampler.d.ts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/types.d.cts +0 -0
- /package/dist/node_modules/{@opentelemetry → .pnpm/@opentelemetry_sdk-trace-base@2.7.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry}/sdk-trace-base/build/src/types.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/instrumentations/replay/transport/types.ts"],"mappings":";UAAiB,qBAAA;EAAA,SACN,KAAA;EAAA,SACA,MAAA;EAAA,SACA,OAAA;EAAA,SACA,gBAAA;AAAA;AAAA,UAGM,SAAA;EAAA,SACN,SAAA;EAAA,SACA,QAAA;EAAA,SACA,YAAA;EAAA,SACA,UAAA;EAAA,SACA,UAAA;AAAA;AAAA,UAGM,eAAA;EACf,eAAA,GACE,GAAA,EAAK,MAAA,mBACL,SAAA,eACG,OAAA;EACL,iBAAA,GACE,IAAA,EAAM,aAAA,CAAc,MAAA,oBACpB,SAAA,eACG,OAAA;EACL,eAAA,GACE,IAAA,EAAM,SAAA,EACN,OAAA,EAAS,UAAA,EACT,SAAA,eACG,OAAA;EACL,eAAA,GAAkB,GAAA;AAAA"}
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/instrumentations/replay/transport/util.ts
|
|
3
|
+
/**
|
|
4
|
+
* Ported from Maple browser SDK (MIT).
|
|
5
|
+
* @see https://github.com/Makisuo/maple/tree/main/packages/browser/src/replay/util.ts
|
|
6
|
+
*/
|
|
7
|
+
/** Rough JSON byte size for flush thresholds. */
|
|
8
|
+
function approximateSize(value) {
|
|
9
|
+
try {
|
|
10
|
+
return JSON.stringify(value).length;
|
|
11
|
+
} catch {
|
|
12
|
+
return 64;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
exports.approximateSize = approximateSize;
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=util.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.cjs","names":[],"sources":["../../../../src/instrumentations/replay/transport/util.ts"],"sourcesContent":["/**\n * Ported from Maple browser SDK (MIT).\n * @see https://github.com/Makisuo/maple/tree/main/packages/browser/src/replay/util.ts\n */\n\n/** Rough JSON byte size for flush thresholds. */\nexport function approximateSize(value: unknown): number {\n try {\n return JSON.stringify(value).length;\n } catch {\n return 64;\n }\n}\n"],"mappings":";;;;;;;AAMA,SAAgB,gBAAgB,OAAwB;AACtD,KAAI;AACF,SAAO,KAAK,UAAU,MAAM,CAAC;SACvB;AACN,SAAO"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/instrumentations/replay/transport/util.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Ported from Maple browser SDK (MIT).
|
|
4
|
+
* @see https://github.com/Makisuo/maple/tree/main/packages/browser/src/replay/util.ts
|
|
5
|
+
*/
|
|
6
|
+
/** Rough JSON byte size for flush thresholds. */
|
|
7
|
+
declare function approximateSize(value: unknown): number;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { approximateSize };
|
|
10
|
+
//# sourceMappingURL=util.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.cts","names":[],"sources":["../../../../src/instrumentations/replay/transport/util.ts"],"mappings":";;AAMA;;;;iBAAgB,eAAA,CAAgB,KAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/instrumentations/replay/transport/util.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Ported from Maple browser SDK (MIT).
|
|
4
|
+
* @see https://github.com/Makisuo/maple/tree/main/packages/browser/src/replay/util.ts
|
|
5
|
+
*/
|
|
6
|
+
/** Rough JSON byte size for flush thresholds. */
|
|
7
|
+
declare function approximateSize(value: unknown): number;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { approximateSize };
|
|
10
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","names":[],"sources":["../../../../src/instrumentations/replay/transport/util.ts"],"mappings":";;AAMA;;;;iBAAgB,eAAA,CAAgB,KAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/instrumentations/replay/transport/util.ts
|
|
2
|
+
/**
|
|
3
|
+
* Ported from Maple browser SDK (MIT).
|
|
4
|
+
* @see https://github.com/Makisuo/maple/tree/main/packages/browser/src/replay/util.ts
|
|
5
|
+
*/
|
|
6
|
+
/** Rough JSON byte size for flush thresholds. */
|
|
7
|
+
function approximateSize(value) {
|
|
8
|
+
try {
|
|
9
|
+
return JSON.stringify(value).length;
|
|
10
|
+
} catch {
|
|
11
|
+
return 64;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { approximateSize };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","names":[],"sources":["../../../../src/instrumentations/replay/transport/util.ts"],"sourcesContent":["/**\n * Ported from Maple browser SDK (MIT).\n * @see https://github.com/Makisuo/maple/tree/main/packages/browser/src/replay/util.ts\n */\n\n/** Rough JSON byte size for flush thresholds. */\nexport function approximateSize(value: unknown): number {\n try {\n return JSON.stringify(value).length;\n } catch {\n return 64;\n }\n}\n"],"mappings":";;;;;;AAMA,SAAgB,gBAAgB,OAAwB;AACtD,KAAI;AACF,SAAO,KAAK,UAAU,MAAM,CAAC;SACvB;AACN,SAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserTimingInstrumentation.cjs","names":["MXLInstrumentationBase","createPerformanceObserver","KEY_MXL_TYPE","KEY_MXL_INSTRUMENTATION","KEY_MXL_USER_TIMING_ENTRY_TYPE","KEY_MXL_USER_TIMING_START_TIME","KEY_MXL_USER_TIMING_DURATION","KEY_MXL_USER_TIMING_NAME","USER_TIMING_EVENT_NAME","SeverityNumber"],"sources":["../../../../src/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.ts"],"sourcesContent":["import { SeverityNumber } from '@opentelemetry/api-logs';\nimport {
|
|
1
|
+
{"version":3,"file":"UserTimingInstrumentation.cjs","names":["MXLInstrumentationBase","createPerformanceObserver","KEY_MXL_TYPE","KEY_MXL_INSTRUMENTATION","KEY_MXL_USER_TIMING_ENTRY_TYPE","KEY_MXL_USER_TIMING_START_TIME","KEY_MXL_USER_TIMING_DURATION","KEY_MXL_USER_TIMING_NAME","USER_TIMING_EVENT_NAME","SeverityNumber"],"sources":["../../../../src/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.ts"],"sourcesContent":["import { SeverityNumber } from '@opentelemetry/api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n KEY_MXL_TYPE,\n MXL_TYPES,\n} from '../../../constants/attributes';\nimport { MXL_PERFORMANCE_INSTRUMENTATIONS } from '../../../constants/attributes';\nimport { createPerformanceObserver } from '../../../utils/performanceObserver/performanceObserver';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/MXLInstrumentationBase';\nimport {\n KEY_MXL_USER_TIMING_DETAIL,\n KEY_MXL_USER_TIMING_DURATION,\n KEY_MXL_USER_TIMING_ENTRY_TYPE,\n KEY_MXL_USER_TIMING_NAME,\n KEY_MXL_USER_TIMING_START_TIME,\n USER_TIMING_EVENT_NAME,\n} from './constants';\nimport type {\n UserTimingEntryFilter,\n UserTimingInstrumentationArgs,\n} from './types';\n\nexport class UserTimingInstrumentation extends MXLInstrumentationBase {\n private _markObserver: PerformanceObserver | null = null;\n private _measureObserver: PerformanceObserver | null = null;\n private _seenEntries = new Set<string>();\n private _isEnabled = false;\n private readonly _allowedEntries: UserTimingEntryFilter | undefined;\n\n public constructor({\n diag,\n perf,\n limitManager,\n allowedEntries,\n }: UserTimingInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'UserTimingInstrumentation',\n instrumentationVersion: '1.0.0',\n limitManager,\n perf,\n });\n this._allowedEntries = allowedEntries;\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n public enable(): void {\n if (this._isEnabled) {\n return;\n }\n\n this._isEnabled = true;\n this._seenEntries = new Set();\n\n if (this._markObserver) {\n this._markObserver.disconnect();\n }\n if (this._measureObserver) {\n this._measureObserver.disconnect();\n }\n\n this._markObserver = createPerformanceObserver<PerformanceMark>(\n 'mark',\n this._processEntry.bind(this),\n { diag: this._diag },\n );\n\n if (!this._markObserver) {\n this._diag.error('failed to enable mark observer');\n }\n\n this._measureObserver = createPerformanceObserver<PerformanceMeasure>(\n 'measure',\n (entry) => this._processEntry(entry),\n { diag: this._diag },\n );\n\n if (!this._measureObserver) {\n this._diag.error('failed to enable measure observer');\n }\n\n if (!this._markObserver && !this._measureObserver) {\n this._isEnabled = false;\n }\n }\n\n public disable(): void {\n this._isEnabled = false;\n\n if (this._markObserver) {\n this._markObserver.disconnect();\n this._markObserver = null;\n }\n\n if (this._measureObserver) {\n this._measureObserver.disconnect();\n this._measureObserver = null;\n }\n\n this._seenEntries = new Set();\n }\n\n private _processEntry(entry: PerformanceMark | PerformanceMeasure): void {\n if (!this._isEnabled) {\n return;\n }\n\n if (this._allowedEntries !== undefined) {\n const allowed = Array.isArray(this._allowedEntries)\n ? this._allowedEntries.includes(entry.name)\n : this._allowedEntries(entry);\n if (!allowed) {\n return;\n }\n }\n\n const key = `${location.href}::${entry.name}`;\n // De-duplicate entries by name and page URL, only processing the first occurrence of each unique name on each page URL\n if (this._seenEntries.has(key)) {\n return;\n }\n this._seenEntries.add(key);\n\n if (\n this.limitManager?.limitUserTimingEntry(\n entry.entryType as 'mark' | 'measure',\n )\n ) {\n return;\n }\n\n if (entry.entryType === 'measure') {\n const measureDetail = (entry as PerformanceMeasure).detail;\n const span = this.tracer.startSpan(entry.name, {\n attributes: {\n [KEY_MXL_TYPE]: MXL_TYPES.UserTiming,\n [KEY_MXL_INSTRUMENTATION]:\n MXL_PERFORMANCE_INSTRUMENTATIONS.UserTiming,\n [KEY_MXL_USER_TIMING_ENTRY_TYPE]: entry.entryType,\n [KEY_MXL_USER_TIMING_START_TIME]: this.perf.millisFromZeroTime(\n entry.startTime,\n ),\n [KEY_MXL_USER_TIMING_DURATION]: entry.duration,\n ...(measureDetail != null && {\n [KEY_MXL_USER_TIMING_DETAIL]: JSON.stringify(measureDetail),\n }),\n },\n startTime: this.perf.epochMillisFromOriginOffset(entry.startTime),\n });\n span.end(\n this.perf.epochMillisFromOriginOffset(entry.startTime + entry.duration),\n );\n return;\n }\n\n const { detail } = entry as PerformanceMark;\n const body = detail != null ? JSON.stringify(detail) : undefined;\n\n this.logger.emit({\n attributes: {\n [KEY_MXL_TYPE]: MXL_TYPES.UserTiming,\n [KEY_MXL_USER_TIMING_NAME]: entry.name,\n [KEY_MXL_USER_TIMING_START_TIME]: this.perf.millisFromZeroTime(\n entry.startTime,\n ),\n [KEY_MXL_USER_TIMING_DURATION]: entry.duration,\n [KEY_MXL_USER_TIMING_ENTRY_TYPE]: entry.entryType,\n },\n body,\n eventName: USER_TIMING_EVENT_NAME,\n severityNumber: SeverityNumber.INFO,\n timestamp: this.perf.epochMillisFromOriginOffset(entry.startTime),\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserTimingInstrumentation.d.cts","names":[],"sources":["../../../../src/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"UserTimingInstrumentation.d.cts","names":[],"sources":["../../../../src/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.ts"],"mappings":";;;;cAsBa,yBAAA,SAAkC,sBAAA;EAAA,QACrC,aAAA;EAAA,QACA,gBAAA;EAAA,QACA,YAAA;EAAA,QACA,UAAA;EAAA,iBACS,eAAA;;IAGf,IAAA;IACA,IAAA;IACA,YAAA;IACA;EAAA,IACC,6BAAA;EAgBI,MAAA,CAAA;EAwCA,OAAA,CAAA;EAAA,QAgBC,aAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserTimingInstrumentation.d.ts","names":[],"sources":["../../../../src/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"UserTimingInstrumentation.d.ts","names":[],"sources":["../../../../src/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.ts"],"mappings":";;;;cAsBa,yBAAA,SAAkC,sBAAA;EAAA,QACrC,aAAA;EAAA,QACA,gBAAA;EAAA,QACA,YAAA;EAAA,QACA,UAAA;EAAA,iBACS,eAAA;;IAGf,IAAA;IACA,IAAA;IACA,YAAA;IACA;EAAA,IACC,6BAAA;EAgBI,MAAA,CAAA;EAwCA,OAAA,CAAA;EAAA,QAgBC,aAAA;AAAA"}
|
package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserTimingInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.ts"],"sourcesContent":["import { SeverityNumber } from '@opentelemetry/api-logs';\nimport {
|
|
1
|
+
{"version":3,"file":"UserTimingInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.ts"],"sourcesContent":["import { SeverityNumber } from '@opentelemetry/api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n KEY_MXL_TYPE,\n MXL_TYPES,\n} from '../../../constants/attributes';\nimport { MXL_PERFORMANCE_INSTRUMENTATIONS } from '../../../constants/attributes';\nimport { createPerformanceObserver } from '../../../utils/performanceObserver/performanceObserver';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/MXLInstrumentationBase';\nimport {\n KEY_MXL_USER_TIMING_DETAIL,\n KEY_MXL_USER_TIMING_DURATION,\n KEY_MXL_USER_TIMING_ENTRY_TYPE,\n KEY_MXL_USER_TIMING_NAME,\n KEY_MXL_USER_TIMING_START_TIME,\n USER_TIMING_EVENT_NAME,\n} from './constants';\nimport type {\n UserTimingEntryFilter,\n UserTimingInstrumentationArgs,\n} from './types';\n\nexport class UserTimingInstrumentation extends MXLInstrumentationBase {\n private _markObserver: PerformanceObserver | null = null;\n private _measureObserver: PerformanceObserver | null = null;\n private _seenEntries = new Set<string>();\n private _isEnabled = false;\n private readonly _allowedEntries: UserTimingEntryFilter | undefined;\n\n public constructor({\n diag,\n perf,\n limitManager,\n allowedEntries,\n }: UserTimingInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'UserTimingInstrumentation',\n instrumentationVersion: '1.0.0',\n limitManager,\n perf,\n });\n this._allowedEntries = allowedEntries;\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n public enable(): void {\n if (this._isEnabled) {\n return;\n }\n\n this._isEnabled = true;\n this._seenEntries = new Set();\n\n if (this._markObserver) {\n this._markObserver.disconnect();\n }\n if (this._measureObserver) {\n this._measureObserver.disconnect();\n }\n\n this._markObserver = createPerformanceObserver<PerformanceMark>(\n 'mark',\n this._processEntry.bind(this),\n { diag: this._diag },\n );\n\n if (!this._markObserver) {\n this._diag.error('failed to enable mark observer');\n }\n\n this._measureObserver = createPerformanceObserver<PerformanceMeasure>(\n 'measure',\n (entry) => this._processEntry(entry),\n { diag: this._diag },\n );\n\n if (!this._measureObserver) {\n this._diag.error('failed to enable measure observer');\n }\n\n if (!this._markObserver && !this._measureObserver) {\n this._isEnabled = false;\n }\n }\n\n public disable(): void {\n this._isEnabled = false;\n\n if (this._markObserver) {\n this._markObserver.disconnect();\n this._markObserver = null;\n }\n\n if (this._measureObserver) {\n this._measureObserver.disconnect();\n this._measureObserver = null;\n }\n\n this._seenEntries = new Set();\n }\n\n private _processEntry(entry: PerformanceMark | PerformanceMeasure): void {\n if (!this._isEnabled) {\n return;\n }\n\n if (this._allowedEntries !== undefined) {\n const allowed = Array.isArray(this._allowedEntries)\n ? this._allowedEntries.includes(entry.name)\n : this._allowedEntries(entry);\n if (!allowed) {\n return;\n }\n }\n\n const key = `${location.href}::${entry.name}`;\n // De-duplicate entries by name and page URL, only processing the first occurrence of each unique name on each page URL\n if (this._seenEntries.has(key)) {\n return;\n }\n this._seenEntries.add(key);\n\n if (\n this.limitManager?.limitUserTimingEntry(\n entry.entryType as 'mark' | 'measure',\n )\n ) {\n return;\n }\n\n if (entry.entryType === 'measure') {\n const measureDetail = (entry as PerformanceMeasure).detail;\n const span = this.tracer.startSpan(entry.name, {\n attributes: {\n [KEY_MXL_TYPE]: MXL_TYPES.UserTiming,\n [KEY_MXL_INSTRUMENTATION]:\n MXL_PERFORMANCE_INSTRUMENTATIONS.UserTiming,\n [KEY_MXL_USER_TIMING_ENTRY_TYPE]: entry.entryType,\n [KEY_MXL_USER_TIMING_START_TIME]: this.perf.millisFromZeroTime(\n entry.startTime,\n ),\n [KEY_MXL_USER_TIMING_DURATION]: entry.duration,\n ...(measureDetail != null && {\n [KEY_MXL_USER_TIMING_DETAIL]: JSON.stringify(measureDetail),\n }),\n },\n startTime: this.perf.epochMillisFromOriginOffset(entry.startTime),\n });\n span.end(\n this.perf.epochMillisFromOriginOffset(entry.startTime + entry.duration),\n );\n return;\n }\n\n const { detail } = entry as PerformanceMark;\n const body = detail != null ? JSON.stringify(detail) : undefined;\n\n this.logger.emit({\n attributes: {\n [KEY_MXL_TYPE]: MXL_TYPES.UserTiming,\n [KEY_MXL_USER_TIMING_NAME]: entry.name,\n [KEY_MXL_USER_TIMING_START_TIME]: this.perf.millisFromZeroTime(\n entry.startTime,\n ),\n [KEY_MXL_USER_TIMING_DURATION]: entry.duration,\n [KEY_MXL_USER_TIMING_ENTRY_TYPE]: entry.entryType,\n },\n body,\n eventName: USER_TIMING_EVENT_NAME,\n severityNumber: SeverityNumber.INFO,\n timestamp: this.perf.epochMillisFromOriginOffset(entry.startTime),\n });\n }\n}\n"],"mappings":";;;;;;AAsBA,IAAa,4BAAb,cAA+C,uBAAuB;CACpE,gBAAoD;CACpD,mBAAuD;CACvD,+BAAuB,IAAI,KAAa;CACxC,aAAqB;CACrB;CAEA,YAAmB,EACjB,MACA,MACA,cACA,mBACiC,EAAE,EAAE;AACrC,QAAM;GACJ,QAAQ,EAAE;GACV;GACA,qBAAqB;GACrB,wBAAwB;GACxB;GACA;GACD,CAAC;AACF,OAAK,kBAAkB;AAEvB,MAAI,KAAK,QAAQ,QACf,MAAK,QAAQ;;CAIjB,SAAsB;AACpB,MAAI,KAAK,WACP;AAGF,OAAK,aAAa;AAClB,OAAK,+BAAe,IAAI,KAAK;AAE7B,MAAI,KAAK,cACP,MAAK,cAAc,YAAY;AAEjC,MAAI,KAAK,iBACP,MAAK,iBAAiB,YAAY;AAGpC,OAAK,gBAAgB,0BACnB,QACA,KAAK,cAAc,KAAK,KAAK,EAC7B,EAAE,MAAM,KAAK,OAAO,CACrB;AAED,MAAI,CAAC,KAAK,cACR,MAAK,MAAM,MAAM,iCAAiC;AAGpD,OAAK,mBAAmB,0BACtB,YACC,UAAU,KAAK,cAAc,MAAM,EACpC,EAAE,MAAM,KAAK,OAAO,CACrB;AAED,MAAI,CAAC,KAAK,iBACR,MAAK,MAAM,MAAM,oCAAoC;AAGvD,MAAI,CAAC,KAAK,iBAAiB,CAAC,KAAK,iBAC/B,MAAK,aAAa;;CAItB,UAAuB;AACrB,OAAK,aAAa;AAElB,MAAI,KAAK,eAAe;AACtB,QAAK,cAAc,YAAY;AAC/B,QAAK,gBAAgB;;AAGvB,MAAI,KAAK,kBAAkB;AACzB,QAAK,iBAAiB,YAAY;AAClC,QAAK,mBAAmB;;AAG1B,OAAK,+BAAe,IAAI,KAAK;;CAG/B,cAAsB,OAAmD;AACvE,MAAI,CAAC,KAAK,WACR;AAGF,MAAI,KAAK,oBAAoB,KAAA;OAIvB,EAHY,MAAM,QAAQ,KAAK,gBAAgB,GAC/C,KAAK,gBAAgB,SAAS,MAAM,KAAK,GACzC,KAAK,gBAAgB,MAAM,EAE7B;;EAIJ,MAAM,MAAM,GAAG,SAAS,KAAK,IAAI,MAAM;AAEvC,MAAI,KAAK,aAAa,IAAI,IAAI,CAC5B;AAEF,OAAK,aAAa,IAAI,IAAI;AAE1B,MACE,KAAK,cAAc,qBACjB,MAAM,UACP,CAED;AAGF,MAAI,MAAM,cAAc,WAAW;GACjC,MAAM,gBAAiB,MAA6B;AACvC,QAAK,OAAO,UAAU,MAAM,MAAM;IAC7C,YAAY;MACT,eAAA;MACA,0BAAA;MAEA,iCAAiC,MAAM;MACvC,iCAAiC,KAAK,KAAK,mBAC1C,MAAM,UACP;MACA,+BAA+B,MAAM;KACtC,GAAI,iBAAiB,QAAQ,GAAA,2BACG,KAAK,UAAU,cAAc,EAC5D;KACF;IACD,WAAW,KAAK,KAAK,4BAA4B,MAAM,UAAU;IAClE,CACG,CAAC,IACH,KAAK,KAAK,4BAA4B,MAAM,YAAY,MAAM,SAAS,CACxE;AACD;;EAGF,MAAM,EAAE,WAAW;EACnB,MAAM,OAAO,UAAU,OAAO,KAAK,UAAU,OAAO,GAAG,KAAA;AAEvD,OAAK,OAAO,KAAK;GACf,YAAY;KACT,eAAA;KACA,2BAA2B,MAAM;KACjC,iCAAiC,KAAK,KAAK,mBAC1C,MAAM,UACP;KACA,+BAA+B,MAAM;KACrC,iCAAiC,MAAM;IACzC;GACD;GACA,WAAW;GACX,gBAAgB,eAAe;GAC/B,WAAW,KAAK,KAAK,4BAA4B,MAAM,UAAU;GAClE,CAAC"}
|
package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebVitalsInstrumentation.cjs","names":["KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX","MAX_LOAF_SCRIPT_URL_LENGTH","MXLInstrumentationBase","WEB_VITALS_ID_TO_LISTENER","page","KEY_MXL_TYPE","ATTR_URL_FULL","KEY_BROWSER_URL_FULL","KEY_MXL_WEB_VITAL_NAVIGATION_TYPE","KEY_MXL_WEB_VITAL_NAME","KEY_MXL_WEB_VITAL_RATING","KEY_MXL_WEB_VITAL_ID","KEY_MXL_WEB_VITAL_DELTA","KEY_MXL_WEB_VITAL_VALUE","KEY_MXL_PAGE_PATH","KEY_MXL_PAGE_ID","KEY_APP_SURFACE_LABEL","MXL_WEB_VITALS_PREFIX"],"sources":["../../../../src/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.ts"],"sourcesContent":["import type {\n AttributeValue,\n Attributes,\n DiagLogger,\n} from '@opentelemetry/api';\nimport { ATTR_URL_FULL } from '@opentelemetry/semantic-conventions';\nimport type {\n CLSMetricWithAttribution,\n INPAttribution,\n Metric,\n MetricWithAttribution,\n TTFBAttribution,\n} from 'web-vitals/attribution';\nimport type { PageManager } from '../../../api-page/manager/types';\nimport { page } from '../../../api-page/pageAPI';\nimport type { URLDocument } from '../../../common/types';\nimport { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_TYPE, MXL_TYPES } from '../../../constants/attributes';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/MXLInstrumentationBase';\nimport {\n KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX,\n KEY_MXL_WEB_VITAL_DELTA,\n KEY_MXL_WEB_VITAL_ID,\n KEY_MXL_WEB_VITAL_NAME,\n KEY_MXL_WEB_VITAL_NAVIGATION_TYPE,\n KEY_MXL_WEB_VITAL_RATING,\n KEY_MXL_WEB_VITAL_VALUE,\n} from './attributes';\nimport {\n ALL_WEB_VITALS,\n MAX_LOAF_SCRIPT_ENTRIES,\n MAX_LOAF_SCRIPT_URL_LENGTH,\n MXL_WEB_VITALS_PREFIX,\n WEB_VITALS_ID_TO_LISTENER,\n} from './constants';\nimport type { WebVitalListeners, WebVitalsInstrumentationArgs } from './types';\n\ninterface AttributedPage {\n fullURL: string;\n path?: string;\n pageID?: string;\n label?: string;\n}\n\nconst isPrimitiveValue = (value: unknown): value is AttributeValue => {\n const type = typeof value;\n return type === 'number' || type === 'string' || type === 'boolean';\n};\n\nconst roundClamp = (value: number): number => Math.round(Math.max(0, value));\n\nconst webVitalAttributionToReport = (\n metric: MetricWithAttribution,\n): Attributes => {\n const attributes: Attributes = {};\n const { attribution } = metric;\n\n if (!attribution || typeof attribution !== 'object') {\n return attributes;\n }\n\n for (const [key, value] of Object.entries(attribution)) {\n if (isPrimitiveValue(value)) {\n attributes[`${KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX}${key}`] = value;\n }\n }\n\n return attributes;\n};\n\nconst loafScriptsAttribution = (\n metric: MetricWithAttribution,\n diag: DiagLogger,\n): Attributes => {\n const attributes: Attributes = {};\n const attribution = metric.attribution as INPAttribution;\n\n try {\n // Suppress LoAF baseline errors\n /* eslint-disable baseline-js/use-baseline */\n if (attribution.longAnimationFrameEntries.length > 0) {\n const scripts = new Map<\n string,\n {\n totalDuration: number;\n styleAndLayoutDuration: number;\n count: number;\n }\n >();\n for (const entry of attribution.longAnimationFrameEntries) {\n for (const script of entry.scripts) {\n let url = script.sourceURL || '(inline)';\n if (url.length > MAX_LOAF_SCRIPT_URL_LENGTH) {\n url = `${url.substring(0, MAX_LOAF_SCRIPT_URL_LENGTH)}...`;\n }\n const existing = scripts.get(url);\n if (existing) {\n existing.totalDuration += script.duration;\n existing.styleAndLayoutDuration +=\n script.forcedStyleAndLayoutDuration;\n existing.count++;\n } else {\n scripts.set(url, {\n count: 1,\n styleAndLayoutDuration: script.forcedStyleAndLayoutDuration,\n totalDuration: script.duration,\n });\n }\n }\n }\n if (scripts.size > 0) {\n attributes[`${KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX}loaf_scripts`] =\n JSON.stringify(\n Object.fromEntries(\n [...scripts]\n .sort((a, b) => b[1].totalDuration - a[1].totalDuration)\n .slice(0, MAX_LOAF_SCRIPT_ENTRIES)\n .map(([url, script]) => [\n url,\n {\n count: script.count,\n style_and_layout_duration: Math.round(\n script.styleAndLayoutDuration,\n ),\n total_duration: Math.round(script.totalDuration),\n },\n ]),\n ),\n );\n }\n }\n /* eslint-enable baseline-js/use-baseline */\n } catch (error) {\n diag.error('error building loaf scripts for INP', error);\n }\n\n return attributes;\n};\n\nconst ttfbSubPartsAttribution = (\n metric: MetricWithAttribution,\n diag: DiagLogger,\n): Attributes => {\n const attributes: Attributes = {};\n const attribution = metric.attribution as TTFBAttribution;\n const entry = attribution.navigationEntry as\n | PerformanceNavigationTiming\n | undefined;\n\n if (entry) {\n try {\n const redirect = roundClamp(entry.redirectEnd - entry.redirectStart);\n const domainLookup = roundClamp(\n entry.domainLookupEnd - entry.domainLookupStart,\n );\n const tcpConnection = roundClamp(\n entry.secureConnectionStart > 0\n ? entry.secureConnectionStart - entry.connectStart\n : entry.connectEnd - entry.connectStart,\n );\n const tlsNegotiation = roundClamp(\n entry.secureConnectionStart > 0\n ? entry.connectEnd - entry.secureConnectionStart\n : 0,\n );\n const effectiveResponseStart = Math.max(\n // @ts-expect-error 103 Early hints are not supported in all browsers\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/finalResponseHeadersStart\n entry.finalResponseHeadersStart ?? 0,\n entry.responseStart,\n );\n const serverResponse = roundClamp(\n effectiveResponseStart - entry.requestStart,\n );\n const total = Math.round(entry.responseEnd - entry.startTime);\n const unattributed = roundClamp(\n total -\n redirect -\n domainLookup -\n tcpConnection -\n tlsNegotiation -\n serverResponse,\n );\n const prefix = KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX;\n attributes[`${prefix}redirect`] = redirect;\n attributes[`${prefix}domainLookup`] = domainLookup;\n attributes[`${prefix}tcpConnection`] = tcpConnection;\n attributes[`${prefix}tlsNegotiation`] = tlsNegotiation;\n attributes[`${prefix}serverResponse`] = serverResponse;\n attributes[`${prefix}unattributed`] = unattributed;\n } catch (error) {\n diag.error('error computing TTFB timing breakdown', error);\n }\n } else {\n diag.debug('TTFB navigationEntry unavailable, skipping timing breakdown');\n }\n\n return attributes;\n};\n\nexport class WebVitalsInstrumentation extends MXLInstrumentationBase {\n private readonly _listeners: WebVitalListeners;\n private readonly _urlDocument: URLDocument;\n private readonly _urlAttribution: boolean;\n private readonly _pageManager: PageManager;\n private readonly _attributedPage: Record<\n Metric['name'],\n AttributedPage | undefined\n > = {\n CLS: undefined,\n FCP: undefined,\n INP: undefined,\n LCP: undefined,\n TTFB: undefined,\n };\n private _largestShiftTargetForCLS: string | undefined;\n private _listenersRegistered = false;\n private _isEnabled = false;\n\n // Instrumentation that adds an event to the session span for each web vital report\n public constructor({\n diag,\n perf,\n listeners = WEB_VITALS_ID_TO_LISTENER,\n urlDocument = window.document,\n urlAttribution = true,\n pageManager,\n }: WebVitalsInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'WebVitalsInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n this._listeners = listeners;\n this._urlDocument = urlDocument;\n this._urlAttribution = urlAttribution;\n this._pageManager = pageManager ?? page.getPageManager();\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n public override disable(): void {\n // Web-vitals library doesn't support removing listeners, so we just pause emission\n // https://github.com/GoogleChrome/web-vitals/issues/357#issuecomment-1593439036\n this._isEnabled = false;\n this._diag.debug('WebVitalsInstrumentation disabled, pausing emission');\n }\n\n public enable(): void {\n this._isEnabled = true;\n\n // Web-vitals library doesn't support removing listeners, so only register once\n if (this._listenersRegistered) {\n this._diag.debug(\n 'WebVitalsInstrumentation listeners already registered, resuming emission',\n );\n return;\n }\n this._listenersRegistered = true;\n\n ALL_WEB_VITALS.forEach((name) => {\n this._listeners[name]?.((metric) => {\n if (!this._isEnabled) {\n return;\n }\n\n const currentSessionSpan = this.userSessionManager.getSessionPartSpan();\n\n if (!currentSessionSpan) {\n return;\n }\n\n // First thing record the time when this cb was invoked\n const metricTime = this._getTimeForMetric(metric);\n\n const attributedPage = this._getAttributedPageForMetric(metric);\n\n const attrs: Attributes = {\n [KEY_MXL_TYPE]: MXL_TYPES.WebVital,\n [ATTR_URL_FULL]: attributedPage.fullURL,\n [KEY_BROWSER_URL_FULL]: attributedPage.fullURL,\n [KEY_MXL_WEB_VITAL_NAVIGATION_TYPE]: metric.navigationType,\n [KEY_MXL_WEB_VITAL_NAME]: metric.name,\n [KEY_MXL_WEB_VITAL_RATING]: metric.rating,\n [KEY_MXL_WEB_VITAL_ID]: metric.id,\n [KEY_MXL_WEB_VITAL_DELTA]: metric.delta,\n [KEY_MXL_WEB_VITAL_VALUE]: metric.value,\n ...webVitalAttributionToReport(metric),\n ...(name === 'INP' ? loafScriptsAttribution(metric, this._diag) : {}),\n ...(name === 'TTFB'\n ? ttfbSubPartsAttribution(metric, this._diag)\n : {}),\n };\n\n // Add page attributes if route and page ID exist\n if (attributedPage.path && attributedPage.pageID) {\n attrs[KEY_MXL_PAGE_PATH] = attributedPage.path;\n attrs[KEY_MXL_PAGE_ID] = attributedPage.pageID;\n }\n\n if (attributedPage.label) {\n attrs[KEY_APP_SURFACE_LABEL] = attributedPage.label;\n }\n\n currentSessionSpan.addEvent(\n `${MXL_WEB_VITALS_PREFIX}-report-${name}`,\n attrs,\n metricTime,\n );\n });\n });\n\n if (this._urlAttribution) {\n // When these web vitals make their final report (e.g. when the listeners w/ reportAllChanges=false trigger) the\n // Document's URL at that time may not match what it was at the time the scores were last updated. Instead, listen\n // For updates to the scores and keep track of the Page information to attribute for each\n this._listeners.TTFB?.(\n () => {\n this._attributedPage.TTFB = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.FCP?.(\n () => {\n this._attributedPage.FCP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.INP?.(\n () => {\n this._attributedPage.INP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.LCP?.(\n () => {\n this._attributedPage.LCP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.CLS?.(\n (metric: MetricWithAttribution) => {\n const clsMetric = metric as CLSMetricWithAttribution;\n // A layout shift could cause CLS to change its rating but because the score is cumulative this might not\n // Correspond with an updated `largestShiftTarget`. Since we want to tie the attributed URL to the page that\n // The `largestShiftTarget` was on we only update the attributed URL if that target has changed\n if (\n this._largestShiftTargetForCLS !==\n clsMetric.attribution.largestShiftTarget\n ) {\n this._largestShiftTargetForCLS =\n clsMetric.attribution.largestShiftTarget;\n this._attributedPage.CLS = this._currentAttributedPage();\n }\n },\n {\n reportAllChanges: true,\n },\n );\n }\n }\n\n private _getTimeForMetric(metric: MetricWithAttribution): number {\n if (metric.name === 'CLS' && metric.attribution.largestShiftTime) {\n return this.perf.epochMillisFromOriginOffset(\n metric.attribution.largestShiftTime,\n );\n }\n\n if (metric.name === 'INP' && metric.attribution.interactionTime) {\n return this.perf.epochMillisFromOriginOffset(\n metric.attribution.interactionTime,\n );\n }\n\n return this.perf.getNowMillis();\n }\n\n private _currentAttributedPage(): AttributedPage {\n const attributed: AttributedPage = {\n fullURL: this._urlDocument.URL,\n };\n\n const currentRoute = this._pageManager.getCurrentRoute();\n const currentPageId = this._pageManager.getCurrentPageId();\n if (currentRoute && currentPageId) {\n attributed.path = currentRoute.path;\n attributed.pageID = currentPageId;\n }\n\n const pageLabel = this._pageManager.getPageLabel();\n if (pageLabel) {\n attributed.label = pageLabel;\n }\n\n return attributed;\n }\n\n private _getAttributedPageForMetric(\n metric: MetricWithAttribution,\n ): AttributedPage {\n if (metric.name === 'FCP' && this._attributedPage.FCP) {\n return this._attributedPage.FCP;\n }\n\n if (metric.name === 'TTFB' && this._attributedPage.TTFB) {\n return this._attributedPage.TTFB;\n }\n\n if (metric.name === 'INP' && this._attributedPage.INP) {\n return this._attributedPage.INP;\n }\n\n if (metric.name === 'LCP' && this._attributedPage.LCP) {\n return this._attributedPage.LCP;\n }\n\n if (\n metric.name === 'CLS' &&\n this._attributedPage.CLS &&\n metric.attribution.largestShiftTarget === this._largestShiftTargetForCLS\n ) {\n return this._attributedPage.CLS;\n }\n\n return this._currentAttributedPage();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebVitalsInstrumentation.cjs","names":["KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX","MAX_LOAF_SCRIPT_URL_LENGTH","MXLInstrumentationBase","WEB_VITALS_ID_TO_LISTENER","page","KEY_MXL_TYPE","ATTR_URL_FULL","KEY_BROWSER_URL_FULL","KEY_MXL_WEB_VITAL_NAVIGATION_TYPE","KEY_MXL_WEB_VITAL_NAME","KEY_MXL_WEB_VITAL_RATING","KEY_MXL_WEB_VITAL_ID","KEY_MXL_WEB_VITAL_DELTA","KEY_MXL_WEB_VITAL_VALUE","KEY_MXL_PAGE_PATH","KEY_MXL_PAGE_ID","KEY_APP_SURFACE_LABEL","MXL_WEB_VITALS_PREFIX"],"sources":["../../../../src/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.ts"],"sourcesContent":["import type {\n AttributeValue,\n Attributes,\n DiagLogger,\n} from '@opentelemetry/api';\nimport { ATTR_URL_FULL } from '@opentelemetry/semantic-conventions';\nimport type {\n CLSMetricWithAttribution,\n INPAttribution,\n Metric,\n MetricWithAttribution,\n TTFBAttribution,\n} from 'web-vitals/attribution';\nimport type { PageManager } from '../../../api-page/manager/types';\nimport { page } from '../../../api-page/pageAPI';\nimport type { URLDocument } from '../../../common/types';\nimport {\n KEY_APP_SURFACE_LABEL,\n KEY_BROWSER_URL_FULL,\n KEY_MXL_PAGE_ID,\n KEY_MXL_PAGE_PATH,\n KEY_MXL_TYPE,\n MXL_TYPES,\n} from '../../../constants/attributes';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/MXLInstrumentationBase';\nimport {\n KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX,\n KEY_MXL_WEB_VITAL_DELTA,\n KEY_MXL_WEB_VITAL_ID,\n KEY_MXL_WEB_VITAL_NAME,\n KEY_MXL_WEB_VITAL_NAVIGATION_TYPE,\n KEY_MXL_WEB_VITAL_RATING,\n KEY_MXL_WEB_VITAL_VALUE,\n} from './attributes';\nimport {\n ALL_WEB_VITALS,\n MAX_LOAF_SCRIPT_ENTRIES,\n MAX_LOAF_SCRIPT_URL_LENGTH,\n MXL_WEB_VITALS_PREFIX,\n WEB_VITALS_ID_TO_LISTENER,\n} from './constants';\nimport type { WebVitalListeners, WebVitalsInstrumentationArgs } from './types';\n\ninterface AttributedPage {\n fullURL: string;\n path?: string;\n pageID?: string;\n label?: string;\n}\n\nconst isPrimitiveValue = (value: unknown): value is AttributeValue => {\n const type = typeof value;\n return type === 'number' || type === 'string' || type === 'boolean';\n};\n\nconst roundClamp = (value: number): number => Math.round(Math.max(0, value));\n\nconst webVitalAttributionToReport = (\n metric: MetricWithAttribution,\n): Attributes => {\n const attributes: Attributes = {};\n const { attribution } = metric;\n\n if (!attribution || typeof attribution !== 'object') {\n return attributes;\n }\n\n for (const [key, value] of Object.entries(attribution)) {\n if (isPrimitiveValue(value)) {\n attributes[`${KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX}${key}`] = value;\n }\n }\n\n return attributes;\n};\n\nconst loafScriptsAttribution = (\n metric: MetricWithAttribution,\n diag: DiagLogger,\n): Attributes => {\n const attributes: Attributes = {};\n const attribution = metric.attribution as INPAttribution;\n\n try {\n // Suppress LoAF baseline errors\n /* eslint-disable baseline-js/use-baseline */\n if (attribution.longAnimationFrameEntries.length > 0) {\n const scripts = new Map<\n string,\n {\n totalDuration: number;\n styleAndLayoutDuration: number;\n count: number;\n }\n >();\n for (const entry of attribution.longAnimationFrameEntries) {\n for (const script of entry.scripts) {\n let url = script.sourceURL || '(inline)';\n if (url.length > MAX_LOAF_SCRIPT_URL_LENGTH) {\n url = `${url.substring(0, MAX_LOAF_SCRIPT_URL_LENGTH)}...`;\n }\n const existing = scripts.get(url);\n if (existing) {\n existing.totalDuration += script.duration;\n existing.styleAndLayoutDuration +=\n script.forcedStyleAndLayoutDuration;\n existing.count++;\n } else {\n scripts.set(url, {\n count: 1,\n styleAndLayoutDuration: script.forcedStyleAndLayoutDuration,\n totalDuration: script.duration,\n });\n }\n }\n }\n if (scripts.size > 0) {\n attributes[`${KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX}loaf_scripts`] =\n JSON.stringify(\n Object.fromEntries(\n [...scripts]\n .sort((a, b) => b[1].totalDuration - a[1].totalDuration)\n .slice(0, MAX_LOAF_SCRIPT_ENTRIES)\n .map(([url, script]) => [\n url,\n {\n count: script.count,\n style_and_layout_duration: Math.round(\n script.styleAndLayoutDuration,\n ),\n total_duration: Math.round(script.totalDuration),\n },\n ]),\n ),\n );\n }\n }\n /* eslint-enable baseline-js/use-baseline */\n } catch (error) {\n diag.error('error building loaf scripts for INP', error);\n }\n\n return attributes;\n};\n\nconst ttfbSubPartsAttribution = (\n metric: MetricWithAttribution,\n diag: DiagLogger,\n): Attributes => {\n const attributes: Attributes = {};\n const attribution = metric.attribution as TTFBAttribution;\n const entry = attribution.navigationEntry as\n | PerformanceNavigationTiming\n | undefined;\n\n if (entry) {\n try {\n const redirect = roundClamp(entry.redirectEnd - entry.redirectStart);\n const domainLookup = roundClamp(\n entry.domainLookupEnd - entry.domainLookupStart,\n );\n const tcpConnection = roundClamp(\n entry.secureConnectionStart > 0\n ? entry.secureConnectionStart - entry.connectStart\n : entry.connectEnd - entry.connectStart,\n );\n const tlsNegotiation = roundClamp(\n entry.secureConnectionStart > 0\n ? entry.connectEnd - entry.secureConnectionStart\n : 0,\n );\n const effectiveResponseStart = Math.max(\n // @ts-expect-error 103 Early hints are not supported in all browsers\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/finalResponseHeadersStart\n entry.finalResponseHeadersStart ?? 0,\n entry.responseStart,\n );\n const serverResponse = roundClamp(\n effectiveResponseStart - entry.requestStart,\n );\n const total = Math.round(entry.responseEnd - entry.startTime);\n const unattributed = roundClamp(\n total -\n redirect -\n domainLookup -\n tcpConnection -\n tlsNegotiation -\n serverResponse,\n );\n const prefix = KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX;\n attributes[`${prefix}redirect`] = redirect;\n attributes[`${prefix}domainLookup`] = domainLookup;\n attributes[`${prefix}tcpConnection`] = tcpConnection;\n attributes[`${prefix}tlsNegotiation`] = tlsNegotiation;\n attributes[`${prefix}serverResponse`] = serverResponse;\n attributes[`${prefix}unattributed`] = unattributed;\n } catch (error) {\n diag.error('error computing TTFB timing breakdown', error);\n }\n } else {\n diag.debug('TTFB navigationEntry unavailable, skipping timing breakdown');\n }\n\n return attributes;\n};\n\nexport class WebVitalsInstrumentation extends MXLInstrumentationBase {\n private readonly _listeners: WebVitalListeners;\n private readonly _urlDocument: URLDocument;\n private readonly _urlAttribution: boolean;\n private readonly _pageManager: PageManager;\n private readonly _attributedPage: Record<\n Metric['name'],\n AttributedPage | undefined\n > = {\n CLS: undefined,\n FCP: undefined,\n INP: undefined,\n LCP: undefined,\n TTFB: undefined,\n };\n private _largestShiftTargetForCLS: string | undefined;\n private _listenersRegistered = false;\n private _isEnabled = false;\n\n // Instrumentation that adds an event to the session span for each web vital report\n public constructor({\n diag,\n perf,\n listeners = WEB_VITALS_ID_TO_LISTENER,\n urlDocument = window.document,\n urlAttribution = true,\n pageManager,\n }: WebVitalsInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'WebVitalsInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n this._listeners = listeners;\n this._urlDocument = urlDocument;\n this._urlAttribution = urlAttribution;\n this._pageManager = pageManager ?? page.getPageManager();\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n public override disable(): void {\n // Web-vitals library doesn't support removing listeners, so we just pause emission\n // https://github.com/GoogleChrome/web-vitals/issues/357#issuecomment-1593439036\n this._isEnabled = false;\n this._diag.debug('WebVitalsInstrumentation disabled, pausing emission');\n }\n\n public enable(): void {\n this._isEnabled = true;\n\n // Web-vitals library doesn't support removing listeners, so only register once\n if (this._listenersRegistered) {\n this._diag.debug(\n 'WebVitalsInstrumentation listeners already registered, resuming emission',\n );\n return;\n }\n this._listenersRegistered = true;\n\n ALL_WEB_VITALS.forEach((name) => {\n this._listeners[name]?.((metric) => {\n if (!this._isEnabled) {\n return;\n }\n\n const currentSessionSpan = this.userSessionManager.getSessionPartSpan();\n\n if (!currentSessionSpan) {\n return;\n }\n\n // First thing record the time when this cb was invoked\n const metricTime = this._getTimeForMetric(metric);\n\n const attributedPage = this._getAttributedPageForMetric(metric);\n\n const attrs: Attributes = {\n [KEY_MXL_TYPE]: MXL_TYPES.WebVital,\n [ATTR_URL_FULL]: attributedPage.fullURL,\n [KEY_BROWSER_URL_FULL]: attributedPage.fullURL,\n [KEY_MXL_WEB_VITAL_NAVIGATION_TYPE]: metric.navigationType,\n [KEY_MXL_WEB_VITAL_NAME]: metric.name,\n [KEY_MXL_WEB_VITAL_RATING]: metric.rating,\n [KEY_MXL_WEB_VITAL_ID]: metric.id,\n [KEY_MXL_WEB_VITAL_DELTA]: metric.delta,\n [KEY_MXL_WEB_VITAL_VALUE]: metric.value,\n ...webVitalAttributionToReport(metric),\n ...(name === 'INP' ? loafScriptsAttribution(metric, this._diag) : {}),\n ...(name === 'TTFB'\n ? ttfbSubPartsAttribution(metric, this._diag)\n : {}),\n };\n\n // Add page attributes if route and page ID exist\n if (attributedPage.path && attributedPage.pageID) {\n attrs[KEY_MXL_PAGE_PATH] = attributedPage.path;\n attrs[KEY_MXL_PAGE_ID] = attributedPage.pageID;\n }\n\n if (attributedPage.label) {\n attrs[KEY_APP_SURFACE_LABEL] = attributedPage.label;\n }\n\n currentSessionSpan.addEvent(\n `${MXL_WEB_VITALS_PREFIX}-report-${name}`,\n attrs,\n metricTime,\n );\n });\n });\n\n if (this._urlAttribution) {\n // When these web vitals make their final report (e.g. when the listeners w/ reportAllChanges=false trigger) the\n // Document's URL at that time may not match what it was at the time the scores were last updated. Instead, listen\n // For updates to the scores and keep track of the Page information to attribute for each\n this._listeners.TTFB?.(\n () => {\n this._attributedPage.TTFB = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.FCP?.(\n () => {\n this._attributedPage.FCP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.INP?.(\n () => {\n this._attributedPage.INP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.LCP?.(\n () => {\n this._attributedPage.LCP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.CLS?.(\n (metric: MetricWithAttribution) => {\n const clsMetric = metric as CLSMetricWithAttribution;\n // A layout shift could cause CLS to change its rating but because the score is cumulative this might not\n // Correspond with an updated `largestShiftTarget`. Since we want to tie the attributed URL to the page that\n // The `largestShiftTarget` was on we only update the attributed URL if that target has changed\n if (\n this._largestShiftTargetForCLS !==\n clsMetric.attribution.largestShiftTarget\n ) {\n this._largestShiftTargetForCLS =\n clsMetric.attribution.largestShiftTarget;\n this._attributedPage.CLS = this._currentAttributedPage();\n }\n },\n {\n reportAllChanges: true,\n },\n );\n }\n }\n\n private _getTimeForMetric(metric: MetricWithAttribution): number {\n if (metric.name === 'CLS' && metric.attribution.largestShiftTime) {\n return this.perf.epochMillisFromOriginOffset(\n metric.attribution.largestShiftTime,\n );\n }\n\n if (metric.name === 'INP' && metric.attribution.interactionTime) {\n return this.perf.epochMillisFromOriginOffset(\n metric.attribution.interactionTime,\n );\n }\n\n return this.perf.getNowMillis();\n }\n\n private _currentAttributedPage(): AttributedPage {\n const attributed: AttributedPage = {\n fullURL: this._urlDocument.URL,\n };\n\n const currentRoute = this._pageManager.getCurrentRoute();\n const currentPageId = this._pageManager.getCurrentPageId();\n if (currentRoute && currentPageId) {\n attributed.path = currentRoute.path;\n attributed.pageID = currentPageId;\n }\n\n const pageLabel = this._pageManager.getPageLabel();\n if (pageLabel) {\n attributed.label = pageLabel;\n }\n\n return attributed;\n }\n\n private _getAttributedPageForMetric(\n metric: MetricWithAttribution,\n ): AttributedPage {\n if (metric.name === 'FCP' && this._attributedPage.FCP) {\n return this._attributedPage.FCP;\n }\n\n if (metric.name === 'TTFB' && this._attributedPage.TTFB) {\n return this._attributedPage.TTFB;\n }\n\n if (metric.name === 'INP' && this._attributedPage.INP) {\n return this._attributedPage.INP;\n }\n\n if (metric.name === 'LCP' && this._attributedPage.LCP) {\n return this._attributedPage.LCP;\n }\n\n if (\n metric.name === 'CLS' &&\n this._attributedPage.CLS &&\n metric.attribution.largestShiftTarget === this._largestShiftTargetForCLS\n ) {\n return this._attributedPage.CLS;\n }\n\n return this._currentAttributedPage();\n }\n}\n"],"mappings":"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"}
|
package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebVitalsInstrumentation.d.cts","names":[],"sources":["../../../../src/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"WebVitalsInstrumentation.d.cts","names":[],"sources":["../../../../src/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.ts"],"mappings":";;;;cA8Ma,wBAAA,SAAiC,sBAAA;EAAA,iBAC3B,UAAA;EAAA,iBACA,YAAA;EAAA,iBACA,eAAA;EAAA,iBACA,YAAA;EAAA,iBACA,eAAA;EAAA,QAUT,yBAAA;EAAA,QACA,oBAAA;EAAA,QACA,UAAA;;IAIN,IAAA;IACA,IAAA;IACA,SAAA;IACA,WAAA;IACA,cAAA;IACA;EAAA,IACC,4BAAA;EAkBa,OAAA,CAAA;EAOT,MAAA,CAAA;EAAA,QA0HC,iBAAA;EAAA,QAgBA,sBAAA;EAAA,QAoBA,2BAAA;AAAA"}
|
package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebVitalsInstrumentation.d.ts","names":[],"sources":["../../../../src/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"WebVitalsInstrumentation.d.ts","names":[],"sources":["../../../../src/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.ts"],"mappings":";;;;cA8Ma,wBAAA,SAAiC,sBAAA;EAAA,iBAC3B,UAAA;EAAA,iBACA,YAAA;EAAA,iBACA,eAAA;EAAA,iBACA,YAAA;EAAA,iBACA,eAAA;EAAA,QAUT,yBAAA;EAAA,QACA,oBAAA;EAAA,QACA,UAAA;;IAIN,IAAA;IACA,IAAA;IACA,SAAA;IACA,WAAA;IACA,cAAA;IACA;EAAA,IACC,4BAAA;EAkBa,OAAA,CAAA;EAOT,MAAA,CAAA;EAAA,QA0HC,iBAAA;EAAA,QAgBA,sBAAA;EAAA,QAoBA,2BAAA;AAAA"}
|
package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebVitalsInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.ts"],"sourcesContent":["import type {\n AttributeValue,\n Attributes,\n DiagLogger,\n} from '@opentelemetry/api';\nimport { ATTR_URL_FULL } from '@opentelemetry/semantic-conventions';\nimport type {\n CLSMetricWithAttribution,\n INPAttribution,\n Metric,\n MetricWithAttribution,\n TTFBAttribution,\n} from 'web-vitals/attribution';\nimport type { PageManager } from '../../../api-page/manager/types';\nimport { page } from '../../../api-page/pageAPI';\nimport type { URLDocument } from '../../../common/types';\nimport { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_TYPE, MXL_TYPES } from '../../../constants/attributes';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/MXLInstrumentationBase';\nimport {\n KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX,\n KEY_MXL_WEB_VITAL_DELTA,\n KEY_MXL_WEB_VITAL_ID,\n KEY_MXL_WEB_VITAL_NAME,\n KEY_MXL_WEB_VITAL_NAVIGATION_TYPE,\n KEY_MXL_WEB_VITAL_RATING,\n KEY_MXL_WEB_VITAL_VALUE,\n} from './attributes';\nimport {\n ALL_WEB_VITALS,\n MAX_LOAF_SCRIPT_ENTRIES,\n MAX_LOAF_SCRIPT_URL_LENGTH,\n MXL_WEB_VITALS_PREFIX,\n WEB_VITALS_ID_TO_LISTENER,\n} from './constants';\nimport type { WebVitalListeners, WebVitalsInstrumentationArgs } from './types';\n\ninterface AttributedPage {\n fullURL: string;\n path?: string;\n pageID?: string;\n label?: string;\n}\n\nconst isPrimitiveValue = (value: unknown): value is AttributeValue => {\n const type = typeof value;\n return type === 'number' || type === 'string' || type === 'boolean';\n};\n\nconst roundClamp = (value: number): number => Math.round(Math.max(0, value));\n\nconst webVitalAttributionToReport = (\n metric: MetricWithAttribution,\n): Attributes => {\n const attributes: Attributes = {};\n const { attribution } = metric;\n\n if (!attribution || typeof attribution !== 'object') {\n return attributes;\n }\n\n for (const [key, value] of Object.entries(attribution)) {\n if (isPrimitiveValue(value)) {\n attributes[`${KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX}${key}`] = value;\n }\n }\n\n return attributes;\n};\n\nconst loafScriptsAttribution = (\n metric: MetricWithAttribution,\n diag: DiagLogger,\n): Attributes => {\n const attributes: Attributes = {};\n const attribution = metric.attribution as INPAttribution;\n\n try {\n // Suppress LoAF baseline errors\n /* eslint-disable baseline-js/use-baseline */\n if (attribution.longAnimationFrameEntries.length > 0) {\n const scripts = new Map<\n string,\n {\n totalDuration: number;\n styleAndLayoutDuration: number;\n count: number;\n }\n >();\n for (const entry of attribution.longAnimationFrameEntries) {\n for (const script of entry.scripts) {\n let url = script.sourceURL || '(inline)';\n if (url.length > MAX_LOAF_SCRIPT_URL_LENGTH) {\n url = `${url.substring(0, MAX_LOAF_SCRIPT_URL_LENGTH)}...`;\n }\n const existing = scripts.get(url);\n if (existing) {\n existing.totalDuration += script.duration;\n existing.styleAndLayoutDuration +=\n script.forcedStyleAndLayoutDuration;\n existing.count++;\n } else {\n scripts.set(url, {\n count: 1,\n styleAndLayoutDuration: script.forcedStyleAndLayoutDuration,\n totalDuration: script.duration,\n });\n }\n }\n }\n if (scripts.size > 0) {\n attributes[`${KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX}loaf_scripts`] =\n JSON.stringify(\n Object.fromEntries(\n [...scripts]\n .sort((a, b) => b[1].totalDuration - a[1].totalDuration)\n .slice(0, MAX_LOAF_SCRIPT_ENTRIES)\n .map(([url, script]) => [\n url,\n {\n count: script.count,\n style_and_layout_duration: Math.round(\n script.styleAndLayoutDuration,\n ),\n total_duration: Math.round(script.totalDuration),\n },\n ]),\n ),\n );\n }\n }\n /* eslint-enable baseline-js/use-baseline */\n } catch (error) {\n diag.error('error building loaf scripts for INP', error);\n }\n\n return attributes;\n};\n\nconst ttfbSubPartsAttribution = (\n metric: MetricWithAttribution,\n diag: DiagLogger,\n): Attributes => {\n const attributes: Attributes = {};\n const attribution = metric.attribution as TTFBAttribution;\n const entry = attribution.navigationEntry as\n | PerformanceNavigationTiming\n | undefined;\n\n if (entry) {\n try {\n const redirect = roundClamp(entry.redirectEnd - entry.redirectStart);\n const domainLookup = roundClamp(\n entry.domainLookupEnd - entry.domainLookupStart,\n );\n const tcpConnection = roundClamp(\n entry.secureConnectionStart > 0\n ? entry.secureConnectionStart - entry.connectStart\n : entry.connectEnd - entry.connectStart,\n );\n const tlsNegotiation = roundClamp(\n entry.secureConnectionStart > 0\n ? entry.connectEnd - entry.secureConnectionStart\n : 0,\n );\n const effectiveResponseStart = Math.max(\n // @ts-expect-error 103 Early hints are not supported in all browsers\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/finalResponseHeadersStart\n entry.finalResponseHeadersStart ?? 0,\n entry.responseStart,\n );\n const serverResponse = roundClamp(\n effectiveResponseStart - entry.requestStart,\n );\n const total = Math.round(entry.responseEnd - entry.startTime);\n const unattributed = roundClamp(\n total -\n redirect -\n domainLookup -\n tcpConnection -\n tlsNegotiation -\n serverResponse,\n );\n const prefix = KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX;\n attributes[`${prefix}redirect`] = redirect;\n attributes[`${prefix}domainLookup`] = domainLookup;\n attributes[`${prefix}tcpConnection`] = tcpConnection;\n attributes[`${prefix}tlsNegotiation`] = tlsNegotiation;\n attributes[`${prefix}serverResponse`] = serverResponse;\n attributes[`${prefix}unattributed`] = unattributed;\n } catch (error) {\n diag.error('error computing TTFB timing breakdown', error);\n }\n } else {\n diag.debug('TTFB navigationEntry unavailable, skipping timing breakdown');\n }\n\n return attributes;\n};\n\nexport class WebVitalsInstrumentation extends MXLInstrumentationBase {\n private readonly _listeners: WebVitalListeners;\n private readonly _urlDocument: URLDocument;\n private readonly _urlAttribution: boolean;\n private readonly _pageManager: PageManager;\n private readonly _attributedPage: Record<\n Metric['name'],\n AttributedPage | undefined\n > = {\n CLS: undefined,\n FCP: undefined,\n INP: undefined,\n LCP: undefined,\n TTFB: undefined,\n };\n private _largestShiftTargetForCLS: string | undefined;\n private _listenersRegistered = false;\n private _isEnabled = false;\n\n // Instrumentation that adds an event to the session span for each web vital report\n public constructor({\n diag,\n perf,\n listeners = WEB_VITALS_ID_TO_LISTENER,\n urlDocument = window.document,\n urlAttribution = true,\n pageManager,\n }: WebVitalsInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'WebVitalsInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n this._listeners = listeners;\n this._urlDocument = urlDocument;\n this._urlAttribution = urlAttribution;\n this._pageManager = pageManager ?? page.getPageManager();\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n public override disable(): void {\n // Web-vitals library doesn't support removing listeners, so we just pause emission\n // https://github.com/GoogleChrome/web-vitals/issues/357#issuecomment-1593439036\n this._isEnabled = false;\n this._diag.debug('WebVitalsInstrumentation disabled, pausing emission');\n }\n\n public enable(): void {\n this._isEnabled = true;\n\n // Web-vitals library doesn't support removing listeners, so only register once\n if (this._listenersRegistered) {\n this._diag.debug(\n 'WebVitalsInstrumentation listeners already registered, resuming emission',\n );\n return;\n }\n this._listenersRegistered = true;\n\n ALL_WEB_VITALS.forEach((name) => {\n this._listeners[name]?.((metric) => {\n if (!this._isEnabled) {\n return;\n }\n\n const currentSessionSpan = this.userSessionManager.getSessionPartSpan();\n\n if (!currentSessionSpan) {\n return;\n }\n\n // First thing record the time when this cb was invoked\n const metricTime = this._getTimeForMetric(metric);\n\n const attributedPage = this._getAttributedPageForMetric(metric);\n\n const attrs: Attributes = {\n [KEY_MXL_TYPE]: MXL_TYPES.WebVital,\n [ATTR_URL_FULL]: attributedPage.fullURL,\n [KEY_BROWSER_URL_FULL]: attributedPage.fullURL,\n [KEY_MXL_WEB_VITAL_NAVIGATION_TYPE]: metric.navigationType,\n [KEY_MXL_WEB_VITAL_NAME]: metric.name,\n [KEY_MXL_WEB_VITAL_RATING]: metric.rating,\n [KEY_MXL_WEB_VITAL_ID]: metric.id,\n [KEY_MXL_WEB_VITAL_DELTA]: metric.delta,\n [KEY_MXL_WEB_VITAL_VALUE]: metric.value,\n ...webVitalAttributionToReport(metric),\n ...(name === 'INP' ? loafScriptsAttribution(metric, this._diag) : {}),\n ...(name === 'TTFB'\n ? ttfbSubPartsAttribution(metric, this._diag)\n : {}),\n };\n\n // Add page attributes if route and page ID exist\n if (attributedPage.path && attributedPage.pageID) {\n attrs[KEY_MXL_PAGE_PATH] = attributedPage.path;\n attrs[KEY_MXL_PAGE_ID] = attributedPage.pageID;\n }\n\n if (attributedPage.label) {\n attrs[KEY_APP_SURFACE_LABEL] = attributedPage.label;\n }\n\n currentSessionSpan.addEvent(\n `${MXL_WEB_VITALS_PREFIX}-report-${name}`,\n attrs,\n metricTime,\n );\n });\n });\n\n if (this._urlAttribution) {\n // When these web vitals make their final report (e.g. when the listeners w/ reportAllChanges=false trigger) the\n // Document's URL at that time may not match what it was at the time the scores were last updated. Instead, listen\n // For updates to the scores and keep track of the Page information to attribute for each\n this._listeners.TTFB?.(\n () => {\n this._attributedPage.TTFB = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.FCP?.(\n () => {\n this._attributedPage.FCP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.INP?.(\n () => {\n this._attributedPage.INP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.LCP?.(\n () => {\n this._attributedPage.LCP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.CLS?.(\n (metric: MetricWithAttribution) => {\n const clsMetric = metric as CLSMetricWithAttribution;\n // A layout shift could cause CLS to change its rating but because the score is cumulative this might not\n // Correspond with an updated `largestShiftTarget`. Since we want to tie the attributed URL to the page that\n // The `largestShiftTarget` was on we only update the attributed URL if that target has changed\n if (\n this._largestShiftTargetForCLS !==\n clsMetric.attribution.largestShiftTarget\n ) {\n this._largestShiftTargetForCLS =\n clsMetric.attribution.largestShiftTarget;\n this._attributedPage.CLS = this._currentAttributedPage();\n }\n },\n {\n reportAllChanges: true,\n },\n );\n }\n }\n\n private _getTimeForMetric(metric: MetricWithAttribution): number {\n if (metric.name === 'CLS' && metric.attribution.largestShiftTime) {\n return this.perf.epochMillisFromOriginOffset(\n metric.attribution.largestShiftTime,\n );\n }\n\n if (metric.name === 'INP' && metric.attribution.interactionTime) {\n return this.perf.epochMillisFromOriginOffset(\n metric.attribution.interactionTime,\n );\n }\n\n return this.perf.getNowMillis();\n }\n\n private _currentAttributedPage(): AttributedPage {\n const attributed: AttributedPage = {\n fullURL: this._urlDocument.URL,\n };\n\n const currentRoute = this._pageManager.getCurrentRoute();\n const currentPageId = this._pageManager.getCurrentPageId();\n if (currentRoute && currentPageId) {\n attributed.path = currentRoute.path;\n attributed.pageID = currentPageId;\n }\n\n const pageLabel = this._pageManager.getPageLabel();\n if (pageLabel) {\n attributed.label = pageLabel;\n }\n\n return attributed;\n }\n\n private _getAttributedPageForMetric(\n metric: MetricWithAttribution,\n ): AttributedPage {\n if (metric.name === 'FCP' && this._attributedPage.FCP) {\n return this._attributedPage.FCP;\n }\n\n if (metric.name === 'TTFB' && this._attributedPage.TTFB) {\n return this._attributedPage.TTFB;\n }\n\n if (metric.name === 'INP' && this._attributedPage.INP) {\n return this._attributedPage.INP;\n }\n\n if (metric.name === 'LCP' && this._attributedPage.LCP) {\n return this._attributedPage.LCP;\n }\n\n if (\n metric.name === 'CLS' &&\n this._attributedPage.CLS &&\n metric.attribution.largestShiftTarget === this._largestShiftTargetForCLS\n ) {\n return this._attributedPage.CLS;\n }\n\n return this._currentAttributedPage();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebVitalsInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.ts"],"sourcesContent":["import type {\n AttributeValue,\n Attributes,\n DiagLogger,\n} from '@opentelemetry/api';\nimport { ATTR_URL_FULL } from '@opentelemetry/semantic-conventions';\nimport type {\n CLSMetricWithAttribution,\n INPAttribution,\n Metric,\n MetricWithAttribution,\n TTFBAttribution,\n} from 'web-vitals/attribution';\nimport type { PageManager } from '../../../api-page/manager/types';\nimport { page } from '../../../api-page/pageAPI';\nimport type { URLDocument } from '../../../common/types';\nimport {\n KEY_APP_SURFACE_LABEL,\n KEY_BROWSER_URL_FULL,\n KEY_MXL_PAGE_ID,\n KEY_MXL_PAGE_PATH,\n KEY_MXL_TYPE,\n MXL_TYPES,\n} from '../../../constants/attributes';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/MXLInstrumentationBase';\nimport {\n KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX,\n KEY_MXL_WEB_VITAL_DELTA,\n KEY_MXL_WEB_VITAL_ID,\n KEY_MXL_WEB_VITAL_NAME,\n KEY_MXL_WEB_VITAL_NAVIGATION_TYPE,\n KEY_MXL_WEB_VITAL_RATING,\n KEY_MXL_WEB_VITAL_VALUE,\n} from './attributes';\nimport {\n ALL_WEB_VITALS,\n MAX_LOAF_SCRIPT_ENTRIES,\n MAX_LOAF_SCRIPT_URL_LENGTH,\n MXL_WEB_VITALS_PREFIX,\n WEB_VITALS_ID_TO_LISTENER,\n} from './constants';\nimport type { WebVitalListeners, WebVitalsInstrumentationArgs } from './types';\n\ninterface AttributedPage {\n fullURL: string;\n path?: string;\n pageID?: string;\n label?: string;\n}\n\nconst isPrimitiveValue = (value: unknown): value is AttributeValue => {\n const type = typeof value;\n return type === 'number' || type === 'string' || type === 'boolean';\n};\n\nconst roundClamp = (value: number): number => Math.round(Math.max(0, value));\n\nconst webVitalAttributionToReport = (\n metric: MetricWithAttribution,\n): Attributes => {\n const attributes: Attributes = {};\n const { attribution } = metric;\n\n if (!attribution || typeof attribution !== 'object') {\n return attributes;\n }\n\n for (const [key, value] of Object.entries(attribution)) {\n if (isPrimitiveValue(value)) {\n attributes[`${KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX}${key}`] = value;\n }\n }\n\n return attributes;\n};\n\nconst loafScriptsAttribution = (\n metric: MetricWithAttribution,\n diag: DiagLogger,\n): Attributes => {\n const attributes: Attributes = {};\n const attribution = metric.attribution as INPAttribution;\n\n try {\n // Suppress LoAF baseline errors\n /* eslint-disable baseline-js/use-baseline */\n if (attribution.longAnimationFrameEntries.length > 0) {\n const scripts = new Map<\n string,\n {\n totalDuration: number;\n styleAndLayoutDuration: number;\n count: number;\n }\n >();\n for (const entry of attribution.longAnimationFrameEntries) {\n for (const script of entry.scripts) {\n let url = script.sourceURL || '(inline)';\n if (url.length > MAX_LOAF_SCRIPT_URL_LENGTH) {\n url = `${url.substring(0, MAX_LOAF_SCRIPT_URL_LENGTH)}...`;\n }\n const existing = scripts.get(url);\n if (existing) {\n existing.totalDuration += script.duration;\n existing.styleAndLayoutDuration +=\n script.forcedStyleAndLayoutDuration;\n existing.count++;\n } else {\n scripts.set(url, {\n count: 1,\n styleAndLayoutDuration: script.forcedStyleAndLayoutDuration,\n totalDuration: script.duration,\n });\n }\n }\n }\n if (scripts.size > 0) {\n attributes[`${KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX}loaf_scripts`] =\n JSON.stringify(\n Object.fromEntries(\n [...scripts]\n .sort((a, b) => b[1].totalDuration - a[1].totalDuration)\n .slice(0, MAX_LOAF_SCRIPT_ENTRIES)\n .map(([url, script]) => [\n url,\n {\n count: script.count,\n style_and_layout_duration: Math.round(\n script.styleAndLayoutDuration,\n ),\n total_duration: Math.round(script.totalDuration),\n },\n ]),\n ),\n );\n }\n }\n /* eslint-enable baseline-js/use-baseline */\n } catch (error) {\n diag.error('error building loaf scripts for INP', error);\n }\n\n return attributes;\n};\n\nconst ttfbSubPartsAttribution = (\n metric: MetricWithAttribution,\n diag: DiagLogger,\n): Attributes => {\n const attributes: Attributes = {};\n const attribution = metric.attribution as TTFBAttribution;\n const entry = attribution.navigationEntry as\n | PerformanceNavigationTiming\n | undefined;\n\n if (entry) {\n try {\n const redirect = roundClamp(entry.redirectEnd - entry.redirectStart);\n const domainLookup = roundClamp(\n entry.domainLookupEnd - entry.domainLookupStart,\n );\n const tcpConnection = roundClamp(\n entry.secureConnectionStart > 0\n ? entry.secureConnectionStart - entry.connectStart\n : entry.connectEnd - entry.connectStart,\n );\n const tlsNegotiation = roundClamp(\n entry.secureConnectionStart > 0\n ? entry.connectEnd - entry.secureConnectionStart\n : 0,\n );\n const effectiveResponseStart = Math.max(\n // @ts-expect-error 103 Early hints are not supported in all browsers\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/finalResponseHeadersStart\n entry.finalResponseHeadersStart ?? 0,\n entry.responseStart,\n );\n const serverResponse = roundClamp(\n effectiveResponseStart - entry.requestStart,\n );\n const total = Math.round(entry.responseEnd - entry.startTime);\n const unattributed = roundClamp(\n total -\n redirect -\n domainLookup -\n tcpConnection -\n tlsNegotiation -\n serverResponse,\n );\n const prefix = KEY_MXL_WEB_VITAL_ATTRIBUTION_PREFIX;\n attributes[`${prefix}redirect`] = redirect;\n attributes[`${prefix}domainLookup`] = domainLookup;\n attributes[`${prefix}tcpConnection`] = tcpConnection;\n attributes[`${prefix}tlsNegotiation`] = tlsNegotiation;\n attributes[`${prefix}serverResponse`] = serverResponse;\n attributes[`${prefix}unattributed`] = unattributed;\n } catch (error) {\n diag.error('error computing TTFB timing breakdown', error);\n }\n } else {\n diag.debug('TTFB navigationEntry unavailable, skipping timing breakdown');\n }\n\n return attributes;\n};\n\nexport class WebVitalsInstrumentation extends MXLInstrumentationBase {\n private readonly _listeners: WebVitalListeners;\n private readonly _urlDocument: URLDocument;\n private readonly _urlAttribution: boolean;\n private readonly _pageManager: PageManager;\n private readonly _attributedPage: Record<\n Metric['name'],\n AttributedPage | undefined\n > = {\n CLS: undefined,\n FCP: undefined,\n INP: undefined,\n LCP: undefined,\n TTFB: undefined,\n };\n private _largestShiftTargetForCLS: string | undefined;\n private _listenersRegistered = false;\n private _isEnabled = false;\n\n // Instrumentation that adds an event to the session span for each web vital report\n public constructor({\n diag,\n perf,\n listeners = WEB_VITALS_ID_TO_LISTENER,\n urlDocument = window.document,\n urlAttribution = true,\n pageManager,\n }: WebVitalsInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'WebVitalsInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n this._listeners = listeners;\n this._urlDocument = urlDocument;\n this._urlAttribution = urlAttribution;\n this._pageManager = pageManager ?? page.getPageManager();\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n public override disable(): void {\n // Web-vitals library doesn't support removing listeners, so we just pause emission\n // https://github.com/GoogleChrome/web-vitals/issues/357#issuecomment-1593439036\n this._isEnabled = false;\n this._diag.debug('WebVitalsInstrumentation disabled, pausing emission');\n }\n\n public enable(): void {\n this._isEnabled = true;\n\n // Web-vitals library doesn't support removing listeners, so only register once\n if (this._listenersRegistered) {\n this._diag.debug(\n 'WebVitalsInstrumentation listeners already registered, resuming emission',\n );\n return;\n }\n this._listenersRegistered = true;\n\n ALL_WEB_VITALS.forEach((name) => {\n this._listeners[name]?.((metric) => {\n if (!this._isEnabled) {\n return;\n }\n\n const currentSessionSpan = this.userSessionManager.getSessionPartSpan();\n\n if (!currentSessionSpan) {\n return;\n }\n\n // First thing record the time when this cb was invoked\n const metricTime = this._getTimeForMetric(metric);\n\n const attributedPage = this._getAttributedPageForMetric(metric);\n\n const attrs: Attributes = {\n [KEY_MXL_TYPE]: MXL_TYPES.WebVital,\n [ATTR_URL_FULL]: attributedPage.fullURL,\n [KEY_BROWSER_URL_FULL]: attributedPage.fullURL,\n [KEY_MXL_WEB_VITAL_NAVIGATION_TYPE]: metric.navigationType,\n [KEY_MXL_WEB_VITAL_NAME]: metric.name,\n [KEY_MXL_WEB_VITAL_RATING]: metric.rating,\n [KEY_MXL_WEB_VITAL_ID]: metric.id,\n [KEY_MXL_WEB_VITAL_DELTA]: metric.delta,\n [KEY_MXL_WEB_VITAL_VALUE]: metric.value,\n ...webVitalAttributionToReport(metric),\n ...(name === 'INP' ? loafScriptsAttribution(metric, this._diag) : {}),\n ...(name === 'TTFB'\n ? ttfbSubPartsAttribution(metric, this._diag)\n : {}),\n };\n\n // Add page attributes if route and page ID exist\n if (attributedPage.path && attributedPage.pageID) {\n attrs[KEY_MXL_PAGE_PATH] = attributedPage.path;\n attrs[KEY_MXL_PAGE_ID] = attributedPage.pageID;\n }\n\n if (attributedPage.label) {\n attrs[KEY_APP_SURFACE_LABEL] = attributedPage.label;\n }\n\n currentSessionSpan.addEvent(\n `${MXL_WEB_VITALS_PREFIX}-report-${name}`,\n attrs,\n metricTime,\n );\n });\n });\n\n if (this._urlAttribution) {\n // When these web vitals make their final report (e.g. when the listeners w/ reportAllChanges=false trigger) the\n // Document's URL at that time may not match what it was at the time the scores were last updated. Instead, listen\n // For updates to the scores and keep track of the Page information to attribute for each\n this._listeners.TTFB?.(\n () => {\n this._attributedPage.TTFB = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.FCP?.(\n () => {\n this._attributedPage.FCP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.INP?.(\n () => {\n this._attributedPage.INP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.LCP?.(\n () => {\n this._attributedPage.LCP = this._currentAttributedPage();\n },\n {\n reportAllChanges: true,\n },\n );\n this._listeners.CLS?.(\n (metric: MetricWithAttribution) => {\n const clsMetric = metric as CLSMetricWithAttribution;\n // A layout shift could cause CLS to change its rating but because the score is cumulative this might not\n // Correspond with an updated `largestShiftTarget`. Since we want to tie the attributed URL to the page that\n // The `largestShiftTarget` was on we only update the attributed URL if that target has changed\n if (\n this._largestShiftTargetForCLS !==\n clsMetric.attribution.largestShiftTarget\n ) {\n this._largestShiftTargetForCLS =\n clsMetric.attribution.largestShiftTarget;\n this._attributedPage.CLS = this._currentAttributedPage();\n }\n },\n {\n reportAllChanges: true,\n },\n );\n }\n }\n\n private _getTimeForMetric(metric: MetricWithAttribution): number {\n if (metric.name === 'CLS' && metric.attribution.largestShiftTime) {\n return this.perf.epochMillisFromOriginOffset(\n metric.attribution.largestShiftTime,\n );\n }\n\n if (metric.name === 'INP' && metric.attribution.interactionTime) {\n return this.perf.epochMillisFromOriginOffset(\n metric.attribution.interactionTime,\n );\n }\n\n return this.perf.getNowMillis();\n }\n\n private _currentAttributedPage(): AttributedPage {\n const attributed: AttributedPage = {\n fullURL: this._urlDocument.URL,\n };\n\n const currentRoute = this._pageManager.getCurrentRoute();\n const currentPageId = this._pageManager.getCurrentPageId();\n if (currentRoute && currentPageId) {\n attributed.path = currentRoute.path;\n attributed.pageID = currentPageId;\n }\n\n const pageLabel = this._pageManager.getPageLabel();\n if (pageLabel) {\n attributed.label = pageLabel;\n }\n\n return attributed;\n }\n\n private _getAttributedPageForMetric(\n metric: MetricWithAttribution,\n ): AttributedPage {\n if (metric.name === 'FCP' && this._attributedPage.FCP) {\n return this._attributedPage.FCP;\n }\n\n if (metric.name === 'TTFB' && this._attributedPage.TTFB) {\n return this._attributedPage.TTFB;\n }\n\n if (metric.name === 'INP' && this._attributedPage.INP) {\n return this._attributedPage.INP;\n }\n\n if (metric.name === 'LCP' && this._attributedPage.LCP) {\n return this._attributedPage.LCP;\n }\n\n if (\n metric.name === 'CLS' &&\n this._attributedPage.CLS &&\n metric.attribution.largestShiftTarget === this._largestShiftTargetForCLS\n ) {\n return this._attributedPage.CLS;\n }\n\n return this._currentAttributedPage();\n }\n}\n"],"mappings":";;;;;;;AAkDA,MAAM,oBAAoB,UAA4C;CACpE,MAAM,OAAO,OAAO;AACpB,QAAO,SAAS,YAAY,SAAS,YAAY,SAAS;;AAG5D,MAAM,cAAc,UAA0B,KAAK,MAAM,KAAK,IAAI,GAAG,MAAM,CAAC;AAE5E,MAAM,+BACJ,WACe;CACf,MAAM,aAAyB,EAAE;CACjC,MAAM,EAAE,gBAAgB;AAExB,KAAI,CAAC,eAAe,OAAO,gBAAgB,SACzC,QAAO;AAGT,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,YAAY,CACpD,KAAI,iBAAiB,MAAM,CACzB,YAAW,GAAG,uCAAuC,SAAS;AAIlE,QAAO;;AAGT,MAAM,0BACJ,QACA,SACe;CACf,MAAM,aAAyB,EAAE;CACjC,MAAM,cAAc,OAAO;AAE3B,KAAI;AAGF,MAAI,YAAY,0BAA0B,SAAS,GAAG;GACpD,MAAM,0BAAU,IAAI,KAOjB;AACH,QAAK,MAAM,SAAS,YAAY,0BAC9B,MAAK,MAAM,UAAU,MAAM,SAAS;IAClC,IAAI,MAAM,OAAO,aAAa;AAC9B,QAAI,IAAI,SAAA,KACN,OAAM,GAAG,IAAI,UAAU,GAAG,2BAA2B,CAAC;IAExD,MAAM,WAAW,QAAQ,IAAI,IAAI;AACjC,QAAI,UAAU;AACZ,cAAS,iBAAiB,OAAO;AACjC,cAAS,0BACP,OAAO;AACT,cAAS;UAET,SAAQ,IAAI,KAAK;KACf,OAAO;KACP,wBAAwB,OAAO;KAC/B,eAAe,OAAO;KACvB,CAAC;;AAIR,OAAI,QAAQ,OAAO,EACjB,YAAW,GAAG,qCAAqC,iBACjD,KAAK,UACH,OAAO,YACL,CAAC,GAAG,QAAQ,CACT,MAAM,GAAG,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,cAAc,CACvD,MAAM,GAAA,IAA2B,CACjC,KAAK,CAAC,KAAK,YAAY,CACtB,KACA;IACE,OAAO,OAAO;IACd,2BAA2B,KAAK,MAC9B,OAAO,uBACR;IACD,gBAAgB,KAAK,MAAM,OAAO,cAAc;IACjD,CACF,CAAC,CACL,CACF;;UAIA,OAAO;AACd,OAAK,MAAM,uCAAuC,MAAM;;AAG1D,QAAO;;AAGT,MAAM,2BACJ,QACA,SACe;CACf,MAAM,aAAyB,EAAE;CAEjC,MAAM,QADc,OAAO,YACD;AAI1B,KAAI,MACF,KAAI;EACF,MAAM,WAAW,WAAW,MAAM,cAAc,MAAM,cAAc;EACpE,MAAM,eAAe,WACnB,MAAM,kBAAkB,MAAM,kBAC/B;EACD,MAAM,gBAAgB,WACpB,MAAM,wBAAwB,IAC1B,MAAM,wBAAwB,MAAM,eACpC,MAAM,aAAa,MAAM,aAC9B;EACD,MAAM,iBAAiB,WACrB,MAAM,wBAAwB,IAC1B,MAAM,aAAa,MAAM,wBACzB,EACL;EAOD,MAAM,iBAAiB,WANQ,KAAK,IAGlC,MAAM,6BAA6B,GACnC,MAAM,cAGgB,GAAG,MAAM,aAChC;EAED,MAAM,eAAe,WADP,KAAK,MAAM,MAAM,cAAc,MAAM,UAE5C,GACH,WACA,eACA,gBACA,iBACA,eACH;EACD,MAAM,SAAS;AACf,aAAW,GAAG,OAAO,aAAa;AAClC,aAAW,GAAG,OAAO,iBAAiB;AACtC,aAAW,GAAG,OAAO,kBAAkB;AACvC,aAAW,GAAG,OAAO,mBAAmB;AACxC,aAAW,GAAG,OAAO,mBAAmB;AACxC,aAAW,GAAG,OAAO,iBAAiB;UAC/B,OAAO;AACd,OAAK,MAAM,yCAAyC,MAAM;;KAG5D,MAAK,MAAM,8DAA8D;AAG3E,QAAO;;AAGT,IAAa,2BAAb,cAA8C,uBAAuB;CACnE;CACA;CACA;CACA;CACA,kBAGI;EACF,KAAK,KAAA;EACL,KAAK,KAAA;EACL,KAAK,KAAA;EACL,KAAK,KAAA;EACL,MAAM,KAAA;EACP;CACD;CACA,uBAA+B;CAC/B,aAAqB;CAGrB,YAAmB,EACjB,MACA,MACA,YAAY,2BACZ,cAAc,OAAO,UACrB,iBAAiB,MACjB,gBACgC,EAAE,EAAE;AACpC,QAAM;GACJ,QAAQ,EAAE;GACV;GACA,qBAAqB;GACrB,wBAAwB;GACxB;GACD,CAAC;AACF,OAAK,aAAa;AAClB,OAAK,eAAe;AACpB,OAAK,kBAAkB;AACvB,OAAK,eAAe,eAAe,KAAK,gBAAgB;AAExD,MAAI,KAAK,QAAQ,QACf,MAAK,QAAQ;;CAIjB,UAAgC;AAG9B,OAAK,aAAa;AAClB,OAAK,MAAM,MAAM,sDAAsD;;CAGzE,SAAsB;AACpB,OAAK,aAAa;AAGlB,MAAI,KAAK,sBAAsB;AAC7B,QAAK,MAAM,MACT,2EACD;AACD;;AAEF,OAAK,uBAAuB;AAE5B,iBAAe,SAAS,SAAS;AAC/B,QAAK,WAAW,SAAS,WAAW;AAClC,QAAI,CAAC,KAAK,WACR;IAGF,MAAM,qBAAqB,KAAK,mBAAmB,oBAAoB;AAEvE,QAAI,CAAC,mBACH;IAIF,MAAM,aAAa,KAAK,kBAAkB,OAAO;IAEjD,MAAM,iBAAiB,KAAK,4BAA4B,OAAO;IAE/D,MAAM,QAAoB;MACvB,eAAA;MACA,gBAAgB,eAAe;MAC/B,uBAAuB,eAAe;MACtC,oCAAoC,OAAO;MAC3C,yBAAyB,OAAO;MAChC,2BAA2B,OAAO;MAClC,uBAAuB,OAAO;MAC9B,0BAA0B,OAAO;MACjC,0BAA0B,OAAO;KAClC,GAAG,4BAA4B,OAAO;KACtC,GAAI,SAAS,QAAQ,uBAAuB,QAAQ,KAAK,MAAM,GAAG,EAAE;KACpE,GAAI,SAAS,SACT,wBAAwB,QAAQ,KAAK,MAAM,GAC3C,EAAE;KACP;AAGD,QAAI,eAAe,QAAQ,eAAe,QAAQ;AAChD,WAAM,qBAAqB,eAAe;AAC1C,WAAM,mBAAmB,eAAe;;AAG1C,QAAI,eAAe,MACjB,OAAM,yBAAyB,eAAe;AAGhD,uBAAmB,SACjB,GAAG,sBAAsB,UAAU,QACnC,OACA,WACD;KACD;IACF;AAEF,MAAI,KAAK,iBAAiB;AAIxB,QAAK,WAAW,aACR;AACJ,SAAK,gBAAgB,OAAO,KAAK,wBAAwB;MAE3D,EACE,kBAAkB,MACnB,CACF;AACD,QAAK,WAAW,YACR;AACJ,SAAK,gBAAgB,MAAM,KAAK,wBAAwB;MAE1D,EACE,kBAAkB,MACnB,CACF;AACD,QAAK,WAAW,YACR;AACJ,SAAK,gBAAgB,MAAM,KAAK,wBAAwB;MAE1D,EACE,kBAAkB,MACnB,CACF;AACD,QAAK,WAAW,YACR;AACJ,SAAK,gBAAgB,MAAM,KAAK,wBAAwB;MAE1D,EACE,kBAAkB,MACnB,CACF;AACD,QAAK,WAAW,OACb,WAAkC;IACjC,MAAM,YAAY;AAIlB,QACE,KAAK,8BACL,UAAU,YAAY,oBACtB;AACA,UAAK,4BACH,UAAU,YAAY;AACxB,UAAK,gBAAgB,MAAM,KAAK,wBAAwB;;MAG5D,EACE,kBAAkB,MACnB,CACF;;;CAIL,kBAA0B,QAAuC;AAC/D,MAAI,OAAO,SAAS,SAAS,OAAO,YAAY,iBAC9C,QAAO,KAAK,KAAK,4BACf,OAAO,YAAY,iBACpB;AAGH,MAAI,OAAO,SAAS,SAAS,OAAO,YAAY,gBAC9C,QAAO,KAAK,KAAK,4BACf,OAAO,YAAY,gBACpB;AAGH,SAAO,KAAK,KAAK,cAAc;;CAGjC,yBAAiD;EAC/C,MAAM,aAA6B,EACjC,SAAS,KAAK,aAAa,KAC5B;EAED,MAAM,eAAe,KAAK,aAAa,iBAAiB;EACxD,MAAM,gBAAgB,KAAK,aAAa,kBAAkB;AAC1D,MAAI,gBAAgB,eAAe;AACjC,cAAW,OAAO,aAAa;AAC/B,cAAW,SAAS;;EAGtB,MAAM,YAAY,KAAK,aAAa,cAAc;AAClD,MAAI,UACF,YAAW,QAAQ;AAGrB,SAAO;;CAGT,4BACE,QACgB;AAChB,MAAI,OAAO,SAAS,SAAS,KAAK,gBAAgB,IAChD,QAAO,KAAK,gBAAgB;AAG9B,MAAI,OAAO,SAAS,UAAU,KAAK,gBAAgB,KACjD,QAAO,KAAK,gBAAgB;AAG9B,MAAI,OAAO,SAAS,SAAS,KAAK,gBAAgB,IAChD,QAAO,KAAK,gBAAgB;AAG9B,MAAI,OAAO,SAAS,SAAS,KAAK,gBAAgB,IAChD,QAAO,KAAK,gBAAgB;AAG9B,MACE,OAAO,SAAS,SAChB,KAAK,gBAAgB,OACrB,OAAO,YAAY,uBAAuB,KAAK,0BAE/C,QAAO,KAAK,gBAAgB;AAG9B,SAAO,KAAK,wBAAwB"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_managers_MXLConfigManager_utils = require("./utils.cjs");
|
|
3
4
|
const require_resources_webSdkResource = require("../../resources/webSdkResource.cjs");
|
|
4
5
|
const require_managers_MXLConfigManager_constants = require("./constants.cjs");
|
|
5
|
-
const require_managers_MXLConfigManager_utils = require("./utils.cjs");
|
|
6
6
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
7
7
|
//#region src/managers/MXLConfigManager/MXLDynamicConfigManager.ts
|
|
8
8
|
const parseRemoteConfig = (remoteConfig) => {
|
|
9
9
|
const parsed = { samplingPct: remoteConfig.threshold };
|
|
10
|
-
if (remoteConfig.
|
|
11
|
-
if (remoteConfig.
|
|
10
|
+
if (remoteConfig.networkSpanForwarding !== void 0) parsed.networkSpansForwardingThreshold = remoteConfig.networkSpanForwarding.pctEnabled;
|
|
11
|
+
if (remoteConfig.serviceName !== void 0 && remoteConfig.serviceName !== "") parsed.serviceName = remoteConfig.serviceName;
|
|
12
|
+
if (remoteConfig.emptySessionAvoidanceEnabledPct !== void 0) parsed.emptySessionAvoidanceEnabledPct = remoteConfig.emptySessionAvoidanceEnabledPct;
|
|
13
|
+
if (remoteConfig.sessionReplay !== void 0) parsed.replay = { ...remoteConfig.sessionReplay };
|
|
12
14
|
return parsed;
|
|
13
15
|
};
|
|
14
16
|
var MXLDynamicConfigManager = class {
|
|
@@ -19,14 +21,14 @@ var MXLDynamicConfigManager = class {
|
|
|
19
21
|
_baseConfig;
|
|
20
22
|
_sdkConfig;
|
|
21
23
|
_etag = null;
|
|
22
|
-
/** Non-empty `
|
|
24
|
+
/** Non-empty `serviceName` from the last persisted or fetched remote payload (if any). */
|
|
23
25
|
_remoteSourceServiceName;
|
|
24
|
-
constructor({ appID, appVersion, deviceId, diag: diagParam = _opentelemetry_api.diag.createComponentLogger({ namespace: "mxl-config-manager" }), storage = window.localStorage, defaultConfig = {},
|
|
26
|
+
constructor({ appID, appVersion, deviceId, diag: diagParam = _opentelemetry_api.diag.createComponentLogger({ namespace: "mxl-config-manager" }), storage = window.localStorage, defaultConfig = {}, apiURL } = {}) {
|
|
25
27
|
if (appID && appVersion && deviceId) this._remoteConfigURL = require_managers_MXLConfigManager_utils.getConfigURL(appID, {
|
|
26
28
|
appVersion,
|
|
27
29
|
deviceId,
|
|
28
30
|
osVersion: "1"
|
|
29
|
-
},
|
|
31
|
+
}, apiURL);
|
|
30
32
|
this._diag = diagParam;
|
|
31
33
|
this._storage = storage;
|
|
32
34
|
const storedRemoteConfig = this._getRemoteConfigFromStorage();
|
|
@@ -53,7 +55,7 @@ var MXLDynamicConfigManager = class {
|
|
|
53
55
|
return this._sdkConfig;
|
|
54
56
|
}
|
|
55
57
|
/**
|
|
56
|
-
* OpenTelemetry `service.name`: remote `
|
|
58
|
+
* OpenTelemetry `service.name`: remote `serviceName` wins, then explicit init `serviceName`,
|
|
57
59
|
* then bootstrap {@link DynamicSDKConfig.serviceName}, then `unknown_service`.
|
|
58
60
|
*/
|
|
59
61
|
resolveApplicationServiceName(initServiceName) {
|
|
@@ -66,8 +68,8 @@ var MXLDynamicConfigManager = class {
|
|
|
66
68
|
return require_resources_webSdkResource.OTEL_DEFAULT_SERVICE_NAME;
|
|
67
69
|
}
|
|
68
70
|
_captureRemoteServiceName(raw) {
|
|
69
|
-
if (raw.
|
|
70
|
-
const sn = raw.
|
|
71
|
+
if (raw.serviceName === void 0) return;
|
|
72
|
+
const sn = raw.serviceName.trim();
|
|
71
73
|
this._remoteSourceServiceName = sn.length > 0 ? sn : void 0;
|
|
72
74
|
}
|
|
73
75
|
async refreshRemoteConfig() {
|
|
@@ -96,7 +98,13 @@ var MXLDynamicConfigManager = class {
|
|
|
96
98
|
_getRemoteConfigFromStorage() {
|
|
97
99
|
try {
|
|
98
100
|
const configString = this._storage.getItem(require_managers_MXLConfigManager_constants.LOCAL_STORAGE_REMOTE_CONFIG_KEY);
|
|
99
|
-
if (configString)
|
|
101
|
+
if (configString) {
|
|
102
|
+
const stored = JSON.parse(configString);
|
|
103
|
+
return {
|
|
104
|
+
config: require_managers_MXLConfigManager_utils.normalizeStoredRemoteConfig(stored.config),
|
|
105
|
+
etag: stored.etag
|
|
106
|
+
};
|
|
107
|
+
}
|
|
100
108
|
return null;
|
|
101
109
|
} catch (error) {
|
|
102
110
|
this._diag.warn(`Failed to parse remote config from storage: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -111,7 +119,7 @@ var MXLDynamicConfigManager = class {
|
|
|
111
119
|
this._diag.warn(`Failed to fetch remote config from ${url}: ${response.statusText}`);
|
|
112
120
|
return null;
|
|
113
121
|
}
|
|
114
|
-
return [await response.json(), etag];
|
|
122
|
+
return [require_managers_MXLConfigManager_utils.normalizeStoredRemoteConfig(await response.json()), etag];
|
|
115
123
|
}
|
|
116
124
|
};
|
|
117
125
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLDynamicConfigManager.cjs","names":["diag","getConfigURL","DEFAULT_CONFIG","OTEL_DEFAULT_SERVICE_NAME","LOCAL_STORAGE_REMOTE_CONFIG_KEY"],"sources":["../../../src/managers/MXLConfigManager/MXLDynamicConfigManager.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport { OTEL_DEFAULT_SERVICE_NAME } from '../../resources/webSdkResource';\nimport type { DynamicConfigManager, DynamicSDKConfig } from '../../sdk/types';\nimport { DEFAULT_CONFIG, LOCAL_STORAGE_REMOTE_CONFIG_KEY } from './constants';\nimport type {\n MXLDynamicConfigManagerArgs,\n RemoteConfig,\n StoredRemoteConfig,\n} from './types';\nimport { getConfigURL } from './utils';\n\nconst parseRemoteConfig = (remoteConfig: RemoteConfig): DynamicSDKConfig => {\n const parsed: DynamicSDKConfig = {\n samplingPct: remoteConfig.threshold,\n };\n\n if (remoteConfig.
|
|
1
|
+
{"version":3,"file":"MXLDynamicConfigManager.cjs","names":["diag","getConfigURL","DEFAULT_CONFIG","OTEL_DEFAULT_SERVICE_NAME","LOCAL_STORAGE_REMOTE_CONFIG_KEY","normalizeStoredRemoteConfig"],"sources":["../../../src/managers/MXLConfigManager/MXLDynamicConfigManager.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport { OTEL_DEFAULT_SERVICE_NAME } from '../../resources/webSdkResource';\nimport type { DynamicConfigManager, DynamicSDKConfig } from '../../sdk/types';\nimport { DEFAULT_CONFIG, LOCAL_STORAGE_REMOTE_CONFIG_KEY } from './constants';\nimport type {\n MXLDynamicConfigManagerArgs,\n RemoteConfig,\n StoredRemoteConfig,\n} from './types';\nimport { getConfigURL, normalizeStoredRemoteConfig } from './utils';\n\nconst parseRemoteConfig = (remoteConfig: RemoteConfig): DynamicSDKConfig => {\n const parsed: DynamicSDKConfig = {\n samplingPct: remoteConfig.threshold,\n };\n\n if (remoteConfig.networkSpanForwarding !== undefined) {\n parsed.networkSpansForwardingThreshold =\n remoteConfig.networkSpanForwarding.pctEnabled;\n }\n\n if (\n remoteConfig.serviceName !== undefined &&\n remoteConfig.serviceName !== ''\n ) {\n parsed.serviceName = remoteConfig.serviceName;\n }\n\n if (remoteConfig.emptySessionAvoidanceEnabledPct !== undefined) {\n parsed.emptySessionAvoidanceEnabledPct =\n remoteConfig.emptySessionAvoidanceEnabledPct;\n }\n\n if (remoteConfig.sessionReplay !== undefined) {\n parsed.replay = { ...remoteConfig.sessionReplay };\n }\n\n return parsed;\n};\n\nexport class MXLDynamicConfigManager implements DynamicConfigManager {\n // Set to null if appID is not provided, in that case only rely on local config\n private readonly _remoteConfigURL: string | null = null;\n private readonly _diag: DiagLogger;\n private readonly _storage: Storage;\n /** Defaults + user's `dynamicSDKConfig` / init-time merge; survives remote refresh merges. */\n private readonly _baseConfig: DynamicSDKConfig;\n\n private _sdkConfig: DynamicSDKConfig;\n private _etag: string | null = null;\n /** Non-empty `serviceName` from the last persisted or fetched remote payload (if any). */\n private _remoteSourceServiceName: string | undefined;\n\n public constructor({\n appID,\n appVersion,\n deviceId,\n diag: diagParam = diag.createComponentLogger({\n namespace: 'mxl-config-manager',\n }),\n storage = window.localStorage,\n defaultConfig = {},\n apiURL,\n }: MXLDynamicConfigManagerArgs = {}) {\n if (appID && appVersion && deviceId) {\n this._remoteConfigURL = getConfigURL(\n appID,\n {\n appVersion,\n deviceId,\n // TODO: Replace with actual OS version once we start capturing it\n osVersion: '1',\n },\n apiURL,\n );\n }\n\n this._diag = diagParam;\n this._storage = storage;\n\n const storedRemoteConfig = this._getRemoteConfigFromStorage();\n\n if (storedRemoteConfig) {\n this._etag = storedRemoteConfig.etag;\n this._captureRemoteServiceName(storedRemoteConfig.config);\n }\n\n // Default config merged with any user-provided defaults; user-provided values take precedence.\n // Kept around so refreshRemoteConfig can re-merge against it instead of dropping defaults.\n this._baseConfig = {\n ...DEFAULT_CONFIG,\n ...defaultConfig,\n };\n\n this._sdkConfig = {\n ...this._baseConfig,\n // Stored remote config values will override both defaults and user-provided defaults\n ...(storedRemoteConfig\n ? parseRemoteConfig(storedRemoteConfig.config)\n : {}),\n };\n }\n\n public setConfig(config: Partial<DynamicSDKConfig>): void {\n this._sdkConfig = {\n ...this._sdkConfig,\n ...config,\n };\n }\n\n public getConfig(): DynamicSDKConfig {\n return this._sdkConfig;\n }\n\n /**\n * OpenTelemetry `service.name`: remote `serviceName` wins, then explicit init `serviceName`,\n * then bootstrap {@link DynamicSDKConfig.serviceName}, then `unknown_service`.\n */\n public resolveApplicationServiceName(initServiceName?: string): string {\n const remote = this._remoteSourceServiceName?.trim();\n if (remote) {\n return remote;\n }\n const fromInit = initServiceName?.trim();\n if (fromInit) {\n return fromInit;\n }\n const fromBootstrap = this._baseConfig.serviceName?.trim();\n if (fromBootstrap) {\n return fromBootstrap;\n }\n return OTEL_DEFAULT_SERVICE_NAME;\n }\n\n private _captureRemoteServiceName(raw: RemoteConfig): void {\n if (raw.serviceName === undefined) {\n return;\n }\n const sn = raw.serviceName.trim();\n this._remoteSourceServiceName = sn.length > 0 ? sn : undefined;\n }\n\n // No-op if not sending data to mxl\n public async refreshRemoteConfig(): Promise<void> {\n if (!this._remoteConfigURL) {\n return;\n }\n\n try {\n const remoteConfigResponse = await this._fetchRemoteConfig(\n this._remoteConfigURL,\n );\n\n if (!remoteConfigResponse) {\n this._diag.debug('No changes in remote config, skipping update');\n return;\n }\n\n const [remoteConfig, etag] = remoteConfigResponse;\n this._captureRemoteServiceName(remoteConfig);\n this._storage.setItem(\n LOCAL_STORAGE_REMOTE_CONFIG_KEY,\n JSON.stringify({\n config: remoteConfig,\n etag,\n } as StoredRemoteConfig),\n );\n\n this._sdkConfig = {\n ...this._baseConfig,\n ...parseRemoteConfig(remoteConfig),\n };\n this._etag = etag;\n } catch (error: unknown) {\n this._diag.warn(\n `Failed to refresh remote config: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n\n private _getRemoteConfigFromStorage(): StoredRemoteConfig | null {\n try {\n const configString = this._storage.getItem(\n LOCAL_STORAGE_REMOTE_CONFIG_KEY,\n );\n\n if (configString) {\n const stored = JSON.parse(configString) as {\n config: unknown;\n etag: string | null;\n };\n\n return {\n config: normalizeStoredRemoteConfig(stored.config),\n etag: stored.etag,\n };\n }\n\n return null;\n } catch (error) {\n this._diag.warn(\n `Failed to parse remote config from storage: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n return null;\n }\n }\n\n private async _fetchRemoteConfig(\n url: string,\n ): Promise<[RemoteConfig, string | null] | null> {\n const response = await fetch(url, {\n headers: this._etag ? { 'If-None-Match': this._etag } : {},\n });\n\n const etag = response.headers.get('etag');\n\n // Nothing changed, return null\n if (response.status === 304) {\n return null;\n }\n\n if (!response.ok) {\n this._diag.warn(\n `Failed to fetch remote config from ${url}: ${response.statusText}`,\n );\n\n return null;\n }\n\n const remoteConfig = normalizeStoredRemoteConfig(await response.json());\n\n return [remoteConfig, etag];\n }\n}\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ declare class MXLDynamicConfigManager implements DynamicConfigManager {
|
|
|
10
10
|
private readonly _baseConfig;
|
|
11
11
|
private _sdkConfig;
|
|
12
12
|
private _etag;
|
|
13
|
-
/** Non-empty `
|
|
13
|
+
/** Non-empty `serviceName` from the last persisted or fetched remote payload (if any). */
|
|
14
14
|
private _remoteSourceServiceName;
|
|
15
15
|
constructor({
|
|
16
16
|
appID,
|
|
@@ -19,12 +19,12 @@ declare class MXLDynamicConfigManager implements DynamicConfigManager {
|
|
|
19
19
|
diag: diagParam,
|
|
20
20
|
storage,
|
|
21
21
|
defaultConfig,
|
|
22
|
-
|
|
22
|
+
apiURL
|
|
23
23
|
}?: MXLDynamicConfigManagerArgs);
|
|
24
24
|
setConfig(config: Partial<DynamicSDKConfig>): void;
|
|
25
25
|
getConfig(): DynamicSDKConfig;
|
|
26
26
|
/**
|
|
27
|
-
* OpenTelemetry `service.name`: remote `
|
|
27
|
+
* OpenTelemetry `service.name`: remote `serviceName` wins, then explicit init `serviceName`,
|
|
28
28
|
* then bootstrap {@link DynamicSDKConfig.serviceName}, then `unknown_service`.
|
|
29
29
|
*/
|
|
30
30
|
resolveApplicationServiceName(initServiceName?: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLDynamicConfigManager.d.cts","names":[],"sources":["../../../src/managers/MXLConfigManager/MXLDynamicConfigManager.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MXLDynamicConfigManager.d.cts","names":[],"sources":["../../../src/managers/MXLConfigManager/MXLDynamicConfigManager.ts"],"mappings":";;;;cAyCa,uBAAA,YAAmC,oBAAA;EAAA,iBAE7B,gBAAA;EAAA,iBACA,KAAA;EAAA,iBACA,QAAA;;mBAEA,WAAA;EAAA,QAET,UAAA;EAAA,QACA,KAAA;EAQA;EAAA,QANA,wBAAA;;IAGN,KAAA;IACA,UAAA;IACA,QAAA;IACA,IAAA,EAAM,SAAA;IAGN,OAAA;IACA,aAAA;IACA;EAAA,IACC,2BAAA;EAwCI,SAAA,CAAU,MAAA,EAAQ,OAAA,CAAQ,gBAAA;EAO1B,SAAA,CAAA,GAAa,gBAAA;EAPa;;;;EAe1B,6BAAA,CAA8B,eAAA;EAAA,QAgB7B,yBAAA;EASK,mBAAA,CAAA,GAAuB,OAAA;EAAA,QAqC5B,2BAAA;EAAA,QA4BM,kBAAA;AAAA"}
|
|
@@ -10,7 +10,7 @@ declare class MXLDynamicConfigManager implements DynamicConfigManager {
|
|
|
10
10
|
private readonly _baseConfig;
|
|
11
11
|
private _sdkConfig;
|
|
12
12
|
private _etag;
|
|
13
|
-
/** Non-empty `
|
|
13
|
+
/** Non-empty `serviceName` from the last persisted or fetched remote payload (if any). */
|
|
14
14
|
private _remoteSourceServiceName;
|
|
15
15
|
constructor({
|
|
16
16
|
appID,
|
|
@@ -19,12 +19,12 @@ declare class MXLDynamicConfigManager implements DynamicConfigManager {
|
|
|
19
19
|
diag: diagParam,
|
|
20
20
|
storage,
|
|
21
21
|
defaultConfig,
|
|
22
|
-
|
|
22
|
+
apiURL
|
|
23
23
|
}?: MXLDynamicConfigManagerArgs);
|
|
24
24
|
setConfig(config: Partial<DynamicSDKConfig>): void;
|
|
25
25
|
getConfig(): DynamicSDKConfig;
|
|
26
26
|
/**
|
|
27
|
-
* OpenTelemetry `service.name`: remote `
|
|
27
|
+
* OpenTelemetry `service.name`: remote `serviceName` wins, then explicit init `serviceName`,
|
|
28
28
|
* then bootstrap {@link DynamicSDKConfig.serviceName}, then `unknown_service`.
|
|
29
29
|
*/
|
|
30
30
|
resolveApplicationServiceName(initServiceName?: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLDynamicConfigManager.d.ts","names":[],"sources":["../../../src/managers/MXLConfigManager/MXLDynamicConfigManager.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MXLDynamicConfigManager.d.ts","names":[],"sources":["../../../src/managers/MXLConfigManager/MXLDynamicConfigManager.ts"],"mappings":";;;;cAyCa,uBAAA,YAAmC,oBAAA;EAAA,iBAE7B,gBAAA;EAAA,iBACA,KAAA;EAAA,iBACA,QAAA;;mBAEA,WAAA;EAAA,QAET,UAAA;EAAA,QACA,KAAA;EAQA;EAAA,QANA,wBAAA;;IAGN,KAAA;IACA,UAAA;IACA,QAAA;IACA,IAAA,EAAM,SAAA;IAGN,OAAA;IACA,aAAA;IACA;EAAA,IACC,2BAAA;EAwCI,SAAA,CAAU,MAAA,EAAQ,OAAA,CAAQ,gBAAA;EAO1B,SAAA,CAAA,GAAa,gBAAA;EAPa;;;;EAe1B,6BAAA,CAA8B,eAAA;EAAA,QAgB7B,yBAAA;EASK,mBAAA,CAAA,GAAuB,OAAA;EAAA,QAqC5B,2BAAA;EAAA,QA4BM,kBAAA;AAAA"}
|