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

346 lines
9.1 KiB
JavaScript

// Metro module 6449 (f6450).
import { stripUrlQueryAndFragment } from "./Module6450";
import { ipHeaderNames, getClientIPAddress } from "./Module6451";
import { parseCookie } from "./Module6452";
import { isString, isPlainObject } from "./isInstanceOf_6375";
import { normalize } from "./normalize_6413";
import { truncate } from "./Module6377";
import { DEBUG_BUILD } from "./Module6367";
import { logger } from "./consoleSandbox_6368";
import { dropUndefinedKeys } from "./addNonEnumerableProperty_6374";
function $mk78633($env) {
return (a0) => {
const r2 = $env;
const r1 = r2[0];
if (r1 && a0 in r1) {
r2[1][a0] = r1[a0];
}
};
}
let c4148_2, _excluded, _excluded2, winterCGHeadersToDict, headersToDict, extractQueryParamsFromUrl;
const extractRequestData = function extractRequestData(a0) {
let r9;
let c15742_0 = a0;
let r1 = arguments[1];
if (r1 === void 0) {
r1 = {};
}
let include = r1.include;
if (include === void 0) {
include = _excluded;
}
let c15742_1 = include;
const r17 = {};
let c15742_2 = r17;
const headers = a0.headers || {};
const method = a0.method;
const r10 = headers.host || a0.hostname || a0.host || "<no host>";
L16: {
if (a0.protocol !== "https") {
const socket = a0.socket;
r9 = "http";
if (!socket) {
break L16;
}
r9 = a0.socket.encrypted ? "https" : "http";
} else {
r9 = "https";
}
}
const r23 = a0.originalUrl || a0.url || "";
const r25 = r23.startsWith(r9);
const url = r25 ? r23 : `${r9}://${r10}${r23}`;
include.forEach((item) => {
if (item === "headers") {
c15742_2.headers = headers;
if (!c15742_1.includes("cookies")) {
delete c15742_2.headers["cookie"];
}
if (!c15742_1.includes("ip")) {
ipHeaderNames.forEach((ipHeaderName) => {
delete c15742_2.headers[ipHeaderName];
});
}
} else if (item === "method") {
c15742_2.method = method;
} else if (item === "url") {
c15742_2.url = url;
} else if (item === "cookies") {
c15742_2.cookies = c15742_0.cookies || headers.cookie && parseCookie(headers.cookie) || {};
} else if (item === "query_string") {
c15742_2.query_string = (function extractQueryParams(a0) {
let r25;
const r6 = a0.originalUrl || a0.url || "";
if (r6) {
const r5 = r6.startsWith("/") ? `http://dogs.are.great${r6}` : r6;
try {
const r14 = a0.query || new URL(r5).search.slice(1);
r25 = r14.length ? r14 : void 0;
} catch ($e) {
return void 0;
}
return r25;
}
})(c15742_0);
} else if (item === "data") {
if (method !== "GET" && method !== "HEAD") {
const body = c15742_0.body;
if (body !== void 0) {
const data = isString(body) ? body : isPlainObject(body) ? JSON.stringify(normalize(body)) : truncate(`${body}`, 1024);
if (data) {
c15742_2.data = data;
}
}
}
} else {
const hasOwnProperty = ({}).hasOwnProperty;
if (hasOwnProperty.call(c15742_0, item)) {
c15742_2[item] = c15742_0[item];
}
}
});
return r17;
};
winterCGHeadersToDict = function winterCGHeadersToDict(headers) {
const r0 = {};
let c15743_0 = r0;
try {
headers.forEach((item, index) => {
if (typeof item === "string") {
c15743_0[index] = item;
}
});
} catch ($e) {
if (DEBUG_BUILD) {
logger.warn("Sentry failed extracting headers from a request object. If you see this, please file an issue.");
}
}
return r0;
};
headersToDict = function headersToDict(a0) {
const r5 = Object.create(null);
let c15744_0 = r5;
try {
Object.entries(a0).forEach((item) => {
const [r13, r14] = item;
if (typeof r14 === "string") {
c15744_0[r13] = r14;
}
});
} catch ($e) {
if (DEBUG_BUILD) {
logger.warn("Sentry failed extracting headers from a request object. If you see this, please file an issue.");
}
}
return r5;
};
extractQueryParamsFromUrl = function extractQueryParamsFromUrl(url) {
let r17;
if (url) {
try {
const r14 = new URL(url, "http://dogs.are.great").search.slice(1);
r17 = r14.length ? r14 : void 0;
} catch ($e) {
return void 0;
}
return r17;
}
};
c4148_2 = {
ip: false,
request: true,
user: true
};
_excluded = ["cookies", "data", "headers", "method", "query_string", "url"];
_excluded2 = ["id", "username", "email"];
export { _excluded2 as DEFAULT_USER_INCLUDES };
export function addNormalizedRequestDataToEvent(a0, a1, a2, a3) {
let r110;
const r4 = {
...c4148_2,
...a3 ? a3.include : a3
};
if (r4.request) {
const r12 = Array.isArray(r4.request) ? [...r4.request] : [..._excluded];
if (r4.ip) {
r12.push("ip");
}
const r39 = Array.isArray(r12) ? r12 : _excluded;
const r41 = {};
const headers2 = {
...a1.headers
};
let c15745_0 = headers2;
if (r39.includes("headers")) {
r41.headers = headers2;
if (!r12.includes("cookies")) {
delete headers2["cookie"];
}
if (!r12.includes("ip")) {
ipHeaderNames.forEach((ipHeaderName) => {
delete c15745_0[ipHeaderName];
});
}
}
if (r39.includes("method")) {
r41.method = a1.method;
}
if (r39.includes("url")) {
r41.url = a1.url;
}
if (r39.includes("cookies")) {
r41.cookies = a1.cookies || (headers2.cookie ? parseCookie(headers2.cookie) : void 0) || {};
}
if (r39.includes("query_string")) {
r41.query_string = a1.query_string;
}
if (r39.includes("data")) {
r41.data = a1.data;
}
a0.request = {
...a0.request,
...r41
};
}
if (r4.user) {
if (a2.user && isPlainObject(a2.user)) {
let env15746;
const user = a2.user;
let user2 = r4.user;
const r113 = env15746 = {};
env15746[0] = user;
const r114 = {};
env15746[1] = r114;
if (!Array.isArray(user2)) {
user2 = _excluded2;
}
user2.forEach($mk78633(r113));
r110 = r114;
} else {
r110 = {};
}
if (Object.keys(r110).length) {
a0.user = {
...r110,
...a0.user
};
}
}
if (r4.ip) {
const ip_address = a1.headers && getClientIPAddress(a1.headers) || a2.ipAddress;
if (ip_address) {
a0.user = {
...a0.user,
ip_address
};
}
}
}
export function addRequestDataToEvent(a0, a1, a2) {
let r57;
const r4 = {
...c4148_2,
...a2 ? a2.include : a2
};
if (r4.request) {
const include = Array.isArray(r4.request) ? [...r4.request] : [..._excluded];
if (r4.ip) {
include.push("ip");
}
a0.request = {
...a0.request,
...extractRequestData(a1, {
include
})
};
}
if (r4.user) {
if (a1.user && isPlainObject(a1.user)) {
let env15747;
const user2 = a1.user;
let user = r4.user;
const r59 = env15747 = {};
env15747[0] = user2;
const r60 = {};
env15747[1] = r60;
if (!Array.isArray(user)) {
user = _excluded2;
}
user.forEach($mk78633(r59));
r57 = r60;
} else {
r57 = {};
}
if (Object.keys(r57).length) {
a0.user = {
...a0.user,
...r57
};
}
}
if (r4.ip) {
const ip_address = a1.headers && getClientIPAddress(a1.headers) || a1.ip || a1.socket && a1.socket.remoteAddress;
if (ip_address) {
a0.user = {
...a0.user,
ip_address
};
}
}
return a0;
}
export function extractPathForTransaction(a0, r3 = {}) {
let r13, r14;
const r1 = a0.method && a0.method.toUpperCase();
L21: {
if (!r3.customRoute && !a0.route) {
const r5 = a0.originalUrl || a0.url;
r13 = "url";
r14 = "";
if (!r5) {
break L21;
}
r14 = stripUrlQueryAndFragment(a0.originalUrl || a0.url || "");
r13 = "url";
} else {
const r20 = r3.customRoute || `${a0.baseUrl || ""}${a0.route && a0.route.path}`;
r13 = "route";
r14 = r20;
}
}
const r29 = r3.method && r1 ? "" + r1 : "";
const r31 = r3.method && r3.path ? r29 + " " : r29;
return [r3.path && r14 ? r31 + r14 : r31, r13];
}
export { extractQueryParamsFromUrl };
export { extractRequestData };
export { headersToDict };
export function httpRequestToRequestData(a0) {
const r7 = a0.headers || {};
const r5 = r7.host || "<no host>";
const r4 = a0.socket ? a0.socket.encrypted ? "https" : "http" : "http";
const r18 = a0.url || "";
const r20 = r18.startsWith(r4);
const url2 = r20 ? r18 : `${r4}://${r5}${r18}`;
const data = a0.body || void 0;
const cookies = a0.cookies;
return dropUndefinedKeys({
url: url2,
method: a0.method,
query_string: extractQueryParamsFromUrl(r18),
headers: headersToDict(r7),
cookies,
data
});
}
export { winterCGHeadersToDict };
export function winterCGRequestToRequestData(a0) {
const headers2 = winterCGHeadersToDict(a0.headers);
return {
method: a0.method,
url: a0.url,
query_string: extractQueryParamsFromUrl(a0.url),
headers: headers2
};
}