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

351 lines
10 KiB
JavaScript

// Metro module 504 (f505).
import { TelemetryEvents, TelemetryEndpoints } from "./Module505";
import { IdGenerator } from "./Module510";
import { extractId } from "./Module513";
import { v4 } from "./Module514";
import { HTTP } from "./sendRequest";
import Module589 from "./Module589";
import { HermesBuiltin, $deriveClass } from "../_hermes/prelude";
function $mk117527($env) {
return () => {
const r7 = $env;
(0, $env.$parent[10])();
const r6 = $env.$parent.$parent;
const r4 = r6[6];
const r19 = 0.1 * r4;
const r28 = Math.max(r4 + (Math.floor(Math.random() * r19 * 2) - r19), r6[7]);
r6[20] = {
type: "timeout",
id: setTimeout($mk117527(r7), r28)
};
};
}
let requestIdleCallback2, c488_27, c488_28, defaultGetSessionId;
let env488 = {};
const c488_5 = "x-science-test";
const c488_6 = 3600000;
const c488_7 = 60000;
const c488_8 = 3600000;
env488[9] = 1500;
env488[10] = 0;
env488[11] = 0;
env488[12] = 0;
env488[13] = 0;
env488[14] = 0;
env488[15] = null;
env488[16] = 0;
env488[17] = Number.MAX_SAFE_INTEGER;
env488[18] = 0;
env488[19] = 0;
env488[20] = null;
env488[21] = false;
env488[22] = null;
env488[23] = null;
let requestIdleCallback3 = window.requestIdleCallback;
if (requestIdleCallback3 == null) {
requestIdleCallback3 = (c12343_0) => setImmediate(() => c12343_0());
}
requestIdleCallback2 = requestIdleCallback3;
c488_27 = new IdGenerator();
c488_28 = {
handleConnectionOpen: () => {},
handleConnectionClosed: () => {},
handleFingerprint: () => {},
handleTrack: () => {},
handleSetAnalyticsToken: () => {}
};
env488[29] = [];
env488[30] = null;
defaultGetSessionId = () => Promise.resolve({
sessionId: void 0
});
export { c488_28 as AnalyticsActionHandlers };
export const analyticsTrackingStoreMaker = (a0) => {
let env12344 = {
$parent: env488
};
const { dispatcher, actionHandler } = a0;
env12344[0] = a0.getFingerprint;
let getSessionId = a0.getSessionId;
if (getSessionId === void 0) {
getSessionId = defaultGetSessionId;
}
env12344[1] = getSessionId;
env12344[2] = a0.TRACKING_URL;
let drainTimeoutOverride = a0.drainTimeoutOverride;
env12344[3] = a0.waitFor;
let scheduleWhenIdle = a0.scheduleWhenIdle;
if (scheduleWhenIdle === void 0) {
scheduleWhenIdle = requestIdleCallback2;
}
env12344[4] = scheduleWhenIdle;
let getLaunchSignature = a0.getLaunchSignature;
if (getLaunchSignature === void 0) {
getLaunchSignature = () => null;
}
env12344[5] = getLaunchSignature;
env12344[6] = a0.submitEvents;
env12344[7] = function scheduleDrain({ shouldFlushOnNextTick }) {
if (shouldFlushOnNextTick === void 0) {
shouldFlushOnNextTick = false;
}
if (env488[30] == null && (env488[29].length !== 0 && (env488[25] != null ? env488[24] != null : (0, env12344[0])() != null))) {
env488[30] = shouldFlushOnNextTick ? setTimeout(env12344[8], 0) : (0, env12344[4])(env12344[8], {
timeout: env488[9]
});
}
};
env12344[8] = function drainEventsQueue() {
env488[30] = null;
if (env488[29].length !== 0 && (env488[25] != null ? env488[24] != null : (0, env12344[0])() != null)) {
const r25 = env488[29].slice();
let c23791_0 = r25;
env488[29] = [];
env488[16] = env488[16] + 1;
let length = r25.length;
env488[17] = Math.min(env488[17], length);
env488[18] = Math.max(env488[18], length);
const r35 = env488[19];
if (length === void 0) {
length = 1;
}
env488[19] = r35 + length;
const r39 = (0, env12344[9])(r25);
r39.then(() => {
c23791_0.forEach((item) => {
const resolve2 = item.resolve;
if (resolve2 != null) {
resolve2.call(item);
}
});
env488[12] = env488[12] + 1;
}, (a0) => {
const r6 = env488[29];
r6.unshift.apply(r6, [...c23791_0]);
env488[13] = env488[13] + 1;
(a0.body || a0).message;
});
return r39;
}
return Promise.resolve();
};
env12344[9] = function submitEventsImmediately(a0, a1) {
let c23792_1;
const client_send_timestamp = Date.now();
const events = a0.map((item) => ({
...item,
properties: {
...item.properties,
client_send_timestamp
}
}));
const r15 = env12344[6];
if (r15 != null) {
return r15(events, env488[24]);
}
const url = a1 == null ? env12344[2] : a1;
const headers = {};
c23792_1 = headers;
if (!env488[21]) {
const r23 = v4();
env488[23] = r23;
headers[c488_5] = r23;
env488[21] = true;
}
return HTTP.post({
url,
headers,
body: {
token: env488[24],
events
},
retries: 3,
rejectWithError: false
}).then((result) => {
if (c23792_1[c488_5]) {
const r2 = result == null;
let r10 = void 0;
if (!r2) {
const headers = result.headers;
r10 = headers == null ? void 0 : headers[c488_5];
}
if (r10 == null) {
r10 = null;
}
env488[22] = r10;
}
return result;
});
};
env12344[10] = function sendTelemetryEvent() {
const properties2 = {
client_track_timestamp: Date.now(),
rpc_success_count: env488[12],
rpc_failure_count: env488[13],
first_seen_event_sequence_number: env488[14],
last_seen_event_sequence_number: env488[10],
telemetry_period_start_timestamp: env488[15],
telemetry_period_end_timestamp: Date.now(),
event_queue_rejection_count: env488[11],
event_queue_batch_count: env488[16],
event_queue_batch_min_size: env488[17] !== Number.MAX_SAFE_INTEGER ? env488[17] : 0,
event_queue_batch_max_size: env488[18],
event_queue_batch_avg_size: null,
science_request_id: null,
science_response: null,
launch_signature: null
};
const r28 = env488[16];
properties2.event_queue_batch_avg_size = r28 > 0 ? env488[19] / r28 : 0;
properties2.science_request_id = env488[23];
properties2.science_response = env488[22];
properties2.launch_signature = (0, env12344[5])();
const r8 = {
type: TelemetryEvents.CLIENT_TELEMETRY,
properties: properties2
};
env488[11] = 0;
env488[12] = 0;
env488[13] = 0;
env488[16] = 0;
env488[17] = Number.MAX_SAFE_INTEGER;
env488[18] = 0;
env488[19] = 0;
env488[15] = Date.now();
env488[14] = env488[10];
return (0, env12344[9])([r8], TelemetryEndpoints.CLIENT_TELEMETRY);
};
if (drainTimeoutOverride == null) {
drainTimeoutOverride = 1500;
}
env488[9] = drainTimeoutOverride;
c488_28.handleConnectionOpen = function({ analyticsToken, user }) {
if (analyticsToken != null) {
env488[24] = analyticsToken;
}
if (user.id != null) {
env488[25] = user.id;
}
if (env488[20] == null) {
let env23793 = {
$parent: env12344
};
const r7 = Math;
const r18 = Math.random();
const r22 = r7.floor(r18 * (c488_8 - c488_7) + c488_7);
env23793[0] = () => {};
env488[20] = {
type: "timeout",
id: setTimeout(() => {
const r7 = env23793;
(0, env12344[10])();
const r19 = 0.1 * c488_6;
const r28 = Math.max(c488_6 + (Math.floor(Math.random() * r19 * 2) - r19), c488_7);
env488[20] = {
type: "timeout",
id: setTimeout($mk117527(r7), r28)
};
}, r22)
};
}
(0, env12344[7])({
shouldFlushOnNextTick: false
});
return false;
};
c488_28.handleConnectionClosed = function() {
(0, env12344[8])();
if (env488[20] != null) {
const type = env488[20].type;
if (type === "timeout") {
clearTimeout(env488[20].id);
} else if (type === "interval") {
clearInterval(env488[20].id);
} else {
env488[20].type;
}
env488[20] = null;
}
env488[24] = null;
env488[25] = null;
return false;
};
c488_28.handleFingerprint = function() {
(0, env12344[8])();
return false;
};
c488_28.handleTrack = function({ event, properties, flush, fingerprint, resolve }) {
(0, env12344[1])().then(({ sessionId }) => {
let r9;
const properties2 = {
client_track_timestamp: Date.now(),
client_heartbeat_session_id: sessionId,
event_sequence_number: null
};
const event_sequence_number = env488[10] + 1;
env488[10] = event_sequence_number;
properties2.event_sequence_number = event_sequence_number;
HermesBuiltin.copyDataProperties(properties2, properties);
const r7 = {
type: event,
fingerprint,
properties: properties2,
resolve
};
if (env488[25] != null) {
r9 = env488[25];
} else {
let fingerprint2 = r7.fingerprint;
if (fingerprint2 == null) {
fingerprint2 = (0, env12344[0])();
}
r9 = fingerprint2 != null ? extractId(fingerprint2) : null;
}
if (r9 != null) {
r7.properties.client_uuid = c488_27.generate(r9);
}
env488[29].push(r7);
if (env488[29].length > 10000) {
env488[11] = env488[11] + (env488[29].length - 10000);
env488[29] = env488[29].slice(-10000);
}
env12344[7](flush ? {
shouldFlushOnNextTick: true
} : {
shouldFlushOnNextTick: false
});
});
return false;
};
c488_28.handleSetAnalyticsToken = function({ analyticsToken, userId }) {
if (env488[24] == null && analyticsToken != null) {
env488[24] = analyticsToken;
env488[25] = userId;
(0, env12344[7])({
shouldFlushOnNextTick: false
});
}
return false;
};
const r35 = $deriveClass(function AnalyticsTrackingStore() {
const prototypeOf = Object.getPrototypeOf(env12344[11]);
const r2 = new.target;
const r7 = HermesBuiltin.applyArguments(prototypeOf, Object.create(r2.prototype), r2);
r7.submitEventsImmediately = env12344[9];
return r7;
}, Module589.Store);
Object.defineProperty(r35.prototype, "initialize", {
value: function initialize() {
const r5 = env12344[3];
if (r5 != null) {
this.waitFor.apply(this, [...r5]);
}
},
writable: true,
configurable: true
});
env12344[11] = r35;
r35.displayName = "AnalyticsTrackingStore";
return new r35(dispatcher, actionHandler);
};