255 lines
8.7 KiB
JavaScript
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
});
|