@overlayed/app 0.14.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +19 -4
- package/dist/index.js +1 -1
- package/dist/siege.d.ts +3 -1
- package/dist/siege.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Module, Type } from "arktype";
|
|
|
3
3
|
import EventEmitter$1 from "events";
|
|
4
4
|
import "xior";
|
|
5
5
|
import * as electron0 from "electron";
|
|
6
|
-
import { BrowserWindow } from "electron";
|
|
6
|
+
import { BrowserWindow, BrowserWindowConstructorOptions } from "electron";
|
|
7
7
|
import * as arktype_internal_methods_object_ts0 from "arktype/internal/methods/object.ts";
|
|
8
8
|
import { Process } from "@overlayed-gg/native-interface";
|
|
9
9
|
import { AccessLevel, KeyboardKeyEvent, MouseButtonEvent, RenderInterface, RenderInterface as RenderInterface$1, RenderWindow, RenderWindow as RenderWindow$1, RenderWindowConstructorOptions, RenderWindowConstructorOptions as RenderWindowConstructorOptions$1, VirtualKey, WindowEvent } from "@overlayed-gg/render-interface";
|
|
@@ -68,6 +68,7 @@ interface LoggerScope {
|
|
|
68
68
|
warn: (...args: unknown[]) => void;
|
|
69
69
|
info: (...args: unknown[]) => void;
|
|
70
70
|
log: (...args: unknown[]) => void;
|
|
71
|
+
debug: (...args: unknown[]) => void;
|
|
71
72
|
}
|
|
72
73
|
declare class LoggerClass {
|
|
73
74
|
private fileLogger;
|
|
@@ -75,8 +76,9 @@ declare class LoggerClass {
|
|
|
75
76
|
private appId;
|
|
76
77
|
private messageQueue;
|
|
77
78
|
fileName: string;
|
|
79
|
+
private _debug;
|
|
78
80
|
constructor(fileName: string);
|
|
79
|
-
init(appId: string): void;
|
|
81
|
+
init(appId: string, debug?: boolean): void;
|
|
80
82
|
scope(name: string): LoggerScope;
|
|
81
83
|
error(...args: unknown[]): void;
|
|
82
84
|
warn(...args: unknown[]): void;
|
|
@@ -359,7 +361,8 @@ type OverlayedAppKeybindModule<TKeybind extends string> = Record<TKeybind, {
|
|
|
359
361
|
updateKeybinds: (keybinds: Partial<OverlayedAppKeybindsConfig<TKeybind>>) => void;
|
|
360
362
|
};
|
|
361
363
|
interface OverlayedAppWindowsModule extends Pick<RenderInterface$1, "on" | "off" | "once" | "addListener" | "prependListener" | "prependOnceListener" | "removeListener" | "removeAllListeners"> {
|
|
362
|
-
createWindow(options:
|
|
364
|
+
createWindow(options: BrowserWindowConstructorOptions): BrowserWindow;
|
|
365
|
+
createInGameWindow(options: RenderWindowConstructorOptions$1): RenderWindow$1;
|
|
363
366
|
getActiveGameInfo: () => ActiveGameInfo;
|
|
364
367
|
}
|
|
365
368
|
type OverlayedAppInputModuleRaw = {
|
|
@@ -410,7 +413,7 @@ interface OverlayedAppInputModule {
|
|
|
410
413
|
scope: (scopeName: string) => ReturnType<OverridesManager["scope"]>;
|
|
411
414
|
raw: OverlayedAppInputModuleRaw;
|
|
412
415
|
}
|
|
413
|
-
interface CortexEvents {}
|
|
416
|
+
interface CortexEvents extends Record<string, unknown> {}
|
|
414
417
|
interface OverlayedAppCortexModule {
|
|
415
418
|
track: <TEventName extends keyof CortexEvents>(name: TEventName, data: CortexEvents[TEventName]) => void;
|
|
416
419
|
}
|
|
@@ -453,6 +456,12 @@ interface OverlayedAppLoggingModule {
|
|
|
453
456
|
info: (message: string) => void;
|
|
454
457
|
warn: (message: string) => void;
|
|
455
458
|
error: (message: string) => void;
|
|
459
|
+
/**
|
|
460
|
+
* Log a message to the console if debug mode is enabled.
|
|
461
|
+
*
|
|
462
|
+
* @param message - The message to log.
|
|
463
|
+
*/
|
|
464
|
+
debug: (message: string) => void;
|
|
456
465
|
/**
|
|
457
466
|
* Submits info you provide, app logs, overlayed logs, and any additional files you provide to be viewed
|
|
458
467
|
* in your Overlayed dashboard.
|
|
@@ -543,6 +552,12 @@ interface OverlayedOptions<TModule extends GameModule, TKeybind extends string>
|
|
|
543
552
|
* @deprecated
|
|
544
553
|
*/
|
|
545
554
|
version?: string;
|
|
555
|
+
/**
|
|
556
|
+
* When true, the overlay will be loaded in debug mode.
|
|
557
|
+
*
|
|
558
|
+
* @default false
|
|
559
|
+
*/
|
|
560
|
+
debug?: boolean;
|
|
546
561
|
}
|
|
547
562
|
//#endregion
|
|
548
563
|
//#region src/utilities/overlayed.d.ts
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as e}from"node:module";import t from"mitt";import{Type as n,type as r}from"arktype";import i,{createWriteStream as a,existsSync as o,mkdirSync as s,readdirSync as c,unlinkSync as l,writeFileSync as u}from"fs";import{ensureFileSync as d}from"fs-extra";import{join as f}from"path";import p,{resolve as ee}from"node:path";import te from"events";import{copyFileSync as ne,createReadStream as re,existsSync as m,mkdirSync as ie,readFileSync as h,readdirSync as ae,writeFileSync as oe}from"node:fs";import"glob";import"jiti";import g from"xior";import _ from"fs/promises";import v from"jszip";import{createHash as se}from"node:crypto";import ce,{app as y}from"electron";var le=Object.create,b=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,de=Object.getOwnPropertyNames,fe=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty,me=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),he=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=de(t),a=0,o=i.length,s;a<o;a++)s=i[a],!pe.call(e,s)&&s!==n&&b(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ue(t,s))||r.enumerable});return e},ge=(e,t,n)=>(n=e==null?{}:le(fe(e)),he(t||!e||!e.__esModule?b(n,`default`,{value:e,enumerable:!0}):n,e)),_e=class{data=[];constructor(){}get size(){return this.data.length}add(e){this.data.push(e)}next(){return this.data.shift()}clear(){this.data.length=0}*flush(){for(;this.size>0;){let e=this.next();e&&(yield e)}}},x=class{emitter;constructor(){this.emitter=t()}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}emit(e,t){this.emitter.emit(e,t)}removeAllListeners(){this.emitter.all.clear()}},ve=class{listeners;constructor(){this.listeners=new Map}on(e,t){let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)}off(e,t){let n=this.listeners.get(e);n&&n.delete(t)}async emit(e,...t){let n=this.listeners.get(e)||new Set,r=this.listeners.get(`*`)||new Set,i=[...Array.from(n),...Array.from(r)];if(i.length===0)return[];let a=await Promise.all(i.map(async n=>{try{let e=n(...t);return e instanceof Promise?await e:e}catch(t){console.error(`Error in event listener for ${String(e)}:`,t);return}}));return a}removeAllListeners(){this.listeners.clear()}};function S(e,...t){let n=class extends e{static _instance;static getInstance(){return this._instance||(this._instance=new e(...t)),this._instance}static clearInstance(){this._instance=void 0}};return n}var ye=class extends x{destroy(){this.removeAllListeners()}fatal(e,t,n){this.emit(`fatal`,{code:t,message:e,data:n,timestamp:Date.now()})}error(e,t,n){this.emit(`error`,{code:t,message:e,data:n,timestamp:Date.now()})}warn(e,t,n){this.emit(`warning`,{code:t,message:e,data:n,timestamp:Date.now()})}};const C=S(ye);var be=class{data;_schema;_defaultValue;_path;constructor(e){let{schema:t,default:n,path:r}=e;this._schema=t,this._defaultValue=n,this._path=r}set(e){let t=this._schema[`~standard`].validate(e);if(t instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);if(t.issues){this.reportInvalidConfigFile(t.issues);return}this.data=this.onBeforeSave(e),this.save(e)}get(){return this.data?this.data:this.load()}getKey(e){let t=this.get();return t[e]}save(e){let t=this.onBeforeSave(e);try{d(this.getFilePath()),i.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(){if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return this.data=e,e}try{let e=i.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=r(`string.json.parse`).to(`object`),n=t(e);if(n instanceof r.errors)return this._defaultValue;let i=this._schema[`~standard`].validate(n);if(i instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return i.issues?this.migrate(n,this._defaultValue):this.migrate(i.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return i.accessSync(e,i.constants.R_OK|i.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return i.accessSync(e,i.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r))continue;r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]}return n}reportInvalidConfigFile(e){C.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}},xe=class e extends x{stream;logPath;baseFileName;currentDate;rotationCheckInterval;isRotating=!1;constructor(e,t){super(),this.logPath=e,this.baseFileName=t.replace(`.log`,``),this.currentDate=this.getDateString(new Date),this.ensureLogDirectory(),this.ensureLogFile(),this.stream=this.createStream(),this.rotationCheckInterval=this.startRotationCheck(),this.cleanupOldLogs()}static scope(t,n){return new e(t,n)}log(...e){this.write(`log`,...e)}error(...e){this.write(`error`,...e)}warn(...e){this.write(`warn`,...e)}info(...e){this.write(`info`,...e)}debug(...e){this.write(`debug`,...e)}async close(){clearInterval(this.rotationCheckInterval),await new Promise(e=>{this.stream.end(()=>e())})}getCurrentFileName(){return this.getFileName(this.currentDate)}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{s(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=f(this.logPath,this.getFileName(this.currentDate));if(!o(e))try{u(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return e.toISOString().split(`T`)[0]}createStream(){let e=f(this.logPath,this.getFileName(this.currentDate));return a(e,{flags:`a`,encoding:`utf8`})}async rotateLogs(){if(this.isRotating)return;this.isRotating=!0;let e=this.getDateString(new Date);e!==this.currentDate&&await new Promise(t=>{this.stream.end(()=>{this.currentDate=e,this.stream=this.createStream(),this.cleanupOldLogs(),t()})}),this.isRotating=!1}startRotationCheck(){return setInterval(()=>this.rotateLogs(),6e4)}cleanupOldLogs(){let e=c(this.logPath),t=new Date;t.setDate(t.getDate()-3),e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let n=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``),r=new Date(n);return r<t}).forEach(e=>{try{l(f(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}write(e,...t){let n=new Date,r=n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getMilliseconds().toString().padStart(3,`0`)}`,i=t.map(e=>typeof e==`object`?JSON.stringify(e,void 0,2):String(e)).join(` `),a=`[${r}] [${e}] ${i}\n`;this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}};const w=()=>p.join(process.env.APPDATA??``,`overlayed`),Se=()=>p.join(w(),`logs`),T=e=>p.join(w(),`apps`,e),E=e=>p.join(T(e),`logs`);var D=class{fileLogger;path;appId;messageQueue=new _e;fileName;constructor(e){this.fileName=e}init(e){this.appId=e,this.path=E(e),this.fileLogger=new xe(this.path,this.fileName),this.messageQueue.flush().forEach(e=>{this.fileLogger?.[e.type](...e.args)})}scope(e){if(!this.appId||!this.path)throw Error(`Logger not initialized`);let t=`[${e}]`;return{scope:e=>this.scope(e),error:(...e)=>this.error(t,...e),warn:(...e)=>this.warn(t,...e),info:(...e)=>this.info(t,...e),log:(...e)=>this.log(t,...e)}}error(...e){this.handle(`error`,...e)}warn(...e){this.handle(`warn`,...e)}info(...e){this.handle(`log`,...e)}debug(...e){this.handle(`debug`,...e)}log(...e){this.handle(`log`,...e)}handle(e,...t){console[e](...t),this.fileLogger?this.fileLogger[e](...t):this.messageQueue.add({type:e,args:t})}};const O=S(D,`main.log`);var Ce=class extends te{blob;chunkSizeMb;maxConcurrent;shouldStop=!1;constructor(e,t){super(),this.blob=e,this.chunkSizeMb=t.chunkSizeMb,this.maxConcurrent=t.maxConcurrent??3}get totalChunks(){return Math.ceil(this.blob.size/(this.chunkSizeMb*1024*1024))}async chunk(e){let t=this.chunkSizeMb*1024*1024,n=this.totalChunks;if(n===0)return;let r=5,i=new Map,a=new Set,o=new Set,s=[];for(let e=0;e<n;e++)s.push(e);let c=async n=>{let c=n*t,l=Math.min(c+t,this.blob.size),u=this.blob.slice(c,l);try{await e(u,n),o.add(n),this.emit(`chunkComplete`,n),a.delete(n)}catch(e){let t=i.get(n)||0;t<r?(i.set(n,t+1),await new Promise(e=>setTimeout(e,(t+1)*1e3)),s.push(n)):(o.add(n),this.emit(`error`,e),this.shouldStop=!0,a.delete(n))}},l=[],u=async()=>{for(;(s.length>0||a.size>0)&&!this.shouldStop;){if(s.length===0){await new Promise(e=>setTimeout(e,10));continue}let e=s.shift();o.has(e)||a.has(e)||(a.add(e),await c(e))}};for(let e=0;e<this.maxConcurrent;e++)l.push(u());await Promise.all(l)}};function k(e){return m(e)?ae(e).map(t=>[e,t]):[]}function we(e){return e}const Te=e(import.meta.url),{PipeEventServer:Ee,PipeEventClient:De,PipeEventBase:Oe,ProcessMonitor:ke,Process:Ae,InjectionMethod:je,AccessLevel:Me,HardwareInterface:Ne}=Te(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var Pe=class extends x{server=null;_hasConnection=!1;pipeId;get hasConnection(){return this._hasConnection}constructor(e){super(),this.pipeId=e,this.init()}destroy(){this.server&&(this._hasConnection=!1,this.server?.removeAllListeners(),this.server=null)}init(){this.server=new Ee(this.pipeId,{clientCount:1,access:1}),this.server.on(`event`,e=>{try{let t=JSON.parse(e);this.emit(`data`,[t])}catch(e){this.emit(`error`,e)}}),this.server.on(`connected`,()=>{this._hasConnection=!0}),this.server.on(`disconnected`,()=>{this._hasConnection=!1})}};const A=S(Pe,`stats-cc`);var j=class{logger;initialized=!1;constructor(e){this.logger=O.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},M=class extends x{logger;initialized=!1;constructor(e){super(),this.logger=O.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},Fe=class extends ve{logger;initialized=!1;constructor(e){super(),this.logger=O.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const N=g.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let P;function Ie(e){P=e}N.interceptors.request.use(e=>{let t=P?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const F=g.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let Le,Re;F.interceptors.request.use(e=>{let t=Le?.(),n=Re?.();return e.headers??={},t&&(e.headers.Authorization=t),n&&(e.headers[`X-Api-Key`]=n),e});function ze(e){return e}function I(e){return e?t=>(e(t),t):ze}I(),I();function Be(e){return F.get(`/v1/public/applications/${e}`)}I();function Ve(e,t){return N.get(`/v1/native/${L(e)}/version.txt`,{params:{channel:t},responseType:`text`})}function He(e,t){return N.get(`/v1/native/${L(e)}/files`,{params:{channel:t},responseType:`arraybuffer`})}function L(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function Ue(){return F.get(`/v1/public/raven/config`)}const We=I();function Ge(e,t){return F.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Ke(e,t){return F.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function qe(e,t){let n=new FormData;return n.append(`file`,t.chunk),F.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}function Je(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Ye(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let R;function Xe(e){R=e}var Ze=class extends M{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=p.join(w(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await _.mkdir(this.targetDir,{recursive:!0}),await this.checkForUpdates(e),clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.checkForUpdates(e),this.UPDATE_CHECK_INTERVAL_MS)}destroy(){this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=void 0),super.destroy()}async getCurrentVersion(e){try{let t=p.join(this.targetDir,e,`version.txt`);return await _.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return p.join(this.targetDir,e)}getTargetVersionPath(e,t){return p.join(this.getTargetPath(e),t)}async checkForUpdates(e){let t=global.OVERLAYED.APP_BUILD_CHANNEL;if(this.logger.log(`Checking for updates`),!t){this.logger.error(`Invalid VITE_BUILD_CHANNEL`);return}await R?.();for(let n of e)try{let{data:e}=await Ve(n,t),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r;this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t,i),this.logger.log(`${n} > Downloaded and extracted`),i&&(this.logger.log(`${n} > Cleaning up versions older than ${e}`),await this.cleanupOldVersions(n,e)),this.emit(`dllUpdated`,{identifier:n,version:e})}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n,r){let{data:i}=await He(e,n),a=this.getTargetPath(e),o=this.getTargetVersionPath(e,t);await _.mkdir(o,{recursive:!0});let s=new v;await s.loadAsync(i);let c=Object.keys(s.files).map(async t=>{let n=s.files[t];if(n&&!n.dir){let i=p.join(o,t);if(!r)try{await _.access(i,_.constants.F_OK);return}catch{this.logger.warn(`${e} > File missing, re-downloading: ${i}`)}let a=await n.async(`nodebuffer`);await _.writeFile(i,a)}});await Promise.all(c);let l=p.join(a,`version.txt`);this.logger.log(`Saving version file`,l),await _.writeFile(l,t)}async cleanupOldVersions(e,t){let n=p.join(this.targetDir,e),r=await _.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await _.rm(p.join(n,e.name),{recursive:!0,force:!0})}};const z=S(Ze);var Qe=class extends M{REFETCH_INTERVAL=1e3*60*5;FAILED_REFETCH_INTERVAL=1e3*30;_ravenConfig;_executableToGameMap=new Map;_executablesArray=[];_refetchIntervalHandler=null;_failedRefetchTimeoutHandler=null;constructor(){super(`RavenManager`)}init(){super.init(),this.fetchRavenConfig(),this._refetchIntervalHandler=setInterval(()=>{this._failedRefetchTimeoutHandler&&(clearTimeout(this._failedRefetchTimeoutHandler),this._failedRefetchTimeoutHandler=null),this.fetchRavenConfig()},this.REFETCH_INTERVAL)}getExecutableData(e){return this._executableToGameMap.get(e.toLowerCase())??null}get executables(){return this._executablesArray}get executablesMap(){return this._executableToGameMap}destroy(){this._refetchIntervalHandler&&clearInterval(this._refetchIntervalHandler),this._failedRefetchTimeoutHandler&&clearTimeout(this._failedRefetchTimeoutHandler),z.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{let e=await Ue(),t={games:[...e.data.games,{name:`Valorant`,identifier:We(`valorant`),executables:[`VALORANT-Win64-Shipping.exe`],modules:[]}]};this._ravenConfig=t,this.resetState();let n=new Set;for(let e of this._ravenConfig.games){for(let t of e.executables){let n=t.toLowerCase();this._executableToGameMap.set(n,e),this._executablesArray.push(n)}e.modules.forEach(e=>n.add(e))}await z.getInstance().initWithDlls(Array.from(n)),this.logger.log(`Raven updated`,this._ravenConfig),this.emit(`executablesUpdated`,{executables:this.executables,map:this._executableToGameMap})}catch(e){this.logger.error(`Failed to fetch Raven config`,e),this._failedRefetchTimeoutHandler=setTimeout(()=>this.fetchRavenConfig(),this.FAILED_REFETCH_INTERVAL)}}resetState(){this._executableToGameMap.clear(),this._executablesArray=[]}};const B=S(Qe),$e=e(import.meta.url),{PipeEventServer:et,PipeEventClient:tt,PipeEventBase:nt,ProcessMonitor:rt,Process:V,InjectionMethod:it,AccessLevel:at,HardwareInterface:H}=$e(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var ot=class extends M{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new rt}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),B.getInstance().on(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processMonitor.on(`create`,e=>{this.logger.log(`Process created`,e),this.addProcess(e),this.logger.log(`Active Process Count: ${this._processes.size}`),this.emit(`create`,{process:e})}),this._processMonitor.on(`destroy`,e=>{this.logger.log(`Process destroyed`,e),this.deleteProcess(e),this.logger.log(`Active Process Count: ${this._processes.size}`),this.emit(`destroy`,{process:e})})}destroy(){B.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){let t=this._processes.get(e);return t?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){e.executables.forEach(e=>{this.logger.log(`Monitoring process`,e),this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name),n=t?.filter(t=>t.id!==e.id)??[];n.length===0?this._processes.delete(e.name):this._processes.set(e.name,n)}};const U=S(ot),st=e(import.meta.url),{RenderInterface:ct,renderHookPath:lt}=st(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);var ut=class{_instance;_resolution;boundOnResolutionChanged=this.onResolutionChanged.bind(this);constructor(e){this._instance=e,this._resolution={width:0,height:0},this._instance.on(`resolution`,this.boundOnResolutionChanged)}destroy(){this._instance.off(`resolution`,this.boundOnResolutionChanged)}get instance(){return this._instance}get resolution(){return this._resolution}onResolutionChanged(e,t){this._resolution={width:e,height:t}}},dt=class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new ut(new ct(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}};const W=S(dt);var ft=class{_clientId=null;_userId=null;options;eventQueue;set clientId(e){this._clientId=e}set userId(e){this._userId=e}constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new _e,this.setupFlushInterval()}track(e,t){this.eventQueue.add({name:e,data:t,createdAt:new Date().toISOString()})}flush(){let e=Array.from(this.eventQueue.flush()),t=e.concat({name:`ping`,data:{},createdAt:new Date().toISOString()});return t}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}};const G=S(ft),pt=e(import.meta.url),mt=pt.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`);var ht=class extends Fe{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}init(){super.init(),W.getInstance().createInterface(`OGG_SIEGE`),U.getInstance().on(`create`,this.boundOnProcessCreate),U.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){U.getInstance().off(`create`,this.boundOnProcessCreate),U.getInstance().off(`destroy`,this.boundOnProcessDestroy),super.destroy()}async onProcessCreate({process:e}){let t=this.getRavenGame(e);if(!t)return;if(this.subscribedGames.size===0){this.logger.warn(`No subscribed games, skipping`);return}if(!this.subscribedGames.has(t.identifier)&&!this.subscribedGames.has(`*`))return;let n=new AbortController;if(await this.emit(`gameLaunch`,{game:t.identifier,reject:()=>n.abort}),n.signal.aborted)return;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,V.currentProcess.isElevated),e.isElevated&&!V.currentProcess.isElevated){C.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!V.currentProcess.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:V.currentProcess.isElevated,gameElevated:e.isElevated});return}let r=this.copyDll(mt);if(r)try{await e.injectDll(r),this.logger.log(`Render Interface Injection Successful`,r)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:r})}let i=t?.modules.map(async t=>{let n=await z.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=z.getInstance().getTargetVersionPath(t,n);this.logger.log(`DLL Path`,r);let i=await this.getDllFiles(r);return this.logger.log(`DLL Files`,i),Promise.all(i.map(async t=>{let n=p.basename(t),i=p.join(r,n);if(!i)return Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(i),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,{game:t.identifier}),G.getInstance().track(`game_launch`,{game:t.identifier})}copyDll(e){let t=p.basename(e),n=ee(e),r=p.join(w(),`resources`),i=p.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{m(r)||ie(r,{recursive:!0});let e=h(n);oe(i,e),ne(n,i)}catch(e){return e.code===`EBUSY`?i:(this.logger.error(`Failed to copy`,e),this.logger.error(`Failed to copy`,{originalPath:n,targetPath:i}),!1)}return i}async getDllFiles(e){try{let t=await _.readdir(e);return t.filter(e=>e.endsWith(`.dll`)).map(t=>p.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this.emit(`gameCloseInternal`,{ravenGame:t,process:e}),this.emit(`gameClose`,{game:t.identifier}),G.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=B.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}};const K=S(ht);var gt=class extends j{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),K.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){K.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=h(n.path),i=se(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{let e=await Ge(t.identifier,i);a=e.data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new v;o.file(n.name,r);let s=await o.generateAsync({type:`blob`});try{this.logger.log(`Uploading build (size: `,s.size,` bytes)`);let e=new Ce(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Ke(t.identifier,{build_hash:i,chunk_count:e.totalChunks,file_size_bytes:s.size});await e.chunk(async(e,r)=>{this.logger.log(`Uploading chunk`,r),await qe(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Je(e)?Ye(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}};const q=S(gt);function _t(e=[]){return p.normalize(p.join(T(global.OVERLAYED.APPLICATION_ID),...e))}const vt=r({game:`string`,type:`string`,creation_time:`number`});var J=function(e){return e[e.LeftButton=1]=`LeftButton`,e[e.RightButton=2]=`RightButton`,e[e.Cancel=3]=`Cancel`,e[e.MiddleButton=4]=`MiddleButton`,e[e.ExtraButton1=5]=`ExtraButton1`,e[e.ExtraButton2=6]=`ExtraButton2`,e[e.Back=8]=`Back`,e[e.Tab=9]=`Tab`,e[e.Clear=12]=`Clear`,e[e.Return=13]=`Return`,e[e.Shift=16]=`Shift`,e[e.Control=17]=`Control`,e[e.Menu=18]=`Menu`,e[e.Pause=19]=`Pause`,e[e.CapsLock=20]=`CapsLock`,e[e.Kana=21]=`Kana`,e[e.Hangeul=21]=`Hangeul`,e[e.Hangul=21]=`Hangul`,e[e.Junja=23]=`Junja`,e[e.Final=24]=`Final`,e[e.Hanja=25]=`Hanja`,e[e.Kanji=25]=`Kanji`,e[e.Escape=27]=`Escape`,e[e.Convert=28]=`Convert`,e[e.NonConvert=29]=`NonConvert`,e[e.Accept=30]=`Accept`,e[e.ModeChange=31]=`ModeChange`,e[e.Space=32]=`Space`,e[e.Prior=33]=`Prior`,e[e.Next=34]=`Next`,e[e.End=35]=`End`,e[e.Home=36]=`Home`,e[e.Left=37]=`Left`,e[e.Up=38]=`Up`,e[e.Right=39]=`Right`,e[e.Down=40]=`Down`,e[e.Select=41]=`Select`,e[e.Print=42]=`Print`,e[e.Execute=43]=`Execute`,e[e.Snapshot=44]=`Snapshot`,e[e.Insert=45]=`Insert`,e[e.Delete=46]=`Delete`,e[e.Help=47]=`Help`,e[e.N0=48]=`N0`,e[e.N1=49]=`N1`,e[e.N2=50]=`N2`,e[e.N3=51]=`N3`,e[e.N4=52]=`N4`,e[e.N5=53]=`N5`,e[e.N6=54]=`N6`,e[e.N7=55]=`N7`,e[e.N8=56]=`N8`,e[e.N9=57]=`N9`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.LeftWindows=91]=`LeftWindows`,e[e.RightWindows=92]=`RightWindows`,e[e.Application=93]=`Application`,e[e.Sleep=95]=`Sleep`,e[e.Numpad0=96]=`Numpad0`,e[e.Numpad1=97]=`Numpad1`,e[e.Numpad2=98]=`Numpad2`,e[e.Numpad3=99]=`Numpad3`,e[e.Numpad4=100]=`Numpad4`,e[e.Numpad5=101]=`Numpad5`,e[e.Numpad6=102]=`Numpad6`,e[e.Numpad7=103]=`Numpad7`,e[e.Numpad8=104]=`Numpad8`,e[e.Numpad9=105]=`Numpad9`,e[e.Multiply=106]=`Multiply`,e[e.Add=107]=`Add`,e[e.Separator=108]=`Separator`,e[e.Subtract=109]=`Subtract`,e[e.Decimal=110]=`Decimal`,e[e.Divide=111]=`Divide`,e[e.F1=112]=`F1`,e[e.F2=113]=`F2`,e[e.F3=114]=`F3`,e[e.F4=115]=`F4`,e[e.F5=116]=`F5`,e[e.F6=117]=`F6`,e[e.F7=118]=`F7`,e[e.F8=119]=`F8`,e[e.F9=120]=`F9`,e[e.F10=121]=`F10`,e[e.F11=122]=`F11`,e[e.F12=123]=`F12`,e[e.F13=124]=`F13`,e[e.F14=125]=`F14`,e[e.F15=126]=`F15`,e[e.F16=127]=`F16`,e[e.F17=128]=`F17`,e[e.F18=129]=`F18`,e[e.F19=130]=`F19`,e[e.F20=131]=`F20`,e[e.F21=132]=`F21`,e[e.F22=133]=`F22`,e[e.F23=134]=`F23`,e[e.F24=135]=`F24`,e[e.NumLock=144]=`NumLock`,e[e.ScrollLock=145]=`ScrollLock`,e[e.NEC_Equal=146]=`NEC_Equal`,e[e.Fujitsu_Jisho=146]=`Fujitsu_Jisho`,e[e.Fujitsu_Masshou=147]=`Fujitsu_Masshou`,e[e.Fujitsu_Touroku=148]=`Fujitsu_Touroku`,e[e.Fujitsu_Loya=149]=`Fujitsu_Loya`,e[e.Fujitsu_Roya=150]=`Fujitsu_Roya`,e[e.LeftShift=160]=`LeftShift`,e[e.RightShift=161]=`RightShift`,e[e.LeftControl=162]=`LeftControl`,e[e.RightControl=163]=`RightControl`,e[e.LeftMenu=164]=`LeftMenu`,e[e.RightMenu=165]=`RightMenu`,e[e.BrowserBack=166]=`BrowserBack`,e[e.BrowserForward=167]=`BrowserForward`,e[e.BrowserRefresh=168]=`BrowserRefresh`,e[e.BrowserStop=169]=`BrowserStop`,e[e.BrowserSearch=170]=`BrowserSearch`,e[e.BrowserFavorites=171]=`BrowserFavorites`,e[e.BrowserHome=172]=`BrowserHome`,e[e.VolumeMute=173]=`VolumeMute`,e[e.VolumeDown=174]=`VolumeDown`,e[e.VolumeUp=175]=`VolumeUp`,e[e.MediaNextTrack=176]=`MediaNextTrack`,e[e.MediaPrevTrack=177]=`MediaPrevTrack`,e[e.MediaStop=178]=`MediaStop`,e[e.MediaPlayPause=179]=`MediaPlayPause`,e[e.LaunchMail=180]=`LaunchMail`,e[e.LaunchMediaSelect=181]=`LaunchMediaSelect`,e[e.LaunchApplication1=182]=`LaunchApplication1`,e[e.LaunchApplication2=183]=`LaunchApplication2`,e[e.OEM1=186]=`OEM1`,e[e.OEMPlus=187]=`OEMPlus`,e[e.OEMComma=188]=`OEMComma`,e[e.OEMMinus=189]=`OEMMinus`,e[e.OEMPeriod=190]=`OEMPeriod`,e[e.OEM2=191]=`OEM2`,e[e.OEM3=192]=`OEM3`,e[e.OEM4=219]=`OEM4`,e[e.OEM5=220]=`OEM5`,e[e.OEM6=221]=`OEM6`,e[e.OEM7=222]=`OEM7`,e[e.OEM8=223]=`OEM8`,e[e.OEMAX=225]=`OEMAX`,e[e.OEM102=226]=`OEM102`,e[e.ICOHelp=227]=`ICOHelp`,e[e.ICO00=228]=`ICO00`,e[e.ProcessKey=229]=`ProcessKey`,e[e.ICOClear=230]=`ICOClear`,e[e.Packet=231]=`Packet`,e[e.OEMReset=233]=`OEMReset`,e[e.OEMJump=234]=`OEMJump`,e[e.OEMPA1=235]=`OEMPA1`,e[e.OEMPA2=236]=`OEMPA2`,e[e.OEMPA3=237]=`OEMPA3`,e[e.OEMWSCtrl=238]=`OEMWSCtrl`,e[e.OEMCUSel=239]=`OEMCUSel`,e[e.OEMATTN=240]=`OEMATTN`,e[e.OEMFinish=241]=`OEMFinish`,e[e.OEMCopy=242]=`OEMCopy`,e[e.OEMAuto=243]=`OEMAuto`,e[e.OEMENLW=244]=`OEMENLW`,e[e.OEMBackTab=245]=`OEMBackTab`,e[e.ATTN=246]=`ATTN`,e[e.CRSel=247]=`CRSel`,e[e.EXSel=248]=`EXSel`,e[e.EREOF=249]=`EREOF`,e[e.Play=250]=`Play`,e[e.Zoom=251]=`Zoom`,e[e.Noname=252]=`Noname`,e[e.PA1=253]=`PA1`,e[e.OEMClear=254]=`OEMClear`,e}(J||{});const Y=new Map([[J.LeftButton,`LeftButton`],[J.RightButton,`RightButton`],[J.Cancel,`Cancel`],[J.MiddleButton,`MiddleButton`],[J.ExtraButton1,`ExtraButton1`],[J.ExtraButton2,`ExtraButton2`],[J.Back,`Backspace`],[J.Tab,`Tab`],[J.Clear,`Clear`],[J.Return,`Enter`],[J.Shift,`ShiftLeft`],[J.Control,`ControlLeft`],[J.Menu,`AltLeft`],[J.Pause,`Pause`],[J.CapsLock,`CapsLock`],[J.Kana,`KanaMode`],[J.Junja,`JunjaMode`],[J.Final,`Finalize`],[J.Hanja,`HanjaMode`],[J.Escape,`Escape`],[J.Convert,`Convert`],[J.NonConvert,`NonConvert`],[J.Accept,`Accept`],[J.ModeChange,`ModeChange`],[J.Space,`Space`],[J.Prior,`PageUp`],[J.Next,`PageDown`],[J.End,`End`],[J.Home,`Home`],[J.Left,`ArrowLeft`],[J.Up,`ArrowUp`],[J.Right,`ArrowRight`],[J.Down,`ArrowDown`],[J.Select,`Select`],[J.Print,`PrintScreen`],[J.Execute,`Execute`],[J.Snapshot,`Snapshot`],[J.Insert,`Insert`],[J.Delete,`Delete`],[J.Help,`Help`],[J.N0,`Digit0`],[J.N1,`Digit1`],[J.N2,`Digit2`],[J.N3,`Digit3`],[J.N4,`Digit4`],[J.N5,`Digit5`],[J.N6,`Digit6`],[J.N7,`Digit7`],[J.N8,`Digit8`],[J.N9,`Digit9`],[J.A,`KeyA`],[J.B,`KeyB`],[J.C,`KeyC`],[J.D,`KeyD`],[J.E,`KeyE`],[J.F,`KeyF`],[J.G,`KeyG`],[J.H,`KeyH`],[J.I,`KeyI`],[J.J,`KeyJ`],[J.K,`KeyK`],[J.L,`KeyL`],[J.M,`KeyM`],[J.N,`KeyN`],[J.O,`KeyO`],[J.P,`KeyP`],[J.Q,`KeyQ`],[J.R,`KeyR`],[J.S,`KeyS`],[J.T,`KeyT`],[J.U,`KeyU`],[J.V,`KeyV`],[J.W,`KeyW`],[J.X,`KeyX`],[J.Y,`KeyY`],[J.Z,`KeyZ`],[J.LeftWindows,`MetaLeft`],[J.RightWindows,`MetaRight`],[J.Application,`ContextMenu`],[J.Sleep,`Sleep`],[J.Numpad0,`Numpad0`],[J.Numpad1,`Numpad1`],[J.Numpad2,`Numpad2`],[J.Numpad3,`Numpad3`],[J.Numpad4,`Numpad4`],[J.Numpad5,`Numpad5`],[J.Numpad6,`Numpad6`],[J.Numpad7,`Numpad7`],[J.Numpad8,`Numpad8`],[J.Numpad9,`Numpad9`],[J.Multiply,`NumpadMultiply`],[J.Add,`NumpadAdd`],[J.Separator,`NumpadSeparator`],[J.Subtract,`NumpadSubtract`],[J.Decimal,`NumpadDecimal`],[J.Divide,`NumpadDivide`],[J.F1,`F1`],[J.F2,`F2`],[J.F3,`F3`],[J.F4,`F4`],[J.F5,`F5`],[J.F6,`F6`],[J.F7,`F7`],[J.F8,`F8`],[J.F9,`F9`],[J.F10,`F10`],[J.F11,`F11`],[J.F12,`F12`],[J.F13,`F13`],[J.F14,`F14`],[J.F15,`F15`],[J.F16,`F16`],[J.F17,`F17`],[J.F18,`F18`],[J.F19,`F19`],[J.F20,`F20`],[J.F21,`F21`],[J.F22,`F22`],[J.F23,`F23`],[J.F24,`F24`],[J.NumLock,`NumLock`],[J.ScrollLock,`ScrollLock`],[J.NEC_Equal,`NEC_Equal`],[J.Fujitsu_Masshou,`Fujitsu_Masshou`],[J.Fujitsu_Touroku,`Fujitsu_Touroku`],[J.Fujitsu_Loya,`Fujitsu_Loya`],[J.Fujitsu_Roya,`Fujitsu_Roya`],[J.LeftShift,`ShiftLeft`],[J.RightShift,`ShiftRight`],[J.LeftControl,`ControlLeft`],[J.RightControl,`ControlRight`],[J.LeftMenu,`AltLeft`],[J.RightMenu,`AltRight`],[J.BrowserBack,`BrowserBack`],[J.BrowserForward,`BrowserForward`],[J.BrowserRefresh,`BrowserRefresh`],[J.BrowserStop,`BrowserStop`],[J.BrowserSearch,`BrowserSearch`],[J.BrowserFavorites,`BrowserFavorites`],[J.BrowserHome,`BrowserHome`],[J.VolumeMute,`VolumeMute`],[J.VolumeDown,`VolumeDown`],[J.VolumeUp,`VolumeUp`],[J.MediaNextTrack,`MediaTrackNext`],[J.MediaPrevTrack,`MediaTrackPrevious`],[J.MediaStop,`MediaStop`],[J.MediaPlayPause,`MediaPlayPause`],[J.LaunchMail,`LaunchMail`],[J.LaunchMediaSelect,`LaunchMediaSelect`],[J.LaunchApplication1,`LaunchApplication1`],[J.LaunchApplication2,`LaunchApplication2`],[J.OEM1,`OEM_1`],[J.OEMPlus,`Equal`],[J.OEMComma,`Comma`],[J.OEMMinus,`Minus`],[J.OEMPeriod,`Period`],[J.OEM2,`Slash`],[J.OEM3,`Backquote`],[J.OEM4,`BracketLeft`],[J.OEM5,`Backslash`],[J.OEM6,`BracketRight`],[J.OEM7,`Quote`],[J.OEM8,`IntlRo`],[J.OEMAX,`OEM_AX`],[J.OEM102,`IntlBackslash`],[J.ICOHelp,`ICO_HELP`],[J.ICO00,`ICO_00`],[J.ProcessKey,`Process`],[J.ICOClear,`ICO_CLEAR`],[J.Packet,`Packet`],[J.OEMReset,`OEM_Reset`],[J.OEMJump,`OEM_Jump`],[J.OEMPA1,`OEM_PA1`],[J.OEMPA2,`OEM_PA2`],[J.OEMPA3,`OEM_PA3`],[J.OEMWSCtrl,`OEM_WS_Ctrl`],[J.OEMCUSel,`OEM_CU_Sel`],[J.OEMATTN,`OEM_ATTN`],[J.OEMFinish,`OEM_Finish`],[J.OEMCopy,`OEM_Copy`],[J.OEMAuto,`OEM_Auto`],[J.OEMENLW,`OEM_ENLW`],[J.OEMBackTab,`BackTab`],[J.ATTN,`ATTN`],[J.CRSel,`CRSel`],[J.EXSel,`EXSel`],[J.EREOF,`EREOF`],[J.Play,`MediaPlay`],[J.Zoom,`Zoom`],[J.Noname,`Noname`],[J.PA1,`PA1`],[J.OEMClear,`OEM_Clear`]]),yt=new Map(Y.entries().map(([e,t])=>[t,e])),bt=r({"[string]":{keys:`string[]`,mode:r(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var xt=class extends M{preferencesKeybindToCallbacks=new Map;pressedKeys=new Set;activeKeybinds=new Set;triggeredToggleKeybinds=new Set;boundHandleKeyboardFocus=this.handleKeyboardFocus.bind(this);boundHandleKeyDown=this.handleKeyDown.bind(this);boundHandleKeyUp=this.handleKeyUp.bind(this);keybindsFile;keybindListeningPaused=!1;constructor(e){super(`KeybindManager`),this.keybindsFile=new be({path:_t([`keybinds.json`]),schema:bt,default:e})}init(){super.init();let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.on(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.on(`keyDown`,this.boundHandleKeyDown),e.instance.on(`keyUp`,this.boundHandleKeyUp)}async onKeybindToggled(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.toggle=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.down=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.up=t,this.preferencesKeybindToCallbacks.set(e,n)}async updateKeybind(e,t){this.keybindsFile.set({[e]:t})}async updateKeybinds(e){let t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0));this.keybindsFile.set({...this.keybindsFile.get(),...t})}getConfig(){return this.keybindsFile.get()}destroy(){let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.off(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.off(`keyDown`,this.boundHandleKeyDown),e.instance.off(`keyUp`,this.boundHandleKeyUp),super.destroy()}handleKeyDown(e){if(this.keybindListeningPaused)return;let t=Y.get(e.key);if(!t){this.logger.error(`Unknown key down`,e);return}this.pressedKeys.add(t),this.checkKeybindings()}handleKeyboardFocus(){this.pressedKeys.clear(),this.activeKeybinds.clear(),this.triggeredToggleKeybinds.clear()}async handleKeyUp(e){if(this.keybindListeningPaused)return;let t=Y.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries()){let r=n[e];r.keys.includes(t)&&this.triggeredToggleKeybinds.delete(e)}this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up)continue;let r=e[t];this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))&&(this.activeKeybinds.delete(t),n.up(),this.logger.log(`Keybind up triggered`,this.getKeybindToString(r)))}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.length===this.pressedKeys.size&&r.keys.every(e=>yt.has(e)?this.pressedKeys.has(e):!1);if(i){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.every(e=>yt.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1));i&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&!this.triggeredToggleKeybinds.has(n)){let r=t.toggle();this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&!this.activeKeybinds.has(n)){let r=t.down();r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}},St=class extends j{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=W.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}};const Ct=S(St,`OGG_SIEGE`);var wt=me((exports,t)=>{var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e,t)=>{var n=new Set([`mouseDown`,`mouseUp`,`pointerDown`,`pointerUp`]),r=new WeakSet;function i(e,t,{allowHosts:i}={}){let{shell:a}=t;if(r.has(e))return;r.add(e);let o=e.webContents;function s(e){return!!(!c(e)||i?.includes(e.host))}function c(e){return new URL(o.getURL()).origin!==e.origin}let l=0;function u(){l=Date.now()}function d(){let e=Date.now()-l,t=e<150;return t||console.warn(`was not recently active`,e),t}if(process.platform===`win32`){let t={KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576};for(let n of Object.values(t))e.hookWindowMessage(n,u)}o.on(`input-event`,(e,t)=>{n.has(t.type)&&u()}),o.on(`will-navigate`,(e,t)=>{let n=e.url||t;if(console.log(`will-navigate`,n),!n)return;let r=new URL(n);if(!s(r)){if(!d()){console.log(`blocked navigation`,n),e.preventDefault();return}c(r)&&(console.log(`external navigation`,n),e.preventDefault(),a.openExternal(n))}}),o.session.on(`will-download`,(e,t)=>{let n=t.getURL();/^blob:/.test(n)||e.preventDefault()}),o.setWindowOpenHandler(e=>{console.log(`window-open`,e.url);let{url:t}=e,n=new URL(t);if(!s(n))return d()?(c(n)&&a.openExternal(e.url),{action:`deny`}):(console.log(`blocked navigation`,t),{action:`deny`})})}t.exports=i}),i=n((e,t)=>{var n=new Set([`Mozilla`,`AppleWebKit`,`Chrome`,`Safari`,`Gecko`,`Firefox`,`OPR`,`Edg`,`Version`,`Mobile`,`curl`,`PostmanRuntime`]);async function r(e,t,r){let{webContents:i}=e,a=await i.executeJavaScript(`navigator.userAgent`);a=a.match(/[^\/]+\/[^\s]+( \([^\)]+\))?/g).map(e=>e.trim()).filter(e=>{let[t]=e.split(`/`,1);return n.has(t)}).join(` `),i.setUserAgent(a),t.app.userAgentFallback=a}t.exports=r}),a=r(),o=i();function s(e,t,n={}){a(e,t,n.linkHandler),o(e,t,n.userAgent)}t.exports={setupRevUtils:s,setupLinkHandler:a,setUserAgent:o}}),Tt=ge(wt(),1);let X=!1,Z;function Et(e){let{init:t=!0}=e;if(Dt(e),O.getInstance().init(e.applicationId),X)return Z;function n(){Vt(e);let t=new Map,r=At(e.modules,t),i=jt(),a=Nt(e.keybinds),o=Pt(),s=Ft(),c=Lt(),l=It(),u=Rt();Ot(e),Mt(e,t),X=!0,Z={...r,...i,ads:c,keybinds:a,windows:o,input:s,cortex:l,hasAnyActiveProcesses:()=>U.getInstance().hasAnyActiveProcesses,init:n,log:u,initialized:X}}return t?(n(),Z):new Proxy({init:n},{get:(e,t)=>{if(t!==`init`&&!X)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Z[t]}})}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Dt(e){global.OVERLAYED={APPLICATION_ID:e.applicationId,APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??y.getVersion(),electron:e.electron}}function Ot(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);K.getInstance().setSubscribedGames(t),q.getInstance().init(),K.getInstance().init(),U.getInstance().init(),B.getInstance().init();async function n(){let e=Be(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=H.generateUniqueIdentifier();O.getInstance().log(`userId`,t);let n={...await e,userId:t};return O.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r=r??n(),r)),y.on(`quit`,()=>{kt()})}function kt(){B.getInstance().destroy(),K.getInstance().destroy(),q.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),A.getInstance().destroy(),C.getInstance().destroy()}function At(e,t){return e.reduce((e,n)=>{let r=n.key;return e[r]={on(e,n){let i=Q(r,e),a=t.get(i)??new Set;a.add(n),t.set(i,a)},onAny(e){let n=Q(r,`*`),i=t.get(n)??new Set;i.add(e),t.set(n,i)},off(e,n){let i=Q(r,e),a=t.get(i)??new Set;a.delete(n),t.set(i,a)},offAny(e){let n=Q(r,`*`),i=t.get(n)??new Set;i.delete(e),t.set(n,i)}},e},{})}function jt(){let e=C.getInstance(),t=K.getInstance();return{on:(n,r)=>{switch(n){case`fatal`:e.on(`fatal`,r);break;case`error`:e.on(`error`,r);break;case`warning`:e.on(`warning`,r);break;case`gameLaunch`:t.on(`gameLaunch`,r);break;case`gameClose`:t.on(`gameClose`,r);break;case`gameReady`:t.on(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}},off:(n,r)=>{switch(n){case`fatal`:e.off(`fatal`,r);break;case`error`:e.off(`error`,r);break;case`warning`:e.off(`warning`,r);break;case`gameLaunch`:t.off(`gameLaunch`,r);break;case`gameClose`:t.off(`gameClose`,r);break;case`gameReady`:t.off(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}}}}function Q(e,t){return`${e}:${t}`}function Mt(e,t){let n=A.getInstance();function i(n){let i=vt(n);if(i instanceof r.errors){C.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let a=e.modules.find(e=>e.key===i.game),o=a?.events.event;if(!o)return;let s=o(n);if(s instanceof r.errors){C.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:s.summary});return}let c=Q(a.key,s.type),l=Q(a.key,`*`),u=t.get(c),d=t.get(l),f=[...Array.from(u??[]),...Array.from(d??[])];f.length!==0&&f.forEach(e=>{e(s)})}return n.on(`data`,e=>e.forEach(i)),n.on(`error`,e=>{C.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),n}function Nt(e){let t=new xt(e),n={};for(let r in e)n[r]={on:(e,n)=>{switch(e){case`down`:t.onKeybindDown(r,n);break;case`up`:t.onKeybindUp(r,n);break;case`toggle`:t.onKeybindToggled(r,n);break;default:throw Error(`Event type not implemented ${e}`,{cause:[e,n]})}}};let r={...n,getConfig:()=>t.getConfig(),pauseKeybindListening:()=>{t.keybindListeningPaused=!0},resumeKeybindListening:()=>{t.keybindListeningPaused=!1},updateKeybind:(e,n)=>{t.updateKeybind(e,n)},updateKeybinds:e=>{t.updateKeybinds(e)}};return t.init(),y.on(`quit`,()=>{t.destroy()}),r}function Pt(){return{createWindow:e=>$().instance.newWindowInternal(ce.BrowserWindow,e),on:(e,t)=>$().instance.on(e,t),off:(e,t)=>$().instance.off(e,t),once:(e,t)=>$().instance.once(e,t),addListener:(e,t)=>$().instance.addListener(e,t),removeListener:(e,t)=>$().instance.removeListener(e,t),removeAllListeners:()=>$().instance.removeAllListeners(),prependListener:(e,t)=>$().instance.prependListener(e,t),prependOnceListener:(e,t)=>$().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=$(),t=A.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}function Ft(){return{scope:e=>Ct.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>$().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>$().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>$().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>$().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>$().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>$().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>$().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>$().instance.getKeyInputBlock(e)}}}function It(){return{track:(e,t)=>G.getInstance().track(`custom__${e}`,t)}}function Lt(){return{registerWindow:e=>{(0,Tt.setupRevUtils)(e,global.OVERLAYED.electron)}}}function Rt(){let e=new D(`app.log`);return e.init(global.OVERLAYED.APPLICATION_ID),{scope:t=>e.scope(t),info:t=>e.info(t),warn:t=>e.warn(t),error:t=>e.error(t),submitBugReport:async(e,t)=>{try{let n=zt(t),r=await n.generateAsync({type:`base64`}),i=await Bt(e,r);return i?[void 0,{message:`Failed to submit bug report`,error:i}]:[!0,void 0]}catch(e){return[void 0,{message:`Failed to generate logs zip`,error:e}]}}}}function zt(e){let t=E(global.OVERLAYED.APPLICATION_ID),n=k(t),r=Se(),i=k(r);O.getInstance().info(`Logs path: `,t),O.getInstance().info(`Overlayed logs path: `,r);let a=new v;return[...n,...i].forEach(([e,t])=>{O.getInstance().info(`Zipping: `,e,t);let n=`${e}/${t}`,r=re(n);a.file(t,r,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{O.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function Bt(e,t){let n={...e,version:`${global.OVERLAYED.APP_VERSION}@${global.OVERLAYED.APP_BUILD_CHANNEL}`,log_zip:`data:application/zip;base64,${t}`},r;return await fetch(`https://api.stats.cc/v1/overlay/contact`,{method:`POST`,body:JSON.stringify(n),redirect:`follow`,headers:{"Content-Type":`application/json`}}).then(async e=>{e.status>=300&&(r=await e.text())}).catch(e=>{r=e.message}),r}function Vt(e){G.getInstance().clientId=e.applicationId,G.getInstance().userId=H.generateUniqueIdentifier(),C.getInstance().on(`fatal`,e=>{G.getInstance().track(`fatal`,{message:e.message,code:e.code,data:e.data})}),C.getInstance().on(`error`,e=>{G.getInstance().track(`error`,{message:e.message,code:e.code,data:e.data})}),C.getInstance().on(`warning`,e=>{G.getInstance().track(`warning`,{message:e.message,code:e.code,data:e.data})})}function $(){return W.getInstance().getInterface(`OGG_SIEGE`)}export{we as defineConfig,Et as overlayed,Xe as setFetchLatestTokenCallback,Ie as setUpdaterTokenResolver};
|
|
1
|
+
import{createRequire as e}from"node:module";import t from"mitt";import{Type as n,type as r}from"arktype";import i,{createWriteStream as a,existsSync as o,mkdirSync as s,readdirSync as c,unlinkSync as l,writeFileSync as u}from"fs";import{ensureFileSync as d}from"fs-extra";import{join as f}from"path";import p,{resolve as ee}from"node:path";import te from"events";import{copyFileSync as ne,createReadStream as re,existsSync as m,mkdirSync as ie,readFileSync as h,readdirSync as ae,writeFileSync as oe}from"node:fs";import"glob";import"jiti";import g from"xior";import _ from"fs/promises";import v from"jszip";import{createHash as se}from"node:crypto";import{app as ce}from"electron";var le=Object.create,y=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,de=Object.getOwnPropertyNames,fe=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty,me=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),he=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=de(t),a=0,o=i.length,s;a<o;a++)s=i[a],!pe.call(e,s)&&s!==n&&y(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ue(t,s))||r.enumerable});return e},ge=(e,t,n)=>(n=e==null?{}:le(fe(e)),he(t||!e||!e.__esModule?y(n,`default`,{value:e,enumerable:!0}):n,e)),b=class{data=[];constructor(){}get size(){return this.data.length}add(e){this.data.push(e)}next(){return this.data.shift()}clear(){this.data.length=0}*flush(){for(;this.size>0;){let e=this.next();e&&(yield e)}}},x=class{emitter;constructor(){this.emitter=t()}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}emit(e,t){this.emitter.emit(e,t)}removeAllListeners(){this.emitter.all.clear()}},_e=class{listeners;constructor(){this.listeners=new Map}on(e,t){let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)}off(e,t){let n=this.listeners.get(e);n&&n.delete(t)}async emit(e,...t){let n=this.listeners.get(e)||new Set,r=this.listeners.get(`*`)||new Set,i=[...Array.from(n),...Array.from(r)];if(i.length===0)return[];let a=await Promise.all(i.map(async n=>{try{let e=n(...t);return e instanceof Promise?await e:e}catch(t){console.error(`Error in event listener for ${String(e)}:`,t);return}}));return a}removeAllListeners(){this.listeners.clear()}};function S(e,...t){let n=class extends e{static _instance;static getInstance(){return this._instance||(this._instance=new e(...t)),this._instance}static clearInstance(){this._instance=void 0}};return n}var ve=class extends x{destroy(){this.removeAllListeners()}fatal(e,t,n){this.emit(`fatal`,{code:t,message:e,data:n,timestamp:Date.now()})}error(e,t,n){this.emit(`error`,{code:t,message:e,data:n,timestamp:Date.now()})}warn(e,t,n){this.emit(`warning`,{code:t,message:e,data:n,timestamp:Date.now()})}};const C=S(ve);var ye=class{data;_schema;_defaultValue;_path;constructor(e){let{schema:t,default:n,path:r}=e;this._schema=t,this._defaultValue=n,this._path=r}set(e){let t=this._schema[`~standard`].validate(e);if(t instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);if(t.issues){this.reportInvalidConfigFile(t.issues);return}this.data=this.onBeforeSave(e),this.save(e)}get(){return this.data?this.data:this.load()}getKey(e){let t=this.get();return t[e]}save(e){let t=this.onBeforeSave(e);try{d(this.getFilePath()),i.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(){if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return this.data=e,e}try{let e=i.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=r(`string.json.parse`).to(`object`),n=t(e);if(n instanceof r.errors)return this._defaultValue;let i=this._schema[`~standard`].validate(n);if(i instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return i.issues?this.migrate(n,this._defaultValue):this.migrate(i.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return i.accessSync(e,i.constants.R_OK|i.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return i.accessSync(e,i.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r))continue;r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]}return n}reportInvalidConfigFile(e){C.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}},be=class e extends x{stream;logPath;baseFileName;currentDate;rotationCheckInterval;isRotating=!1;constructor(e,t){super(),this.logPath=e,this.baseFileName=t.replace(`.log`,``),this.currentDate=this.getDateString(new Date),this.ensureLogDirectory(),this.ensureLogFile(),this.stream=this.createStream(),this.rotationCheckInterval=this.startRotationCheck(),this.cleanupOldLogs()}static scope(t,n){return new e(t,n)}log(...e){this.write(`log`,...e)}error(...e){this.write(`error`,...e)}warn(...e){this.write(`warn`,...e)}info(...e){this.write(`info`,...e)}debug(...e){this.write(`debug`,...e)}async close(){clearInterval(this.rotationCheckInterval),await new Promise(e=>{this.stream.end(()=>e())})}getCurrentFileName(){return this.getFileName(this.currentDate)}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{s(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=f(this.logPath,this.getFileName(this.currentDate));if(!o(e))try{u(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return e.toISOString().split(`T`)[0]}createStream(){let e=f(this.logPath,this.getFileName(this.currentDate));return a(e,{flags:`a`,encoding:`utf8`})}async rotateLogs(){if(this.isRotating)return;this.isRotating=!0;let e=this.getDateString(new Date);e!==this.currentDate&&await new Promise(t=>{this.stream.end(()=>{this.currentDate=e,this.stream=this.createStream(),this.cleanupOldLogs(),t()})}),this.isRotating=!1}startRotationCheck(){return setInterval(()=>this.rotateLogs(),6e4)}cleanupOldLogs(){let e=c(this.logPath),t=new Date;t.setDate(t.getDate()-3),e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let n=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``),r=new Date(n);return r<t}).forEach(e=>{try{l(f(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}write(e,...t){let n=new Date,r=n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getMilliseconds().toString().padStart(3,`0`)}`,i=t.map(e=>typeof e==`object`?JSON.stringify(e,void 0,2):String(e)).join(` `),a=`[${r}] [${e}] ${i}\n`;this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}};const w=()=>p.join(process.env.APPDATA??``,`overlayed`),xe=()=>p.join(w(),`logs`),T=e=>p.join(w(),`apps`,e),E=e=>p.join(T(e),`logs`);var D=class{fileLogger;path;appId;messageQueue=new b;fileName;_debug=!1;constructor(e){this.fileName=e,this._debug=!1}init(e,t=!1){this.appId=e,this._debug=t,this.path=E(e),this.fileLogger=new be(this.path,this.fileName),this.messageQueue.flush().forEach(e=>{this.fileLogger?.[e.type](...e.args)})}scope(e){if(!this.appId||!this.path)throw Error(`Logger not initialized`);let t=`[${e}]`;return{scope:e=>this.scope(e),error:(...e)=>this.error(t,...e),warn:(...e)=>this.warn(t,...e),info:(...e)=>this.info(t,...e),log:(...e)=>this.log(t,...e),debug:(...e)=>this.debug(t,...e)}}error(...e){this.handle(`error`,...e)}warn(...e){this.handle(`warn`,...e)}info(...e){this.handle(`log`,...e)}debug(...e){this._debug&&this.handle(`debug`,...e)}log(...e){this.handle(`log`,...e)}handle(e,...t){console[e](...t),this.fileLogger?this.fileLogger[e](...t):this.messageQueue.add({type:e,args:t})}};const O=S(D,`main.log`);var Se=class extends te{blob;chunkSizeMb;maxConcurrent;shouldStop=!1;constructor(e,t){super(),this.blob=e,this.chunkSizeMb=t.chunkSizeMb,this.maxConcurrent=t.maxConcurrent??3}get totalChunks(){return Math.ceil(this.blob.size/(this.chunkSizeMb*1024*1024))}async chunk(e){let t=this.chunkSizeMb*1024*1024,n=this.totalChunks;if(n===0)return;let r=5,i=new Map,a=new Set,o=new Set,s=[];for(let e=0;e<n;e++)s.push(e);let c=async n=>{let c=n*t,l=Math.min(c+t,this.blob.size),u=this.blob.slice(c,l);try{await e(u,n),o.add(n),this.emit(`chunkComplete`,n),a.delete(n)}catch(e){let t=i.get(n)||0;t<r?(i.set(n,t+1),await new Promise(e=>setTimeout(e,(t+1)*1e3)),s.push(n)):(o.add(n),this.emit(`error`,e),this.shouldStop=!0,a.delete(n))}},l=[],u=async()=>{for(;(s.length>0||a.size>0)&&!this.shouldStop;){if(s.length===0){await new Promise(e=>setTimeout(e,10));continue}let e=s.shift();o.has(e)||a.has(e)||(a.add(e),await c(e))}};for(let e=0;e<this.maxConcurrent;e++)l.push(u());await Promise.all(l)}};function k(e){return m(e)?ae(e).map(t=>[e,t]):[]}function Ce(e){return e}const we=e(import.meta.url),{PipeEventServer:Te,PipeEventClient:Ee,PipeEventBase:De,ProcessMonitor:Oe,Process:ke,InjectionMethod:Ae,AccessLevel:je,HardwareInterface:Me}=we(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var Ne=class extends x{server=null;_hasConnection=!1;pipeId;get hasConnection(){return this._hasConnection}constructor(e){super(),this.pipeId=e,this.init()}destroy(){this.server&&(this._hasConnection=!1,this.server?.removeAllListeners(),this.server=null)}init(){this.server=new Te(this.pipeId,{clientCount:1,access:1}),this.server.on(`event`,e=>{try{let t=JSON.parse(e);this.emit(`data`,[t])}catch(e){this.emit(`error`,e)}}),this.server.on(`connected`,()=>{this._hasConnection=!0}),this.server.on(`disconnected`,()=>{this._hasConnection=!1})}};const A=S(Ne,`stats-cc`);var j=class{logger;initialized=!1;constructor(e){this.logger=O.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},M=class extends x{logger;initialized=!1;constructor(e){super(),this.logger=O.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},Pe=class extends _e{logger;initialized=!1;constructor(e){super(),this.logger=O.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const N=g.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let P;function Fe(e){P=e}N.interceptors.request.use(e=>{let t=P?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const F=g.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let Ie,Le;F.interceptors.request.use(e=>{let t=Ie?.(),n=Le?.();return e.headers??={},t&&(e.headers.Authorization=t),n&&(e.headers[`X-Api-Key`]=n),e});function Re(e,t){if(t<=0)throw Error(`Chunk size must be greater than 0`);if(e.length===0)return[];let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}function ze(e){return e}function I(e){return e?t=>(e(t),t):ze}I();const Be=I();function Ve(e){return F.get(`/v1/public/applications/${e}`)}I();function He(e,t){return N.get(`/v1/native/${L(e)}/version.txt`,{params:{channel:t},responseType:`text`})}function Ue(e,t){return N.get(`/v1/native/${L(e)}/files`,{params:{channel:t},responseType:`arraybuffer`})}function L(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function We(){return F.get(`/v1/public/raven/config`)}const Ge=I();function Ke(e,t){return F.get(`/v1/public/raven/games/${e}/builds/${t}`)}function qe(e,t){return F.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Je(e,t){let n=new FormData;return n.append(`file`,t.chunk),F.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}const Ye=250;function Xe(e){let t=Re(e.messages,Ye),n=Promise.all(t.map(async t=>F.post(`/v1/public/cortex/events`,{...e,messages:t})));return n}function Ze(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Qe(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let R;function $e(e){R=e}var et=class extends M{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=p.join(w(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await _.mkdir(this.targetDir,{recursive:!0}),await this.checkForUpdates(e),clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.checkForUpdates(e),this.UPDATE_CHECK_INTERVAL_MS)}destroy(){this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=void 0),super.destroy()}async getCurrentVersion(e){try{let t=p.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await _.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return p.join(this.targetDir,e)}getTargetVersionPath(e,t){return p.join(this.getTargetPath(e),t)}async checkForUpdates(e){let t=global.OVERLAYED.APP_BUILD_CHANNEL;if(this.logger.log(`Checking for updates`),!t){this.logger.error(`Invalid VITE_BUILD_CHANNEL`);return}await R?.();for(let n of e)try{let{data:e}=await He(n,t),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r;this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t,i),this.logger.log(`${n} > Downloaded and extracted`),i&&(this.logger.log(`${n} > Cleaning up versions older than ${e}`),await this.cleanupOldVersions(n,e)),this.emit(`dllUpdated`,{identifier:n,version:e})}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n,r){let{data:i}=await Ue(e,n),a=this.getTargetPath(e),o=this.getTargetVersionPath(e,t);await _.mkdir(o,{recursive:!0});let s=new v;await s.loadAsync(i);let c=Object.keys(s.files).map(async t=>{let n=s.files[t];if(n&&!n.dir){let i=p.join(o,t);if(!r)try{await _.access(i,_.constants.F_OK);return}catch{this.logger.warn(`${e} > File missing, re-downloading: ${i}`)}let a=await n.async(`nodebuffer`);await _.writeFile(i,a)}});await Promise.all(c);let l=p.join(a,`version.txt`);this.logger.log(`Saving version file`,l),await _.writeFile(l,t)}async cleanupOldVersions(e,t){let n=p.join(this.targetDir,e),r=await _.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await _.rm(p.join(n,e.name),{recursive:!0,force:!0})}};const z=S(et);var tt=class extends M{REFETCH_INTERVAL=1e3*60*5;FAILED_REFETCH_INTERVAL=1e3*30;_ravenConfig;_executableToGameMap=new Map;_executablesArray=[];_refetchIntervalHandler=null;_failedRefetchTimeoutHandler=null;constructor(){super(`RavenManager`)}init(){super.init(),this.fetchRavenConfig(),this._refetchIntervalHandler=setInterval(()=>{this._failedRefetchTimeoutHandler&&(clearTimeout(this._failedRefetchTimeoutHandler),this._failedRefetchTimeoutHandler=null),this.fetchRavenConfig()},this.REFETCH_INTERVAL)}getExecutableData(e){return this._executableToGameMap.get(e.toLowerCase())??null}get executables(){return this._executablesArray}get executablesMap(){return this._executableToGameMap}destroy(){this._refetchIntervalHandler&&clearInterval(this._refetchIntervalHandler),this._failedRefetchTimeoutHandler&&clearTimeout(this._failedRefetchTimeoutHandler),z.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{let e=await We(),t={games:[...e.data.games,{name:`Valorant`,identifier:Ge(`valorant`),executables:[`VALORANT-Win64-Shipping.exe`],modules:[]}]};this._ravenConfig=t,this.resetState();let n=new Set;for(let e of this._ravenConfig.games){for(let t of e.executables){let n=t.toLowerCase();this._executableToGameMap.set(n,e),this._executablesArray.push(n)}e.modules.forEach(e=>n.add(e))}await z.getInstance().initWithDlls(Array.from(n)),this.logger.log(`Raven updated`,this._ravenConfig),this.emit(`executablesUpdated`,{executables:this.executables,map:this._executableToGameMap})}catch(e){this.logger.error(`Failed to fetch Raven config`,e),this._failedRefetchTimeoutHandler=setTimeout(()=>this.fetchRavenConfig(),this.FAILED_REFETCH_INTERVAL)}}resetState(){this._executableToGameMap.clear(),this._executablesArray=[]}};const B=S(tt),nt=e(import.meta.url),{PipeEventServer:rt,PipeEventClient:it,PipeEventBase:at,ProcessMonitor:ot,Process:V,InjectionMethod:st,AccessLevel:ct,HardwareInterface:H}=nt(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var lt=class extends M{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new ot}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),B.getInstance().on(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processMonitor.on(`create`,e=>{this.logger.log(`Process created`,e),this.addProcess(e),this.logger.log(`Active Process Count: ${this._processes.size}`),this.emit(`create`,{process:e})}),this._processMonitor.on(`destroy`,e=>{this.logger.log(`Process destroyed`,e),this.deleteProcess(e),this.logger.log(`Active Process Count: ${this._processes.size}`),this.emit(`destroy`,{process:e})})}destroy(){B.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){let t=this._processes.get(e);return t?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){e.executables.forEach(e=>{this.logger.log(`Monitoring process`,e),this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name),n=t?.filter(t=>t.id!==e.id)??[];n.length===0?this._processes.delete(e.name):this._processes.set(e.name,n)}};const U=S(lt),ut=e(import.meta.url),{RenderInterface:dt,renderHookPath:ft}=ut(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);var pt=class{_instance;_resolution;boundOnResolutionChanged=this.onResolutionChanged.bind(this);constructor(e){this._instance=e,this._resolution={width:0,height:0},this._instance.on(`resolution`,this.boundOnResolutionChanged)}destroy(){this._instance.off(`resolution`,this.boundOnResolutionChanged)}get instance(){return this._instance}get resolution(){return this._resolution}onResolutionChanged(e,t){this._resolution={width:e,height:t}}},mt=class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new pt(new dt(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}};const W=S(mt);var ht=class{options;eventQueue;_meta=null;set meta(e){this._meta=e}constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new b,this.setupFlushInterval()}track(e,t){this.eventQueue.add({type:e,properties:t,created_at:new Date().toISOString()})}flush(){let e=Array.from(this.eventQueue.flush()),t=e.concat({type:`ping`,properties:{},created_at:new Date().toISOString()});if(!this._meta)throw Error(`Tried to flush Cortex events before meta was set`);try{Xe({...this._meta,messages:t})}catch{}return t}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}};const G=S(ht),gt=e(import.meta.url),_t=gt.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`);var vt=class extends Pe{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}init(){super.init(),W.getInstance().createInterface(`OGG_SIEGE`),U.getInstance().on(`create`,this.boundOnProcessCreate),U.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){U.getInstance().off(`create`,this.boundOnProcessCreate),U.getInstance().off(`destroy`,this.boundOnProcessDestroy),super.destroy()}async onProcessCreate({process:e}){let t=this.getRavenGame(e);if(!t)return;if(this.subscribedGames.size===0){this.logger.warn(`No subscribed games, skipping`);return}if(!this.subscribedGames.has(t.identifier)&&!this.subscribedGames.has(`*`))return;let n=new AbortController;if(await this.emit(`gameLaunch`,{game:t.identifier,reject:()=>n.abort}),n.signal.aborted)return;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,V.currentProcess.isElevated),e.isElevated&&!V.currentProcess.isElevated){C.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!V.currentProcess.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:V.currentProcess.isElevated,gameElevated:e.isElevated});return}let r=this.copyDll(_t);if(r)try{await e.injectDll(r),this.logger.log(`Render Interface Injection Successful`,r)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:r})}let i=t?.modules.map(async t=>{let n=await z.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=z.getInstance().getTargetVersionPath(t,n);this.logger.log(`DLL Path`,r);let i=await this.getDllFiles(r);return this.logger.log(`DLL Files`,i),Promise.all(i.map(async t=>{let n=p.basename(t),i=p.join(r,n);if(!i)return Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(i),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,{game:t.identifier}),G.getInstance().track(`game_launch`,{game:t.identifier})}copyDll(e){let t=p.basename(e),n=ee(e),r=p.join(w(),`resources`),i=p.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{m(r)||ie(r,{recursive:!0});let e=h(n);oe(i,e),ne(n,i)}catch(e){return e.code===`EBUSY`?i:(this.logger.error(`Failed to copy`,e),this.logger.error(`Failed to copy`,{originalPath:n,targetPath:i}),!1)}return i}async getDllFiles(e){try{let t=await _.readdir(e);return t.filter(e=>e.endsWith(`.dll`)).map(t=>p.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this.emit(`gameCloseInternal`,{ravenGame:t,process:e}),this.emit(`gameClose`,{game:t.identifier}),G.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=B.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}};const K=S(vt);var yt=class extends j{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),K.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){K.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=h(n.path),i=se(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{let e=await Ke(t.identifier,i);a=e.data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new v;o.file(n.name,r);let s=await o.generateAsync({type:`blob`});try{this.logger.log(`Uploading build (size: `,s.size,` bytes)`);let e=new Se(s,{chunkSizeMb:25,maxConcurrent:1}),n=await qe(t.identifier,{build_hash:i,chunk_count:e.totalChunks,file_size_bytes:s.size});await e.chunk(async(e,r)=>{this.logger.log(`Uploading chunk`,r),await Je(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Ze(e)?Qe(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}};const q=S(yt);function bt(e=[]){return p.normalize(p.join(T(global.OVERLAYED.APPLICATION_ID),...e))}const xt=r({game:`string`,type:`string`,creation_time:`number`});var J=function(e){return e[e.LeftButton=1]=`LeftButton`,e[e.RightButton=2]=`RightButton`,e[e.Cancel=3]=`Cancel`,e[e.MiddleButton=4]=`MiddleButton`,e[e.ExtraButton1=5]=`ExtraButton1`,e[e.ExtraButton2=6]=`ExtraButton2`,e[e.Back=8]=`Back`,e[e.Tab=9]=`Tab`,e[e.Clear=12]=`Clear`,e[e.Return=13]=`Return`,e[e.Shift=16]=`Shift`,e[e.Control=17]=`Control`,e[e.Menu=18]=`Menu`,e[e.Pause=19]=`Pause`,e[e.CapsLock=20]=`CapsLock`,e[e.Kana=21]=`Kana`,e[e.Hangeul=21]=`Hangeul`,e[e.Hangul=21]=`Hangul`,e[e.Junja=23]=`Junja`,e[e.Final=24]=`Final`,e[e.Hanja=25]=`Hanja`,e[e.Kanji=25]=`Kanji`,e[e.Escape=27]=`Escape`,e[e.Convert=28]=`Convert`,e[e.NonConvert=29]=`NonConvert`,e[e.Accept=30]=`Accept`,e[e.ModeChange=31]=`ModeChange`,e[e.Space=32]=`Space`,e[e.Prior=33]=`Prior`,e[e.Next=34]=`Next`,e[e.End=35]=`End`,e[e.Home=36]=`Home`,e[e.Left=37]=`Left`,e[e.Up=38]=`Up`,e[e.Right=39]=`Right`,e[e.Down=40]=`Down`,e[e.Select=41]=`Select`,e[e.Print=42]=`Print`,e[e.Execute=43]=`Execute`,e[e.Snapshot=44]=`Snapshot`,e[e.Insert=45]=`Insert`,e[e.Delete=46]=`Delete`,e[e.Help=47]=`Help`,e[e.N0=48]=`N0`,e[e.N1=49]=`N1`,e[e.N2=50]=`N2`,e[e.N3=51]=`N3`,e[e.N4=52]=`N4`,e[e.N5=53]=`N5`,e[e.N6=54]=`N6`,e[e.N7=55]=`N7`,e[e.N8=56]=`N8`,e[e.N9=57]=`N9`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.LeftWindows=91]=`LeftWindows`,e[e.RightWindows=92]=`RightWindows`,e[e.Application=93]=`Application`,e[e.Sleep=95]=`Sleep`,e[e.Numpad0=96]=`Numpad0`,e[e.Numpad1=97]=`Numpad1`,e[e.Numpad2=98]=`Numpad2`,e[e.Numpad3=99]=`Numpad3`,e[e.Numpad4=100]=`Numpad4`,e[e.Numpad5=101]=`Numpad5`,e[e.Numpad6=102]=`Numpad6`,e[e.Numpad7=103]=`Numpad7`,e[e.Numpad8=104]=`Numpad8`,e[e.Numpad9=105]=`Numpad9`,e[e.Multiply=106]=`Multiply`,e[e.Add=107]=`Add`,e[e.Separator=108]=`Separator`,e[e.Subtract=109]=`Subtract`,e[e.Decimal=110]=`Decimal`,e[e.Divide=111]=`Divide`,e[e.F1=112]=`F1`,e[e.F2=113]=`F2`,e[e.F3=114]=`F3`,e[e.F4=115]=`F4`,e[e.F5=116]=`F5`,e[e.F6=117]=`F6`,e[e.F7=118]=`F7`,e[e.F8=119]=`F8`,e[e.F9=120]=`F9`,e[e.F10=121]=`F10`,e[e.F11=122]=`F11`,e[e.F12=123]=`F12`,e[e.F13=124]=`F13`,e[e.F14=125]=`F14`,e[e.F15=126]=`F15`,e[e.F16=127]=`F16`,e[e.F17=128]=`F17`,e[e.F18=129]=`F18`,e[e.F19=130]=`F19`,e[e.F20=131]=`F20`,e[e.F21=132]=`F21`,e[e.F22=133]=`F22`,e[e.F23=134]=`F23`,e[e.F24=135]=`F24`,e[e.NumLock=144]=`NumLock`,e[e.ScrollLock=145]=`ScrollLock`,e[e.NEC_Equal=146]=`NEC_Equal`,e[e.Fujitsu_Jisho=146]=`Fujitsu_Jisho`,e[e.Fujitsu_Masshou=147]=`Fujitsu_Masshou`,e[e.Fujitsu_Touroku=148]=`Fujitsu_Touroku`,e[e.Fujitsu_Loya=149]=`Fujitsu_Loya`,e[e.Fujitsu_Roya=150]=`Fujitsu_Roya`,e[e.LeftShift=160]=`LeftShift`,e[e.RightShift=161]=`RightShift`,e[e.LeftControl=162]=`LeftControl`,e[e.RightControl=163]=`RightControl`,e[e.LeftMenu=164]=`LeftMenu`,e[e.RightMenu=165]=`RightMenu`,e[e.BrowserBack=166]=`BrowserBack`,e[e.BrowserForward=167]=`BrowserForward`,e[e.BrowserRefresh=168]=`BrowserRefresh`,e[e.BrowserStop=169]=`BrowserStop`,e[e.BrowserSearch=170]=`BrowserSearch`,e[e.BrowserFavorites=171]=`BrowserFavorites`,e[e.BrowserHome=172]=`BrowserHome`,e[e.VolumeMute=173]=`VolumeMute`,e[e.VolumeDown=174]=`VolumeDown`,e[e.VolumeUp=175]=`VolumeUp`,e[e.MediaNextTrack=176]=`MediaNextTrack`,e[e.MediaPrevTrack=177]=`MediaPrevTrack`,e[e.MediaStop=178]=`MediaStop`,e[e.MediaPlayPause=179]=`MediaPlayPause`,e[e.LaunchMail=180]=`LaunchMail`,e[e.LaunchMediaSelect=181]=`LaunchMediaSelect`,e[e.LaunchApplication1=182]=`LaunchApplication1`,e[e.LaunchApplication2=183]=`LaunchApplication2`,e[e.OEM1=186]=`OEM1`,e[e.OEMPlus=187]=`OEMPlus`,e[e.OEMComma=188]=`OEMComma`,e[e.OEMMinus=189]=`OEMMinus`,e[e.OEMPeriod=190]=`OEMPeriod`,e[e.OEM2=191]=`OEM2`,e[e.OEM3=192]=`OEM3`,e[e.OEM4=219]=`OEM4`,e[e.OEM5=220]=`OEM5`,e[e.OEM6=221]=`OEM6`,e[e.OEM7=222]=`OEM7`,e[e.OEM8=223]=`OEM8`,e[e.OEMAX=225]=`OEMAX`,e[e.OEM102=226]=`OEM102`,e[e.ICOHelp=227]=`ICOHelp`,e[e.ICO00=228]=`ICO00`,e[e.ProcessKey=229]=`ProcessKey`,e[e.ICOClear=230]=`ICOClear`,e[e.Packet=231]=`Packet`,e[e.OEMReset=233]=`OEMReset`,e[e.OEMJump=234]=`OEMJump`,e[e.OEMPA1=235]=`OEMPA1`,e[e.OEMPA2=236]=`OEMPA2`,e[e.OEMPA3=237]=`OEMPA3`,e[e.OEMWSCtrl=238]=`OEMWSCtrl`,e[e.OEMCUSel=239]=`OEMCUSel`,e[e.OEMATTN=240]=`OEMATTN`,e[e.OEMFinish=241]=`OEMFinish`,e[e.OEMCopy=242]=`OEMCopy`,e[e.OEMAuto=243]=`OEMAuto`,e[e.OEMENLW=244]=`OEMENLW`,e[e.OEMBackTab=245]=`OEMBackTab`,e[e.ATTN=246]=`ATTN`,e[e.CRSel=247]=`CRSel`,e[e.EXSel=248]=`EXSel`,e[e.EREOF=249]=`EREOF`,e[e.Play=250]=`Play`,e[e.Zoom=251]=`Zoom`,e[e.Noname=252]=`Noname`,e[e.PA1=253]=`PA1`,e[e.OEMClear=254]=`OEMClear`,e}(J||{});const Y=new Map([[J.LeftButton,`LeftButton`],[J.RightButton,`RightButton`],[J.Cancel,`Cancel`],[J.MiddleButton,`MiddleButton`],[J.ExtraButton1,`ExtraButton1`],[J.ExtraButton2,`ExtraButton2`],[J.Back,`Backspace`],[J.Tab,`Tab`],[J.Clear,`Clear`],[J.Return,`Enter`],[J.Shift,`ShiftLeft`],[J.Control,`ControlLeft`],[J.Menu,`AltLeft`],[J.Pause,`Pause`],[J.CapsLock,`CapsLock`],[J.Kana,`KanaMode`],[J.Junja,`JunjaMode`],[J.Final,`Finalize`],[J.Hanja,`HanjaMode`],[J.Escape,`Escape`],[J.Convert,`Convert`],[J.NonConvert,`NonConvert`],[J.Accept,`Accept`],[J.ModeChange,`ModeChange`],[J.Space,`Space`],[J.Prior,`PageUp`],[J.Next,`PageDown`],[J.End,`End`],[J.Home,`Home`],[J.Left,`ArrowLeft`],[J.Up,`ArrowUp`],[J.Right,`ArrowRight`],[J.Down,`ArrowDown`],[J.Select,`Select`],[J.Print,`PrintScreen`],[J.Execute,`Execute`],[J.Snapshot,`Snapshot`],[J.Insert,`Insert`],[J.Delete,`Delete`],[J.Help,`Help`],[J.N0,`Digit0`],[J.N1,`Digit1`],[J.N2,`Digit2`],[J.N3,`Digit3`],[J.N4,`Digit4`],[J.N5,`Digit5`],[J.N6,`Digit6`],[J.N7,`Digit7`],[J.N8,`Digit8`],[J.N9,`Digit9`],[J.A,`KeyA`],[J.B,`KeyB`],[J.C,`KeyC`],[J.D,`KeyD`],[J.E,`KeyE`],[J.F,`KeyF`],[J.G,`KeyG`],[J.H,`KeyH`],[J.I,`KeyI`],[J.J,`KeyJ`],[J.K,`KeyK`],[J.L,`KeyL`],[J.M,`KeyM`],[J.N,`KeyN`],[J.O,`KeyO`],[J.P,`KeyP`],[J.Q,`KeyQ`],[J.R,`KeyR`],[J.S,`KeyS`],[J.T,`KeyT`],[J.U,`KeyU`],[J.V,`KeyV`],[J.W,`KeyW`],[J.X,`KeyX`],[J.Y,`KeyY`],[J.Z,`KeyZ`],[J.LeftWindows,`MetaLeft`],[J.RightWindows,`MetaRight`],[J.Application,`ContextMenu`],[J.Sleep,`Sleep`],[J.Numpad0,`Numpad0`],[J.Numpad1,`Numpad1`],[J.Numpad2,`Numpad2`],[J.Numpad3,`Numpad3`],[J.Numpad4,`Numpad4`],[J.Numpad5,`Numpad5`],[J.Numpad6,`Numpad6`],[J.Numpad7,`Numpad7`],[J.Numpad8,`Numpad8`],[J.Numpad9,`Numpad9`],[J.Multiply,`NumpadMultiply`],[J.Add,`NumpadAdd`],[J.Separator,`NumpadSeparator`],[J.Subtract,`NumpadSubtract`],[J.Decimal,`NumpadDecimal`],[J.Divide,`NumpadDivide`],[J.F1,`F1`],[J.F2,`F2`],[J.F3,`F3`],[J.F4,`F4`],[J.F5,`F5`],[J.F6,`F6`],[J.F7,`F7`],[J.F8,`F8`],[J.F9,`F9`],[J.F10,`F10`],[J.F11,`F11`],[J.F12,`F12`],[J.F13,`F13`],[J.F14,`F14`],[J.F15,`F15`],[J.F16,`F16`],[J.F17,`F17`],[J.F18,`F18`],[J.F19,`F19`],[J.F20,`F20`],[J.F21,`F21`],[J.F22,`F22`],[J.F23,`F23`],[J.F24,`F24`],[J.NumLock,`NumLock`],[J.ScrollLock,`ScrollLock`],[J.NEC_Equal,`NEC_Equal`],[J.Fujitsu_Masshou,`Fujitsu_Masshou`],[J.Fujitsu_Touroku,`Fujitsu_Touroku`],[J.Fujitsu_Loya,`Fujitsu_Loya`],[J.Fujitsu_Roya,`Fujitsu_Roya`],[J.LeftShift,`ShiftLeft`],[J.RightShift,`ShiftRight`],[J.LeftControl,`ControlLeft`],[J.RightControl,`ControlRight`],[J.LeftMenu,`AltLeft`],[J.RightMenu,`AltRight`],[J.BrowserBack,`BrowserBack`],[J.BrowserForward,`BrowserForward`],[J.BrowserRefresh,`BrowserRefresh`],[J.BrowserStop,`BrowserStop`],[J.BrowserSearch,`BrowserSearch`],[J.BrowserFavorites,`BrowserFavorites`],[J.BrowserHome,`BrowserHome`],[J.VolumeMute,`VolumeMute`],[J.VolumeDown,`VolumeDown`],[J.VolumeUp,`VolumeUp`],[J.MediaNextTrack,`MediaTrackNext`],[J.MediaPrevTrack,`MediaTrackPrevious`],[J.MediaStop,`MediaStop`],[J.MediaPlayPause,`MediaPlayPause`],[J.LaunchMail,`LaunchMail`],[J.LaunchMediaSelect,`LaunchMediaSelect`],[J.LaunchApplication1,`LaunchApplication1`],[J.LaunchApplication2,`LaunchApplication2`],[J.OEM1,`OEM_1`],[J.OEMPlus,`Equal`],[J.OEMComma,`Comma`],[J.OEMMinus,`Minus`],[J.OEMPeriod,`Period`],[J.OEM2,`Slash`],[J.OEM3,`Backquote`],[J.OEM4,`BracketLeft`],[J.OEM5,`Backslash`],[J.OEM6,`BracketRight`],[J.OEM7,`Quote`],[J.OEM8,`IntlRo`],[J.OEMAX,`OEM_AX`],[J.OEM102,`IntlBackslash`],[J.ICOHelp,`ICO_HELP`],[J.ICO00,`ICO_00`],[J.ProcessKey,`Process`],[J.ICOClear,`ICO_CLEAR`],[J.Packet,`Packet`],[J.OEMReset,`OEM_Reset`],[J.OEMJump,`OEM_Jump`],[J.OEMPA1,`OEM_PA1`],[J.OEMPA2,`OEM_PA2`],[J.OEMPA3,`OEM_PA3`],[J.OEMWSCtrl,`OEM_WS_Ctrl`],[J.OEMCUSel,`OEM_CU_Sel`],[J.OEMATTN,`OEM_ATTN`],[J.OEMFinish,`OEM_Finish`],[J.OEMCopy,`OEM_Copy`],[J.OEMAuto,`OEM_Auto`],[J.OEMENLW,`OEM_ENLW`],[J.OEMBackTab,`BackTab`],[J.ATTN,`ATTN`],[J.CRSel,`CRSel`],[J.EXSel,`EXSel`],[J.EREOF,`EREOF`],[J.Play,`MediaPlay`],[J.Zoom,`Zoom`],[J.Noname,`Noname`],[J.PA1,`PA1`],[J.OEMClear,`OEM_Clear`]]),St=new Map(Y.entries().map(([e,t])=>[t,e])),Ct=r({"[string]":{keys:`string[]`,mode:r(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var wt=class extends M{preferencesKeybindToCallbacks=new Map;pressedKeys=new Set;activeKeybinds=new Set;triggeredToggleKeybinds=new Set;boundHandleKeyboardFocus=this.handleKeyboardFocus.bind(this);boundHandleKeyDown=this.handleKeyDown.bind(this);boundHandleKeyUp=this.handleKeyUp.bind(this);keybindsFile;keybindListeningPaused=!1;constructor(e){super(`KeybindManager`),this.keybindsFile=new ye({path:bt([`keybinds.json`]),schema:Ct,default:e})}init(){super.init();let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.on(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.on(`keyDown`,this.boundHandleKeyDown),e.instance.on(`keyUp`,this.boundHandleKeyUp)}async onKeybindToggled(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.toggle=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.down=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.up=t,this.preferencesKeybindToCallbacks.set(e,n)}async updateKeybind(e,t){this.keybindsFile.set({[e]:t})}async updateKeybinds(e){let t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0));this.keybindsFile.set({...this.keybindsFile.get(),...t})}getConfig(){return this.keybindsFile.get()}destroy(){let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.off(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.off(`keyDown`,this.boundHandleKeyDown),e.instance.off(`keyUp`,this.boundHandleKeyUp),super.destroy()}handleKeyDown(e){if(this.keybindListeningPaused)return;let t=Y.get(e.key);if(!t){this.logger.error(`Unknown key down`,e);return}this.pressedKeys.add(t),this.checkKeybindings()}handleKeyboardFocus(){this.pressedKeys.clear(),this.activeKeybinds.clear(),this.triggeredToggleKeybinds.clear()}async handleKeyUp(e){if(this.keybindListeningPaused)return;let t=Y.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries()){let r=n[e];r.keys.includes(t)&&this.triggeredToggleKeybinds.delete(e)}this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up)continue;let r=e[t];this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))&&(this.activeKeybinds.delete(t),n.up(),this.logger.log(`Keybind up triggered`,this.getKeybindToString(r)))}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.length===this.pressedKeys.size&&r.keys.every(e=>St.has(e)?this.pressedKeys.has(e):!1);if(i){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.every(e=>St.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1));i&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&!this.triggeredToggleKeybinds.has(n)){let r=t.toggle();this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&!this.activeKeybinds.has(n)){let r=t.down();r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}},Tt=class extends j{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=W.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}};const Et=S(Tt,`OGG_SIEGE`);var Dt=me((exports,t)=>{var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e,t)=>{var n=new Set([`mouseDown`,`mouseUp`,`pointerDown`,`pointerUp`]),r=new WeakSet;function i(e,t,{allowHosts:i}={}){let{shell:a}=t;if(r.has(e))return;r.add(e);let o=e.webContents;function s(e){return!!(!c(e)||i?.includes(e.host))}function c(e){return new URL(o.getURL()).origin!==e.origin}let l=0;function u(){l=Date.now()}function d(){let e=Date.now()-l,t=e<150;return t||console.warn(`was not recently active`,e),t}if(process.platform===`win32`){let t={KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576};for(let n of Object.values(t))e.hookWindowMessage(n,u)}o.on(`input-event`,(e,t)=>{n.has(t.type)&&u()}),o.on(`will-navigate`,(e,t)=>{let n=e.url||t;if(console.log(`will-navigate`,n),!n)return;let r=new URL(n);if(!s(r)){if(!d()){console.log(`blocked navigation`,n),e.preventDefault();return}c(r)&&(console.log(`external navigation`,n),e.preventDefault(),a.openExternal(n))}}),o.session.on(`will-download`,(e,t)=>{let n=t.getURL();/^blob:/.test(n)||e.preventDefault()}),o.setWindowOpenHandler(e=>{console.log(`window-open`,e.url);let{url:t}=e,n=new URL(t);if(!s(n))return d()?(c(n)&&a.openExternal(e.url),{action:`deny`}):(console.log(`blocked navigation`,t),{action:`deny`})})}t.exports=i}),i=n((e,t)=>{var n=new Set([`Mozilla`,`AppleWebKit`,`Chrome`,`Safari`,`Gecko`,`Firefox`,`OPR`,`Edg`,`Version`,`Mobile`,`curl`,`PostmanRuntime`]);async function r(e,t,r){let{webContents:i}=e,a=await i.executeJavaScript(`navigator.userAgent`);a=a.match(/[^\/]+\/[^\s]+( \([^\)]+\))?/g).map(e=>e.trim()).filter(e=>{let[t]=e.split(`/`,1);return n.has(t)}).join(` `),i.setUserAgent(a),t.app.userAgentFallback=a}t.exports=r}),a=r(),o=i();function s(e,t,n={}){a(e,t,n.linkHandler),o(e,t,n.userAgent)}t.exports={setupRevUtils:s,setupLinkHandler:a,setUserAgent:o}}),Ot=ge(Dt());let X=!1,Z;function kt(e){let{init:t=!0,debug:n=!1}=e;if(At(e),O.getInstance().init(e.applicationId,n),X)return Z;function r(){Wt();let t=new Map,n=Nt(e.modules,t),i=Pt(),a=It(e.keybinds),o=Lt(),s=Rt(),c=Bt(),l=zt(),u=Vt(e);jt(e),Ft(e,t),X=!0,Z={...n,...i,ads:c,keybinds:a,windows:o,input:s,cortex:l,hasAnyActiveProcesses:()=>U.getInstance().hasAnyActiveProcesses,init:r,log:u,initialized:X}}return t?(r(),Z):new Proxy({init:r},{get:(e,t)=>{if(t!==`init`&&!X)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Z[t]}})}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function At(e){global.OVERLAYED={APPLICATION_ID:Be(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.16.0`,FRONTEND_VERSION:`0.0.0`,sessionId:crypto.randomUUID(),electron:e.electron}}function jt(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);K.getInstance().setSubscribedGames(t),q.getInstance().init(),K.getInstance().init(),U.getInstance().init(),B.getInstance().init();async function n(){let e=Ve(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=H.generateUniqueIdentifier();O.getInstance().log(`userId`,t);let n={...await e,userId:t};return O.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r=r??n(),r)),G.getInstance().track(`start`,{}),ce.on(`quit`,()=>{G.getInstance().track(`electron_quit`,{}),Mt()}),process.on(`exit`,()=>{G.getInstance().track(`exit`,{}),Mt()})}async function Mt(){await G.getInstance().flush(),B.getInstance().destroy(),K.getInstance().destroy(),q.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),A.getInstance().destroy(),C.getInstance().destroy()}function Nt(e,t){return e.reduce((e,n)=>{let r=n.key;return e[r]={on(e,n){let i=Q(r,e),a=t.get(i)??new Set;a.add(n),t.set(i,a)},onAny(e){let n=Q(r,`*`),i=t.get(n)??new Set;i.add(e),t.set(n,i)},off(e,n){let i=Q(r,e),a=t.get(i)??new Set;a.delete(n),t.set(i,a)},offAny(e){let n=Q(r,`*`),i=t.get(n)??new Set;i.delete(e),t.set(n,i)}},e},{})}function Pt(){let e=C.getInstance(),t=K.getInstance();return{on:(n,r)=>{switch(n){case`fatal`:e.on(`fatal`,r);break;case`error`:e.on(`error`,r);break;case`warning`:e.on(`warning`,r);break;case`gameLaunch`:t.on(`gameLaunch`,r);break;case`gameClose`:t.on(`gameClose`,r);break;case`gameReady`:t.on(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}},off:(n,r)=>{switch(n){case`fatal`:e.off(`fatal`,r);break;case`error`:e.off(`error`,r);break;case`warning`:e.off(`warning`,r);break;case`gameLaunch`:t.off(`gameLaunch`,r);break;case`gameClose`:t.off(`gameClose`,r);break;case`gameReady`:t.off(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}}}}function Q(e,t){return`${e}:${t}`}function Ft(e,t){let n=A.getInstance();function i(n){let i=xt(n);if(i instanceof r.errors){G.getInstance().track(`invalid_game_event`,{}),C.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let a=e.modules.find(e=>e.key===i.game),o=a?.events.event;if(!o)return;let s=o(n);if(s instanceof r.errors){G.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type}),C.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:s.summary});return}G.getInstance().track(`game_event`,{game:i.game,type:s.type});let c=Q(a.key,s.type),l=Q(a.key,`*`),u=t.get(c),d=t.get(l),f=[...Array.from(u??[]),...Array.from(d??[])];f.length!==0&&f.forEach(e=>{e(s)})}return n.on(`data`,e=>e.forEach(i)),n.on(`error`,e=>{C.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),n}function It(e){let t=new wt(e),n={};for(let r in e)n[r]={on:(e,n)=>{switch(e){case`down`:t.onKeybindDown(r,n);break;case`up`:t.onKeybindUp(r,n);break;case`toggle`:t.onKeybindToggled(r,n);break;default:throw Error(`Event type not implemented ${e}`,{cause:[e,n]})}}};let r={...n,getConfig:()=>t.getConfig(),pauseKeybindListening:()=>{t.keybindListeningPaused=!0},resumeKeybindListening:()=>{t.keybindListeningPaused=!1},updateKeybind:(e,n)=>{t.updateKeybind(e,n)},updateKeybinds:e=>{t.updateKeybinds(e)}};return t.init(),ce.on(`quit`,()=>{t.destroy()}),r}function Lt(){function e(e,t){return e.once(`closed`,()=>{G.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{G.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),G.getInstance().track(`window_created`,{url:e.webContents.getURL(),in_game:t}),e}return{createWindow:t=>e(new global.OVERLAYED.electron.BrowserWindow(t),!1),createInGameWindow:t=>e($().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>$().instance.on(e,t),off:(e,t)=>$().instance.off(e,t),once:(e,t)=>$().instance.once(e,t),addListener:(e,t)=>$().instance.addListener(e,t),removeListener:(e,t)=>$().instance.removeListener(e,t),removeAllListeners:()=>$().instance.removeAllListeners(),prependListener:(e,t)=>$().instance.prependListener(e,t),prependOnceListener:(e,t)=>$().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=$(),t=A.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}function Rt(){return{scope:e=>Et.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>$().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>$().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>$().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>$().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>$().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>$().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>$().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>$().instance.getKeyInputBlock(e)}}}function zt(){return{track:(e,t)=>G.getInstance().track(`custom__${e}`,t)}}function Bt(){return{registerWindow:e=>{(0,Ot.setupRevUtils)(e,global.OVERLAYED.electron)}}}function Vt(e){let t=new D(`app.log`);return t.init(global.OVERLAYED.APPLICATION_ID,e.debug),{scope:e=>t.scope(e),info:e=>t.info(e),warn:e=>t.warn(e),error:e=>t.error(e),debug:e=>t.debug(e),submitBugReport:async(e,t)=>{G.getInstance().track(`bug_report_submitted`,{version:e.version,category:e.category});try{let n=Ht(t),r=await n.generateAsync({type:`base64`}),i=await Ut(e,r);return i?[void 0,{message:`Failed to submit bug report`,error:i}]:[!0,void 0]}catch(e){return[void 0,{message:`Failed to generate logs zip`,error:e}]}}}}function Ht(e){let t=E(global.OVERLAYED.APPLICATION_ID),n=k(t),r=xe(),i=k(r);O.getInstance().info(`Logs path: `,t),O.getInstance().info(`Overlayed logs path: `,r);let a=new v;return[...n,...i].forEach(([e,t])=>{O.getInstance().info(`Zipping: `,e,t);let n=`${e}/${t}`,r=re(n);a.file(t,r,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{O.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function Ut(e,t){let n={...e,version:`${global.OVERLAYED.APP_VERSION}@${global.OVERLAYED.APP_BUILD_CHANNEL}`,log_zip:`data:application/zip;base64,${t}`},r;return await fetch(`https://api.stats.cc/v1/overlay/contact`,{method:`POST`,body:JSON.stringify(n),redirect:`follow`,headers:{"Content-Type":`application/json`}}).then(async e=>{e.status>=300&&(r=await e.text())}).catch(e=>{r=e.message}),r}function Wt(){G.getInstance().meta={app_id:global.OVERLAYED.APPLICATION_ID,user_id:H.generateUniqueIdentifier(),app_channel:global.OVERLAYED.APP_BUILD_CHANNEL,app_version:global.OVERLAYED.APP_VERSION,package_version:global.OVERLAYED.PACKAGE_VERSION,frontend_version:global.OVERLAYED.FRONTEND_VERSION,session_id:global.OVERLAYED.sessionId},C.getInstance().on(`fatal`,e=>{G.getInstance().track(`fatal`,{message:e.message,code:e.code,data:e.data})}),C.getInstance().on(`error`,e=>{G.getInstance().track(`error`,{message:e.message,code:e.code,data:e.data})}),C.getInstance().on(`warning`,e=>{G.getInstance().track(`warning`,{message:e.message,code:e.code,data:e.data})})}function $(){return W.getInstance().getInterface(`OGG_SIEGE`)}export{Ce as defineConfig,kt as overlayed,$e as setFetchLatestTokenCallback,Fe as setUpdaterTokenResolver};
|
package/dist/siege.d.ts
CHANGED
|
@@ -554,6 +554,7 @@ declare const SIEGE_MAP_TO_ID: Readonly<{
|
|
|
554
554
|
readonly stadium2020: SiegeMapNameId;
|
|
555
555
|
readonly clubhouse: SiegeMapNameId;
|
|
556
556
|
readonly district: SiegeMapNameId;
|
|
557
|
+
readonly shinden: SiegeMapNameId;
|
|
557
558
|
}>;
|
|
558
559
|
declare const SIEGE_MAP_LABELS: Record<SiegeMapNameId, string>;
|
|
559
560
|
declare const SIEGE_ROUND_STATES_TO_ID: Readonly<{
|
|
@@ -1321,6 +1322,7 @@ declare const TranslationSchema: <T extends AnyBrand | number = number>() => Typ
|
|
|
1321
1322
|
id: T;
|
|
1322
1323
|
value: string;
|
|
1323
1324
|
}>;
|
|
1325
|
+
type Translation<T extends AnyBrand | number = number> = ReturnType<typeof TranslationSchema<T>>["infer"];
|
|
1324
1326
|
declare const PlayerMatchStatsDataSchema: arktype_internal_methods_object_ts0.ObjectType<{
|
|
1325
1327
|
kills: number;
|
|
1326
1328
|
deaths: number;
|
|
@@ -2627,4 +2629,4 @@ type SiegeEventType = SiegeEvent["type"];
|
|
|
2627
2629
|
|
|
2628
2630
|
//#endregion
|
|
2629
2631
|
//#endregion
|
|
2630
|
-
export { BaseEvent, type DefuserDroppedEvent, type DefuserPickedUpEvent, type DefuserPlantedEvent, type DefuserSabotagedEvent, type LocalPlayerEvent, type MapChangedEvent, MapData, MapDataSchema, type MatchEndedEvent, MatchRoundData, MatchRoundDataSchema, type MatchStartedEvent, type ModuleLoadedEvent, type ModuleUnloadedEvent, type OperatorBannedEvent, type PhaseChangedEvent, PlayerDamageData, PlayerDamageDataSchema, type PlayerDiedEvent, type PlayerDownedEvent, type PlayerJoinedEvent, type PlayerLeftEvent, type PlayerLifeStateChangedEvent, type PlayerLocationChangedEvent, PlayerMatchStatsData, PlayerMatchStatsDataSchema, type PlayerOperatorChangedEvent, type PlayerPingIdChangedEvent, type PlayerPingUpdatedEvent, type PlayerSideChangedEvent, type PlayerStatsChangedEvent, type PlayerTeamChangedEvent, RoundEndData, RoundEndDataSchema, RoundEndPlayerData, RoundEndPlayerDataSchema, type RoundEndedEvent, SIEGE_BOT_ID, SIEGE_DAMAGE_TEAM_TYPES, SIEGE_DAMAGE_TYPES, SIEGE_GAME_MODE_PHASES, SIEGE_GAME_MODE_TYPES_TO_ID, SIEGE_GAME_MODE_TYPE_LABELS, SIEGE_MAP_LABELS, SIEGE_MAP_TO_ID, SIEGE_OPERATOR_LABELS, SIEGE_OPERATOR_META, SIEGE_OPERATOR_TO_ID, SIEGE_PLAYER_LIFE_STATES, SIEGE_ROUND_STATES_TO_ID, SIEGE_ROUND_STATE_LABELS, SIEGE_SIDES, SIEGE_SIDE_OPERATORS, SIEGE_TEAMS, SiegeDamageTeamType, SiegeDamageTeamTypeSchema, SiegeDamageType, SiegeDamageTypeSchema, SiegeEvent, SiegeEventType, SiegeGameModePhase, SiegeGameModePhaseSchema, SiegeGameModeTypeNameId, SiegeItemObjectId, SiegeMapNameId, SiegeMatchId, SiegeOperatorMeta, SiegeOperatorMetaFull, SiegeOperatorNameId, SiegePlayerId, SiegePlayerLifeState, SiegePlayerLifeStateSchema, SiegeProfileId, SiegeRoundState, SiegeSide, SiegeSideSchema, SiegeTeam, SiegeTeamSchema, type StartedQueuingEvent, type StoppedQueueingEvent, TranslationSchema, type UnsupportedGameVersionEvent, events, isSiegeRoundStateCompleted, isSiegeRoundStateVictory, module };
|
|
2632
|
+
export { BaseEvent, type DefuserDroppedEvent, type DefuserPickedUpEvent, type DefuserPlantedEvent, type DefuserSabotagedEvent, type LocalPlayerEvent, type MapChangedEvent, MapData, MapDataSchema, type MatchEndedEvent, MatchRoundData, MatchRoundDataSchema, type MatchStartedEvent, type ModuleLoadedEvent, type ModuleUnloadedEvent, type OperatorBannedEvent, type PhaseChangedEvent, PlayerDamageData, PlayerDamageDataSchema, type PlayerDiedEvent, type PlayerDownedEvent, type PlayerJoinedEvent, type PlayerLeftEvent, type PlayerLifeStateChangedEvent, type PlayerLocationChangedEvent, PlayerMatchStatsData, PlayerMatchStatsDataSchema, type PlayerOperatorChangedEvent, type PlayerPingIdChangedEvent, type PlayerPingUpdatedEvent, type PlayerSideChangedEvent, type PlayerStatsChangedEvent, type PlayerTeamChangedEvent, RoundEndData, RoundEndDataSchema, RoundEndPlayerData, RoundEndPlayerDataSchema, type RoundEndedEvent, SIEGE_BOT_ID, SIEGE_DAMAGE_TEAM_TYPES, SIEGE_DAMAGE_TYPES, SIEGE_GAME_MODE_PHASES, SIEGE_GAME_MODE_TYPES_TO_ID, SIEGE_GAME_MODE_TYPE_LABELS, SIEGE_MAP_LABELS, SIEGE_MAP_TO_ID, SIEGE_OPERATOR_LABELS, SIEGE_OPERATOR_META, SIEGE_OPERATOR_TO_ID, SIEGE_PLAYER_LIFE_STATES, SIEGE_ROUND_STATES_TO_ID, SIEGE_ROUND_STATE_LABELS, SIEGE_SIDES, SIEGE_SIDE_OPERATORS, SIEGE_TEAMS, SiegeDamageTeamType, SiegeDamageTeamTypeSchema, SiegeDamageType, SiegeDamageTypeSchema, SiegeEvent, SiegeEventType, SiegeGameModePhase, SiegeGameModePhaseSchema, SiegeGameModeTypeNameId, SiegeItemObjectId, SiegeMapNameId, SiegeMatchId, SiegeOperatorMeta, SiegeOperatorMetaFull, SiegeOperatorNameId, SiegePlayerId, SiegePlayerLifeState, SiegePlayerLifeStateSchema, SiegeProfileId, SiegeRoundState, SiegeSide, SiegeSideSchema, SiegeTeam, SiegeTeamSchema, type StartedQueuingEvent, type StoppedQueueingEvent, Translation, TranslationSchema, type UnsupportedGameVersionEvent, events, isSiegeRoundStateCompleted, isSiegeRoundStateVictory, module };
|
package/dist/siege.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Type as e,scope as t,type as n}from"arktype";function r(e){return e}function i(e){return e}function a(e){return e?t=>(e(t),t):i}const o=a(),s=a(),c=a(),l=a(),ee=a(),u=a(),d=a(),f=a(),p=`00000000-0000-0000-0000-000000000000`,m=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`],h=n(`===`,...m),g=[0,1],_=n(`===`,...g),v=[`attacker`,`defender`,`both`,`invalid`],y=n(`===`,...v),b=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],x=n(`===`,...b),S=`bullet.melee.explosive.falling.regeneration.unknown.debris.projectile.downed.gas.thermal_explosion.melee_gadget.barbed_wire.electric.reinforcement.frag.paralyzed.emp.break.cleanup.interrogation.melee-finisher.toxic.toxic-explosion.pneumatic.body-contact.contact-explosion.flash.parasite-spike.laser.concussion.blowtorch.taser-shield.reverse-friendly-fire.self-destroyed.area-control.fire.breach-kick.break-wall.blade-mine.invalid`.split(`.`),C=n(`===`,...S),w=[`unknown`,`enemy`,`friendly`,`invalid`],T=n(`===`,...w),E=Object.freeze({ranked:o(205379),quickMatch:o(138115),customGame:o(62008),versusAi:o(397300),standard:o(393930),arcade:o(320109),siegeCup:o(414089),dualFront:o(420611),showdown:o(305544),trainingGrounds:o(-1)}),D=Object.freeze({[E.quickMatch]:`Quick Match`,[E.ranked]:`Ranked`,[E.customGame]:`Custom Game`,[E.versusAi]:`Versus AI`,[E.standard]:`Standard`,[E.arcade]:`Arcade`,[E.siegeCup]:`Siege Cup`,[E.dualFront]:`Dual Front`,[E.showdown]:`Showdown`,[E.trainingGrounds]:`Training Grounds`}),O=Object.freeze({glaz:s(62242),blitz:s(62243),buck:s(62244),sledge:s(62245),ash:s(62246),thermite:s(62247),castle:s(62248),rook:s(62249),pulse:s(62250),doc:s(62251),mute:s(62252),smoke:s(62253),recruit:s(62555),thatcher:s(65143),twitch:s(65156),montagne:s(65159),bandit:s(65165),fuze:s(65168),kapkan:s(65171),tachanka:s(65174),jager:s(113049),iq:s(113052),frost:s(186159),blackbeard:s(187249),valkyrie:s(187252),caveira:s(207671),capitao:s(207674),echo:s(209180),hibana:s(209183),mira:s(222172),jackal:s(222182),ying:s(239334),lesion:s(239337),ela:s(254595),zofia:s(254606),dokkaebi:s(273652),vigil:s(273663),finka:s(281457),lion:s(281463),alibi:s(282399),maestro:s(285888),maverick:s(288504),clash:s(288526),nomad:s(293435),kaid:s(293436),gridlock:s(298589),mozzie:s(298616),nokk:s(299657),warden:s(299668),goyo:s(304196),amaru:s(308469),kali:s(310757),wamai:s(310768),oryx:s(317965),iana:s(317976),melusi:s(320062),ace:s(320073),zero:s(328927),aruni:s(328940),flores:s(334086),thunderbird:s(336466),osa:s(344493),thorn:s(349405),azami:s(354314),sens:s(357386),grim:s(365404),solis:s(376836),brava:s(382419),fenrir:s(386388),ram:s(392904),tubarao:s(395594),deimos:s(400504),striker:s(404278),sentry:s(404290),skopos:s(408405),rauora:s(421052)}),k=Object.freeze({[O.glaz]:`glaz`,[O.blitz]:`blitz`,[O.buck]:`buck`,[O.sledge]:`sledge`,[O.ash]:`ash`,[O.thermite]:`thermite`,[O.castle]:`castle`,[O.rook]:`rook`,[O.pulse]:`pulse`,[O.doc]:`doc`,[O.mute]:`mute`,[O.smoke]:`smoke`,[O.recruit]:`recruit`,[O.thatcher]:`thatcher`,[O.twitch]:`twitch`,[O.montagne]:`montagne`,[O.bandit]:`bandit`,[O.fuze]:`fuze`,[O.kapkan]:`kapkan`,[O.tachanka]:`tachanka`,[O.jager]:`jager`,[O.iq]:`iq`,[O.frost]:`frost`,[O.blackbeard]:`blackbeard`,[O.valkyrie]:`valkyrie`,[O.caveira]:`caveira`,[O.capitao]:`capitao`,[O.echo]:`echo`,[O.hibana]:`hibana`,[O.mira]:`mira`,[O.jackal]:`jackal`,[O.ying]:`ying`,[O.lesion]:`lesion`,[O.ela]:`ela`,[O.zofia]:`zofia`,[O.dokkaebi]:`dokkaebi`,[O.vigil]:`vigil`,[O.finka]:`finka`,[O.lion]:`lion`,[O.alibi]:`alibi`,[O.maestro]:`maestro`,[O.maverick]:`maverick`,[O.clash]:`clash`,[O.nomad]:`nomad`,[O.kaid]:`kaid`,[O.gridlock]:`gridlock`,[O.mozzie]:`mozzie`,[O.nokk]:`nokk`,[O.warden]:`warden`,[O.goyo]:`goyo`,[O.amaru]:`amaru`,[O.kali]:`kali`,[O.wamai]:`wamai`,[O.oryx]:`oryx`,[O.iana]:`iana`,[O.melusi]:`melusi`,[O.ace]:`ace`,[O.zero]:`zero`,[O.aruni]:`aruni`,[O.flores]:`flores`,[O.thunderbird]:`thunderbird`,[O.osa]:`osa`,[O.thorn]:`thorn`,[O.azami]:`azami`,[O.sens]:`sens`,[O.grim]:`grim`,[O.solis]:`solis`,[O.brava]:`brava`,[O.fenrir]:`fenrir`,[O.ram]:`ram`,[O.tubarao]:`tubarao`,[O.deimos]:`deimos`,[O.striker]:`striker`,[O.sentry]:`sentry`,[O.skopos]:`skopos`,[O.rauora]:`rauora`}),A=Object.freeze({[O.striker]:{name:`Striker`,role:`attacker`},[O.sledge]:{name:`Sledge`,role:`attacker`},[O.thatcher]:{name:`Thatcher`,role:`attacker`},[O.ash]:{name:`Ash`,role:`attacker`},[O.thermite]:{name:`Thermite`,role:`attacker`},[O.twitch]:{name:`Twitch`,role:`attacker`},[O.montagne]:{name:`Montagne`,role:`attacker`},[O.glaz]:{name:`Glaz`,role:`attacker`},[O.fuze]:{name:`Fuze`,role:`attacker`},[O.blitz]:{name:`Blitz`,role:`attacker`},[O.iq]:{name:`IQ`,role:`attacker`},[O.buck]:{name:`Buck`,role:`attacker`},[O.blackbeard]:{name:`Blackbeard`,role:`attacker`},[O.capitao]:{name:`Capitão`,role:`attacker`},[O.hibana]:{name:`Hibana`,role:`attacker`},[O.jackal]:{name:`Jackal`,role:`attacker`},[O.ying]:{name:`Ying`,role:`attacker`},[O.zofia]:{name:`Zofia`,role:`attacker`},[O.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[O.lion]:{name:`Lion`,role:`attacker`},[O.finka]:{name:`Finka`,role:`attacker`},[O.maverick]:{name:`Maverick`,role:`attacker`},[O.nomad]:{name:`Nomad`,role:`attacker`},[O.gridlock]:{name:`Gridlock`,role:`attacker`},[O.nokk]:{name:`Nøkk`,role:`attacker`},[O.amaru]:{name:`Amaru`,role:`attacker`},[O.kali]:{name:`Kali`,role:`attacker`},[O.iana]:{name:`Iana`,role:`attacker`},[O.ace]:{name:`Ace`,role:`attacker`},[O.zero]:{name:`Zero`,role:`attacker`},[O.flores]:{name:`Flores`,role:`attacker`},[O.osa]:{name:`Osa`,role:`attacker`},[O.sens]:{name:`Sens`,role:`attacker`},[O.grim]:{name:`Grim`,role:`attacker`},[O.brava]:{name:`Brava`,role:`attacker`},[O.ram]:{name:`Ram`,role:`attacker`},[O.deimos]:{name:`Deimos`,role:`attacker`},[O.rauora]:{name:`Rauora`,role:`attacker`},[O.sentry]:{name:`Sentry`,role:`defender`},[O.smoke]:{name:`Smoke`,role:`defender`},[O.mute]:{name:`Mute`,role:`defender`},[O.castle]:{name:`Castle`,role:`defender`},[O.pulse]:{name:`Pulse`,role:`defender`},[O.doc]:{name:`Doc`,role:`defender`},[O.rook]:{name:`Rook`,role:`defender`},[O.kapkan]:{name:`Kapkan`,role:`defender`},[O.tachanka]:{name:`Tachanka`,role:`defender`},[O.jager]:{name:`Jäger`,role:`defender`},[O.bandit]:{name:`Bandit`,role:`defender`},[O.frost]:{name:`Frost`,role:`defender`},[O.valkyrie]:{name:`Valkyrie`,role:`defender`},[O.caveira]:{name:`Caveira`,role:`defender`},[O.echo]:{name:`Echo`,role:`defender`},[O.mira]:{name:`Mira`,role:`defender`},[O.lesion]:{name:`Lesion`,role:`defender`},[O.ela]:{name:`Ela`,role:`defender`},[O.vigil]:{name:`Vigil`,role:`defender`},[O.alibi]:{name:`Alibi`,role:`defender`},[O.maestro]:{name:`Maestro`,role:`defender`},[O.clash]:{name:`Clash`,role:`defender`},[O.kaid]:{name:`Kaid`,role:`defender`},[O.mozzie]:{name:`Mozzie`,role:`defender`},[O.warden]:{name:`Warden`,role:`defender`},[O.goyo]:{name:`Goyo`,role:`defender`},[O.wamai]:{name:`Wamai`,role:`defender`},[O.oryx]:{name:`Oryx`,role:`defender`},[O.melusi]:{name:`Melusi`,role:`defender`},[O.aruni]:{name:`Aruni`,role:`defender`},[O.thunderbird]:{name:`Thunderbird`,role:`defender`},[O.thorn]:{name:`Thorn`,role:`defender`},[O.azami]:{name:`Azami`,role:`defender`},[O.solis]:{name:`Solis`,role:`defender`},[O.fenrir]:{name:`Fenrir`,role:`defender`},[O.tubarao]:{name:`Tubarao`,role:`defender`},[O.skopos]:{name:`Skopós`,role:`defender`}}),te=Object.freeze({attacker:Object.entries(A).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...A[s(Number(e))],id:s(Number(e))})),defender:Object.entries(A).filter(([e,t])=>t.role===`defender`).map(([e])=>({...A[s(Number(e))],id:s(Number(e))}))}),j=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),article5:c(196214),themePark:c(229325),stadium:c(338641),outback:c(299162),yacht:c(62226),emeraldPlains:c(358871),chalet:c(62230),coastline:c(217482),bank:c(62228),consulate:c(62227),tower:c(255669),nighthavenLabs:c(375492),presidentialPlane:c(62225),house:c(62221),kafeDostoyevsky:c(62232),border:c(201746),closeQuarter:c(365400),bartlettU:c(62231),lair:c(396234),herefordBase:c(62223),skyscraper:c(208094),cqbBasics:c(196157),oregon:c(62222),fortTruth:c(307723),kanal:c(62229),stadium2020:c(357300),clubhouse:c(62224),district:c(1193341205)}),M=Object.freeze({202283:`Favela`,293334:`Fortress`,286407:`Villa`,333785:`Neighborhood`,196214:`Article 5`,229325:`Theme Park`,338641:`Stadium`,299162:`Outback`,62226:`Yacht`,358871:`Emerald Plains`,62230:`Chalet`,217482:`Coastline`,62228:`Bank`,62227:`Consulate`,255669:`Tower`,375492:`Nighthaven Labs`,62225:`Presidential Plane`,187984:`Article 5`,62221:`House`,62232:`Kafe Dostoyevsky`,201746:`Border`,365400:`Close Quarter`,299161:`Outback`,62231:`Bartlett U.`,396234:`Lair`,62223:`Hereford Base`,208094:`Skyscraper`,196157:`CQB Basics`,62222:`Oregon`,299534:`Outback`,318512:`Stadium`,307723:`Fort Truth`,195681:`Article 5`,62229:`Kanal`,177763:`CQB Basics`,357300:`Stadium 2020`,62224:`Clubhouse`,1193341205:`District`}),N=Object.freeze({notPlayed:l(0),inProgress:l(1),lost:l(2),enemiesEliminated:l(3),objectiveComplete:l(4),timeRanOut:l(5),enemiesSurrendered:l(6),unknownReason:l(7),matchCancelled:l(8)}),P=Object.freeze({[N.notPlayed]:`Not Played`,[N.inProgress]:`In Progress`,[N.lost]:`Lost`,[N.enemiesEliminated]:`Enemies Eliminated`,[N.objectiveComplete]:`Objective Complete`,[N.timeRanOut]:`Time ran out`,[N.enemiesSurrendered]:`Enemies Surrendered`,[N.unknownReason]:`Unknown Reason`,[N.matchCancelled]:`Match Cancelled`}),F=n({game:`string`,type:`string`,creation_time:`number`}),I=[N.enemiesEliminated,N.objectiveComplete,N.timeRanOut,N.enemiesSurrendered,N.unknownReason];function L(e){return I.includes(e)}const R=[N.notPlayed,N.inProgress];function z(e){return!R.includes(e)}const B=F.and({game:`'siege'`}),V=B.and({type:`'local_player'`,content:{profile_id:r(n.string)}}),H=()=>n({id:`number`,value:`string`}),U=n({kills:`number`,deaths:`number`,assists:`number`,plants:`number`,score:`number`}),W=n({instigator_player_id:r(n.number),receiver_player_id:r(n.number),damage_amount:`number`,remaining_health:`number`,pre_damage_health:`number`,max_health:`number`,damage_type:C,damage_team_type:T,damage_item_id:r(n.number).or(`null`),damage_time:`number`}),G=n({index:`number`,rounds_until_next_segment:`number`,segment_size:`number`,segment_index:`number`,team_0:{role:y,state:r(n.number)},team_1:{role:y,state:r(n.number)}}),K=n({id:`number`,name:H(),time_of_day:H()}),q=n({player_id:r(n.number),final_health:`number`,final_life_state:x,operator_name:H().or(`null`)}),J=n({round_data:G,damage_events:W.array(),players:q.array()}),Y=B.and({type:`'match_started'`,content:{game_mode:`string`,game_type:H(),match_type:`string`,match_id:r(n.string),map:K,is_round_based:`boolean`,current_round_index:`number`,rounds:G.array()}}),X=B.and({type:`'module_loaded'`}),Z=B.and({type:`'module_unloaded'`}),Q=B.and({type:`'started_queuing'`,content:{game_mode:`string`,game_type:H(),match_type:`string`}}),ne=B.and({type:`'stopped_queuing'`}),re=B.and({type:`'unsupported_game_version'`,content:{hash:`string | null`,version:`string | null`}}),ie=B.and({type:`'match_ended'`}),ae=B.and({type:`'map_changed'`,content:{map:K}}),oe=B.and({type:`'operator_banned'`,content:{index:`number`,team:_,side:y,operator_name:H().or(`null`)}}),se=B.and({type:`'round_ended'`,content:J}),ce=B.and({type:`'phase_changed'`,content:{phase:h}}),le=B.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:`string.uuid`,is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:y,team:_,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:U,life_state:x,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),ue=B.and({type:`'player_left'`,content:{player_id:r(n.number)}}),de=B.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:H().or(`null`)}}),fe=B.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),pe=B.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:y}}),me=B.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:U}}),$=B.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),he=B.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),ge=B.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),_e=B.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),ve=B.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),ye=B.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:x}}),be=B.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),xe=B.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Se=B.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Ce=B.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:_}}),we=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | local_player | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_banned | round_ended | phase_changed | player_joined | player_left | player_operator_changed | player_location_changed | player_side_changed | player_stats_changed`,"#event2":`player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated`,event:`event1 | event2`,module_loaded:X,module_unloaded:Z,unsupported_game_version:re,local_player:V,started_queuing:Q,stopped_queuing:ne,match_started:Y,match_ended:ie,map_changed:ae,operator_banned:oe,round_ended:se,phase_changed:ce,player_joined:le,player_left:ue,player_operator_changed:de,player_location_changed:fe,player_side_changed:pe,player_stats_changed:me,defuser_planted:he,defuser_sabotaged:ge,defuser_picked_up:_e,defuser_dropped:ve,player_ping_updated:$,player_life_state_changed:ye,player_died:be,player_downed:xe,player_ping_id_changed:Se,player_team_changed:Ce}).export();function Te(){return{key:`siege`,events:we}}export{F as BaseEvent,p as SIEGE_BOT_ID,w as SIEGE_DAMAGE_TEAM_TYPES,S as SIEGE_DAMAGE_TYPES,m as SIEGE_GAME_MODE_PHASES,E as SIEGE_GAME_MODE_TYPES_TO_ID,D as SIEGE_GAME_MODE_TYPE_LABELS,M as SIEGE_MAP_LABELS,j as SIEGE_MAP_TO_ID,k as SIEGE_OPERATOR_LABELS,A as SIEGE_OPERATOR_META,O as SIEGE_OPERATOR_TO_ID,b as SIEGE_PLAYER_LIFE_STATES,N as SIEGE_ROUND_STATES_TO_ID,P as SIEGE_ROUND_STATE_LABELS,v as SIEGE_SIDES,te as SIEGE_SIDE_OPERATORS,g as SIEGE_TEAMS,T as SiegeDamageTeamTypeSchema,C as SiegeDamageTypeSchema,h as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,f as SiegeItemObjectId,c as SiegeMapNameId,ee as SiegeMatchId,s as SiegeOperatorNameId,u as SiegePlayerId,x as SiegePlayerLifeStateSchema,d as SiegeProfileId,l as SiegeRoundState,y as SiegeSideSchema,_ as SiegeTeamSchema,z as isSiegeRoundStateCompleted,L as isSiegeRoundStateVictory,Te as module};
|
|
1
|
+
import{Type as e,scope as t,type as n}from"arktype";function r(e){return e}function i(e){return e}function a(e){return e?t=>(e(t),t):i}const o=a(),s=a(),c=a(),l=a(),ee=a(),u=a(),d=a(),f=a(),p=`00000000-0000-0000-0000-000000000000`,m=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`],h=n(`===`,...m),g=[0,1],_=n(`===`,...g),v=[`attacker`,`defender`,`both`,`invalid`],y=n(`===`,...v),b=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],x=n(`===`,...b),S=`bullet.melee.explosive.falling.regeneration.unknown.debris.projectile.downed.gas.thermal_explosion.melee_gadget.barbed_wire.electric.reinforcement.frag.paralyzed.emp.break.cleanup.interrogation.melee-finisher.toxic.toxic-explosion.pneumatic.body-contact.contact-explosion.flash.parasite-spike.laser.concussion.blowtorch.taser-shield.reverse-friendly-fire.self-destroyed.area-control.fire.breach-kick.break-wall.blade-mine.invalid`.split(`.`),C=n(`===`,...S),w=[`unknown`,`enemy`,`friendly`,`invalid`],T=n(`===`,...w),E=Object.freeze({ranked:o(205379),quickMatch:o(138115),customGame:o(62008),versusAi:o(397300),standard:o(393930),arcade:o(320109),siegeCup:o(414089),dualFront:o(420611),showdown:o(305544),trainingGrounds:o(-1)}),D=Object.freeze({[E.quickMatch]:`Quick Match`,[E.ranked]:`Ranked`,[E.customGame]:`Custom Game`,[E.versusAi]:`Versus AI`,[E.standard]:`Standard`,[E.arcade]:`Arcade`,[E.siegeCup]:`Siege Cup`,[E.dualFront]:`Dual Front`,[E.showdown]:`Showdown`,[E.trainingGrounds]:`Training Grounds`}),O=Object.freeze({glaz:s(62242),blitz:s(62243),buck:s(62244),sledge:s(62245),ash:s(62246),thermite:s(62247),castle:s(62248),rook:s(62249),pulse:s(62250),doc:s(62251),mute:s(62252),smoke:s(62253),recruit:s(62555),thatcher:s(65143),twitch:s(65156),montagne:s(65159),bandit:s(65165),fuze:s(65168),kapkan:s(65171),tachanka:s(65174),jager:s(113049),iq:s(113052),frost:s(186159),blackbeard:s(187249),valkyrie:s(187252),caveira:s(207671),capitao:s(207674),echo:s(209180),hibana:s(209183),mira:s(222172),jackal:s(222182),ying:s(239334),lesion:s(239337),ela:s(254595),zofia:s(254606),dokkaebi:s(273652),vigil:s(273663),finka:s(281457),lion:s(281463),alibi:s(282399),maestro:s(285888),maverick:s(288504),clash:s(288526),nomad:s(293435),kaid:s(293436),gridlock:s(298589),mozzie:s(298616),nokk:s(299657),warden:s(299668),goyo:s(304196),amaru:s(308469),kali:s(310757),wamai:s(310768),oryx:s(317965),iana:s(317976),melusi:s(320062),ace:s(320073),zero:s(328927),aruni:s(328940),flores:s(334086),thunderbird:s(336466),osa:s(344493),thorn:s(349405),azami:s(354314),sens:s(357386),grim:s(365404),solis:s(376836),brava:s(382419),fenrir:s(386388),ram:s(392904),tubarao:s(395594),deimos:s(400504),striker:s(404278),sentry:s(404290),skopos:s(408405),rauora:s(421052)}),k=Object.freeze({[O.glaz]:`glaz`,[O.blitz]:`blitz`,[O.buck]:`buck`,[O.sledge]:`sledge`,[O.ash]:`ash`,[O.thermite]:`thermite`,[O.castle]:`castle`,[O.rook]:`rook`,[O.pulse]:`pulse`,[O.doc]:`doc`,[O.mute]:`mute`,[O.smoke]:`smoke`,[O.recruit]:`recruit`,[O.thatcher]:`thatcher`,[O.twitch]:`twitch`,[O.montagne]:`montagne`,[O.bandit]:`bandit`,[O.fuze]:`fuze`,[O.kapkan]:`kapkan`,[O.tachanka]:`tachanka`,[O.jager]:`jager`,[O.iq]:`iq`,[O.frost]:`frost`,[O.blackbeard]:`blackbeard`,[O.valkyrie]:`valkyrie`,[O.caveira]:`caveira`,[O.capitao]:`capitao`,[O.echo]:`echo`,[O.hibana]:`hibana`,[O.mira]:`mira`,[O.jackal]:`jackal`,[O.ying]:`ying`,[O.lesion]:`lesion`,[O.ela]:`ela`,[O.zofia]:`zofia`,[O.dokkaebi]:`dokkaebi`,[O.vigil]:`vigil`,[O.finka]:`finka`,[O.lion]:`lion`,[O.alibi]:`alibi`,[O.maestro]:`maestro`,[O.maverick]:`maverick`,[O.clash]:`clash`,[O.nomad]:`nomad`,[O.kaid]:`kaid`,[O.gridlock]:`gridlock`,[O.mozzie]:`mozzie`,[O.nokk]:`nokk`,[O.warden]:`warden`,[O.goyo]:`goyo`,[O.amaru]:`amaru`,[O.kali]:`kali`,[O.wamai]:`wamai`,[O.oryx]:`oryx`,[O.iana]:`iana`,[O.melusi]:`melusi`,[O.ace]:`ace`,[O.zero]:`zero`,[O.aruni]:`aruni`,[O.flores]:`flores`,[O.thunderbird]:`thunderbird`,[O.osa]:`osa`,[O.thorn]:`thorn`,[O.azami]:`azami`,[O.sens]:`sens`,[O.grim]:`grim`,[O.solis]:`solis`,[O.brava]:`brava`,[O.fenrir]:`fenrir`,[O.ram]:`ram`,[O.tubarao]:`tubarao`,[O.deimos]:`deimos`,[O.striker]:`striker`,[O.sentry]:`sentry`,[O.skopos]:`skopos`,[O.rauora]:`rauora`}),A=Object.freeze({[O.striker]:{name:`Striker`,role:`attacker`},[O.sledge]:{name:`Sledge`,role:`attacker`},[O.thatcher]:{name:`Thatcher`,role:`attacker`},[O.ash]:{name:`Ash`,role:`attacker`},[O.thermite]:{name:`Thermite`,role:`attacker`},[O.twitch]:{name:`Twitch`,role:`attacker`},[O.montagne]:{name:`Montagne`,role:`attacker`},[O.glaz]:{name:`Glaz`,role:`attacker`},[O.fuze]:{name:`Fuze`,role:`attacker`},[O.blitz]:{name:`Blitz`,role:`attacker`},[O.iq]:{name:`IQ`,role:`attacker`},[O.buck]:{name:`Buck`,role:`attacker`},[O.blackbeard]:{name:`Blackbeard`,role:`attacker`},[O.capitao]:{name:`Capitão`,role:`attacker`},[O.hibana]:{name:`Hibana`,role:`attacker`},[O.jackal]:{name:`Jackal`,role:`attacker`},[O.ying]:{name:`Ying`,role:`attacker`},[O.zofia]:{name:`Zofia`,role:`attacker`},[O.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[O.lion]:{name:`Lion`,role:`attacker`},[O.finka]:{name:`Finka`,role:`attacker`},[O.maverick]:{name:`Maverick`,role:`attacker`},[O.nomad]:{name:`Nomad`,role:`attacker`},[O.gridlock]:{name:`Gridlock`,role:`attacker`},[O.nokk]:{name:`Nøkk`,role:`attacker`},[O.amaru]:{name:`Amaru`,role:`attacker`},[O.kali]:{name:`Kali`,role:`attacker`},[O.iana]:{name:`Iana`,role:`attacker`},[O.ace]:{name:`Ace`,role:`attacker`},[O.zero]:{name:`Zero`,role:`attacker`},[O.flores]:{name:`Flores`,role:`attacker`},[O.osa]:{name:`Osa`,role:`attacker`},[O.sens]:{name:`Sens`,role:`attacker`},[O.grim]:{name:`Grim`,role:`attacker`},[O.brava]:{name:`Brava`,role:`attacker`},[O.ram]:{name:`Ram`,role:`attacker`},[O.deimos]:{name:`Deimos`,role:`attacker`},[O.rauora]:{name:`Rauora`,role:`attacker`},[O.sentry]:{name:`Sentry`,role:`defender`},[O.smoke]:{name:`Smoke`,role:`defender`},[O.mute]:{name:`Mute`,role:`defender`},[O.castle]:{name:`Castle`,role:`defender`},[O.pulse]:{name:`Pulse`,role:`defender`},[O.doc]:{name:`Doc`,role:`defender`},[O.rook]:{name:`Rook`,role:`defender`},[O.kapkan]:{name:`Kapkan`,role:`defender`},[O.tachanka]:{name:`Tachanka`,role:`defender`},[O.jager]:{name:`Jäger`,role:`defender`},[O.bandit]:{name:`Bandit`,role:`defender`},[O.frost]:{name:`Frost`,role:`defender`},[O.valkyrie]:{name:`Valkyrie`,role:`defender`},[O.caveira]:{name:`Caveira`,role:`defender`},[O.echo]:{name:`Echo`,role:`defender`},[O.mira]:{name:`Mira`,role:`defender`},[O.lesion]:{name:`Lesion`,role:`defender`},[O.ela]:{name:`Ela`,role:`defender`},[O.vigil]:{name:`Vigil`,role:`defender`},[O.alibi]:{name:`Alibi`,role:`defender`},[O.maestro]:{name:`Maestro`,role:`defender`},[O.clash]:{name:`Clash`,role:`defender`},[O.kaid]:{name:`Kaid`,role:`defender`},[O.mozzie]:{name:`Mozzie`,role:`defender`},[O.warden]:{name:`Warden`,role:`defender`},[O.goyo]:{name:`Goyo`,role:`defender`},[O.wamai]:{name:`Wamai`,role:`defender`},[O.oryx]:{name:`Oryx`,role:`defender`},[O.melusi]:{name:`Melusi`,role:`defender`},[O.aruni]:{name:`Aruni`,role:`defender`},[O.thunderbird]:{name:`Thunderbird`,role:`defender`},[O.thorn]:{name:`Thorn`,role:`defender`},[O.azami]:{name:`Azami`,role:`defender`},[O.solis]:{name:`Solis`,role:`defender`},[O.fenrir]:{name:`Fenrir`,role:`defender`},[O.tubarao]:{name:`Tubarao`,role:`defender`},[O.skopos]:{name:`Skopós`,role:`defender`}}),te=Object.freeze({attacker:Object.entries(A).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...A[s(Number(e))],id:s(Number(e))})),defender:Object.entries(A).filter(([e,t])=>t.role===`defender`).map(([e])=>({...A[s(Number(e))],id:s(Number(e))}))}),j=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),article5:c(196214),themePark:c(229325),stadium:c(338641),outback:c(299162),yacht:c(62226),emeraldPlains:c(358871),chalet:c(62230),coastline:c(217482),bank:c(62228),consulate:c(62227),tower:c(255669),nighthavenLabs:c(375492),presidentialPlane:c(62225),house:c(62221),kafeDostoyevsky:c(62232),border:c(201746),closeQuarter:c(365400),bartlettU:c(62231),lair:c(396234),herefordBase:c(62223),skyscraper:c(208094),cqbBasics:c(196157),oregon:c(62222),fortTruth:c(307723),kanal:c(62229),stadium2020:c(357300),clubhouse:c(62224),district:c(1193341205),shinden:c(359432)}),M=Object.freeze({202283:`Favela`,293334:`Fortress`,286407:`Villa`,333785:`Neighborhood`,196214:`Article 5`,229325:`Theme Park`,338641:`Stadium`,299162:`Outback`,62226:`Yacht`,358871:`Emerald Plains`,62230:`Chalet`,217482:`Coastline`,62228:`Bank`,62227:`Consulate`,255669:`Tower`,375492:`Nighthaven Labs`,62225:`Presidential Plane`,187984:`Article 5`,62221:`House`,62232:`Kafe Dostoyevsky`,201746:`Border`,365400:`Close Quarter`,299161:`Outback`,62231:`Bartlett U.`,396234:`Lair`,62223:`Hereford Base`,208094:`Skyscraper`,196157:`CQB Basics`,62222:`Oregon`,299534:`Outback`,318512:`Stadium`,307723:`Fort Truth`,195681:`Article 5`,62229:`Kanal`,177763:`CQB Basics`,357300:`Stadium 2020`,62224:`Clubhouse`,1193341205:`District`,359432:`Shinden`}),N=Object.freeze({notPlayed:l(0),inProgress:l(1),lost:l(2),enemiesEliminated:l(3),objectiveComplete:l(4),timeRanOut:l(5),enemiesSurrendered:l(6),unknownReason:l(7),matchCancelled:l(8)}),P=Object.freeze({[N.notPlayed]:`Not Played`,[N.inProgress]:`In Progress`,[N.lost]:`Lost`,[N.enemiesEliminated]:`Enemies Eliminated`,[N.objectiveComplete]:`Objective Complete`,[N.timeRanOut]:`Time ran out`,[N.enemiesSurrendered]:`Enemies Surrendered`,[N.unknownReason]:`Unknown Reason`,[N.matchCancelled]:`Match Cancelled`}),F=n({game:`string`,type:`string`,creation_time:`number`}),I=[N.enemiesEliminated,N.objectiveComplete,N.timeRanOut,N.enemiesSurrendered,N.unknownReason];function L(e){return I.includes(e)}const R=[N.notPlayed,N.inProgress];function z(e){return!R.includes(e)}const B=F.and({game:`'siege'`}),V=B.and({type:`'local_player'`,content:{profile_id:r(n.string)}}),H=()=>n({id:`number`,value:`string`}),U=n({kills:`number`,deaths:`number`,assists:`number`,plants:`number`,score:`number`}),W=n({instigator_player_id:r(n.number),receiver_player_id:r(n.number),damage_amount:`number`,remaining_health:`number`,pre_damage_health:`number`,max_health:`number`,damage_type:C,damage_team_type:T,damage_item_id:r(n.number).or(`null`),damage_time:`number`}),G=n({index:`number`,rounds_until_next_segment:`number`,segment_size:`number`,segment_index:`number`,team_0:{role:y,state:r(n.number)},team_1:{role:y,state:r(n.number)}}),K=n({id:`number`,name:H(),time_of_day:H()}),q=n({player_id:r(n.number),final_health:`number`,final_life_state:x,operator_name:H().or(`null`)}),J=n({round_data:G,damage_events:W.array(),players:q.array()}),Y=B.and({type:`'match_started'`,content:{game_mode:`string`,game_type:H(),match_type:`string`,match_id:r(n.string),map:K,is_round_based:`boolean`,current_round_index:`number`,rounds:G.array()}}),X=B.and({type:`'module_loaded'`}),Z=B.and({type:`'module_unloaded'`}),Q=B.and({type:`'started_queuing'`,content:{game_mode:`string`,game_type:H(),match_type:`string`}}),ne=B.and({type:`'stopped_queuing'`}),re=B.and({type:`'unsupported_game_version'`,content:{hash:`string | null`,version:`string | null`}}),ie=B.and({type:`'match_ended'`}),ae=B.and({type:`'map_changed'`,content:{map:K}}),oe=B.and({type:`'operator_banned'`,content:{index:`number`,team:_,side:y,operator_name:H().or(`null`)}}),se=B.and({type:`'round_ended'`,content:J}),ce=B.and({type:`'phase_changed'`,content:{phase:h}}),le=B.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:`string.uuid`,is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:y,team:_,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:U,life_state:x,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),ue=B.and({type:`'player_left'`,content:{player_id:r(n.number)}}),de=B.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:H().or(`null`)}}),fe=B.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),pe=B.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:y}}),me=B.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:U}}),$=B.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),he=B.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),ge=B.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),_e=B.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),ve=B.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),ye=B.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:x}}),be=B.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),xe=B.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Se=B.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Ce=B.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:_}}),we=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | local_player | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_banned | round_ended | phase_changed | player_joined | player_left | player_operator_changed | player_location_changed | player_side_changed | player_stats_changed`,"#event2":`player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated`,event:`event1 | event2`,module_loaded:X,module_unloaded:Z,unsupported_game_version:re,local_player:V,started_queuing:Q,stopped_queuing:ne,match_started:Y,match_ended:ie,map_changed:ae,operator_banned:oe,round_ended:se,phase_changed:ce,player_joined:le,player_left:ue,player_operator_changed:de,player_location_changed:fe,player_side_changed:pe,player_stats_changed:me,defuser_planted:he,defuser_sabotaged:ge,defuser_picked_up:_e,defuser_dropped:ve,player_ping_updated:$,player_life_state_changed:ye,player_died:be,player_downed:xe,player_ping_id_changed:Se,player_team_changed:Ce}).export();function Te(){return{key:`siege`,events:we}}export{F as BaseEvent,p as SIEGE_BOT_ID,w as SIEGE_DAMAGE_TEAM_TYPES,S as SIEGE_DAMAGE_TYPES,m as SIEGE_GAME_MODE_PHASES,E as SIEGE_GAME_MODE_TYPES_TO_ID,D as SIEGE_GAME_MODE_TYPE_LABELS,M as SIEGE_MAP_LABELS,j as SIEGE_MAP_TO_ID,k as SIEGE_OPERATOR_LABELS,A as SIEGE_OPERATOR_META,O as SIEGE_OPERATOR_TO_ID,b as SIEGE_PLAYER_LIFE_STATES,N as SIEGE_ROUND_STATES_TO_ID,P as SIEGE_ROUND_STATE_LABELS,v as SIEGE_SIDES,te as SIEGE_SIDE_OPERATORS,g as SIEGE_TEAMS,T as SiegeDamageTeamTypeSchema,C as SiegeDamageTypeSchema,h as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,f as SiegeItemObjectId,c as SiegeMapNameId,ee as SiegeMatchId,s as SiegeOperatorNameId,u as SiegePlayerId,x as SiegePlayerLifeStateSchema,d as SiegeProfileId,l as SiegeRoundState,y as SiegeSideSchema,_ as SiegeTeamSchema,z as isSiegeRoundStateCompleted,L as isSiegeRoundStateVictory,Te as module};
|