Files
discord-decomp/_bundle/addPreviousTraceSpanLink.js
T
2026-11-01 12:12:55 +02:00

151 lines
5.3 KiB
JavaScript

// 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 };