@safaricom-mxl/web-sdk 0.0.12 → 0.0.14
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 +1 -1
- package/REACT.md +1 -1
- package/README.md +19 -28
- package/UPGRADING.md +2 -2
- package/dist/_virtual/_rolldown/runtime.cjs +7 -13
- package/dist/api-logs/api/LogAPI/LogAPI.cjs +6 -7
- package/dist/api-logs/api/LogAPI/LogAPI.cjs.map +1 -1
- package/dist/api-logs/api/LogAPI/LogAPI.d.cts +0 -1
- package/dist/api-logs/api/LogAPI/LogAPI.d.cts.map +1 -1
- package/dist/api-logs/api/LogAPI/LogAPI.d.ts +0 -2
- package/dist/api-logs/api/LogAPI/LogAPI.d.ts.map +1 -1
- package/dist/api-logs/api/LogAPI/LogAPI.js +1 -2
- package/dist/api-logs/api/LogAPI/LogAPI.js.map +1 -1
- package/dist/api-logs/api/LogAPI/index.cjs +3 -4
- package/dist/api-logs/api/LogAPI/index.js +1 -2
- package/dist/api-logs/api/LogAPI/types.d.cts +0 -1
- package/dist/api-logs/api/LogAPI/types.d.cts.map +1 -1
- package/dist/api-logs/api/LogAPI/types.d.ts +0 -2
- package/dist/api-logs/api/LogAPI/types.d.ts.map +1 -1
- package/dist/api-logs/api/index.cjs +3 -4
- package/dist/api-logs/api/index.d.ts +0 -1
- package/dist/api-logs/api/index.js +1 -2
- package/dist/api-logs/index.cjs +5 -6
- package/dist/api-logs/index.d.ts +0 -1
- package/dist/api-logs/index.js +1 -2
- package/dist/api-logs/logAPI.cjs +3 -5
- package/dist/api-logs/logAPI.cjs.map +1 -1
- package/dist/api-logs/logAPI.js +1 -2
- package/dist/api-logs/logAPI.js.map +1 -1
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.cjs +2 -3
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.cjs.map +1 -1
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.d.cts +0 -1
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.d.cts.map +1 -1
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.d.ts +0 -2
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.d.ts.map +1 -1
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.js +1 -1
- package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.js.map +1 -1
- package/dist/api-logs/manager/NoOpLogManager/index.cjs +3 -4
- package/dist/api-logs/manager/NoOpLogManager/index.js +1 -2
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.cjs +3 -5
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.cjs.map +1 -1
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.d.cts +0 -1
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.d.cts.map +1 -1
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.d.ts +0 -2
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.d.ts.map +1 -1
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.js +1 -2
- package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.js.map +1 -1
- package/dist/api-logs/manager/ProxyLogManager/index.cjs +3 -4
- package/dist/api-logs/manager/ProxyLogManager/index.js +1 -2
- package/dist/api-logs/manager/index.cjs +4 -5
- package/dist/api-logs/manager/index.js +1 -2
- package/dist/api-page/api/PageAPI/PageAPI.cjs +6 -7
- package/dist/api-page/api/PageAPI/PageAPI.cjs.map +1 -1
- package/dist/api-page/api/PageAPI/PageAPI.js +1 -2
- package/dist/api-page/api/PageAPI/PageAPI.js.map +1 -1
- package/dist/api-page/api/PageAPI/index.cjs +3 -4
- package/dist/api-page/api/PageAPI/index.js +1 -2
- package/dist/api-page/api/index.cjs +3 -4
- package/dist/api-page/api/index.js +1 -2
- package/dist/api-page/index.cjs +5 -6
- package/dist/api-page/index.js +1 -2
- package/dist/api-page/manager/NoOpPageManager/NoOpPageManager.cjs +2 -3
- package/dist/api-page/manager/NoOpPageManager/NoOpPageManager.cjs.map +1 -1
- package/dist/api-page/manager/NoOpPageManager/NoOpPageManager.js +1 -1
- package/dist/api-page/manager/NoOpPageManager/NoOpPageManager.js.map +1 -1
- package/dist/api-page/manager/NoOpPageManager/index.cjs +3 -4
- package/dist/api-page/manager/NoOpPageManager/index.js +1 -2
- package/dist/api-page/manager/ProxyPageManager/ProxyPageManager.cjs +3 -5
- package/dist/api-page/manager/ProxyPageManager/ProxyPageManager.cjs.map +1 -1
- package/dist/api-page/manager/ProxyPageManager/ProxyPageManager.js +1 -2
- package/dist/api-page/manager/ProxyPageManager/ProxyPageManager.js.map +1 -1
- package/dist/api-page/manager/ProxyPageManager/index.cjs +3 -4
- package/dist/api-page/manager/ProxyPageManager/index.js +1 -2
- package/dist/api-page/manager/index.cjs +4 -5
- package/dist/api-page/manager/index.js +1 -2
- package/dist/api-page/pageAPI.cjs +3 -5
- package/dist/api-page/pageAPI.cjs.map +1 -1
- package/dist/api-page/pageAPI.js +1 -2
- package/dist/api-page/pageAPI.js.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.cjs +6 -7
- package/dist/api-sessions/api/SessionAPI/SessionAPI.cjs.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.d.cts +0 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.d.cts.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.d.ts +0 -2
- package/dist/api-sessions/api/SessionAPI/SessionAPI.d.ts.map +1 -1
- package/dist/api-sessions/api/SessionAPI/SessionAPI.js +1 -2
- package/dist/api-sessions/api/SessionAPI/SessionAPI.js.map +1 -1
- package/dist/api-sessions/api/SessionAPI/index.cjs +3 -4
- package/dist/api-sessions/api/SessionAPI/index.js +1 -2
- package/dist/api-sessions/api/SessionAPI/types.d.cts +0 -1
- package/dist/api-sessions/api/SessionAPI/types.d.cts.map +1 -1
- package/dist/api-sessions/api/SessionAPI/types.d.ts +0 -2
- package/dist/api-sessions/api/SessionAPI/types.d.ts.map +1 -1
- package/dist/api-sessions/api/index.cjs +3 -4
- package/dist/api-sessions/api/index.d.ts +0 -1
- package/dist/api-sessions/api/index.js +1 -2
- package/dist/api-sessions/index.cjs +5 -6
- package/dist/api-sessions/index.d.ts +0 -1
- package/dist/api-sessions/index.js +1 -2
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.cjs +2 -3
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.cjs.map +1 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.d.ts +0 -2
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.d.ts.map +1 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.js +1 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.js.map +1 -1
- package/dist/api-sessions/manager/NoOpSpanSessionManager/index.cjs +3 -4
- package/dist/api-sessions/manager/NoOpSpanSessionManager/index.js +1 -2
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.cjs +3 -5
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.cjs.map +1 -1
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.d.ts +0 -2
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.d.ts.map +1 -1
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.js +1 -2
- package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.js.map +1 -1
- package/dist/api-sessions/manager/ProxySpanSessionManager/index.cjs +3 -4
- package/dist/api-sessions/manager/ProxySpanSessionManager/index.js +1 -2
- package/dist/api-sessions/manager/index.cjs +4 -5
- package/dist/api-sessions/manager/index.d.ts +0 -2
- package/dist/api-sessions/manager/index.js +1 -2
- package/dist/api-sessions/manager/types.d.cts +3 -0
- package/dist/api-sessions/manager/types.d.cts.map +1 -1
- package/dist/api-sessions/manager/types.d.ts +3 -1
- package/dist/api-sessions/manager/types.d.ts.map +1 -1
- package/dist/api-sessions/sessionAPI.cjs +3 -5
- package/dist/api-sessions/sessionAPI.cjs.map +1 -1
- package/dist/api-sessions/sessionAPI.js +1 -2
- package/dist/api-sessions/sessionAPI.js.map +1 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.cjs +6 -7
- package/dist/api-traces/api/TraceAPI/TraceAPI.cjs.map +1 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.d.cts +0 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.d.cts.map +1 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.d.ts +0 -2
- package/dist/api-traces/api/TraceAPI/TraceAPI.d.ts.map +1 -1
- package/dist/api-traces/api/TraceAPI/TraceAPI.js +1 -2
- package/dist/api-traces/api/TraceAPI/TraceAPI.js.map +1 -1
- package/dist/api-traces/api/TraceAPI/index.cjs +3 -4
- package/dist/api-traces/api/TraceAPI/index.js +1 -2
- package/dist/api-traces/api/TraceAPI/types.d.cts.map +1 -1
- package/dist/api-traces/api/TraceAPI/types.d.ts +0 -1
- package/dist/api-traces/api/TraceAPI/types.d.ts.map +1 -1
- package/dist/api-traces/api/index.cjs +3 -4
- package/dist/api-traces/api/index.d.ts +0 -1
- package/dist/api-traces/api/index.js +1 -2
- package/dist/api-traces/index.cjs +5 -6
- package/dist/api-traces/index.d.ts +0 -2
- package/dist/api-traces/index.js +1 -2
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.cjs +4 -5
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.cjs.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.d.ts +0 -2
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.d.ts.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.js +1 -2
- package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.js.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.cjs +3 -4
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.cjs.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.d.ts +0 -1
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.d.ts.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.js +1 -2
- package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.js.map +1 -1
- package/dist/api-traces/manager/NoOpTraceManager/index.cjs +3 -4
- package/dist/api-traces/manager/NoOpTraceManager/index.js +1 -2
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.cjs +3 -5
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.cjs.map +1 -1
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.d.ts +0 -2
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.d.ts.map +1 -1
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.js +1 -2
- package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.js.map +1 -1
- package/dist/api-traces/manager/ProxyTraceManager/index.cjs +3 -4
- package/dist/api-traces/manager/ProxyTraceManager/index.js +1 -2
- package/dist/api-traces/manager/index.cjs +4 -5
- package/dist/api-traces/manager/index.d.ts +0 -2
- package/dist/api-traces/manager/index.js +1 -2
- package/dist/api-traces/manager/types.d.ts +0 -1
- package/dist/api-traces/manager/types.d.ts.map +1 -1
- package/dist/api-traces/traceAPI.cjs +3 -5
- package/dist/api-traces/traceAPI.cjs.map +1 -1
- package/dist/api-traces/traceAPI.js +1 -2
- package/dist/api-traces/traceAPI.js.map +1 -1
- package/dist/api-users/api/UserAPI/UserAPI.cjs +6 -7
- package/dist/api-users/api/UserAPI/UserAPI.cjs.map +1 -1
- package/dist/api-users/api/UserAPI/UserAPI.js +1 -2
- package/dist/api-users/api/UserAPI/UserAPI.js.map +1 -1
- package/dist/api-users/api/UserAPI/index.cjs +3 -4
- package/dist/api-users/api/UserAPI/index.js +1 -2
- package/dist/api-users/api/index.cjs +3 -4
- package/dist/api-users/api/index.js +1 -2
- package/dist/api-users/index.cjs +6 -7
- package/dist/api-users/index.js +1 -2
- package/dist/api-users/manager/NoOpUserManager/NoOpUserManager.cjs +2 -3
- package/dist/api-users/manager/NoOpUserManager/NoOpUserManager.cjs.map +1 -1
- package/dist/api-users/manager/NoOpUserManager/NoOpUserManager.js +1 -1
- package/dist/api-users/manager/NoOpUserManager/NoOpUserManager.js.map +1 -1
- package/dist/api-users/manager/NoOpUserManager/index.cjs +3 -4
- package/dist/api-users/manager/NoOpUserManager/index.js +1 -2
- package/dist/api-users/manager/ProxyUserManager/ProxyUserManager.cjs +3 -5
- package/dist/api-users/manager/ProxyUserManager/ProxyUserManager.cjs.map +1 -1
- package/dist/api-users/manager/ProxyUserManager/ProxyUserManager.js +1 -2
- package/dist/api-users/manager/ProxyUserManager/ProxyUserManager.js.map +1 -1
- package/dist/api-users/manager/ProxyUserManager/index.cjs +3 -4
- package/dist/api-users/manager/ProxyUserManager/index.js +1 -2
- package/dist/api-users/manager/constants/index.cjs +2 -3
- package/dist/api-users/manager/constants/index.cjs.map +1 -1
- package/dist/api-users/manager/constants/index.js +1 -1
- package/dist/api-users/manager/index.cjs +5 -6
- package/dist/api-users/manager/index.js +1 -2
- package/dist/api-users/userAPI.cjs +3 -5
- package/dist/api-users/userAPI.cjs.map +1 -1
- package/dist/api-users/userAPI.js +1 -2
- package/dist/api-users/userAPI.js.map +1 -1
- package/dist/common/attributes.cjs +3 -5
- package/dist/common/attributes.cjs.map +1 -1
- package/dist/common/attributes.js +1 -2
- package/dist/common/attributes.js.map +1 -1
- package/dist/common/index.cjs +3 -4
- package/dist/common/index.js +1 -2
- package/dist/common/types.d.cts +1 -0
- package/dist/common/types.d.cts.map +1 -1
- package/dist/common/types.d.ts +1 -0
- package/dist/common/types.d.ts.map +1 -1
- package/dist/constants/attributes.cjs +11 -3
- package/dist/constants/attributes.cjs.map +1 -1
- package/dist/constants/attributes.d.cts +11 -4
- package/dist/constants/attributes.d.cts.map +1 -1
- package/dist/constants/attributes.d.ts +11 -4
- package/dist/constants/attributes.d.ts.map +1 -1
- package/dist/constants/attributes.js +10 -2
- package/dist/constants/attributes.js.map +1 -1
- package/dist/constants/index.cjs +4 -4
- package/dist/constants/index.d.cts +2 -2
- package/dist/constants/index.d.ts +2 -2
- package/dist/constants/index.js +2 -3
- package/dist/exporters/BaseFetchExporter/BaseFetchExporter.cjs +2 -3
- package/dist/exporters/BaseFetchExporter/BaseFetchExporter.cjs.map +1 -1
- package/dist/exporters/BaseFetchExporter/BaseFetchExporter.js +1 -1
- package/dist/exporters/BaseFetchExporter/BaseFetchExporter.js.map +1 -1
- package/dist/exporters/BaseFetchExporter/index.cjs +3 -4
- package/dist/exporters/BaseFetchExporter/index.js +1 -2
- package/dist/exporters/MXLLogExporter/MXLLogExporter.cjs +6 -7
- package/dist/exporters/MXLLogExporter/MXLLogExporter.cjs.map +1 -1
- package/dist/exporters/MXLLogExporter/MXLLogExporter.js +1 -2
- package/dist/exporters/MXLLogExporter/MXLLogExporter.js.map +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.cjs +5 -6
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.cjs.map +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.d.cts.map +1 -1
- package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.d.ts +0 -1
- 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/MXLLogExporter/index.cjs +3 -4
- package/dist/exporters/MXLLogExporter/index.js +1 -2
- package/dist/exporters/MXLLogExporter/utils.cjs +3 -4
- package/dist/exporters/MXLLogExporter/utils.cjs.map +1 -1
- package/dist/exporters/MXLLogExporter/utils.js +1 -2
- package/dist/exporters/MXLLogExporter/utils.js.map +1 -1
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.cjs +6 -7
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.cjs.map +1 -1
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.js +1 -2
- package/dist/exporters/MXLTraceExporter/MXLTraceExporter.js.map +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.cjs +5 -6
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.cjs.map +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.d.ts +0 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.d.ts.map +1 -1
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.js +1 -2
- package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.js.map +1 -1
- package/dist/exporters/MXLTraceExporter/index.cjs +3 -4
- package/dist/exporters/MXLTraceExporter/index.js +1 -2
- package/dist/exporters/MXLTraceExporter/utils.cjs +3 -4
- package/dist/exporters/MXLTraceExporter/utils.cjs.map +1 -1
- package/dist/exporters/MXLTraceExporter/utils.js +1 -2
- package/dist/exporters/MXLTraceExporter/utils.js.map +1 -1
- package/dist/exporters/constants.cjs +3 -6
- package/dist/exporters/constants.cjs.map +1 -1
- package/dist/exporters/constants.js +2 -4
- package/dist/exporters/constants.js.map +1 -1
- package/dist/exporters/index.cjs +7 -8
- package/dist/exporters/index.d.ts +0 -2
- package/dist/exporters/index.js +1 -2
- package/dist/exporters/otlpBrowserFetchExportDelegate.cjs +5 -6
- package/dist/exporters/otlpBrowserFetchExportDelegate.cjs.map +1 -1
- package/dist/exporters/otlpBrowserFetchExportDelegate.d.cts +2 -2
- package/dist/exporters/otlpBrowserFetchExportDelegate.d.cts.map +1 -1
- package/dist/exporters/otlpBrowserFetchExportDelegate.d.ts +2 -2
- package/dist/exporters/otlpBrowserFetchExportDelegate.d.ts.map +1 -1
- package/dist/exporters/otlpBrowserFetchExportDelegate.js +1 -2
- package/dist/exporters/otlpBrowserFetchExportDelegate.js.map +1 -1
- package/dist/exporters/utils.cjs +2 -3
- package/dist/exporters/utils.cjs.map +1 -1
- package/dist/exporters/utils.d.cts.map +1 -1
- package/dist/exporters/utils.d.ts.map +1 -1
- package/dist/exporters/utils.js +1 -1
- package/dist/exporters/utils.js.map +1 -1
- package/dist/index.cjs +17 -16
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -7
- package/dist/index.js +2 -2
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.cjs +3 -4
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.cjs.map +1 -1
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.js +1 -2
- package/dist/instrumentations/InstrumentationAbstract/InstrumentationAbstract.js.map +1 -1
- package/dist/instrumentations/InstrumentationAbstract/index.cjs +3 -4
- package/dist/instrumentations/InstrumentationAbstract/index.js +1 -2
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.cjs +16 -8
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.cjs.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.d.cts +7 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.d.cts.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.d.ts +7 -5
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.d.ts.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.js +11 -3
- package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.js.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/index.cjs +3 -4
- package/dist/instrumentations/MXLInstrumentationBase/index.js +1 -2
- package/dist/instrumentations/MXLInstrumentationBase/types.d.cts +3 -0
- package/dist/instrumentations/MXLInstrumentationBase/types.d.cts.map +1 -1
- package/dist/instrumentations/MXLInstrumentationBase/types.d.ts +3 -1
- package/dist/instrumentations/MXLInstrumentationBase/types.d.ts.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.cjs +4 -5
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.d.ts +0 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.js +1 -2
- package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.js.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/clicks/ClicksInstrumentation/index.js +1 -2
- package/dist/instrumentations/clicks/ClicksInstrumentation/types.d.cts +0 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/types.d.ts +0 -2
- package/dist/instrumentations/clicks/ClicksInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/utils.cjs +2 -3
- package/dist/instrumentations/clicks/ClicksInstrumentation/utils.cjs.map +1 -1
- package/dist/instrumentations/clicks/ClicksInstrumentation/utils.js +1 -1
- package/dist/instrumentations/clicks/index.cjs +3 -4
- package/dist/instrumentations/clicks/index.d.ts +0 -1
- package/dist/instrumentations/clicks/index.js +1 -2
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.cjs +12 -13
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.d.ts +0 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.js +8 -9
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.js.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.cjs +2 -3
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.cjs.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.js +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.js.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.cjs +2 -3
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.cjs.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.js +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.js.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/index.cjs +4 -5
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/index.js +1 -2
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/types.d.ts +0 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.cjs +6 -7
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.cjs.map +1 -1
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.js +4 -5
- package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.js.map +1 -1
- package/dist/instrumentations/document-load/index.cjs +4 -5
- package/dist/instrumentations/document-load/index.d.ts +0 -1
- package/dist/instrumentations/document-load/index.js +1 -2
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.cjs +67 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.cjs.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.d.cts +19 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.d.cts.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.d.ts +19 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.d.ts.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.js +66 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.js.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/constants.cjs +21 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/constants.cjs.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/constants.d.cts +12 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/constants.d.cts.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/constants.d.ts +12 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/constants.d.ts.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/constants.js +13 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/constants.js.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/index.cjs +3 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/index.d.cts +3 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/index.d.ts +3 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/index.js +2 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/types.cjs +0 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/types.d.cts +16 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/types.d.cts.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/types.d.ts +16 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/types.d.ts.map +1 -0
- package/dist/instrumentations/element-timing/ElementTimingInstrumentation/types.js +0 -0
- package/dist/instrumentations/element-timing/index.cjs +3 -0
- package/dist/instrumentations/element-timing/index.d.cts +3 -0
- package/dist/instrumentations/element-timing/index.d.ts +3 -0
- package/dist/instrumentations/element-timing/index.js +2 -0
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.cjs +3 -4
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.d.ts +0 -1
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.js +1 -2
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.js.map +1 -1
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/index.js +1 -2
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/types.d.cts +0 -1
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/types.d.ts +0 -2
- package/dist/instrumentations/empty-root/EmptyRootInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/empty-root/index.cjs +3 -4
- package/dist/instrumentations/empty-root/index.d.ts +0 -1
- package/dist/instrumentations/empty-root/index.js +1 -2
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.cjs +3 -4
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.d.ts +0 -1
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.js +1 -2
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.js.map +1 -1
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/index.js +1 -2
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/types.d.cts +0 -1
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/types.d.ts +0 -2
- package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/exceptions/index.cjs +3 -4
- package/dist/instrumentations/exceptions/index.d.ts +0 -1
- package/dist/instrumentations/exceptions/index.js +1 -2
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.cjs +7 -8
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.cjs.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.js +3 -4
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.js.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/index.cjs +3 -4
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/index.js +1 -2
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.cjs +3 -4
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.js +1 -2
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.js.map +1 -1
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/fetch/MXLFetchInstrumentation/index.js +1 -2
- package/dist/instrumentations/fetch/index.cjs +3 -4
- package/dist/instrumentations/fetch/index.d.ts +0 -1
- package/dist/instrumentations/fetch/index.js +1 -2
- package/dist/instrumentations/index.cjs +19 -20
- package/dist/instrumentations/index.d.cts +9 -9
- package/dist/instrumentations/index.d.ts +9 -19
- package/dist/instrumentations/index.js +5 -6
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.cjs +168 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.cjs.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.cts +33 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.cts.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.ts +33 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.d.ts.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.js +166 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.js.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/constants.cjs +29 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/constants.cjs.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/constants.d.cts +16 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/constants.d.cts.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/constants.d.ts +16 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/constants.d.ts.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/constants.js +17 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/constants.js.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/index.cjs +3 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/index.d.cts +3 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/index.d.ts +3 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/index.js +2 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/types.cjs +0 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/types.d.cts +6 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/types.d.cts.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/types.d.ts +6 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/types.d.ts.map +1 -0
- package/dist/instrumentations/loaf/LoafInstrumentation/types.js +0 -0
- package/dist/instrumentations/loaf/index.cjs +3 -0
- package/dist/instrumentations/loaf/index.d.cts +3 -0
- package/dist/instrumentations/loaf/index.d.ts +3 -0
- package/dist/instrumentations/loaf/index.js +2 -0
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.cjs +7 -8
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.d.ts +0 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.js +4 -5
- package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/index.cjs +4 -5
- package/dist/instrumentations/navigation/NavigationInstrumentation/index.js +1 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/instance.cjs +3 -4
- package/dist/instrumentations/navigation/NavigationInstrumentation/instance.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/instance.js +1 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/instance.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.cjs +3 -4
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.d.cts +0 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.d.ts +0 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.js +1 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/index.cjs +3 -4
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/index.js +1 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.cjs +8 -9
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.js +3 -4
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/index.cjs +3 -4
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/index.js +1 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.cjs +5 -6
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.js +3 -4
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/index.cjs +3 -4
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/index.js +1 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.cjs +8 -9
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.cjs.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.js +4 -5
- package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.js.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/types.d.cts +0 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/navigation/NavigationInstrumentation/types.d.ts +0 -2
- package/dist/instrumentations/navigation/NavigationInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/navigation/index.cjs +4 -5
- package/dist/instrumentations/navigation/index.d.ts +0 -1
- package/dist/instrumentations/navigation/index.js +1 -2
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.cjs +59 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.cjs.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.d.cts +19 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.d.cts.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.d.ts +19 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.d.ts.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.js +57 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.js.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/constants.cjs +13 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/constants.cjs.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/constants.d.cts +8 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/constants.d.cts.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/constants.d.ts +8 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/constants.d.ts.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/constants.js +9 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/constants.js.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/index.cjs +3 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/index.d.cts +3 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/index.d.ts +3 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/index.js +2 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/types.cjs +0 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/types.d.cts +7 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/types.d.cts.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/types.d.ts +7 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/types.d.ts.map +1 -0
- package/dist/instrumentations/server-timing/ServerTimingInstrumentation/types.js +0 -0
- package/dist/instrumentations/server-timing/index.cjs +3 -0
- package/dist/instrumentations/server-timing/index.d.cts +3 -0
- package/dist/instrumentations/server-timing/index.d.ts +3 -0
- package/dist/instrumentations/server-timing/index.js +2 -0
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.cjs +7 -8
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.d.ts +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.js +1 -2
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.js.map +1 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.cjs +2 -3
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.cjs.map +1 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/constants.js +1 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/index.js +1 -2
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/types.d.cts +0 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/types.d.ts +0 -2
- package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.cjs +3 -4
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.d.ts +0 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.js +1 -2
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.js.map +1 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/index.js +1 -2
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/types.d.cts +0 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/types.d.ts +0 -2
- package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.cjs +4 -5
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.d.ts +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.js +1 -2
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.js.map +1 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.cjs +2 -3
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.cjs.map +1 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/constants.js +1 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/index.js +1 -2
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.d.cts +0 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.d.ts +0 -2
- package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.cjs +10 -73
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.d.cts +1 -14
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.d.ts +1 -17
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.js +8 -71
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.js.map +1 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/index.js +1 -2
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.d.cts +1 -6
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.d.ts +1 -7
- package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/session/index.cjs +6 -11
- package/dist/instrumentations/session/index.d.cts +1 -5
- package/dist/instrumentations/session/index.d.ts +1 -11
- package/dist/instrumentations/session/index.js +1 -4
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.cjs +95 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.cjs.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.d.cts +23 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.d.cts.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.d.ts +23 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.d.ts.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.js +93 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.js.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/constants.cjs +17 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/constants.cjs.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/constants.d.cts +10 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/constants.d.cts.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/constants.d.ts +10 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/constants.d.ts.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/constants.js +11 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/constants.js.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/index.cjs +3 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/index.d.cts +3 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/index.d.ts +3 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/index.js +2 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/types.cjs +0 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/types.d.cts +18 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/types.d.cts.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/types.d.ts +18 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/types.d.ts.map +1 -0
- package/dist/instrumentations/user-timing/UserTimingInstrumentation/types.js +0 -0
- package/dist/instrumentations/user-timing/index.cjs +3 -0
- package/dist/instrumentations/user-timing/index.d.cts +3 -0
- package/dist/instrumentations/user-timing/index.d.ts +3 -0
- package/dist/instrumentations/user-timing/index.js +2 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.cjs +79 -105
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.cts.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.ts +0 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.ts.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.js +75 -101
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.js.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/attributes.cjs +19 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/attributes.cjs.map +1 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/attributes.d.cts +11 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/attributes.d.cts.map +1 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/attributes.d.ts +11 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/attributes.d.ts.map +1 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/attributes.js +12 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/attributes.js.map +1 -0
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/constants.cjs +60 -4
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/constants.cjs.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/constants.d.cts +9 -7
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/constants.d.cts.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/constants.d.ts +9 -7
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/constants.d.ts.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/constants.js +57 -3
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/constants.js.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/index.js +1 -2
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/types.d.cts +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/types.d.cts.map +1 -1
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/types.d.ts +1 -2
- package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/types.d.ts.map +1 -1
- package/dist/instrumentations/web-vitals/index.cjs +3 -4
- package/dist/instrumentations/web-vitals/index.d.ts +0 -1
- package/dist/instrumentations/web-vitals/index.js +1 -2
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.cjs +3 -4
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.cjs.map +1 -1
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.js +1 -2
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.js.map +1 -1
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/index.cjs +3 -4
- package/dist/instrumentations/xhr/MXLXHRInstrumentation/index.js +1 -2
- package/dist/instrumentations/xhr/index.cjs +3 -4
- package/dist/instrumentations/xhr/index.d.ts +0 -1
- package/dist/instrumentations/xhr/index.js +1 -2
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs +43 -10
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts +10 -0
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts +10 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts.map +1 -1
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js +39 -6
- package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js.map +1 -1
- package/dist/managers/MXLConfigManager/constants.cjs +2 -3
- package/dist/managers/MXLConfigManager/constants.cjs.map +1 -1
- package/dist/managers/MXLConfigManager/constants.d.cts +0 -1
- package/dist/managers/MXLConfigManager/constants.d.cts.map +1 -1
- package/dist/managers/MXLConfigManager/constants.d.ts +0 -2
- package/dist/managers/MXLConfigManager/constants.d.ts.map +1 -1
- package/dist/managers/MXLConfigManager/constants.js +1 -1
- package/dist/managers/MXLConfigManager/index.cjs +3 -4
- package/dist/managers/MXLConfigManager/index.js +1 -2
- package/dist/managers/MXLConfigManager/types.d.cts +2 -1
- package/dist/managers/MXLConfigManager/types.d.cts.map +1 -1
- package/dist/managers/MXLConfigManager/types.d.ts +2 -2
- package/dist/managers/MXLConfigManager/types.d.ts.map +1 -1
- package/dist/managers/MXLConfigManager/utils.cjs +2 -3
- package/dist/managers/MXLConfigManager/utils.cjs.map +1 -1
- package/dist/managers/MXLConfigManager/utils.js +1 -1
- package/dist/managers/MXLLimitManager/MXLLimitManager.cjs +24 -8
- package/dist/managers/MXLLimitManager/MXLLimitManager.cjs.map +1 -1
- package/dist/managers/MXLLimitManager/MXLLimitManager.d.cts +3 -0
- package/dist/managers/MXLLimitManager/MXLLimitManager.d.cts.map +1 -1
- package/dist/managers/MXLLimitManager/MXLLimitManager.d.ts +3 -1
- package/dist/managers/MXLLimitManager/MXLLimitManager.d.ts.map +1 -1
- package/dist/managers/MXLLimitManager/MXLLimitManager.js +22 -6
- package/dist/managers/MXLLimitManager/MXLLimitManager.js.map +1 -1
- package/dist/managers/MXLLimitManager/constants.cjs +11 -8
- package/dist/managers/MXLLimitManager/constants.cjs.map +1 -1
- package/dist/managers/MXLLimitManager/constants.js +10 -6
- package/dist/managers/MXLLimitManager/constants.js.map +1 -1
- package/dist/managers/MXLLimitManager/index.cjs +4 -5
- package/dist/managers/MXLLimitManager/index.js +1 -2
- package/dist/managers/MXLLimitManager/types.d.cts +7 -1
- package/dist/managers/MXLLimitManager/types.d.cts.map +1 -1
- package/dist/managers/MXLLimitManager/types.d.ts +7 -2
- package/dist/managers/MXLLimitManager/types.d.ts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.cjs +11 -12
- package/dist/managers/MXLLogManager/MXLLogManager.cjs.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.d.cts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.d.ts +0 -2
- package/dist/managers/MXLLogManager/MXLLogManager.d.ts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.js +5 -6
- package/dist/managers/MXLLogManager/MXLLogManager.js.map +1 -1
- package/dist/managers/MXLLogManager/index.cjs +3 -4
- package/dist/managers/MXLLogManager/index.js +1 -2
- package/dist/managers/MXLLogManager/types.d.ts +0 -3
- package/dist/managers/MXLLogManager/types.d.ts.map +1 -1
- package/dist/managers/MXLPageManager/MXLPageManager.cjs +3 -4
- package/dist/managers/MXLPageManager/MXLPageManager.cjs.map +1 -1
- package/dist/managers/MXLPageManager/MXLPageManager.js +1 -2
- package/dist/managers/MXLPageManager/MXLPageManager.js.map +1 -1
- package/dist/managers/MXLPageManager/index.cjs +3 -4
- package/dist/managers/MXLPageManager/index.js +1 -2
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs +3 -4
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js +1 -2
- package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js.map +1 -1
- package/dist/managers/MXLSDKFeaturesManager/index.cjs +3 -4
- package/dist/managers/MXLSDKFeaturesManager/index.js +1 -2
- 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 -2
- package/dist/managers/MXLSDKFeaturesManager/types.d.ts.map +1 -1
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.cjs +18 -17
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.cjs.map +1 -1
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.cts +3 -1
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.cts.map +1 -1
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.ts +3 -3
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.ts.map +1 -1
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.js +9 -8
- package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.js.map +1 -1
- package/dist/managers/MXLSpanSessionManager/constants.cjs +2 -3
- package/dist/managers/MXLSpanSessionManager/constants.cjs.map +1 -1
- package/dist/managers/MXLSpanSessionManager/constants.js +1 -1
- package/dist/managers/MXLSpanSessionManager/index.cjs +3 -4
- package/dist/managers/MXLSpanSessionManager/index.js +1 -2
- package/dist/managers/MXLSpanSessionManager/types.d.cts +5 -0
- package/dist/managers/MXLSpanSessionManager/types.d.cts.map +1 -1
- package/dist/managers/MXLSpanSessionManager/types.d.ts +5 -3
- package/dist/managers/MXLSpanSessionManager/types.d.ts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.cjs +3 -4
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.cjs.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.d.cts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.d.ts +0 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.d.ts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.js +1 -2
- package/dist/managers/MXLTraceManager/MXLExtendedSpan.js.map +1 -1
- package/dist/managers/MXLTraceManager/MXLTraceManager.cjs +8 -8
- package/dist/managers/MXLTraceManager/MXLTraceManager.cjs.map +1 -1
- package/dist/managers/MXLTraceManager/MXLTraceManager.d.ts +0 -1
- package/dist/managers/MXLTraceManager/MXLTraceManager.d.ts.map +1 -1
- package/dist/managers/MXLTraceManager/MXLTraceManager.js +5 -5
- package/dist/managers/MXLTraceManager/MXLTraceManager.js.map +1 -1
- package/dist/managers/MXLTraceManager/index.cjs +4 -5
- package/dist/managers/MXLTraceManager/index.js +1 -2
- package/dist/managers/MXLUserManager/MXLUserManager.cjs +7 -8
- package/dist/managers/MXLUserManager/MXLUserManager.cjs.map +1 -1
- package/dist/managers/MXLUserManager/MXLUserManager.js +1 -2
- package/dist/managers/MXLUserManager/MXLUserManager.js.map +1 -1
- package/dist/managers/MXLUserManager/constants.cjs +2 -3
- package/dist/managers/MXLUserManager/constants.cjs.map +1 -1
- package/dist/managers/MXLUserManager/constants.js +1 -1
- package/dist/managers/MXLUserManager/index.cjs +3 -4
- package/dist/managers/MXLUserManager/index.js +1 -2
- package/dist/managers/MXLUserManager/types.cjs +4 -5
- package/dist/managers/MXLUserManager/types.cjs.map +1 -1
- package/dist/managers/MXLUserManager/types.js +3 -4
- package/dist/managers/MXLUserManager/types.js.map +1 -1
- package/dist/managers/index.cjs +12 -13
- package/dist/managers/index.d.cts +1 -1
- package/dist/managers/index.d.ts +1 -9
- package/dist/managers/index.js +1 -2
- package/dist/mxl-web-sdk.js +24 -4
- package/dist/mxl-web-sdk.js.map +1 -1
- package/dist/packages/otlp-transformer/dist/index.cjs +443 -274
- package/dist/packages/otlp-transformer/dist/index.cjs.map +1 -1
- package/dist/packages/otlp-transformer/dist/index.d.cts +14 -2
- package/dist/packages/otlp-transformer/dist/index.d.cts.map +1 -1
- package/dist/packages/otlp-transformer/dist/index.d.ts +14 -2
- package/dist/packages/otlp-transformer/dist/index.d.ts.map +1 -1
- package/dist/packages/otlp-transformer/dist/index.js +443 -273
- package/dist/packages/otlp-transformer/dist/index.js.map +1 -1
- package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.cjs +4 -5
- package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.d.cts.map +1 -1
- package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.d.ts.map +1 -1
- package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.js +2 -3
- package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.js.map +1 -1
- package/dist/processors/BrowserLogRecordProcessor/index.cjs +3 -4
- package/dist/processors/BrowserLogRecordProcessor/index.js +1 -2
- package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.cjs +4 -5
- package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.cjs.map +1 -1
- package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.d.cts.map +1 -1
- package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.d.ts.map +1 -1
- package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.js +2 -3
- package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.js.map +1 -1
- package/dist/processors/BrowserSpanProcessor/index.cjs +3 -4
- package/dist/processors/BrowserSpanProcessor/index.js +1 -2
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.cjs +4 -5
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.js +1 -2
- package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.js.map +1 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/index.cjs +3 -4
- package/dist/processors/IdentifiableSessionLogRecordProcessor/index.js +1 -2
- package/dist/processors/IdentifiableSessionLogRecordProcessor/types.d.ts +0 -1
- package/dist/processors/IdentifiableSessionLogRecordProcessor/types.d.ts.map +1 -1
- package/dist/processors/LogRecordScrubProcessor/LogRecordScrubProcessor.cjs +2 -3
- package/dist/processors/LogRecordScrubProcessor/LogRecordScrubProcessor.cjs.map +1 -1
- package/dist/processors/LogRecordScrubProcessor/LogRecordScrubProcessor.js +1 -1
- package/dist/processors/LogRecordScrubProcessor/LogRecordScrubProcessor.js.map +1 -1
- package/dist/processors/LogRecordScrubProcessor/index.cjs +3 -4
- package/dist/processors/LogRecordScrubProcessor/index.js +1 -2
- package/dist/processors/MXLLogRecordProcessor/MXLLogRecordProcessor.cjs +5 -6
- package/dist/processors/MXLLogRecordProcessor/MXLLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/MXLLogRecordProcessor/MXLLogRecordProcessor.js +3 -4
- package/dist/processors/MXLLogRecordProcessor/MXLLogRecordProcessor.js.map +1 -1
- package/dist/processors/MXLLogRecordProcessor/index.cjs +3 -4
- package/dist/processors/MXLLogRecordProcessor/index.js +1 -2
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.cjs +6 -7
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.cjs.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.js +3 -4
- package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.js.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/index.cjs +3 -4
- package/dist/processors/MXLNetworkSpanProcessor/index.js +1 -2
- package/dist/processors/MXLNetworkSpanProcessor/types.cjs +3 -4
- package/dist/processors/MXLNetworkSpanProcessor/types.cjs.map +1 -1
- package/dist/processors/MXLNetworkSpanProcessor/types.js +1 -2
- package/dist/processors/MXLNetworkSpanProcessor/types.js.map +1 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.cjs +6 -7
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.cjs.map +1 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.js +3 -4
- package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.js.map +1 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/index.cjs +3 -4
- package/dist/processors/MXLSessionBatchedSpanProcessor/index.js +1 -2
- package/dist/processors/MXLSessionBatchedSpanProcessor/types.d.ts +0 -1
- package/dist/processors/MXLSessionBatchedSpanProcessor/types.d.ts.map +1 -1
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.cjs +5 -6
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.js +3 -4
- package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.js.map +1 -1
- package/dist/processors/PageLogRecordProcessor/index.cjs +3 -4
- package/dist/processors/PageLogRecordProcessor/index.js +1 -2
- package/dist/processors/PageSpanProcessor/PageSpanProcessor.cjs +5 -6
- package/dist/processors/PageSpanProcessor/PageSpanProcessor.cjs.map +1 -1
- package/dist/processors/PageSpanProcessor/PageSpanProcessor.js +3 -4
- package/dist/processors/PageSpanProcessor/PageSpanProcessor.js.map +1 -1
- package/dist/processors/PageSpanProcessor/index.cjs +3 -4
- package/dist/processors/PageSpanProcessor/index.js +1 -2
- package/dist/processors/SpanScrubProcessor/SpanScrubProcessor.cjs +2 -3
- package/dist/processors/SpanScrubProcessor/SpanScrubProcessor.cjs.map +1 -1
- package/dist/processors/SpanScrubProcessor/SpanScrubProcessor.js +1 -1
- package/dist/processors/SpanScrubProcessor/SpanScrubProcessor.js.map +1 -1
- package/dist/processors/SpanScrubProcessor/index.cjs +3 -4
- package/dist/processors/SpanScrubProcessor/index.js +1 -2
- package/dist/processors/UserLogRecordProcessor/UserLogRecordProcessor.cjs +3 -4
- package/dist/processors/UserLogRecordProcessor/UserLogRecordProcessor.cjs.map +1 -1
- package/dist/processors/UserLogRecordProcessor/UserLogRecordProcessor.js +1 -2
- package/dist/processors/UserLogRecordProcessor/UserLogRecordProcessor.js.map +1 -1
- package/dist/processors/UserLogRecordProcessor/index.cjs +3 -4
- package/dist/processors/UserLogRecordProcessor/index.js +1 -2
- package/dist/processors/UserSpanProcessor/UserSpanProcessor.cjs +3 -4
- package/dist/processors/UserSpanProcessor/UserSpanProcessor.cjs.map +1 -1
- package/dist/processors/UserSpanProcessor/UserSpanProcessor.js +1 -2
- package/dist/processors/UserSpanProcessor/UserSpanProcessor.js.map +1 -1
- package/dist/processors/UserSpanProcessor/index.cjs +3 -4
- package/dist/processors/UserSpanProcessor/index.js +1 -2
- package/dist/processors/index.cjs +14 -15
- package/dist/processors/index.d.ts +0 -12
- package/dist/processors/index.js +1 -2
- package/dist/propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator.cjs +4 -5
- package/dist/propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator.cjs.map +1 -1
- package/dist/propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator.js +1 -2
- package/dist/propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator.js.map +1 -1
- package/dist/propagators/MXLW3CTraceContextPropagator/index.cjs +3 -4
- package/dist/propagators/MXLW3CTraceContextPropagator/index.js +1 -2
- package/dist/propagators/index.cjs +3 -4
- package/dist/propagators/index.d.ts +0 -1
- package/dist/propagators/index.js +1 -2
- package/dist/react-instrumentation/index.cjs +7 -8
- package/dist/react-instrumentation/index.d.ts +0 -3
- package/dist/react-instrumentation/index.js +1 -2
- package/dist/resources/appInstanceId.cjs +4 -5
- package/dist/resources/appInstanceId.cjs.map +1 -1
- package/dist/resources/appInstanceId.js +1 -2
- package/dist/resources/appInstanceId.js.map +1 -1
- package/dist/resources/constants/index.cjs +3 -4
- 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 +2 -2
- package/dist/resources/constants/index.js.map +1 -1
- package/dist/resources/index.cjs +7 -6
- package/dist/resources/index.d.cts +2 -2
- package/dist/resources/index.d.ts +2 -2
- package/dist/resources/index.js +2 -3
- package/dist/resources/webSdkResource.cjs +22 -9
- package/dist/resources/webSdkResource.cjs.map +1 -1
- package/dist/resources/webSdkResource.d.cts +16 -1
- package/dist/resources/webSdkResource.d.cts.map +1 -1
- package/dist/resources/webSdkResource.d.ts +16 -1
- package/dist/resources/webSdkResource.d.ts.map +1 -1
- package/dist/resources/webSdkResource.js +17 -6
- package/dist/resources/webSdkResource.js.map +1 -1
- package/dist/sdk/defaultAttributeScrubbers.cjs +3 -4
- package/dist/sdk/defaultAttributeScrubbers.cjs.map +1 -1
- package/dist/sdk/defaultAttributeScrubbers.js +1 -2
- package/dist/sdk/defaultAttributeScrubbers.js.map +1 -1
- package/dist/sdk/index.cjs +3 -4
- package/dist/sdk/index.js +1 -2
- package/dist/sdk/initSDK.cjs +62 -58
- package/dist/sdk/initSDK.cjs.map +1 -1
- package/dist/sdk/initSDK.d.cts +2 -1
- package/dist/sdk/initSDK.d.cts.map +1 -1
- package/dist/sdk/initSDK.d.ts +2 -1
- package/dist/sdk/initSDK.d.ts.map +1 -1
- package/dist/sdk/initSDK.js +24 -20
- package/dist/sdk/initSDK.js.map +1 -1
- package/dist/sdk/registry.cjs +3 -4
- package/dist/sdk/registry.cjs.map +1 -1
- package/dist/sdk/registry.js +1 -2
- package/dist/sdk/registry.js.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.cjs +36 -28
- package/dist/sdk/setupDefaultInstrumentations.cjs.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.d.cts +2 -3
- package/dist/sdk/setupDefaultInstrumentations.d.cts.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.d.ts +2 -3
- package/dist/sdk/setupDefaultInstrumentations.d.ts.map +1 -1
- package/dist/sdk/setupDefaultInstrumentations.js +26 -19
- package/dist/sdk/setupDefaultInstrumentations.js.map +1 -1
- package/dist/sdk/setupSessionRecorder.cjs +5 -6
- package/dist/sdk/setupSessionRecorder.cjs.map +1 -1
- package/dist/sdk/setupSessionRecorder.js +1 -2
- package/dist/sdk/setupSessionRecorder.js.map +1 -1
- package/dist/sdk/types.d.cts +29 -16
- package/dist/sdk/types.d.cts.map +1 -1
- package/dist/sdk/types.d.ts +29 -22
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/sdk/utils.cjs +3 -4
- package/dist/sdk/utils.cjs.map +1 -1
- package/dist/sdk/utils.js +1 -2
- package/dist/sdk/utils.js.map +1 -1
- package/dist/transport/FetchTransport/FetchTransport.cjs +3 -4
- package/dist/transport/FetchTransport/FetchTransport.cjs.map +1 -1
- package/dist/transport/FetchTransport/FetchTransport.js +1 -2
- package/dist/transport/FetchTransport/FetchTransport.js.map +1 -1
- package/dist/transport/FetchTransport/createFetchTransport.cjs +3 -4
- package/dist/transport/FetchTransport/createFetchTransport.cjs.map +1 -1
- package/dist/transport/FetchTransport/createFetchTransport.js +1 -2
- package/dist/transport/FetchTransport/createFetchTransport.js.map +1 -1
- package/dist/transport/FetchTransport/index.cjs +3 -4
- package/dist/transport/FetchTransport/index.js +1 -2
- package/dist/transport/RetryingTransport/RetryingTransport.cjs +6 -7
- package/dist/transport/RetryingTransport/RetryingTransport.cjs.map +1 -1
- package/dist/transport/RetryingTransport/RetryingTransport.d.ts +0 -1
- package/dist/transport/RetryingTransport/RetryingTransport.d.ts.map +1 -1
- package/dist/transport/RetryingTransport/RetryingTransport.js +4 -5
- package/dist/transport/RetryingTransport/RetryingTransport.js.map +1 -1
- package/dist/transport/RetryingTransport/constants.cjs +2 -3
- package/dist/transport/RetryingTransport/constants.cjs.map +1 -1
- package/dist/transport/RetryingTransport/constants.js +1 -1
- package/dist/transport/RetryingTransport/createRetryingTransport.cjs +4 -5
- package/dist/transport/RetryingTransport/createRetryingTransport.cjs.map +1 -1
- package/dist/transport/RetryingTransport/createRetryingTransport.d.cts.map +1 -1
- package/dist/transport/RetryingTransport/createRetryingTransport.d.ts +0 -1
- package/dist/transport/RetryingTransport/createRetryingTransport.d.ts.map +1 -1
- package/dist/transport/RetryingTransport/createRetryingTransport.js +1 -2
- package/dist/transport/RetryingTransport/createRetryingTransport.js.map +1 -1
- package/dist/transport/RetryingTransport/index.cjs +3 -4
- package/dist/transport/RetryingTransport/index.js +1 -2
- package/dist/transport/index.cjs +4 -5
- package/dist/transport/index.d.ts +0 -2
- package/dist/transport/index.js +1 -2
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.cjs +4 -5
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.cjs.map +1 -1
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.d.ts +0 -1
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.d.ts.map +1 -1
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.js +1 -2
- package/dist/utils/MXLSpanStorage/MXLSpanStorage.js.map +1 -1
- package/dist/utils/MXLSpanStorage/index.cjs +3 -4
- package/dist/utils/MXLSpanStorage/index.d.ts +0 -1
- package/dist/utils/MXLSpanStorage/index.js +1 -2
- package/dist/utils/NamespacedStorage/NamespacedStorage.cjs +12 -3
- package/dist/utils/NamespacedStorage/NamespacedStorage.cjs.map +1 -1
- package/dist/utils/NamespacedStorage/NamespacedStorage.d.cts +8 -0
- package/dist/utils/NamespacedStorage/NamespacedStorage.d.cts.map +1 -1
- package/dist/utils/NamespacedStorage/NamespacedStorage.d.ts +8 -0
- package/dist/utils/NamespacedStorage/NamespacedStorage.d.ts.map +1 -1
- package/dist/utils/NamespacedStorage/NamespacedStorage.js +11 -1
- package/dist/utils/NamespacedStorage/NamespacedStorage.js.map +1 -1
- package/dist/utils/NamespacedStorage/index.cjs +3 -4
- package/dist/utils/NamespacedStorage/index.js +1 -2
- package/dist/utils/PerformanceManager/OTelPerformanceManager.cjs +4 -4
- package/dist/utils/PerformanceManager/OTelPerformanceManager.cjs.map +1 -1
- package/dist/utils/PerformanceManager/OTelPerformanceManager.d.cts +1 -0
- package/dist/utils/PerformanceManager/OTelPerformanceManager.d.cts.map +1 -1
- package/dist/utils/PerformanceManager/OTelPerformanceManager.d.ts +1 -0
- package/dist/utils/PerformanceManager/OTelPerformanceManager.d.ts.map +1 -1
- package/dist/utils/PerformanceManager/OTelPerformanceManager.js +2 -2
- package/dist/utils/PerformanceManager/OTelPerformanceManager.js.map +1 -1
- package/dist/utils/PerformanceManager/index.cjs +3 -4
- package/dist/utils/PerformanceManager/index.js +1 -2
- package/dist/utils/PerformanceManager/types.d.cts +1 -0
- package/dist/utils/PerformanceManager/types.d.cts.map +1 -1
- package/dist/utils/PerformanceManager/types.d.ts +1 -0
- package/dist/utils/PerformanceManager/types.d.ts.map +1 -1
- package/dist/utils/bulkAddEventListener/bulkAddEventListener.cjs +2 -3
- package/dist/utils/bulkAddEventListener/bulkAddEventListener.cjs.map +1 -1
- package/dist/utils/bulkAddEventListener/bulkAddEventListener.js +1 -1
- package/dist/utils/bulkAddEventListener/index.cjs +3 -4
- package/dist/utils/bulkAddEventListener/index.js +1 -2
- package/dist/utils/bulkRemoveEventListener/bulkRemoveEventListener.cjs +2 -3
- package/dist/utils/bulkRemoveEventListener/bulkRemoveEventListener.cjs.map +1 -1
- package/dist/utils/bulkRemoveEventListener/bulkRemoveEventListener.js +1 -1
- package/dist/utils/bulkRemoveEventListener/index.cjs +3 -4
- package/dist/utils/bulkRemoveEventListener/index.js +1 -2
- package/dist/utils/createSafeProxy/createSafeProxy.cjs +2 -3
- package/dist/utils/createSafeProxy/createSafeProxy.cjs.map +1 -1
- package/dist/utils/createSafeProxy/createSafeProxy.js +1 -1
- package/dist/utils/createSafeProxy/index.cjs +3 -4
- package/dist/utils/createSafeProxy/index.js +1 -2
- package/dist/utils/generateUUID.cjs +2 -3
- package/dist/utils/generateUUID.cjs.map +1 -1
- package/dist/utils/generateUUID.js +1 -1
- package/dist/utils/generateWebVitalID.cjs +9 -0
- package/dist/utils/generateWebVitalID.cjs.map +1 -0
- package/dist/utils/generateWebVitalID.d.cts +5 -0
- package/dist/utils/generateWebVitalID.d.cts.map +1 -0
- package/dist/utils/generateWebVitalID.d.ts +5 -0
- package/dist/utils/generateWebVitalID.d.ts.map +1 -0
- package/dist/utils/generateWebVitalID.js +8 -0
- package/dist/utils/generateWebVitalID.js.map +1 -0
- package/dist/utils/getIncrementedCount.cjs +6 -3
- package/dist/utils/getIncrementedCount.cjs.map +1 -1
- package/dist/utils/getIncrementedCount.js +5 -1
- package/dist/utils/getIncrementedCount.js.map +1 -1
- package/dist/utils/getVisibilityState.cjs +4 -5
- package/dist/utils/getVisibilityState.cjs.map +1 -1
- package/dist/utils/getVisibilityState.js +3 -4
- package/dist/utils/getVisibilityState.js.map +1 -1
- package/dist/utils/globalConfig.cjs +2 -3
- package/dist/utils/globalConfig.cjs.map +1 -1
- package/dist/utils/globalConfig.js +1 -1
- package/dist/utils/index.cjs +20 -16
- package/dist/utils/index.d.cts +4 -2
- package/dist/utils/index.d.ts +4 -5
- package/dist/utils/index.js +3 -2
- package/dist/utils/isDeviceIdEnabled.cjs +2 -3
- package/dist/utils/isDeviceIdEnabled.cjs.map +1 -1
- package/dist/utils/isDeviceIdEnabled.js +1 -1
- package/dist/utils/isDeviceIdEnabled.js.map +1 -1
- package/dist/utils/nsfConfigValidation.cjs +2 -3
- package/dist/utils/nsfConfigValidation.cjs.map +1 -1
- package/dist/utils/nsfConfigValidation.d.ts +0 -2
- package/dist/utils/nsfConfigValidation.d.ts.map +1 -1
- package/dist/utils/nsfConfigValidation.js +1 -1
- package/dist/utils/performanceObserver/index.cjs +4 -0
- package/dist/utils/performanceObserver/index.d.cts +2 -0
- package/dist/utils/performanceObserver/index.d.ts +2 -0
- package/dist/utils/performanceObserver/index.js +2 -0
- package/dist/utils/performanceObserver/performanceObserver.cjs +47 -0
- package/dist/utils/performanceObserver/performanceObserver.cjs.map +1 -0
- package/dist/utils/performanceObserver/performanceObserver.d.cts +23 -0
- package/dist/utils/performanceObserver/performanceObserver.d.cts.map +1 -0
- package/dist/utils/performanceObserver/performanceObserver.d.ts +23 -0
- package/dist/utils/performanceObserver/performanceObserver.d.ts.map +1 -0
- package/dist/utils/performanceObserver/performanceObserver.js +45 -0
- package/dist/utils/performanceObserver/performanceObserver.js.map +1 -0
- package/dist/utils/throttle.cjs +2 -3
- package/dist/utils/throttle.cjs.map +1 -1
- package/dist/utils/throttle.js +1 -1
- package/package.json +15 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentLoadInstrumentation.cjs","names":["MXLInstrumentationBase","TRACE_PARENT_HEADER","getPerformanceNavigationEntries","propagation","ROOT_CONTEXT","AttributeNames","PerformanceTimingNames","trace","context","ATTR_URL_FULL","KEY_MXL_TYPE","MXL_TYPES","ATTR_USER_AGENT_ORIGINAL","ATTR_HTTP_RESPONSE_STATUS_CODE","ATTR_HTTP_RESPONSE_BODY_SIZE","ATTR_HTTP_RESPONSE_SIZE"],"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/index.ts';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/index.ts';\nimport { AttributeNames } from './enums/AttributeNames.ts';\nimport type {\n DocumentLoadCustomAttributeFunction,\n DocumentLoadInstrumentationConfig,\n ResourceFetchCustomAttributeFunction,\n} from './types.ts';\nimport {\n addSpanPerformancePaintEvents,\n getPerformanceNavigationEntries,\n} from './utils.ts';\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.cjs","names":["MXLInstrumentationBase","TRACE_PARENT_HEADER","getPerformanceNavigationEntries","propagation","ROOT_CONTEXT","PerformanceTimingNames","trace","context","ATTR_URL_FULL","KEY_MXL_TYPE","ATTR_USER_AGENT_ORIGINAL","ATTR_HTTP_RESPONSE_STATUS_CODE","ATTR_HTTP_RESPONSE_BODY_SIZE","ATTR_HTTP_RESPONSE_SIZE"],"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 { MXL_TYPES, KEY_MXL_TYPE } from '../../../constants/index.ts';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/index.ts';\nimport { AttributeNames } from './enums/AttributeNames.ts';\nimport type {\n DocumentLoadCustomAttributeFunction,\n DocumentLoadInstrumentationConfig,\n ResourceFetchCustomAttributeFunction,\n} from './types.ts';\nimport {\n addSpanPerformancePaintEvents,\n getPerformanceNavigationEntries,\n} from './utils.ts';\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(\n resource: MXLPerformanceResourceTiming,\n ): boolean {\n return this._hasNoSizeData(resource) && this._hasTimingData(resource);\n }\n\n private _isFetchIncomplete(\n resource: MXLPerformanceResourceTiming,\n ): 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(\n resource: MXLPerformanceResourceTiming,\n ): 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(\n resource: MXLPerformanceResourceTiming,\n ): 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentLoadInstrumentation.d.cts","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.ts"],"mappings":";;;;cAwEa,2BAAA,SAAoC,sBAAA,CAAuB,iCAAA;EAAA,iBACrD,iBAAA;EAAA,QACT,qBAAA;;IAGN,IAAA;IACA,IAAA;IACA,OAAA;IACA,2BAAA;IACA,4BAAA;IACA;EAAA,IACC,iCAAA;EAAA,UA0BgB,IAAA,CAAA
|
|
1
|
+
{"version":3,"file":"DocumentLoadInstrumentation.d.cts","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.ts"],"mappings":";;;;cAwEa,2BAAA,SAAoC,sBAAA,CAAuB,iCAAA;EAAA,iBACrD,iBAAA;EAAA,QACT,qBAAA;;IAGN,IAAA;IACA,IAAA;IACA,OAAA;IACA,2BAAA;IACA,4BAAA;IACA;EAAA,IACC,iCAAA;EAAA,UA0BgB,IAAA,CAAA;;;;;UASX,kBAAA;EAtCN;;;EAAA,QAiDM,mBAAA;EAzDuC;;;;;;EAAA,QAgLvC,QAAA;;;;;;UAuBA,iBAAA;EAhMN;;;;;;;EAAA,QAwRM,UAAA;EA1PW;;;EAAA,QAmRX,gBAAA;EAjHA;;;;EAAA,QA6HA,0BAAA;EAkDA;;;EAAA,QAxBA,kCAAA;EAAA,QAwBA,cAAA;EAAA,QAeA,cAAA;EAAA,QASA,iBAAA;EAAA,QAMA,kBAAA;EAAA,QAWA,iBAAA;EA2DM;;;;;;;;EAAA,QA1CN,iBAAA;;;;;;;;;;UAoBA,gCAAA;EAiBD,MAAA,CAAA;EAKA,OAAA,CAAA;AAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MXLInstrumentationBase } from "../../MXLInstrumentationBase/MXLInstrumentationBase.js";
|
|
2
|
-
import "../../MXLInstrumentationBase/index.js";
|
|
3
2
|
import { DocumentLoadInstrumentationConfig } from "./types.js";
|
|
4
3
|
|
|
5
4
|
//#region src/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentLoadInstrumentation.d.ts","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DocumentLoadInstrumentation.d.ts","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.ts"],"mappings":";;;;cAwEa,2BAAA,SAAoC,sBAAA,CAAuB,iCAAA;EAAA,iBACrD,iBAAA;EAAA,QACT,qBAAA;;IAGN,IAAA;IACA,IAAA;IACA,OAAA;IACA,2BAAA;IACA,4BAAA;IACA;EAAA,IACC,iCAAA;EAAA,UA0BgB,IAAA,CAAA;;;;;UASX,kBAAA;EAtCN;;;EAAA,QAiDM,mBAAA;EAzDuC;;;;;;EAAA,QAgLvC,QAAA;;;;;;UAuBA,iBAAA;EAhMN;;;;;;;EAAA,QAwRM,UAAA;EA1PW;;;EAAA,QAmRX,gBAAA;EAjHA;;;;EAAA,QA6HA,0BAAA;EAkDA;;;EAAA,QAxBA,kCAAA;EAAA,QAwBA,cAAA;EAAA,QAeA,cAAA;EAAA,QASA,iBAAA;EAAA,QAMA,kBAAA;EAAA,QAWA,iBAAA;EA2DM;;;;;;;;EAAA,QA1CN,iBAAA;;;;;;;;;;UAoBA,gCAAA;EAiBD,MAAA,CAAA;EAKA,OAAA,CAAA;AAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { KEY_MXL_TYPE
|
|
1
|
+
import { KEY_MXL_TYPE } from "../../../constants/attributes.js";
|
|
2
2
|
import { MXLInstrumentationBase } from "../../MXLInstrumentationBase/MXLInstrumentationBase.js";
|
|
3
|
-
import
|
|
3
|
+
import "./enums/AttributeNames.js";
|
|
4
4
|
import { addSpanPerformancePaintEvents, getPerformanceNavigationEntries } from "./utils.js";
|
|
5
5
|
import { ROOT_CONTEXT, context, propagation, trace } from "@opentelemetry/api";
|
|
6
6
|
import { PerformanceTimingNames, addSpanNetworkEvent, addSpanNetworkEvents, hasKey } from "@opentelemetry/sdk-trace-web";
|
|
@@ -8,7 +8,6 @@ import { TRACE_PARENT_HEADER } from "@opentelemetry/core";
|
|
|
8
8
|
import { safeExecuteInTheMiddle } from "@opentelemetry/instrumentation";
|
|
9
9
|
import { ATTR_HTTP_RESPONSE_STATUS_CODE } from "@opentelemetry/semantic-conventions";
|
|
10
10
|
import { ATTR_HTTP_RESPONSE_BODY_SIZE, ATTR_HTTP_RESPONSE_SIZE, ATTR_URL_FULL as ATTR_URL_FULL$1, ATTR_USER_AGENT_ORIGINAL as ATTR_USER_AGENT_ORIGINAL$1 } from "@opentelemetry/semantic-conventions/incubating";
|
|
11
|
-
|
|
12
11
|
//#region src/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.ts
|
|
13
12
|
const ATTR_HTTP_RESPONSE_DELIVERY_TYPE = "http.response.delivery_type";
|
|
14
13
|
const ATTR_HTTP_RESPONSE_DECODED_BODY_SIZE = "http.response.decoded_body_size";
|
|
@@ -63,10 +62,10 @@ var DocumentLoadInstrumentation = class extends MXLInstrumentationBase {
|
|
|
63
62
|
const entries = getPerformanceNavigationEntries();
|
|
64
63
|
const traceparent = metaElement?.content || "";
|
|
65
64
|
context.with(propagation.extract(ROOT_CONTEXT, { traceparent }), () => {
|
|
66
|
-
const rootSpan = this._startSpan(
|
|
65
|
+
const rootSpan = this._startSpan("documentLoad", PerformanceTimingNames.FETCH_START, entries);
|
|
67
66
|
if (!rootSpan) return;
|
|
68
67
|
context.with(trace.setSpan(context.active(), rootSpan), () => {
|
|
69
|
-
const fetchSpan = this._startSpan(
|
|
68
|
+
const fetchSpan = this._startSpan("documentFetch", PerformanceTimingNames.FETCH_START, entries);
|
|
70
69
|
if (fetchSpan) {
|
|
71
70
|
fetchSpan.setAttribute(ATTR_URL_FULL$1, location.href);
|
|
72
71
|
context.with(trace.setSpan(context.active(), fetchSpan), () => {
|
|
@@ -76,7 +75,7 @@ var DocumentLoadInstrumentation = class extends MXLInstrumentationBase {
|
|
|
76
75
|
});
|
|
77
76
|
}
|
|
78
77
|
});
|
|
79
|
-
rootSpan.setAttribute(KEY_MXL_TYPE,
|
|
78
|
+
rootSpan.setAttribute(KEY_MXL_TYPE, "ux.document_load");
|
|
80
79
|
rootSpan.setAttribute(ATTR_URL_FULL$1, location.href);
|
|
81
80
|
rootSpan.setAttribute(ATTR_USER_AGENT_ORIGINAL$1, navigator.userAgent);
|
|
82
81
|
this._addResourcesSpans(rootSpan);
|
|
@@ -112,9 +111,9 @@ var DocumentLoadInstrumentation = class extends MXLInstrumentationBase {
|
|
|
112
111
|
* @param parentSpan
|
|
113
112
|
*/
|
|
114
113
|
_initResourceSpan(resource, parentSpan) {
|
|
115
|
-
const span = this._startSpan(
|
|
114
|
+
const span = this._startSpan("resourceFetch", PerformanceTimingNames.FETCH_START, resource, parentSpan);
|
|
116
115
|
if (!span) return;
|
|
117
|
-
span.setAttribute(KEY_MXL_TYPE,
|
|
116
|
+
span.setAttribute(KEY_MXL_TYPE, "ux.resource_fetch");
|
|
118
117
|
span.setAttribute(ATTR_URL_FULL$1, resource.name);
|
|
119
118
|
addSpanNetworkEvents(span, resource, this.getConfig().ignoreNetworkEvents);
|
|
120
119
|
if (resource.deliveryType) span.setAttribute(ATTR_HTTP_RESPONSE_DELIVERY_TYPE, resource.deliveryType);
|
|
@@ -227,7 +226,7 @@ var DocumentLoadInstrumentation = class extends MXLInstrumentationBase {
|
|
|
227
226
|
window.removeEventListener("load", this._onDocumentLoaded);
|
|
228
227
|
}
|
|
229
228
|
};
|
|
230
|
-
|
|
231
229
|
//#endregion
|
|
232
230
|
export { DocumentLoadInstrumentation };
|
|
231
|
+
|
|
233
232
|
//# sourceMappingURL=DocumentLoadInstrumentation.js.map
|
|
@@ -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/index.ts';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/index.ts';\nimport { AttributeNames } from './enums/AttributeNames.ts';\nimport type {\n DocumentLoadCustomAttributeFunction,\n DocumentLoadInstrumentationConfig,\n ResourceFetchCustomAttributeFunction,\n} from './types.ts';\nimport {\n addSpanPerformancePaintEvents,\n getPerformanceNavigationEntries,\n} from './utils.ts';\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 { 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 { MXL_TYPES, KEY_MXL_TYPE } from '../../../constants/index.ts';\nimport { MXLInstrumentationBase } from '../../MXLInstrumentationBase/index.ts';\nimport { AttributeNames } from './enums/AttributeNames.ts';\nimport type {\n DocumentLoadCustomAttributeFunction,\n DocumentLoadInstrumentationConfig,\n ResourceFetchCustomAttributeFunction,\n} from './types.ts';\nimport {\n addSpanPerformancePaintEvents,\n getPerformanceNavigationEntries,\n} from './utils.ts';\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(\n resource: MXLPerformanceResourceTiming,\n ): boolean {\n return this._hasNoSizeData(resource) && this._hasTimingData(resource);\n }\n\n private _isFetchIncomplete(\n resource: MXLPerformanceResourceTiming,\n ): 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(\n resource: MXLPerformanceResourceTiming,\n ): 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(\n resource: MXLPerformanceResourceTiming,\n ): 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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"}
|
package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.cjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
2
|
//#region src/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.ts
|
|
4
3
|
let AttributeNames = /* @__PURE__ */ function(AttributeNames) {
|
|
5
4
|
AttributeNames["DOCUMENT_LOAD"] = "documentLoad";
|
|
@@ -7,7 +6,7 @@ let AttributeNames = /* @__PURE__ */ function(AttributeNames) {
|
|
|
7
6
|
AttributeNames["RESOURCE_FETCH"] = "resourceFetch";
|
|
8
7
|
return AttributeNames;
|
|
9
8
|
}({});
|
|
10
|
-
|
|
11
9
|
//#endregion
|
|
12
10
|
exports.AttributeNames = AttributeNames;
|
|
11
|
+
|
|
13
12
|
//# sourceMappingURL=AttributeNames.cjs.map
|
package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeNames.cjs","names":[],"sources":["../../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.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\nexport enum AttributeNames {\n DOCUMENT_LOAD = 'documentLoad',\n DOCUMENT_FETCH = 'documentFetch',\n RESOURCE_FETCH = 'resourceFetch',\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AttributeNames.cjs","names":[],"sources":["../../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.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\nexport enum AttributeNames {\n DOCUMENT_LOAD = 'documentLoad',\n DOCUMENT_FETCH = 'documentFetch',\n RESOURCE_FETCH = 'resourceFetch',\n}\n"],"mappings":";;AAKA,IAAY,iBAAL,yBAAA,gBAAA;AACL,gBAAA,mBAAA;AACA,gBAAA,oBAAA;AACA,gBAAA,oBAAA;;KACD"}
|
package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeNames.js","names":[],"sources":["../../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.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\nexport enum AttributeNames {\n DOCUMENT_LOAD = 'documentLoad',\n DOCUMENT_FETCH = 'documentFetch',\n RESOURCE_FETCH = 'resourceFetch',\n}\n"],"mappings":";AAKA,IAAY,
|
|
1
|
+
{"version":3,"file":"AttributeNames.js","names":[],"sources":["../../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/enums/AttributeNames.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\nexport enum AttributeNames {\n DOCUMENT_LOAD = 'documentLoad',\n DOCUMENT_FETCH = 'documentFetch',\n RESOURCE_FETCH = 'resourceFetch',\n}\n"],"mappings":";AAKA,IAAY,iBAAL,yBAAA,gBAAA;AACL,gBAAA,mBAAA;AACA,gBAAA,oBAAA;AACA,gBAAA,oBAAA;;KACD"}
|
package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.cjs
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
2
|
//#region src/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.ts
|
|
4
3
|
let EventNames = /* @__PURE__ */ function(EventNames) {
|
|
5
4
|
EventNames["FIRST_PAINT"] = "firstPaint";
|
|
6
5
|
EventNames["FIRST_CONTENTFUL_PAINT"] = "firstContentfulPaint";
|
|
7
6
|
return EventNames;
|
|
8
7
|
}({});
|
|
9
|
-
|
|
10
8
|
//#endregion
|
|
11
9
|
exports.EventNames = EventNames;
|
|
10
|
+
|
|
12
11
|
//# sourceMappingURL=EventNames.cjs.map
|
package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventNames.cjs","names":[],"sources":["../../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.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\nexport enum EventNames {\n FIRST_PAINT = 'firstPaint',\n FIRST_CONTENTFUL_PAINT = 'firstContentfulPaint',\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"EventNames.cjs","names":[],"sources":["../../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.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\nexport enum EventNames {\n FIRST_PAINT = 'firstPaint',\n FIRST_CONTENTFUL_PAINT = 'firstContentfulPaint',\n}\n"],"mappings":";;AAKA,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,iBAAA;AACA,YAAA,4BAAA;;KACD"}
|
package/dist/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventNames.js","names":[],"sources":["../../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.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\nexport enum EventNames {\n FIRST_PAINT = 'firstPaint',\n FIRST_CONTENTFUL_PAINT = 'firstContentfulPaint',\n}\n"],"mappings":";AAKA,IAAY,
|
|
1
|
+
{"version":3,"file":"EventNames.js","names":[],"sources":["../../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/enums/EventNames.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\nexport enum EventNames {\n FIRST_PAINT = 'firstPaint',\n FIRST_CONTENTFUL_PAINT = 'firstContentfulPaint',\n}\n"],"mappings":";AAKA,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,iBAAA;AACA,YAAA,4BAAA;;KACD"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const require_instrumentations_document_load_DocumentLoadInstrumentation_enums_AttributeNames = require(
|
|
3
|
-
const require_instrumentations_document_load_DocumentLoadInstrumentation_DocumentLoadInstrumentation = require(
|
|
4
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_instrumentations_document_load_DocumentLoadInstrumentation_enums_AttributeNames = require("./enums/AttributeNames.cjs");
|
|
3
|
+
const require_instrumentations_document_load_DocumentLoadInstrumentation_DocumentLoadInstrumentation = require("./DocumentLoadInstrumentation.cjs");
|
|
5
4
|
exports.AttributeNames = require_instrumentations_document_load_DocumentLoadInstrumentation_enums_AttributeNames.AttributeNames;
|
|
6
|
-
exports.DocumentLoadInstrumentation = require_instrumentations_document_load_DocumentLoadInstrumentation_DocumentLoadInstrumentation.DocumentLoadInstrumentation;
|
|
5
|
+
exports.DocumentLoadInstrumentation = require_instrumentations_document_load_DocumentLoadInstrumentation_DocumentLoadInstrumentation.DocumentLoadInstrumentation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/types.ts"],"mappings":";;;;KAQY,mCAAA,IAAuC,IAAA,EAAM,IAAA;AAAA,KAE7C,oCAAA,IACV,IAAA,EAAM,IAAA,EACN,QAAA,EAAU,yBAAA;AAAA,KAGA,iCAAA,GAAoC,IAAA,CAC9C,0BAAA;
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/types.ts"],"mappings":";;;;KAQY,mCAAA,IAAuC,IAAA,EAAM,IAAA;AAAA,KAE7C,oCAAA,IACV,IAAA,EAAM,IAAA,EACN,QAAA,EAAU,yBAAA;AAAA,KAGA,iCAAA,GAAoC,IAAA,CAC9C,0BAAA;EARU,6GAYV,2BAAA;IACE,YAAA,GAAe,mCAAA;IACf,aAAA,GAAgB,mCAAA;IAChB,aAAA,GAAgB,oCAAA;EAAA;EAb4B;;;;;;;;;AAKhD;;;;;;;;;;;;;;;;EAoCE,mBAAA;EA5BE;;;;;EAmCF,4BAAA,YAGO;EAAP,OAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/types.ts"],"mappings":";;;;KAQY,mCAAA,IAAuC,IAAA,EAAM,IAAA;AAAA,KAE7C,oCAAA,IACV,IAAA,EAAM,IAAA,EACN,QAAA,EAAU,yBAAA;AAAA,KAGA,iCAAA,GAAoC,IAAA,CAC9C,0BAAA;EARU,6GAYV,2BAAA;IACE,YAAA,GAAe,mCAAA;IACf,aAAA,GAAgB,mCAAA;IAChB,aAAA,GAAgB,oCAAA;EAAA;EAb4B;;;;;;;;;AAKhD;;;;;;;;;;;;;;;;EAoCE,mBAAA;EA5BE;;;;;EAmCF,4BAAA,YAGO;EAAP,OAAA;AAAA"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
require("./enums/EventNames.cjs");
|
|
4
4
|
let _opentelemetry_sdk_trace_web = require("@opentelemetry/sdk-trace-web");
|
|
5
|
-
|
|
6
5
|
//#region src/instrumentations/document-load/DocumentLoadInstrumentation/utils.ts
|
|
7
6
|
const getPerformanceNavigationEntries = () => {
|
|
8
7
|
const entries = {};
|
|
@@ -16,16 +15,16 @@ const getPerformanceNavigationEntries = () => {
|
|
|
16
15
|
return entries;
|
|
17
16
|
};
|
|
18
17
|
const performancePaintNames = {
|
|
19
|
-
"first-paint":
|
|
20
|
-
"first-contentful-paint":
|
|
18
|
+
"first-paint": "firstPaint",
|
|
19
|
+
"first-contentful-paint": "firstContentfulPaint"
|
|
21
20
|
};
|
|
22
21
|
const addSpanPerformancePaintEvents = (span) => {
|
|
23
22
|
window.performance.getEntriesByType("paint").forEach(({ name, startTime }) => {
|
|
24
23
|
if ((0, _opentelemetry_sdk_trace_web.hasKey)(performancePaintNames, name)) span.addEvent(performancePaintNames[name], startTime);
|
|
25
24
|
});
|
|
26
25
|
};
|
|
27
|
-
|
|
28
26
|
//#endregion
|
|
29
27
|
exports.addSpanPerformancePaintEvents = addSpanPerformancePaintEvents;
|
|
30
28
|
exports.getPerformanceNavigationEntries = getPerformanceNavigationEntries;
|
|
29
|
+
|
|
31
30
|
//# sourceMappingURL=utils.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":["PerformanceTimingNames"
|
|
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 { hasKey, PerformanceTimingNames } from '@opentelemetry/sdk-trace-web';\nimport { EventNames } from './enums/EventNames.ts';\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-paint': EventNames.FIRST_PAINT,\n 'first-contentful-paint': EventNames.FIRST_CONTENTFUL_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,eAAA;CACA,0BAAA;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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./enums/EventNames.js";
|
|
2
2
|
import { PerformanceTimingNames, hasKey } from "@opentelemetry/sdk-trace-web";
|
|
3
|
-
|
|
4
3
|
//#region src/instrumentations/document-load/DocumentLoadInstrumentation/utils.ts
|
|
5
4
|
const getPerformanceNavigationEntries = () => {
|
|
6
5
|
const entries = {};
|
|
@@ -14,15 +13,15 @@ const getPerformanceNavigationEntries = () => {
|
|
|
14
13
|
return entries;
|
|
15
14
|
};
|
|
16
15
|
const performancePaintNames = {
|
|
17
|
-
"first-paint":
|
|
18
|
-
"first-contentful-paint":
|
|
16
|
+
"first-paint": "firstPaint",
|
|
17
|
+
"first-contentful-paint": "firstContentfulPaint"
|
|
19
18
|
};
|
|
20
19
|
const addSpanPerformancePaintEvents = (span) => {
|
|
21
20
|
window.performance.getEntriesByType("paint").forEach(({ name, startTime }) => {
|
|
22
21
|
if (hasKey(performancePaintNames, name)) span.addEvent(performancePaintNames[name], startTime);
|
|
23
22
|
});
|
|
24
23
|
};
|
|
25
|
-
|
|
26
24
|
//#endregion
|
|
27
25
|
export { addSpanPerformancePaintEvents, getPerformanceNavigationEntries };
|
|
26
|
+
|
|
28
27
|
//# sourceMappingURL=utils.js.map
|
|
@@ -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 { hasKey, PerformanceTimingNames } from '@opentelemetry/sdk-trace-web';\nimport { EventNames } from './enums/EventNames.ts';\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-paint': EventNames.FIRST_PAINT,\n 'first-contentful-paint': EventNames.FIRST_CONTENTFUL_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":"
|
|
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 { hasKey, PerformanceTimingNames } from '@opentelemetry/sdk-trace-web';\nimport { EventNames } from './enums/EventNames.ts';\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-paint': EventNames.FIRST_PAINT,\n 'first-contentful-paint': EventNames.FIRST_CONTENTFUL_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,eAAA;CACA,0BAAA;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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const require_instrumentations_document_load_DocumentLoadInstrumentation_enums_AttributeNames = require(
|
|
3
|
-
const require_instrumentations_document_load_DocumentLoadInstrumentation_DocumentLoadInstrumentation = require(
|
|
4
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_instrumentations_document_load_DocumentLoadInstrumentation_enums_AttributeNames = require("./DocumentLoadInstrumentation/enums/AttributeNames.cjs");
|
|
3
|
+
const require_instrumentations_document_load_DocumentLoadInstrumentation_DocumentLoadInstrumentation = require("./DocumentLoadInstrumentation/DocumentLoadInstrumentation.cjs");
|
|
5
4
|
exports.AttributeNames = require_instrumentations_document_load_DocumentLoadInstrumentation_enums_AttributeNames.AttributeNames;
|
|
6
|
-
exports.DocumentLoadInstrumentation = require_instrumentations_document_load_DocumentLoadInstrumentation_DocumentLoadInstrumentation.DocumentLoadInstrumentation;
|
|
5
|
+
exports.DocumentLoadInstrumentation = require_instrumentations_document_load_DocumentLoadInstrumentation_DocumentLoadInstrumentation.DocumentLoadInstrumentation;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { DocumentLoadCustomAttributeFunction, DocumentLoadInstrumentationConfig, ResourceFetchCustomAttributeFunction } from "./DocumentLoadInstrumentation/types.js";
|
|
2
2
|
import { DocumentLoadInstrumentation } from "./DocumentLoadInstrumentation/DocumentLoadInstrumentation.js";
|
|
3
3
|
import { AttributeNames } from "./DocumentLoadInstrumentation/enums/AttributeNames.js";
|
|
4
|
-
import "./DocumentLoadInstrumentation/index.js";
|
|
5
4
|
export { AttributeNames, type DocumentLoadCustomAttributeFunction, DocumentLoadInstrumentation, type DocumentLoadInstrumentationConfig, type ResourceFetchCustomAttributeFunction };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { AttributeNames } from "./DocumentLoadInstrumentation/enums/AttributeNames.js";
|
|
2
2
|
import { DocumentLoadInstrumentation } from "./DocumentLoadInstrumentation/DocumentLoadInstrumentation.js";
|
|
3
|
-
|
|
4
|
-
export { AttributeNames, DocumentLoadInstrumentation };
|
|
3
|
+
export { AttributeNames, DocumentLoadInstrumentation };
|