// Metro module 1167 (f1168). import { getReactNavigationIntegration } from "./Module1168"; import { debug } from "./Module817"; import { NATIVE } from "./Module1001"; import { UI_LOAD_FULL_DISPLAY, UI_LOAD_INITIAL_DISPLAY } from "./Module1155"; import { createSpanJSON } from "./createSpanJSON"; import { SPAN_ORIGIN_MANUAL_UI_TIME_TO_DISPLAY, SPAN_ORIGIN_AUTO_UI_TIME_TO_DISPLAY } from "./Module1158"; import { SPAN_THREAD_NAME, SPAN_THREAD_NAME_JAVASCRIPT } from "./startIdleSpan"; import { getTimeToInitialDisplayFallback } from "./Module1169"; import { SEMANTIC_ATTRIBUTE_ROUTE_HAS_BEEN_SEEN } from "./Module1157"; function $mk117647($env) { return function(a0) { a0($env[0]); }; } function $mk117649($env) { return async function addTimeToFullDisplay(a0) { let r140; let env31884 = { $parent: $env }; env31884[0] = a0.event; env31884[1] = a0.rootSpanId; env31884[2] = a0.transactionStartTimestampSeconds; env31884[3] = a0.ttidSpan; env31884[4] = void 0; let c32095_0, c32095_1; L32: { L29: { let env32161; c32095_1 = env31884; const r11 = env32161 = { $parent: env31884.$parent }; c32095_0 = r11; env32161[0] = void 0; env32161[1] = void 0; env32161[2] = void 0; env32161[3] = void 0; env32161[0] = await NATIVE.popTimeToDisplayFor(`ttfd-${env31884[1]}`); if (!env31884[3]) { break L32; } if (env32161[0]) { env31884[0].spans = env31884[0].spans || []; const spans = env31884[0].spans; env31884[4] = spans; env32161[1] = spans !== null ? env31884[4] !== void 0 ? env31884[4].find($mk119078(c32095_0.$parent)) : void 0 : void 0; env32161[2] = env32161[0]; if (env31884[3].timestamp && env32161[0] < env31884[3].timestamp && env31884[3].timestamp) { env32161[2] = env31884[3].timestamp; } env32161[3] = 1000 * (env32161[2] - env31884[2]); if ((env32161[1] == null ? void 0 : env32161[1].status) && env32161[1].status !== "ok") { env32161[1].status = "ok"; env32161[1].timestamp = env32161[2]; debug.log(`[${c971_3}] Updated existing ttfd span.`, env32161[1]); r140 = env32161[1]; break L29; } const status = (0, isDeadlineExceeded)(env32161[3]) ? "deadline_exceeded" : "ok"; const data = {}; data[SPAN_THREAD_NAME] = SPAN_THREAD_NAME_JAVASCRIPT; env32161[1] = createSpanJSON({ status, op: UI_LOAD_FULL_DISPLAY, description: "Time To Full Display", start_timestamp: env31884[2], timestamp: env32161[2], origin: SPAN_ORIGIN_MANUAL_UI_TIME_TO_DISPLAY, parent_span_id: env31884[1], data }); debug.log(`[${c971_3}] Added ttfd span to transaction.`, env32161[1]); env31884[0].spans.push(env32161[1]); r140 = env32161[1]; break L29; } break L32; } return r140; } }; } function $mk119076($env) { return (a0) => a0.op === UI_LOAD_INITIAL_DISPLAY; } function $mk119077($env) { return async function addAutomaticTimeToInitialDisplay(a0) { let r123, r124, r211; let env32185 = { $parent: $env }; env32185[0] = a0.event; env32185[1] = a0.rootSpanId; env32185[2] = a0.transactionStartTimestampSeconds; env32185[3] = a0.enableTimeToInitialDisplayForPreloadedRoutes; env32185[4] = void 0; env32185[5] = void 0; env32185[6] = void 0; env32185[7] = void 0; env32185[8] = void 0; env32185[9] = void 0; let c32191_0, c32191_1; L45: { L24: { let env32193; c32191_1 = env32185; const r10 = env32193 = {}; c32191_0 = r10; env32193[0] = void 0; env32193[1] = void 0; env32193[2] = void 0; env32193[3] = void 0; env32193[4] = void 0; env32193[5] = void 0; const r53 = await NATIVE.popTimeToDisplayFor(`ttid-navigation-${env32185[1]}`); env32193[0] = r53; env32193[1] = await getTimeToInitialDisplayFallback(env32185[1]); const contexts = env32185[0].contexts; env32185[4] = contexts; const r91 = contexts !== null ? env32185[4] !== void 0 ? env32185[4].trace : void 0 : void 0; env32185[5] = r91; const r93 = r91 !== null ? r91 !== void 0 ? r91.data : void 0 : void 0; env32185[6] = r93; let r98 = void 0; if (r93 !== null) { r98 = void 0; if (r93 !== void 0) { r98 = r93[SEMANTIC_ATTRIBUTE_ROUTE_HAS_BEEN_SEEN]; } } if (r98) { if (!env32185[3]) { debug.log(`[${c971_3}] Route has been seen and time to initial display is disabled for preloaded routes.`); break L24; } } if (env32193[0] != null) { const r122 = c32191_0; r123 = env32193[0]; r124 = r122; } else { r124 = c32191_0; r123 = env32193[1]; } env32193[2] = r123; const r125 = env32193[2]; if (r125) { const contexts2 = env32185[0].contexts; env32185[7] = contexts2; const r129 = contexts2 !== null ? env32185[7] !== void 0 ? env32185[7].app : void 0 : void 0; env32185[8] = r129; env32193[3] = r129 !== null ? r129 !== void 0 ? r129.view_names : void 0 : void 0; const isArray = Array.isArray(env32193[3]); const r153 = env32193[3]; const r154 = isArray ? r153[0] : r153; env32193[4] = r154; const description = env32193[4] ? `${env32193[4]} initial display` : "Time To Initial Display"; const data = {}; data[SPAN_THREAD_NAME] = SPAN_THREAD_NAME_JAVASCRIPT; env32193[5] = createSpanJSON({ op: UI_LOAD_INITIAL_DISPLAY, description, start_timestamp: env32185[2], timestamp: env32193[2], origin: SPAN_ORIGIN_AUTO_UI_TIME_TO_DISPLAY, parent_span_id: env32185[1], data }); const r192 = env32185[0]; const spans = env32185[0].spans; env32185[9] = spans; r192.spans = spans !== null ? env32185[9] !== void 0 ? env32185[9] : [] : []; env32185[0].spans.push(env32193[5]); r211 = env32193[5]; break L45; } debug.log(`[${c971_3}] No automatic ttid end timestamp found for span ${env32185[1]}.`); } return void 0; } return r211; }; } function $mk119078($env) { return (a0) => a0.op === UI_LOAD_FULL_DISPLAY; } let c971_3, isDeadlineExceeded; let env971 = {}; const c971_2 = (this ? this.__awaiter : this) || function(c12873_0, c12873_1, a2, c12873_3) { let r2 = a2; let Promise2 = a2; if (!a2) { Promise2 = Promise; r2 = Promise2; } return new r2(function(a0, c24266_1) { let rejected2, step2; let c24266_0 = a0; const fulfilled2 = function fulfilled(a0) { try { step2(c12873_3.next(a0)); } catch ($e) { c24266_1($e); } }; rejected2 = function rejected(a0) { try { step2(c12873_3.throw(a0)); } catch ($e) { c24266_1($e); } }; step2 = function step(a0) { if (a0.done) { c24266_0(a0.value); } else { let env28845; let value2 = a0.value; const r10 = env28845 = {}; env28845[0] = value2; if (!(value2 instanceof Promise2)) { value2 = new Promise2($mk117647(r10)); } value2.then(fulfilled2, rejected2); } }; const r16 = c12873_3.apply(c12873_0, c12873_1 || []); c12873_3 = r16; const r18 = r16.next(); const { done, value: value2 } = r18; if (done) { a0(value2); } else { let env24267; const r21 = env24267 = {}; env24267[0] = value2; (value2 instanceof Promise2 ? value2 : new Promise2($mk117647(r21))).then(fulfilled2, rejected2); } }); }; c971_3 = "TimeToDisplay"; isDeadlineExceeded = (a0) => a0 > 30000; export const INTEGRATION_NAME = "TimeToDisplay"; export const timeToDisplayIntegration = () => { let enableTimeToInitialDisplayForPreloadedRoutes = false; return { name: c971_3, afterAllSetup: (a0) => { const reactNavigationIntegration = getReactNavigationIntegration(a0); const r10 = reactNavigationIntegration !== null ? reactNavigationIntegration !== void 0 ? reactNavigationIntegration.options.enableTimeToInitialDisplayForPreloadedRoutes : void 0 : void 0; enableTimeToInitialDisplayForPreloadedRoutes = r10 !== null && r10 !== void 0 && r10; }, processEvent: async (value) => { let r218; let c28846_0, c28846_1; L63: { L62: { L20: { let env31225; c28846_1 = void 0; const r33 = env31225 = { $parent: env971 }; c28846_0 = r33; env31225[0] = void 0; env31225[1] = void 0; env31225[2] = void 0; env31225[3] = void 0; env31225[4] = void 0; env31225[5] = void 0; env31225[6] = void 0; env31225[7] = void 0; env31225[8] = void 0; if (value.type !== "transaction") { break L63; } const contexts = value.contexts; const r39 = contexts !== null ? contexts !== void 0 ? contexts.trace : void 0 : void 0; const rootSpanId2 = r39 !== null ? r39 !== void 0 ? r39.span_id : void 0 : void 0; env31225[3] = rootSpanId2; if (rootSpanId2) { const start_timestamp = value.start_timestamp; env31225[4] = start_timestamp; if (start_timestamp) { value.spans = value.spans || []; value.measurements = value.measurements || {}; env31225[5] = await (async function addTimeToInitialDisplay({ event, rootSpanId, transactionStartTimestampSeconds, enableTimeToInitialDisplayForPreloadedRoutes: enableTimeToInitialDisplayForPreloadedRoutes2 }) { let r105, r129, r182; let c31883_4; c31883_4 = void 0; let c32094_0, c32094_1; L20: { let env32160; c32094_1 = void 0; const r11 = env32160 = { $parent: env971 }; c32094_0 = r11; env32160[0] = void 0; env32160[1] = void 0; env32160[0] = await NATIVE.popTimeToDisplayFor(`ttid-${rootSpanId}`); event.spans = event.spans || []; const spans = event.spans; c31883_4 = spans; const r70 = spans !== null ? c31883_4 !== void 0 ? c31883_4.find($mk119076(env971)) : void 0 : void 0; L14: { env32160[1] = r70; if (env32160[1]) { if (env32160[1].status !== void 0 && env32160[1].status !== "ok") { break L14; } if (!env32160[0]) { debug.log(`[${c971_3}] Ttid span already exists and is ok.`, env32160[1]); r105 = env32160[1]; break L20; } } } if (env32160[0]) { if ((env32160[1] == null ? void 0 : env32160[1].status) && env32160[1].status !== "ok") { env32160[1].status = "ok"; env32160[1].timestamp = env32160[0]; debug.log(`[${c971_3}] Updated existing ttid span.`, env32160[1]); r182 = env32160[1]; } else { const data = {}; data[SPAN_THREAD_NAME] = SPAN_THREAD_NAME_JAVASCRIPT; env32160[1] = createSpanJSON({ op: UI_LOAD_INITIAL_DISPLAY, description: "Time To Initial Display", start_timestamp: transactionStartTimestampSeconds, timestamp: env32160[0], origin: SPAN_ORIGIN_MANUAL_UI_TIME_TO_DISPLAY, parent_span_id: rootSpanId, data }); debug.log(`[${c971_3}] Added ttid span to transaction.`, env32160[1]); event.spans.push(env32160[1]); r182 = env32160[1]; } r129 = r182; } else { debug.log(`[${c971_3}] No manual ttid end timestamp found for span ${rootSpanId}.`); const r123 = { event, rootSpanId, transactionStartTimestampSeconds, enableTimeToInitialDisplayForPreloadedRoutes: enableTimeToInitialDisplayForPreloadedRoutes2 }; r129 = $mk119077(env971)(r123); } r105 = r129; } return r105; })({ event: value, rootSpanId: rootSpanId2, transactionStartTimestampSeconds: start_timestamp, enableTimeToInitialDisplayForPreloadedRoutes }); const r99 = { event: value, rootSpanId: env31225[3], transactionStartTimestampSeconds: env31225[4], ttidSpan: env31225[5] }; env31225[6] = await $mk117649(env971)(r99); if ((env31225[5] == null ? void 0 : env31225[5].start_timestamp) && (env31225[5] == null ? void 0 : env31225[5].timestamp)) { value.measurements.time_to_initial_display = { value: 1000 * (env31225[5].timestamp - env31225[5].start_timestamp), unit: "millisecond" }; } if ((env31225[6] == null ? void 0 : env31225[6].start_timestamp) && (env31225[6] == null ? void 0 : env31225[6].timestamp)) { env31225[7] = 1000 * (env31225[6].timestamp - env31225[6].start_timestamp); if ((0, isDeadlineExceeded)(env31225[7])) { if (value.measurements.time_to_initial_display) { value.measurements.time_to_full_display = value.measurements.time_to_initial_display; } } else { value.measurements.time_to_full_display = { value: env31225[7], unit: "millisecond" }; } } const r154 = Math; const r158 = env31225[5] == null ? void 0 : env31225[5].timestamp; env31225[0] = r158; const r196 = r158 !== null ? env31225[0] !== void 0 ? env31225[0] : -1 : -1; const r201 = env31225[6] == null ? void 0 : env31225[6].timestamp; env31225[1] = r201; const r204 = r201 !== null ? env31225[1] !== void 0 ? env31225[1] : -1 : -1; const timestamp = value.timestamp; env31225[2] = timestamp; env31225[8] = r154.max(r196, r204, timestamp !== null ? env31225[2] !== void 0 ? env31225[2] : -1 : -1); if (env31225[8] !== -1) { value.timestamp = env31225[8]; } r218 = value; break L62; } debug.warn(`[${c971_3}] No transaction start timestamp found in transaction.`); break L20; } debug.warn(`[${c971_3}] No root span id found in transaction.`); return value; } return value; } return r218; } return value; } }; };