@overlayed/app 0.30.1 → 0.31.1

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.mjs CHANGED
@@ -2,4 +2,4 @@ import{createRequire as e}from"node:module";import{Type as t,scope as n,type as
2
2
  `:`
3
3
  `)+n,i=r+1,r=e.indexOf(`
4
4
  `,i)}while(r!==-1);return a+=e.slice(i),a}const{stdout:je,stderr:Me}=Oe,Ne=Symbol(`GENERATOR`),E=Symbol(`STYLER`),D=Symbol(`IS_EMPTY`),Pe=[`ansi`,`ansi`,`ansi256`,`ansi16m`],O=Object.create(null),Fe=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=je?je.level:0;e.level=t.level===void 0?n:t.level},Ie=e=>{let t=(...e)=>e.join(` `);return Fe(t,e),Object.setPrototypeOf(t,k.prototype),t};function k(e){return Ie(e)}Object.setPrototypeOf(k.prototype,Function.prototype);for(let[e,t]of Object.entries(S))O[e]={get(){let n=A(this,ze(t.open,t.close,this[E]),this[D]);return Object.defineProperty(this,e,{value:n}),n}};O.visible={get(){let e=A(this,this[E],!0);return Object.defineProperty(this,`visible`,{value:e}),e}};const Le=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?S[n].ansi16m(...r):t===`ansi256`?S[n].ansi256(S.rgbToAnsi256(...r)):S[n].ansi(S.rgbToAnsi(...r)):e===`hex`?Le(`rgb`,t,n,...S.hexToRgb(...r)):S[n][e](...r);for(let e of[`rgb`,`hex`,`ansi256`]){O[e]={get(){let{level:t}=this;return function(...n){let r=ze(Le(e,Pe[t],`color`,...n),S.color.close,this[E]);return A(this,r,this[D])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);O[t]={get(){let{level:t}=this;return function(...n){let r=ze(Le(e,Pe[t],`bgColor`,...n),S.bgColor.close,this[E]);return A(this,r,this[D])}}}}const Re=Object.defineProperties(()=>{},{...O,level:{enumerable:!0,get(){return this[Ne].level},set(e){this[Ne].level=e}}}),ze=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},A=(e,t,n)=>{let r=(...e)=>Be(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,Re),r[Ne]=e,r[E]=t,r[D]=n,r},Be=(e,t)=>{if(e.level<=0||!t)return e[D]?``:t;let n=e[E];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes(`\x1B`))for(;n!==void 0;)t=ke(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
5
- `);return a!==-1&&(t=Ae(t,i,r,a)),r+t+i};Object.defineProperties(k.prototype,O);const Ve=k();k({level:Me?Me.level:0});var j=Ve,M=class{emitter;constructor(){this.emitter=i()}on(e,t){b(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){b(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){b(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},He=class{listeners;constructor(){this.listeners=new Map}on(e,t){b(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){b(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=b(e).flatMap(e=>{let t=this.listeners.get(e)||new Set,n=this.listeners.get(`*`)||new Set;return[...Array.from(t),...Array.from(n)]});return n.length===0?[]:await Promise.all(n.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}}))}removeAllListeners(){this.listeners.clear()}};function N(e,...t){return class extends e{static _instance;static getInstance(){return this._instance||=new e(...t),this._instance}static clearInstance(){this._instance=void 0}}}const P=N(class extends M{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()})}});var Ue=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){return this.get()[e]}save(e){let t=this.onBeforeSave(e);try{f(this.getFilePath()),a.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=a.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`)(e);if(t instanceof r.errors)return this._defaultValue;let n=this._schema[`~standard`].validate(t);if(n instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return n.issues?this.migrate(t,this._defaultValue):this.migrate(n.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return a.accessSync(e,a.constants.R_OK|a.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return a.accessSync(e,a.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(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){P.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}};function We(e,t,n){return typeof e!=`object`||!e?String(e):e instanceof Error?JSON.stringify(e,Object.getOwnPropertyNames(e),n):e instanceof Map?JSON.stringify(Object.fromEntries(e.entries()),t,n):e instanceof Set?JSON.stringify(Array.from(e),t,n):JSON.stringify(e,t,n)}var Ge=class e extends M{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)}static getMessageElements(e,...t){let n=new Date;return{timestamp:n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getUTCMilliseconds().toString().padStart(3,`0`)}`,level:e,message:t.map(e=>We(e)).join(` `)}}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{c(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=p(this.logPath,this.getFileName(this.currentDate));if(!s(e))try{d(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return`${e.getUTCFullYear()}-${(e.getUTCMonth()+1).toString().padStart(2,`0`)}-${e.getUTCDate().toString().padStart(2,`0`)}`}createStream(){return o(p(this.logPath,this.getFileName(this.currentDate)),{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=l(this.logPath),t=new Date,n=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()-7));e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let[t,r,i]=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``).split(`-`).map(Number);return new Date(Date.UTC(t,r-1,i))<=n}).forEach(e=>{try{u(p(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}write(t,...n){let{timestamp:r,message:i}=e.getMessageElements(t,...n),a=`[${r}] [${t}] ${i}\n`;this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}};const F=()=>m.join(process.env.APPDATA??``,`overlayed`),Ke=()=>m.join(F(),`logs`),qe=e=>m.join(F(),`apps`,e),Je=e=>m.join(qe(e),`logs`),Ye=()=>m.join(F(),`meta.json`);var Xe=class{fileLogger;path;appId;messageQueue=new _e;fileName;_debug=!1;silent=!1;constructor(e){this.fileName=e}init(e,t=!1,n=!1){this.appId=e,this._debug=t,this.silent=n,this.path=Je(e),this.fileLogger=new Ge(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){this.logToConsole(e,...t),this.fileLogger?this.fileLogger[e](...t):this.messageQueue.add({type:e,args:t})}logToConsole(e,...t){let n={error:j.red,warn:j.yellow,debug:j.blue,log:j.white};if(this.silent&&!this._debug)return;let{timestamp:r,message:i}=Ge.getMessageElements(e,...t),a=console[e],o=n[e];a(`${j.gray(r)} ${o(i)}`)}};const I=N(Xe,`overlayed.log`);var Ze=class extends ie{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=new Map,i=new Set,a=new Set,o=[];for(let e=0;e<n;e++)o.push(e);let s=async n=>{let s=n*t,c=Math.min(s+t,this.blob.size),l=this.blob.slice(s,c);try{await e(l,n),a.add(n),this.emit(`chunkComplete`,n),i.delete(n)}catch(e){let t=r.get(n)||0;t<5?(r.set(n,t+1),await new Promise(e=>setTimeout(e,(t+1)*1e3)),o.push(n)):(a.add(n),this.emit(`error`,e),this.shouldStop=!0,i.delete(n))}},c=[],l=async()=>{for(;(o.length>0||i.size>0)&&!this.shouldStop;){if(o.length===0){await new Promise(e=>setTimeout(e,10));continue}let e=o.shift();a.has(e)||i.has(e)||(i.add(e),await s(e))}};for(let e=0;e<this.maxConcurrent;e++)c.push(l());await Promise.all(c)}};function Qe(e,t){let{recursive:n}=$e(t);return se(e)?n?et(e).map(t=>[e,t]):ue(e).map(t=>[e,t]):[]}function $e(e){return{recursive:e?.recursive??!0}}function et(e){return ue(e,{withFileTypes:!0}).flatMap(t=>{let n=m.join(e,t.name);return t.isDirectory()?et(n):[n]})}function tt(e){return e}const{PipeEventServer:nt,PipeEventClient:rt,PipeEventBase:it,ProcessMonitor:at,Process:ot,HardwareInterface:st}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),L=N(class extends M{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(),null)}init(){this.server=new nt(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})}},`stats-cc`),{RenderInterface:ct,renderHookPath:lt}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);let ut=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}({});const R=r({game:`string`,type:`string`,creation_time:`number`}).and({game:`'siege' | 'tft'`}),dt=R.and({type:`'logged_in'`,content:{account_id:`string`}}),ft=R.and({type:`'module_loaded'`,content:{game_version:`string`,process_hash:`string`}}),pt=R.and({type:`'module_unloaded'`}),mt=R.and({type:`'unsupported_game_version'`,content:{game_version:`string`,process_hash:`string`}}),ht=n({"#event1":`logged_in | module_loaded | module_unloaded | unsupported_game_version`,event:`event1`,logged_in:dt,module_loaded:ft,module_unloaded:pt,unsupported_game_version:mt}).export(),gt=Object.keys(ht).filter(e=>e!==`event`);function _t(){return{key:`universal`,events:ht}}var vt=class{logger;initialized=!1;constructor(e){this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},z=class extends M{logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},yt=class extends He{logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const bt=fe.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let xt;function St(e){xt=e}bt.interceptors.request.use(e=>{let t=xt?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const B=fe.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});B.interceptors.request.use(e=>(e.headers??={},e));function Ct(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 wt(e){return e}function Tt(e){return e?t=>(e(t),t):wt}const Et=Tt();function Dt(e){return B.get(`/v1/public/applications/${e}`)}function Ot(e,t,n){return bt.get(`/v1/native/${At(e)}/version.txt`,{params:{channel:t},responseType:`text`,headers:{"X-App-Version":jt(n,t)}})}function kt(e,t,n){return bt.get(`/v1/native/${At(e)}/files`,{params:{channel:t},responseType:`arraybuffer`,headers:{"X-App-Version":jt(n,t)}})}function At(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function jt(e,t){return`desktop-application/${e} (channel=${t})`}function Mt(){return B.get(`/v1/public/raven/config`)}function Nt(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Pt(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Ft(e,t){let n=new FormData;return n.append(`file`,t.chunk),B.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}function It(e){let t=Date.now(),n=Ct(e.messages.map(e=>Lt(t,e)),250),r=Promise.all(n.map(async t=>B.post(`/v1/public/cortex/events`,{...e,messages:t})));return r.catch(e=>{let t=e?.response?.data||e?.message||e;console.error(`Failed to submit cortex events`,t)}),r}function Lt(e,t){let n=e-t.created_at.getTime(),r=Math.max(0,Math.floor(n/1e3));return{properties:t.properties,type:t.type,seconds_offset:r}}function Rt(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function zt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Bt;function Vt(e){Bt=e}const V=N(class extends z{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=m.join(F(),`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),void 0),super.destroy()}async getCurrentVersion(e){try{let t=m.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await _.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return m.join(this.targetDir,e)}getTargetVersionPath(e,t){return m.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 Bt?.();for(let n of e)try{let{data:e}=await Ot(n,t,global.OVERLAYED.APP_VERSION),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r,a=!1;if(!i){let t=this.getTargetVersionPath(n,e);await this.hasPathAccess(t)?(await _.readdir(t)).length===0&&(a=!0,this.logger.warn(`${n} > Version path exists, but no files. Forcing download.`)):(a=!0,this.logger.warn(`${n} > Version path does not exist. Forcing download.`))}i||a?(this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t),this.logger.log(`${n} > Downloaded and extracted`),await this.cleanupOldVersions(n,e),this.logger.log(`${n} > Cleaned up versions older than ${e}`),this.emit(`dllUpdated`,{identifier:n,version:e})):this.logger.log(`${n} > No update found`)}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n){this.logger.log(`${e} > Downloading DLLs for version ${t}`);let{data:r}=await kt(e,n,global.OVERLAYED.APP_VERSION);this.logger.log(`${e} > Downloaded DLLs for version ${t}`);let i=this.getTargetPath(e),a=this.getTargetVersionPath(e,t);await _.mkdir(a,{recursive:!0});let o=new v;await o.loadAsync(r);let s=Object.keys(o.files).map(async t=>{let n=o.files[t];if(n&&!n.dir){let r=m.join(a,t),i=await n.async(`nodebuffer`);await _.writeFile(r,i),this.logger.log(`${e} > Extracted DLL: ${t}`)}});await Promise.all(s);let c=m.join(i,`version.txt`);await _.writeFile(c,t),this.logger.log(`${e} > Saved version file: ${t}`)}async cleanupOldVersions(e,t){let n=m.join(this.targetDir,e),r=await _.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await _.rm(m.join(n,e.name),{recursive:!0,force:!0})}async hasPathAccess(e){try{return await _.access(e,_.constants.F_OK),!0}catch{return!1}}}),H=N(class extends z{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),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),V.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{this._ravenConfig={games:(await Mt()).data.games},this.resetState();let e=new Set;for(let t of this._ravenConfig.games){for(let e of t.executables){let n=e.toLowerCase();this._executableToGameMap.set(n,t),this._executablesArray.push(n)}t.modules.forEach(t=>e.add(t))}await V.getInstance().initWithDlls(Array.from(e)),this.logger.log(`Raven updated, monitoring ${this._executableToGameMap.size} executables`),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=[]}}),{PipeEventServer:Ht,PipeEventClient:Ut,PipeEventBase:Wt,ProcessMonitor:Gt,Process:Kt,HardwareInterface:qt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),U=N(class extends z{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new Gt}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),H.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(){H.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){return this._processes.get(e)?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){this.logger.log(`Monitoring ${e.executables.length} processes`),e.executables.forEach(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)?.filter(t=>t.id!==e.id)??[];t.length===0?this._processes.delete(e.name):this._processes.set(e.name,t)}});var Jt=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}}};const W=N(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new Jt(new ct(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),G=N(class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new _e,this.setupFlushInterval()}track(e,t){this.eventQueue.add({type:e,properties:t,created_at:new Date})}flush(){let e=Array.from(this.eventQueue.flush()).concat({type:`ping`,properties:{},created_at:new Date});if(!this.meta)throw Error(`Tried to flush Cortex events before meta was set`);try{It({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}});function Yt(e=[]){return m.normalize(m.join(qe(global.OVERLAYED.APPLICATION_ID),...e))}const Xt=r({game:`string`,type:`string`,creation_time:`number`}),K=new Ue({path:Ye(),schema:r({userId:`string | undefined`,sessionId:`string | undefined`,sessionLastUsed:`number | undefined`,"debug?":{"ri_disabled?":`boolean`,"gm_disabled?":`boolean`}}),default:{userId:void 0,sessionId:void 0,sessionLastUsed:void 0}});function Zt(){let{debug:e}=K.get();return e?{ri_disabled:e.ri_disabled??!1,gm_disabled:e.gm_disabled??!1}:{ri_disabled:!1,gm_disabled:!1}}function Qt(){let e=K.get().userId;if(e)return e;let t=tn();return K.set({...K.get(),userId:t}),t}function $t(){let e=K.get();if(e.sessionId&&typeof e.sessionLastUsed==`number`&&Date.now()-e.sessionLastUsed<=300*1e3)return e.sessionId;let t=crypto.randomUUID();return K.set({...e,sessionId:t,sessionLastUsed:Date.now()}),t}function en(){try{let e=K.get();K.set({...e,sessionLastUsed:Date.now()})}catch(e){I.getInstance().log(`Failed to update sessionLastUsed`,e)}}function tn(){try{return qt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}const nn=e(import.meta.url).resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),q=N(class extends yt{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;_activeReadyRavenGames=new Set;get isInGame(){return this._activeReadyRavenGames.size>0}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()}on(e,t){super.on(e,t);let n=b(e);if(!(n.includes(`gameReady`)||n.includes(`*`))||this._activeReadyRavenGames.size===0)return;let r=t;for(let e of this._activeReadyRavenGames)this.logger.log(`Late calling gameReady callback for game`,e),r({game:e})}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(G.getInstance().track(`game_launch`,{game:t.identifier}),!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;let r=Kt.currentProcess;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,r.isElevated),e.isElevated&&!r.isElevated){P.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!r.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:r.isElevated,gameElevated:e.isElevated});return}let i=this.copyDll(nn),a=Zt();if(a.ri_disabled&&this.logger.log(`Skipping render interface injection due to meta debug`,{renderInterfacePath:i}),i&&!a.ri_disabled)try{await e.injectDll(i),this.logger.log(`Render Interface Injection Successful`,i)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:i})}let o=t?.modules.map(async t=>{let n=await V.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=V.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=m.basename(t),i=m.join(r,n);if(!i)return Promise.resolve();if(a.gm_disabled)return this.logger.log(`Skipping injection due to meta debug`,{targetPath:i}),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(o),this._activeReadyRavenGames.add(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),this.logger.log(`Game Ready`),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,{game:t.identifier}),G.getInstance().track(`game_ready`,{game:t.identifier})}copyDll(e){let t=m.basename(e),n=te(e),r=m.join(F(),`resources`),i=m.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{se(r)||ce(r,{recursive:!0}),de(i,le(n)),ae(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{return(await _.readdir(e)).filter(e=>e.endsWith(`.dll`)).map(t=>m.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._activeReadyRavenGames.delete(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),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=H.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}}),rn=N(class extends vt{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),q.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){q.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=le(n.path),i=pe(`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{a=(await Nt(t.identifier,i)).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 Ze(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Pt(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 Ft(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Rt(e)?zt(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)}}});function J(e,t){return`${e}:${t}`}function an(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=J(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=J(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=J(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=J(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function on(){let e=P.getInstance(),t=q.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]})}}}}var Y=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}(Y||{});const sn=new Map([[Y.LeftButton,`LeftButton`],[Y.RightButton,`RightButton`],[Y.Cancel,`Cancel`],[Y.MiddleButton,`MiddleButton`],[Y.ExtraButton1,`ExtraButton1`],[Y.ExtraButton2,`ExtraButton2`],[Y.Back,`Backspace`],[Y.Tab,`Tab`],[Y.Clear,`Clear`],[Y.Return,`Enter`],[Y.Shift,`ShiftLeft`],[Y.Control,`ControlLeft`],[Y.Menu,`AltLeft`],[Y.Pause,`Pause`],[Y.CapsLock,`CapsLock`],[Y.Kana,`KanaMode`],[Y.Junja,`JunjaMode`],[Y.Final,`Finalize`],[Y.Hanja,`HanjaMode`],[Y.Escape,`Escape`],[Y.Convert,`Convert`],[Y.NonConvert,`NonConvert`],[Y.Accept,`Accept`],[Y.ModeChange,`ModeChange`],[Y.Space,`Space`],[Y.Prior,`PageUp`],[Y.Next,`PageDown`],[Y.End,`End`],[Y.Home,`Home`],[Y.Left,`ArrowLeft`],[Y.Up,`ArrowUp`],[Y.Right,`ArrowRight`],[Y.Down,`ArrowDown`],[Y.Select,`Select`],[Y.Print,`PrintScreen`],[Y.Execute,`Execute`],[Y.Snapshot,`Snapshot`],[Y.Insert,`Insert`],[Y.Delete,`Delete`],[Y.Help,`Help`],[Y.N0,`Digit0`],[Y.N1,`Digit1`],[Y.N2,`Digit2`],[Y.N3,`Digit3`],[Y.N4,`Digit4`],[Y.N5,`Digit5`],[Y.N6,`Digit6`],[Y.N7,`Digit7`],[Y.N8,`Digit8`],[Y.N9,`Digit9`],[Y.A,`KeyA`],[Y.B,`KeyB`],[Y.C,`KeyC`],[Y.D,`KeyD`],[Y.E,`KeyE`],[Y.F,`KeyF`],[Y.G,`KeyG`],[Y.H,`KeyH`],[Y.I,`KeyI`],[Y.J,`KeyJ`],[Y.K,`KeyK`],[Y.L,`KeyL`],[Y.M,`KeyM`],[Y.N,`KeyN`],[Y.O,`KeyO`],[Y.P,`KeyP`],[Y.Q,`KeyQ`],[Y.R,`KeyR`],[Y.S,`KeyS`],[Y.T,`KeyT`],[Y.U,`KeyU`],[Y.V,`KeyV`],[Y.W,`KeyW`],[Y.X,`KeyX`],[Y.Y,`KeyY`],[Y.Z,`KeyZ`],[Y.LeftWindows,`MetaLeft`],[Y.RightWindows,`MetaRight`],[Y.Application,`ContextMenu`],[Y.Sleep,`Sleep`],[Y.Numpad0,`Numpad0`],[Y.Numpad1,`Numpad1`],[Y.Numpad2,`Numpad2`],[Y.Numpad3,`Numpad3`],[Y.Numpad4,`Numpad4`],[Y.Numpad5,`Numpad5`],[Y.Numpad6,`Numpad6`],[Y.Numpad7,`Numpad7`],[Y.Numpad8,`Numpad8`],[Y.Numpad9,`Numpad9`],[Y.Multiply,`NumpadMultiply`],[Y.Add,`NumpadAdd`],[Y.Separator,`NumpadSeparator`],[Y.Subtract,`NumpadSubtract`],[Y.Decimal,`NumpadDecimal`],[Y.Divide,`NumpadDivide`],[Y.F1,`F1`],[Y.F2,`F2`],[Y.F3,`F3`],[Y.F4,`F4`],[Y.F5,`F5`],[Y.F6,`F6`],[Y.F7,`F7`],[Y.F8,`F8`],[Y.F9,`F9`],[Y.F10,`F10`],[Y.F11,`F11`],[Y.F12,`F12`],[Y.F13,`F13`],[Y.F14,`F14`],[Y.F15,`F15`],[Y.F16,`F16`],[Y.F17,`F17`],[Y.F18,`F18`],[Y.F19,`F19`],[Y.F20,`F20`],[Y.F21,`F21`],[Y.F22,`F22`],[Y.F23,`F23`],[Y.F24,`F24`],[Y.NumLock,`NumLock`],[Y.ScrollLock,`ScrollLock`],[Y.NEC_Equal,`NEC_Equal`],[Y.Fujitsu_Masshou,`Fujitsu_Masshou`],[Y.Fujitsu_Touroku,`Fujitsu_Touroku`],[Y.Fujitsu_Loya,`Fujitsu_Loya`],[Y.Fujitsu_Roya,`Fujitsu_Roya`],[Y.LeftShift,`ShiftLeft`],[Y.RightShift,`ShiftRight`],[Y.LeftControl,`ControlLeft`],[Y.RightControl,`ControlRight`],[Y.LeftMenu,`AltLeft`],[Y.RightMenu,`AltRight`],[Y.BrowserBack,`BrowserBack`],[Y.BrowserForward,`BrowserForward`],[Y.BrowserRefresh,`BrowserRefresh`],[Y.BrowserStop,`BrowserStop`],[Y.BrowserSearch,`BrowserSearch`],[Y.BrowserFavorites,`BrowserFavorites`],[Y.BrowserHome,`BrowserHome`],[Y.VolumeMute,`VolumeMute`],[Y.VolumeDown,`VolumeDown`],[Y.VolumeUp,`VolumeUp`],[Y.MediaNextTrack,`MediaTrackNext`],[Y.MediaPrevTrack,`MediaTrackPrevious`],[Y.MediaStop,`MediaStop`],[Y.MediaPlayPause,`MediaPlayPause`],[Y.LaunchMail,`LaunchMail`],[Y.LaunchMediaSelect,`LaunchMediaSelect`],[Y.LaunchApplication1,`LaunchApplication1`],[Y.LaunchApplication2,`LaunchApplication2`],[Y.OEM1,`OEM_1`],[Y.OEMPlus,`Equal`],[Y.OEMComma,`Comma`],[Y.OEMMinus,`Minus`],[Y.OEMPeriod,`Period`],[Y.OEM2,`Slash`],[Y.OEM3,`Backquote`],[Y.OEM4,`BracketLeft`],[Y.OEM5,`Backslash`],[Y.OEM6,`BracketRight`],[Y.OEM7,`Quote`],[Y.OEM8,`IntlRo`],[Y.OEMAX,`OEM_AX`],[Y.OEM102,`IntlBackslash`],[Y.ICOHelp,`ICO_HELP`],[Y.ICO00,`ICO_00`],[Y.ProcessKey,`Process`],[Y.ICOClear,`ICO_CLEAR`],[Y.Packet,`Packet`],[Y.OEMReset,`OEM_Reset`],[Y.OEMJump,`OEM_Jump`],[Y.OEMPA1,`OEM_PA1`],[Y.OEMPA2,`OEM_PA2`],[Y.OEMPA3,`OEM_PA3`],[Y.OEMWSCtrl,`OEM_WS_Ctrl`],[Y.OEMCUSel,`OEM_CU_Sel`],[Y.OEMATTN,`OEM_ATTN`],[Y.OEMFinish,`OEM_Finish`],[Y.OEMCopy,`OEM_Copy`],[Y.OEMAuto,`OEM_Auto`],[Y.OEMENLW,`OEM_ENLW`],[Y.OEMBackTab,`BackTab`],[Y.ATTN,`ATTN`],[Y.CRSel,`CRSel`],[Y.EXSel,`EXSel`],[Y.EREOF,`EREOF`],[Y.Play,`MediaPlay`],[Y.Zoom,`Zoom`],[Y.Noname,`Noname`],[Y.PA1,`PA1`],[Y.OEMClear,`OEM_Clear`]]),cn=new Map(sn.entries().map(([e,t])=>[t,e])),ln=r({"[string]":{keys:`string[]`,mode:r(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var un=class extends z{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 Ue({path:Yt([`keybinds.json`]),schema:ln,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)??{toggle:[],down:[],up:[]};n.toggle.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.down.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.up.push(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=sn.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=sn.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries())n[e].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||n.up.length===0)continue;let r=e[t];if(this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))){this.activeKeybinds.delete(t);for(let e of n.up)e();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];if(r.keys.length===this.pressedKeys.size&&r.keys.every(e=>cn.has(e)?this.pressedKeys.has(e):!1)){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];r.keys.every(e=>cn.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1))&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&t.toggle.length>0&&!this.triggeredToggleKeybinds.has(n)){let r;for(let e of t.toggle){let t=e();typeof t==`string`&&r===void 0&&(r=t)}this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&t.down.length>0&&!this.activeKeybinds.has(n)){let r;for(let e of t.down){let t=e();if(typeof t==`string`){r=t;break}}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}`:``})`}};function dn(e){let t=new un(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 X(){return W.getInstance().getInterface(`OGG_SIEGE`)}function fn(){let e=q.getInstance(),t=P.getInstance(),n=G.getInstance();n.meta=pn(),e.on([`gameReady`,`gameClose`],()=>{n.meta||=pn(),n.meta.in_game=e.isInGame}),t.on(`fatal`,e=>{n.track(`fatal`,{message:e.message,code:e.code,data:JSON.stringify(e.data)})}),t.on(`error`,e=>{n.track(`error`,{code:e.code,message:e.message,data:JSON.stringify(e.data)})}),t.on(`warning`,e=>{n.track(`warning`,{message:e.message,code:e.code,data:JSON.stringify(e.data)})})}function pn(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:Qt(),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,in_game:!1}}function mn(){function e(e,t){return e.once(`closed`,()=>{e.isDestroyed()||G.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||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(X().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>X().instance.on(e,t),off:(e,t)=>X().instance.off(e,t),once:(e,t)=>X().instance.once(e,t),addListener:(e,t)=>X().instance.addListener(e,t),removeListener:(e,t)=>X().instance.removeListener(e,t),removeAllListeners:()=>X().instance.removeAllListeners(),prependListener:(e,t)=>X().instance.prependListener(e,t),prependOnceListener:(e,t)=>X().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=X(),t=L.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const hn=N(class extends vt{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)}},`OGG_SIEGE`);function gn(){return{scope:e=>hn.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>X().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>X().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>X().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>X().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>X().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>X().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>X().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>X().instance.getKeyInputBlock(e)}}}function _n(){return{track:(e,t)=>{G.getInstance().track(`custom__${String(e)}`,t)}}}var vn=ge(((e,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`)for(let t of Object.values({KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576}))e.hookWindowMessage(t,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}}))();function yn(){return{registerWindow:e=>{(0,vn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function bn(e){let t=Je(global.OVERLAYED.APPLICATION_ID),n=Qe(t,{recursive:!0}),r=Ke(),i=Qe(r,{recursive:!0});I.getInstance().info(`Logs path: `,t),I.getInstance().info(`Overlayed logs path: `,r);let a=new v;return[...n,...i].forEach(([e,t])=>{I.getInstance().info(`Zipping: `,t);let n=oe(t),r=ee(t);a.file(r,n,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{I.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function xn(e,t){let n={...e,version:`${global.OVERLAYED.APP_VERSION}@${global.OVERLAYED.APP_BUILD_CHANNEL}`,log_zip:`data:application/zip;base64,${t}`};await fetch(`https://api.stats.cc/v1/overlay/contact`,{method:`POST`,body:JSON.stringify(n),redirect:`follow`,headers:{"Content-Type":`application/json`}})}function Sn(e){let t=new Xe(`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}),await xn(e,await bn(t).generateAsync({type:`base64`}))}}}const Cn=1e3;function wn(e,t,n,i,a){let o=L.getInstance(),s=I.getInstance().scope(`SetupPipeServer`);s.log(`Initializing`);function c(e,t){let r=n.get(t);if(!r)n.set(t,[e]);else{if(r.length>=Cn){P.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${r.length}, max: ${Cn}`});return}r.push(e)}}function l(n){s.info(n);let i=Xt(n);if(i instanceof r.errors){G.getInstance().track(`invalid_game_event`,{}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=gt.includes(i.type),l=e.modules.find(e=>e.key===`universal`),u=o?l:e.modules.find(e=>e.key===i.game);if(!u){s.warn(`Invalid module`,{module:o?`universal`:i.game});return}let d=u.events.event,f=d(n);if(f instanceof r.errors){if(`type`in f.byPath)return;s.warn(`Invalid event`,{summary:f.summary}),G.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type,summary:f.summary}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:f.summary});return}if(!a[u.key]){c(f,u.key);return}if(f.type===`unsupported_game_version`){let{content:e}=f;G.getInstance().track(`unsupported_game_version`,{game:f.game,hash:e.process_hash,version:e.game_version})}let p=J(u.key,f.type),m=J(u.key,`*`),ee=t.get(p),te=t.get(m),h=[...Array.from(ee??[]),...Array.from(te??[])];if(h.length===0){s.info(`No handlers found for event`,{event:f});return}h.forEach(e=>{e(f)})}return i.on(`flushEvents`,e=>{if(a[e])return;a[e]=!0;let t=n.get(e);t&&(I.getInstance().info(`Flushing ${t.length} events for module ${e}`),t.forEach(e=>l(e)),n.delete(e))}),o.on(`data`,e=>e.forEach(l)),o.on(`error`,e=>{s.error(`Pipe server error`,e),P.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o}let Z=!1,Tn={},Q,En=new M,$;function Dn(e){let t=On(e),{init:n=!0,debug:r=!1,silent:i=!0}=t;if(kn(e),I.getInstance().init(e.applicationId,r,i),Z)return Q;function a(){if(Z){I.getInstance().warn(`Overlayed already initialized`);return}fn();let e=new Map,n=new Map,r=an(t.modules,e,En),i=on(),o=dn(t.keybinds),s=mn(),c=gn(),l=yn(),u=_n(),d=Sn(t);I.getInstance().log(`Overlayed initialized`),An(t),wn(t,e,n,En,Tn),Z=!0,Q={...r,...i,ads:l,keybinds:o,windows:s,input:c,cortex:u,hasAnyActiveProcesses:()=>U.getInstance().hasAnyActiveProcesses,hasAnyActiveGames:()=>q.getInstance().isInGame,init:a,log:d,initialized:Z},Q.universal.on(`logged_in`,e=>{G.getInstance().track(`account_id`,{account_id:e.content.account_id,game:e.game})})}return n?(a(),Q):new Proxy({init:a},{get:(e,t)=>{if(t!==`init`&&!Z)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Q[t]}})}function On(e){return{...e,modules:[...e.modules,_t()]}}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function kn(e){global.OVERLAYED={APPLICATION_ID:Et(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.30.1`,FRONTEND_VERSION:`0.0.0`,sessionId:$t(),electron:e.electron}}function An(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);q.getInstance().setSubscribedGames(t),rn.getInstance().init(),q.getInstance().init(),U.getInstance().init(),H.getInstance().init();async function n(){let e=Dt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=Qt();I.getInstance().log(`userId`,t);let n={...await e,userId:t};return I.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r??=n(),r)),G.getInstance().track(`start`,{});try{$&&clearInterval($),$=setInterval(()=>{try{en()}catch{}},3e4),$.unref()}catch(e){I.getInstance().log(`failed to start sessionLastUsed interval`,e)}async function i(){let e={};e.os=g.platform().trim(),e.os_version=process.getSystemVersion().trim(),e.architecture=g.arch().trim();let t=g.cpus();t.length>0?(e.cpu=t[0].model.trim(),e.cpu_cores=t.length,e.cpu_speed=t[0].speed):I.getInstance().warn(`Failed to collect CPU info`);let n=await he.graphics();I.getInstance().info(`GPU info`,n);let r=n.controllers.sort((e,t)=>(t.vram??0)-(e.vram??0))[0];r?(e.gpu=r.model.trim(),e.gpu_memory=r.vram??0):I.getInstance().warn(`Failed to find primary GPU`),e.display_count=n.displays.length;let i=n.displays.find(e=>e.main)??n.displays[0];i?(e.primary_display_resolution_x=i.resolutionX??void 0,e.primary_display_resolution_y=i.resolutionY??void 0,e.primary_display_refresh_rate=i.currentRefreshRate??void 0):I.getInstance().warn(`Failed to find main display`),e.ram=process.getSystemMemoryInfo().total;let a=g.homedir(),o=await me.statfs(a);return o&&`blocks`in o&&`bsize`in o&&`bavail`in o?(e.disk=o.blocks*o.bsize,e.disk_free=o.bavail*o.bsize):I.getInstance().warn(`Failed to collect disk info`),I.getInstance().log(`Retrieved system information`,e),e}y.on(`ready`,()=>{i().then(e=>{G.getInstance().track(`system_info`,e)}).catch(e=>{I.getInstance().log(`Failed to retrieve system information`,e)})}),y.on(`quit`,()=>{G.getInstance().track(`electron_quit`,{}),jn()}),process.on(`exit`,()=>{G.getInstance().track(`exit`,{}),jn()})}async function jn(){try{en()}catch{}try{$&&clearInterval($),$=void 0}catch{}await G.getInstance().flush(),H.getInstance().destroy(),q.getInstance().destroy(),rn.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),L.getInstance().destroy(),P.getInstance().destroy()}export{ct as RenderInterface,ut as VirtualKey,tt as defineConfig,Dn as overlayed,Vt as setFetchLatestTokenCallback,St as setUpdaterTokenResolver};
5
+ `);return a!==-1&&(t=Ae(t,i,r,a)),r+t+i};Object.defineProperties(k.prototype,O);const Ve=k();k({level:Me?Me.level:0});var j=Ve,M=class{emitter;constructor(){this.emitter=i()}on(e,t){b(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){b(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){b(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},He=class{listeners;constructor(){this.listeners=new Map}on(e,t){b(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){b(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=b(e).flatMap(e=>{let t=this.listeners.get(e)||new Set,n=this.listeners.get(`*`)||new Set;return[...Array.from(t),...Array.from(n)]});return n.length===0?[]:await Promise.all(n.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}}))}removeAllListeners(){this.listeners.clear()}};function N(e,...t){return class extends e{static _instance;static getInstance(){return this._instance||=new e(...t),this._instance}static clearInstance(){this._instance=void 0}}}const P=N(class extends M{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()})}});var Ue=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){return this.get()[e]}save(e){let t=this.onBeforeSave(e);try{f(this.getFilePath()),a.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=a.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`)(e);if(t instanceof r.errors)return this._defaultValue;let n=this._schema[`~standard`].validate(t);if(n instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return n.issues?this.migrate(t,this._defaultValue):this.migrate(n.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return a.accessSync(e,a.constants.R_OK|a.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return a.accessSync(e,a.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(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){P.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}};function We(e,t,n){return typeof e!=`object`||!e?String(e):e instanceof Error?JSON.stringify(e,Object.getOwnPropertyNames(e),n):e instanceof Map?JSON.stringify(Object.fromEntries(e.entries()),t,n):e instanceof Set?JSON.stringify(Array.from(e),t,n):JSON.stringify(e,t,n)}var Ge=class e extends M{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)}static getMessageElements(e,...t){let n=new Date;return{timestamp:n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getUTCMilliseconds().toString().padStart(3,`0`)}`,level:e,message:t.map(e=>We(e)).join(` `)}}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{c(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=p(this.logPath,this.getFileName(this.currentDate));if(!s(e))try{d(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return`${e.getUTCFullYear()}-${(e.getUTCMonth()+1).toString().padStart(2,`0`)}-${e.getUTCDate().toString().padStart(2,`0`)}`}createStream(){return o(p(this.logPath,this.getFileName(this.currentDate)),{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=l(this.logPath),t=new Date,n=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()-7));e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let[t,r,i]=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``).split(`-`).map(Number);return new Date(Date.UTC(t,r-1,i))<=n}).forEach(e=>{try{u(p(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}write(t,...n){let{timestamp:r,message:i}=e.getMessageElements(t,...n),a=`[${r}] [${t}] ${i}\n`;this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}};const F=()=>m.join(process.env.APPDATA??``,`overlayed`),Ke=()=>m.join(F(),`logs`),qe=e=>m.join(F(),`apps`,e),Je=e=>m.join(qe(e),`logs`),Ye=()=>m.join(F(),`meta.json`);var Xe=class{fileLogger;path;appId;messageQueue=new _e;fileName;_debug=!1;silent=!1;constructor(e){this.fileName=e}init(e,t=!1,n=!1){this.appId=e,this._debug=t,this.silent=n,this.path=Je(e),this.fileLogger=new Ge(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){this.logToConsole(e,...t),this.fileLogger?this.fileLogger[e](...t):this.messageQueue.add({type:e,args:t})}logToConsole(e,...t){let n={error:j.red,warn:j.yellow,debug:j.blue,log:j.white};if(this.silent&&!this._debug)return;let{timestamp:r,message:i}=Ge.getMessageElements(e,...t),a=console[e],o=n[e];a(`${j.gray(r)} ${o(i)}`)}};const I=N(Xe,`overlayed.log`);var Ze=class extends ie{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=new Map,i=new Set,a=new Set,o=[];for(let e=0;e<n;e++)o.push(e);let s=async n=>{let s=n*t,c=Math.min(s+t,this.blob.size),l=this.blob.slice(s,c);try{await e(l,n),a.add(n),this.emit(`chunkComplete`,n),i.delete(n)}catch(e){let t=r.get(n)||0;t<5?(r.set(n,t+1),await new Promise(e=>setTimeout(e,(t+1)*1e3)),o.push(n)):(a.add(n),this.emit(`error`,e),this.shouldStop=!0,i.delete(n))}},c=[],l=async()=>{for(;(o.length>0||i.size>0)&&!this.shouldStop;){if(o.length===0){await new Promise(e=>setTimeout(e,10));continue}let e=o.shift();a.has(e)||i.has(e)||(i.add(e),await s(e))}};for(let e=0;e<this.maxConcurrent;e++)c.push(l());await Promise.all(c)}};function Qe(e,t){let{recursive:n}=$e(t);return se(e)?n?et(e).map(t=>[e,t]):ue(e).map(t=>[e,t]):[]}function $e(e){return{recursive:e?.recursive??!0}}function et(e){return ue(e,{withFileTypes:!0}).flatMap(t=>{let n=m.join(e,t.name);return t.isDirectory()?et(n):[n]})}function tt(e){return e}const{PipeEventServer:nt,PipeEventClient:rt,PipeEventBase:it,ProcessMonitor:at,Process:ot,HardwareInterface:st}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),L=N(class extends M{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(),null)}init(){this.server=new nt(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})}},`overlayed-event-server`),{RenderInterface:ct,renderHookPath:lt}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);let ut=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}({});const R=r({game:`string`,type:`string`,creation_time:`number`}).and({game:`'siege' | 'tft'`}),dt=R.and({type:`'logged_in'`,content:{account_id:`string`}}),ft=R.and({type:`'module_loaded'`,content:{game_version:`string`,process_hash:`string`}}),pt=R.and({type:`'module_unloaded'`}),mt=R.and({type:`'unsupported_game_version'`,content:{game_version:`string`,process_hash:`string`}}),ht=n({"#event1":`logged_in | module_loaded | module_unloaded | unsupported_game_version`,event:`event1`,logged_in:dt,module_loaded:ft,module_unloaded:pt,unsupported_game_version:mt}).export(),gt=Object.keys(ht).filter(e=>e!==`event`);function _t(){return{key:`universal`,events:ht}}var vt=class{logger;initialized=!1;constructor(e){this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},z=class extends M{logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},yt=class extends He{logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const bt=fe.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let xt;function St(e){xt=e}bt.interceptors.request.use(e=>{let t=xt?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const B=fe.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});B.interceptors.request.use(e=>(e.headers??={},e));function Ct(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 wt(e){return e}function Tt(e){return e?t=>(e(t),t):wt}const Et=Tt();function Dt(e){return B.get(`/v1/public/applications/${e}`)}function Ot(e,t,n){return bt.get(`/v1/native/${At(e)}/version.txt`,{params:{channel:t},responseType:`text`,headers:{"X-App-Version":jt(n,t)}})}function kt(e,t,n){return bt.get(`/v1/native/${At(e)}/files`,{params:{channel:t},responseType:`arraybuffer`,headers:{"X-App-Version":jt(n,t)}})}function At(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function jt(e,t){return`desktop-application/${e} (channel=${t})`}function Mt(){return B.get(`/v1/public/raven/config`)}function Nt(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Pt(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Ft(e,t){let n=new FormData;return n.append(`file`,t.chunk),B.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}function It(e){let t=Date.now(),n=Ct(e.messages.map(e=>Lt(t,e)),250),r=Promise.all(n.map(async t=>B.post(`/v1/public/cortex/events`,{...e,messages:t})));return r.catch(e=>{let t=e?.response?.data||e?.message||e;console.error(`Failed to submit cortex events`,t)}),r}function Lt(e,t){let n=e-t.created_at.getTime(),r=Math.max(0,Math.floor(n/1e3));return{properties:t.properties,type:t.type,seconds_offset:r}}function Rt(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function zt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Bt;function Vt(e){Bt=e}const V=N(class extends z{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=m.join(F(),`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),void 0),super.destroy()}async getCurrentVersion(e){try{let t=m.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await _.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return m.join(this.targetDir,e)}getTargetVersionPath(e,t){return m.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 Bt?.();for(let n of e)try{let{data:e}=await Ot(n,t,global.OVERLAYED.APP_VERSION),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r,a=!1;if(!i){let t=this.getTargetVersionPath(n,e);await this.hasPathAccess(t)?(await _.readdir(t)).length===0&&(a=!0,this.logger.warn(`${n} > Version path exists, but no files. Forcing download.`)):(a=!0,this.logger.warn(`${n} > Version path does not exist. Forcing download.`))}i||a?(this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t),this.logger.log(`${n} > Downloaded and extracted`),await this.cleanupOldVersions(n,e),this.logger.log(`${n} > Cleaned up versions older than ${e}`),this.emit(`dllUpdated`,{identifier:n,version:e})):this.logger.log(`${n} > No update found`)}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n){this.logger.log(`${e} > Downloading DLLs for version ${t}`);let{data:r}=await kt(e,n,global.OVERLAYED.APP_VERSION);this.logger.log(`${e} > Downloaded DLLs for version ${t}`);let i=this.getTargetPath(e),a=this.getTargetVersionPath(e,t);await _.mkdir(a,{recursive:!0});let o=new v;await o.loadAsync(r);let s=Object.keys(o.files).map(async t=>{let n=o.files[t];if(n&&!n.dir){let r=m.join(a,t),i=await n.async(`nodebuffer`);await _.writeFile(r,i),this.logger.log(`${e} > Extracted DLL: ${t}`)}});await Promise.all(s);let c=m.join(i,`version.txt`);await _.writeFile(c,t),this.logger.log(`${e} > Saved version file: ${t}`)}async cleanupOldVersions(e,t){let n=m.join(this.targetDir,e),r=await _.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await _.rm(m.join(n,e.name),{recursive:!0,force:!0})}async hasPathAccess(e){try{return await _.access(e,_.constants.F_OK),!0}catch{return!1}}}),H=N(class extends z{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),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),V.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{this._ravenConfig={games:(await Mt()).data.games},this.resetState();let e=new Set;for(let t of this._ravenConfig.games){for(let e of t.executables){let n=e.toLowerCase();this._executableToGameMap.set(n,t),this._executablesArray.push(n)}t.modules.forEach(t=>e.add(t))}await V.getInstance().initWithDlls(Array.from(e)),this.logger.log(`Raven updated, monitoring ${this._executableToGameMap.size} executables`),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=[]}}),{PipeEventServer:Ht,PipeEventClient:Ut,PipeEventBase:Wt,ProcessMonitor:Gt,Process:Kt,HardwareInterface:qt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),U=N(class extends z{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new Gt}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),H.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(){H.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){return this._processes.get(e)?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){this.logger.log(`Monitoring ${e.executables.length} processes`),e.executables.forEach(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)?.filter(t=>t.id!==e.id)??[];t.length===0?this._processes.delete(e.name):this._processes.set(e.name,t)}});var Jt=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}}};const W=N(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new Jt(new ct(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),G=N(class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new _e,this.setupFlushInterval()}track(e,t){this.eventQueue.add({type:e,properties:t,created_at:new Date})}flush(){let e=Array.from(this.eventQueue.flush()).concat({type:`ping`,properties:{},created_at:new Date});if(!this.meta)throw Error(`Tried to flush Cortex events before meta was set`);try{It({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}});function Yt(e=[]){return m.normalize(m.join(qe(global.OVERLAYED.APPLICATION_ID),...e))}const Xt=r({game:`string`,type:`string`,creation_time:`number`}),K=new Ue({path:Ye(),schema:r({userId:`string | undefined`,sessionId:`string | undefined`,sessionLastUsed:`number | undefined`,"debug?":{"ri_disabled?":`boolean`,"gm_disabled?":`boolean`}}),default:{userId:void 0,sessionId:void 0,sessionLastUsed:void 0}});function Zt(){let{debug:e}=K.get();return e?{ri_disabled:e.ri_disabled??!1,gm_disabled:e.gm_disabled??!1}:{ri_disabled:!1,gm_disabled:!1}}function Qt(){let e=K.get().userId;if(e)return e;let t=tn();return K.set({...K.get(),userId:t}),t}function $t(){let e=K.get();if(e.sessionId&&typeof e.sessionLastUsed==`number`&&Date.now()-e.sessionLastUsed<=300*1e3)return e.sessionId;let t=crypto.randomUUID();return K.set({...e,sessionId:t,sessionLastUsed:Date.now()}),t}function en(){try{let e=K.get();K.set({...e,sessionLastUsed:Date.now()})}catch(e){I.getInstance().log(`Failed to update sessionLastUsed`,e)}}function tn(){try{return qt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}const nn=e(import.meta.url).resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),q=N(class extends yt{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;_activeReadyRavenGames=new Set;get isInGame(){return this._activeReadyRavenGames.size>0}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()}on(e,t){super.on(e,t);let n=b(e);if(!(n.includes(`gameReady`)||n.includes(`*`))||this._activeReadyRavenGames.size===0)return;let r=t;for(let e of this._activeReadyRavenGames)this.logger.log(`Late calling gameReady callback for game`,e),r({game:e})}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(G.getInstance().track(`game_launch`,{game:t.identifier}),!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;let r=Kt.currentProcess;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,r.isElevated),e.isElevated&&!r.isElevated){P.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!r.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:r.isElevated,gameElevated:e.isElevated});return}let i=this.copyDll(nn),a=Zt();if(a.ri_disabled&&this.logger.log(`Skipping render interface injection due to meta debug`,{renderInterfacePath:i}),i&&!a.ri_disabled)try{await e.injectDll(i),this.logger.log(`Render Interface Injection Successful`,i)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:i})}let o=t?.modules.map(async t=>{let n=await V.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=V.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=m.basename(t),i=m.join(r,n);if(!i)return Promise.resolve();if(a.gm_disabled)return this.logger.log(`Skipping injection due to meta debug`,{targetPath:i}),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(o),this._activeReadyRavenGames.add(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),this.logger.log(`Game Ready`),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,{game:t.identifier}),G.getInstance().track(`game_ready`,{game:t.identifier})}copyDll(e){let t=m.basename(e),n=te(e),r=m.join(F(),`resources`),i=m.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{se(r)||ce(r,{recursive:!0}),de(i,le(n)),ae(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{return(await _.readdir(e)).filter(e=>e.endsWith(`.dll`)).map(t=>m.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._activeReadyRavenGames.delete(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),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=H.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}}),rn=N(class extends vt{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),q.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){q.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=le(n.path),i=pe(`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{a=(await Nt(t.identifier,i)).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 Ze(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Pt(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 Ft(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Rt(e)?zt(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)}}});function J(e,t){return`${e}:${t}`}function an(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=J(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=J(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=J(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=J(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function on(){let e=P.getInstance(),t=q.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]})}}}}var Y=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}(Y||{});const sn=new Map([[Y.LeftButton,`LeftButton`],[Y.RightButton,`RightButton`],[Y.Cancel,`Cancel`],[Y.MiddleButton,`MiddleButton`],[Y.ExtraButton1,`ExtraButton1`],[Y.ExtraButton2,`ExtraButton2`],[Y.Back,`Backspace`],[Y.Tab,`Tab`],[Y.Clear,`Clear`],[Y.Return,`Enter`],[Y.Shift,`ShiftLeft`],[Y.Control,`ControlLeft`],[Y.Menu,`AltLeft`],[Y.Pause,`Pause`],[Y.CapsLock,`CapsLock`],[Y.Kana,`KanaMode`],[Y.Junja,`JunjaMode`],[Y.Final,`Finalize`],[Y.Hanja,`HanjaMode`],[Y.Escape,`Escape`],[Y.Convert,`Convert`],[Y.NonConvert,`NonConvert`],[Y.Accept,`Accept`],[Y.ModeChange,`ModeChange`],[Y.Space,`Space`],[Y.Prior,`PageUp`],[Y.Next,`PageDown`],[Y.End,`End`],[Y.Home,`Home`],[Y.Left,`ArrowLeft`],[Y.Up,`ArrowUp`],[Y.Right,`ArrowRight`],[Y.Down,`ArrowDown`],[Y.Select,`Select`],[Y.Print,`PrintScreen`],[Y.Execute,`Execute`],[Y.Snapshot,`Snapshot`],[Y.Insert,`Insert`],[Y.Delete,`Delete`],[Y.Help,`Help`],[Y.N0,`Digit0`],[Y.N1,`Digit1`],[Y.N2,`Digit2`],[Y.N3,`Digit3`],[Y.N4,`Digit4`],[Y.N5,`Digit5`],[Y.N6,`Digit6`],[Y.N7,`Digit7`],[Y.N8,`Digit8`],[Y.N9,`Digit9`],[Y.A,`KeyA`],[Y.B,`KeyB`],[Y.C,`KeyC`],[Y.D,`KeyD`],[Y.E,`KeyE`],[Y.F,`KeyF`],[Y.G,`KeyG`],[Y.H,`KeyH`],[Y.I,`KeyI`],[Y.J,`KeyJ`],[Y.K,`KeyK`],[Y.L,`KeyL`],[Y.M,`KeyM`],[Y.N,`KeyN`],[Y.O,`KeyO`],[Y.P,`KeyP`],[Y.Q,`KeyQ`],[Y.R,`KeyR`],[Y.S,`KeyS`],[Y.T,`KeyT`],[Y.U,`KeyU`],[Y.V,`KeyV`],[Y.W,`KeyW`],[Y.X,`KeyX`],[Y.Y,`KeyY`],[Y.Z,`KeyZ`],[Y.LeftWindows,`MetaLeft`],[Y.RightWindows,`MetaRight`],[Y.Application,`ContextMenu`],[Y.Sleep,`Sleep`],[Y.Numpad0,`Numpad0`],[Y.Numpad1,`Numpad1`],[Y.Numpad2,`Numpad2`],[Y.Numpad3,`Numpad3`],[Y.Numpad4,`Numpad4`],[Y.Numpad5,`Numpad5`],[Y.Numpad6,`Numpad6`],[Y.Numpad7,`Numpad7`],[Y.Numpad8,`Numpad8`],[Y.Numpad9,`Numpad9`],[Y.Multiply,`NumpadMultiply`],[Y.Add,`NumpadAdd`],[Y.Separator,`NumpadSeparator`],[Y.Subtract,`NumpadSubtract`],[Y.Decimal,`NumpadDecimal`],[Y.Divide,`NumpadDivide`],[Y.F1,`F1`],[Y.F2,`F2`],[Y.F3,`F3`],[Y.F4,`F4`],[Y.F5,`F5`],[Y.F6,`F6`],[Y.F7,`F7`],[Y.F8,`F8`],[Y.F9,`F9`],[Y.F10,`F10`],[Y.F11,`F11`],[Y.F12,`F12`],[Y.F13,`F13`],[Y.F14,`F14`],[Y.F15,`F15`],[Y.F16,`F16`],[Y.F17,`F17`],[Y.F18,`F18`],[Y.F19,`F19`],[Y.F20,`F20`],[Y.F21,`F21`],[Y.F22,`F22`],[Y.F23,`F23`],[Y.F24,`F24`],[Y.NumLock,`NumLock`],[Y.ScrollLock,`ScrollLock`],[Y.NEC_Equal,`NEC_Equal`],[Y.Fujitsu_Masshou,`Fujitsu_Masshou`],[Y.Fujitsu_Touroku,`Fujitsu_Touroku`],[Y.Fujitsu_Loya,`Fujitsu_Loya`],[Y.Fujitsu_Roya,`Fujitsu_Roya`],[Y.LeftShift,`ShiftLeft`],[Y.RightShift,`ShiftRight`],[Y.LeftControl,`ControlLeft`],[Y.RightControl,`ControlRight`],[Y.LeftMenu,`AltLeft`],[Y.RightMenu,`AltRight`],[Y.BrowserBack,`BrowserBack`],[Y.BrowserForward,`BrowserForward`],[Y.BrowserRefresh,`BrowserRefresh`],[Y.BrowserStop,`BrowserStop`],[Y.BrowserSearch,`BrowserSearch`],[Y.BrowserFavorites,`BrowserFavorites`],[Y.BrowserHome,`BrowserHome`],[Y.VolumeMute,`VolumeMute`],[Y.VolumeDown,`VolumeDown`],[Y.VolumeUp,`VolumeUp`],[Y.MediaNextTrack,`MediaTrackNext`],[Y.MediaPrevTrack,`MediaTrackPrevious`],[Y.MediaStop,`MediaStop`],[Y.MediaPlayPause,`MediaPlayPause`],[Y.LaunchMail,`LaunchMail`],[Y.LaunchMediaSelect,`LaunchMediaSelect`],[Y.LaunchApplication1,`LaunchApplication1`],[Y.LaunchApplication2,`LaunchApplication2`],[Y.OEM1,`OEM_1`],[Y.OEMPlus,`Equal`],[Y.OEMComma,`Comma`],[Y.OEMMinus,`Minus`],[Y.OEMPeriod,`Period`],[Y.OEM2,`Slash`],[Y.OEM3,`Backquote`],[Y.OEM4,`BracketLeft`],[Y.OEM5,`Backslash`],[Y.OEM6,`BracketRight`],[Y.OEM7,`Quote`],[Y.OEM8,`IntlRo`],[Y.OEMAX,`OEM_AX`],[Y.OEM102,`IntlBackslash`],[Y.ICOHelp,`ICO_HELP`],[Y.ICO00,`ICO_00`],[Y.ProcessKey,`Process`],[Y.ICOClear,`ICO_CLEAR`],[Y.Packet,`Packet`],[Y.OEMReset,`OEM_Reset`],[Y.OEMJump,`OEM_Jump`],[Y.OEMPA1,`OEM_PA1`],[Y.OEMPA2,`OEM_PA2`],[Y.OEMPA3,`OEM_PA3`],[Y.OEMWSCtrl,`OEM_WS_Ctrl`],[Y.OEMCUSel,`OEM_CU_Sel`],[Y.OEMATTN,`OEM_ATTN`],[Y.OEMFinish,`OEM_Finish`],[Y.OEMCopy,`OEM_Copy`],[Y.OEMAuto,`OEM_Auto`],[Y.OEMENLW,`OEM_ENLW`],[Y.OEMBackTab,`BackTab`],[Y.ATTN,`ATTN`],[Y.CRSel,`CRSel`],[Y.EXSel,`EXSel`],[Y.EREOF,`EREOF`],[Y.Play,`MediaPlay`],[Y.Zoom,`Zoom`],[Y.Noname,`Noname`],[Y.PA1,`PA1`],[Y.OEMClear,`OEM_Clear`]]),cn=new Map(sn.entries().map(([e,t])=>[t,e])),ln=r({"[string]":{keys:`string[]`,mode:r(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var un=class extends z{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 Ue({path:Yt([`keybinds.json`]),schema:ln,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)??{toggle:[],down:[],up:[]};n.toggle.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.down.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.up.push(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=sn.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=sn.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries())n[e].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||n.up.length===0)continue;let r=e[t];if(this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))){this.activeKeybinds.delete(t);for(let e of n.up)e();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];if(r.keys.length===this.pressedKeys.size&&r.keys.every(e=>cn.has(e)?this.pressedKeys.has(e):!1)){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];r.keys.every(e=>cn.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1))&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&t.toggle.length>0&&!this.triggeredToggleKeybinds.has(n)){let r;for(let e of t.toggle){let t=e();typeof t==`string`&&r===void 0&&(r=t)}this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&t.down.length>0&&!this.activeKeybinds.has(n)){let r;for(let e of t.down){let t=e();if(typeof t==`string`){r=t;break}}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}`:``})`}};function dn(e){let t=new un(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 X(){return W.getInstance().getInterface(`OGG_SIEGE`)}function fn(){let e=q.getInstance(),t=P.getInstance(),n=G.getInstance();n.meta=pn(),e.on([`gameReady`,`gameClose`],()=>{n.meta||=pn(),n.meta.in_game=e.isInGame}),t.on(`fatal`,e=>{n.track(`fatal`,{message:e.message,code:e.code,data:JSON.stringify(e.data)})}),t.on(`error`,e=>{n.track(`error`,{code:e.code,message:e.message,data:JSON.stringify(e.data)})}),t.on(`warning`,e=>{n.track(`warning`,{message:e.message,code:e.code,data:JSON.stringify(e.data)})})}function pn(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:Qt(),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,in_game:!1}}function mn(){function e(e,t){return e.once(`closed`,()=>{e.isDestroyed()||G.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||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(X().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>X().instance.on(e,t),off:(e,t)=>X().instance.off(e,t),once:(e,t)=>X().instance.once(e,t),addListener:(e,t)=>X().instance.addListener(e,t),removeListener:(e,t)=>X().instance.removeListener(e,t),removeAllListeners:()=>X().instance.removeAllListeners(),prependListener:(e,t)=>X().instance.prependListener(e,t),prependOnceListener:(e,t)=>X().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=X(),t=L.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const hn=N(class extends vt{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)}},`OGG_SIEGE`);function gn(){return{scope:e=>hn.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>X().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>X().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>X().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>X().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>X().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>X().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>X().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>X().instance.getKeyInputBlock(e)}}}function _n(){return{track:(e,t)=>{G.getInstance().track(`custom__${String(e)}`,t)}}}var vn=ge(((e,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`)for(let t of Object.values({KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576}))e.hookWindowMessage(t,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}}))();function yn(){return{registerWindow:e=>{(0,vn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function bn(e){let t=Je(global.OVERLAYED.APPLICATION_ID),n=Qe(t,{recursive:!0}),r=Ke(),i=Qe(r,{recursive:!0});I.getInstance().info(`Logs path: `,t),I.getInstance().info(`Overlayed logs path: `,r);let a=new v;return[...n,...i].forEach(([e,t])=>{I.getInstance().info(`Zipping: `,t);let n=oe(t),r=ee(t);a.file(r,n,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{I.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function xn(e,t){let n={...e,version:`${global.OVERLAYED.APP_VERSION}@${global.OVERLAYED.APP_BUILD_CHANNEL}`,log_zip:`data:application/zip;base64,${t}`};await fetch(`https://api.stats.cc/v1/overlay/contact`,{method:`POST`,body:JSON.stringify(n),redirect:`follow`,headers:{"Content-Type":`application/json`}})}function Sn(e){let t=new Xe(`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}),await xn(e,await bn(t).generateAsync({type:`base64`}))}}}const Cn=1e3;function wn(e,t,n,i,a){let o=L.getInstance(),s=I.getInstance().scope(`SetupPipeServer`);s.log(`Initializing`);function c(e,t){let r=n.get(t);if(!r)n.set(t,[e]);else{if(r.length>=Cn){P.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${r.length}, max: ${Cn}`});return}r.push(e)}}function l(n){s.info(n);let i=Xt(n);if(i instanceof r.errors){G.getInstance().track(`invalid_game_event`,{}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=gt.includes(i.type),l=e.modules.find(e=>e.key===`universal`),u=o?l:e.modules.find(e=>e.key===i.game);if(!u){s.warn(`Invalid module`,{module:o?`universal`:i.game});return}let d=u.events.event,f=d(n);if(f instanceof r.errors){if(`type`in f.byPath)return;s.warn(`Invalid event`,{summary:f.summary}),G.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type,summary:f.summary}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:f.summary});return}if(!a[u.key]){c(f,u.key);return}if(f.type===`unsupported_game_version`){let{content:e}=f;G.getInstance().track(`unsupported_game_version`,{game:f.game,hash:e.process_hash,version:e.game_version})}let p=J(u.key,f.type),m=J(u.key,`*`),ee=t.get(p),te=t.get(m),h=[...Array.from(ee??[]),...Array.from(te??[])];if(h.length===0){s.info(`No handlers found for event`,{event:f});return}h.forEach(e=>{e(f)})}return i.on(`flushEvents`,e=>{if(a[e])return;a[e]=!0;let t=n.get(e);t&&(I.getInstance().info(`Flushing ${t.length} events for module ${e}`),t.forEach(e=>l(e)),n.delete(e))}),o.on(`data`,e=>e.forEach(l)),o.on(`error`,e=>{s.error(`Pipe server error`,e),P.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o}let Z=!1,Tn={},Q,En=new M,$;function Dn(e){let t=On(e),{init:n=!0,debug:r=!1,silent:i=!0}=t;if(kn(e),I.getInstance().init(e.applicationId,r,i),Z)return Q;function a(){if(Z){I.getInstance().warn(`Overlayed already initialized`);return}fn();let e=new Map,n=new Map,r=an(t.modules,e,En),i=on(),o=dn(t.keybinds),s=mn(),c=gn(),l=yn(),u=_n(),d=Sn(t);I.getInstance().log(`Overlayed initialized`),An(t),wn(t,e,n,En,Tn),Z=!0,Q={...r,...i,ads:l,keybinds:o,windows:s,input:c,cortex:u,hasAnyActiveProcesses:()=>U.getInstance().hasAnyActiveProcesses,hasAnyActiveGames:()=>q.getInstance().isInGame,init:a,log:d,initialized:Z},Q.universal.on(`logged_in`,e=>{G.getInstance().track(`account_id`,{account_id:e.content.account_id,game:e.game})})}return n?(a(),Q):new Proxy({init:a},{get:(e,t)=>{if(t!==`init`&&!Z)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Q[t]}})}function On(e){return{...e,modules:[...e.modules,_t()]}}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function kn(e){global.OVERLAYED={APPLICATION_ID:Et(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.31.1`,FRONTEND_VERSION:`0.0.0`,sessionId:$t(),electron:e.electron}}function An(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);q.getInstance().setSubscribedGames(t),rn.getInstance().init(),q.getInstance().init(),U.getInstance().init(),H.getInstance().init();async function n(){let e=Dt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=Qt();I.getInstance().log(`userId`,t);let n={...await e,userId:t};return I.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r??=n(),r)),G.getInstance().track(`start`,{});try{$&&clearInterval($),$=setInterval(()=>{try{en()}catch{}},3e4),$.unref()}catch(e){I.getInstance().log(`failed to start sessionLastUsed interval`,e)}async function i(){let e={};e.os=g.platform().trim(),e.os_version=process.getSystemVersion().trim(),e.architecture=g.arch().trim();let t=g.cpus();t.length>0?(e.cpu=t[0].model.trim(),e.cpu_cores=t.length,e.cpu_speed=t[0].speed):I.getInstance().warn(`Failed to collect CPU info`);let n=await he.graphics();I.getInstance().info(`GPU info`,n);let r=n.controllers.sort((e,t)=>(t.vram??0)-(e.vram??0))[0];r?(e.gpu=r.model.trim(),e.gpu_memory=r.vram??0):I.getInstance().warn(`Failed to find primary GPU`),e.display_count=n.displays.length;let i=n.displays.find(e=>e.main)??n.displays[0];i?(e.primary_display_resolution_x=i.resolutionX??void 0,e.primary_display_resolution_y=i.resolutionY??void 0,e.primary_display_refresh_rate=i.currentRefreshRate??void 0):I.getInstance().warn(`Failed to find main display`),e.ram=process.getSystemMemoryInfo().total;let a=g.homedir(),o=await me.statfs(a);return o&&`blocks`in o&&`bsize`in o&&`bavail`in o?(e.disk=o.blocks*o.bsize,e.disk_free=o.bavail*o.bsize):I.getInstance().warn(`Failed to collect disk info`),I.getInstance().log(`Retrieved system information`,e),e}y.on(`ready`,()=>{i().then(e=>{G.getInstance().track(`system_info`,e)}).catch(e=>{I.getInstance().log(`Failed to retrieve system information`,e)})}),y.on(`quit`,()=>{G.getInstance().track(`electron_quit`,{}),jn()}),process.on(`exit`,()=>{G.getInstance().track(`exit`,{}),jn()})}async function jn(){try{en()}catch{}try{$&&clearInterval($),$=void 0}catch{}await G.getInstance().flush(),H.getInstance().destroy(),q.getInstance().destroy(),rn.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),L.getInstance().destroy(),P.getInstance().destroy()}export{ct as RenderInterface,ut as VirtualKey,tt as defineConfig,Dn as overlayed,Vt as setFetchLatestTokenCallback,St as setUpdaterTokenResolver};
package/dist/siege.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as arktype0 from "arktype";
1
+ import * as arktype2 from "arktype";
2
2
  import { Type } from "arktype";
3
3
  import * as arktype_internal_variants_string_ts0 from "arktype/internal/variants/string.ts";
4
4
  import * as arktype_internal_variants_number_ts0 from "arktype/internal/variants/number.ts";
@@ -622,7 +622,7 @@ declare const SIEGE_TIME_OF_DAY_LABELS: Record<SiegeTimeOfDay, string>;
622
622
  //#region src/module.d.ts
623
623
  declare function module(): {
624
624
  readonly key: "siege";
625
- readonly events: arktype0.Module<{
625
+ readonly events: arktype2.Module<{
626
626
  event: {
627
627
  game: "siege";
628
628
  type: "started_queuing";
@@ -669,11 +669,11 @@ declare function module(): {
669
669
  segment_size: number;
670
670
  segment_index: number;
671
671
  team_0: {
672
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
672
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
673
673
  state: SiegeRoundState;
674
674
  };
675
675
  team_1: {
676
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
676
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
677
677
  state: SiegeRoundState;
678
678
  };
679
679
  }[];
@@ -705,7 +705,7 @@ declare function module(): {
705
705
  content: {
706
706
  team: 0 | 1;
707
707
  index: number;
708
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
708
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
709
709
  };
710
710
  } | {
711
711
  game: "siege";
@@ -714,7 +714,7 @@ declare function module(): {
714
714
  content: {
715
715
  team: 0 | 1;
716
716
  index: number;
717
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
717
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
718
718
  operator_name: {
719
719
  id: SiegeOperatorNameId;
720
720
  value: string;
@@ -739,11 +739,11 @@ declare function module(): {
739
739
  segment_size: number;
740
740
  segment_index: number;
741
741
  team_0: {
742
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
742
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
743
743
  state: SiegeRoundState;
744
744
  };
745
745
  team_1: {
746
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
746
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
747
747
  state: SiegeRoundState;
748
748
  };
749
749
  };
@@ -754,8 +754,8 @@ declare function module(): {
754
754
  remaining_health: number;
755
755
  pre_damage_health: number;
756
756
  max_health: number;
757
- damage_type: "invalid" | "unknown" | (string & {}) | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
758
- damage_team_type: "invalid" | "unknown" | (string & {}) | "enemy" | "friendly";
757
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
758
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
759
759
  damage_hit_zone: "invalid" | (string & {}) | "head" | "left_upper_arm" | "right_upper_arm" | "left_forearm" | "right_forearm" | "left_hand" | "right_hand" | "upper_torso" | "lower_torso" | "crotch" | "left_thigh" | "right_thigh" | "left_calf" | "right_calf" | "left_foot" | "right_foot" | "neck" | "clothing";
760
760
  damage_source_id: SiegeDamageSourceId | null;
761
761
  damage_item_id: SiegeItemObjectId | null;
@@ -765,7 +765,7 @@ declare function module(): {
765
765
  players: {
766
766
  player_id: SiegePlayerId;
767
767
  final_health: number;
768
- final_life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
768
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
769
769
  operator_name: {
770
770
  id: SiegeOperatorNameId;
771
771
  value: string;
@@ -777,7 +777,7 @@ declare function module(): {
777
777
  type: "phase_changed";
778
778
  creation_time: number;
779
779
  content: {
780
- phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid" | "first" | (string & {});
780
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
781
781
  };
782
782
  } | ((In: {
783
783
  game: "siege";
@@ -791,7 +791,7 @@ declare function module(): {
791
791
  is_squad_member: boolean;
792
792
  is_local_player: boolean;
793
793
  username: string;
794
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
794
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
795
795
  team: 0 | 1;
796
796
  is_privacy_username: boolean;
797
797
  has_avatar_hidden: boolean;
@@ -804,12 +804,12 @@ declare function module(): {
804
804
  game_mode_actions: number;
805
805
  score: number;
806
806
  };
807
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
807
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
808
808
  ping: number;
809
809
  };
810
- }) => arktype0.Out<{
810
+ }) => arktype2.Out<{
811
811
  content: {
812
- starting_side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
812
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
813
813
  player_id: SiegePlayerId;
814
814
  profile_id: SiegeProfileId;
815
815
  is_bot: boolean;
@@ -817,7 +817,7 @@ declare function module(): {
817
817
  is_squad_member: boolean;
818
818
  is_local_player: boolean;
819
819
  username: string;
820
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
820
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
821
821
  team: 0 | 1;
822
822
  is_privacy_username: boolean;
823
823
  has_avatar_hidden: boolean;
@@ -830,7 +830,7 @@ declare function module(): {
830
830
  game_mode_actions: number;
831
831
  score: number;
832
832
  };
833
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
833
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
834
834
  ping: number;
835
835
  };
836
836
  game: "siege";
@@ -868,7 +868,7 @@ declare function module(): {
868
868
  creation_time: number;
869
869
  content: {
870
870
  player_id: SiegePlayerId;
871
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
871
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
872
872
  };
873
873
  } | {
874
874
  game: "siege";
@@ -953,7 +953,7 @@ declare function module(): {
953
953
  creation_time: number;
954
954
  content: {
955
955
  player_id: SiegePlayerId;
956
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
956
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
957
957
  };
958
958
  } | {
959
959
  game: "siege";
@@ -962,6 +962,7 @@ declare function module(): {
962
962
  content: {
963
963
  player_id: SiegePlayerId;
964
964
  instigator_player_id: SiegePlayerId;
965
+ headshot: boolean;
965
966
  };
966
967
  } | {
967
968
  game: "siege";
@@ -1036,11 +1037,11 @@ declare function module(): {
1036
1037
  segment_size: number;
1037
1038
  segment_index: number;
1038
1039
  team_0: {
1039
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1040
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1040
1041
  state: SiegeRoundState;
1041
1042
  };
1042
1043
  team_1: {
1043
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1044
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1044
1045
  state: SiegeRoundState;
1045
1046
  };
1046
1047
  }[];
@@ -1075,7 +1076,7 @@ declare function module(): {
1075
1076
  content: {
1076
1077
  team: 0 | 1;
1077
1078
  index: number;
1078
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1079
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1079
1080
  };
1080
1081
  };
1081
1082
  operator_banned: {
@@ -1085,7 +1086,7 @@ declare function module(): {
1085
1086
  content: {
1086
1087
  team: 0 | 1;
1087
1088
  index: number;
1088
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1089
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1089
1090
  operator_name: {
1090
1091
  id: SiegeOperatorNameId;
1091
1092
  value: string;
@@ -1112,11 +1113,11 @@ declare function module(): {
1112
1113
  segment_size: number;
1113
1114
  segment_index: number;
1114
1115
  team_0: {
1115
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1116
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1116
1117
  state: SiegeRoundState;
1117
1118
  };
1118
1119
  team_1: {
1119
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1120
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1120
1121
  state: SiegeRoundState;
1121
1122
  };
1122
1123
  };
@@ -1127,8 +1128,8 @@ declare function module(): {
1127
1128
  remaining_health: number;
1128
1129
  pre_damage_health: number;
1129
1130
  max_health: number;
1130
- damage_type: "invalid" | "unknown" | (string & {}) | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1131
- damage_team_type: "invalid" | "unknown" | (string & {}) | "enemy" | "friendly";
1131
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1132
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
1132
1133
  damage_hit_zone: "invalid" | (string & {}) | "head" | "left_upper_arm" | "right_upper_arm" | "left_forearm" | "right_forearm" | "left_hand" | "right_hand" | "upper_torso" | "lower_torso" | "crotch" | "left_thigh" | "right_thigh" | "left_calf" | "right_calf" | "left_foot" | "right_foot" | "neck" | "clothing";
1133
1134
  damage_source_id: SiegeDamageSourceId | null;
1134
1135
  damage_item_id: SiegeItemObjectId | null;
@@ -1138,7 +1139,7 @@ declare function module(): {
1138
1139
  players: {
1139
1140
  player_id: SiegePlayerId;
1140
1141
  final_health: number;
1141
- final_life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1142
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1142
1143
  operator_name: {
1143
1144
  id: SiegeOperatorNameId;
1144
1145
  value: string;
@@ -1151,7 +1152,7 @@ declare function module(): {
1151
1152
  type: "phase_changed";
1152
1153
  creation_time: number;
1153
1154
  content: {
1154
- phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid" | "first" | (string & {});
1155
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
1155
1156
  };
1156
1157
  };
1157
1158
  player_joined: (In: {
@@ -1166,7 +1167,7 @@ declare function module(): {
1166
1167
  is_squad_member: boolean;
1167
1168
  is_local_player: boolean;
1168
1169
  username: string;
1169
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1170
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1170
1171
  team: 0 | 1;
1171
1172
  is_privacy_username: boolean;
1172
1173
  has_avatar_hidden: boolean;
@@ -1179,12 +1180,12 @@ declare function module(): {
1179
1180
  game_mode_actions: number;
1180
1181
  score: number;
1181
1182
  };
1182
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1183
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1183
1184
  ping: number;
1184
1185
  };
1185
- }) => arktype0.Out<{
1186
+ }) => arktype2.Out<{
1186
1187
  content: {
1187
- starting_side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1188
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1188
1189
  player_id: SiegePlayerId;
1189
1190
  profile_id: SiegeProfileId;
1190
1191
  is_bot: boolean;
@@ -1192,7 +1193,7 @@ declare function module(): {
1192
1193
  is_squad_member: boolean;
1193
1194
  is_local_player: boolean;
1194
1195
  username: string;
1195
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1196
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1196
1197
  team: 0 | 1;
1197
1198
  is_privacy_username: boolean;
1198
1199
  has_avatar_hidden: boolean;
@@ -1205,7 +1206,7 @@ declare function module(): {
1205
1206
  game_mode_actions: number;
1206
1207
  score: number;
1207
1208
  };
1208
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1209
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1209
1210
  ping: number;
1210
1211
  };
1211
1212
  game: "siege";
@@ -1247,7 +1248,7 @@ declare function module(): {
1247
1248
  creation_time: number;
1248
1249
  content: {
1249
1250
  player_id: SiegePlayerId;
1250
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1251
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1251
1252
  };
1252
1253
  };
1253
1254
  player_score_changed: {
@@ -1343,7 +1344,7 @@ declare function module(): {
1343
1344
  creation_time: number;
1344
1345
  content: {
1345
1346
  player_id: SiegePlayerId;
1346
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1347
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1347
1348
  };
1348
1349
  };
1349
1350
  player_died: {
@@ -1353,6 +1354,7 @@ declare function module(): {
1353
1354
  content: {
1354
1355
  player_id: SiegePlayerId;
1355
1356
  instigator_player_id: SiegePlayerId;
1357
+ headshot: boolean;
1356
1358
  };
1357
1359
  };
1358
1360
  player_downed: {
@@ -1428,8 +1430,8 @@ declare const PlayerDamageDataSchema: arktype_internal_variants_object_ts0.Objec
1428
1430
  remaining_health: number;
1429
1431
  pre_damage_health: number;
1430
1432
  max_health: number;
1431
- damage_type: "invalid" | "unknown" | (string & {}) | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1432
- damage_team_type: "invalid" | "unknown" | (string & {}) | "enemy" | "friendly";
1433
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1434
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
1433
1435
  damage_hit_zone: "invalid" | (string & {}) | "head" | "left_upper_arm" | "right_upper_arm" | "left_forearm" | "right_forearm" | "left_hand" | "right_hand" | "upper_torso" | "lower_torso" | "crotch" | "left_thigh" | "right_thigh" | "left_calf" | "right_calf" | "left_foot" | "right_foot" | "neck" | "clothing";
1434
1436
  damage_source_id: SiegeDamageSourceId | null;
1435
1437
  damage_item_id: SiegeItemObjectId | null;
@@ -1443,11 +1445,11 @@ declare const MatchRoundDataSchema: arktype_internal_variants_object_ts0.ObjectT
1443
1445
  segment_size: number;
1444
1446
  segment_index: number;
1445
1447
  team_0: {
1446
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1448
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1447
1449
  state: SiegeRoundState;
1448
1450
  };
1449
1451
  team_1: {
1450
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1452
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1451
1453
  state: SiegeRoundState;
1452
1454
  };
1453
1455
  }, {}>;
@@ -1466,7 +1468,7 @@ type MapData = typeof MapDataSchema.infer;
1466
1468
  declare const RoundEndPlayerDataSchema: arktype_internal_variants_object_ts0.ObjectType<{
1467
1469
  player_id: SiegePlayerId;
1468
1470
  final_health: number;
1469
- final_life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1471
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1470
1472
  operator_name: {
1471
1473
  id: SiegeOperatorNameId;
1472
1474
  value: string;
@@ -1480,11 +1482,11 @@ declare const RoundEndDataSchema: arktype_internal_variants_object_ts0.ObjectTyp
1480
1482
  segment_size: number;
1481
1483
  segment_index: number;
1482
1484
  team_0: {
1483
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1485
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1484
1486
  state: SiegeRoundState;
1485
1487
  };
1486
1488
  team_1: {
1487
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1489
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1488
1490
  state: SiegeRoundState;
1489
1491
  };
1490
1492
  };
@@ -1495,8 +1497,8 @@ declare const RoundEndDataSchema: arktype_internal_variants_object_ts0.ObjectTyp
1495
1497
  remaining_health: number;
1496
1498
  pre_damage_health: number;
1497
1499
  max_health: number;
1498
- damage_type: "invalid" | "unknown" | (string & {}) | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1499
- damage_team_type: "invalid" | "unknown" | (string & {}) | "enemy" | "friendly";
1500
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1501
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
1500
1502
  damage_hit_zone: "invalid" | (string & {}) | "head" | "left_upper_arm" | "right_upper_arm" | "left_forearm" | "right_forearm" | "left_hand" | "right_hand" | "upper_torso" | "lower_torso" | "crotch" | "left_thigh" | "right_thigh" | "left_calf" | "right_calf" | "left_foot" | "right_foot" | "neck" | "clothing";
1501
1503
  damage_source_id: SiegeDamageSourceId | null;
1502
1504
  damage_item_id: SiegeItemObjectId | null;
@@ -1506,7 +1508,7 @@ declare const RoundEndDataSchema: arktype_internal_variants_object_ts0.ObjectTyp
1506
1508
  players: {
1507
1509
  player_id: SiegePlayerId;
1508
1510
  final_health: number;
1509
- final_life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1511
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1510
1512
  operator_name: {
1511
1513
  id: SiegeOperatorNameId;
1512
1514
  value: string;
@@ -1546,11 +1548,11 @@ declare const MatchStarted: arktype_internal_variants_object_ts0.ObjectType<{
1546
1548
  segment_size: number;
1547
1549
  segment_index: number;
1548
1550
  team_0: {
1549
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1551
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1550
1552
  state: SiegeRoundState;
1551
1553
  };
1552
1554
  team_1: {
1553
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1555
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1554
1556
  state: SiegeRoundState;
1555
1557
  };
1556
1558
  }[];
@@ -1618,7 +1620,7 @@ declare const OperatorBanVotingStarted: arktype_internal_variants_object_ts0.Obj
1618
1620
  content: {
1619
1621
  team: 0 | 1;
1620
1622
  index: number;
1621
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1623
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1622
1624
  };
1623
1625
  }, {}>;
1624
1626
  type OperatorBanVotingStartedEvent = typeof OperatorBanVotingStarted.infer;
@@ -1631,7 +1633,7 @@ declare const OperatorBanned: arktype_internal_variants_object_ts0.ObjectType<{
1631
1633
  content: {
1632
1634
  team: 0 | 1;
1633
1635
  index: number;
1634
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1636
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1635
1637
  operator_name: {
1636
1638
  id: SiegeOperatorNameId;
1637
1639
  value: string;
@@ -1664,11 +1666,11 @@ declare const RoundEnded: arktype_internal_variants_object_ts0.ObjectType<{
1664
1666
  segment_size: number;
1665
1667
  segment_index: number;
1666
1668
  team_0: {
1667
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1669
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1668
1670
  state: SiegeRoundState;
1669
1671
  };
1670
1672
  team_1: {
1671
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1673
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1672
1674
  state: SiegeRoundState;
1673
1675
  };
1674
1676
  };
@@ -1679,8 +1681,8 @@ declare const RoundEnded: arktype_internal_variants_object_ts0.ObjectType<{
1679
1681
  remaining_health: number;
1680
1682
  pre_damage_health: number;
1681
1683
  max_health: number;
1682
- damage_type: "invalid" | "unknown" | (string & {}) | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1683
- damage_team_type: "invalid" | "unknown" | (string & {}) | "enemy" | "friendly";
1684
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1685
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
1684
1686
  damage_hit_zone: "invalid" | (string & {}) | "head" | "left_upper_arm" | "right_upper_arm" | "left_forearm" | "right_forearm" | "left_hand" | "right_hand" | "upper_torso" | "lower_torso" | "crotch" | "left_thigh" | "right_thigh" | "left_calf" | "right_calf" | "left_foot" | "right_foot" | "neck" | "clothing";
1685
1687
  damage_source_id: SiegeDamageSourceId | null;
1686
1688
  damage_item_id: SiegeItemObjectId | null;
@@ -1690,7 +1692,7 @@ declare const RoundEnded: arktype_internal_variants_object_ts0.ObjectType<{
1690
1692
  players: {
1691
1693
  player_id: SiegePlayerId;
1692
1694
  final_health: number;
1693
- final_life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1695
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1694
1696
  operator_name: {
1695
1697
  id: SiegeOperatorNameId;
1696
1698
  value: string;
@@ -1706,7 +1708,7 @@ declare const PhaseChanged: arktype_internal_variants_object_ts0.ObjectType<{
1706
1708
  type: "phase_changed";
1707
1709
  creation_time: number;
1708
1710
  content: {
1709
- phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid" | "first" | (string & {});
1711
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
1710
1712
  };
1711
1713
  }, {}>;
1712
1714
  type PhaseChangedEvent = typeof PhaseChanged.infer;
@@ -1724,7 +1726,7 @@ declare const PlayerJoined: arktype_internal_variants_object_ts0.ObjectType<(In:
1724
1726
  is_squad_member: boolean;
1725
1727
  is_local_player: boolean;
1726
1728
  username: string;
1727
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1729
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1728
1730
  team: 0 | 1;
1729
1731
  is_privacy_username: boolean;
1730
1732
  has_avatar_hidden: boolean;
@@ -1737,12 +1739,12 @@ declare const PlayerJoined: arktype_internal_variants_object_ts0.ObjectType<(In:
1737
1739
  game_mode_actions: number;
1738
1740
  score: number;
1739
1741
  };
1740
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1742
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1741
1743
  ping: number;
1742
1744
  };
1743
- }) => arktype0.Out<{
1745
+ }) => arktype2.Out<{
1744
1746
  content: {
1745
- starting_side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1747
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1746
1748
  player_id: SiegePlayerId;
1747
1749
  profile_id: SiegeProfileId;
1748
1750
  is_bot: boolean;
@@ -1750,7 +1752,7 @@ declare const PlayerJoined: arktype_internal_variants_object_ts0.ObjectType<(In:
1750
1752
  is_squad_member: boolean;
1751
1753
  is_local_player: boolean;
1752
1754
  username: string;
1753
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1755
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1754
1756
  team: 0 | 1;
1755
1757
  is_privacy_username: boolean;
1756
1758
  has_avatar_hidden: boolean;
@@ -1763,7 +1765,7 @@ declare const PlayerJoined: arktype_internal_variants_object_ts0.ObjectType<(In:
1763
1765
  game_mode_actions: number;
1764
1766
  score: number;
1765
1767
  };
1766
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1768
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1767
1769
  ping: number;
1768
1770
  };
1769
1771
  game: "siege";
@@ -1817,7 +1819,7 @@ declare const PlayerSideChanged: arktype_internal_variants_object_ts0.ObjectType
1817
1819
  creation_time: number;
1818
1820
  content: {
1819
1821
  player_id: SiegePlayerId;
1820
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
1822
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1821
1823
  };
1822
1824
  }, {}>;
1823
1825
  type PlayerSideChangedEvent = typeof PlayerSideChanged.infer;
@@ -1946,7 +1948,7 @@ declare const PlayerLifeStateChanged: arktype_internal_variants_object_ts0.Objec
1946
1948
  creation_time: number;
1947
1949
  content: {
1948
1950
  player_id: SiegePlayerId;
1949
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
1951
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1950
1952
  };
1951
1953
  }, {}>;
1952
1954
  type PlayerLifeStateChangedEvent = typeof PlayerLifeStateChanged.infer;
@@ -1959,6 +1961,7 @@ declare const PlayerDied: arktype_internal_variants_object_ts0.ObjectType<{
1959
1961
  content: {
1960
1962
  player_id: SiegePlayerId;
1961
1963
  instigator_player_id: SiegePlayerId;
1964
+ headshot: boolean;
1962
1965
  };
1963
1966
  }, {}>;
1964
1967
  type PlayerDiedEvent = typeof PlayerDied.infer;
@@ -2000,7 +2003,7 @@ declare const PlayerTeamChanged: arktype_internal_variants_object_ts0.ObjectType
2000
2003
  type PlayerTeamChangedEvent = typeof PlayerTeamChanged.infer;
2001
2004
  //#endregion
2002
2005
  //#region src/events/index.d.ts
2003
- declare const siegeEvents: arktype0.Module<{
2006
+ declare const siegeEvents: arktype2.Module<{
2004
2007
  event: {
2005
2008
  game: "siege";
2006
2009
  type: "started_queuing";
@@ -2047,11 +2050,11 @@ declare const siegeEvents: arktype0.Module<{
2047
2050
  segment_size: number;
2048
2051
  segment_index: number;
2049
2052
  team_0: {
2050
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2053
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2051
2054
  state: SiegeRoundState;
2052
2055
  };
2053
2056
  team_1: {
2054
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2057
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2055
2058
  state: SiegeRoundState;
2056
2059
  };
2057
2060
  }[];
@@ -2083,7 +2086,7 @@ declare const siegeEvents: arktype0.Module<{
2083
2086
  content: {
2084
2087
  team: 0 | 1;
2085
2088
  index: number;
2086
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2089
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2087
2090
  };
2088
2091
  } | {
2089
2092
  game: "siege";
@@ -2092,7 +2095,7 @@ declare const siegeEvents: arktype0.Module<{
2092
2095
  content: {
2093
2096
  team: 0 | 1;
2094
2097
  index: number;
2095
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2098
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2096
2099
  operator_name: {
2097
2100
  id: SiegeOperatorNameId;
2098
2101
  value: string;
@@ -2117,11 +2120,11 @@ declare const siegeEvents: arktype0.Module<{
2117
2120
  segment_size: number;
2118
2121
  segment_index: number;
2119
2122
  team_0: {
2120
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2123
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2121
2124
  state: SiegeRoundState;
2122
2125
  };
2123
2126
  team_1: {
2124
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2127
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2125
2128
  state: SiegeRoundState;
2126
2129
  };
2127
2130
  };
@@ -2132,8 +2135,8 @@ declare const siegeEvents: arktype0.Module<{
2132
2135
  remaining_health: number;
2133
2136
  pre_damage_health: number;
2134
2137
  max_health: number;
2135
- damage_type: "invalid" | "unknown" | (string & {}) | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
2136
- damage_team_type: "invalid" | "unknown" | (string & {}) | "enemy" | "friendly";
2138
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
2139
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
2137
2140
  damage_hit_zone: "invalid" | (string & {}) | "head" | "left_upper_arm" | "right_upper_arm" | "left_forearm" | "right_forearm" | "left_hand" | "right_hand" | "upper_torso" | "lower_torso" | "crotch" | "left_thigh" | "right_thigh" | "left_calf" | "right_calf" | "left_foot" | "right_foot" | "neck" | "clothing";
2138
2141
  damage_source_id: SiegeDamageSourceId | null;
2139
2142
  damage_item_id: SiegeItemObjectId | null;
@@ -2143,7 +2146,7 @@ declare const siegeEvents: arktype0.Module<{
2143
2146
  players: {
2144
2147
  player_id: SiegePlayerId;
2145
2148
  final_health: number;
2146
- final_life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
2149
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2147
2150
  operator_name: {
2148
2151
  id: SiegeOperatorNameId;
2149
2152
  value: string;
@@ -2155,7 +2158,7 @@ declare const siegeEvents: arktype0.Module<{
2155
2158
  type: "phase_changed";
2156
2159
  creation_time: number;
2157
2160
  content: {
2158
- phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid" | "first" | (string & {});
2161
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
2159
2162
  };
2160
2163
  } | ((In: {
2161
2164
  game: "siege";
@@ -2169,7 +2172,7 @@ declare const siegeEvents: arktype0.Module<{
2169
2172
  is_squad_member: boolean;
2170
2173
  is_local_player: boolean;
2171
2174
  username: string;
2172
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2175
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2173
2176
  team: 0 | 1;
2174
2177
  is_privacy_username: boolean;
2175
2178
  has_avatar_hidden: boolean;
@@ -2182,12 +2185,12 @@ declare const siegeEvents: arktype0.Module<{
2182
2185
  game_mode_actions: number;
2183
2186
  score: number;
2184
2187
  };
2185
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
2188
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2186
2189
  ping: number;
2187
2190
  };
2188
- }) => arktype0.Out<{
2191
+ }) => arktype2.Out<{
2189
2192
  content: {
2190
- starting_side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2193
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2191
2194
  player_id: SiegePlayerId;
2192
2195
  profile_id: SiegeProfileId;
2193
2196
  is_bot: boolean;
@@ -2195,7 +2198,7 @@ declare const siegeEvents: arktype0.Module<{
2195
2198
  is_squad_member: boolean;
2196
2199
  is_local_player: boolean;
2197
2200
  username: string;
2198
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2201
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2199
2202
  team: 0 | 1;
2200
2203
  is_privacy_username: boolean;
2201
2204
  has_avatar_hidden: boolean;
@@ -2208,7 +2211,7 @@ declare const siegeEvents: arktype0.Module<{
2208
2211
  game_mode_actions: number;
2209
2212
  score: number;
2210
2213
  };
2211
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
2214
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2212
2215
  ping: number;
2213
2216
  };
2214
2217
  game: "siege";
@@ -2246,7 +2249,7 @@ declare const siegeEvents: arktype0.Module<{
2246
2249
  creation_time: number;
2247
2250
  content: {
2248
2251
  player_id: SiegePlayerId;
2249
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2252
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2250
2253
  };
2251
2254
  } | {
2252
2255
  game: "siege";
@@ -2331,7 +2334,7 @@ declare const siegeEvents: arktype0.Module<{
2331
2334
  creation_time: number;
2332
2335
  content: {
2333
2336
  player_id: SiegePlayerId;
2334
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
2337
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2335
2338
  };
2336
2339
  } | {
2337
2340
  game: "siege";
@@ -2340,6 +2343,7 @@ declare const siegeEvents: arktype0.Module<{
2340
2343
  content: {
2341
2344
  player_id: SiegePlayerId;
2342
2345
  instigator_player_id: SiegePlayerId;
2346
+ headshot: boolean;
2343
2347
  };
2344
2348
  } | {
2345
2349
  game: "siege";
@@ -2414,11 +2418,11 @@ declare const siegeEvents: arktype0.Module<{
2414
2418
  segment_size: number;
2415
2419
  segment_index: number;
2416
2420
  team_0: {
2417
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2421
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2418
2422
  state: SiegeRoundState;
2419
2423
  };
2420
2424
  team_1: {
2421
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2425
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2422
2426
  state: SiegeRoundState;
2423
2427
  };
2424
2428
  }[];
@@ -2453,7 +2457,7 @@ declare const siegeEvents: arktype0.Module<{
2453
2457
  content: {
2454
2458
  team: 0 | 1;
2455
2459
  index: number;
2456
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2460
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2457
2461
  };
2458
2462
  };
2459
2463
  operator_banned: {
@@ -2463,7 +2467,7 @@ declare const siegeEvents: arktype0.Module<{
2463
2467
  content: {
2464
2468
  team: 0 | 1;
2465
2469
  index: number;
2466
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2470
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2467
2471
  operator_name: {
2468
2472
  id: SiegeOperatorNameId;
2469
2473
  value: string;
@@ -2490,11 +2494,11 @@ declare const siegeEvents: arktype0.Module<{
2490
2494
  segment_size: number;
2491
2495
  segment_index: number;
2492
2496
  team_0: {
2493
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2497
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2494
2498
  state: SiegeRoundState;
2495
2499
  };
2496
2500
  team_1: {
2497
- role: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2501
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2498
2502
  state: SiegeRoundState;
2499
2503
  };
2500
2504
  };
@@ -2505,8 +2509,8 @@ declare const siegeEvents: arktype0.Module<{
2505
2509
  remaining_health: number;
2506
2510
  pre_damage_health: number;
2507
2511
  max_health: number;
2508
- damage_type: "invalid" | "unknown" | (string & {}) | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
2509
- damage_team_type: "invalid" | "unknown" | (string & {}) | "enemy" | "friendly";
2512
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "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" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
2513
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
2510
2514
  damage_hit_zone: "invalid" | (string & {}) | "head" | "left_upper_arm" | "right_upper_arm" | "left_forearm" | "right_forearm" | "left_hand" | "right_hand" | "upper_torso" | "lower_torso" | "crotch" | "left_thigh" | "right_thigh" | "left_calf" | "right_calf" | "left_foot" | "right_foot" | "neck" | "clothing";
2511
2515
  damage_source_id: SiegeDamageSourceId | null;
2512
2516
  damage_item_id: SiegeItemObjectId | null;
@@ -2516,7 +2520,7 @@ declare const siegeEvents: arktype0.Module<{
2516
2520
  players: {
2517
2521
  player_id: SiegePlayerId;
2518
2522
  final_health: number;
2519
- final_life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
2523
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2520
2524
  operator_name: {
2521
2525
  id: SiegeOperatorNameId;
2522
2526
  value: string;
@@ -2529,7 +2533,7 @@ declare const siegeEvents: arktype0.Module<{
2529
2533
  type: "phase_changed";
2530
2534
  creation_time: number;
2531
2535
  content: {
2532
- phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid" | "first" | (string & {});
2536
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
2533
2537
  };
2534
2538
  };
2535
2539
  player_joined: (In: {
@@ -2544,7 +2548,7 @@ declare const siegeEvents: arktype0.Module<{
2544
2548
  is_squad_member: boolean;
2545
2549
  is_local_player: boolean;
2546
2550
  username: string;
2547
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2551
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2548
2552
  team: 0 | 1;
2549
2553
  is_privacy_username: boolean;
2550
2554
  has_avatar_hidden: boolean;
@@ -2557,12 +2561,12 @@ declare const siegeEvents: arktype0.Module<{
2557
2561
  game_mode_actions: number;
2558
2562
  score: number;
2559
2563
  };
2560
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
2564
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2561
2565
  ping: number;
2562
2566
  };
2563
- }) => arktype0.Out<{
2567
+ }) => arktype2.Out<{
2564
2568
  content: {
2565
- starting_side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2569
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2566
2570
  player_id: SiegePlayerId;
2567
2571
  profile_id: SiegeProfileId;
2568
2572
  is_bot: boolean;
@@ -2570,7 +2574,7 @@ declare const siegeEvents: arktype0.Module<{
2570
2574
  is_squad_member: boolean;
2571
2575
  is_local_player: boolean;
2572
2576
  username: string;
2573
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2577
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2574
2578
  team: 0 | 1;
2575
2579
  is_privacy_username: boolean;
2576
2580
  has_avatar_hidden: boolean;
@@ -2583,7 +2587,7 @@ declare const siegeEvents: arktype0.Module<{
2583
2587
  game_mode_actions: number;
2584
2588
  score: number;
2585
2589
  };
2586
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
2590
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2587
2591
  ping: number;
2588
2592
  };
2589
2593
  game: "siege";
@@ -2625,7 +2629,7 @@ declare const siegeEvents: arktype0.Module<{
2625
2629
  creation_time: number;
2626
2630
  content: {
2627
2631
  player_id: SiegePlayerId;
2628
- side: "invalid" | (string & {}) | "attacker" | "defender" | "both";
2632
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2629
2633
  };
2630
2634
  };
2631
2635
  player_score_changed: {
@@ -2721,7 +2725,7 @@ declare const siegeEvents: arktype0.Module<{
2721
2725
  creation_time: number;
2722
2726
  content: {
2723
2727
  player_id: SiegePlayerId;
2724
- life_state: (string & {}) | "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
2728
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2725
2729
  };
2726
2730
  };
2727
2731
  player_died: {
@@ -2731,6 +2735,7 @@ declare const siegeEvents: arktype0.Module<{
2731
2735
  content: {
2732
2736
  player_id: SiegePlayerId;
2733
2737
  instigator_player_id: SiegePlayerId;
2738
+ headshot: boolean;
2734
2739
  };
2735
2740
  };
2736
2741
  player_downed: {
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(),u=a(),d=a(),ee=a(),f=a(),p=a(),m=a(),h=a(),g=a(),_=`00000000-0000-0000-0000-000000000000`,te=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`,`first`],v=n(`string`),y=[0,1],b=n(`===`,...y),x=[`attacker`,`defender`,`both`,`invalid`],S=n(`string`),C=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],w=n(`string`),T=`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.melee-pushback.supressive-fire.gas-pipe-fire.invalid`.split(`.`),E=n(`string`),D=[`unknown`,`enemy`,`friendly`,`invalid`],O=n(`string`),ne=[`invalid`,`head`,`left_upper_arm`,`right_upper_arm`,`left_forearm`,`right_forearm`,`left_hand`,`right_hand`,`upper_torso`,`lower_torso`,`crotch`,`left_thigh`,`right_thigh`,`left_calf`,`right_calf`,`left_foot`,`right_foot`,`neck`,`clothing`],k=n(`string`),A=Object.freeze({quickPlay:m(`QUICK PLAY`),versusAi:m(`VERSUS AI`),standard:m(`STANDARD`),ranked:m(`RANKED`)}),re=Object.freeze({[A.quickPlay]:`Quick Play`,[A.versusAi]:`Versus AI`,[A.standard]:`Standard`,[A.ranked]:`Ranked`}),j=Object.freeze({teamDeathmatch:h(`TEAM DEATHMATCH`),goldenGun:h(`GOLDEN GUN`),freeForAll:h(`FREE FOR ALL`),weaponRoulette:h(`WEAPON ROULETTE`),dualFront:h(`DUAL FRONT`),bomb:h(`BOMB`),versusAi:h(`VERSUS AI`),hostage:h(`HOSTAGE`),threeVsThreeSecureArea:h(`3 VS 3 SECURE AREA`),targetDrill:h(`TARGET DRILL`),rengoku:h(`RENGOKU`),hideAndSeek:h(`HIDE AND SEEK`)}),M=Object.freeze({[j.teamDeathmatch]:`Team Deathmatch`,[j.goldenGun]:`Golden Gun`,[j.freeForAll]:`Free For All`,[j.weaponRoulette]:`Weapon Roulette`,[j.dualFront]:`Dual Front`,[j.bomb]:`Bomb`,[j.versusAi]:`Versus AI`,[j.hostage]:`Hostage`,[j.threeVsThreeSecureArea]:`3v3 Secure Area`,[j.targetDrill]:`Target Drill`,[j.rengoku]:`Rengoku`,[j.hideAndSeek]:`Hide and Seek`}),N=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),unranked:o(310813),deathmatch:o(420611),rengoku:o(359430),muteProtocol:o(368421),fieldTraining:o(423927),hideAndSeek:o(310854)}),P=Object.freeze({[N.quickMatch]:`Quick Match`,[N.ranked]:`Ranked`,[N.customGame]:`Custom Game`,[N.versusAi]:`Versus AI`,[N.standard]:`Standard`,[N.arcade]:`Arcade`,[N.siegeCup]:`Siege Cup`,[N.dualFront]:`Dual Front`,[N.showdown]:`Showdown`,[N.trainingGrounds]:`Training Grounds`,[N.unranked]:`Unranked`,[N.deathmatch]:`Deathmatch`,[N.rengoku]:`Rengoku`,[N.muteProtocol]:`M.U.T.E Protocol`,[N.fieldTraining]:`Field Training`,[N.hideAndSeek]:`Hide and Seek`}),F=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),denari:s(2437779699)}),I=Object.freeze({[F.glaz]:`glaz`,[F.blitz]:`blitz`,[F.buck]:`buck`,[F.sledge]:`sledge`,[F.ash]:`ash`,[F.thermite]:`thermite`,[F.castle]:`castle`,[F.rook]:`rook`,[F.pulse]:`pulse`,[F.doc]:`doc`,[F.mute]:`mute`,[F.smoke]:`smoke`,[F.recruit]:`recruit`,[F.thatcher]:`thatcher`,[F.twitch]:`twitch`,[F.montagne]:`montagne`,[F.bandit]:`bandit`,[F.fuze]:`fuze`,[F.kapkan]:`kapkan`,[F.tachanka]:`tachanka`,[F.jager]:`jager`,[F.iq]:`iq`,[F.frost]:`frost`,[F.blackbeard]:`blackbeard`,[F.valkyrie]:`valkyrie`,[F.caveira]:`caveira`,[F.capitao]:`capitao`,[F.echo]:`echo`,[F.hibana]:`hibana`,[F.mira]:`mira`,[F.jackal]:`jackal`,[F.ying]:`ying`,[F.lesion]:`lesion`,[F.ela]:`ela`,[F.zofia]:`zofia`,[F.dokkaebi]:`dokkaebi`,[F.vigil]:`vigil`,[F.finka]:`finka`,[F.lion]:`lion`,[F.alibi]:`alibi`,[F.maestro]:`maestro`,[F.maverick]:`maverick`,[F.clash]:`clash`,[F.nomad]:`nomad`,[F.kaid]:`kaid`,[F.gridlock]:`gridlock`,[F.mozzie]:`mozzie`,[F.nokk]:`nokk`,[F.warden]:`warden`,[F.goyo]:`goyo`,[F.amaru]:`amaru`,[F.kali]:`kali`,[F.wamai]:`wamai`,[F.oryx]:`oryx`,[F.iana]:`iana`,[F.melusi]:`melusi`,[F.ace]:`ace`,[F.zero]:`zero`,[F.aruni]:`aruni`,[F.flores]:`flores`,[F.thunderbird]:`thunderbird`,[F.osa]:`osa`,[F.thorn]:`thorn`,[F.azami]:`azami`,[F.sens]:`sens`,[F.grim]:`grim`,[F.solis]:`solis`,[F.brava]:`brava`,[F.fenrir]:`fenrir`,[F.ram]:`ram`,[F.tubarao]:`tubarao`,[F.deimos]:`deimos`,[F.striker]:`striker`,[F.sentry]:`sentry`,[F.skopos]:`skopos`,[F.rauora]:`rauora`,[F.denari]:`denari`}),L=Object.freeze({[F.striker]:{name:`Striker`,role:`attacker`},[F.sledge]:{name:`Sledge`,role:`attacker`},[F.thatcher]:{name:`Thatcher`,role:`attacker`},[F.ash]:{name:`Ash`,role:`attacker`},[F.thermite]:{name:`Thermite`,role:`attacker`},[F.twitch]:{name:`Twitch`,role:`attacker`},[F.montagne]:{name:`Montagne`,role:`attacker`},[F.glaz]:{name:`Glaz`,role:`attacker`},[F.fuze]:{name:`Fuze`,role:`attacker`},[F.blitz]:{name:`Blitz`,role:`attacker`},[F.iq]:{name:`IQ`,role:`attacker`},[F.buck]:{name:`Buck`,role:`attacker`},[F.blackbeard]:{name:`Blackbeard`,role:`attacker`},[F.capitao]:{name:`Capitão`,role:`attacker`},[F.hibana]:{name:`Hibana`,role:`attacker`},[F.jackal]:{name:`Jackal`,role:`attacker`},[F.ying]:{name:`Ying`,role:`attacker`},[F.zofia]:{name:`Zofia`,role:`attacker`},[F.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[F.lion]:{name:`Lion`,role:`attacker`},[F.finka]:{name:`Finka`,role:`attacker`},[F.maverick]:{name:`Maverick`,role:`attacker`},[F.nomad]:{name:`Nomad`,role:`attacker`},[F.gridlock]:{name:`Gridlock`,role:`attacker`},[F.nokk]:{name:`Nøkk`,role:`attacker`},[F.amaru]:{name:`Amaru`,role:`attacker`},[F.kali]:{name:`Kali`,role:`attacker`},[F.iana]:{name:`Iana`,role:`attacker`},[F.ace]:{name:`Ace`,role:`attacker`},[F.zero]:{name:`Zero`,role:`attacker`},[F.flores]:{name:`Flores`,role:`attacker`},[F.osa]:{name:`Osa`,role:`attacker`},[F.sens]:{name:`Sens`,role:`attacker`},[F.grim]:{name:`Grim`,role:`attacker`},[F.brava]:{name:`Brava`,role:`attacker`},[F.ram]:{name:`Ram`,role:`attacker`},[F.deimos]:{name:`Deimos`,role:`attacker`},[F.rauora]:{name:`Rauora`,role:`attacker`},[F.sentry]:{name:`Sentry`,role:`defender`},[F.smoke]:{name:`Smoke`,role:`defender`},[F.mute]:{name:`Mute`,role:`defender`},[F.castle]:{name:`Castle`,role:`defender`},[F.pulse]:{name:`Pulse`,role:`defender`},[F.doc]:{name:`Doc`,role:`defender`},[F.rook]:{name:`Rook`,role:`defender`},[F.kapkan]:{name:`Kapkan`,role:`defender`},[F.tachanka]:{name:`Tachanka`,role:`defender`},[F.jager]:{name:`Jäger`,role:`defender`},[F.bandit]:{name:`Bandit`,role:`defender`},[F.frost]:{name:`Frost`,role:`defender`},[F.valkyrie]:{name:`Valkyrie`,role:`defender`},[F.caveira]:{name:`Caveira`,role:`defender`},[F.echo]:{name:`Echo`,role:`defender`},[F.mira]:{name:`Mira`,role:`defender`},[F.lesion]:{name:`Lesion`,role:`defender`},[F.ela]:{name:`Ela`,role:`defender`},[F.vigil]:{name:`Vigil`,role:`defender`},[F.alibi]:{name:`Alibi`,role:`defender`},[F.maestro]:{name:`Maestro`,role:`defender`},[F.clash]:{name:`Clash`,role:`defender`},[F.kaid]:{name:`Kaid`,role:`defender`},[F.mozzie]:{name:`Mozzie`,role:`defender`},[F.warden]:{name:`Warden`,role:`defender`},[F.goyo]:{name:`Goyo`,role:`defender`},[F.wamai]:{name:`Wamai`,role:`defender`},[F.oryx]:{name:`Oryx`,role:`defender`},[F.melusi]:{name:`Melusi`,role:`defender`},[F.aruni]:{name:`Aruni`,role:`defender`},[F.thunderbird]:{name:`Thunderbird`,role:`defender`},[F.thorn]:{name:`Thorn`,role:`defender`},[F.azami]:{name:`Azami`,role:`defender`},[F.solis]:{name:`Solis`,role:`defender`},[F.fenrir]:{name:`Fenrir`,role:`defender`},[F.tubarao]:{name:`Tubarao`,role:`defender`},[F.skopos]:{name:`Skopós`,role:`defender`},[F.denari]:{name:`Denari`,role:`defender`}}),R=Object.freeze({attacker:Object.entries(L).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...L[s(Number(e))],id:s(Number(e))})),defender:Object.entries(L).filter(([e,t])=>t.role===`defender`).map(([e])=>({...L[s(Number(e))],id:s(Number(e))}))}),z=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),themePark:c(229325),stadium:c(338641),outback:c(299534),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),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),stadiumBravo:c(376421),muteCommTower:c(328922),doktorsLab:c(560244830)}),B=Object.freeze({[z.favela]:`Favela`,[z.fortress]:`Fortress`,[z.villa]:`Villa`,[z.neighborhood]:`Neighborhood`,[z.themePark]:`Theme Park`,[z.stadium]:`Stadium`,[z.outback]:`Outback`,[z.yacht]:`Yacht`,[z.emeraldPlains]:`Emerald Plains`,[z.chalet]:`Chalet`,[z.coastline]:`Coastline`,[z.bank]:`Bank`,[z.consulate]:`Consulate`,[z.tower]:`Tower`,[z.nighthavenLabs]:`Nighthaven Labs`,[z.presidentialPlane]:`Presidential Plane`,[z.house]:`House`,[z.kafeDostoyevsky]:`Kafe Dostoyevsky`,[z.border]:`Border`,[z.closeQuarter]:`Close Quarter`,[z.outback]:`Outback`,[z.lair]:`Lair`,[z.herefordBase]:`Hereford Base`,[z.skyscraper]:`Skyscraper`,[z.cqbBasics]:`CQB Basics`,[z.oregon]:`Oregon`,[z.outback]:`Outback`,318512:`Stadium`,[z.fortTruth]:`Fort Truth`,[z.kanal]:`Kanal`,[z.cqbBasics]:`CQB Basics`,[z.stadium2020]:`Stadium 2020`,[z.clubhouse]:`Clubhouse`,[z.district]:`District`,[z.shinden]:`Shinden`,[z.stadiumBravo]:`Stadium Bravo`,[z.muteCommTower]:`M.U.T.E Comm Tower`,[z.doktorsLab]:`Doktor's Lab`}),V=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)}),H=Object.freeze({[V.notPlayed]:`Not Played`,[V.inProgress]:`In Progress`,[V.lost]:`Lost`,[V.enemiesEliminated]:`Enemies Eliminated`,[V.objectiveComplete]:`Objective Complete`,[V.timeRanOut]:`Time ran out`,[V.enemiesSurrendered]:`Enemies Surrendered`,[V.unknownReason]:`Unknown Reason`,[V.matchCancelled]:`Match Cancelled`}),U=Object.freeze({day:g(177839),night:g(177840)}),W=Object.freeze({[U.day]:`Day`,[U.night]:`Night`}),G=()=>n({id:`number`,value:`string`}),K=n({kills:`number`,deaths:`number`,assists:`number`,game_mode_actions:`number`,score:`number`}),q=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:E,damage_team_type:O,damage_hit_zone:k,damage_source_id:r(n.number).or(`null`),damage_item_id:r(n.number).or(`null`),damage_item_instance_id:r(n.number).or(`null`),damage_time:`number`}),J=n({index:`number`,rounds_until_next_segment:`number`,segment_size:`number`,segment_index:`number`,team_0:{role:S,state:r(n.number)},team_1:{role:S,state:r(n.number)}}),Y=n({name:G(),time_of_day:G()}),X=n({player_id:r(n.number),final_health:`number`,final_life_state:w,operator_name:G()}),ie=n({round_data:J,damage_events:q.array(),players:X.array()}),Z=n({game:`string`,type:`string`,creation_time:`number`}),ae=[V.enemiesEliminated,V.objectiveComplete,V.timeRanOut,V.enemiesSurrendered,V.unknownReason];function oe(e){return ae.includes(e)}const se=[V.notPlayed,V.inProgress];function ce(e){return!se.includes(e)}const Q=Z.and({game:`'siege'`}),le=Q.and({type:`'match_started'`,content:{game_mode:r(n.string),game_type:G(),match_type:r(n.string),match_id:r(n.string),map:Y,is_round_based:`boolean`,current_round_index:`number`,rounds:J.array()}}),ue=Q.and({type:`'started_queuing'`,content:{game_mode:r(n.string),game_type:G(),match_type:r(n.string)}}),de=Q.and({type:`'stopped_queuing'`}),fe=Q.and({type:`'match_ended'`}),pe=Q.and({type:`'map_changed'`,content:{map:Y}}),me=Q.and({type:`'operator_ban_voting_started'`,content:{team:b,index:`number`,side:S}}),he=Q.and({type:`'operator_banned'`,content:{team:b,index:`number`,side:S,operator_name:G().or(`null`)}}),ge=Q.and({type:`'operator_ban_cleared'`,content:{team:b,index:`number`}}),_e=Q.and({type:`'round_ended'`,content:ie}),ve=Q.and({type:`'phase_changed'`,content:{phase:v}}),ye=Q.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:r(n.string),is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:S,team:b,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:K,life_state:w,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),be=Q.and({type:`'player_left'`,content:{player_id:r(n.number)}}),xe=Q.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:G()}}),Se=Q.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),Ce=Q.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:S}}),we=Q.and({type:`'player_score_changed'`,content:{player_id:r(n.number),score:`number`}}),Te=Q.and({type:`'player_kills_changed'`,content:{player_id:r(n.number),kills:`number`}}),Ee=Q.and({type:`'player_deaths_changed'`,content:{player_id:r(n.number),deaths:`number`}}),De=Q.and({type:`'player_assists_changed'`,content:{player_id:r(n.number),assists:`number`}}),$=Q.and({type:`'player_game_mode_actions_changed'`,content:{player_id:r(n.number),game_mode_actions:`number`}}),Oe=Q.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),ke=Q.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),Ae=Q.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),je=Q.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),Me=Q.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),Ne=Q.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:w}}),Pe=Q.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Fe=Q.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Ie=Q.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Le=Q.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:b}}),Re=t({"#event1":`started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_ban_voting_started | operator_banned | operator_ban_cleared | round_ended | phase_changed | player_joined | player_left | player_operator_changed`,"#event2":`player_location_changed | player_side_changed | player_score_changed | player_kills_changed | player_deaths_changed | player_assists_changed | player_game_mode_actions_changed | 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`,started_queuing:ue,stopped_queuing:de,match_started:le,match_ended:fe,map_changed:pe,operator_ban_voting_started:me,operator_banned:he,operator_ban_cleared:ge,round_ended:_e,phase_changed:ve,player_joined:ye,player_left:be,player_operator_changed:xe,player_location_changed:Se,player_side_changed:Ce,player_score_changed:we,player_kills_changed:Te,player_deaths_changed:Ee,player_assists_changed:De,player_game_mode_actions_changed:$,defuser_planted:ke,defuser_sabotaged:Ae,defuser_picked_up:je,defuser_dropped:Me,player_ping_updated:Oe,player_life_state_changed:Ne,player_died:Pe,player_downed:Fe,player_ping_id_changed:Ie,player_team_changed:Le}).export();function ze(){return{key:`siege`,events:Re}}export{Z as BaseEvent,_ as SIEGE_BOT_ID,ne as SIEGE_DAMAGE_HIT_ZONES,D as SIEGE_DAMAGE_TEAM_TYPES,T as SIEGE_DAMAGE_TYPES,j as SIEGE_GAME_MODES_TO_ID,M as SIEGE_GAME_MODE_LABELS,te as SIEGE_GAME_MODE_PHASES,N as SIEGE_GAME_MODE_TYPES_TO_ID,P as SIEGE_GAME_MODE_TYPE_LABELS,B as SIEGE_MAP_LABELS,z as SIEGE_MAP_TO_ID,A as SIEGE_MATCH_TYPES_TO_ID,re as SIEGE_MATCH_TYPE_LABELS,I as SIEGE_OPERATOR_LABELS,L as SIEGE_OPERATOR_META,F as SIEGE_OPERATOR_TO_ID,C as SIEGE_PLAYER_LIFE_STATES,V as SIEGE_ROUND_STATES_TO_ID,H as SIEGE_ROUND_STATE_LABELS,x as SIEGE_SIDES,R as SIEGE_SIDE_OPERATORS,y as SIEGE_TEAMS,W as SIEGE_TIME_OF_DAY_LABELS,U as SIEGE_TIME_OF_DAY_TO_ID,k as SiegeDamageHitZoneSchema,p as SiegeDamageSourceId,O as SiegeDamageTeamTypeSchema,E as SiegeDamageTypeSchema,h as SiegeGameMode,v as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,f as SiegeItemObjectId,c as SiegeMapNameId,u as SiegeMatchId,m as SiegeMatchType,s as SiegeOperatorNameId,d as SiegePlayerId,w as SiegePlayerLifeStateSchema,ee as SiegeProfileId,l as SiegeRoundState,S as SiegeSideSchema,b as SiegeTeamSchema,g as SiegeTimeOfDay,ce as isSiegeRoundStateCompleted,oe as isSiegeRoundStateVictory,ze 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(),u=a(),d=a(),ee=a(),f=a(),p=a(),m=a(),h=a(),g=a(),_=`00000000-0000-0000-0000-000000000000`,te=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`,`first`],v=n(`string`),y=[0,1],b=n(`===`,...y),x=[`attacker`,`defender`,`both`,`invalid`],S=n(`string`),C=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],w=n(`string`),T=`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.melee-pushback.supressive-fire.gas-pipe-fire.invalid`.split(`.`),E=n(`string`),D=[`unknown`,`enemy`,`friendly`,`invalid`],O=n(`string`),ne=[`invalid`,`head`,`left_upper_arm`,`right_upper_arm`,`left_forearm`,`right_forearm`,`left_hand`,`right_hand`,`upper_torso`,`lower_torso`,`crotch`,`left_thigh`,`right_thigh`,`left_calf`,`right_calf`,`left_foot`,`right_foot`,`neck`,`clothing`],k=n(`string`),A=Object.freeze({quickPlay:m(`QUICK PLAY`),versusAi:m(`VERSUS AI`),standard:m(`STANDARD`),ranked:m(`RANKED`)}),re=Object.freeze({[A.quickPlay]:`Quick Play`,[A.versusAi]:`Versus AI`,[A.standard]:`Standard`,[A.ranked]:`Ranked`}),j=Object.freeze({teamDeathmatch:h(`TEAM DEATHMATCH`),goldenGun:h(`GOLDEN GUN`),freeForAll:h(`FREE FOR ALL`),weaponRoulette:h(`WEAPON ROULETTE`),dualFront:h(`DUAL FRONT`),bomb:h(`BOMB`),versusAi:h(`VERSUS AI`),hostage:h(`HOSTAGE`),threeVsThreeSecureArea:h(`3 VS 3 SECURE AREA`),targetDrill:h(`TARGET DRILL`),rengoku:h(`RENGOKU`),hideAndSeek:h(`HIDE AND SEEK`)}),M=Object.freeze({[j.teamDeathmatch]:`Team Deathmatch`,[j.goldenGun]:`Golden Gun`,[j.freeForAll]:`Free For All`,[j.weaponRoulette]:`Weapon Roulette`,[j.dualFront]:`Dual Front`,[j.bomb]:`Bomb`,[j.versusAi]:`Versus AI`,[j.hostage]:`Hostage`,[j.threeVsThreeSecureArea]:`3v3 Secure Area`,[j.targetDrill]:`Target Drill`,[j.rengoku]:`Rengoku`,[j.hideAndSeek]:`Hide and Seek`}),N=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),unranked:o(310813),deathmatch:o(420611),rengoku:o(359430),muteProtocol:o(368421),fieldTraining:o(423927),hideAndSeek:o(310854)}),P=Object.freeze({[N.quickMatch]:`Quick Match`,[N.ranked]:`Ranked`,[N.customGame]:`Custom Game`,[N.versusAi]:`Versus AI`,[N.standard]:`Standard`,[N.arcade]:`Arcade`,[N.siegeCup]:`Siege Cup`,[N.dualFront]:`Dual Front`,[N.showdown]:`Showdown`,[N.trainingGrounds]:`Training Grounds`,[N.unranked]:`Unranked`,[N.deathmatch]:`Deathmatch`,[N.rengoku]:`Rengoku`,[N.muteProtocol]:`M.U.T.E Protocol`,[N.fieldTraining]:`Field Training`,[N.hideAndSeek]:`Hide and Seek`}),F=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),denari:s(2437779699)}),I=Object.freeze({[F.glaz]:`glaz`,[F.blitz]:`blitz`,[F.buck]:`buck`,[F.sledge]:`sledge`,[F.ash]:`ash`,[F.thermite]:`thermite`,[F.castle]:`castle`,[F.rook]:`rook`,[F.pulse]:`pulse`,[F.doc]:`doc`,[F.mute]:`mute`,[F.smoke]:`smoke`,[F.recruit]:`recruit`,[F.thatcher]:`thatcher`,[F.twitch]:`twitch`,[F.montagne]:`montagne`,[F.bandit]:`bandit`,[F.fuze]:`fuze`,[F.kapkan]:`kapkan`,[F.tachanka]:`tachanka`,[F.jager]:`jager`,[F.iq]:`iq`,[F.frost]:`frost`,[F.blackbeard]:`blackbeard`,[F.valkyrie]:`valkyrie`,[F.caveira]:`caveira`,[F.capitao]:`capitao`,[F.echo]:`echo`,[F.hibana]:`hibana`,[F.mira]:`mira`,[F.jackal]:`jackal`,[F.ying]:`ying`,[F.lesion]:`lesion`,[F.ela]:`ela`,[F.zofia]:`zofia`,[F.dokkaebi]:`dokkaebi`,[F.vigil]:`vigil`,[F.finka]:`finka`,[F.lion]:`lion`,[F.alibi]:`alibi`,[F.maestro]:`maestro`,[F.maverick]:`maverick`,[F.clash]:`clash`,[F.nomad]:`nomad`,[F.kaid]:`kaid`,[F.gridlock]:`gridlock`,[F.mozzie]:`mozzie`,[F.nokk]:`nokk`,[F.warden]:`warden`,[F.goyo]:`goyo`,[F.amaru]:`amaru`,[F.kali]:`kali`,[F.wamai]:`wamai`,[F.oryx]:`oryx`,[F.iana]:`iana`,[F.melusi]:`melusi`,[F.ace]:`ace`,[F.zero]:`zero`,[F.aruni]:`aruni`,[F.flores]:`flores`,[F.thunderbird]:`thunderbird`,[F.osa]:`osa`,[F.thorn]:`thorn`,[F.azami]:`azami`,[F.sens]:`sens`,[F.grim]:`grim`,[F.solis]:`solis`,[F.brava]:`brava`,[F.fenrir]:`fenrir`,[F.ram]:`ram`,[F.tubarao]:`tubarao`,[F.deimos]:`deimos`,[F.striker]:`striker`,[F.sentry]:`sentry`,[F.skopos]:`skopos`,[F.rauora]:`rauora`,[F.denari]:`denari`}),L=Object.freeze({[F.striker]:{name:`Striker`,role:`attacker`},[F.sledge]:{name:`Sledge`,role:`attacker`},[F.thatcher]:{name:`Thatcher`,role:`attacker`},[F.ash]:{name:`Ash`,role:`attacker`},[F.thermite]:{name:`Thermite`,role:`attacker`},[F.twitch]:{name:`Twitch`,role:`attacker`},[F.montagne]:{name:`Montagne`,role:`attacker`},[F.glaz]:{name:`Glaz`,role:`attacker`},[F.fuze]:{name:`Fuze`,role:`attacker`},[F.blitz]:{name:`Blitz`,role:`attacker`},[F.iq]:{name:`IQ`,role:`attacker`},[F.buck]:{name:`Buck`,role:`attacker`},[F.blackbeard]:{name:`Blackbeard`,role:`attacker`},[F.capitao]:{name:`Capitão`,role:`attacker`},[F.hibana]:{name:`Hibana`,role:`attacker`},[F.jackal]:{name:`Jackal`,role:`attacker`},[F.ying]:{name:`Ying`,role:`attacker`},[F.zofia]:{name:`Zofia`,role:`attacker`},[F.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[F.lion]:{name:`Lion`,role:`attacker`},[F.finka]:{name:`Finka`,role:`attacker`},[F.maverick]:{name:`Maverick`,role:`attacker`},[F.nomad]:{name:`Nomad`,role:`attacker`},[F.gridlock]:{name:`Gridlock`,role:`attacker`},[F.nokk]:{name:`Nøkk`,role:`attacker`},[F.amaru]:{name:`Amaru`,role:`attacker`},[F.kali]:{name:`Kali`,role:`attacker`},[F.iana]:{name:`Iana`,role:`attacker`},[F.ace]:{name:`Ace`,role:`attacker`},[F.zero]:{name:`Zero`,role:`attacker`},[F.flores]:{name:`Flores`,role:`attacker`},[F.osa]:{name:`Osa`,role:`attacker`},[F.sens]:{name:`Sens`,role:`attacker`},[F.grim]:{name:`Grim`,role:`attacker`},[F.brava]:{name:`Brava`,role:`attacker`},[F.ram]:{name:`Ram`,role:`attacker`},[F.deimos]:{name:`Deimos`,role:`attacker`},[F.rauora]:{name:`Rauora`,role:`attacker`},[F.sentry]:{name:`Sentry`,role:`defender`},[F.smoke]:{name:`Smoke`,role:`defender`},[F.mute]:{name:`Mute`,role:`defender`},[F.castle]:{name:`Castle`,role:`defender`},[F.pulse]:{name:`Pulse`,role:`defender`},[F.doc]:{name:`Doc`,role:`defender`},[F.rook]:{name:`Rook`,role:`defender`},[F.kapkan]:{name:`Kapkan`,role:`defender`},[F.tachanka]:{name:`Tachanka`,role:`defender`},[F.jager]:{name:`Jäger`,role:`defender`},[F.bandit]:{name:`Bandit`,role:`defender`},[F.frost]:{name:`Frost`,role:`defender`},[F.valkyrie]:{name:`Valkyrie`,role:`defender`},[F.caveira]:{name:`Caveira`,role:`defender`},[F.echo]:{name:`Echo`,role:`defender`},[F.mira]:{name:`Mira`,role:`defender`},[F.lesion]:{name:`Lesion`,role:`defender`},[F.ela]:{name:`Ela`,role:`defender`},[F.vigil]:{name:`Vigil`,role:`defender`},[F.alibi]:{name:`Alibi`,role:`defender`},[F.maestro]:{name:`Maestro`,role:`defender`},[F.clash]:{name:`Clash`,role:`defender`},[F.kaid]:{name:`Kaid`,role:`defender`},[F.mozzie]:{name:`Mozzie`,role:`defender`},[F.warden]:{name:`Warden`,role:`defender`},[F.goyo]:{name:`Goyo`,role:`defender`},[F.wamai]:{name:`Wamai`,role:`defender`},[F.oryx]:{name:`Oryx`,role:`defender`},[F.melusi]:{name:`Melusi`,role:`defender`},[F.aruni]:{name:`Aruni`,role:`defender`},[F.thunderbird]:{name:`Thunderbird`,role:`defender`},[F.thorn]:{name:`Thorn`,role:`defender`},[F.azami]:{name:`Azami`,role:`defender`},[F.solis]:{name:`Solis`,role:`defender`},[F.fenrir]:{name:`Fenrir`,role:`defender`},[F.tubarao]:{name:`Tubarao`,role:`defender`},[F.skopos]:{name:`Skopós`,role:`defender`},[F.denari]:{name:`Denari`,role:`defender`}}),R=Object.freeze({attacker:Object.entries(L).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...L[s(Number(e))],id:s(Number(e))})),defender:Object.entries(L).filter(([e,t])=>t.role===`defender`).map(([e])=>({...L[s(Number(e))],id:s(Number(e))}))}),z=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),themePark:c(229325),stadium:c(338641),outback:c(299534),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),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),stadiumBravo:c(376421),muteCommTower:c(328922),doktorsLab:c(560244830)}),B=Object.freeze({[z.favela]:`Favela`,[z.fortress]:`Fortress`,[z.villa]:`Villa`,[z.neighborhood]:`Neighborhood`,[z.themePark]:`Theme Park`,[z.stadium]:`Stadium`,[z.outback]:`Outback`,[z.yacht]:`Yacht`,[z.emeraldPlains]:`Emerald Plains`,[z.chalet]:`Chalet`,[z.coastline]:`Coastline`,[z.bank]:`Bank`,[z.consulate]:`Consulate`,[z.tower]:`Tower`,[z.nighthavenLabs]:`Nighthaven Labs`,[z.presidentialPlane]:`Presidential Plane`,[z.house]:`House`,[z.kafeDostoyevsky]:`Kafe Dostoyevsky`,[z.border]:`Border`,[z.closeQuarter]:`Close Quarter`,[z.outback]:`Outback`,[z.lair]:`Lair`,[z.herefordBase]:`Hereford Base`,[z.skyscraper]:`Skyscraper`,[z.cqbBasics]:`CQB Basics`,[z.oregon]:`Oregon`,[z.outback]:`Outback`,318512:`Stadium`,[z.fortTruth]:`Fort Truth`,[z.kanal]:`Kanal`,[z.cqbBasics]:`CQB Basics`,[z.stadium2020]:`Stadium 2020`,[z.clubhouse]:`Clubhouse`,[z.district]:`District`,[z.shinden]:`Shinden`,[z.stadiumBravo]:`Stadium Bravo`,[z.muteCommTower]:`M.U.T.E Comm Tower`,[z.doktorsLab]:`Doktor's Lab`}),V=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)}),H=Object.freeze({[V.notPlayed]:`Not Played`,[V.inProgress]:`In Progress`,[V.lost]:`Lost`,[V.enemiesEliminated]:`Enemies Eliminated`,[V.objectiveComplete]:`Objective Complete`,[V.timeRanOut]:`Time ran out`,[V.enemiesSurrendered]:`Enemies Surrendered`,[V.unknownReason]:`Unknown Reason`,[V.matchCancelled]:`Match Cancelled`}),U=Object.freeze({day:g(177839),night:g(177840)}),W=Object.freeze({[U.day]:`Day`,[U.night]:`Night`}),G=()=>n({id:`number`,value:`string`}),K=n({kills:`number`,deaths:`number`,assists:`number`,game_mode_actions:`number`,score:`number`}),q=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:E,damage_team_type:O,damage_hit_zone:k,damage_source_id:r(n.number).or(`null`),damage_item_id:r(n.number).or(`null`),damage_item_instance_id:r(n.number).or(`null`),damage_time:`number`}),J=n({index:`number`,rounds_until_next_segment:`number`,segment_size:`number`,segment_index:`number`,team_0:{role:S,state:r(n.number)},team_1:{role:S,state:r(n.number)}}),Y=n({name:G(),time_of_day:G()}),X=n({player_id:r(n.number),final_health:`number`,final_life_state:w,operator_name:G()}),ie=n({round_data:J,damage_events:q.array(),players:X.array()}),Z=n({game:`string`,type:`string`,creation_time:`number`}),ae=[V.enemiesEliminated,V.objectiveComplete,V.timeRanOut,V.enemiesSurrendered,V.unknownReason];function oe(e){return ae.includes(e)}const se=[V.notPlayed,V.inProgress];function ce(e){return!se.includes(e)}const Q=Z.and({game:`'siege'`}),le=Q.and({type:`'match_started'`,content:{game_mode:r(n.string),game_type:G(),match_type:r(n.string),match_id:r(n.string),map:Y,is_round_based:`boolean`,current_round_index:`number`,rounds:J.array()}}),ue=Q.and({type:`'started_queuing'`,content:{game_mode:r(n.string),game_type:G(),match_type:r(n.string)}}),de=Q.and({type:`'stopped_queuing'`}),fe=Q.and({type:`'match_ended'`}),pe=Q.and({type:`'map_changed'`,content:{map:Y}}),me=Q.and({type:`'operator_ban_voting_started'`,content:{team:b,index:`number`,side:S}}),he=Q.and({type:`'operator_banned'`,content:{team:b,index:`number`,side:S,operator_name:G().or(`null`)}}),ge=Q.and({type:`'operator_ban_cleared'`,content:{team:b,index:`number`}}),_e=Q.and({type:`'round_ended'`,content:ie}),ve=Q.and({type:`'phase_changed'`,content:{phase:v}}),ye=Q.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:r(n.string),is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:S,team:b,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:K,life_state:w,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),be=Q.and({type:`'player_left'`,content:{player_id:r(n.number)}}),xe=Q.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:G()}}),Se=Q.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),Ce=Q.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:S}}),we=Q.and({type:`'player_score_changed'`,content:{player_id:r(n.number),score:`number`}}),Te=Q.and({type:`'player_kills_changed'`,content:{player_id:r(n.number),kills:`number`}}),Ee=Q.and({type:`'player_deaths_changed'`,content:{player_id:r(n.number),deaths:`number`}}),De=Q.and({type:`'player_assists_changed'`,content:{player_id:r(n.number),assists:`number`}}),$=Q.and({type:`'player_game_mode_actions_changed'`,content:{player_id:r(n.number),game_mode_actions:`number`}}),Oe=Q.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),ke=Q.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),Ae=Q.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),je=Q.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),Me=Q.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),Ne=Q.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:w}}),Pe=Q.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number),headshot:`boolean`}}),Fe=Q.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Ie=Q.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Le=Q.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:b}}),Re=t({"#event1":`started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_ban_voting_started | operator_banned | operator_ban_cleared | round_ended | phase_changed | player_joined | player_left | player_operator_changed`,"#event2":`player_location_changed | player_side_changed | player_score_changed | player_kills_changed | player_deaths_changed | player_assists_changed | player_game_mode_actions_changed | 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`,started_queuing:ue,stopped_queuing:de,match_started:le,match_ended:fe,map_changed:pe,operator_ban_voting_started:me,operator_banned:he,operator_ban_cleared:ge,round_ended:_e,phase_changed:ve,player_joined:ye,player_left:be,player_operator_changed:xe,player_location_changed:Se,player_side_changed:Ce,player_score_changed:we,player_kills_changed:Te,player_deaths_changed:Ee,player_assists_changed:De,player_game_mode_actions_changed:$,defuser_planted:ke,defuser_sabotaged:Ae,defuser_picked_up:je,defuser_dropped:Me,player_ping_updated:Oe,player_life_state_changed:Ne,player_died:Pe,player_downed:Fe,player_ping_id_changed:Ie,player_team_changed:Le}).export();function ze(){return{key:`siege`,events:Re}}export{Z as BaseEvent,_ as SIEGE_BOT_ID,ne as SIEGE_DAMAGE_HIT_ZONES,D as SIEGE_DAMAGE_TEAM_TYPES,T as SIEGE_DAMAGE_TYPES,j as SIEGE_GAME_MODES_TO_ID,M as SIEGE_GAME_MODE_LABELS,te as SIEGE_GAME_MODE_PHASES,N as SIEGE_GAME_MODE_TYPES_TO_ID,P as SIEGE_GAME_MODE_TYPE_LABELS,B as SIEGE_MAP_LABELS,z as SIEGE_MAP_TO_ID,A as SIEGE_MATCH_TYPES_TO_ID,re as SIEGE_MATCH_TYPE_LABELS,I as SIEGE_OPERATOR_LABELS,L as SIEGE_OPERATOR_META,F as SIEGE_OPERATOR_TO_ID,C as SIEGE_PLAYER_LIFE_STATES,V as SIEGE_ROUND_STATES_TO_ID,H as SIEGE_ROUND_STATE_LABELS,x as SIEGE_SIDES,R as SIEGE_SIDE_OPERATORS,y as SIEGE_TEAMS,W as SIEGE_TIME_OF_DAY_LABELS,U as SIEGE_TIME_OF_DAY_TO_ID,k as SiegeDamageHitZoneSchema,p as SiegeDamageSourceId,O as SiegeDamageTeamTypeSchema,E as SiegeDamageTypeSchema,h as SiegeGameMode,v as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,f as SiegeItemObjectId,c as SiegeMapNameId,u as SiegeMatchId,m as SiegeMatchType,s as SiegeOperatorNameId,d as SiegePlayerId,w as SiegePlayerLifeStateSchema,ee as SiegeProfileId,l as SiegeRoundState,S as SiegeSideSchema,b as SiegeTeamSchema,g as SiegeTimeOfDay,ce as isSiegeRoundStateCompleted,oe as isSiegeRoundStateVictory,ze as module};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@overlayed/app",
3
3
  "author": "overlayed.gg",
4
4
  "homepage": "https://overlayed.gg",
5
- "version": "0.30.1",
5
+ "version": "0.31.1",
6
6
  "description": "Overlayed app",
7
7
  "license": "SEE LICENSE IN LICENSE.md",
8
8
  "repository": {