// Metro module 1093 (f1094). import "./Module1033"; import "./extractSafariExtensionDetails"; import "./Module1077"; import "./Module1076"; import "./Module1081"; import "./Module1078"; import "./Module1080"; import "./Module1079"; import "./Module1094"; import { spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, debug, SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE, getRootSpan, getCurrentScope, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE } from "./Module817"; import { DEBUG_BUILD } from "./Module1072"; import { WINDOW } from "./ignoreNextOnError"; let c903_2, c903_3, storePreviousTraceInSessionStorage, getPreviousTraceFromSessionStorage; const addPreviousTraceSpanLink = function addPreviousTraceSpanLink(previousTraceFromSessionStorage, a1, a2) { const r16 = spanToJSON(a1); let c12788_1 = r16; const r28 = { spanContext: a1.spanContext(), startTimestamp: r16.start_timestamp, sampleRate: (function getSampleRate() { let r9; try { r9 = Number(a2.dsc?.sample_rate); if (r9 == null) { const r10 = Number; const data = c12788_1.data; r9 = r10(data == null ? void 0 : data[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]); } } catch ($e) { return 0; } return r9; })(), sampleRand: a2.sampleRand }; if (previousTraceFromSessionStorage) { const spanContext = previousTraceFromSessionStorage.spanContext; const traceId = spanContext.traceId; const trace_id = r16.trace_id; let r35 = previousTraceFromSessionStorage; if (traceId !== trace_id) { const r1 = Date.now() / 1000 - previousTraceFromSessionStorage.startTimestamp; r35 = r28; if (r1 <= 3600) { if (DEBUG_BUILD) { debug.log(`Adding previous_trace \`${JSON.stringify(spanContext)}\` link to span \`${JSON.stringify({ op: r16.op, ...a1.spanContext() })}\``); } const addLink = a1.addLink; const attributes = {}; attributes[SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE] = "previous_trace"; addLink.call(a1, { context: spanContext, attributes }); a1.setAttribute.call(a1, c903_3, `${spanContext.traceId}-${spanContext.spanId}-${spanContext.traceFlags === 1 ? 1 : 0}`); r35 = r28; } } return r35; } return r28; }; storePreviousTraceInSessionStorage = function storePreviousTraceInSessionStorage(a0) { try { WINDOW.sessionStorage.setItem(c903_2, JSON.stringify(a0)); } catch (r18) { if (DEBUG_BUILD) { debug.warn("Could not store previous trace in sessionStorage", r18); } } }; getPreviousTraceFromSessionStorage = function getPreviousTraceFromSessionStorage() { let r15; try { let r2 = void 0; const sessionStorage = WINDOW.sessionStorage; if (sessionStorage != null) { r2 = sessionStorage.getItem(c903_2); } r15 = JSON.parse(r2); } catch ($e) { return void 0; } return r15; }; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); c903_2 = "sentry_previous_trace"; c903_3 = "sentry.previous_trace"; export const PREVIOUS_TRACE_KEY = "sentry_previous_trace"; export const PREVIOUS_TRACE_MAX_DURATION = 3600; export const PREVIOUS_TRACE_TMP_SPAN_ATTRIBUTE = "sentry.previous_trace"; export { addPreviousTraceSpanLink }; export { getPreviousTraceFromSessionStorage }; export function linkTraces(a0, { linkPreviousTrace, consistentTraceSampling }) { let c12789_2; c12789_2 = void 0; const r1 = linkPreviousTrace === "session-storage"; let c12789_0 = r1; let previousTraceFromSessionStorage = r1 ? getPreviousTraceFromSessionStorage() : void 0; a0.on("spanStart", (a0) => { if (getRootSpan(a0) === a0) { const r19 = addPreviousTraceSpanLink(previousTraceFromSessionStorage, a0, getCurrentScope().getPropagationContext()); previousTraceFromSessionStorage = r19; if (c12789_0) { storePreviousTraceInSessionStorage(r19); } } }); c12789_2 = true; if (consistentTraceSampling) { a0.on("beforeSampling", (a0) => { L5: { if (previousTraceFromSessionStorage) { const currentScope = getCurrentScope(); const propagationContext = currentScope.getPropagationContext(); if (c12789_2 && propagationContext.parentSpanId) { c12789_2 = false; break L5; } currentScope.setPropagationContext({ ...propagationContext, dsc: { ...propagationContext.dsc, sample_rate: String(previousTraceFromSessionStorage.sampleRate), sampled: String(previousTraceFromSessionStorage.spanContext.traceFlags === 1) }, sampleRand: previousTraceFromSessionStorage.sampleRand }); a0.parentSampled = previousTraceFromSessionStorage.spanContext.traceFlags === 1; a0.parentSampleRate = previousTraceFromSessionStorage.sampleRate; const spanAttributes = { ...a0.spanAttributes }; spanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE] = previousTraceFromSessionStorage.sampleRate; a0.spanAttributes = spanAttributes; } } }); } } export function spanContextSampled(a0) { return a0.traceFlags === 1; } export { storePreviousTraceInSessionStorage };