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

500 lines
18 KiB
JavaScript

// Metro module 1162 (f1163).
import { NATIVE } from "./Module1001";
import { AsyncExpiringMap } from "./AsyncExpiringMap";
import { HermesBuiltin, $createGenerator } from "../_hermes/prelude";
function $mk68261($env) {
return (c24259_0, c24259_1) => {
const r3 = $env;
let c24259_2 = false;
let c24259_3 = setTimeout(() => {
if (!c24259_2) {
c24259_2 = true;
c24259_1("Fetching native frames took too long. Dropping frames.");
}
}, 2000);
(0, r3[0])(r3[1][0]).NATIVE.fetchNativeFrames().then((result) => {
if (!c24259_2) {
clearTimeout(c24259_3);
c24259_2 = true;
if (result) {
c24259_0(result);
} else {
c24259_1("Native frames response is null.");
}
}
}).then(void 0, (a0) => {
if (!c24259_2) {
clearTimeout(c24259_3);
c24259_2 = true;
c24259_1(a0);
}
});
};
}
function $mk68263($env) {
return (a0) => {
const spanId = a0.spanContext().spanId;
const r22 = $env.$parent;
const r5 = r22[0];
const r3 = r22[1];
const r13 = r5(r3[3]).isRootSpan(a0) ? "root" : "child";
const r25 = $env;
r5(r3[2]).debug.log(`[${r22[3]}] Fetching frames for ${r13} span start (${spanId}).`);
r25[1].set(spanId, new Promise($mk101965(r22)));
};
}
function $mk68264($env) {
return (a0) => {
let env24262 = {
$parent: $env
};
env24262[0] = a0;
return (0, $env.$parent[2])(void 0, void 0, void 0, function() {
let c28843_0, c28843_1, c28843_2;
let c28843_4 = 0;
let c28843_5 = 0;
let c28843_3 = 0;
return $createGenerator(function() {
let value2, value3;
const r0 = c28843_5;
if (r0 === 2) {
c28843_5 = 3;
HermesBuiltin.throwTypeError("Generator functions may not be called on executing generators");
throw new Error("unreachable");
}
const value = arguments[1];
const r3 = arguments[0];
const r21 = env24262;
const r20 = env24262.$parent.$parent;
const r19 = env24262.$parent;
if (r0 === 3) {
if (r3 === 1) {
throw value;
}
if (r3 === 2) {
return {
value,
done: true
};
}
return {
value: void 0,
done: true
};
}
while (true) {
L40: {
L38: {
L34: {
L27: {
L25: {
L23: {
L17: {
try {
c28843_5 = 2;
const r48 = c28843_4;
if (r48 === 0) {
if (r3 === 1) {
c28843_5 = 3;
throw value;
}
if (r3 === 2) {
c28843_5 = 3;
break L40;
}
let env31223;
c28843_1 = r21;
const r159 = env31223 = {
$parent: r20
};
c28843_0 = r159;
env31223[0] = void 0;
env31223[1] = void 0;
env31223[2] = void 0;
env31223[3] = void 0;
env31223[4] = void 0;
env31223[5] = void 0;
env31223[6] = void 0;
env31223[0] = (0, r20[0])(r20[1][2]).timestampInSeconds();
const spanId = env24262[0].spanContext().spanId;
env31223[1] = spanId;
const r170 = r19[1];
if (r170.has(spanId)) {
if ((0, r20[0])(r20[1][3]).isRootSpan(env24262[0])) {
(0, r20[0])(r20[1][2]).debug.log(`[${r20[3]}] Fetch frames for root span end (${spanId}).`);
r19[2].set(spanId, new Promise((c31882_0) => {
new Promise($mk68261(env31223.$parent)).then((result) => {
c31882_0({
timestamp: env31223[0],
nativeFrames: result
});
}).then(void 0, (a0) => {
const r2 = env31223.$parent;
(0, r2[0])(r2[1][2]).debug.log(`[${r2[3]}] Error while fetching native frames.`, a0);
c31882_0(null);
});
}));
}
c28843_3 = 1;
value3 = r170.get(spanId);
c28843_4 = 2;
c28843_5 = 1;
break L38;
}
} else if (r48 === 1) {
const r140 = c28843_1;
const r141 = c28843_2;
c28843_3 = 0;
env31223[7] = r141;
const r142 = r140.$parent.$parent;
(0, r142[0])(r142[1][2]).debug.log(`[${r142[3]}] Error while capturing end frames for span ${env31223[1]}.`, env31223[7]);
} else {
if (r48 === 2) {
if (r3 === 1) {
c28843_5 = 3;
throw value;
}
if (r3 === 2) {
c28843_3 = 0;
c28843_5 = 3;
break L27;
}
env31223[2] = value;
const r111 = env31223[2];
const r113 = c28843_1.$parent.$parent;
if (r111) {
value2 = (0, r113[5])();
c28843_4 = 3;
c28843_5 = 1;
break L25;
}
(0, r113[0])(r113[1][2]).debug.log(`[${r113[3]}] No start frames found for span ${env31223[1]}, skipping frame data.`);
c28843_3 = 0;
c28843_5 = 3;
break L23;
}
if (r3 === 1) {
c28843_5 = 3;
throw value;
}
if (r3 === 2) {
c28843_3 = 0;
c28843_5 = 3;
break L17;
}
env31223[3] = value;
env31223[4] = env31223[3].totalFrames - env31223[2].totalFrames;
env31223[5] = env31223[3].slowFrames - env31223[2].slowFrames;
env31223[6] = env31223[3].frozenFrames - env31223[2].frozenFrames;
if (env31223[4] > 0 || env31223[5] > 0 || env31223[6] > 0) {
const r70 = c28843_1;
env24262[0].setAttribute("frames.total", env31223[4]);
env24262[0].setAttribute("frames.slow", env31223[5]);
env24262[0].setAttribute("frames.frozen", env31223[6]);
const r81 = r70.$parent.$parent;
(0, r81[0])(r81[1][2]).debug.log(`[${r81[3]}] Attached frame data to span ${env31223[1]}: total=${env31223[4]}, slow=${env31223[5]}, frozen=${env31223[6]}`);
}
const r93 = c28843_1.$parent.$parent;
if (!(0, r93[0])(r93[1][3]).isRootSpan(env24262[0])) {
c28843_1.$parent[0] = {
timestamp: env31223[0],
nativeFrames: env31223[3]
};
}
c28843_3 = 0;
}
c28843_5 = 3;
break L34;
} catch (r211) {
c28843_2 = r211;
if (c28843_3 === 0) {
c28843_5 = 3;
throw r211;
}
c28843_4 = 1;
continue;
}
}
return {
value,
done: true
};
}
return {
value: void 0,
done: true
};
}
return {
value: value2,
done: false
};
}
return {
value,
done: true
};
}
return {
value: void 0,
done: true
};
}
return {
value: value3,
done: false
};
}
return {
value,
done: true
};
}
});
});
};
}
function $mk68265($env) {
return (a0) => {
const r1 = $env.$parent;
const r3 = r1[0];
const r2 = r1[1];
if (r3(r2[0]).NATIVE.enableNative) {
const r20 = $env;
r3(r2[0]).NATIVE.enableNativeFramesTracking();
a0.on("spanStart", r20[3]);
a0.on("spanEnd", r20[4]);
} else {
r3(r2[2]).debug.warn(`[${r1[3]}] This is not available on the Web, Expo Go and other platforms without native modules.`);
}
};
}
function $mk68266($env) {
return async (a0) => {
let r45, r106, r237, r268;
let env24263 = {
$parent: $env
};
env24263[0] = a0;
let c28844_1;
L39: {
L38: {
L30: {
L18: {
let env31224;
c28844_1 = env24263;
const r42 = env31224 = {};
env31224[0] = void 0;
env31224[1] = void 0;
env31224[2] = void 0;
env31224[3] = void 0;
env31224[4] = void 0;
env31224[5] = void 0;
env31224[6] = void 0;
if (env24263[0].type === "transaction" && env24263[0].transaction && env24263[0].contexts && env24263[0].contexts.trace && env24263[0].timestamp && env24263[0].contexts.trace.span_id) {
env31224[1] = env24263[0].contexts.trace.op;
const span_id = env24263[0].contexts.trace.span_id;
env31224[2] = span_id;
env31224[3] = await env24263.$parent[1].pop(span_id);
const r86 = env31224[3];
const r87 = c28844_1;
if (r86) {
const r112 = await r87.$parent[2].pop(env31224[2]);
L24: {
env31224[5] = r112;
if (env31224[5]) {
if ((0, c28844_1.$parent.$parent[6])(env31224[5].timestamp, env24263[0].timestamp)) {
const r135 = c28844_1.$parent.$parent;
(0, r135[0])(r135[1][2]).debug.log(`[${r135[3]}] Using frames from root span end (spanId, ${env31224[2]}).`);
env31224[4] = env31224[5].nativeFrames;
break L24;
}
}
const r122 = c28844_1;
const r123 = r122.$parent;
if (!(r123[0] && (0, r122.$parent.$parent[6])(r123[0].timestamp, env24263[0].timestamp))) {
const r250 = c28844_1.$parent.$parent;
(0, r250[0])(r250[1][2]).debug.warn(`[${r250[3]}] Frames were collected within larger than margin of error delay for spanId (${env31224[2]}). Dropping the inaccurate values.`);
r268 = env24263[0];
break L38;
}
const r278 = c28844_1;
const r279 = r278.$parent.$parent;
(0, r279[0])(r279[1][2]).debug.log(`[${r279[3]}] Using native frames from last child span end (spanId, ${env31224[2]}).`);
env31224[4] = r278.$parent[0].nativeFrames;
}
env31224[6] = {
frames_total: {
value: env31224[4].totalFrames - env31224[3].totalFrames,
unit: "none"
},
frames_frozen: {
value: env31224[4].frozenFrames - env31224[3].frozenFrames,
unit: "none"
},
frames_slow: {
value: env31224[4].slowFrames - env31224[3].slowFrames,
unit: "none"
}
};
if (env31224[6].frames_frozen.value <= 0 && env31224[6].frames_slow.value <= 0 && env31224[6].frames_total.value <= 0) {
const r219 = c28844_1.$parent.$parent;
(0, r219[0])(r219[1][2]).debug.warn(`[${r219[3]}] Detected zero slow or frozen frames. Not adding measurements to spanId (${env31224[2]}).`);
r237 = env24263[0];
break L30;
}
const r179 = c28844_1.$parent.$parent;
(0, r179[0])(r179[1][2]).debug.log(`[${r179[3]}] Adding measurements to ${env31224[1]} transaction ${env24263[0].transaction}: ${JSON.stringify(env31224[6], void 0, 2)}`);
const r201 = env24263[0];
const r202 = Object;
const r204 = Object;
const measurements = env24263[0].measurements;
env31224[0] = measurements;
r201.measurements = r202.assign(r204.assign({}, measurements !== null ? env31224[0] !== void 0 ? env31224[0] : {} : {}), env31224[6]);
r237 = env24263[0];
break L30;
}
const r94 = r87.$parent.$parent;
(0, r94[0])(r94[1][2]).debug.warn(`[${r94[3]}] Start frames of transaction ${env24263[0].transaction} (eventId, ${env24263[0].event_id}) are missing, but the transaction already ended.`);
r106 = env24263[0];
break L18;
}
r45 = env24263[0];
break L39;
}
return r106;
}
return r237;
}
return r268;
}
return r45;
};
}
function $mk101965($env) {
return (a0) => {
let env28842 = {
$parent: $env
};
env28842[0] = a0;
new Promise($mk68261($env)).then((result) => (0, env28842[0])(result)).then(void 0, (a0) => {
const r2 = env28842.$parent;
(0, r2[0])(r2[1][2]).debug.log(`[${r2[3]}] Error while fetching native frames.`, a0);
(0, env28842[0])(null);
});
};
}
function $mk117645($env) {
return function(a0) {
a0($env[0]);
};
}
let isClose, c965_2, c965_3, nativeFramesIntegration;
let env965 = {};
const fetchNativeFrames = function fetchNativeFrames() {
return new Promise($mk68261(env965));
};
isClose = function isClose(a0, a1) {
return Math.abs(a0 - a1) < 0.05;
};
c965_2 = (this ? this.__awaiter : this) || function(c12868_0, c12868_1, a2, c12868_3) {
let r2 = a2;
let Promise2 = a2;
if (!a2) {
Promise2 = Promise;
r2 = Promise2;
}
return new r2(function(a0, c24260_1) {
let rejected2, step2;
let c24260_0 = a0;
const fulfilled2 = function fulfilled(a0) {
try {
step2(c12868_3.next(a0));
} catch ($e) {
c24260_1($e);
}
};
rejected2 = function rejected(a0) {
try {
step2(c12868_3.throw(a0));
} catch ($e) {
c24260_1($e);
}
};
step2 = function step(a0) {
if (a0.done) {
c24260_0(a0.value);
} else {
let env28841;
let value = a0.value;
const r10 = env28841 = {};
env28841[0] = value;
if (!(value instanceof Promise2)) {
value = new Promise2($mk117645(r10));
}
value.then(fulfilled2, rejected2);
}
};
const r16 = c12868_3.apply(c12868_0, c12868_1 || []);
c12868_3 = r16;
const r18 = r16.next();
const { done, value } = r18;
if (done) {
a0(value);
} else {
let env24261;
const r21 = env24261 = {};
env24261[0] = value;
(value instanceof Promise2 ? value : new Promise2($mk117645(r21))).then(fulfilled2, rejected2);
}
});
};
c965_3 = "NativeFrames";
nativeFramesIntegration = () => {
let env12869;
const r2 = env12869 = {
$parent: env965
};
env12869[0] = null;
env12869[1] = new AsyncExpiringMap({
ttl: 60000
});
env12869[2] = new AsyncExpiringMap({
ttl: 2000
});
env12869[3] = $mk68263(r2);
env12869[4] = $mk68264(r2);
return {
name: c965_3,
setup: $mk68265(r2),
processEvent: $mk68266(r2)
};
};
export const createNativeFramesIntegrations = (a0) => {
if (!a0) {
if (NATIVE.enableNative) {
NATIVE.disableNativeFramesTracking();
return void 0;
}
}
let env12870;
const r21 = env12870 = {
$parent: env965
};
env12870[0] = null;
env12870[1] = new AsyncExpiringMap({
ttl: 60000
});
env12870[2] = new AsyncExpiringMap({
ttl: 2000
});
env12870[3] = $mk68263(r21);
env12870[4] = $mk68264(r21);
return {
name: c965_3,
setup: $mk68265(r21),
processEvent: $mk68266(r21)
};
};
export { nativeFramesIntegration };