@safaricom-mxl/web-sdk 0.0.16 → 0.0.17
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 +2 -3
- package/REACT.md +5 -7
- package/README.md +94 -57
- package/UPGRADING.md +29 -19
- package/dist/api-logs/api/LogAPI/LogAPI.cjs +3 -3
- package/dist/api-logs/api/LogAPI/LogAPI.cjs.map +1 -1
- package/dist/api-logs/api/LogAPI/LogAPI.js +3 -3
- package/dist/api-logs/api/LogAPI/LogAPI.js.map +1 -1
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.cjs.map +1 -1
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.js.map +1 -1
- package/dist/api-logs/manager/types.d.cts +4 -4
- package/dist/api-logs/manager/types.d.cts.map +1 -1
- package/dist/api-logs/manager/types.d.ts +4 -4
- package/dist/api-logs/manager/types.d.ts.map +1 -1
- package/dist/api-page/api/PageAPI/PageAPI.cjs +3 -3
- package/dist/api-page/api/PageAPI/PageAPI.cjs.map +1 -1
- package/dist/api-page/api/PageAPI/PageAPI.js +3 -3
- package/dist/api-page/api/PageAPI/PageAPI.js.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.cjs +9 -9
- package/dist/api-sessions/api/SessionAPI/SessionAPI.cjs.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.d.cts +5 -7
- package/dist/api-sessions/api/SessionAPI/SessionAPI.d.cts.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.d.ts +5 -7
- package/dist/api-sessions/api/SessionAPI/SessionAPI.d.ts.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.js +9 -9
- package/dist/api-sessions/api/SessionAPI/SessionAPI.js.map +1 -1
- package/dist/api-sessions/index.cjs +4 -4
- package/dist/api-sessions/index.d.cts +4 -4
- package/dist/api-sessions/index.d.ts +4 -4
- package/dist/api-sessions/index.js +3 -3
- package/dist/api-sessions/manager/NoOpUserSessionManager/NoOpUserSessionManager.cjs +47 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/NoOpUserSessionManager.cjs.map +1 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/NoOpUserSessionManager.d.cts +30 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/NoOpUserSessionManager.d.cts.map +1 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/NoOpUserSessionManager.d.ts +30 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/NoOpUserSessionManager.d.ts.map +1 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/NoOpUserSessionManager.js +46 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/NoOpUserSessionManager.js.map +1 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/index.cjs +3 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/index.d.cts +2 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/index.d.ts +2 -0
- package/dist/api-sessions/manager/NoOpUserSessionManager/index.js +2 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.cjs +81 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.cjs.map +1 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.d.cts +35 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.d.cts.map +1 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.d.ts +35 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.d.ts.map +1 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.js +81 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.js.map +1 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/index.cjs +3 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/index.d.cts +2 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/index.d.ts +2 -0
- package/dist/api-sessions/manager/ProxyUserSessionManager/index.js +2 -0
- package/dist/api-sessions/manager/index.cjs +4 -4
- package/dist/api-sessions/manager/index.d.cts +4 -4
- package/dist/api-sessions/manager/index.d.ts +4 -4
- package/dist/api-sessions/manager/index.js +3 -3
- package/dist/api-sessions/manager/types.d.cts +14 -24
- package/dist/api-sessions/manager/types.d.cts.map +1 -1
- package/dist/api-sessions/manager/types.d.ts +14 -24
- package/dist/api-sessions/manager/types.d.ts.map +1 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.cjs +3 -3
- package/dist/api-traces/api/TraceAPI/TraceAPI.cjs.map +1 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.js +3 -3
- package/dist/api-traces/api/TraceAPI/TraceAPI.js.map +1 -1
- package/dist/api-traces/api/TraceAPI/types.d.cts +2 -2
- package/dist/api-traces/api/TraceAPI/types.d.cts.map +1 -1
- package/dist/api-traces/api/TraceAPI/types.d.ts +2 -2
- package/dist/api-traces/api/TraceAPI/types.d.ts.map +1 -1
- package/dist/api-users/api/UserAPI/UserAPI.cjs +3 -3
- package/dist/api-users/api/UserAPI/UserAPI.cjs.map +1 -1
- package/dist/api-users/api/UserAPI/UserAPI.js +3 -3
- package/dist/api-users/api/UserAPI/UserAPI.js.map +1 -1
- package/dist/common/types.d.cts +2 -0
- package/dist/common/types.d.cts.map +1 -1
- package/dist/common/types.d.ts +2 -0
- package/dist/common/types.d.ts.map +1 -1
- package/dist/constants/attributes.cjs +28 -0
- package/dist/constants/attributes.cjs.map +1 -1
- package/dist/constants/attributes.d.cts +17 -2
- package/dist/constants/attributes.d.cts.map +1 -1
- package/dist/constants/attributes.d.ts +17 -2
- package/dist/constants/attributes.d.ts.map +1 -1
- package/dist/constants/attributes.js +16 -1
- package/dist/constants/attributes.js.map +1 -1
- package/dist/constants/index.cjs +13 -0
- package/dist/constants/index.d.cts +2 -2
- package/dist/constants/index.d.ts +2 -2
- package/dist/constants/index.js +2 -2
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.cjs +1 -2
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.cjs.map +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.d.cts +1 -2
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.d.cts.map +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.d.ts +1 -2
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.d.ts.map +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.js +1 -2
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.js.map +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.cjs.map +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.js.map +1 -1
- package/dist/exporters/constants.cjs +1 -1
- package/dist/exporters/constants.cjs.map +1 -1
- package/dist/exporters/constants.d.cts +1 -1
- package/dist/exporters/constants.d.ts +1 -1
- package/dist/exporters/constants.js +1 -1
- package/dist/exporters/constants.js.map +1 -1
- package/dist/exporters/otlpBrowserFetchExportDelegate.cjs.map +1 -1
- package/dist/exporters/otlpBrowserFetchExportDelegate.js.map +1 -1
- package/dist/index.cjs +2 -0
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.cjs +2 -2
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.cjs.map +1 -1
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.d.cts.map +1 -1
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.d.ts.map +1 -1
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.js +2 -2
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.js.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.cjs +6 -7
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.cjs.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.d.cts +4 -5
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.d.cts.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.d.ts +4 -5
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.d.ts.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.js +6 -7
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.js.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.cjs +8 -8
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.js +8 -8
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.js.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.cjs +10 -10
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.js +10 -10
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.js.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.cjs +2 -2
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.cjs.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.js +2 -2
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.js.map +1 -1
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.cjs +5 -5
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.js +5 -5
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.js.map +1 -1
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.cjs +4 -4
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.js +4 -4
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.js.map +1 -1
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.cjs +7 -7
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.js +7 -7
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.js.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.cjs +2 -2
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.cjs.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.d.cts +4 -4
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.d.cts.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.d.ts +4 -4
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.d.ts.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.js +2 -2
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.js.map +1 -1
- package/dist/instrumentations/index.cjs +2 -4
- package/dist/instrumentations/index.d.cts +4 -6
- package/dist/instrumentations/index.d.ts +4 -6
- package/dist/instrumentations/index.js +2 -3
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.cjs +23 -23
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.cts +2 -3
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.ts +2 -3
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.js +23 -23
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.cjs +5 -5
- 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 +5 -5
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.cjs +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.js +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/types.d.cts +10 -10
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/types.d.cts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/types.d.ts +10 -10
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/types.d.ts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/types.d.cts +2 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/types.d.cts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/types.d.ts +2 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/types.d.ts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.js.map +1 -1
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.cjs +257 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.cjs.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.cts +56 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.cts.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.ts +56 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.ts.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.js +252 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.js.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.cjs +15 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.cjs.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.d.cts +9 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.d.cts.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.d.ts +9 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.d.ts.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.js +10 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/constants.js.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/index.cjs +3 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/index.d.cts +3 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/index.d.ts +3 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/index.js +2 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/types.d.cts +17 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/types.d.cts.map +1 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/types.d.ts +17 -0
- package/dist/instrumentations/replay/ReplayInstrumentation/types.d.ts.map +1 -0
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.cjs +18 -0
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.cjs.map +1 -0
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.d.cts +8 -0
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.d.cts.map +1 -0
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.d.ts +8 -0
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.d.ts.map +1 -0
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.js +17 -0
- package/dist/instrumentations/replay/createSessionRecordingControlFromReplay.js.map +1 -0
- package/dist/instrumentations/replay/index.cjs +8 -0
- package/dist/instrumentations/replay/index.d.cts +4 -0
- package/dist/instrumentations/replay/index.d.ts +4 -0
- package/dist/instrumentations/replay/index.js +3 -0
- package/dist/instrumentations/replay/utils/index.cjs +5 -0
- package/dist/instrumentations/replay/utils/index.d.cts +2 -0
- package/dist/instrumentations/replay/utils/index.d.ts +2 -0
- package/dist/instrumentations/replay/utils/index.js +2 -0
- package/dist/instrumentations/replay/utils/session-recording-utils.cjs +79 -0
- package/dist/instrumentations/replay/utils/session-recording-utils.cjs.map +1 -0
- package/dist/instrumentations/replay/utils/session-recording-utils.d.cts +32 -0
- package/dist/instrumentations/replay/utils/session-recording-utils.d.cts.map +1 -0
- package/dist/instrumentations/replay/utils/session-recording-utils.d.ts +32 -0
- package/dist/instrumentations/replay/utils/session-recording-utils.d.ts.map +1 -0
- package/dist/instrumentations/replay/utils/session-recording-utils.js +73 -0
- package/dist/instrumentations/replay/utils/session-recording-utils.js.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.cjs +6 -6
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.js +6 -6
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.js.map +1 -1
- package/dist/instrumentations/session/index.cjs +0 -6
- package/dist/instrumentations/session/index.d.cts +2 -7
- package/dist/instrumentations/session/index.d.ts +2 -7
- package/dist/instrumentations/session/index.js +1 -4
- package/dist/instrumentations/session/types.d.cts +5 -5
- package/dist/instrumentations/session/types.d.cts.map +1 -1
- package/dist/instrumentations/session/types.d.ts +5 -5
- package/dist/instrumentations/session/types.d.ts.map +1 -1
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.cjs +10 -10
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.js +10 -10
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.js.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.cjs +15 -15
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.js +15 -15
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.js.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/types.d.cts +1 -3
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/types.d.ts +1 -3
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/types.d.ts.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs +0 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js +0 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js.map +1 -1
- package/dist/managers/MXLConfigManager/constants.cjs +2 -2
- package/dist/managers/MXLConfigManager/constants.cjs.map +1 -1
- package/dist/managers/MXLConfigManager/constants.js +2 -2
- package/dist/managers/MXLConfigManager/constants.js.map +1 -1
- package/dist/managers/MXLConfigManager/types.d.cts +8 -7
- package/dist/managers/MXLConfigManager/types.d.cts.map +1 -1
- package/dist/managers/MXLConfigManager/types.d.ts +8 -7
- package/dist/managers/MXLConfigManager/types.d.ts.map +1 -1
- package/dist/managers/MXLLimitManager/MXLLimitManager.cjs +20 -20
- package/dist/managers/MXLLimitManager/MXLLimitManager.cjs.map +1 -1
- package/dist/managers/MXLLimitManager/MXLLimitManager.js +20 -20
- package/dist/managers/MXLLimitManager/MXLLimitManager.js.map +1 -1
- package/dist/managers/MXLLimitManager/constants.cjs +20 -20
- package/dist/managers/MXLLimitManager/constants.cjs.map +1 -1
- package/dist/managers/MXLLimitManager/constants.js +20 -20
- package/dist/managers/MXLLimitManager/constants.js.map +1 -1
- package/dist/managers/MXLLimitManager/types.d.cts +8 -8
- package/dist/managers/MXLLimitManager/types.d.cts.map +1 -1
- package/dist/managers/MXLLimitManager/types.d.ts +8 -8
- package/dist/managers/MXLLimitManager/types.d.ts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.cjs +19 -19
- package/dist/managers/MXLLogManager/MXLLogManager.cjs.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.d.cts +2 -2
- package/dist/managers/MXLLogManager/MXLLogManager.d.cts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.d.ts +2 -2
- package/dist/managers/MXLLogManager/MXLLogManager.d.ts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.js +19 -19
- package/dist/managers/MXLLogManager/MXLLogManager.js.map +1 -1
- package/dist/managers/MXLLogManager/types.d.cts +2 -2
- package/dist/managers/MXLLogManager/types.d.ts +2 -2
- package/dist/managers/MXLPageManager/MXLPageManager.cjs +1 -3
- package/dist/managers/MXLPageManager/MXLPageManager.cjs.map +1 -1
- package/dist/managers/MXLPageManager/MXLPageManager.d.cts.map +1 -1
- package/dist/managers/MXLPageManager/MXLPageManager.d.ts.map +1 -1
- package/dist/managers/MXLPageManager/MXLPageManager.js +1 -3
- package/dist/managers/MXLPageManager/MXLPageManager.js.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs +0 -4
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.cts +0 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.cts.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.ts +0 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.ts.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js +0 -4
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/types.d.cts +0 -1
- package/dist/managers/MXLSDKFeaturesManager/types.d.cts.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/types.d.ts +0 -1
- package/dist/managers/MXLSDKFeaturesManager/types.d.ts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.cjs.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.js.map +1 -1
- package/dist/managers/MXLUserManager/MXLUserManager.cjs +14 -14
- package/dist/managers/MXLUserManager/MXLUserManager.cjs.map +1 -1
- package/dist/managers/MXLUserManager/MXLUserManager.js +14 -14
- package/dist/managers/MXLUserManager/MXLUserManager.js.map +1 -1
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.cjs +574 -0
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.cjs.map +1 -0
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.d.cts +142 -0
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.d.cts.map +1 -0
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.d.ts +142 -0
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.d.ts.map +1 -0
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.js +572 -0
- package/dist/managers/MXLUserSessionManager/MXLUserSessionManager.js.map +1 -0
- package/dist/managers/MXLUserSessionManager/constants.cjs +55 -0
- package/dist/managers/MXLUserSessionManager/constants.cjs.map +1 -0
- package/dist/managers/MXLUserSessionManager/constants.d.cts +31 -0
- package/dist/managers/MXLUserSessionManager/constants.d.cts.map +1 -0
- package/dist/managers/MXLUserSessionManager/constants.d.ts +31 -0
- package/dist/managers/MXLUserSessionManager/constants.d.ts.map +1 -0
- package/dist/managers/MXLUserSessionManager/constants.js +37 -0
- package/dist/managers/MXLUserSessionManager/constants.js.map +1 -0
- package/dist/managers/MXLUserSessionManager/index.cjs +6 -0
- package/dist/managers/MXLUserSessionManager/index.d.cts +4 -0
- package/dist/managers/MXLUserSessionManager/index.d.ts +4 -0
- package/dist/managers/MXLUserSessionManager/index.js +3 -0
- package/dist/managers/MXLUserSessionManager/types.d.cts +84 -0
- package/dist/managers/MXLUserSessionManager/types.d.cts.map +1 -0
- package/dist/managers/MXLUserSessionManager/types.d.ts +84 -0
- package/dist/managers/MXLUserSessionManager/types.d.ts.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/activity.cjs +25 -0
- package/dist/managers/MXLUserSessionManager/utils/activity.cjs.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/activity.d.cts +40 -0
- package/dist/managers/MXLUserSessionManager/utils/activity.d.cts.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/activity.d.ts +40 -0
- package/dist/managers/MXLUserSessionManager/utils/activity.d.ts.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/activity.js +22 -0
- package/dist/managers/MXLUserSessionManager/utils/activity.js.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/index.cjs +11 -0
- package/dist/managers/MXLUserSessionManager/utils/index.d.cts +3 -0
- package/dist/managers/MXLUserSessionManager/utils/index.d.ts +3 -0
- package/dist/managers/MXLUserSessionManager/utils/index.js +3 -0
- package/dist/managers/MXLUserSessionManager/utils/state.cjs +78 -0
- package/dist/managers/MXLUserSessionManager/utils/state.cjs.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/state.d.cts +39 -0
- package/dist/managers/MXLUserSessionManager/utils/state.d.cts.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/state.d.ts +39 -0
- package/dist/managers/MXLUserSessionManager/utils/state.d.ts.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/state.js +73 -0
- package/dist/managers/MXLUserSessionManager/utils/state.js.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.cjs +132 -0
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.cjs.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.d.cts +33 -0
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.d.cts.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.d.ts +33 -0
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.d.ts.map +1 -0
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.js +127 -0
- package/dist/managers/MXLUserSessionManager/utils/tabTracking.js.map +1 -0
- package/dist/managers/index.cjs +5 -2
- package/dist/managers/index.d.cts +4 -3
- package/dist/managers/index.d.ts +4 -3
- package/dist/managers/index.js +3 -2
- package/dist/mxl-web-sdk.js +1 -23
- package/dist/mxl-web-sdk.js.map +1 -1
- package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.js.map +1 -1
- package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.cjs.map +1 -1
- package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.js.map +1 -1
- package/dist/processors/LogRecordScrubProcessor/LogRecordScrubProcessor.cjs.map +1 -1
- package/dist/processors/LogRecordScrubProcessor/LogRecordScrubProcessor.js.map +1 -1
- package/dist/processors/LogRecordScrubProcessor/types.d.cts +2 -2
- package/dist/processors/LogRecordScrubProcessor/types.d.cts.map +1 -1
- package/dist/processors/LogRecordScrubProcessor/types.d.ts +2 -2
- package/dist/processors/LogRecordScrubProcessor/types.d.ts.map +1 -1
- package/dist/processors/MXLLogRecordProcessor/MXLLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/MXLLogRecordProcessor/MXLLogRecordProcessor.js.map +1 -1
- package/dist/processors/MXLLogRecordProcessor/types.d.cts +2 -2
- package/dist/processors/MXLLogRecordProcessor/types.d.cts.map +1 -1
- package/dist/processors/MXLLogRecordProcessor/types.d.ts +2 -2
- package/dist/processors/MXLLogRecordProcessor/types.d.ts.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.cjs.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.js.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/types.cjs.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/types.js.map +1 -1
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.cjs +74 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.cjs.map +1 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.cts +28 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.cts.map +1 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.ts +28 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.ts.map +1 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.js +72 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.js.map +1 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/index.cjs +3 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/index.d.cts +3 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/index.d.ts +3 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/index.js +2 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.cts +15 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.cts.map +1 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.ts +15 -0
- package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.ts.map +1 -0
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.cjs.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.js.map +1 -1
- package/dist/processors/SpanScrubProcessor/SpanScrubProcessor.cjs.map +1 -1
- package/dist/processors/SpanScrubProcessor/SpanScrubProcessor.js.map +1 -1
- package/dist/processors/UserLogRecordProcessor/UserLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/UserLogRecordProcessor/UserLogRecordProcessor.js.map +1 -1
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.cjs +34 -0
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.cjs.map +1 -0
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.d.cts +16 -0
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.d.cts.map +1 -0
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.d.ts +16 -0
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.d.ts.map +1 -0
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.js +32 -0
- package/dist/processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor.js.map +1 -0
- package/dist/processors/UserSessionLogRecordProcessor/index.cjs +3 -0
- package/dist/processors/UserSessionLogRecordProcessor/index.d.cts +3 -0
- package/dist/processors/UserSessionLogRecordProcessor/index.d.ts +3 -0
- package/dist/processors/UserSessionLogRecordProcessor/index.js +2 -0
- package/dist/processors/UserSessionLogRecordProcessor/types.d.cts +8 -0
- package/dist/processors/UserSessionLogRecordProcessor/types.d.cts.map +1 -0
- package/dist/processors/UserSessionLogRecordProcessor/types.d.ts +8 -0
- package/dist/processors/UserSessionLogRecordProcessor/types.d.ts.map +1 -0
- package/dist/processors/UserSpanProcessor/UserSpanProcessor.cjs.map +1 -1
- package/dist/processors/UserSpanProcessor/UserSpanProcessor.js.map +1 -1
- package/dist/processors/index.cjs +4 -4
- package/dist/processors/index.d.cts +3 -3
- package/dist/processors/index.d.ts +3 -3
- package/dist/processors/index.js +3 -3
- package/dist/propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator.cjs.map +1 -1
- package/dist/propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator.js.map +1 -1
- package/dist/resources/appInstanceId.cjs +4 -4
- package/dist/resources/appInstanceId.cjs.map +1 -1
- package/dist/resources/appInstanceId.js +4 -4
- package/dist/resources/appInstanceId.js.map +1 -1
- package/dist/resources/constants/index.cjs +1 -1
- package/dist/resources/constants/index.cjs.map +1 -1
- package/dist/resources/constants/index.d.cts +1 -1
- package/dist/resources/constants/index.d.ts +1 -1
- package/dist/resources/constants/index.js +1 -1
- package/dist/resources/constants/index.js.map +1 -1
- package/dist/resources/webSdkResource.cjs +15 -19
- 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 +15 -19
- package/dist/resources/webSdkResource.js.map +1 -1
- package/dist/sdk/defaultAttributeScrubbers.cjs +8 -8
- package/dist/sdk/defaultAttributeScrubbers.cjs.map +1 -1
- package/dist/sdk/defaultAttributeScrubbers.js +8 -8
- package/dist/sdk/defaultAttributeScrubbers.js.map +1 -1
- package/dist/sdk/index.d.cts +3 -2
- package/dist/sdk/index.d.ts +3 -2
- package/dist/sdk/initSDK.cjs +137 -98
- package/dist/sdk/initSDK.cjs.map +1 -1
- package/dist/sdk/initSDK.d.cts +4 -2
- package/dist/sdk/initSDK.d.cts.map +1 -1
- package/dist/sdk/initSDK.d.ts +4 -2
- package/dist/sdk/initSDK.d.ts.map +1 -1
- package/dist/sdk/initSDK.js +137 -98
- package/dist/sdk/initSDK.js.map +1 -1
- package/dist/sdk/registry.cjs +1 -3
- package/dist/sdk/registry.cjs.map +1 -1
- package/dist/sdk/registry.d.cts.map +1 -1
- package/dist/sdk/registry.d.ts.map +1 -1
- package/dist/sdk/registry.js +1 -3
- package/dist/sdk/registry.js.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.cjs +9 -5
- package/dist/sdk/setupDefaultInstrumentations.cjs.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.d.cts +5 -2
- package/dist/sdk/setupDefaultInstrumentations.d.cts.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.d.ts +5 -2
- package/dist/sdk/setupDefaultInstrumentations.d.ts.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.js +9 -5
- package/dist/sdk/setupDefaultInstrumentations.js.map +1 -1
- package/dist/sdk/types.d.cts +68 -56
- package/dist/sdk/types.d.cts.map +1 -1
- package/dist/sdk/types.d.ts +69 -57
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/sdk/utils.cjs +1 -1
- package/dist/sdk/utils.cjs.map +1 -1
- package/dist/sdk/utils.d.cts.map +1 -1
- package/dist/sdk/utils.d.ts.map +1 -1
- package/dist/sdk/utils.js +1 -1
- package/dist/sdk/utils.js.map +1 -1
- package/dist/transport/FetchTransport/FetchTransport.cjs +13 -13
- package/dist/transport/FetchTransport/FetchTransport.cjs.map +1 -1
- package/dist/transport/FetchTransport/FetchTransport.js +13 -13
- package/dist/transport/FetchTransport/FetchTransport.js.map +1 -1
- package/dist/transport/RetryingTransport/RetryingTransport.cjs +1 -1
- package/dist/transport/RetryingTransport/RetryingTransport.cjs.map +1 -1
- package/dist/transport/RetryingTransport/RetryingTransport.js +1 -1
- package/dist/transport/RetryingTransport/RetryingTransport.js.map +1 -1
- package/dist/utils/NamespacedStorage/NamespacedStorage.cjs +69 -24
- package/dist/utils/NamespacedStorage/NamespacedStorage.cjs.map +1 -1
- package/dist/utils/NamespacedStorage/NamespacedStorage.d.cts +27 -13
- package/dist/utils/NamespacedStorage/NamespacedStorage.d.cts.map +1 -1
- package/dist/utils/NamespacedStorage/NamespacedStorage.d.ts +27 -13
- package/dist/utils/NamespacedStorage/NamespacedStorage.d.ts.map +1 -1
- package/dist/utils/NamespacedStorage/NamespacedStorage.js +68 -24
- package/dist/utils/NamespacedStorage/NamespacedStorage.js.map +1 -1
- package/dist/utils/PerformanceManager/OTelPerformanceManager.cjs.map +1 -1
- package/dist/utils/PerformanceManager/OTelPerformanceManager.js.map +1 -1
- package/dist/utils/clampNumber.cjs +23 -0
- package/dist/utils/clampNumber.cjs.map +1 -0
- package/dist/utils/clampNumber.d.cts +24 -0
- package/dist/utils/clampNumber.d.cts.map +1 -0
- package/dist/utils/clampNumber.d.ts +24 -0
- package/dist/utils/clampNumber.d.ts.map +1 -0
- package/dist/utils/clampNumber.js +22 -0
- package/dist/utils/clampNumber.js.map +1 -0
- package/dist/utils/createSafeProxy/createSafeProxy.cjs +2 -2
- package/dist/utils/createSafeProxy/createSafeProxy.cjs.map +1 -1
- package/dist/utils/createSafeProxy/createSafeProxy.d.cts.map +1 -1
- package/dist/utils/createSafeProxy/createSafeProxy.d.ts.map +1 -1
- package/dist/utils/createSafeProxy/createSafeProxy.js +2 -2
- package/dist/utils/createSafeProxy/createSafeProxy.js.map +1 -1
- package/dist/utils/generateWebVitalID.cjs +1 -3
- package/dist/utils/generateWebVitalID.cjs.map +1 -1
- package/dist/utils/generateWebVitalID.js +1 -3
- package/dist/utils/generateWebVitalID.js.map +1 -1
- package/dist/utils/getIncrementedCount.cjs +2 -2
- package/dist/utils/getIncrementedCount.cjs.map +1 -1
- package/dist/utils/getIncrementedCount.js +2 -2
- package/dist/utils/getIncrementedCount.js.map +1 -1
- package/dist/utils/globalConfig.cjs.map +1 -1
- package/dist/utils/globalConfig.d.cts +2 -2
- package/dist/utils/globalConfig.d.cts.map +1 -1
- package/dist/utils/globalConfig.d.ts +2 -2
- package/dist/utils/globalConfig.d.ts.map +1 -1
- package/dist/utils/globalConfig.js.map +1 -1
- package/dist/utils/index.cjs +2 -2
- package/dist/utils/index.d.cts +3 -3
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/index.js +2 -2
- package/dist/utils/isDeviceIdEnabled.cjs.map +1 -1
- package/dist/utils/isDeviceIdEnabled.js.map +1 -1
- package/dist/utils/performanceObserver/performanceObserver.cjs +3 -3
- package/dist/utils/performanceObserver/performanceObserver.cjs.map +1 -1
- package/dist/utils/performanceObserver/performanceObserver.js +3 -3
- package/dist/utils/performanceObserver/performanceObserver.js.map +1 -1
- package/dist/utils/throttle.cjs +13 -9
- package/dist/utils/throttle.cjs.map +1 -1
- package/dist/utils/throttle.d.cts +6 -3
- package/dist/utils/throttle.d.cts.map +1 -1
- package/dist/utils/throttle.d.ts +6 -3
- package/dist/utils/throttle.d.ts.map +1 -1
- package/dist/utils/throttle.js +13 -9
- package/dist/utils/throttle.js.map +1 -1
- package/package.json +56 -56
- package/dist/api-sessions/api/SessionAPI/types.d.cts +0 -8
- package/dist/api-sessions/api/SessionAPI/types.d.cts.map +0 -1
- package/dist/api-sessions/api/SessionAPI/types.d.ts +0 -8
- package/dist/api-sessions/api/SessionAPI/types.d.ts.map +0 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.cjs +0 -31
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.cjs.map +0 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.d.cts +0 -24
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.d.cts.map +0 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.d.ts +0 -24
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.d.ts.map +0 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.js +0 -30
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.js.map +0 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/index.cjs +0 -3
- package/dist/api-sessions/manager/NoOpSpanSessionManager/index.d.cts +0 -2
- package/dist/api-sessions/manager/NoOpSpanSessionManager/index.d.ts +0 -2
- package/dist/api-sessions/manager/NoOpSpanSessionManager/index.js +0 -2
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.cjs +0 -55
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.cjs.map +0 -1
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.d.cts +0 -27
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.d.cts.map +0 -1
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.d.ts +0 -27
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.d.ts.map +0 -1
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.js +0 -55
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.js.map +0 -1
- package/dist/api-sessions/manager/ProxySpanSessionManager/index.cjs +0 -3
- package/dist/api-sessions/manager/ProxySpanSessionManager/index.d.cts +0 -2
- package/dist/api-sessions/manager/ProxySpanSessionManager/index.d.ts +0 -2
- package/dist/api-sessions/manager/ProxySpanSessionManager/index.js +0 -2
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.cjs +0 -27
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.cjs.map +0 -1
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.d.cts +0 -15
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.d.cts.map +0 -1
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.d.ts +0 -15
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.d.ts.map +0 -1
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.js +0 -25
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.js.map +0 -1
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/index.cjs +0 -3
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/index.d.cts +0 -2
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/index.d.ts +0 -2
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/index.js +0 -2
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/types.d.cts +0 -9
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/types.d.cts.map +0 -1
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/types.d.ts +0 -9
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/types.d.ts.map +0 -1
- package/dist/instrumentations/fetch/index.cjs +0 -3
- package/dist/instrumentations/fetch/index.d.cts +0 -3
- package/dist/instrumentations/fetch/index.d.ts +0 -3
- package/dist/instrumentations/fetch/index.js +0 -2
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.cjs +0 -60
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.cjs.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.d.cts +0 -24
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.d.ts +0 -24
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.js +0 -59
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.js.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.cjs +0 -19
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.cjs.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.d.cts +0 -10
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.d.ts +0 -10
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.js +0 -16
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.js.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/index.cjs +0 -3
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/index.d.cts +0 -3
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/index.d.ts +0 -3
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/index.js +0 -2
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/types.d.cts +0 -6
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/types.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/types.d.ts +0 -6
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/types.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.cjs +0 -24
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.cjs.map +0 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.d.cts +0 -14
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.d.ts +0 -14
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.js +0 -23
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.js.map +0 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/index.cjs +0 -3
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/index.d.cts +0 -3
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/index.d.ts +0 -3
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/index.js +0 -2
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/types.d.cts +0 -6
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/types.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/types.d.ts +0 -6
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/types.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.cjs +0 -55
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.cjs.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.d.cts +0 -22
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.d.ts +0 -22
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.js +0 -54
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.js.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.cjs +0 -7
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.cjs.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.d.cts +0 -5
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.d.ts +0 -5
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.js +0 -6
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.js.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/index.cjs +0 -3
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/index.d.cts +0 -3
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/index.d.ts +0 -3
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/index.js +0 -2
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.cjs +0 -0
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.d.cts +0 -6
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.d.ts +0 -6
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.js +0 -0
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.cjs +0 -38
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.cjs.map +0 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.d.cts +0 -17
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.d.ts +0 -17
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.js +0 -37
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.js.map +0 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/index.cjs +0 -3
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/index.d.cts +0 -3
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/index.d.ts +0 -3
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/index.js +0 -2
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.cjs +0 -0
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.d.cts +0 -10
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.d.cts.map +0 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.d.ts +0 -10
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.d.ts.map +0 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.js +0 -0
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.cjs +0 -27
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.cjs.map +0 -1
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.d.cts +0 -15
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.d.cts.map +0 -1
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.d.ts +0 -15
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.d.ts.map +0 -1
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.js +0 -25
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.js.map +0 -1
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/index.cjs +0 -3
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/index.d.cts +0 -2
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/index.d.ts +0 -2
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/index.js +0 -2
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/types.cjs +0 -0
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/types.d.cts +0 -9
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/types.d.cts.map +0 -1
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/types.d.ts +0 -9
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/types.d.ts.map +0 -1
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/types.js +0 -0
- package/dist/instrumentations/xhr/index.cjs +0 -3
- package/dist/instrumentations/xhr/index.d.cts +0 -3
- package/dist/instrumentations/xhr/index.d.ts +0 -3
- package/dist/instrumentations/xhr/index.js +0 -2
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.cjs +0 -350
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.cjs.map +0 -1
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.cts +0 -72
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.cts.map +0 -1
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.ts +0 -72
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.ts.map +0 -1
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.js +0 -348
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.js.map +0 -1
- package/dist/managers/MXLSpanSessionManager/constants.cjs +0 -11
- package/dist/managers/MXLSpanSessionManager/constants.cjs.map +0 -1
- package/dist/managers/MXLSpanSessionManager/constants.d.cts +0 -7
- package/dist/managers/MXLSpanSessionManager/constants.d.cts.map +0 -1
- package/dist/managers/MXLSpanSessionManager/constants.d.ts +0 -7
- package/dist/managers/MXLSpanSessionManager/constants.d.ts.map +0 -1
- package/dist/managers/MXLSpanSessionManager/constants.js +0 -8
- package/dist/managers/MXLSpanSessionManager/constants.js.map +0 -1
- package/dist/managers/MXLSpanSessionManager/index.cjs +0 -3
- package/dist/managers/MXLSpanSessionManager/index.d.cts +0 -3
- package/dist/managers/MXLSpanSessionManager/index.d.ts +0 -3
- package/dist/managers/MXLSpanSessionManager/index.js +0 -2
- package/dist/managers/MXLSpanSessionManager/types.cjs +0 -0
- package/dist/managers/MXLSpanSessionManager/types.d.cts +0 -41
- package/dist/managers/MXLSpanSessionManager/types.d.cts.map +0 -1
- package/dist/managers/MXLSpanSessionManager/types.d.ts +0 -41
- package/dist/managers/MXLSpanSessionManager/types.d.ts.map +0 -1
- package/dist/managers/MXLSpanSessionManager/types.js +0 -0
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.cjs +0 -28
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.cjs.map +0 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.d.cts +0 -16
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.d.cts.map +0 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.d.ts +0 -16
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.d.ts.map +0 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.js +0 -26
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.js.map +0 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/index.cjs +0 -3
- package/dist/processors/IdentifiableSessionLogRecordProcessor/index.d.cts +0 -2
- package/dist/processors/IdentifiableSessionLogRecordProcessor/index.d.ts +0 -2
- package/dist/processors/IdentifiableSessionLogRecordProcessor/index.js +0 -2
- package/dist/processors/IdentifiableSessionLogRecordProcessor/types.cjs +0 -0
- package/dist/processors/IdentifiableSessionLogRecordProcessor/types.d.cts +0 -9
- package/dist/processors/IdentifiableSessionLogRecordProcessor/types.d.cts.map +0 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/types.d.ts +0 -9
- package/dist/processors/IdentifiableSessionLogRecordProcessor/types.d.ts.map +0 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/types.js +0 -0
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.cjs +0 -95
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.cjs.map +0 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.d.cts +0 -34
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.d.cts.map +0 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.d.ts +0 -34
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.d.ts.map +0 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.js +0 -93
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.js.map +0 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/index.cjs +0 -3
- package/dist/processors/MXLSessionBatchedSpanProcessor/index.d.cts +0 -2
- package/dist/processors/MXLSessionBatchedSpanProcessor/index.d.ts +0 -2
- package/dist/processors/MXLSessionBatchedSpanProcessor/index.js +0 -2
- package/dist/processors/MXLSessionBatchedSpanProcessor/types.cjs +0 -0
- package/dist/processors/MXLSessionBatchedSpanProcessor/types.d.cts +0 -19
- package/dist/processors/MXLSessionBatchedSpanProcessor/types.d.cts.map +0 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/types.d.ts +0 -19
- package/dist/processors/MXLSessionBatchedSpanProcessor/types.d.ts.map +0 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/types.js +0 -0
- package/dist/sdk/setupSessionRecorder.cjs +0 -87
- package/dist/sdk/setupSessionRecorder.cjs.map +0 -1
- package/dist/sdk/setupSessionRecorder.d.cts +0 -30
- package/dist/sdk/setupSessionRecorder.d.cts.map +0 -1
- package/dist/sdk/setupSessionRecorder.d.ts +0 -30
- package/dist/sdk/setupSessionRecorder.d.ts.map +0 -1
- package/dist/sdk/setupSessionRecorder.js +0 -83
- package/dist/sdk/setupSessionRecorder.js.map +0 -1
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.cjs +0 -116
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.cjs.map +0 -1
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.d.cts +0 -42
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.d.cts.map +0 -1
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.d.ts +0 -42
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.d.ts.map +0 -1
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.js +0 -114
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.js.map +0 -1
- package/dist/utils/MXLSpanStorage/index.cjs +0 -3
- package/dist/utils/MXLSpanStorage/index.d.cts +0 -2
- package/dist/utils/MXLSpanStorage/index.d.ts +0 -2
- package/dist/utils/MXLSpanStorage/index.js +0 -2
- package/dist/utils/MXLSpanStorage/types.cjs +0 -0
- package/dist/utils/MXLSpanStorage/types.d.cts +0 -2
- package/dist/utils/MXLSpanStorage/types.d.ts +0 -2
- package/dist/utils/MXLSpanStorage/types.js +0 -0
- /package/dist/{api-sessions/api/SessionAPI → instrumentations/replay/ReplayInstrumentation}/types.cjs +0 -0
- /package/dist/{api-sessions/api/SessionAPI → instrumentations/replay/ReplayInstrumentation}/types.js +0 -0
- /package/dist/{instrumentations/fetch/MXLFetchInstrumentation → managers/MXLUserSessionManager}/types.cjs +0 -0
- /package/dist/{instrumentations/fetch/MXLFetchInstrumentation → managers/MXLUserSessionManager}/types.js +0 -0
- /package/dist/{instrumentations/session/SpanSessionBrowserActivityInstrumentation → processors/MXLSessionPartBatchedSpanProcessor}/types.cjs +0 -0
- /package/dist/{instrumentations/session/SpanSessionBrowserActivityInstrumentation → processors/MXLSessionPartBatchedSpanProcessor}/types.js +0 -0
- /package/dist/{instrumentations/session/SpanSessionOnLoadInstrumentation → processors/UserSessionLogRecordProcessor}/types.cjs +0 -0
- /package/dist/{instrumentations/session/SpanSessionOnLoadInstrumentation → processors/UserSessionLogRecordProcessor}/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentLoadInstrumentation.js","names":["ATTR_URL_FULL","ATTR_USER_AGENT_ORIGINAL"],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.ts"],"sourcesContent":["/*\n * Adapted from OpenTelemetry document-load instrumentation\n * https://github.com/open-telemetry/opentelemetry-js-contrib/tree/cc7eff47e2e7bad7678241b766753d5bd6dbc85f/packages/instrumentation-document-load\n *\n * Additional PerformanceResourceTiming attributes collected:\n * - entry_type, initiator_type\n * - decoded_body_size, http.response.body.size, http.response.size\n * - delivery_type (Chromium only)\n * - render_blocking_status (Chromium only)\n * - http.response.status_code (no Safari support)\n *\n * Custom diagnostic attributes added to identify resource loading issues:\n * - http.response.cors_opaque - CORS-restricted resource (opaque response)\n * - http.response.cache_revalidated - 304 Not Modified response\n * - http.request.incomplete - Request started but didn't complete (network error, aborted)\n * - http.request.prevented - Request never started (blocked by CSP, browser, extension)\n */\n\nimport type { Span } from '@opentelemetry/api';\nimport { context, propagation, ROOT_CONTEXT, trace } from '@opentelemetry/api';\nimport { TRACE_PARENT_HEADER } from '@opentelemetry/core';\nimport { safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport type { PerformanceEntries } from '@opentelemetry/sdk-trace-web';\nimport {\n addSpanNetworkEvent,\n addSpanNetworkEvents,\n hasKey,\n PerformanceTimingNames,\n} from '@opentelemetry/sdk-trace-web';\nimport { ATTR_HTTP_RESPONSE_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport {\n ATTR_HTTP_RESPONSE_BODY_SIZE,\n ATTR_HTTP_RESPONSE_SIZE,\n ATTR_URL_FULL,\n ATTR_USER_AGENT_ORIGINAL,\n} from '@opentelemetry/semantic-conventions/incubating';\nimport { KEY_MXL_TYPE, MXL_TYPES } from '../../../constants';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport { AttributeNames } from './enums/AttributeNames';\nimport type {\n DocumentLoadCustomAttributeFunction,\n DocumentLoadInstrumentationConfig,\n ResourceFetchCustomAttributeFunction,\n} from './types';\nimport {\n addSpanPerformancePaintEvents,\n getPerformanceNavigationEntries,\n} from './utils';\n\n/**\n * Adds new browser features not yet in TypeScript's DOM lib (as of Oct 2025):\n * - deliveryType: Chromium only (experimental) https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/deliveryType\n * - renderBlockingStatus: Chromium only https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/renderBlockingStatus\n */\ntype MXLPerformanceResourceTiming = PerformanceResourceTiming & {\n deliveryType?: 'cache' | '';\n renderBlockingStatus?: 'blocking' | 'non-blocking';\n};\n\n// PerformanceResourceTiming attribute names\nconst ATTR_HTTP_RESPONSE_DELIVERY_TYPE = 'http.response.delivery_type';\nconst ATTR_HTTP_RESPONSE_DECODED_BODY_SIZE = 'http.response.decoded_body_size';\nconst ATTR_HTTP_REQUEST_INITIATOR_TYPE = 'http.request.initiator_type';\nconst ATTR_HTTP_REQUEST_RENDER_BLOCKING_STATUS =\n 'http.request.render_blocking_status';\n\n// Diagnostic attribute names\nconst ATTR_HTTP_RESPONSE_CORS_OPAQUE = 'http.response.cors_opaque'; // CORS-restricted resource (opaque response)\nconst ATTR_HTTP_RESPONSE_CACHE_REVALIDATED = 'http.response.cache_revalidated'; // 304 Not Modified response\nconst ATTR_HTTP_REQUEST_INCOMPLETE = 'http.request.incomplete'; // Request started but didn't complete\nconst ATTR_HTTP_REQUEST_PREVENTED = 'http.request.prevented'; // Request never started (blocked)\n\nexport class DocumentLoadInstrumentation extends MXLInstrumentationBase<DocumentLoadInstrumentationConfig> {\n private readonly _onDocumentLoaded: () => void;\n private _performanceCollected = false;\n\n public constructor({\n diag,\n perf,\n enabled,\n applyCustomAttributesOnSpan,\n ignorePerformancePaintEvents = false,\n ignoreNetworkEvents = false,\n }: DocumentLoadInstrumentationConfig = {}) {\n super({\n instrumentationName: 'DocumentLoadInstrumentation',\n instrumentationVersion: '1.0.0',\n diag,\n perf,\n config: {\n enabled,\n applyCustomAttributesOnSpan,\n ignorePerformancePaintEvents,\n ignoreNetworkEvents,\n },\n });\n\n this._onDocumentLoaded = () => {\n // Timeout needed because performance metrics for loadEnd aren't available until after the load event\n window.setTimeout(() => {\n this._collectPerformance();\n }, 0);\n };\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n protected override init() {\n this._diag.debug('Initializing document load instrumentation');\n return undefined;\n }\n\n /**\n * Adds spans for all resources\n * @param rootSpan\n */\n private _addResourcesSpans(rootSpan: Span): void {\n const resources: MXLPerformanceResourceTiming[] =\n performance.getEntriesByType('resource');\n resources.forEach((resource) => {\n this._initResourceSpan(resource, rootSpan);\n });\n }\n\n /**\n * Collects information about performance and creates appropriate spans\n */\n private _collectPerformance(): void {\n if (this._performanceCollected) {\n return;\n }\n this._performanceCollected = true;\n\n const metaElement = Array.from(document.getElementsByTagName('meta')).find(\n (e) => e.getAttribute('name') === TRACE_PARENT_HEADER,\n );\n const entries = getPerformanceNavigationEntries();\n const traceparent = metaElement?.content || '';\n context.with(propagation.extract(ROOT_CONTEXT, { traceparent }), () => {\n const rootSpan = this._startSpan(\n AttributeNames.DOCUMENT_LOAD,\n PerformanceTimingNames.FETCH_START,\n entries,\n );\n if (!rootSpan) {\n return;\n }\n context.with(trace.setSpan(context.active(), rootSpan), () => {\n const fetchSpan = this._startSpan(\n AttributeNames.DOCUMENT_FETCH,\n PerformanceTimingNames.FETCH_START,\n entries,\n );\n if (fetchSpan) {\n fetchSpan.setAttribute(ATTR_URL_FULL, location.href);\n context.with(trace.setSpan(context.active(), fetchSpan), () => {\n addSpanNetworkEvents(\n fetchSpan,\n entries,\n this.getConfig().ignoreNetworkEvents,\n );\n this._addCustomAttributesOnSpan(\n fetchSpan,\n this.getConfig().applyCustomAttributesOnSpan?.documentFetch,\n );\n this._endSpan(\n fetchSpan,\n PerformanceTimingNames.RESPONSE_END,\n entries,\n );\n });\n }\n });\n\n rootSpan.setAttribute(KEY_MXL_TYPE, MXL_TYPES.DocumentLoad);\n rootSpan.setAttribute(ATTR_URL_FULL, location.href);\n rootSpan.setAttribute(ATTR_USER_AGENT_ORIGINAL, navigator.userAgent);\n\n this._addResourcesSpans(rootSpan);\n\n if (!this.getConfig().ignoreNetworkEvents) {\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.FETCH_START,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.UNLOAD_EVENT_START,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.UNLOAD_EVENT_END,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.DOM_INTERACTIVE,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.DOM_CONTENT_LOADED_EVENT_START,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.DOM_CONTENT_LOADED_EVENT_END,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.DOM_COMPLETE,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.LOAD_EVENT_START,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.LOAD_EVENT_END,\n entries,\n );\n }\n\n if (!this.getConfig().ignorePerformancePaintEvents) {\n addSpanPerformancePaintEvents(rootSpan);\n }\n\n this._addCustomAttributesOnSpan(\n rootSpan,\n this.getConfig().applyCustomAttributesOnSpan?.documentLoad,\n );\n this._endSpan(rootSpan, PerformanceTimingNames.LOAD_EVENT_END, entries);\n });\n }\n\n /**\n * Helper function for ending a span\n * @param span\n * @param performanceName name of performance entry for end time\n * @param entries\n */\n private _endSpan(\n span: Span | undefined,\n performanceName: string,\n entries: PerformanceEntries,\n ) {\n // Span can be undefined when entries are missing the required performance timing - no span will be created\n if (span) {\n if (\n hasKey(entries, performanceName) &&\n typeof entries[performanceName] === 'number'\n ) {\n span.end(entries[performanceName]);\n } else {\n span.end();\n }\n }\n }\n\n /**\n * Creates and ends a span with network information about a resource added as timed events\n * @param resource\n * @param parentSpan\n */\n private _initResourceSpan(\n resource: MXLPerformanceResourceTiming,\n parentSpan: Span,\n ) {\n const span = this._startSpan(\n AttributeNames.RESOURCE_FETCH,\n PerformanceTimingNames.FETCH_START,\n resource,\n parentSpan,\n );\n if (!span) {\n return;\n }\n\n span.setAttribute(KEY_MXL_TYPE, MXL_TYPES.ResourceFetch);\n span.setAttribute(ATTR_URL_FULL, resource.name);\n addSpanNetworkEvents(span, resource, this.getConfig().ignoreNetworkEvents);\n\n if (resource.deliveryType) {\n span.setAttribute(\n ATTR_HTTP_RESPONSE_DELIVERY_TYPE,\n resource.deliveryType,\n );\n }\n\n if (resource.initiatorType) {\n span.setAttribute(\n ATTR_HTTP_REQUEST_INITIATOR_TYPE,\n resource.initiatorType,\n );\n }\n\n if (resource.renderBlockingStatus) {\n span.setAttribute(\n ATTR_HTTP_REQUEST_RENDER_BLOCKING_STATUS,\n resource.renderBlockingStatus,\n );\n }\n\n if (resource.responseStatus) {\n span.setAttribute(\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n resource.responseStatus,\n );\n }\n\n // Validate size fields exist and aren't negative\n if (\n typeof resource.encodedBodySize === 'number' &&\n resource.encodedBodySize >= 0\n ) {\n span.setAttribute(ATTR_HTTP_RESPONSE_BODY_SIZE, resource.encodedBodySize);\n }\n\n if (\n typeof resource.transferSize === 'number' &&\n resource.transferSize >= 0\n ) {\n span.setAttribute(ATTR_HTTP_RESPONSE_SIZE, resource.transferSize);\n }\n\n if (\n typeof resource.decodedBodySize === 'number' &&\n resource.decodedBodySize >= 0\n ) {\n span.setAttribute(\n ATTR_HTTP_RESPONSE_DECODED_BODY_SIZE,\n resource.decodedBodySize,\n );\n }\n\n this._addResourceDiagnosticAttributes(span, resource);\n\n this._addCustomAttributesOnResourceSpan(\n span,\n resource,\n this.getConfig().applyCustomAttributesOnSpan?.resourceFetch,\n );\n this._endSpan(span, PerformanceTimingNames.RESPONSE_END, resource);\n }\n\n /**\n * Helper function for starting a span\n * @param spanName name of span\n * @param performanceName name of performance entry for time start\n * @param entries\n * @param parentSpan\n */\n private _startSpan(\n spanName: string,\n performanceName: string,\n entries: PerformanceEntries,\n parentSpan?: Span,\n ): Span | undefined {\n if (\n hasKey(entries, performanceName) &&\n typeof entries[performanceName] === 'number'\n ) {\n const span = this.tracer.startSpan(\n spanName,\n {\n startTime: entries[performanceName],\n },\n parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined,\n );\n return span;\n }\n return undefined;\n }\n\n /**\n * Executes callback {_onDocumentLoaded} when the page is loaded\n */\n private _waitForPageLoad() {\n if (window.document.readyState === 'complete') {\n this._onDocumentLoaded();\n } else {\n window.addEventListener('load', this._onDocumentLoaded);\n }\n }\n\n /**\n * Adds custom attributes to span if configured\n * Used for both documentFetch and documentLoad spans\n */\n private _addCustomAttributesOnSpan(\n span: Span,\n applyCustomAttributesOnSpan:\n | DocumentLoadCustomAttributeFunction\n | undefined,\n ) {\n if (applyCustomAttributesOnSpan) {\n safeExecuteInTheMiddle(\n () => {\n applyCustomAttributesOnSpan(span);\n },\n (error) => {\n if (!error) {\n return;\n }\n\n this._diag.error('addCustomAttributesOnSpan', error);\n },\n true,\n );\n }\n }\n\n /**\n * Adds custom attributes to resource span if configured\n */\n private _addCustomAttributesOnResourceSpan(\n span: Span,\n resource: MXLPerformanceResourceTiming,\n applyCustomAttributesOnSpan:\n | ResourceFetchCustomAttributeFunction\n | undefined,\n ) {\n if (applyCustomAttributesOnSpan) {\n safeExecuteInTheMiddle(\n () => {\n applyCustomAttributesOnSpan(span, resource);\n },\n (error) => {\n if (!error) {\n return;\n }\n\n this._diag.error('addCustomAttributesOnResourceSpan', error);\n },\n true,\n );\n }\n }\n\n private _hasNoSizeData(resource: MXLPerformanceResourceTiming): boolean {\n const transferSize =\n typeof resource.transferSize === 'number' ? resource.transferSize : 0;\n const decodedBodySize =\n typeof resource.decodedBodySize === 'number'\n ? resource.decodedBodySize\n : 0;\n const encodedBodySize =\n typeof resource.encodedBodySize === 'number'\n ? resource.encodedBodySize\n : 0;\n\n return transferSize === 0 && decodedBodySize === 0 && encodedBodySize === 0;\n }\n\n private _hasTimingData(resource: MXLPerformanceResourceTiming): boolean {\n const fetchStart =\n typeof resource.fetchStart === 'number' ? resource.fetchStart : 0;\n const responseEnd =\n typeof resource.responseEnd === 'number' ? resource.responseEnd : 0;\n\n return fetchStart > 0 && responseEnd > 0;\n }\n\n private _isCorsRestricted(resource: MXLPerformanceResourceTiming): boolean {\n return this._hasNoSizeData(resource) && this._hasTimingData(resource);\n }\n\n private _isFetchIncomplete(resource: MXLPerformanceResourceTiming): boolean {\n const fetchStart =\n typeof resource.fetchStart === 'number' ? resource.fetchStart : 0;\n const responseEnd =\n typeof resource.responseEnd === 'number' ? resource.responseEnd : 0;\n\n return this._hasNoSizeData(resource) && fetchStart > 0 && responseEnd === 0;\n }\n\n private _isFetchPrevented(resource: MXLPerformanceResourceTiming): boolean {\n const fetchStart =\n typeof resource.fetchStart === 'number' ? resource.fetchStart : 0;\n\n return this._hasNoSizeData(resource) && fetchStart === 0;\n }\n\n /**\n * Detect cache validation (304 Not Modified responses)\n *\n * 304 responses show transferSize of ~300 bytes (headers only, no body).\n * Use deliveryType to distinguish from cache hits: 'cache' = no network, otherwise = 304.\n *\n * Spec: https://w3c.github.io/resource-timing/#dom-performanceresourcetiming-transfersize\n */\n private _isCacheValidated(resource: MXLPerformanceResourceTiming): boolean {\n const transferSize =\n typeof resource.transferSize === 'number' ? resource.transferSize : 0;\n const deliveryType =\n typeof resource.deliveryType === 'string' ? resource.deliveryType : '';\n\n return transferSize === 300 && deliveryType !== 'cache';\n }\n\n /**\n * Add diagnostic attributes to identify resource loading issues\n *\n * Diagnostic attributes help identify why resources may have incomplete timing data:\n * - CORS restrictions (opaque responses without Timing-Allow-Origin header)\n * - Cache revalidation (304 Not Modified responses)\n * - Request incomplete (started but didn't complete - network error, aborted)\n * - Request prevented (never started - blocked by CSP, browser, extension)\n */\n private _addResourceDiagnosticAttributes(\n span: Span,\n resource: MXLPerformanceResourceTiming,\n ): void {\n if (this._isCorsRestricted(resource)) {\n span.setAttribute(ATTR_HTTP_RESPONSE_CORS_OPAQUE, true);\n } else if (this._isFetchIncomplete(resource)) {\n span.setAttribute(ATTR_HTTP_REQUEST_INCOMPLETE, true);\n } else if (this._isFetchPrevented(resource)) {\n span.setAttribute(ATTR_HTTP_REQUEST_PREVENTED, true);\n }\n\n if (this._isCacheValidated(resource)) {\n span.setAttribute(ATTR_HTTP_RESPONSE_CACHE_REVALIDATED, true);\n }\n }\n\n public enable(): void {\n window.removeEventListener('load', this._onDocumentLoaded);\n this._waitForPageLoad();\n }\n\n public disable(): void {\n window.removeEventListener('load', this._onDocumentLoaded);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocumentLoadInstrumentation.js","names":["ATTR_URL_FULL","ATTR_USER_AGENT_ORIGINAL"],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.ts"],"sourcesContent":["/*\n * Adapted from OpenTelemetry document-load instrumentation\n * https://github.com/open-telemetry/opentelemetry-js-contrib/tree/cc7eff47e2e7bad7678241b766753d5bd6dbc85f/packages/instrumentation-document-load\n *\n * Additional PerformanceResourceTiming attributes collected:\n * - entry_type, initiator_type\n * - decoded_body_size, http.response.body.size, http.response.size\n * - delivery_type (Chromium only)\n * - render_blocking_status (Chromium only)\n * - http.response.status_code (no Safari support)\n *\n * Custom diagnostic attributes added to identify resource loading issues:\n * - http.response.cors_opaque - CORS-restricted resource (opaque response)\n * - http.response.cache_revalidated - 304 Not Modified response\n * - http.request.incomplete - Request started but didn't complete (network error, aborted)\n * - http.request.prevented - Request never started (blocked by CSP, browser, extension)\n */\n\nimport type { Span } from '@opentelemetry/api';\nimport { ROOT_CONTEXT, context, propagation, trace } from '@opentelemetry/api';\nimport { TRACE_PARENT_HEADER } from '@opentelemetry/core';\nimport { safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport type { PerformanceEntries } from '@opentelemetry/sdk-trace-web';\nimport {\n PerformanceTimingNames,\n addSpanNetworkEvent,\n addSpanNetworkEvents,\n hasKey,\n} from '@opentelemetry/sdk-trace-web';\nimport { ATTR_HTTP_RESPONSE_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport {\n ATTR_HTTP_RESPONSE_BODY_SIZE,\n ATTR_HTTP_RESPONSE_SIZE,\n ATTR_URL_FULL,\n ATTR_USER_AGENT_ORIGINAL,\n} from '@opentelemetry/semantic-conventions/incubating';\nimport { KEY_MXL_TYPE, MXL_TYPES } from '../../../constants';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport { AttributeNames } from './enums/AttributeNames';\nimport type {\n DocumentLoadCustomAttributeFunction,\n DocumentLoadInstrumentationConfig,\n ResourceFetchCustomAttributeFunction,\n} from './types';\nimport {\n addSpanPerformancePaintEvents,\n getPerformanceNavigationEntries,\n} from './utils';\n\n/**\n * Adds new browser features not yet in TypeScript's DOM lib (as of Oct 2025):\n * - deliveryType: Chromium only (experimental) https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/deliveryType\n * - renderBlockingStatus: Chromium only https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/renderBlockingStatus\n */\ntype MXLPerformanceResourceTiming = PerformanceResourceTiming & {\n deliveryType?: 'cache' | '';\n renderBlockingStatus?: 'blocking' | 'non-blocking';\n};\n\n// PerformanceResourceTiming attribute names\nconst ATTR_HTTP_RESPONSE_DELIVERY_TYPE = 'http.response.delivery_type';\nconst ATTR_HTTP_RESPONSE_DECODED_BODY_SIZE = 'http.response.decoded_body_size';\nconst ATTR_HTTP_REQUEST_INITIATOR_TYPE = 'http.request.initiator_type';\nconst ATTR_HTTP_REQUEST_RENDER_BLOCKING_STATUS =\n 'http.request.render_blocking_status';\n\n// Diagnostic attribute names\nconst ATTR_HTTP_RESPONSE_CORS_OPAQUE = 'http.response.cors_opaque'; // CORS-restricted resource (opaque response)\nconst ATTR_HTTP_RESPONSE_CACHE_REVALIDATED = 'http.response.cache_revalidated'; // 304 Not Modified response\nconst ATTR_HTTP_REQUEST_INCOMPLETE = 'http.request.incomplete'; // Request started but didn't complete\nconst ATTR_HTTP_REQUEST_PREVENTED = 'http.request.prevented'; // Request never started (blocked)\n\nexport class DocumentLoadInstrumentation extends MXLInstrumentationBase<DocumentLoadInstrumentationConfig> {\n private readonly _onDocumentLoaded: () => void;\n private _performanceCollected = false;\n\n public constructor({\n diag,\n perf,\n enabled,\n applyCustomAttributesOnSpan,\n ignorePerformancePaintEvents = false,\n ignoreNetworkEvents = false,\n }: DocumentLoadInstrumentationConfig = {}) {\n super({\n config: {\n applyCustomAttributesOnSpan,\n enabled,\n ignoreNetworkEvents,\n ignorePerformancePaintEvents,\n },\n diag,\n instrumentationName: 'DocumentLoadInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n\n this._onDocumentLoaded = () => {\n // Timeout needed because performance metrics for loadEnd aren't available until after the load event\n window.setTimeout(() => {\n this._collectPerformance();\n }, 0);\n };\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n protected override init() {\n this._diag.debug('Initializing document load instrumentation');\n return undefined;\n }\n\n /**\n * Adds spans for all resources\n * @param rootSpan\n */\n private _addResourcesSpans(rootSpan: Span): void {\n const resources: MXLPerformanceResourceTiming[] =\n performance.getEntriesByType('resource');\n resources.forEach((resource) => {\n this._initResourceSpan(resource, rootSpan);\n });\n }\n\n /**\n * Collects information about performance and creates appropriate spans\n */\n private _collectPerformance(): void {\n if (this._performanceCollected) {\n return;\n }\n this._performanceCollected = true;\n\n const metaElement = [...document.getElementsByTagName('meta')].find(\n (e) => e.getAttribute('name') === TRACE_PARENT_HEADER,\n );\n const entries = getPerformanceNavigationEntries();\n const traceparent = metaElement?.content || '';\n context.with(propagation.extract(ROOT_CONTEXT, { traceparent }), () => {\n const rootSpan = this._startSpan(\n AttributeNames.DOCUMENT_LOAD,\n PerformanceTimingNames.FETCH_START,\n entries,\n );\n if (!rootSpan) {\n return;\n }\n context.with(trace.setSpan(context.active(), rootSpan), () => {\n const fetchSpan = this._startSpan(\n AttributeNames.DOCUMENT_FETCH,\n PerformanceTimingNames.FETCH_START,\n entries,\n );\n if (fetchSpan) {\n fetchSpan.setAttribute(ATTR_URL_FULL, location.href);\n context.with(trace.setSpan(context.active(), fetchSpan), () => {\n addSpanNetworkEvents(\n fetchSpan,\n entries,\n this.getConfig().ignoreNetworkEvents,\n );\n this._addCustomAttributesOnSpan(\n fetchSpan,\n this.getConfig().applyCustomAttributesOnSpan?.documentFetch,\n );\n this._endSpan(\n fetchSpan,\n PerformanceTimingNames.RESPONSE_END,\n entries,\n );\n });\n }\n });\n\n rootSpan.setAttribute(KEY_MXL_TYPE, MXL_TYPES.DocumentLoad);\n rootSpan.setAttribute(ATTR_URL_FULL, location.href);\n rootSpan.setAttribute(ATTR_USER_AGENT_ORIGINAL, navigator.userAgent);\n\n this._addResourcesSpans(rootSpan);\n\n if (!this.getConfig().ignoreNetworkEvents) {\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.FETCH_START,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.UNLOAD_EVENT_START,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.UNLOAD_EVENT_END,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.DOM_INTERACTIVE,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.DOM_CONTENT_LOADED_EVENT_START,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.DOM_CONTENT_LOADED_EVENT_END,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.DOM_COMPLETE,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.LOAD_EVENT_START,\n entries,\n );\n addSpanNetworkEvent(\n rootSpan,\n PerformanceTimingNames.LOAD_EVENT_END,\n entries,\n );\n }\n\n if (!this.getConfig().ignorePerformancePaintEvents) {\n addSpanPerformancePaintEvents(rootSpan);\n }\n\n this._addCustomAttributesOnSpan(\n rootSpan,\n this.getConfig().applyCustomAttributesOnSpan?.documentLoad,\n );\n this._endSpan(rootSpan, PerformanceTimingNames.LOAD_EVENT_END, entries);\n });\n }\n\n /**\n * Helper function for ending a span\n * @param span\n * @param performanceName name of performance entry for end time\n * @param entries\n */\n private _endSpan(\n span: Span | undefined,\n performanceName: string,\n entries: PerformanceEntries,\n ) {\n // Span can be undefined when entries are missing the required performance timing - no span will be created\n if (span) {\n if (\n hasKey(entries, performanceName) &&\n typeof entries[performanceName] === 'number'\n ) {\n span.end(entries[performanceName]);\n } else {\n span.end();\n }\n }\n }\n\n /**\n * Creates and ends a span with network information about a resource added as timed events\n * @param resource\n * @param parentSpan\n */\n private _initResourceSpan(\n resource: MXLPerformanceResourceTiming,\n parentSpan: Span,\n ) {\n const span = this._startSpan(\n AttributeNames.RESOURCE_FETCH,\n PerformanceTimingNames.FETCH_START,\n resource,\n parentSpan,\n );\n if (!span) {\n return;\n }\n\n span.setAttribute(KEY_MXL_TYPE, MXL_TYPES.ResourceFetch);\n span.setAttribute(ATTR_URL_FULL, resource.name);\n addSpanNetworkEvents(span, resource, this.getConfig().ignoreNetworkEvents);\n\n if (resource.deliveryType) {\n span.setAttribute(\n ATTR_HTTP_RESPONSE_DELIVERY_TYPE,\n resource.deliveryType,\n );\n }\n\n if (resource.initiatorType) {\n span.setAttribute(\n ATTR_HTTP_REQUEST_INITIATOR_TYPE,\n resource.initiatorType,\n );\n }\n\n if (resource.renderBlockingStatus) {\n span.setAttribute(\n ATTR_HTTP_REQUEST_RENDER_BLOCKING_STATUS,\n resource.renderBlockingStatus,\n );\n }\n\n if (resource.responseStatus) {\n span.setAttribute(\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n resource.responseStatus,\n );\n }\n\n // Validate size fields exist and aren't negative\n if (\n typeof resource.encodedBodySize === 'number' &&\n resource.encodedBodySize >= 0\n ) {\n span.setAttribute(ATTR_HTTP_RESPONSE_BODY_SIZE, resource.encodedBodySize);\n }\n\n if (\n typeof resource.transferSize === 'number' &&\n resource.transferSize >= 0\n ) {\n span.setAttribute(ATTR_HTTP_RESPONSE_SIZE, resource.transferSize);\n }\n\n if (\n typeof resource.decodedBodySize === 'number' &&\n resource.decodedBodySize >= 0\n ) {\n span.setAttribute(\n ATTR_HTTP_RESPONSE_DECODED_BODY_SIZE,\n resource.decodedBodySize,\n );\n }\n\n this._addResourceDiagnosticAttributes(span, resource);\n\n this._addCustomAttributesOnResourceSpan(\n span,\n resource,\n this.getConfig().applyCustomAttributesOnSpan?.resourceFetch,\n );\n this._endSpan(span, PerformanceTimingNames.RESPONSE_END, resource);\n }\n\n /**\n * Helper function for starting a span\n * @param spanName name of span\n * @param performanceName name of performance entry for time start\n * @param entries\n * @param parentSpan\n */\n private _startSpan(\n spanName: string,\n performanceName: string,\n entries: PerformanceEntries,\n parentSpan?: Span,\n ): Span | undefined {\n if (\n hasKey(entries, performanceName) &&\n typeof entries[performanceName] === 'number'\n ) {\n const span = this.tracer.startSpan(\n spanName,\n {\n startTime: entries[performanceName],\n },\n parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined,\n );\n return span;\n }\n return undefined;\n }\n\n /**\n * Executes callback {_onDocumentLoaded} when the page is loaded\n */\n private _waitForPageLoad() {\n if (window.document.readyState === 'complete') {\n this._onDocumentLoaded();\n } else {\n window.addEventListener('load', this._onDocumentLoaded);\n }\n }\n\n /**\n * Adds custom attributes to span if configured\n * Used for both documentFetch and documentLoad spans\n */\n private _addCustomAttributesOnSpan(\n span: Span,\n applyCustomAttributesOnSpan:\n | DocumentLoadCustomAttributeFunction\n | undefined,\n ) {\n if (applyCustomAttributesOnSpan) {\n safeExecuteInTheMiddle(\n () => {\n applyCustomAttributesOnSpan(span);\n },\n (error) => {\n if (!error) {\n return;\n }\n\n this._diag.error('addCustomAttributesOnSpan', error);\n },\n true,\n );\n }\n }\n\n /**\n * Adds custom attributes to resource span if configured\n */\n private _addCustomAttributesOnResourceSpan(\n span: Span,\n resource: MXLPerformanceResourceTiming,\n applyCustomAttributesOnSpan:\n | ResourceFetchCustomAttributeFunction\n | undefined,\n ) {\n if (applyCustomAttributesOnSpan) {\n safeExecuteInTheMiddle(\n () => {\n applyCustomAttributesOnSpan(span, resource);\n },\n (error) => {\n if (!error) {\n return;\n }\n\n this._diag.error('addCustomAttributesOnResourceSpan', error);\n },\n true,\n );\n }\n }\n\n private _hasNoSizeData(resource: MXLPerformanceResourceTiming): boolean {\n const transferSize =\n typeof resource.transferSize === 'number' ? resource.transferSize : 0;\n const decodedBodySize =\n typeof resource.decodedBodySize === 'number'\n ? resource.decodedBodySize\n : 0;\n const encodedBodySize =\n typeof resource.encodedBodySize === 'number'\n ? resource.encodedBodySize\n : 0;\n\n return transferSize === 0 && decodedBodySize === 0 && encodedBodySize === 0;\n }\n\n private _hasTimingData(resource: MXLPerformanceResourceTiming): boolean {\n const fetchStart =\n typeof resource.fetchStart === 'number' ? resource.fetchStart : 0;\n const responseEnd =\n typeof resource.responseEnd === 'number' ? resource.responseEnd : 0;\n\n return fetchStart > 0 && responseEnd > 0;\n }\n\n private _isCorsRestricted(resource: MXLPerformanceResourceTiming): boolean {\n return this._hasNoSizeData(resource) && this._hasTimingData(resource);\n }\n\n private _isFetchIncomplete(resource: MXLPerformanceResourceTiming): boolean {\n const fetchStart =\n typeof resource.fetchStart === 'number' ? resource.fetchStart : 0;\n const responseEnd =\n typeof resource.responseEnd === 'number' ? resource.responseEnd : 0;\n\n return this._hasNoSizeData(resource) && fetchStart > 0 && responseEnd === 0;\n }\n\n private _isFetchPrevented(resource: MXLPerformanceResourceTiming): boolean {\n const fetchStart =\n typeof resource.fetchStart === 'number' ? resource.fetchStart : 0;\n\n return this._hasNoSizeData(resource) && fetchStart === 0;\n }\n\n /**\n * Detect cache validation (304 Not Modified responses)\n *\n * 304 responses show transferSize of ~300 bytes (headers only, no body).\n * Use deliveryType to distinguish from cache hits: 'cache' = no network, otherwise = 304.\n *\n * Spec: https://w3c.github.io/resource-timing/#dom-performanceresourcetiming-transfersize\n */\n private _isCacheValidated(resource: MXLPerformanceResourceTiming): boolean {\n const transferSize =\n typeof resource.transferSize === 'number' ? resource.transferSize : 0;\n const deliveryType =\n typeof resource.deliveryType === 'string' ? resource.deliveryType : '';\n\n return transferSize === 300 && deliveryType !== 'cache';\n }\n\n /**\n * Add diagnostic attributes to identify resource loading issues\n *\n * Diagnostic attributes help identify why resources may have incomplete timing data:\n * - CORS restrictions (opaque responses without Timing-Allow-Origin header)\n * - Cache revalidation (304 Not Modified responses)\n * - Request incomplete (started but didn't complete - network error, aborted)\n * - Request prevented (never started - blocked by CSP, browser, extension)\n */\n private _addResourceDiagnosticAttributes(\n span: Span,\n resource: MXLPerformanceResourceTiming,\n ): void {\n if (this._isCorsRestricted(resource)) {\n span.setAttribute(ATTR_HTTP_RESPONSE_CORS_OPAQUE, true);\n } else if (this._isFetchIncomplete(resource)) {\n span.setAttribute(ATTR_HTTP_REQUEST_INCOMPLETE, true);\n } else if (this._isFetchPrevented(resource)) {\n span.setAttribute(ATTR_HTTP_REQUEST_PREVENTED, true);\n }\n\n if (this._isCacheValidated(resource)) {\n span.setAttribute(ATTR_HTTP_RESPONSE_CACHE_REVALIDATED, true);\n }\n }\n\n public enable(): void {\n window.removeEventListener('load', this._onDocumentLoaded);\n this._waitForPageLoad();\n }\n\n public disable(): void {\n window.removeEventListener('load', this._onDocumentLoaded);\n }\n}\n"],"mappings":"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"}
|
|
@@ -15,8 +15,8 @@ const getPerformanceNavigationEntries = () => {
|
|
|
15
15
|
return entries;
|
|
16
16
|
};
|
|
17
17
|
const performancePaintNames = {
|
|
18
|
-
"first-paint": "
|
|
19
|
-
"first-
|
|
18
|
+
"first-contentful-paint": "firstContentfulPaint",
|
|
19
|
+
"first-paint": "firstPaint"
|
|
20
20
|
};
|
|
21
21
|
const addSpanPerformancePaintEvents = (span) => {
|
|
22
22
|
window.performance.getEntriesByType("paint").forEach(({ name, startTime }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":["PerformanceTimingNames"],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/utils.ts"],"sourcesContent":["/*\n * Adapted from OpenTelemetry document-load instrumentation\n * https://github.com/open-telemetry/opentelemetry-js-contrib/tree/cc7eff47e2e7bad7678241b766753d5bd6dbc85f/packages/instrumentation-document-load\n */\n\nimport type { Span } from '@opentelemetry/api';\nimport type { PerformanceEntries } from '@opentelemetry/sdk-trace-web';\nimport {
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":["PerformanceTimingNames"],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/utils.ts"],"sourcesContent":["/*\n * Adapted from OpenTelemetry document-load instrumentation\n * https://github.com/open-telemetry/opentelemetry-js-contrib/tree/cc7eff47e2e7bad7678241b766753d5bd6dbc85f/packages/instrumentation-document-load\n */\n\nimport type { Span } from '@opentelemetry/api';\nimport type { PerformanceEntries } from '@opentelemetry/sdk-trace-web';\nimport { PerformanceTimingNames, hasKey } from '@opentelemetry/sdk-trace-web';\nimport { EventNames } from './enums/EventNames';\n\nexport const getPerformanceNavigationEntries = (): PerformanceEntries => {\n const entries: PerformanceEntries = {};\n const performanceNavigationTiming =\n window.performance.getEntriesByType('navigation')[0];\n\n const keys = Object.values(PerformanceTimingNames);\n keys.forEach((key: PerformanceTimingNames) => {\n if (hasKey(performanceNavigationTiming, key)) {\n const value = performanceNavigationTiming[key];\n if (typeof value === 'number') {\n entries[key] = value;\n }\n }\n });\n\n return entries;\n};\n\nconst performancePaintNames = {\n 'first-contentful-paint': EventNames.FIRST_CONTENTFUL_PAINT,\n 'first-paint': EventNames.FIRST_PAINT,\n};\n\nexport const addSpanPerformancePaintEvents = (span: Span) => {\n const performancePaintTiming = window.performance.getEntriesByType('paint');\n performancePaintTiming.forEach(({ name, startTime }) => {\n if (hasKey(performancePaintNames, name)) {\n span.addEvent(performancePaintNames[name], startTime);\n }\n });\n};\n"],"mappings":";;;;;AAUA,MAAa,wCAA4D;CACvE,MAAM,UAA8B,EAAE;CACtC,MAAM,8BACJ,OAAO,YAAY,iBAAiB,aAAa,CAAC;AAEvC,QAAO,OAAOA,6BAAAA,uBACvB,CAAC,SAAS,QAAgC;AAC5C,OAAA,GAAA,6BAAA,QAAW,6BAA6B,IAAI,EAAE;GAC5C,MAAM,QAAQ,4BAA4B;AAC1C,OAAI,OAAO,UAAU,SACnB,SAAQ,OAAO;;GAGnB;AAEF,QAAO;;AAGT,MAAM,wBAAwB;CAC5B,0BAAA;CACA,eAAA;CACD;AAED,MAAa,iCAAiC,SAAe;AAC5B,QAAO,YAAY,iBAAiB,QAC7C,CAAC,SAAS,EAAE,MAAM,gBAAgB;AACtD,OAAA,GAAA,6BAAA,QAAW,uBAAuB,KAAK,CACrC,MAAK,SAAS,sBAAsB,OAAO,UAAU;GAEvD"}
|
|
@@ -13,8 +13,8 @@ const getPerformanceNavigationEntries = () => {
|
|
|
13
13
|
return entries;
|
|
14
14
|
};
|
|
15
15
|
const performancePaintNames = {
|
|
16
|
-
"first-paint": "
|
|
17
|
-
"first-
|
|
16
|
+
"first-contentful-paint": "firstContentfulPaint",
|
|
17
|
+
"first-paint": "firstPaint"
|
|
18
18
|
};
|
|
19
19
|
const addSpanPerformancePaintEvents = (span) => {
|
|
20
20
|
window.performance.getEntriesByType("paint").forEach(({ name, startTime }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/utils.ts"],"sourcesContent":["/*\n * Adapted from OpenTelemetry document-load instrumentation\n * https://github.com/open-telemetry/opentelemetry-js-contrib/tree/cc7eff47e2e7bad7678241b766753d5bd6dbc85f/packages/instrumentation-document-load\n */\n\nimport type { Span } from '@opentelemetry/api';\nimport type { PerformanceEntries } from '@opentelemetry/sdk-trace-web';\nimport {
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/utils.ts"],"sourcesContent":["/*\n * Adapted from OpenTelemetry document-load instrumentation\n * https://github.com/open-telemetry/opentelemetry-js-contrib/tree/cc7eff47e2e7bad7678241b766753d5bd6dbc85f/packages/instrumentation-document-load\n */\n\nimport type { Span } from '@opentelemetry/api';\nimport type { PerformanceEntries } from '@opentelemetry/sdk-trace-web';\nimport { PerformanceTimingNames, hasKey } from '@opentelemetry/sdk-trace-web';\nimport { EventNames } from './enums/EventNames';\n\nexport const getPerformanceNavigationEntries = (): PerformanceEntries => {\n const entries: PerformanceEntries = {};\n const performanceNavigationTiming =\n window.performance.getEntriesByType('navigation')[0];\n\n const keys = Object.values(PerformanceTimingNames);\n keys.forEach((key: PerformanceTimingNames) => {\n if (hasKey(performanceNavigationTiming, key)) {\n const value = performanceNavigationTiming[key];\n if (typeof value === 'number') {\n entries[key] = value;\n }\n }\n });\n\n return entries;\n};\n\nconst performancePaintNames = {\n 'first-contentful-paint': EventNames.FIRST_CONTENTFUL_PAINT,\n 'first-paint': EventNames.FIRST_PAINT,\n};\n\nexport const addSpanPerformancePaintEvents = (span: Span) => {\n const performancePaintTiming = window.performance.getEntriesByType('paint');\n performancePaintTiming.forEach(({ name, startTime }) => {\n if (hasKey(performancePaintNames, name)) {\n span.addEvent(performancePaintNames[name], startTime);\n }\n });\n};\n"],"mappings":";;;AAUA,MAAa,wCAA4D;CACvE,MAAM,UAA8B,EAAE;CACtC,MAAM,8BACJ,OAAO,YAAY,iBAAiB,aAAa,CAAC;AAEvC,QAAO,OAAO,uBACvB,CAAC,SAAS,QAAgC;AAC5C,MAAI,OAAO,6BAA6B,IAAI,EAAE;GAC5C,MAAM,QAAQ,4BAA4B;AAC1C,OAAI,OAAO,UAAU,SACnB,SAAQ,OAAO;;GAGnB;AAEF,QAAO;;AAGT,MAAM,wBAAwB;CAC5B,0BAAA;CACA,eAAA;CACD;AAED,MAAa,iCAAiC,SAAe;AAC5B,QAAO,YAAY,iBAAiB,QAC7C,CAAC,SAAS,EAAE,MAAM,gBAAgB;AACtD,MAAI,OAAO,uBAAuB,KAAK,CACrC,MAAK,SAAS,sBAAsB,OAAO,UAAU;GAEvD"}
|
|
@@ -9,12 +9,12 @@ var ElementTimingInstrumentation = class extends require_instrumentations_MXLIns
|
|
|
9
9
|
_isEnabled = false;
|
|
10
10
|
constructor({ diag, perf, limitManager } = {}) {
|
|
11
11
|
super({
|
|
12
|
+
config: {},
|
|
13
|
+
diag,
|
|
12
14
|
instrumentationName: "ElementTimingInstrumentation",
|
|
13
15
|
instrumentationVersion: "1.0.0",
|
|
14
|
-
diag,
|
|
15
|
-
perf,
|
|
16
16
|
limitManager,
|
|
17
|
-
|
|
17
|
+
perf
|
|
18
18
|
});
|
|
19
19
|
if (this._config.enabled) this.enable();
|
|
20
20
|
}
|
|
@@ -44,7 +44,6 @@ var ElementTimingInstrumentation = class extends require_instrumentations_MXLIns
|
|
|
44
44
|
if (!this._isEnabled) return;
|
|
45
45
|
if (this.limitManager?.limitElementTimingEntry()) return;
|
|
46
46
|
const span = this.tracer.startSpan(entry.identifier, {
|
|
47
|
-
startTime: this.perf.epochMillisFromOriginOffset(0),
|
|
48
47
|
attributes: {
|
|
49
48
|
[require_constants_attributes.KEY_MXL_TYPE]: "ux.element_timing",
|
|
50
49
|
[require_instrumentations_element_timing_ElementTimingInstrumentation_constants.KEY_MXL_ELEMENT_TIMING_IDENTIFIER]: entry.identifier,
|
|
@@ -55,7 +54,8 @@ var ElementTimingInstrumentation = class extends require_instrumentations_MXLIns
|
|
|
55
54
|
[require_instrumentations_element_timing_ElementTimingInstrumentation_constants.KEY_MXL_ELEMENT_TIMING_URL]: entry.url,
|
|
56
55
|
[require_instrumentations_element_timing_ElementTimingInstrumentation_constants.KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH]: entry.naturalWidth,
|
|
57
56
|
[require_instrumentations_element_timing_ElementTimingInstrumentation_constants.KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT]: entry.naturalHeight
|
|
58
|
-
}
|
|
57
|
+
},
|
|
58
|
+
startTime: this.perf.epochMillisFromOriginOffset(0)
|
|
59
59
|
});
|
|
60
60
|
if (entry.loadTime > 0) span.addEvent("load", this.perf.epochMillisFromOriginOffset(entry.loadTime));
|
|
61
61
|
span.end(this.perf.epochMillisFromOriginOffset(entry.startTime));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTimingInstrumentation.cjs","names":["MXLInstrumentationBase","isEntryTypeSupported","createPerformanceObserver","KEY_MXL_TYPE","KEY_MXL_ELEMENT_TIMING_IDENTIFIER","KEY_MXL_ELEMENT_TIMING_ELEMENT","KEY_MXL_ELEMENT_TIMING_RENDER_TIME","KEY_MXL_ELEMENT_TIMING_LOAD_TIME","KEY_MXL_ELEMENT_TIMING_START_TIME","KEY_MXL_ELEMENT_TIMING_URL","KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH","KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT"],"sources":["../../../../src/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.ts"],"sourcesContent":["import { KEY_MXL_TYPE, MXL_TYPES } from '../../../constants';\nimport {\n createPerformanceObserver,\n isEntryTypeSupported,\n} from '../../../utils';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport {\n KEY_MXL_ELEMENT_TIMING_ELEMENT,\n KEY_MXL_ELEMENT_TIMING_IDENTIFIER,\n KEY_MXL_ELEMENT_TIMING_LOAD_TIME,\n KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT,\n KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH,\n KEY_MXL_ELEMENT_TIMING_RENDER_TIME,\n KEY_MXL_ELEMENT_TIMING_START_TIME,\n KEY_MXL_ELEMENT_TIMING_URL,\n} from './constants';\nimport type {\n ElementTimingInstrumentationArgs,\n PerformanceElementTiming,\n} from './types';\n\nexport class ElementTimingInstrumentation extends MXLInstrumentationBase {\n private _observer: PerformanceObserver | null = null;\n private _isEnabled = false;\n\n public constructor({\n diag,\n perf,\n limitManager,\n }: ElementTimingInstrumentationArgs = {}) {\n super({\n instrumentationName: 'ElementTimingInstrumentation',\n instrumentationVersion: '1.0.0',\n
|
|
1
|
+
{"version":3,"file":"ElementTimingInstrumentation.cjs","names":["MXLInstrumentationBase","isEntryTypeSupported","createPerformanceObserver","KEY_MXL_TYPE","KEY_MXL_ELEMENT_TIMING_IDENTIFIER","KEY_MXL_ELEMENT_TIMING_ELEMENT","KEY_MXL_ELEMENT_TIMING_RENDER_TIME","KEY_MXL_ELEMENT_TIMING_LOAD_TIME","KEY_MXL_ELEMENT_TIMING_START_TIME","KEY_MXL_ELEMENT_TIMING_URL","KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH","KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT"],"sources":["../../../../src/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.ts"],"sourcesContent":["import { KEY_MXL_TYPE, MXL_TYPES } from '../../../constants';\nimport {\n createPerformanceObserver,\n isEntryTypeSupported,\n} from '../../../utils';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport {\n KEY_MXL_ELEMENT_TIMING_ELEMENT,\n KEY_MXL_ELEMENT_TIMING_IDENTIFIER,\n KEY_MXL_ELEMENT_TIMING_LOAD_TIME,\n KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT,\n KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH,\n KEY_MXL_ELEMENT_TIMING_RENDER_TIME,\n KEY_MXL_ELEMENT_TIMING_START_TIME,\n KEY_MXL_ELEMENT_TIMING_URL,\n} from './constants';\nimport type {\n ElementTimingInstrumentationArgs,\n PerformanceElementTiming,\n} from './types';\n\nexport class ElementTimingInstrumentation extends MXLInstrumentationBase {\n private _observer: PerformanceObserver | null = null;\n private _isEnabled = false;\n\n public constructor({\n diag,\n perf,\n limitManager,\n }: ElementTimingInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'ElementTimingInstrumentation',\n instrumentationVersion: '1.0.0',\n limitManager,\n perf,\n });\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 if (!isEntryTypeSupported('element')) {\n this._diag.debug('element not supported, skipping');\n return;\n }\n\n this._isEnabled = true;\n\n if (this._observer) {\n this._observer.disconnect();\n }\n\n this._observer = createPerformanceObserver<PerformanceElementTiming>(\n 'element',\n (entry) => this._processEntry(entry),\n { diag: this._diag },\n );\n\n if (!this._observer) {\n this._isEnabled = false;\n this._diag.error('failed to enable');\n return;\n }\n }\n\n public disable(): void {\n this._isEnabled = false;\n\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n }\n\n private _processEntry(entry: PerformanceElementTiming): void {\n if (!this._isEnabled) {\n return;\n }\n\n if (this.limitManager?.limitElementTimingEntry()) {\n return;\n }\n\n const span = this.tracer.startSpan(entry.identifier, {\n // Span start anchors to navigation start so the span duration equals \"time from navigation\n // Until the element was rendered\" — useful for analyzing page-load render timing.\n attributes: {\n [KEY_MXL_TYPE]: MXL_TYPES.ElementTiming,\n [KEY_MXL_ELEMENT_TIMING_IDENTIFIER]: entry.identifier,\n [KEY_MXL_ELEMENT_TIMING_ELEMENT]: entry.element?.tagName?.toLowerCase(),\n [KEY_MXL_ELEMENT_TIMING_RENDER_TIME]: entry.renderTime,\n [KEY_MXL_ELEMENT_TIMING_LOAD_TIME]: entry.loadTime,\n [KEY_MXL_ELEMENT_TIMING_START_TIME]: entry.startTime,\n [KEY_MXL_ELEMENT_TIMING_URL]: entry.url,\n [KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH]: entry.naturalWidth,\n [KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT]: entry.naturalHeight,\n },\n startTime: this.perf.epochMillisFromOriginOffset(0),\n });\n if (entry.loadTime > 0) {\n span.addEvent(\n 'load',\n this.perf.epochMillisFromOriginOffset(entry.loadTime),\n );\n }\n // Entry.startTime = renderTime if non-zero, else loadTime\n span.end(this.perf.epochMillisFromOriginOffset(entry.startTime));\n }\n}\n"],"mappings":";;;;;;AAqBA,IAAa,+BAAb,cAAkDA,uEAAAA,uBAAuB;CACvE,YAAgD;CAChD,aAAqB;CAErB,YAAmB,EACjB,MACA,MACA,iBACoC,EAAE,EAAE;AACxC,QAAM;GACJ,QAAQ,EAAE;GACV;GACA,qBAAqB;GACrB,wBAAwB;GACxB;GACA;GACD,CAAC;AAEF,MAAI,KAAK,QAAQ,QACf,MAAK,QAAQ;;CAIjB,SAAsB;AACpB,MAAI,KAAK,WACP;AAGF,MAAI,CAACC,sDAAAA,qBAAqB,UAAU,EAAE;AACpC,QAAK,MAAM,MAAM,kCAAkC;AACnD;;AAGF,OAAK,aAAa;AAElB,MAAI,KAAK,UACP,MAAK,UAAU,YAAY;AAG7B,OAAK,YAAYC,sDAAAA,0BACf,YACC,UAAU,KAAK,cAAc,MAAM,EACpC,EAAE,MAAM,KAAK,OAAO,CACrB;AAED,MAAI,CAAC,KAAK,WAAW;AACnB,QAAK,aAAa;AAClB,QAAK,MAAM,MAAM,mBAAmB;AACpC;;;CAIJ,UAAuB;AACrB,OAAK,aAAa;AAElB,MAAI,KAAK,WAAW;AAClB,QAAK,UAAU,YAAY;AAC3B,QAAK,YAAY;;;CAIrB,cAAsB,OAAuC;AAC3D,MAAI,CAAC,KAAK,WACR;AAGF,MAAI,KAAK,cAAc,yBAAyB,CAC9C;EAGF,MAAM,OAAO,KAAK,OAAO,UAAU,MAAM,YAAY;GAGnD,YAAY;KACTC,6BAAAA,eAAAA;KACAC,+EAAAA,oCAAoC,MAAM;KAC1CC,+EAAAA,iCAAiC,MAAM,SAAS,SAAS,aAAa;KACtEC,+EAAAA,qCAAqC,MAAM;KAC3CC,+EAAAA,mCAAmC,MAAM;KACzCC,+EAAAA,oCAAoC,MAAM;KAC1CC,+EAAAA,6BAA6B,MAAM;KACnCC,+EAAAA,uCAAuC,MAAM;KAC7CC,+EAAAA,wCAAwC,MAAM;IAChD;GACD,WAAW,KAAK,KAAK,4BAA4B,EAAE;GACpD,CAAC;AACF,MAAI,MAAM,WAAW,EACnB,MAAK,SACH,QACA,KAAK,KAAK,4BAA4B,MAAM,SAAS,CACtD;AAGH,OAAK,IAAI,KAAK,KAAK,4BAA4B,MAAM,UAAU,CAAC"}
|
|
@@ -8,12 +8,12 @@ var ElementTimingInstrumentation = class extends MXLInstrumentationBase {
|
|
|
8
8
|
_isEnabled = false;
|
|
9
9
|
constructor({ diag, perf, limitManager } = {}) {
|
|
10
10
|
super({
|
|
11
|
+
config: {},
|
|
12
|
+
diag,
|
|
11
13
|
instrumentationName: "ElementTimingInstrumentation",
|
|
12
14
|
instrumentationVersion: "1.0.0",
|
|
13
|
-
diag,
|
|
14
|
-
perf,
|
|
15
15
|
limitManager,
|
|
16
|
-
|
|
16
|
+
perf
|
|
17
17
|
});
|
|
18
18
|
if (this._config.enabled) this.enable();
|
|
19
19
|
}
|
|
@@ -43,7 +43,6 @@ var ElementTimingInstrumentation = class extends MXLInstrumentationBase {
|
|
|
43
43
|
if (!this._isEnabled) return;
|
|
44
44
|
if (this.limitManager?.limitElementTimingEntry()) return;
|
|
45
45
|
const span = this.tracer.startSpan(entry.identifier, {
|
|
46
|
-
startTime: this.perf.epochMillisFromOriginOffset(0),
|
|
47
46
|
attributes: {
|
|
48
47
|
[KEY_MXL_TYPE]: "ux.element_timing",
|
|
49
48
|
[KEY_MXL_ELEMENT_TIMING_IDENTIFIER]: entry.identifier,
|
|
@@ -54,7 +53,8 @@ var ElementTimingInstrumentation = class extends MXLInstrumentationBase {
|
|
|
54
53
|
[KEY_MXL_ELEMENT_TIMING_URL]: entry.url,
|
|
55
54
|
[KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH]: entry.naturalWidth,
|
|
56
55
|
[KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT]: entry.naturalHeight
|
|
57
|
-
}
|
|
56
|
+
},
|
|
57
|
+
startTime: this.perf.epochMillisFromOriginOffset(0)
|
|
58
58
|
});
|
|
59
59
|
if (entry.loadTime > 0) span.addEvent("load", this.perf.epochMillisFromOriginOffset(entry.loadTime));
|
|
60
60
|
span.end(this.perf.epochMillisFromOriginOffset(entry.startTime));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTimingInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.ts"],"sourcesContent":["import { KEY_MXL_TYPE, MXL_TYPES } from '../../../constants';\nimport {\n createPerformanceObserver,\n isEntryTypeSupported,\n} from '../../../utils';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport {\n KEY_MXL_ELEMENT_TIMING_ELEMENT,\n KEY_MXL_ELEMENT_TIMING_IDENTIFIER,\n KEY_MXL_ELEMENT_TIMING_LOAD_TIME,\n KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT,\n KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH,\n KEY_MXL_ELEMENT_TIMING_RENDER_TIME,\n KEY_MXL_ELEMENT_TIMING_START_TIME,\n KEY_MXL_ELEMENT_TIMING_URL,\n} from './constants';\nimport type {\n ElementTimingInstrumentationArgs,\n PerformanceElementTiming,\n} from './types';\n\nexport class ElementTimingInstrumentation extends MXLInstrumentationBase {\n private _observer: PerformanceObserver | null = null;\n private _isEnabled = false;\n\n public constructor({\n diag,\n perf,\n limitManager,\n }: ElementTimingInstrumentationArgs = {}) {\n super({\n instrumentationName: 'ElementTimingInstrumentation',\n instrumentationVersion: '1.0.0',\n
|
|
1
|
+
{"version":3,"file":"ElementTimingInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.ts"],"sourcesContent":["import { KEY_MXL_TYPE, MXL_TYPES } from '../../../constants';\nimport {\n createPerformanceObserver,\n isEntryTypeSupported,\n} from '../../../utils';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport {\n KEY_MXL_ELEMENT_TIMING_ELEMENT,\n KEY_MXL_ELEMENT_TIMING_IDENTIFIER,\n KEY_MXL_ELEMENT_TIMING_LOAD_TIME,\n KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT,\n KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH,\n KEY_MXL_ELEMENT_TIMING_RENDER_TIME,\n KEY_MXL_ELEMENT_TIMING_START_TIME,\n KEY_MXL_ELEMENT_TIMING_URL,\n} from './constants';\nimport type {\n ElementTimingInstrumentationArgs,\n PerformanceElementTiming,\n} from './types';\n\nexport class ElementTimingInstrumentation extends MXLInstrumentationBase {\n private _observer: PerformanceObserver | null = null;\n private _isEnabled = false;\n\n public constructor({\n diag,\n perf,\n limitManager,\n }: ElementTimingInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'ElementTimingInstrumentation',\n instrumentationVersion: '1.0.0',\n limitManager,\n perf,\n });\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 if (!isEntryTypeSupported('element')) {\n this._diag.debug('element not supported, skipping');\n return;\n }\n\n this._isEnabled = true;\n\n if (this._observer) {\n this._observer.disconnect();\n }\n\n this._observer = createPerformanceObserver<PerformanceElementTiming>(\n 'element',\n (entry) => this._processEntry(entry),\n { diag: this._diag },\n );\n\n if (!this._observer) {\n this._isEnabled = false;\n this._diag.error('failed to enable');\n return;\n }\n }\n\n public disable(): void {\n this._isEnabled = false;\n\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n }\n\n private _processEntry(entry: PerformanceElementTiming): void {\n if (!this._isEnabled) {\n return;\n }\n\n if (this.limitManager?.limitElementTimingEntry()) {\n return;\n }\n\n const span = this.tracer.startSpan(entry.identifier, {\n // Span start anchors to navigation start so the span duration equals \"time from navigation\n // Until the element was rendered\" — useful for analyzing page-load render timing.\n attributes: {\n [KEY_MXL_TYPE]: MXL_TYPES.ElementTiming,\n [KEY_MXL_ELEMENT_TIMING_IDENTIFIER]: entry.identifier,\n [KEY_MXL_ELEMENT_TIMING_ELEMENT]: entry.element?.tagName?.toLowerCase(),\n [KEY_MXL_ELEMENT_TIMING_RENDER_TIME]: entry.renderTime,\n [KEY_MXL_ELEMENT_TIMING_LOAD_TIME]: entry.loadTime,\n [KEY_MXL_ELEMENT_TIMING_START_TIME]: entry.startTime,\n [KEY_MXL_ELEMENT_TIMING_URL]: entry.url,\n [KEY_MXL_ELEMENT_TIMING_NATURAL_WIDTH]: entry.naturalWidth,\n [KEY_MXL_ELEMENT_TIMING_NATURAL_HEIGHT]: entry.naturalHeight,\n },\n startTime: this.perf.epochMillisFromOriginOffset(0),\n });\n if (entry.loadTime > 0) {\n span.addEvent(\n 'load',\n this.perf.epochMillisFromOriginOffset(entry.loadTime),\n );\n }\n // Entry.startTime = renderTime if non-zero, else loadTime\n span.end(this.perf.epochMillisFromOriginOffset(entry.startTime));\n }\n}\n"],"mappings":";;;;;AAqBA,IAAa,+BAAb,cAAkD,uBAAuB;CACvE,YAAgD;CAChD,aAAqB;CAErB,YAAmB,EACjB,MACA,MACA,iBACoC,EAAE,EAAE;AACxC,QAAM;GACJ,QAAQ,EAAE;GACV;GACA,qBAAqB;GACrB,wBAAwB;GACxB;GACA;GACD,CAAC;AAEF,MAAI,KAAK,QAAQ,QACf,MAAK,QAAQ;;CAIjB,SAAsB;AACpB,MAAI,KAAK,WACP;AAGF,MAAI,CAAC,qBAAqB,UAAU,EAAE;AACpC,QAAK,MAAM,MAAM,kCAAkC;AACnD;;AAGF,OAAK,aAAa;AAElB,MAAI,KAAK,UACP,MAAK,UAAU,YAAY;AAG7B,OAAK,YAAY,0BACf,YACC,UAAU,KAAK,cAAc,MAAM,EACpC,EAAE,MAAM,KAAK,OAAO,CACrB;AAED,MAAI,CAAC,KAAK,WAAW;AACnB,QAAK,aAAa;AAClB,QAAK,MAAM,MAAM,mBAAmB;AACpC;;;CAIJ,UAAuB;AACrB,OAAK,aAAa;AAElB,MAAI,KAAK,WAAW;AAClB,QAAK,UAAU,YAAY;AAC3B,QAAK,YAAY;;;CAIrB,cAAsB,OAAuC;AAC3D,MAAI,CAAC,KAAK,WACR;AAGF,MAAI,KAAK,cAAc,yBAAyB,CAC9C;EAGF,MAAM,OAAO,KAAK,OAAO,UAAU,MAAM,YAAY;GAGnD,YAAY;KACT,eAAA;KACA,oCAAoC,MAAM;KAC1C,iCAAiC,MAAM,SAAS,SAAS,aAAa;KACtE,qCAAqC,MAAM;KAC3C,mCAAmC,MAAM;KACzC,oCAAoC,MAAM;KAC1C,6BAA6B,MAAM;KACnC,uCAAuC,MAAM;KAC7C,wCAAwC,MAAM;IAChD;GACD,WAAW,KAAK,KAAK,4BAA4B,EAAE;GACpD,CAAC;AACF,MAAI,MAAM,WAAW,EACnB,MAAK,SACH,QACA,KAAK,KAAK,4BAA4B,MAAM,SAAS,CACtD;AAGH,OAAK,IAAI,KAAK,KAAK,4BAA4B,MAAM,UAAU,CAAC"}
|
package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.cjs
CHANGED
|
@@ -7,11 +7,11 @@ var EmptyRootInstrumentation = class extends require_instrumentations_MXLInstrum
|
|
|
7
7
|
_rootNode;
|
|
8
8
|
constructor({ diag, perf, rootNode, emptyCheckDelayMs = 500 }) {
|
|
9
9
|
super({
|
|
10
|
+
config: {},
|
|
11
|
+
diag,
|
|
10
12
|
instrumentationName: "EmptyRootInstrumentation",
|
|
11
13
|
instrumentationVersion: "1.0.0",
|
|
12
|
-
|
|
13
|
-
perf,
|
|
14
|
-
config: {}
|
|
14
|
+
perf
|
|
15
15
|
});
|
|
16
16
|
this._rootNode = rootNode;
|
|
17
17
|
this._emptyCheckDelayMs = emptyCheckDelayMs;
|
|
@@ -44,7 +44,7 @@ var EmptyRootInstrumentation = class extends require_instrumentations_MXLInstrum
|
|
|
44
44
|
_checkForEmptyRootNode() {
|
|
45
45
|
if (this._rootNode?.childNodes.length === 0) {
|
|
46
46
|
this._diag.debug("root node was found to be empty");
|
|
47
|
-
const currentSessionSpan = this.
|
|
47
|
+
const currentSessionSpan = this.userSessionManager.getSessionPartSpan();
|
|
48
48
|
if (currentSessionSpan) currentSessionSpan.addEvent("empty-root-node", { "mxl.type": "ux.empty_root_node" });
|
|
49
49
|
else this._diag.debug("no active session found to emit event on");
|
|
50
50
|
}
|
package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyRootInstrumentation.cjs","names":["MXLInstrumentationBase"],"sources":["../../../../src/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.ts"],"sourcesContent":["import { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport type { EmptyRootInstrumentationArgs } from './types';\n\n/*\n EmptyRootInstrumentation observes changes to what is considered the root node of the application and emits a span\n event on the session span if it ever finds it empty.\n */\nexport class EmptyRootInstrumentation extends MXLInstrumentationBase {\n private readonly _observer: MutationObserver;\n private readonly _emptyCheckDelayMs: number;\n private readonly _rootNode: Node | null;\n\n public constructor({\n diag,\n perf,\n rootNode,\n emptyCheckDelayMs = 500,\n }: EmptyRootInstrumentationArgs) {\n super({\n instrumentationName: 'EmptyRootInstrumentation',\n instrumentationVersion: '1.0.0',\n
|
|
1
|
+
{"version":3,"file":"EmptyRootInstrumentation.cjs","names":["MXLInstrumentationBase"],"sources":["../../../../src/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.ts"],"sourcesContent":["import { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport type { EmptyRootInstrumentationArgs } from './types';\n\n/*\n EmptyRootInstrumentation observes changes to what is considered the root node of the application and emits a span\n event on the session span if it ever finds it empty.\n */\nexport class EmptyRootInstrumentation extends MXLInstrumentationBase {\n private readonly _observer: MutationObserver;\n private readonly _emptyCheckDelayMs: number;\n private readonly _rootNode: Node | null;\n\n public constructor({\n diag,\n perf,\n rootNode,\n emptyCheckDelayMs = 500,\n }: EmptyRootInstrumentationArgs) {\n super({\n config: {},\n diag,\n instrumentationName: 'EmptyRootInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n\n this._rootNode = rootNode;\n this._emptyCheckDelayMs = emptyCheckDelayMs;\n\n this._observer = new MutationObserver(\n (mutationList: MutationRecord[], _observer: MutationObserver) => {\n this._observerCallback(mutationList);\n },\n );\n\n if (this._config.enabled && this._rootNode) {\n this.enable();\n } else if (!this._rootNode) {\n this._diag.warn(\n \"supplied root node was null, this instrumentation won't be enabled\",\n );\n }\n }\n\n public disable(): void {\n this._observer.disconnect();\n }\n\n public enable(): void {\n if (this._rootNode) {\n this._observer.observe(this._rootNode, { childList: true });\n }\n }\n\n protected _observerCallback(mutationList: MutationRecord[]): void {\n let removedNodesFromRoot = false;\n let addedNodesToRoot = false;\n\n for (const mutation of mutationList) {\n if (mutation.target === this._rootNode) {\n if (mutation.removedNodes.length > 0) {\n removedNodesFromRoot = true;\n }\n\n if (mutation.addedNodes.length > 0) {\n addedNodesToRoot = true;\n }\n }\n }\n\n if (removedNodesFromRoot && !addedNodesToRoot) {\n this._diag.debug(\n 'root node had child nodes removed without new ones being added, ' +\n `checking if it's empty in ${this._emptyCheckDelayMs}ms`,\n );\n\n window.setTimeout(() => {\n this._checkForEmptyRootNode();\n }, this._emptyCheckDelayMs);\n }\n }\n\n protected _checkForEmptyRootNode(): void {\n if (this._rootNode?.childNodes.length === 0) {\n this._diag.debug('root node was found to be empty');\n\n const currentSessionSpan = this.userSessionManager.getSessionPartSpan();\n if (currentSessionSpan) {\n currentSessionSpan.addEvent('empty-root-node', {\n 'mxl.type': 'ux.empty_root_node',\n });\n } else {\n this._diag.debug('no active session found to emit event on');\n }\n }\n }\n}\n"],"mappings":";;;AAOA,IAAa,2BAAb,cAA8CA,uEAAAA,uBAAuB;CACnE;CACA;CACA;CAEA,YAAmB,EACjB,MACA,MACA,UACA,oBAAoB,OACW;AAC/B,QAAM;GACJ,QAAQ,EAAE;GACV;GACA,qBAAqB;GACrB,wBAAwB;GACxB;GACD,CAAC;AAEF,OAAK,YAAY;AACjB,OAAK,qBAAqB;AAE1B,OAAK,YAAY,IAAI,kBAClB,cAAgC,cAAgC;AAC/D,QAAK,kBAAkB,aAAa;IAEvC;AAED,MAAI,KAAK,QAAQ,WAAW,KAAK,UAC/B,MAAK,QAAQ;WACJ,CAAC,KAAK,UACf,MAAK,MAAM,KACT,qEACD;;CAIL,UAAuB;AACrB,OAAK,UAAU,YAAY;;CAG7B,SAAsB;AACpB,MAAI,KAAK,UACP,MAAK,UAAU,QAAQ,KAAK,WAAW,EAAE,WAAW,MAAM,CAAC;;CAI/D,kBAA4B,cAAsC;EAChE,IAAI,uBAAuB;EAC3B,IAAI,mBAAmB;AAEvB,OAAK,MAAM,YAAY,aACrB,KAAI,SAAS,WAAW,KAAK,WAAW;AACtC,OAAI,SAAS,aAAa,SAAS,EACjC,wBAAuB;AAGzB,OAAI,SAAS,WAAW,SAAS,EAC/B,oBAAmB;;AAKzB,MAAI,wBAAwB,CAAC,kBAAkB;AAC7C,QAAK,MAAM,MACT,6FAC+B,KAAK,mBAAmB,IACxD;AAED,UAAO,iBAAiB;AACtB,SAAK,wBAAwB;MAC5B,KAAK,mBAAmB;;;CAI/B,yBAAyC;AACvC,MAAI,KAAK,WAAW,WAAW,WAAW,GAAG;AAC3C,QAAK,MAAM,MAAM,kCAAkC;GAEnD,MAAM,qBAAqB,KAAK,mBAAmB,oBAAoB;AACvE,OAAI,mBACF,oBAAmB,SAAS,mBAAmB,EAC7C,YAAY,sBACb,CAAC;OAEF,MAAK,MAAM,MAAM,2CAA2C"}
|
package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.js
CHANGED
|
@@ -6,11 +6,11 @@ var EmptyRootInstrumentation = class extends MXLInstrumentationBase {
|
|
|
6
6
|
_rootNode;
|
|
7
7
|
constructor({ diag, perf, rootNode, emptyCheckDelayMs = 500 }) {
|
|
8
8
|
super({
|
|
9
|
+
config: {},
|
|
10
|
+
diag,
|
|
9
11
|
instrumentationName: "EmptyRootInstrumentation",
|
|
10
12
|
instrumentationVersion: "1.0.0",
|
|
11
|
-
|
|
12
|
-
perf,
|
|
13
|
-
config: {}
|
|
13
|
+
perf
|
|
14
14
|
});
|
|
15
15
|
this._rootNode = rootNode;
|
|
16
16
|
this._emptyCheckDelayMs = emptyCheckDelayMs;
|
|
@@ -43,7 +43,7 @@ var EmptyRootInstrumentation = class extends MXLInstrumentationBase {
|
|
|
43
43
|
_checkForEmptyRootNode() {
|
|
44
44
|
if (this._rootNode?.childNodes.length === 0) {
|
|
45
45
|
this._diag.debug("root node was found to be empty");
|
|
46
|
-
const currentSessionSpan = this.
|
|
46
|
+
const currentSessionSpan = this.userSessionManager.getSessionPartSpan();
|
|
47
47
|
if (currentSessionSpan) currentSessionSpan.addEvent("empty-root-node", { "mxl.type": "ux.empty_root_node" });
|
|
48
48
|
else this._diag.debug("no active session found to emit event on");
|
|
49
49
|
}
|
package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyRootInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.ts"],"sourcesContent":["import { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport type { EmptyRootInstrumentationArgs } from './types';\n\n/*\n EmptyRootInstrumentation observes changes to what is considered the root node of the application and emits a span\n event on the session span if it ever finds it empty.\n */\nexport class EmptyRootInstrumentation extends MXLInstrumentationBase {\n private readonly _observer: MutationObserver;\n private readonly _emptyCheckDelayMs: number;\n private readonly _rootNode: Node | null;\n\n public constructor({\n diag,\n perf,\n rootNode,\n emptyCheckDelayMs = 500,\n }: EmptyRootInstrumentationArgs) {\n super({\n instrumentationName: 'EmptyRootInstrumentation',\n instrumentationVersion: '1.0.0',\n
|
|
1
|
+
{"version":3,"file":"EmptyRootInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.ts"],"sourcesContent":["import { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport type { EmptyRootInstrumentationArgs } from './types';\n\n/*\n EmptyRootInstrumentation observes changes to what is considered the root node of the application and emits a span\n event on the session span if it ever finds it empty.\n */\nexport class EmptyRootInstrumentation extends MXLInstrumentationBase {\n private readonly _observer: MutationObserver;\n private readonly _emptyCheckDelayMs: number;\n private readonly _rootNode: Node | null;\n\n public constructor({\n diag,\n perf,\n rootNode,\n emptyCheckDelayMs = 500,\n }: EmptyRootInstrumentationArgs) {\n super({\n config: {},\n diag,\n instrumentationName: 'EmptyRootInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n\n this._rootNode = rootNode;\n this._emptyCheckDelayMs = emptyCheckDelayMs;\n\n this._observer = new MutationObserver(\n (mutationList: MutationRecord[], _observer: MutationObserver) => {\n this._observerCallback(mutationList);\n },\n );\n\n if (this._config.enabled && this._rootNode) {\n this.enable();\n } else if (!this._rootNode) {\n this._diag.warn(\n \"supplied root node was null, this instrumentation won't be enabled\",\n );\n }\n }\n\n public disable(): void {\n this._observer.disconnect();\n }\n\n public enable(): void {\n if (this._rootNode) {\n this._observer.observe(this._rootNode, { childList: true });\n }\n }\n\n protected _observerCallback(mutationList: MutationRecord[]): void {\n let removedNodesFromRoot = false;\n let addedNodesToRoot = false;\n\n for (const mutation of mutationList) {\n if (mutation.target === this._rootNode) {\n if (mutation.removedNodes.length > 0) {\n removedNodesFromRoot = true;\n }\n\n if (mutation.addedNodes.length > 0) {\n addedNodesToRoot = true;\n }\n }\n }\n\n if (removedNodesFromRoot && !addedNodesToRoot) {\n this._diag.debug(\n 'root node had child nodes removed without new ones being added, ' +\n `checking if it's empty in ${this._emptyCheckDelayMs}ms`,\n );\n\n window.setTimeout(() => {\n this._checkForEmptyRootNode();\n }, this._emptyCheckDelayMs);\n }\n }\n\n protected _checkForEmptyRootNode(): void {\n if (this._rootNode?.childNodes.length === 0) {\n this._diag.debug('root node was found to be empty');\n\n const currentSessionSpan = this.userSessionManager.getSessionPartSpan();\n if (currentSessionSpan) {\n currentSessionSpan.addEvent('empty-root-node', {\n 'mxl.type': 'ux.empty_root_node',\n });\n } else {\n this._diag.debug('no active session found to emit event on');\n }\n }\n }\n}\n"],"mappings":";;AAOA,IAAa,2BAAb,cAA8C,uBAAuB;CACnE;CACA;CACA;CAEA,YAAmB,EACjB,MACA,MACA,UACA,oBAAoB,OACW;AAC/B,QAAM;GACJ,QAAQ,EAAE;GACV;GACA,qBAAqB;GACrB,wBAAwB;GACxB;GACD,CAAC;AAEF,OAAK,YAAY;AACjB,OAAK,qBAAqB;AAE1B,OAAK,YAAY,IAAI,kBAClB,cAAgC,cAAgC;AAC/D,QAAK,kBAAkB,aAAa;IAEvC;AAED,MAAI,KAAK,QAAQ,WAAW,KAAK,UAC/B,MAAK,QAAQ;WACJ,CAAC,KAAK,UACf,MAAK,MAAM,KACT,qEACD;;CAIL,UAAuB;AACrB,OAAK,UAAU,YAAY;;CAG7B,SAAsB;AACpB,MAAI,KAAK,UACP,MAAK,UAAU,QAAQ,KAAK,WAAW,EAAE,WAAW,MAAM,CAAC;;CAI/D,kBAA4B,cAAsC;EAChE,IAAI,uBAAuB;EAC3B,IAAI,mBAAmB;AAEvB,OAAK,MAAM,YAAY,aACrB,KAAI,SAAS,WAAW,KAAK,WAAW;AACtC,OAAI,SAAS,aAAa,SAAS,EACjC,wBAAuB;AAGzB,OAAI,SAAS,WAAW,SAAS,EAC/B,oBAAmB;;AAKzB,MAAI,wBAAwB,CAAC,kBAAkB;AAC7C,QAAK,MAAM,MACT,6FAC+B,KAAK,mBAAmB,IACxD;AAED,UAAO,iBAAiB;AACtB,SAAK,wBAAwB;MAC5B,KAAK,mBAAmB;;;CAI/B,yBAAyC;AACvC,MAAI,KAAK,WAAW,WAAW,WAAW,GAAG;AAC3C,QAAK,MAAM,MAAM,kCAAkC;GAEnD,MAAM,qBAAqB,KAAK,mBAAmB,oBAAoB;AACvE,OAAI,mBACF,oBAAmB,SAAS,mBAAmB,EAC7C,YAAY,sBACb,CAAC;OAEF,MAAK,MAAM,MAAM,2CAA2C"}
|
|
@@ -6,24 +6,24 @@ var GlobalExceptionInstrumentation = class extends require_instrumentations_MXLI
|
|
|
6
6
|
_onUnhandledRejectionHandler;
|
|
7
7
|
constructor({ diag, perf } = {}) {
|
|
8
8
|
super({
|
|
9
|
+
config: {},
|
|
10
|
+
diag,
|
|
9
11
|
instrumentationName: "GlobalExceptionInstrumentation",
|
|
10
12
|
instrumentationVersion: "1.0.0",
|
|
11
|
-
|
|
12
|
-
perf,
|
|
13
|
-
config: {}
|
|
13
|
+
perf
|
|
14
14
|
});
|
|
15
15
|
this._onErrorHandler = (event) => {
|
|
16
16
|
this.logManager.logException(event.error || event.message, {
|
|
17
17
|
handled: false,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
handler: "global_exception",
|
|
19
|
+
timestamp: this.perf.epochMillisFromOriginOffset(event.timeStamp)
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
this._onUnhandledRejectionHandler = (event) => {
|
|
23
23
|
this.logManager.logException(event.reason, {
|
|
24
24
|
handled: false,
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
handler: "promise_rejection",
|
|
26
|
+
timestamp: this.perf.epochMillisFromOriginOffset(event.timeStamp)
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
29
|
if (this._config.enabled) this.enable();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalExceptionInstrumentation.cjs","names":["MXLInstrumentationBase"],"sources":["../../../../src/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.ts"],"sourcesContent":["import { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport type { GlobalExceptionInstrumentationArgs } from './types';\n\nexport class GlobalExceptionInstrumentation extends MXLInstrumentationBase {\n private readonly _onErrorHandler: (event: ErrorEvent) => void;\n private readonly _onUnhandledRejectionHandler: (\n event: PromiseRejectionEvent,\n ) => void;\n\n public constructor({ diag, perf }: GlobalExceptionInstrumentationArgs = {}) {\n super({\n instrumentationName: 'GlobalExceptionInstrumentation',\n instrumentationVersion: '1.0.0',\n
|
|
1
|
+
{"version":3,"file":"GlobalExceptionInstrumentation.cjs","names":["MXLInstrumentationBase"],"sources":["../../../../src/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.ts"],"sourcesContent":["import { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport type { GlobalExceptionInstrumentationArgs } from './types';\n\nexport class GlobalExceptionInstrumentation extends MXLInstrumentationBase {\n private readonly _onErrorHandler: (event: ErrorEvent) => void;\n private readonly _onUnhandledRejectionHandler: (\n event: PromiseRejectionEvent,\n ) => void;\n\n public constructor({ diag, perf }: GlobalExceptionInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'GlobalExceptionInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n this._onErrorHandler = (event: ErrorEvent) => {\n this.logManager.logException(event.error || event.message, {\n handled: false,\n handler: 'global_exception',\n timestamp: this.perf.epochMillisFromOriginOffset(event.timeStamp),\n });\n };\n this._onUnhandledRejectionHandler = (event: PromiseRejectionEvent) => {\n this.logManager.logException(event.reason, {\n handled: false,\n handler: 'promise_rejection',\n timestamp: this.perf.epochMillisFromOriginOffset(event.timeStamp),\n });\n };\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n public disable(): void {\n window.removeEventListener('error', this._onErrorHandler);\n window.removeEventListener(\n 'unhandledrejection',\n this._onUnhandledRejectionHandler,\n );\n }\n\n public enable(): void {\n window.addEventListener('error', this._onErrorHandler);\n window.addEventListener(\n 'unhandledrejection',\n this._onUnhandledRejectionHandler,\n );\n }\n}\n"],"mappings":";;;AAGA,IAAa,iCAAb,cAAoDA,uEAAAA,uBAAuB;CACzE;CACA;CAIA,YAAmB,EAAE,MAAM,SAA6C,EAAE,EAAE;AAC1E,QAAM;GACJ,QAAQ,EAAE;GACV;GACA,qBAAqB;GACrB,wBAAwB;GACxB;GACD,CAAC;AACF,OAAK,mBAAmB,UAAsB;AAC5C,QAAK,WAAW,aAAa,MAAM,SAAS,MAAM,SAAS;IACzD,SAAS;IACT,SAAS;IACT,WAAW,KAAK,KAAK,4BAA4B,MAAM,UAAU;IAClE,CAAC;;AAEJ,OAAK,gCAAgC,UAAiC;AACpE,QAAK,WAAW,aAAa,MAAM,QAAQ;IACzC,SAAS;IACT,SAAS;IACT,WAAW,KAAK,KAAK,4BAA4B,MAAM,UAAU;IAClE,CAAC;;AAGJ,MAAI,KAAK,QAAQ,QACf,MAAK,QAAQ;;CAIjB,UAAuB;AACrB,SAAO,oBAAoB,SAAS,KAAK,gBAAgB;AACzD,SAAO,oBACL,sBACA,KAAK,6BACN;;CAGH,SAAsB;AACpB,SAAO,iBAAiB,SAAS,KAAK,gBAAgB;AACtD,SAAO,iBACL,sBACA,KAAK,6BACN"}
|
|
@@ -5,24 +5,24 @@ var GlobalExceptionInstrumentation = class extends MXLInstrumentationBase {
|
|
|
5
5
|
_onUnhandledRejectionHandler;
|
|
6
6
|
constructor({ diag, perf } = {}) {
|
|
7
7
|
super({
|
|
8
|
+
config: {},
|
|
9
|
+
diag,
|
|
8
10
|
instrumentationName: "GlobalExceptionInstrumentation",
|
|
9
11
|
instrumentationVersion: "1.0.0",
|
|
10
|
-
|
|
11
|
-
perf,
|
|
12
|
-
config: {}
|
|
12
|
+
perf
|
|
13
13
|
});
|
|
14
14
|
this._onErrorHandler = (event) => {
|
|
15
15
|
this.logManager.logException(event.error || event.message, {
|
|
16
16
|
handled: false,
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
handler: "global_exception",
|
|
18
|
+
timestamp: this.perf.epochMillisFromOriginOffset(event.timeStamp)
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
this._onUnhandledRejectionHandler = (event) => {
|
|
22
22
|
this.logManager.logException(event.reason, {
|
|
23
23
|
handled: false,
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
handler: "promise_rejection",
|
|
25
|
+
timestamp: this.perf.epochMillisFromOriginOffset(event.timeStamp)
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
if (this._config.enabled) this.enable();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalExceptionInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.ts"],"sourcesContent":["import { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport type { GlobalExceptionInstrumentationArgs } from './types';\n\nexport class GlobalExceptionInstrumentation extends MXLInstrumentationBase {\n private readonly _onErrorHandler: (event: ErrorEvent) => void;\n private readonly _onUnhandledRejectionHandler: (\n event: PromiseRejectionEvent,\n ) => void;\n\n public constructor({ diag, perf }: GlobalExceptionInstrumentationArgs = {}) {\n super({\n instrumentationName: 'GlobalExceptionInstrumentation',\n instrumentationVersion: '1.0.0',\n
|
|
1
|
+
{"version":3,"file":"GlobalExceptionInstrumentation.js","names":[],"sources":["../../../../src/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.ts"],"sourcesContent":["import { MXLInstrumentationBase } from '../../MXLInstrumentationBase';\nimport type { GlobalExceptionInstrumentationArgs } from './types';\n\nexport class GlobalExceptionInstrumentation extends MXLInstrumentationBase {\n private readonly _onErrorHandler: (event: ErrorEvent) => void;\n private readonly _onUnhandledRejectionHandler: (\n event: PromiseRejectionEvent,\n ) => void;\n\n public constructor({ diag, perf }: GlobalExceptionInstrumentationArgs = {}) {\n super({\n config: {},\n diag,\n instrumentationName: 'GlobalExceptionInstrumentation',\n instrumentationVersion: '1.0.0',\n perf,\n });\n this._onErrorHandler = (event: ErrorEvent) => {\n this.logManager.logException(event.error || event.message, {\n handled: false,\n handler: 'global_exception',\n timestamp: this.perf.epochMillisFromOriginOffset(event.timeStamp),\n });\n };\n this._onUnhandledRejectionHandler = (event: PromiseRejectionEvent) => {\n this.logManager.logException(event.reason, {\n handled: false,\n handler: 'promise_rejection',\n timestamp: this.perf.epochMillisFromOriginOffset(event.timeStamp),\n });\n };\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n public disable(): void {\n window.removeEventListener('error', this._onErrorHandler);\n window.removeEventListener(\n 'unhandledrejection',\n this._onUnhandledRejectionHandler,\n );\n }\n\n public enable(): void {\n window.addEventListener('error', this._onErrorHandler);\n window.addEventListener(\n 'unhandledrejection',\n this._onUnhandledRejectionHandler,\n );\n }\n}\n"],"mappings":";;AAGA,IAAa,iCAAb,cAAoD,uBAAuB;CACzE;CACA;CAIA,YAAmB,EAAE,MAAM,SAA6C,EAAE,EAAE;AAC1E,QAAM;GACJ,QAAQ,EAAE;GACV;GACA,qBAAqB;GACrB,wBAAwB;GACxB;GACD,CAAC;AACF,OAAK,mBAAmB,UAAsB;AAC5C,QAAK,WAAW,aAAa,MAAM,SAAS,MAAM,SAAS;IACzD,SAAS;IACT,SAAS;IACT,WAAW,KAAK,KAAK,4BAA4B,MAAM,UAAU;IAClE,CAAC;;AAEJ,OAAK,gCAAgC,UAAiC;AACpE,QAAK,WAAW,aAAa,MAAM,QAAQ;IACzC,SAAS;IACT,SAAS;IACT,WAAW,KAAK,KAAK,4BAA4B,MAAM,UAAU;IAClE,CAAC;;AAGJ,MAAI,KAAK,QAAQ,QACf,MAAK,QAAQ;;CAIjB,UAAuB;AACrB,SAAO,oBAAoB,SAAS,KAAK,gBAAgB;AACzD,SAAO,oBACL,sBACA,KAAK,6BACN;;CAGH,SAAsB;AACpB,SAAO,iBAAiB,SAAS,KAAK,gBAAgB;AACtD,SAAO,iBACL,sBACA,KAAK,6BACN"}
|
|
@@ -17,11 +17,11 @@ var MXLErrorBoundary = class extends react.Component {
|
|
|
17
17
|
}
|
|
18
18
|
componentDidCatch(error, errorInfo) {
|
|
19
19
|
this._logManager.logException(error, {
|
|
20
|
-
handled: false,
|
|
21
20
|
attributes: {
|
|
22
21
|
[require_constants_attributes.KEY_REACT_COMPONENT_STACK]: errorInfo.componentStack ?? void 0,
|
|
23
22
|
[require_constants_attributes.KEY_MXL_INSTRUMENTATION]: "react_error_boundary"
|
|
24
|
-
}
|
|
23
|
+
},
|
|
24
|
+
handled: false
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLErrorBoundary.cjs","names":["React","log","KEY_REACT_COMPONENT_STACK","KEY_MXL_INSTRUMENTATION"],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport type { LogManager } from '../../../../api-logs';\nimport { log } from '../../../../api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n KEY_REACT_COMPONENT_STACK,\n MXL_ERROR_INSTRUMENTATIONS,\n} from '../../../../constants';\n\
|
|
1
|
+
{"version":3,"file":"MXLErrorBoundary.cjs","names":["React","log","KEY_REACT_COMPONENT_STACK","KEY_MXL_INSTRUMENTATION"],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport type { LogManager } from '../../../../api-logs';\nimport { log } from '../../../../api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n KEY_REACT_COMPONENT_STACK,\n MXL_ERROR_INSTRUMENTATIONS,\n} from '../../../../constants';\n\ninterface MXLErrorBoundaryProps {\n fallback: () => React.ReactNode;\n}\n\ninterface MXLErrorBoundaryState {\n hasError: boolean;\n}\n\nexport class MXLErrorBoundary<\n P extends PropsWithChildren<MXLErrorBoundaryProps>,\n> extends React.Component<P, MXLErrorBoundaryState> {\n private readonly _logManager: LogManager;\n\n public constructor(props: P) {\n super(props);\n\n this._logManager = log.getLogManager();\n this.state = {\n hasError: false,\n };\n }\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public override componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this._logManager.logException(error, {\n attributes: {\n [KEY_REACT_COMPONENT_STACK]: errorInfo.componentStack ?? undefined,\n [KEY_MXL_INSTRUMENTATION]:\n MXL_ERROR_INSTRUMENTATIONS.ReactErrorBoundary,\n },\n handled: false,\n });\n }\n\n public override render() {\n if (this.state.hasError) {\n return this.props.fallback();\n }\n\n return this.props.children;\n }\n}\n"],"mappings":";;;;;;;AAkBA,IAAa,mBAAb,cAEUA,MAAM,UAAoC;CAClD;CAEA,YAAmB,OAAU;AAC3B,QAAM,MAAM;AAEZ,OAAK,cAAcC,wBAAAA,IAAI,eAAe;AACtC,OAAK,QAAQ,EACX,UAAU,OACX;;CAGH,OAAc,2BAA2B;AACvC,SAAO,EAAE,UAAU,MAAM;;CAG3B,kBAAkC,OAAc,WAA4B;AAC1E,OAAK,YAAY,aAAa,OAAO;GACnC,YAAY;KACTC,6BAAAA,4BAA4B,UAAU,kBAAkB,KAAA;KACxDC,6BAAAA,0BAAAA;IAEF;GACD,SAAS;GACV,CAAC;;CAGJ,SAAyB;AACvB,MAAI,KAAK,MAAM,SACb,QAAO,KAAK,MAAM,UAAU;AAG9B,SAAO,KAAK,MAAM"}
|
|
@@ -2,12 +2,12 @@ import * as React$1 from "react";
|
|
|
2
2
|
import { PropsWithChildren } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.d.ts
|
|
5
|
-
|
|
5
|
+
interface MXLErrorBoundaryProps {
|
|
6
6
|
fallback: () => React$1.ReactNode;
|
|
7
|
-
}
|
|
8
|
-
|
|
7
|
+
}
|
|
8
|
+
interface MXLErrorBoundaryState {
|
|
9
9
|
hasError: boolean;
|
|
10
|
-
}
|
|
10
|
+
}
|
|
11
11
|
declare class MXLErrorBoundary<P extends PropsWithChildren<MXLErrorBoundaryProps>> extends React$1.Component<P, MXLErrorBoundaryState> {
|
|
12
12
|
private readonly _logManager;
|
|
13
13
|
constructor(props: P);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLErrorBoundary.d.cts","names":[],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MXLErrorBoundary.d.cts","names":[],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"mappings":";;;;UAUU,qBAAA;EACR,QAAA,QAAgB,OAAA,CAAM,SAAA;AAAA;AAAA,UAGd,qBAAA;EACR,QAAA;AAAA;AAAA,cAGW,gBAAA,WACD,iBAAA,CAAkB,qBAAA,WACpB,OAAA,CAAM,SAAA,CAAU,CAAA,EAAG,qBAAA;EAAA,iBACV,WAAA;cAEE,KAAA,EAAO,CAAA;EAAA,OASZ,wBAAA,CAAA;;;EAIE,iBAAA,CAAkB,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,OAAA,CAAM,SAAA;EAWjD,MAAA,CAAA,wCAAM,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,wBAAA,CAAA;AAAA"}
|
|
@@ -2,12 +2,12 @@ import * as React$1 from "react";
|
|
|
2
2
|
import { PropsWithChildren } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.d.ts
|
|
5
|
-
|
|
5
|
+
interface MXLErrorBoundaryProps {
|
|
6
6
|
fallback: () => React$1.ReactNode;
|
|
7
|
-
}
|
|
8
|
-
|
|
7
|
+
}
|
|
8
|
+
interface MXLErrorBoundaryState {
|
|
9
9
|
hasError: boolean;
|
|
10
|
-
}
|
|
10
|
+
}
|
|
11
11
|
declare class MXLErrorBoundary<P extends PropsWithChildren<MXLErrorBoundaryProps>> extends React$1.Component<P, MXLErrorBoundaryState> {
|
|
12
12
|
private readonly _logManager;
|
|
13
13
|
constructor(props: P);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLErrorBoundary.d.ts","names":[],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MXLErrorBoundary.d.ts","names":[],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"mappings":";;;;UAUU,qBAAA;EACR,QAAA,QAAgB,OAAA,CAAM,SAAA;AAAA;AAAA,UAGd,qBAAA;EACR,QAAA;AAAA;AAAA,cAGW,gBAAA,WACD,iBAAA,CAAkB,qBAAA,WACpB,OAAA,CAAM,SAAA,CAAU,CAAA,EAAG,qBAAA;EAAA,iBACV,WAAA;cAEE,KAAA,EAAO,CAAA;EAAA,OASZ,wBAAA,CAAA;;;EAIE,iBAAA,CAAkB,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,OAAA,CAAM,SAAA;EAWjD,MAAA,CAAA,wCAAM,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,wBAAA,CAAA;AAAA"}
|
|
@@ -14,11 +14,11 @@ var MXLErrorBoundary = class extends React$1.Component {
|
|
|
14
14
|
}
|
|
15
15
|
componentDidCatch(error, errorInfo) {
|
|
16
16
|
this._logManager.logException(error, {
|
|
17
|
-
handled: false,
|
|
18
17
|
attributes: {
|
|
19
18
|
[KEY_REACT_COMPONENT_STACK]: errorInfo.componentStack ?? void 0,
|
|
20
19
|
[KEY_MXL_INSTRUMENTATION]: "react_error_boundary"
|
|
21
|
-
}
|
|
20
|
+
},
|
|
21
|
+
handled: false
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLErrorBoundary.js","names":["React"],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport type { LogManager } from '../../../../api-logs';\nimport { log } from '../../../../api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n KEY_REACT_COMPONENT_STACK,\n MXL_ERROR_INSTRUMENTATIONS,\n} from '../../../../constants';\n\
|
|
1
|
+
{"version":3,"file":"MXLErrorBoundary.js","names":["React"],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport type { LogManager } from '../../../../api-logs';\nimport { log } from '../../../../api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n KEY_REACT_COMPONENT_STACK,\n MXL_ERROR_INSTRUMENTATIONS,\n} from '../../../../constants';\n\ninterface MXLErrorBoundaryProps {\n fallback: () => React.ReactNode;\n}\n\ninterface MXLErrorBoundaryState {\n hasError: boolean;\n}\n\nexport class MXLErrorBoundary<\n P extends PropsWithChildren<MXLErrorBoundaryProps>,\n> extends React.Component<P, MXLErrorBoundaryState> {\n private readonly _logManager: LogManager;\n\n public constructor(props: P) {\n super(props);\n\n this._logManager = log.getLogManager();\n this.state = {\n hasError: false,\n };\n }\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public override componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this._logManager.logException(error, {\n attributes: {\n [KEY_REACT_COMPONENT_STACK]: errorInfo.componentStack ?? undefined,\n [KEY_MXL_INSTRUMENTATION]:\n MXL_ERROR_INSTRUMENTATIONS.ReactErrorBoundary,\n },\n handled: false,\n });\n }\n\n public override render() {\n if (this.state.hasError) {\n return this.props.fallback();\n }\n\n return this.props.children;\n }\n}\n"],"mappings":";;;;AAkBA,IAAa,mBAAb,cAEUA,QAAM,UAAoC;CAClD;CAEA,YAAmB,OAAU;AAC3B,QAAM,MAAM;AAEZ,OAAK,cAAc,IAAI,eAAe;AACtC,OAAK,QAAQ,EACX,UAAU,OACX;;CAGH,OAAc,2BAA2B;AACvC,SAAO,EAAE,UAAU,MAAM;;CAG3B,kBAAkC,OAAc,WAA4B;AAC1E,OAAK,YAAY,aAAa,OAAO;GACnC,YAAY;KACT,4BAA4B,UAAU,kBAAkB,KAAA;KACxD,0BAAA;IAEF;GACD,SAAS;GACV,CAAC;;CAGJ,SAAyB;AACvB,MAAI,KAAK,MAAM,SACb,QAAO,KAAK,MAAM,UAAU;AAG9B,SAAO,KAAK,MAAM"}
|