// 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 };