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

255 lines
8.7 KiB
JavaScript

// Metro module 1085 (f1086).
import { isSentryRequestUrl, getClient, addExceptionMechanism, defineIntegration, supportsNativeFetch, addFetchInstrumentationHandler, captureEvent, GLOBAL_OBJ, debug } from "./Module817";
import { addXhrInstrumentationHandler, SENTRY_XHR_DATA_KEY } from "./Module1033";
import { DEBUG_BUILD } from "./Module1072";
function $mk101675($env) {
return (a0) => {
let r0;
const r2 = $env;
if (typeof a0 === "number") {
r0 = a0 === r2[0];
} else {
const r5 = r2[0];
r0 = r5 >= a0[0] && r5 <= a0[1];
}
return r0;
};
}
function $mk101676($env) {
return (a0) => {
const r1 = $env;
return typeof a0 === "string" ? r1[0].includes(a0) : a0.test(r1[0]);
};
}
let _parseCookieString, _shouldCaptureResponse, _createEvent, _shouldSendDefaultPii;
const _parseCookieHeaders = function _parseCookieHeaders(a0, response) {
let r1 = void 0;
const r8 = (function _extractFetchHeaders(a0) {
const r0 = {};
let c24040_0 = r0;
a0.forEach((item, index) => {
c24040_0[index] = item;
});
return r0;
})(response.headers);
try {
const r9 = r8[a0] || r8[a0.toLowerCase()] || void 0;
if (r9) {
r1 = _parseCookieString(r9);
}
} catch ($e) {}
return [r8, r1];
};
_parseCookieString = function _parseCookieString(a0) {
return a0.split("; ").reduce((acc, item) => {
const [r10, r11] = item.split("=");
if (r10 && r11) {
acc[r10] = r11;
}
return acc;
}, {});
};
_shouldCaptureResponse = function _shouldCaptureResponse(a0, status, responseURL) {
let env12714;
const failedRequestStatusCodes = a0.failedRequestStatusCodes;
const r1 = env12714 = {};
env12714[0] = status;
let r9 = failedRequestStatusCodes.some($mk101675(r1));
if (r9) {
let env12715;
const failedRequestTargets = a0.failedRequestTargets;
const r11 = env12715 = {};
env12715[0] = responseURL;
r9 = failedRequestTargets.some($mk101676(r11));
}
if (r9) {
r9 = !isSentryRequestUrl(responseURL, getClient());
}
return r9;
};
_createEvent = function _createEvent(a0) {
const client = getClient();
const r8 = client ? a0.error ? a0.error instanceof Error ? a0.error.stack : void 0 : void 0 : void 0;
const frames = r8 ? client ? client.getOptions().stackParser(r8, 0, 1) : void 0 : void 0;
const value = `HTTP Client Error with status code: ${a0.status}`;
const r11 = {
type: "Error",
value,
stacktrace: frames ? {
frames
} : void 0
};
const responseHeaders = a0.responseHeaders;
let body_size = void 0;
if (responseHeaders) {
const r45 = responseHeaders["Content-Length"] || responseHeaders["content-length"];
body_size = r45 ? parseInt(r45, 10) : void 0;
}
const r29 = {
message: value,
exception: {
values: [r11]
},
request: {
url: a0.url,
method: a0.method,
headers: a0.requestHeaders,
cookies: a0.requestCookies
},
contexts: {
response: {
status_code: a0.status,
headers: a0.responseHeaders,
cookies: a0.responseCookies,
body_size
}
}
};
addExceptionMechanism(r29, {
type: `auto.http.client.${a0.type}`,
handled: false
});
return r29;
};
_shouldSendDefaultPii = function _shouldSendDefaultPii() {
const client = getClient();
return !!client && Boolean(client.getOptions().sendDefaultPii);
};
Object.defineProperty(exports, Symbol.toStringTag, {
value: "Module"
});
export const httpClientIntegration = defineIntegration(function(r3 = {}) {
let c12716_0 = {
failedRequestStatusCodes: [[500, 599]],
failedRequestTargets: [/.*/],
...r3
};
return {
name: "HttpClient",
setup: (a0) => {
let c24041_0 = a0;
let c24041_1 = c12716_0;
if (supportsNativeFetch()) {
addFetchInstrumentationHandler((a0) => {
if (getClient() === c24041_0) {
const { response, args } = a0;
let error = a0.error;
const virtualError = a0.virtualError;
const [r10, r28] = args;
if (response) {
if (!error) {
error = virtualError;
}
let env31189;
const { status, url } = response;
const failedRequestStatusCodes = c24041_1.failedRequestStatusCodes;
const r30 = env31189 = {};
env31189[0] = status;
let r33 = failedRequestStatusCodes.some($mk101675(r30));
if (r33) {
let env31190;
const failedRequestTargets = c24041_1.failedRequestTargets;
const r35 = env31190 = {};
env31190[0] = url;
r33 = failedRequestTargets.some($mk101676(r35));
}
if (r33) {
r33 = !isSentryRequestUrl(url, getClient());
}
if (r33) {
const r47 = r28 ? r10 instanceof Request ? r10.bodyUsed ? r10 : new Request(r10, r28) : new Request(r10, r28) : r10 instanceof Request ? r10 : r10 instanceof Request ? r10.bodyUsed ? r10 : new Request(r10, r28) : new Request(r10, r28);
const client = getClient();
const r60 = !!client && Boolean(client.getOptions().sendDefaultPii);
let responseCookies = void 0;
let requestCookies = void 0;
let responseHeaders = void 0;
let requestHeaders = void 0;
if (r60) {
[requestHeaders, requestCookies] = _parseCookieHeaders("Cookie", r47);
[responseHeaders, responseCookies] = _parseCookieHeaders("Set-Cookie", response);
}
captureEvent(_createEvent({
url: r47.url,
method: r47.method,
status: response.status,
requestHeaders,
responseHeaders,
requestCookies,
responseCookies,
error,
type: "fetch"
}));
}
}
}
}, false);
}
let c24042_0 = a0;
let c24042_1 = c12716_0;
if ("XMLHttpRequest" in GLOBAL_OBJ) {
addXhrInstrumentationHandler((a0) => {
if (getClient() === c24042_0) {
let error = a0.error;
const { virtualError, xhr } = a0;
const r23 = xhr[SENTRY_XHR_DATA_KEY];
if (r23) {
const { method, request_headers } = r23;
try {
if (!error) {
error = virtualError;
}
(function _xhrResponseHandler(a0, a1, a2, a3, a4) {
let responseCookies = void 0;
let responseHeaders = void 0;
if (_shouldCaptureResponse(a0, a1.status, a1.responseURL)) {
const r13 = _shouldSendDefaultPii();
let requestHeaders = void 0;
if (r13) {
try {
const r17 = a1.getResponseHeader("Set-Cookie") || a1.getResponseHeader("set-cookie") || void 0;
if (r17) {
responseCookies = _parseCookieString(r17);
}
} catch ($e) {}
try {
responseHeaders = (function _getXHRResponseHeaders(a0) {
const allResponseHeaders = a0.getAllResponseHeaders();
if (allResponseHeaders) {
return allResponseHeaders.split("\r\n").reduce((acc, item) => {
const [r10, r11] = item.split(": ");
if (r10 && r11) {
acc[r10] = r11;
}
return acc;
}, {});
}
return {};
})(a1);
} catch ($e) {}
requestHeaders = a3;
}
captureEvent(_createEvent({
url: a1.responseURL,
method: a2,
status: a1.status,
requestHeaders,
responseHeaders,
responseCookies,
error: a4,
type: "xhr"
}));
}
})(c24042_1, xhr, method, request_headers, error);
} catch (r29) {
if (DEBUG_BUILD) {
debug.warn("Error while extracting response event form XHR response", r29);
}
}
}
}
});
}
}
};
});