/* Metro module 941; source: unknown; dependencies: [77, 65, 863, 828, 874, 864, 857, 912, 836, 849, 844, 908, 848] */ function _fun10003(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#10003, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1068:6, offset: 0x00d79061, size: 161 bytes, params: 8, frame: 20 const env0_0 = require; const closure = function(a0, a1, a2) { var r3; var property; var value = undefined; r3 = typeof a2 !== 'object' || a2 === null ? value : a2.onRequestSpanEnd; if (r3 != null) { property = a1.response; r3(a0, {headers: property == null ? value : property.headers, error: a1.error}); } return value; }; const closure2 = _addTracingHeadersToFetchRequest; const baggageHeaderHasSentryBaggageValues = function(a0) { return a0.split(',').some(_fun10011); }; const env0_2 = require(77) /* metro dependency 77 */; const env0_3 = require(65) /* metro dependency 65 */; const Object = global.Object; const defineProperty = Object.defineProperty; const Symbol = global.Symbol; Reflect.apply(defineProperty, Object, [exports, Symbol.toStringTag, {value: 'Module'}]); exports._addTracingHeadersToFetchRequest = closure2; exports._callOnRequestSpanEnd = closure; exports.instrumentFetchRequest = instrumentFetchRequest; } function _addTracingHeadersToFetchRequest(a0, a1, a2, a3) { // fn#10005, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1068:231, offset: 0x00d7915b, size: 884 bytes, params: 5, frame: 27 var headers; var r8; var r0; var r14; var traceparent; var baggage; var r16; var r10; var r3; var moduleValue2; var Object; var assign; var value5; var moduleValue3; var Array; var value11; var value12; let value = a3; const value3 = undefined; const moduleValue = require(912) /* metro dependency 912 */; const getTraceData = moduleValue.getTraceData; let object2 = {span: a2, propagateTraceparent: value}; const value4 = Reflect.apply(getTraceData, moduleValue, [object2]); const property = value4['sentry-trace']; const baggage2 = value4.baggage; const traceparent2 = value4.traceparent; if (property) { headers = a1.headers; if (headers) { r8 = headers; } else { moduleValue2 = require(836) /* metro dependency 836 */; r8 = moduleValue2.isRequest(a0) ? a0.headers : value3; } if (r8) { value5 = typeof global.Headers !== 'undefined'; if (value5) { moduleValue3 = require(836) /* metro dependency 836 */; r0 = moduleValue3.isInstanceOf(r8, global.Headers); } else { r0 = value5; } if (r0) { headers = new global.Headers(); if (!headers.get('sentry-trace')) { headers.set('sentry-trace', property); } r3 = value && traceparent2; r3 = r3 && !headers.get('traceparent'); if (r3) { headers.set('traceparent', traceparent2); } if (baggage2) { value = headers.get('baggage'); if (value) { if (!baggageHeaderHasSentryBaggageValues(value)) { headers.set('baggage', '' + value + ',' + baggage2); } } else { headers.set('baggage', baggage2); } } return headers; } Array = global.Array; if (Array.isArray(r8)) { value12 = env0_3(r8); if (!r8.find(function(a0) { return a0[0] === 'sentry-trace'; })) { value12.push(['sentry-trace', property]); } r10 = value && traceparent2; r10 = r10 && !r8.find(_fun10007); if (r10) { value12.push(['traceparent', traceparent2]); } value = r8.find(_fun10008); if (baggage2 && !value) { value12.push(['baggage', baggage2]); } return value12; } r14 = 'sentry-trace' in r8 ? r8['sentry-trace'] : value3; traceparent = 'traceparent' in r8 ? r8.traceparent : value3; baggage = 'baggage' in r8 ? r8.baggage : value3; r16 = baggage ? global.Array.isArray(baggage) ? env0_3(baggage) : [baggage] : []; r10 = baggage && (global.Array.isArray(baggage) ? baggage.find(_fun10009) : baggageHeaderHasSentryBaggageValues(baggage)); r0 = baggage2 && !r10; if (r0) { r16.push(baggage2); } Object = global.Object; assign = Object.assign; object2 = {}; r0 = r14 ?? property; object2['sentry-trace'] = r0; r0 = r16.length > 0 ? r16.join(',') : value3; object2.baggage = r0; value11 = Reflect.apply(assign, Object, [{}, r8, object2]); r10 = value && traceparent2; r10 = r10 && !traceparent; if (r10) { value11.traceparent = traceparent2; } return value11; } Object = global.Object; return Object.assign({}, value4); } return value3; } function baggageHeaderHasSentryBaggageValues(a0) { // fn#10010, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1068:1596, offset: 0x00d79533, size: 37 bytes, params: 2, frame: 11 return a0.split(',').some(function(a0) { return a0.trim().startsWith(require(dependencyMap[10]).SENTRY_BAGGAGE_KEY_PREFIX); }); } function getFetchSpanAttributes(a0, a1, a2, a3) { // fn#10012, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1068:1748, offset: 0x00d79591, size: 255 bytes, params: 5, frame: 21 var moduleValue2; var value; const binding = env0_2; const object2 = {}; object2.url = (require(908) /* metro dependency 908 */).stripDataUrlContent(a0); object2.type = 'fetch'; object2['http.method'] = a2; const SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = (require(848) /* metro dependency 848 */).SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN; const value2 = binding(object2, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, a3); const SEMANTIC_ATTRIBUTE_SENTRY_OP = (require(848) /* metro dependency 848 */).SEMANTIC_ATTRIBUTE_SENTRY_OP; const value3 = binding(value2, SEMANTIC_ATTRIBUTE_SENTRY_OP, 'http.client'); if (a1) { moduleValue2 = require(908) /* metro dependency 908 */; if (!moduleValue2.isURLObjectRelative(a1)) { value = require(908) /* metro dependency 908 */; value3['http.url'] = value.stripDataUrlContent(a1.href); value3['server.address'] = a1.host; } if (a1.search) { value3['http.query'] = a1.search; } if (a1.hash) { value3['http.fragment'] = a1.hash; } } return value3; } function instrumentFetchRequest(a0, a1, a2, a3, a4) { // fn#10013, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1068:2364, offset: 0x00d79690, size: 1075 bytes, params: 6, frame: 31 var r0; var r3; var r10; var r11; var r19; var r8; var method; var url; var value3; var object2; var spanOrigin; var propagateTraceparent; var moduleValue2; var startInactiveSpan; var value5; var moduleValue3; var stringToURLObject; const SentryNonRecordingSpan = (require(864) /* metro dependency 864 */).SentryNonRecordingSpan; var sentryNonRecordingSpan; var spanContext; var spanId; var args; var property; var Object; var assign; var value11; var _addTracingHeadersToFetchRequestBinding; var moduleValue5; var response; var __span; var setStatus; var moduleValue6; var setHttpStatus; var int; let value = a4; let fetchData = a0.fetchData; if (fetchData) { fetchData = a0.fetchData; method = fetchData.method; url = fetchData.url; value3 = undefined; r0 = (require(863) /* metro dependency 863 */).hasSpansEnabled() && a1(url); if (a0.endTimestamp) { if (r0) { __span = a0.fetchData.__span; if (__span) { property = a3[__span]; if (property) { response = a0.response; if (response) { moduleValue6 = require(849) /* metro dependency 849 */; setHttpStatus = moduleValue6.setHttpStatus; response = a0.response; Reflect.apply(setHttpStatus, moduleValue6, [property, response.status]); response = a0.response; r8 = response == null || response.headers == null ? value3 : response.headers.get('content-length'); if (r8) { int = global.parseInt(r8); if (int > 0) { property.setAttribute('http.response_content_length', int); } } } else if (a0.error) { setStatus = property.setStatus; object2 = {}; object2.code = (require(849) /* metro dependency 849 */).SPAN_STATUS_ERROR; object2.message = 'internal_error'; Reflect.apply(setStatus, property, [object2]); } property.end(); _callOnRequestSpanEnd(property, a0, value); delete a3[__span]; } return undefined; } return value3; } r3 = typeof value === 'object' ? value : {spanOrigin: value}; spanOrigin = r3.spanOrigin; value = 'auto.http.browser'; r10 = value3 === spanOrigin ? value : spanOrigin; propagateTraceparent = r3.propagateTraceparent; value = value3 !== propagateTraceparent; r11 = value && propagateTraceparent; value = require(828) /* metro dependency 828 */; value = value.getActiveSpan(); if (r0) { if (value) { moduleValue2 = require(874) /* metro dependency 874 */; startInactiveSpan = moduleValue2.startInactiveSpan; value5 = url.startsWith('data:'); moduleValue3 = require(908) /* metro dependency 908 */; if (value5) { object2 = {}; object2.name = '' + method + ' ' + moduleValue3.stripDataUrlContent(url); object2.attributes = getFetchSpanAttributes(url, value3, method, r10); r0 = object2; } else { stringToURLObject = moduleValue3.parseStringToURLObject(url); r19 = stringToURLObject ? (require(908) /* metro dependency 908 */).getSanitizedUrlStringFromUrlObject(stringToURLObject) : url; object2 = {}; object2.name = '' + method + ' ' + r19; object2.attributes = getFetchSpanAttributes(url, stringToURLObject, method, r10); r0 = object2; } r0 = Reflect.apply(startInactiveSpan, moduleValue2, [r0]); } else { sentryNonRecordingSpan = new SentryNonRecordingSpan(); } } else { sentryNonRecordingSpan = new SentryNonRecordingSpan(); } fetchData = a0.fetchData; spanContext = r0.spanContext; spanId = Reflect.apply(spanContext, r0, []).spanId; fetchData.__span = spanId; spanContext = r0.spanContext; spanId = Reflect.apply(spanContext, r0, []).spanId; a3[spanId] = r0; fetchData = a0.fetchData; url = fetchData.url; if (a2(url)) { args = a0.args; property = args[0]; Object = global.Object; assign = Object.assign; args = a0.args; value11 = Reflect.apply(assign, Object, [{}, args[1] || ({})]); _addTracingHeadersToFetchRequestBinding = _addTracingHeadersToFetchRequest; moduleValue5 = require(863) /* metro dependency 863 */; value = _addTracingHeadersToFetchRequestBinding(property, value11, moduleValue5.hasSpansEnabled() && value ? r0 : value3, r11); if (value) { a0.args[1] = value11; value11.headers = value; } } value = require(857) /* metro dependency 857 */; value = value.getClient(); if (value) { value.emit('beforeOutgoingRequestSpan', r0, {input: a0.args, response: a0.response, startTimestamp: a0.startTimestamp, endTimestamp: a0.endTimestamp}); } return r0; } r3 = typeof value === 'object' ? value : {spanOrigin: value}; spanOrigin = r3.spanOrigin; value = 'auto.http.browser'; r10 = value3 === spanOrigin ? value : spanOrigin; propagateTraceparent = r3.propagateTraceparent; value = value3 !== propagateTraceparent; r11 = value && propagateTraceparent; value = require(828) /* metro dependency 828 */; value = value.getActiveSpan(); if (r0) { if (value) { moduleValue2 = require(874) /* metro dependency 874 */; startInactiveSpan = moduleValue2.startInactiveSpan; value5 = url.startsWith('data:'); moduleValue3 = require(908) /* metro dependency 908 */; if (value5) { object2 = {}; object2.name = '' + method + ' ' + moduleValue3.stripDataUrlContent(url); object2.attributes = getFetchSpanAttributes(url, value3, method, r10); r0 = object2; } else { stringToURLObject = moduleValue3.parseStringToURLObject(url); r19 = stringToURLObject ? (require(908) /* metro dependency 908 */).getSanitizedUrlStringFromUrlObject(stringToURLObject) : url; object2 = {}; object2.name = '' + method + ' ' + r19; object2.attributes = getFetchSpanAttributes(url, stringToURLObject, method, r10); r0 = object2; } r0 = Reflect.apply(startInactiveSpan, moduleValue2, [r0]); } else { sentryNonRecordingSpan = new SentryNonRecordingSpan(); } } else { sentryNonRecordingSpan = new SentryNonRecordingSpan(); } fetchData = a0.fetchData; spanContext = r0.spanContext; spanId = Reflect.apply(spanContext, r0, []).spanId; fetchData.__span = spanId; spanContext = r0.spanContext; spanId = Reflect.apply(spanContext, r0, []).spanId; a3[spanId] = r0; fetchData = a0.fetchData; url = fetchData.url; if (a2(url)) { args = a0.args; property = args[0]; Object = global.Object; assign = Object.assign; args = a0.args; value11 = Reflect.apply(assign, Object, [{}, args[1] || ({})]); _addTracingHeadersToFetchRequestBinding = _addTracingHeadersToFetchRequest; moduleValue5 = require(863) /* metro dependency 863 */; value = _addTracingHeadersToFetchRequestBinding(property, value11, moduleValue5.hasSpansEnabled() && value ? r0 : value3, r11); if (value) { a0.args[1] = value11; value11.headers = value; } } value = require(857) /* metro dependency 857 */; value = value.getClient(); if (value) { value.emit('beforeOutgoingRequestSpan', r0, {input: a0.args, response: a0.response, startTimestamp: a0.startTimestamp, endTimestamp: a0.endTimestamp}); } return r0; } } function _fun10007(a0) { // fn#10007, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1068:930, offset: 0x00d794e2, size: 19 bytes, params: 2, frame: 2 return a0[0] === 'traceparent'; } function _fun10008(a0) { // fn#10008, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1068:1013, offset: 0x00d794f5, size: 43 bytes, params: 2, frame: 12 var r0; let value = a0[0] === 'baggage'; if (value) { value = environment.__proto__; value = baggageHeaderHasSentryBaggageValues(a0[1]); r0 = value; } else { r0 = value; } return r0; } function _fun10009(a0) { // fn#10009, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1068:1320, offset: 0x00d79520, size: 19 bytes, params: 2, frame: 11 return baggageHeaderHasSentryBaggageValues(a0); }