decord/source/933__addTracingHeadersToFetchRequest.js
2026-08-04 21:03:28 +00:00

368 lines
13 KiB
JavaScript

// Module ID: 933
// Function ID: 934
// Name: _addTracingHeadersToFetchRequest
// Dependencies: [855, 819, 866, 856, 848, 904, 827, 840, 835, 900, 839]
// Module 933 (_addTracingHeadersToFetchRequest)
const require = arg1;
const dependencyMap = arg6;
function _addTracingHeadersToFetchRequest(headers, headers2, span, propagateTraceparent) {
let baggage;
let tmp5;
let traceparent;
let tmp = propagateTraceparent;
let obj = require(904) /* getTraceData */;
obj = { span, propagateTraceparent };
const traceData = obj.getTraceData(obj);
({ sentry-trace: tmp5, baggage, traceparent } = traceData);
if (tmp5) {
headers = headers2.headers;
if (!headers) {
let tmp2Result = tmp2(827);
let headers1;
if (tmp2Result.isRequest(headers)) {
headers1 = headers.headers;
}
headers = headers1;
}
if (headers) {
const _Headers = Headers;
let isInstanceOfResult = typeof Headers !== "undefined";
if (typeof Headers !== "undefined") {
tmp2Result = tmp2(827);
const _Headers3 = Headers;
isInstanceOfResult = tmp2Result.isInstanceOf(headers, Headers);
}
if (isInstanceOfResult) {
const _Headers2 = Headers;
headers2 = new Headers(headers);
if (!headers2.get("sentry-trace")) {
const result = headers2.set("sentry-trace", tmp5);
}
if (tmp) {
tmp = traceparent;
}
if (tmp) {
tmp = !headers2.get("traceparent");
}
if (tmp) {
const result1 = headers2.set("traceparent", traceparent);
}
if (baggage) {
const str10 = headers2.get("baggage");
if (str10) {
let parts = str10.split(",");
if (!parts.some((str) => {
const trimmed = str.trim();
return trimmed.startsWith(callback(table[8]).SENTRY_BAGGAGE_KEY_PREFIX);
})) {
const _HermesInternal = HermesInternal;
const result2 = headers2.set("baggage", "" + str10 + "," + baggage);
}
} else {
const result3 = headers2.set("baggage", baggage);
}
}
return headers2;
} else {
const _Array = Array;
if (Array.isArray(headers)) {
const items = [];
HermesBuiltin.arraySpread(headers, 0);
if (!headers.find((arg0) => "sentry-trace" === arg0[0])) {
const items1 = ["sentry-trace", tmp5];
items.push(items1);
}
let tmp34 = tmp;
if (tmp) {
tmp34 = traceparent;
}
if (tmp34) {
tmp34 = !headers.find((arg0) => "traceparent" === arg0[0]);
}
if (tmp34) {
const items2 = ["traceparent", traceparent];
items.push(items2);
}
let tmp36 = baggage;
if (baggage) {
tmp36 = !headers.find((arg0) => {
let someResult = "baggage" === arg0[0];
if (someResult) {
const parts = arg0[1].split(",");
someResult = parts.some((str) => {
const trimmed = str.trim();
return trimmed.startsWith(callback(table[8]).SENTRY_BAGGAGE_KEY_PREFIX);
});
const str = arg0[1];
}
return someResult;
});
}
if (tmp36) {
const items3 = ["baggage", baggage];
items.push(items3);
}
return items;
} else {
if ("sentry-trace" in headers) {
sentry_trace = headers["sentry-trace"];
}
if ("traceparent" in headers) {
const traceparent2 = headers.traceparent;
}
baggage = undefined;
if ("baggage" in headers) {
baggage = headers.baggage;
}
if (baggage) {
const _Array2 = Array;
if (Array.isArray(baggage)) {
const items4 = [];
HermesBuiltin.arraySpread(baggage, 0);
let items5 = items4;
} else {
items5 = [baggage];
}
} else {
const items6 = [];
if (!baggage) {
let tmp22 = baggage;
if (baggage) {
tmp22 = !baggage;
}
if (tmp22) {
items6.push(baggage);
}
obj = {};
const merged = Object.assign(headers);
if (sentry_trace == null) {
sentry_trace = tmp5;
}
obj["sentry-trace"] = sentry_trace;
let joined;
if (items6.length > 0) {
joined = items6.join(",");
}
obj.baggage = joined;
let tmp29 = tmp;
if (tmp) {
tmp29 = traceparent;
}
if (tmp29) {
tmp29 = !traceparent2;
}
if (tmp29) {
obj.traceparent = traceparent;
}
return obj;
} else {
const _Array3 = Array;
if (Array.isArray(baggage)) {
let found = baggage.find((str) => {
const parts = str.split(",");
return parts.some((str) => {
const trimmed = str.trim();
return trimmed.startsWith(callback(table[8]).SENTRY_BAGGAGE_KEY_PREFIX);
});
});
} else {
const parts1 = baggage.split(",");
found = parts1.some((str) => {
const trimmed = str.trim();
return trimmed.startsWith(callback(table[8]).SENTRY_BAGGAGE_KEY_PREFIX);
});
}
}
}
}
}
} else {
const obj1 = {};
const merged1 = Object.assign(traceData);
return obj1;
}
}
}
Object.defineProperty(arg5, Symbol.toStringTag, { value: "Module" });
arg5._addTracingHeadersToFetchRequest = _addTracingHeadersToFetchRequest;
arg5._callOnRequestSpanEnd = function _callOnRequestSpanEnd(arg0, response, obj) {
let onRequestSpanEnd;
if (typeof obj === "object") {
if (null !== obj) {
onRequestSpanEnd = obj.onRequestSpanEnd;
}
}
if (onRequestSpanEnd != null) {
response = response.response;
let headers;
if (response != null) {
headers = response.headers;
}
obj = { headers: null, error: null };
obj[0] = headers;
obj[1] = response.error;
onRequestSpanEnd(arg0, obj);
}
};
arg5.instrumentFetchRequest = function instrumentFetchRequest(fetchData, arg1, arg2, arg3, obj) {
let method;
let url;
if (fetchData.fetchData) {
({ method, url } = fetchData.fetchData);
obj = require(855) /* hasSpansEnabled */;
let hasSpansEnabledResult = obj.hasSpansEnabled();
if (hasSpansEnabledResult) {
hasSpansEnabledResult = arg1(url);
}
if (fetchData.endTimestamp) {
if (hasSpansEnabledResult) {
const __span = fetchData.fetchData.__span;
if (__span) {
if (arg3[__span]) {
if (fetchData.response) {
let tmp3Result = tmp3(840);
tmp3Result.setHttpStatus(obj20, fetchData.response.status);
const response = fetchData.response;
let value;
if (response != null) {
let headers = response.headers;
if (headers != null) {
value = headers.get("content-length");
}
}
if (value) {
const _parseInt = parseInt;
const parsed = parseInt(value);
if (parsed > 0) {
const attr = obj20.setAttribute("http.response_content_length", parsed);
}
}
} else if (fetchData.error) {
obj = { code: null, message: "internal_error" };
obj[0] = tmp3(840).SPAN_STATUS_ERROR;
obj20.setStatus(obj);
}
obj20.end();
let onRequestSpanEnd;
if (typeof obj === "object") {
if (null !== obj) {
onRequestSpanEnd = obj.onRequestSpanEnd;
}
}
if (onRequestSpanEnd != null) {
const response2 = fetchData.response;
headers = undefined;
if (response2 != null) {
headers = response2.headers;
}
obj = { headers: null, error: null };
obj[0] = headers;
obj[1] = fetchData.error;
onRequestSpanEnd(obj20, obj);
}
delete tmp2[tmp];
}
}
}
}
let tmp9 = obj;
if (typeof obj !== "object") {
const obj1 = { spanOrigin: null };
obj1[0] = obj;
tmp9 = obj1;
}
const spanOrigin = tmp9.spanOrigin;
let str = "auto.http.browser";
if (undefined !== spanOrigin) {
str = spanOrigin;
}
const propagateTraceparent = tmp9.propagateTraceparent;
tmp3Result = tmp3(819);
const activeSpan = tmp3Result.getActiveSpan();
if (hasSpansEnabledResult) {
if (activeSpan) {
const tmp3Result1 = tmp3(866);
let tmp3Result2 = tmp3(900);
if (startsWithResult) {
const obj2 = { name: null, attributes: null };
const _HermesInternal2 = HermesInternal;
obj2[0] = "" + method + " " + tmp3Result2.stripDataUrlContent(url);
const obj3 = { url: null, type: "fetch", "http.method": null };
tmp3Result2 = tmp3(900).stripDataUrlContent(url);
obj3[0] = tmp3Result2;
obj3[2] = method;
obj3[tmp3(839).SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] = str;
str = tmp3(839).SEMANTIC_ATTRIBUTE_SENTRY_OP;
method = "http.client";
obj3[str] = "http.client";
obj2[1] = obj3;
let obj4 = obj2;
const tmp3Result3 = tmp3(900);
} else {
const result = tmp3Result2.parseStringToURLObject(url);
let sanitizedUrlStringFromUrlObject = url;
if (result) {
sanitizedUrlStringFromUrlObject = tmp3(900).getSanitizedUrlStringFromUrlObject(result);
const tmp3Result4 = tmp3(900);
}
obj4 = { name: null, attributes: null };
const _HermesInternal = HermesInternal;
obj4[0] = "" + method + " " + sanitizedUrlStringFromUrlObject;
const obj5 = { url: null, type: "fetch", "http.method": null };
obj5[0] = tmp3(900).stripDataUrlContent(url);
obj5[2] = method;
obj5[tmp3(839).SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] = str;
obj5[tmp3(839).SEMANTIC_ATTRIBUTE_SENTRY_OP] = "http.client";
if (result) {
if (!tmp3Result6.isURLObjectRelative(result)) {
obj5["http.url"] = tmp3(900).stripDataUrlContent(result.href);
obj5["server.address"] = result.host;
const tmp3Result7 = tmp3(900);
}
if (result.search) {
obj5["http.query"] = result.search;
}
if (result.hash) {
obj5["http.fragment"] = result.hash;
}
tmp3Result6 = tmp3(900);
}
obj4[1] = obj5;
const tmp3Result5 = tmp3(900);
}
tmp3Result1.startInactiveSpan(obj4);
startsWithResult = url.startsWith("data:");
}
}
const sentryNonRecordingSpan = new tmp3(856).SentryNonRecordingSpan();
fetchData.fetchData.__span = sentryNonRecordingSpan.spanContext().spanId;
arg3[sentryNonRecordingSpan.spanContext().spanId] = sentryNonRecordingSpan;
if (arg2(fetchData.fetchData.url)) {
const first = fetchData.args[0];
const tmp23 = fetchData.args[1] || {};
const obj6 = {};
const merged = Object.assign(tmp23);
let tmp28;
if (tmp3Result8.hasSpansEnabled()) {
if (activeSpan) {
tmp28 = sentryNonRecordingSpan;
}
}
const tmp27Result = _addTracingHeadersToFetchRequest(first, obj6, tmp28, tmp10);
if (tmp27Result) {
fetchData.args[1] = obj6;
obj6.headers = tmp27Result;
}
const tmp27 = _addTracingHeadersToFetchRequest;
tmp3Result8 = tmp3(855);
}
const client = require(848) /* getClient */.getClient();
if (client) {
({ args: obj19[0], response: obj19[1], startTimestamp: obj19[2], endTimestamp: obj19[3] } = fetchData);
client.emit("beforeOutgoingRequestSpan", sentryNonRecordingSpan, { input: null, response: null, startTimestamp: null, endTimestamp: null });
const obj7 = { input: null, response: null, startTimestamp: null, endTimestamp: null };
}
return sentryNonRecordingSpan;
}
};