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

157 lines
5.2 KiB
JavaScript

// Metro module 1070 (f1071).
import { msToSec, startStandaloneWebVitalSpan, getBrowserPerformanceAPI } from "./Module1059";
import { browserPerformanceTimeOrigin, getActiveSpan, getRootSpan, spanToJSON, getCurrentScope, htmlTreeAsString, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, isBrowser } from "./Module817";
import { addInpInstrumentationHandler, isPerformanceEventTiming, addPerformanceInstrumentationHandler } from "./triggerHandlers";
import { WINDOW } from "./Module1039";
Object.defineProperty(exports, Symbol.toStringTag, {
value: "Module"
});
let c881_2 = [];
let c881_3 = new Map();
let c881_4 = new Map();
let c881_5 = {
click: "click",
pointerdown: "click",
pointerup: "click",
mousedown: "click",
mouseup: "click",
touchstart: "click",
touchend: "click",
mouseover: "hover",
mouseout: "hover",
mouseenter: "hover",
mouseleave: "hover",
pointerover: "hover",
pointerout: "hover",
pointerenter: "hover",
pointerleave: "hover",
dragstart: "drag",
dragend: "drag",
drag: "drag",
dragenter: "drag",
dragleave: "drag",
dragover: "drag",
drop: "drag",
keydown: "press",
keyup: "press",
keypress: "press",
input: "press"
};
const _onInp = ({ metric }) => {
if (metric.value != null) {
const r20 = msToSec(metric.value);
if (!(r20 > 60)) {
const r24 = metric.entries.find((entry) => entry.duration === metric.value && c881_5[entry.name]);
if (r24) {
const interactionId = r24.interactionId;
const r16 = c881_5[r24.name];
const startTime = msToSec(browserPerformanceTimeOrigin() + r24.startTime);
const activeSpan = getActiveSpan();
const r38 = activeSpan ? getRootSpan(activeSpan) : void 0;
const r42 = interactionId != null ? c881_3.get(interactionId) : void 0;
const r46 = r42?.span || r38;
const transaction = r46 ? spanToJSON(r46).description : getCurrentScope().getScopeData().transactionName;
const name = r42?.elementName || htmlTreeAsString(r24.target);
const attributes = {};
attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] = "auto.http.browser.inp";
attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] = `ui.interaction.${r16}`;
attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] = r24.duration;
const r83 = startStandaloneWebVitalSpan({
name,
transaction,
attributes,
startTime
});
if (r83) {
const r85 = {};
r85[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] = "millisecond";
r85[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] = metric.value;
r83.addEvent("inp", r85);
r83.end(startTime + r20);
}
}
}
}
};
export { _onInp };
export function _trackINP() {
return addInpInstrumentationHandler(_onInp);
}
export function registerInpInteractionListener() {
const captureElementFromEvent2 = function captureElementFromEvent(a0) {
const target = a0.target;
if (target) {
const r10 = htmlTreeAsString(target);
c881_4.set(Math.round(a0.timeStamp), r10);
if (c881_4.size > 50) {
const value = c881_4.keys().next().value;
if (value !== void 0) {
c881_4.delete(value);
}
}
}
};
const r6 = Object.keys(c881_5);
if (isBrowser()) {
r6.forEach((item) => {
WINDOW.addEventListener(item, captureElementFromEvent2, {
capture: true,
passive: true
});
});
}
const handleEntries = ({ entries }) => {
const activeSpan = getActiveSpan();
const rootSpan = activeSpan && getRootSpan(activeSpan);
entries.forEach((entry) => {
let elementName;
if (isPerformanceEventTiming(entry)) {
const interactionId = entry.interactionId;
if (interactionId != null && !c881_3.has(interactionId)) {
if (entry.target) {
elementName = htmlTreeAsString(entry.target);
} else {
const r26 = Math.round(entry.startTime);
const r29 = c881_4.get(r26);
let r0 = -5;
elementName = r29;
if (!elementName) {
do {
elementName = c881_4.get(r26 + r0);
const r1 = r0;
if (elementName) {
break;
}
r0 = r1 + 1;
elementName = r29;
} while (r0 <= 5);
}
if (!elementName) {
elementName = "<unknown>";
}
}
if (c881_2.length > 10) {
c881_3.delete(c881_2.shift());
}
c881_2.push(interactionId);
c881_3.set(interactionId, {
span: rootSpan,
elementName
});
}
}
});
};
addPerformanceInstrumentationHandler("event", handleEntries);
addPerformanceInstrumentationHandler("first-input", handleEntries);
}
export function startTrackingINP() {
if (getBrowserPerformanceAPI() && browserPerformanceTimeOrigin()) {
let c12703_0 = addInpInstrumentationHandler(_onInp);
return () => {
c12703_0();
};
}
return () => {};
}