@overlayed/app 0.31.4 → 0.31.5

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:Pe,stderr:Fe}=je,w=Symbol(`GENERATOR`),T=Symbol(`STYLER`),E=Symbol(`IS_EMPTY`),Ie=[`ansi`,`ansi`,`ansi256`,`ansi16m`],D=Object.create(null),Le=(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=Pe?Pe.level:0;e.level=t.level===void 0?n:t.level},Re=e=>{let t=(...e)=>e.join(` `);return Le(t,e),Object.setPrototypeOf(t,O.prototype),t};function O(e){return Re(e)}Object.setPrototypeOf(O.prototype,Function.prototype);for(let[e,t]of Object.entries(b))D[e]={get(){let n=j(this,A(t.open,t.close,this[T]),this[E]);return Object.defineProperty(this,e,{value:n}),n}};D.visible={get(){let e=j(this,this[T],!0);return Object.defineProperty(this,`visible`,{value:e}),e}};const k=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?b[n].ansi16m(...r):t===`ansi256`?b[n].ansi256(b.rgbToAnsi256(...r)):b[n].ansi(b.rgbToAnsi(...r)):e===`hex`?k(`rgb`,t,n,...b.hexToRgb(...r)):b[n][e](...r);for(let e of[`rgb`,`hex`,`ansi256`]){D[e]={get(){let{level:t}=this;return function(...n){let r=A(k(e,Ie[t],`color`,...n),b.color.close,this[T]);return j(this,r,this[E])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);D[t]={get(){let{level:t}=this;return function(...n){let r=A(k(e,Ie[t],`bgColor`,...n),b.bgColor.close,this[T]);return j(this,r,this[E])}}}}const ze=Object.defineProperties(()=>{},{...D,level:{enumerable:!0,get(){return this[w].level},set(e){this[w].level=e}}}),A=(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}},j=(e,t,n)=>{let r=(...e)=>Be(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,ze),r[w]=e,r[T]=t,r[E]=n,r},Be=(e,t)=>{if(e.level<=0||!t)return e[E]?``:t;let n=e[T];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes(`\x1B`))for(;n!==void 0;)t=Me(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
5
- `);return a!==-1&&(t=Ne(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);const Ve=O();O({level:Fe?Fe.level:0});var M=Ve,N=class{emitter;constructor(){this.emitter=i()}on(e,t){v(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){v(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){v(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},He=class{listeners;constructor(){this.listeners=new Map}on(e,t){v(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){v(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=v(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 P(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 F=P(class extends N{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){F.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 N{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(`info`,...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 I=()=>m.join(process.env.APPDATA??``,`overlayed`),Ke=()=>m.join(I(),`logs`),qe=e=>m.join(I(),`apps`,e),Je=e=>m.join(qe(e),`logs`),Ye=()=>m.join(I(),`meta.json`);var Xe=class{fileLogger;path;appId;messageQueue=new be;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:M.red,warn:M.yellow,debug:M.blue,log:M.white};if(this.silent&&!this._debug)return;let{timestamp:r,message:i}=Ge.getMessageElements(e,...t),a=console[e],o=n[e];a(`${M.gray(r)} ${o(i)}`)}};const L=P(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 nt(e),e}function nt(e){if(!ye(e.applicationId))throw Error(`Invalid applicationId, must be a valid ULID.`)}const{PipeEventServer:rt,PipeEventClient:it,PipeEventBase:at,ProcessMonitor:ot,Process:st,HardwareInterface:ct}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),lt=P(class extends N{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 rt(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:ut,renderHookPath:dt}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);let ft=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'`}),pt=R.and({type:`'logged_in'`,content:{account_id:`string`}}),mt=R.and({type:`'module_loaded'`,content:{game_version:`string`,process_hash:`string`}}),ht=R.and({type:`'module_unloaded'`}),gt=R.and({type:`'unsupported_game_version'`,content:{game_version:`string`,process_hash:`string`}}),_t=n({"#event1":`logged_in | module_loaded | module_unloaded | unsupported_game_version`,event:`event1`,logged_in:pt,module_loaded:mt,module_unloaded:ht,unsupported_game_version:gt}).export(),vt=Object.keys(_t).filter(e=>e!==`event`);function yt(){return{key:`universal`,events:_t}}var bt=class{logger;initialized=!1;constructor(e){this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},z=class extends N{logger;initialized=!1;constructor(e){super(),this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},xt=class extends He{logger;initialized=!1;constructor(e){super(),this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const St=fe.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let Ct;function wt(e){Ct=e}St.interceptors.request.use(e=>{let t=Ct?.();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 Tt(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 Et(e){return e}function Dt(e){return e?t=>(e(t),t):Et}const Ot=Dt();function kt(e){return B.get(`/v1/public/applications/${e}`)}function At(e,t,n){return St.get(`/v1/native/${Mt(e)}/version.txt`,{params:{channel:t},responseType:`text`,headers:{"X-App-Version":Nt(n,t)}})}function jt(e,t,n){return St.get(`/v1/native/${Mt(e)}/files`,{params:{channel:t},responseType:`arraybuffer`,headers:{"X-App-Version":Nt(n,t)}})}function Mt(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function Nt(e,t){return`desktop-application/${e} (channel=${t})`}function Pt(){return B.get(`/v1/public/raven/config`)}function Ft(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function It(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Lt(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 Rt(e){let t=Date.now(),n=Tt(e.messages.map(e=>zt(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 zt(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 Bt(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Vt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Ht;function Ut(e){Ht=e}const V=P(class extends z{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=m.join(I(),`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 Ht?.();for(let n of e)try{let{data:e}=await At(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 jt(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 pe;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=P(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 Pt()).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:Wt,PipeEventClient:Gt,PipeEventBase:Kt,ProcessMonitor:qt,Process:Jt,HardwareInterface:Yt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),U=P(class extends z{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new qt}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.isProcessRegistered(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 Xt=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=P(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new Xt(new ut(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),G=P(class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new be,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{Rt({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}});function Zt(e=[]){return m.normalize(m.join(qe(global.OVERLAYED.APPLICATION_ID),...e))}const Qt=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 $t(){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 en(){let e=K.get().userId;if(e)return e;let t=rn();return K.set({...K.get(),userId:t}),t}function tn(){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 nn(){try{let e=K.get();K.set({...e,sessionLastUsed:Date.now()})}catch(e){L.getInstance().log(`Failed to update sessionLastUsed`,e)}}function rn(){try{return Yt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}const an=e(import.meta.url).resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),q=P(class extends xt{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=v(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=Jt.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){F.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(an),a=$t();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(I(),`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}}),on=P(class extends bt{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=me(`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 Ft(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 pe;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 It(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 Lt(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Bt(e)?Vt(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 sn(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 cn(){let e=F.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 ln=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`]]),un=new Map(ln.entries().map(([e,t])=>[t,e])),dn=r({"[string]":{keys:`string[]`,mode:r(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var fn=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:Zt([`keybinds.json`]),schema:dn,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=ln.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=ln.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=>un.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=>un.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 pn(e){let t=new fn(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(),he.on(`quit`,()=>{t.destroy()}),r}function X(){return W.getInstance().getInterface(`OGG_SIEGE`)}function mn(){let e=q.getInstance(),t=F.getInstance(),n=G.getInstance();n.meta=hn(),e.on([`gameReady`,`gameClose`],()=>{n.meta||=hn(),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 hn(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:en(),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 gn(){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=lt.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const _n=P(class extends bt{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 vn(){return{scope:e=>_n.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 yn(){return{track:(e,t)=>{G.getInstance().track(`custom__${String(e)}`,t)}}}var bn=ve(((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 xn(){return{registerWindow:e=>{(0,bn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function Sn(e){let t=Je(global.OVERLAYED.APPLICATION_ID),n=Qe(t,{recursive:!0}),r=Ke(),i=Qe(r,{recursive:!0});L.getInstance().info(`Logs path: `,t),L.getInstance().info(`Overlayed logs path: `,r);let a=new pe;return[...n,...i].forEach(([e,t])=>{L.getInstance().info(`Zipping: `,t);let n=oe(t),r=ee(t);a.file(r,n,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{L.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function Cn(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 wn(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 Cn(e,await Sn(t).generateAsync({type:`base64`}))}}}const Tn=1e3;function En(e,t,n,i,a){let o=lt.getInstance(),s=L.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>=Tn){F.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${r.length}, max: ${Tn}`});return}r.push(e)}}function l(n){s.info(n);let i=Qt(n);if(i instanceof r.errors){G.getInstance().track(`invalid_game_event`,{}),F.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=vt.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}),F.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&&(L.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),F.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o}let Z=!1,Dn={},Q,On=new N,$;function kn(e){jn(e);let t=An(e),{init:n=!0,debug:r=!1,silent:i=!0}=t;if(Mn(e),L.getInstance().init(e.applicationId,r,i),Z)return Q;function a(){if(Z){L.getInstance().warn(`Overlayed already initialized`);return}mn();let e=new Map,n=new Map,r=sn(t.modules,e,On),i=cn(),o=pn(t.keybinds),s=gn(),c=vn(),l=xn(),u=yn(),d=wn(t);L.getInstance().log(`Overlayed initialized`),Nn(t),En(t,e,n,On,Dn),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 An(e){return{...e,modules:[...e.modules,yt()]}}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function jn(e){if(!ye(e.applicationId))throw Error(`Invalid applicationId, must be a valid ULID.`)}function Mn(e){global.OVERLAYED={APPLICATION_ID:Ot(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.31.4`,FRONTEND_VERSION:`0.0.0`,sessionId:tn(),electron:e.electron}}function Nn(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);q.getInstance().setSubscribedGames(t),on.getInstance().init(),q.getInstance().init(),U.getInstance().init(),H.getInstance().init();async function n(){let e=kt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=en();L.getInstance().log(`userId`,t);let n={...await e,userId:t};return L.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{nn()}catch{}},3e4),$.unref()}catch(e){L.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):L.getInstance().warn(`Failed to collect CPU info`);let n=await _e.graphics();L.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):L.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):L.getInstance().warn(`Failed to find main display`),e.ram=process.getSystemMemoryInfo().total;let a=g.homedir(),o=await ge.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):L.getInstance().warn(`Failed to collect disk info`),L.getInstance().log(`Retrieved system information`,e),e}he.on(`ready`,()=>{i().then(e=>{G.getInstance().track(`system_info`,e)}).catch(e=>{L.getInstance().log(`Failed to retrieve system information`,e)})}),he.on(`quit`,()=>{G.getInstance().track(`electron_quit`,{}),Pn()}),process.on(`exit`,()=>{G.getInstance().track(`exit`,{}),Pn()})}async function Pn(){try{nn()}catch{}try{$&&clearInterval($),$=void 0}catch{}await G.getInstance().flush(),H.getInstance().destroy(),q.getInstance().destroy(),on.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),lt.getInstance().destroy(),F.getInstance().destroy()}export{ut as RenderInterface,ft as VirtualKey,tt as defineConfig,kn as overlayed,Ut as setFetchLatestTokenCallback,wt as setUpdaterTokenResolver};
5
+ `);return a!==-1&&(t=Ne(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);const Ve=O();O({level:Fe?Fe.level:0});var M=Ve,N=class{emitter;constructor(){this.emitter=i()}on(e,t){v(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){v(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){v(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},He=class{listeners;constructor(){this.listeners=new Map}on(e,t){v(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){v(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=v(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 P(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 F=P(class extends N{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){F.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 N{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(`info`,...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 I=()=>m.join(process.env.APPDATA??``,`overlayed`),Ke=()=>m.join(I(),`logs`),qe=e=>m.join(I(),`apps`,e),Je=e=>m.join(qe(e),`logs`),Ye=()=>m.join(I(),`meta.json`);var Xe=class{fileLogger;path;appId;messageQueue=new be;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:M.red,warn:M.yellow,debug:M.blue,log:M.white};if(this.silent&&!this._debug)return;let{timestamp:r,message:i}=Ge.getMessageElements(e,...t),a=console[e],o=n[e];a(`${M.gray(r)} ${o(i)}`)}};const L=P(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 nt(e),e}function nt(e){if(!ye(e.applicationId))throw Error(`Invalid applicationId, must be a valid ULID.`)}const{PipeEventServer:rt,PipeEventClient:it,PipeEventBase:at,ProcessMonitor:ot,Process:st,HardwareInterface:ct}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),lt=P(class extends N{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 rt(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:ut,renderHookPath:dt}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);let ft=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'`}),pt=R.and({type:`'logged_in'`,content:{account_id:`string`}}),mt=R.and({type:`'module_loaded'`,content:{game_version:`string`,process_hash:`string`}}),ht=R.and({type:`'module_unloaded'`}),gt=R.and({type:`'unsupported_game_version'`,content:{game_version:`string`,process_hash:`string`}}),_t=n({"#event1":`logged_in | module_loaded | module_unloaded | unsupported_game_version`,event:`event1`,logged_in:pt,module_loaded:mt,module_unloaded:ht,unsupported_game_version:gt}).export(),vt=Object.keys(_t).filter(e=>e!==`event`);function yt(){return{key:`universal`,events:_t}}var bt=class{logger;initialized=!1;constructor(e){this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},z=class extends N{logger;initialized=!1;constructor(e){super(),this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},xt=class extends He{logger;initialized=!1;constructor(e){super(),this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const St=fe.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let Ct;function wt(e){Ct=e}St.interceptors.request.use(e=>{let t=Ct?.();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 Tt(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 Et(e){return e}function Dt(e){return e?t=>(e(t),t):Et}const Ot=Dt();function kt(e){return B.get(`/v1/public/applications/${e}`)}function At(e,t,n){return St.get(`/v1/native/${Mt(e)}/version.txt`,{params:{channel:t},responseType:`text`,headers:{"X-App-Version":Nt(n,t)}})}function jt(e,t,n){return St.get(`/v1/native/${Mt(e)}/files`,{params:{channel:t},responseType:`arraybuffer`,headers:{"X-App-Version":Nt(n,t)}})}function Mt(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function Nt(e,t){return`desktop-application/${e} (channel=${t})`}function Pt(){return B.get(`/v1/public/raven/config`)}function Ft(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function It(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Lt(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 Rt(e){let t=Date.now(),n=Tt(e.messages.map(e=>zt(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 zt(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 Bt(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Vt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Ht;function Ut(e){Ht=e}const V=P(class extends z{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=m.join(I(),`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 Ht?.();for(let n of e)try{let{data:e}=await At(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 jt(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 pe;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=P(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 Pt()).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:Wt,PipeEventClient:Gt,PipeEventBase:Kt,ProcessMonitor:qt,Process:Jt,HardwareInterface:Yt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),U=P(class extends z{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new qt}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.isProcessRegistered(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 Xt=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=P(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new Xt(new ut(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),G=P(class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new be,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{Rt({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}});function Zt(e=[]){return m.normalize(m.join(qe(global.OVERLAYED.APPLICATION_ID),...e))}const Qt=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 $t(){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 en(){let e=K.get().userId;if(e)return e;let t=rn();return K.set({...K.get(),userId:t}),t}function tn(){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 nn(){try{let e=K.get();K.set({...e,sessionLastUsed:Date.now()})}catch(e){L.getInstance().log(`Failed to update sessionLastUsed`,e)}}function rn(){try{return Yt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}const an=e(import.meta.url).resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),q=P(class extends xt{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=v(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=Jt.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){F.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(an),a=$t();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(I(),`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}}),on=P(class extends bt{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=me(`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 Ft(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 pe;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 It(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 Lt(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Bt(e)?Vt(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 sn(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 cn(){let e=F.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 ln=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`]]),un=new Map(ln.entries().map(([e,t])=>[t,e])),dn=r({"[string]":{keys:`string[]`,mode:r(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var fn=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:Zt([`keybinds.json`]),schema:dn,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=ln.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=ln.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=>un.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=>un.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 pn(e){let t=new fn(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(),he.on(`quit`,()=>{t.destroy()}),r}function X(){return W.getInstance().getInterface(`OGG_SIEGE`)}function mn(){let e=q.getInstance(),t=F.getInstance(),n=G.getInstance();n.meta=hn(),e.on([`gameReady`,`gameClose`],()=>{n.meta||=hn(),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 hn(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:en(),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 gn(){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=lt.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const _n=P(class extends bt{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 vn(){return{scope:e=>_n.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 yn(){return{track:(e,t)=>{G.getInstance().track(`custom__${String(e)}`,t)}}}var bn=ve(((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 xn(){return{registerWindow:e=>{(0,bn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function Sn(e){let t=Je(global.OVERLAYED.APPLICATION_ID),n=Qe(t,{recursive:!0}),r=Ke(),i=Qe(r,{recursive:!0});L.getInstance().info(`Logs path: `,t),L.getInstance().info(`Overlayed logs path: `,r);let a=new pe;return[...n,...i].forEach(([e,t])=>{L.getInstance().info(`Zipping: `,t);let n=oe(t),r=ee(t);a.file(r,n,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{L.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function Cn(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 wn(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 Cn(e,await Sn(t).generateAsync({type:`base64`}))}}}const Tn=1e3;function En(e,t,n,i,a){let o=lt.getInstance(),s=L.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>=Tn){F.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${r.length}, max: ${Tn}`});return}r.push(e)}}function l(n){s.info(n);let i=Qt(n);if(i instanceof r.errors){G.getInstance().track(`invalid_game_event`,{}),F.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=vt.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}),F.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&&(L.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),F.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o}let Z=!1,Dn={},Q,On=new N,$;function kn(e){jn(e);let t=An(e),{init:n=!0,debug:r=!1,silent:i=!0}=t;if(Mn(e),L.getInstance().init(e.applicationId,r,i),Z)return Q;function a(){if(Z){L.getInstance().warn(`Overlayed already initialized`);return}mn();let e=new Map,n=new Map,r=sn(t.modules,e,On),i=cn(),o=pn(t.keybinds),s=gn(),c=vn(),l=xn(),u=yn(),d=wn(t);L.getInstance().log(`Overlayed initialized`),Nn(t),En(t,e,n,On,Dn),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 An(e){return{...e,modules:[...e.modules,yt()]}}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function jn(e){if(!ye(e.applicationId))throw Error(`Invalid applicationId, must be a valid ULID.`)}function Mn(e){global.OVERLAYED={APPLICATION_ID:Ot(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.31.5`,FRONTEND_VERSION:`0.0.0`,sessionId:tn(),electron:e.electron}}function Nn(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);q.getInstance().setSubscribedGames(t),on.getInstance().init(),q.getInstance().init(),U.getInstance().init(),H.getInstance().init();async function n(){let e=kt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=en();L.getInstance().log(`userId`,t);let n={...await e,userId:t};return L.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{nn()}catch{}},3e4),$.unref()}catch(e){L.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):L.getInstance().warn(`Failed to collect CPU info`);let n=await _e.graphics();L.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):L.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):L.getInstance().warn(`Failed to find main display`),e.ram=process.getSystemMemoryInfo().total;let a=g.homedir(),o=await ge.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):L.getInstance().warn(`Failed to collect disk info`),L.getInstance().log(`Retrieved system information`,e),e}he.on(`ready`,()=>{i().then(e=>{G.getInstance().track(`system_info`,e)}).catch(e=>{L.getInstance().log(`Failed to retrieve system information`,e)})}),he.on(`quit`,()=>{G.getInstance().track(`electron_quit`,{}),Pn()}),process.on(`exit`,()=>{G.getInstance().track(`exit`,{}),Pn()})}async function Pn(){try{nn()}catch{}try{$&&clearInterval($),$=void 0}catch{}await G.getInstance().flush(),H.getInstance().destroy(),q.getInstance().destroy(),on.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),lt.getInstance().destroy(),F.getInstance().destroy()}export{ut as RenderInterface,ft as VirtualKey,tt as defineConfig,kn as overlayed,Ut as setFetchLatestTokenCallback,wt as setUpdaterTokenResolver};
@@ -1,8 +1,13 @@
1
1
  /// <reference types="node" />
2
- import { createRequire } from "node:module";
3
-
4
- //#region dist/index.js
5
-
2
+ //#region index.d.ts
3
+ declare const enum AccessLevel {
4
+ Default = 0,
5
+ Global = 1,
6
+ Admin = 2,
7
+ }
8
+ declare const enum InjectionMethod {
9
+ windowsHook = 0,
10
+ }
6
11
  //#endregion
7
12
  //#region types.d.ts
8
13
  declare class Process {
@@ -127,4 +132,4 @@ declare class HardwareInterface {
127
132
  }
128
133
  //#endregion
129
134
  export { HardwareInterface, PipeEventBase, PipeEventClient, PipeEventServer, Process, ProcessMonitor };
130
- //# sourceMappingURL=types.d.ts.map
135
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":["AccessLevel","InjectionMethod","Process","Promise","Date","ProcessMonitor","Function","PipeEventBase","PipeEventServer","PipeEventClient","HardwareInterface"],"sources":["../index.ts","../types.d.ts"],"sourcesContent":["/// <reference types=\"node\" />\n\nimport type { AccessLevel, InjectionMethod } from \".\";\n\nexport class Process {\n\tconstructor(id: number);\n\n\tinjectDll(\n\t\tpath: string,\n\t\toptions?: {\n\t\t\tmethod?: InjectionMethod;\n\t\t\tmaxAttemptCount?: number;\n\t\t\tattemptRate?: number;\n\t\t\twindowPollRate?: number;\n\t\t\twindowWaitTimeout?: number;\n\t\t\tprocessHandlePollRate?: number;\n\t\t\tprocessHandleTimeout?: number;\n\t\t\tnotifyWaitTimeout?: number;\n\t\t},\n\t): Promise<void>; // defaults: { method: InjectionMethod.windowsHook, maxAttemptCount: 10, attemptRate: 500, windowPollRate: 100, windowWaitTimeout: 4294967295, processHandlePollRate: 1000, processHandleTimeout: 4294967295, notifyWaitTimeout: 3000 }, all times are declared in miliseconds\n\n\treadonly id: number;\n\treadonly name?: string;\n\treadonly path?: string;\n\n\treadonly createdAt?: Date;\n\treadonly destroyedAt?: Date;\n\n\treadonly exitCode?: number;\n\n\treadonly isElevated?: boolean;\n\n\tstatic readonly currentProcess: Process;\n}\n\nexport class ProcessMonitor {\n\tconstructor(options?: { pollRate?: number }); // default: { pollRate: 1000 }; pollRate - integer in miliseconds\n\n\twipeProcesses(): void;\n\n\tisProcessRegistered(name: string): boolean;\n\tregisterProcess(name: string): void;\n\tunRegisterProcess(name: string): void;\n\n\teventNames(): string[];\n\tgetMaxListeners(): number;\n\tremoveAllListeners(): this;\n\n\tlisteners(eventName: \"create\"): Function[];\n\trawListeners(eventName: \"create\"): Function[];\n\tlistenerCount(eventName: \"create\", listener?: (process: Process) => void): number;\n\n\ton(eventName: \"create\", listener: (process: Process) => void): this;\n\tonce(eventName: \"create\", listener: (process: Process) => void): this;\n\taddListener(eventName: \"create\", listener: (process: Process) => void): this;\n\tprependListener(eventName: \"create\", listener: (process: Process) => void): this;\n\tprependOnceListener(eventName: \"create\", listener: (process: Process) => void): this;\n\n\toff(eventName: \"create\", listener: (process: Process) => void): this;\n\tremoveListener(eventName: \"create\", listener: (process: Process) => void): this;\n\tremoveAllListeners(eventName: \"create\"): this;\n\n\tlisteners(eventName: \"destroy\"): Function[];\n\trawListeners(eventName: \"destroy\"): Function[];\n\tlistenerCount(eventName: \"destroy\", listener?: (process: Process) => void): number;\n\n\ton(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tonce(eventName: \"destroy\", listener: (process: Process) => void): this;\n\taddListener(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tprependListener(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tprependOnceListener(eventName: \"destroy\", listener: (process: Process) => void): this;\n\n\toff(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tremoveListener(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tremoveAllListeners(eventName: \"destroy\"): this;\n}\n\nexport class PipeEventBase {\n\tisConnected(): boolean;\n\n\tdispatch(event: string): void;\n\n\teventNames(): string[];\n\tgetMaxListeners(): number;\n\tremoveAllListeners(): this;\n\n\tlisteners(eventName: \"event\"): Function[];\n\trawListeners(eventName: \"event\"): Function[];\n\tlistenerCount(eventName: \"event\", listener?: (event: string) => void): number;\n\n\ton(eventName: \"event\", listener: (event: string) => void): this;\n\tonce(eventName: \"event\", listener: (event: string) => void): this;\n\taddListener(eventName: \"event\", listener: (event: string) => void): this;\n\tprependListener(eventName: \"event\", listener: (event: string) => void): this;\n\tprependOnceListener(eventName: \"event\", listener: (event: string) => void): this;\n\n\toff(eventName: \"event\", listener: (event: string) => void): this;\n\tremoveListener(eventName: \"event\", listener: (event: string) => void): this;\n\tremoveAllListeners(eventName: \"event\"): this;\n\n\tlisteners(eventName: \"connected\"): Function[];\n\trawListeners(eventName: \"connected\"): Function[];\n\tlistenerCount(eventName: \"connected\", listener?: () => void): number;\n\n\ton(eventName: \"connected\", listener: () => void): this;\n\tonce(eventName: \"connected\", listener: () => void): this;\n\taddListener(eventName: \"connected\", listener: () => void): this;\n\tprependListener(eventName: \"connected\", listener: () => void): this;\n\tprependOnceListener(eventName: \"connected\", listener: () => void): this;\n\n\toff(eventName: \"connected\", listener: () => void): this;\n\tremoveListener(eventName: \"connected\", listener: () => void): this;\n\tremoveAllListeners(eventName: \"connected\"): this;\n\n\tlisteners(eventName: \"disconnected\"): Function[];\n\trawListeners(eventName: \"disconnected\"): Function[];\n\tlistenerCount(eventName: \"disconnected\", listener?: () => void): number;\n\n\ton(eventName: \"disconnected\", listener: () => void): this;\n\tonce(eventName: \"disconnected\", listener: () => void): this;\n\taddListener(eventName: \"disconnected\", listener: () => void): this;\n\tprependListener(eventName: \"disconnected\", listener: () => void): this;\n\tprependOnceListener(eventName: \"disconnected\", listener: () => void): this;\n\n\toff(eventName: \"disconnected\", listener: () => void): this;\n\tremoveListener(eventName: \"disconnected\", listener: () => void): this;\n\tremoveAllListeners(eventName: \"disconnected\"): this;\n\n\tlisteners(eventName: \"error\"): Function[];\n\trawListeners(eventName: \"error\"): Function[];\n\tlistenerCount(eventName: \"error\", listener?: () => void): number;\n\n\ton(eventName: \"error\", listener: () => void): this;\n\tonce(eventName: \"error\", listener: () => void): this;\n\taddListener(eventName: \"error\", listener: () => void): this;\n\tprependListener(eventName: \"error\", listener: () => void): this;\n\tprependOnceListener(eventName: \"error\", listener: () => void): this;\n\n\toff(eventName: \"error\", listener: () => void): this;\n\tremoveListener(eventName: \"error\", listener: () => void): this;\n\tremoveAllListeners(eventName: \"error\"): this;\n}\n\nexport class PipeEventServer extends PipeEventBase {\n\tconstructor(name: string, options?: { clientCount?: number; access?: AccessLevel }); // default: { clientCount: 1, access: AccessLevel.Default };\n}\n\nexport class PipeEventClient extends PipeEventBase {\n\tconstructor(name: string, options?: {}); // default: {};\n}\n\nexport class HardwareInterface {\n\tstatic generateUniqueIdentifier(): string; // results in a uuid version 4\n}\n"],"mappings":";;AAYkB,mBAAA,WAAA;EAMA,OAAA,GAAA,CAAA;;;;ACdLE,mBDcK,eAAA;ECRND,WAAAA,GAAAA,CAAAA;;;;cANCC,OAAAA;;EAMDD,SAAAA,CASRE,IAAAA,EAAAA,MAAAA,EAMkBC,OA4ByBF,CA5BzBE,EAAAA;IACEA,MAAAA,CAAAA,EAhBZH,eAgBYG;IAMSF,eAAAA,CAAAA,EAAAA,MAAAA;IAAO,WAAA,CAAA,EAAA,MAAA;IAGxC,cAAaG,CAAAA,EAAAA,MAAc;IAaMC,iBAAAA,CAAAA,EAAAA,MAAAA;IACGA,qBAAAA,CAAAA,EAAAA,MAAAA;IACqBJ,oBAAAA,CAAAA,EAAAA,MAAAA;IAEZA,iBAAAA,CAAAA,EAAAA,MAAAA;EACEA,CAAAA,CACOA,EAnClDC,OAmCkDD,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;;EAEQA,SAAAA,EAAAA,EAAAA,MAAAA;EAEhBA,SAAAA,IAAAA,CAAAA,EAAAA,MAAAA;EACWA,SAAAA,IAAAA,CAAAA,EAAAA,MAAAA;EAIpBI,SAAAA,SAAAA,CAAAA,EAtCfF,IAsCeE;EACqBJ,SAAAA,WAAAA,CAAAA,EAtClCE,IAsCkCF;EAGVA,SAAAA,QAAAA,CAAAA,EAAAA,MAAAA;EAEWA,SAAAA,UAAAA,CAAAA,EAAAA,OAAAA;EAGZA,gBAAAA,cAAAA,EAxCdA,OAwCcA;;AAKlCK,cA1CAF,cAAAA,CA0Ca;EASMC,WAAAA,CAAAA,OAAAA,CAAAA,EAAAA;IAAAA,QAAAA,CAAAA,EAAAA,MAAAA;EAAAA,CAAAA,EAAAA,CAAAA;;EAcIA,aAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAcGA,mBAAAA,CAAAA,IAAAA,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA;EACGA,eAAAA,CAAAA,IAAAA,EAAAA,MAAAA,CAAAA,EAAAA,IAAAA;EAaVA,iBAAAA,CAAAA,IAAAA,EAAAA,MAAAA,CAAAA,EAAAA,IAAAA;EACW,UAAA,CAAA,CAAA,EAAA,MAAA,EAAA;EAc3C,eAAaE,CAAAA,CAAAA,EAAAA,MAAe;EAI5B,kBAAaC,CAAAA,CAAAA,EAAe,IAAA;kCAnGKH;qCACGA;0DACqBJ;8CAEZA;gDACEA;uDACOA;2DACIA;+DACIA;+CAEhBA;0DACWA;;mCAGvBI;sCACGA;2DACqBJ;+CAEZA;iDACEA;wDACOA;4DACIA;gEACIA;gDAEhBA;2DACWA;;;cAI7CK,aAAAA;;;;;;iCASmBD;oCACGA;;;;;;;;;;qCAaCA;wCACGA;;;;;;;;;;wCAaAA;2CACGA;;;;;;;;;;iCAaVA;oCACGA;;;;;;;;;;;cActBE,eAAAA,SAAwBD,aAAAA;;;aACiCP;;;cAGzDS,eAAAA,SAAwBF,aAAAA;;;cAIxBG,iBAAAA"}
@@ -1,8 +1,7 @@
1
1
  import { createRequire } from "node:module";
2
2
 
3
3
  //#region index.ts
4
- const customRequire = createRequire(import.meta.url);
5
- const { RenderInterface, renderHookPath } = customRequire("@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node");
4
+ const { RenderInterface, renderHookPath } = createRequire(import.meta.url)("@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node");
6
5
  let VirtualKey = /* @__PURE__ */ function(VirtualKey$1) {
7
6
  VirtualKey$1[VirtualKey$1["LeftButton"] = 1] = "LeftButton";
8
7
  VirtualKey$1[VirtualKey$1["RightButton"] = 2] = "RightButton";
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="electron" />
3
3
  //#region index.d.ts
4
+
4
5
  declare enum VirtualKey {
5
6
  LeftButton = 1,
6
7
  RightButton = 2,
@@ -328,4 +329,4 @@ declare class RenderInterface {
328
329
  declare const renderHookPath: string;
329
330
  //#endregion
330
331
  export { AccessLevel, KeyboardKeyEvent, MouseButtonEvent, RenderInterface, RenderWindow, RenderWindowConstructorOptions, VirtualKey, WindowEvent, renderHookPath };
331
- //# sourceMappingURL=types.d.ts.map
332
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":["VirtualKey","AccessLevel","RenderWindow","Electron","BrowserWindow","WindowEvent","MouseButtonEvent","KeyboardKeyEvent","RenderWindowConstructorOptions","BrowserWindowConstructorOptions","RenderInterface","Function","renderHookPath"],"sources":["../index.ts","../types.d.ts"],"sourcesContent":["/// <reference types=\"node\" />\n/// <reference types=\"electron\" />\n\nimport { VirtualKey, AccessLevel } from \"./index\";\n\nexport { VirtualKey, AccessLevel };\n\nexport interface RenderWindow extends Electron.BrowserWindow {\n\tgetLayer(): number;\n\tgetInput(): boolean;\n\tgetInputBlock(): boolean;\n\tgetCursorOverride(): boolean;\n\n\tsetLayer(layer: number): void;\n\tsetInput(input: boolean): void;\n\tsetInputBlock(block: boolean): void;\n\tsetCursorOverride(override: boolean): void;\n}\n\nexport interface WindowEvent {\n\twindow?: RenderWindow;\n}\n\nexport interface MouseButtonEvent extends WindowEvent {\n\tx: number;\n\ty: number;\n\n\tglobalX: number;\n\tglobalY: number;\n\n\tkey: VirtualKey;\n}\n\nexport interface KeyboardKeyEvent extends WindowEvent {\n\tkey: VirtualKey;\n}\n\nexport interface RenderWindowConstructorOptions extends Electron.BrowserWindowConstructorOptions {\n\tlayer?: number; // default: 0\n\n\tcreateForeground?: boolean; // default: true\n\n\thasInput?: boolean; // default: true\n\thasInputBlock?: boolean; // default: true\n\thasCursorOverride?: boolean; // default: true\n}\n\nexport class RenderInterface {\n\tconstructor(name: string, options?: { maxWindowCount?: number; eventQueueSize?: number; access?: AccessLevel }); // default: { maxWindowCount: 10, eventQueueSize: 200, access: AccessLevel.Default }\n\n\tnewWindowInternal(browserWindow: Electron.BrowserWindow, options?: RenderWindowConstructorOptions): RenderWindow;\n\n\tgetGlobalMouseBlock(): boolean;\n\tgetGlobalKeyboardBlock(): boolean;\n\tgetGlobalCursorOverride(): boolean;\n\tgetKeyInputBlock(key: VirtualKey): boolean;\n\n\tsetGlobalMouseBlock(block: boolean): void;\n\tsetGlobalKeyboardBlock(block: boolean): void;\n\tsetGlobalCursorOverride(show: boolean): void;\n\tsetKeyInputBlock(key: VirtualKey, block: boolean): void;\n\n\teventNames(): string[];\n\tgetMaxListeners(): number;\n\tremoveAllListeners(): this;\n\n\tlisteners(eventName: \"keyDown\"): Function[];\n\trawListeners(eventName: \"keyDown\"): Function[];\n\tlistenerCount(eventName: \"keyDown\", listener?: (event: KeyboardKeyEvent) => void): number;\n\n\ton(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tonce(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\taddListener(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tprependListener(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tprependOnceListener(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\n\toff(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tremoveListener(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tremoveAllListeners(eventName: \"keyDown\"): this;\n\n\tlisteners(eventName: \"keyUp\"): Function[];\n\trawListeners(eventName: \"keyUp\"): Function[];\n\tlistenerCount(eventName: \"keyUp\", listener?: (event: KeyboardKeyEvent) => void): number;\n\n\ton(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tonce(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\taddListener(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tprependListener(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tprependOnceListener(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\n\toff(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tremoveListener(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tremoveAllListeners(eventName: \"keyUp\"): this;\n\n\tlisteners(eventName: \"mouseDown\"): Function[];\n\trawListeners(eventName: \"mouseDown\"): Function[];\n\tlistenerCount(eventName: \"mouseDown\", listener?: (event: MouseButtonEvent) => void): number;\n\n\ton(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tonce(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\taddListener(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tprependListener(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tprependOnceListener(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\n\toff(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tremoveListener(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tremoveAllListeners(eventName: \"mouseDown\"): this;\n\n\tlisteners(eventName: \"mouseUp\"): Function[];\n\trawListeners(eventName: \"mouseUp\"): Function[];\n\tlistenerCount(eventName: \"mouseUp\", listener?: (event: MouseButtonEvent) => void): number;\n\n\ton(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tonce(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\taddListener(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tprependListener(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tprependOnceListener(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\n\toff(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tremoveListener(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tremoveAllListeners(eventName: \"mouseUp\"): this;\n\n\tlisteners(eventName: \"resolution\"): Function[];\n\trawListeners(eventName: \"resolution\"): Function[];\n\tlistenerCount(eventName: \"resolution\", listener?: (width: number, height: number) => void): number;\n\n\ton(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tonce(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\taddListener(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tprependListener(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tprependOnceListener(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\n\toff(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tremoveListener(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tremoveAllListeners(eventName: \"resolution\"): this;\n\n\tlisteners(eventName: \"keyboardFocus\"): Function[];\n\trawListeners(eventName: \"keyboardFocus\"): Function[];\n\tlistenerCount(eventName: \"keyboardFocus\", listener?: (focus: boolean) => void): number;\n\n\ton(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tonce(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\taddListener(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tprependListener(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tprependOnceListener(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\n\toff(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tremoveListener(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tremoveAllListeners(eventName: \"keyboardFocus\"): this;\n}\n\nexport const renderHookPath: string;\n"],"mappings":"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"}
package/dist/siege.d.ts CHANGED
@@ -118,6 +118,9 @@ declare const SiegeSideSchema: arktype_internal_variants_string_ts0.StringType<S
118
118
  declare const SIEGE_PLAYER_LIFE_STATES: readonly ["normal", "overhealed", "low_health", "downed", "dead", "respawning"];
119
119
  type SiegePlayerLifeState = (typeof SIEGE_PLAYER_LIFE_STATES)[number] | (string & {});
120
120
  declare const SiegePlayerLifeStateSchema: arktype_internal_variants_string_ts0.StringType<SiegePlayerLifeState, {}>;
121
+ declare const SIEGE_PROFILE_PLATFORMS: readonly ["pc", "xbox", "playstation", "invalid"];
122
+ type SiegeProfilePlatform = (typeof SIEGE_PROFILE_PLATFORMS)[number] | (string & {});
123
+ declare const SiegeProfilePlatformSchema: arktype_internal_variants_string_ts0.StringType<SiegeProfilePlatform, {}>;
121
124
  declare const SIEGE_DAMAGE_TYPES: readonly ["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"];
122
125
  type SiegeDamageType = (typeof SIEGE_DAMAGE_TYPES)[number] | (string & {});
123
126
  declare const SiegeDamageTypeSchema: arktype_internal_variants_string_ts0.StringType<SiegeDamageType, {}>;
@@ -785,15 +788,16 @@ declare function module(): {
785
788
  creation_time: number;
786
789
  content: {
787
790
  player_id: SiegePlayerId;
791
+ username: string;
792
+ pc_username: string | null;
788
793
  profile_id: SiegeProfileId;
789
794
  is_bot: boolean;
790
795
  is_enemy: boolean;
791
796
  is_squad_member: boolean;
792
797
  is_local_player: boolean;
793
- username: string;
794
798
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
795
799
  team: 0 | 1;
796
- platform: string;
800
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
797
801
  is_privacy_username: boolean;
798
802
  has_avatar_hidden: boolean;
799
803
  has_commend_streak: boolean;
@@ -812,15 +816,16 @@ declare function module(): {
812
816
  content: {
813
817
  starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
814
818
  player_id: SiegePlayerId;
819
+ username: string;
820
+ pc_username: string | null;
815
821
  profile_id: SiegeProfileId;
816
822
  is_bot: boolean;
817
823
  is_enemy: boolean;
818
824
  is_squad_member: boolean;
819
825
  is_local_player: boolean;
820
- username: string;
821
826
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
822
827
  team: 0 | 1;
823
- platform: string;
828
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
824
829
  is_privacy_username: boolean;
825
830
  has_avatar_hidden: boolean;
826
831
  has_commend_streak: boolean;
@@ -1163,15 +1168,16 @@ declare function module(): {
1163
1168
  creation_time: number;
1164
1169
  content: {
1165
1170
  player_id: SiegePlayerId;
1171
+ username: string;
1172
+ pc_username: string | null;
1166
1173
  profile_id: SiegeProfileId;
1167
1174
  is_bot: boolean;
1168
1175
  is_enemy: boolean;
1169
1176
  is_squad_member: boolean;
1170
1177
  is_local_player: boolean;
1171
- username: string;
1172
1178
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1173
1179
  team: 0 | 1;
1174
- platform: string;
1180
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
1175
1181
  is_privacy_username: boolean;
1176
1182
  has_avatar_hidden: boolean;
1177
1183
  has_commend_streak: boolean;
@@ -1190,15 +1196,16 @@ declare function module(): {
1190
1196
  content: {
1191
1197
  starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1192
1198
  player_id: SiegePlayerId;
1199
+ username: string;
1200
+ pc_username: string | null;
1193
1201
  profile_id: SiegeProfileId;
1194
1202
  is_bot: boolean;
1195
1203
  is_enemy: boolean;
1196
1204
  is_squad_member: boolean;
1197
1205
  is_local_player: boolean;
1198
- username: string;
1199
1206
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1200
1207
  team: 0 | 1;
1201
- platform: string;
1208
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
1202
1209
  is_privacy_username: boolean;
1203
1210
  has_avatar_hidden: boolean;
1204
1211
  has_commend_streak: boolean;
@@ -1724,15 +1731,16 @@ declare const PlayerJoined: arktype_internal_variants_object_ts0.ObjectType<(In:
1724
1731
  creation_time: number;
1725
1732
  content: {
1726
1733
  player_id: SiegePlayerId;
1734
+ username: string;
1735
+ pc_username: string | null;
1727
1736
  profile_id: SiegeProfileId;
1728
1737
  is_bot: boolean;
1729
1738
  is_enemy: boolean;
1730
1739
  is_squad_member: boolean;
1731
1740
  is_local_player: boolean;
1732
- username: string;
1733
1741
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1734
1742
  team: 0 | 1;
1735
- platform: string;
1743
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
1736
1744
  is_privacy_username: boolean;
1737
1745
  has_avatar_hidden: boolean;
1738
1746
  has_commend_streak: boolean;
@@ -1751,15 +1759,16 @@ declare const PlayerJoined: arktype_internal_variants_object_ts0.ObjectType<(In:
1751
1759
  content: {
1752
1760
  starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1753
1761
  player_id: SiegePlayerId;
1762
+ username: string;
1763
+ pc_username: string | null;
1754
1764
  profile_id: SiegeProfileId;
1755
1765
  is_bot: boolean;
1756
1766
  is_enemy: boolean;
1757
1767
  is_squad_member: boolean;
1758
1768
  is_local_player: boolean;
1759
- username: string;
1760
1769
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1761
1770
  team: 0 | 1;
1762
- platform: string;
1771
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
1763
1772
  is_privacy_username: boolean;
1764
1773
  has_avatar_hidden: boolean;
1765
1774
  has_commend_streak: boolean;
@@ -2172,15 +2181,16 @@ declare const siegeEvents: arktype2.Module<{
2172
2181
  creation_time: number;
2173
2182
  content: {
2174
2183
  player_id: SiegePlayerId;
2184
+ username: string;
2185
+ pc_username: string | null;
2175
2186
  profile_id: SiegeProfileId;
2176
2187
  is_bot: boolean;
2177
2188
  is_enemy: boolean;
2178
2189
  is_squad_member: boolean;
2179
2190
  is_local_player: boolean;
2180
- username: string;
2181
2191
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2182
2192
  team: 0 | 1;
2183
- platform: string;
2193
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
2184
2194
  is_privacy_username: boolean;
2185
2195
  has_avatar_hidden: boolean;
2186
2196
  has_commend_streak: boolean;
@@ -2199,15 +2209,16 @@ declare const siegeEvents: arktype2.Module<{
2199
2209
  content: {
2200
2210
  starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2201
2211
  player_id: SiegePlayerId;
2212
+ username: string;
2213
+ pc_username: string | null;
2202
2214
  profile_id: SiegeProfileId;
2203
2215
  is_bot: boolean;
2204
2216
  is_enemy: boolean;
2205
2217
  is_squad_member: boolean;
2206
2218
  is_local_player: boolean;
2207
- username: string;
2208
2219
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2209
2220
  team: 0 | 1;
2210
- platform: string;
2221
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
2211
2222
  is_privacy_username: boolean;
2212
2223
  has_avatar_hidden: boolean;
2213
2224
  has_commend_streak: boolean;
@@ -2550,15 +2561,16 @@ declare const siegeEvents: arktype2.Module<{
2550
2561
  creation_time: number;
2551
2562
  content: {
2552
2563
  player_id: SiegePlayerId;
2564
+ username: string;
2565
+ pc_username: string | null;
2553
2566
  profile_id: SiegeProfileId;
2554
2567
  is_bot: boolean;
2555
2568
  is_enemy: boolean;
2556
2569
  is_squad_member: boolean;
2557
2570
  is_local_player: boolean;
2558
- username: string;
2559
2571
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2560
2572
  team: 0 | 1;
2561
- platform: string;
2573
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
2562
2574
  is_privacy_username: boolean;
2563
2575
  has_avatar_hidden: boolean;
2564
2576
  has_commend_streak: boolean;
@@ -2577,15 +2589,16 @@ declare const siegeEvents: arktype2.Module<{
2577
2589
  content: {
2578
2590
  starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2579
2591
  player_id: SiegePlayerId;
2592
+ username: string;
2593
+ pc_username: string | null;
2580
2594
  profile_id: SiegeProfileId;
2581
2595
  is_bot: boolean;
2582
2596
  is_enemy: boolean;
2583
2597
  is_squad_member: boolean;
2584
2598
  is_local_player: boolean;
2585
- username: string;
2586
2599
  side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2587
2600
  team: 0 | 1;
2588
- platform: string;
2601
+ platform: "invalid" | (string & {}) | "pc" | "xbox" | "playstation";
2589
2602
  is_privacy_username: boolean;
2590
2603
  has_avatar_hidden: boolean;
2591
2604
  has_commend_streak: boolean;
@@ -2780,4 +2793,4 @@ type SiegeEvent = typeof siegeEvents.event.infer;
2780
2793
  type SiegeEventType = SiegeEvent["type"];
2781
2794
  //#endregion
2782
2795
  //#endregion
2783
- export { BaseEvent, type DefuserDroppedEvent, type DefuserPickedUpEvent, type DefuserPlantedEvent, type DefuserSabotagedEvent, type MapChangedEvent, MapData, MapDataSchema, type MatchEndedEvent, MatchRoundData, MatchRoundDataSchema, type MatchStartedEvent, type OperatorBanClearedEvent, type OperatorBanVotingStartedEvent, type OperatorBannedEvent, type PhaseChangedEvent, type PlayerAssistsChangedEvent, PlayerDamageData, PlayerDamageDataSchema, type PlayerDeathsChangedEvent, type PlayerDiedEvent, type PlayerDownedEvent, type PlayerGameModeActionsChangedEvent, type PlayerJoinedEvent, type PlayerKillsChangedEvent, type PlayerLeftEvent, type PlayerLifeStateChangedEvent, type PlayerLocationChangedEvent, PlayerMatchStatsData, PlayerMatchStatsDataSchema, type PlayerOperatorChangedEvent, type PlayerPingIdChangedEvent, type PlayerPingUpdatedEvent, type PlayerScoreChangedEvent, type PlayerSideChangedEvent, type PlayerTeamChangedEvent, RoundEndData, RoundEndDataSchema, RoundEndPlayerData, RoundEndPlayerDataSchema, type RoundEndedEvent, SIEGE_BOT_ID, SIEGE_DAMAGE_HIT_ZONES, SIEGE_DAMAGE_TEAM_TYPES, SIEGE_DAMAGE_TYPES, SIEGE_GAME_MODES_TO_ID, SIEGE_GAME_MODE_LABELS, SIEGE_GAME_MODE_PHASES, SIEGE_GAME_MODE_TYPES_TO_ID, SIEGE_GAME_MODE_TYPE_LABELS, SIEGE_MAP_LABELS, SIEGE_MAP_TO_ID, SIEGE_MATCH_TYPES_TO_ID, SIEGE_MATCH_TYPE_LABELS, SIEGE_OPERATOR_LABELS, SIEGE_OPERATOR_META, SIEGE_OPERATOR_TO_ID, SIEGE_PLAYER_LIFE_STATES, SIEGE_ROUND_STATES_TO_ID, SIEGE_ROUND_STATE_LABELS, SIEGE_SIDES, SIEGE_SIDE_OPERATORS, SIEGE_TEAMS, SIEGE_TIME_OF_DAY_LABELS, SIEGE_TIME_OF_DAY_TO_ID, SiegeDamageHitZone, SiegeDamageHitZoneSchema, SiegeDamageSourceId, SiegeDamageTeamType, SiegeDamageTeamTypeSchema, SiegeDamageType, SiegeDamageTypeSchema, SiegeEvent, SiegeEventType, SiegeGameMode, SiegeGameModePhase, SiegeGameModePhaseSchema, SiegeGameModeTypeNameId, SiegeItemObjectId, SiegeMapNameId, SiegeMatchId, SiegeMatchType, SiegeOperatorMeta, SiegeOperatorMetaFull, SiegeOperatorNameId, SiegePlayerId, SiegePlayerLifeState, SiegePlayerLifeStateSchema, SiegeProfileId, SiegeRoundState, SiegeSide, SiegeSideSchema, SiegeTeam, SiegeTeamSchema, SiegeTimeOfDay, type StartedQueuingEvent, type StoppedQueueingEvent, Translation, TranslationSchema, isSiegeRoundStateCompleted, isSiegeRoundStateVictory, module, siegeEvents };
2796
+ export { BaseEvent, type DefuserDroppedEvent, type DefuserPickedUpEvent, type DefuserPlantedEvent, type DefuserSabotagedEvent, type MapChangedEvent, MapData, MapDataSchema, type MatchEndedEvent, MatchRoundData, MatchRoundDataSchema, type MatchStartedEvent, type OperatorBanClearedEvent, type OperatorBanVotingStartedEvent, type OperatorBannedEvent, type PhaseChangedEvent, type PlayerAssistsChangedEvent, PlayerDamageData, PlayerDamageDataSchema, type PlayerDeathsChangedEvent, type PlayerDiedEvent, type PlayerDownedEvent, type PlayerGameModeActionsChangedEvent, type PlayerJoinedEvent, type PlayerKillsChangedEvent, type PlayerLeftEvent, type PlayerLifeStateChangedEvent, type PlayerLocationChangedEvent, PlayerMatchStatsData, PlayerMatchStatsDataSchema, type PlayerOperatorChangedEvent, type PlayerPingIdChangedEvent, type PlayerPingUpdatedEvent, type PlayerScoreChangedEvent, type PlayerSideChangedEvent, type PlayerTeamChangedEvent, RoundEndData, RoundEndDataSchema, RoundEndPlayerData, RoundEndPlayerDataSchema, type RoundEndedEvent, SIEGE_BOT_ID, SIEGE_DAMAGE_HIT_ZONES, SIEGE_DAMAGE_TEAM_TYPES, SIEGE_DAMAGE_TYPES, SIEGE_GAME_MODES_TO_ID, SIEGE_GAME_MODE_LABELS, SIEGE_GAME_MODE_PHASES, SIEGE_GAME_MODE_TYPES_TO_ID, SIEGE_GAME_MODE_TYPE_LABELS, SIEGE_MAP_LABELS, SIEGE_MAP_TO_ID, SIEGE_MATCH_TYPES_TO_ID, SIEGE_MATCH_TYPE_LABELS, SIEGE_OPERATOR_LABELS, SIEGE_OPERATOR_META, SIEGE_OPERATOR_TO_ID, SIEGE_PLAYER_LIFE_STATES, SIEGE_PROFILE_PLATFORMS, SIEGE_ROUND_STATES_TO_ID, SIEGE_ROUND_STATE_LABELS, SIEGE_SIDES, SIEGE_SIDE_OPERATORS, SIEGE_TEAMS, SIEGE_TIME_OF_DAY_LABELS, SIEGE_TIME_OF_DAY_TO_ID, SiegeDamageHitZone, SiegeDamageHitZoneSchema, SiegeDamageSourceId, SiegeDamageTeamType, SiegeDamageTeamTypeSchema, SiegeDamageType, SiegeDamageTypeSchema, SiegeEvent, SiegeEventType, SiegeGameMode, SiegeGameModePhase, SiegeGameModePhaseSchema, SiegeGameModeTypeNameId, SiegeItemObjectId, SiegeMapNameId, SiegeMatchId, SiegeMatchType, SiegeOperatorMeta, SiegeOperatorMetaFull, SiegeOperatorNameId, SiegePlayerId, SiegePlayerLifeState, SiegePlayerLifeStateSchema, SiegeProfileId, SiegeProfilePlatform, SiegeProfilePlatformSchema, SiegeRoundState, SiegeSide, SiegeSideSchema, SiegeTeam, SiegeTeamSchema, SiegeTimeOfDay, type StartedQueuingEvent, type StoppedQueueingEvent, Translation, TranslationSchema, isSiegeRoundStateCompleted, isSiegeRoundStateVictory, module, siegeEvents };
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,platform:`string`,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};
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(),te=a(),f=a(),p=a(),m=a(),h=a(),g=`00000000-0000-0000-0000-000000000000`,ne=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`,`first`],_=n(`string`),v=[0,1],y=n(`===`,...v),b=[`attacker`,`defender`,`both`,`invalid`],x=n(`string`),S=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],C=n(`string`),w=[`pc`,`xbox`,`playstation`,`invalid`],T=n(`string`),E=`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(`.`),D=n(`string`),re=[`unknown`,`enemy`,`friendly`,`invalid`],O=n(`string`),ie=[`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:p(`QUICK PLAY`),versusAi:p(`VERSUS AI`),standard:p(`STANDARD`),ranked:p(`RANKED`)}),j=Object.freeze({[A.quickPlay]:`Quick Play`,[A.versusAi]:`Versus AI`,[A.standard]:`Standard`,[A.ranked]:`Ranked`}),M=Object.freeze({teamDeathmatch:m(`TEAM DEATHMATCH`),goldenGun:m(`GOLDEN GUN`),freeForAll:m(`FREE FOR ALL`),weaponRoulette:m(`WEAPON ROULETTE`),dualFront:m(`DUAL FRONT`),bomb:m(`BOMB`),versusAi:m(`VERSUS AI`),hostage:m(`HOSTAGE`),threeVsThreeSecureArea:m(`3 VS 3 SECURE AREA`),targetDrill:m(`TARGET DRILL`),rengoku:m(`RENGOKU`),hideAndSeek:m(`HIDE AND SEEK`)}),N=Object.freeze({[M.teamDeathmatch]:`Team Deathmatch`,[M.goldenGun]:`Golden Gun`,[M.freeForAll]:`Free For All`,[M.weaponRoulette]:`Weapon Roulette`,[M.dualFront]:`Dual Front`,[M.bomb]:`Bomb`,[M.versusAi]:`Versus AI`,[M.hostage]:`Hostage`,[M.threeVsThreeSecureArea]:`3v3 Secure Area`,[M.targetDrill]:`Target Drill`,[M.rengoku]:`Rengoku`,[M.hideAndSeek]:`Hide and Seek`}),P=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)}),F=Object.freeze({[P.quickMatch]:`Quick Match`,[P.ranked]:`Ranked`,[P.customGame]:`Custom Game`,[P.versusAi]:`Versus AI`,[P.standard]:`Standard`,[P.arcade]:`Arcade`,[P.siegeCup]:`Siege Cup`,[P.dualFront]:`Dual Front`,[P.showdown]:`Showdown`,[P.trainingGrounds]:`Training Grounds`,[P.unranked]:`Unranked`,[P.deathmatch]:`Deathmatch`,[P.rengoku]:`Rengoku`,[P.muteProtocol]:`M.U.T.E Protocol`,[P.fieldTraining]:`Field Training`,[P.hideAndSeek]:`Hide and Seek`}),I=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)}),L=Object.freeze({[I.glaz]:`glaz`,[I.blitz]:`blitz`,[I.buck]:`buck`,[I.sledge]:`sledge`,[I.ash]:`ash`,[I.thermite]:`thermite`,[I.castle]:`castle`,[I.rook]:`rook`,[I.pulse]:`pulse`,[I.doc]:`doc`,[I.mute]:`mute`,[I.smoke]:`smoke`,[I.recruit]:`recruit`,[I.thatcher]:`thatcher`,[I.twitch]:`twitch`,[I.montagne]:`montagne`,[I.bandit]:`bandit`,[I.fuze]:`fuze`,[I.kapkan]:`kapkan`,[I.tachanka]:`tachanka`,[I.jager]:`jager`,[I.iq]:`iq`,[I.frost]:`frost`,[I.blackbeard]:`blackbeard`,[I.valkyrie]:`valkyrie`,[I.caveira]:`caveira`,[I.capitao]:`capitao`,[I.echo]:`echo`,[I.hibana]:`hibana`,[I.mira]:`mira`,[I.jackal]:`jackal`,[I.ying]:`ying`,[I.lesion]:`lesion`,[I.ela]:`ela`,[I.zofia]:`zofia`,[I.dokkaebi]:`dokkaebi`,[I.vigil]:`vigil`,[I.finka]:`finka`,[I.lion]:`lion`,[I.alibi]:`alibi`,[I.maestro]:`maestro`,[I.maverick]:`maverick`,[I.clash]:`clash`,[I.nomad]:`nomad`,[I.kaid]:`kaid`,[I.gridlock]:`gridlock`,[I.mozzie]:`mozzie`,[I.nokk]:`nokk`,[I.warden]:`warden`,[I.goyo]:`goyo`,[I.amaru]:`amaru`,[I.kali]:`kali`,[I.wamai]:`wamai`,[I.oryx]:`oryx`,[I.iana]:`iana`,[I.melusi]:`melusi`,[I.ace]:`ace`,[I.zero]:`zero`,[I.aruni]:`aruni`,[I.flores]:`flores`,[I.thunderbird]:`thunderbird`,[I.osa]:`osa`,[I.thorn]:`thorn`,[I.azami]:`azami`,[I.sens]:`sens`,[I.grim]:`grim`,[I.solis]:`solis`,[I.brava]:`brava`,[I.fenrir]:`fenrir`,[I.ram]:`ram`,[I.tubarao]:`tubarao`,[I.deimos]:`deimos`,[I.striker]:`striker`,[I.sentry]:`sentry`,[I.skopos]:`skopos`,[I.rauora]:`rauora`,[I.denari]:`denari`}),R=Object.freeze({[I.striker]:{name:`Striker`,role:`attacker`},[I.sledge]:{name:`Sledge`,role:`attacker`},[I.thatcher]:{name:`Thatcher`,role:`attacker`},[I.ash]:{name:`Ash`,role:`attacker`},[I.thermite]:{name:`Thermite`,role:`attacker`},[I.twitch]:{name:`Twitch`,role:`attacker`},[I.montagne]:{name:`Montagne`,role:`attacker`},[I.glaz]:{name:`Glaz`,role:`attacker`},[I.fuze]:{name:`Fuze`,role:`attacker`},[I.blitz]:{name:`Blitz`,role:`attacker`},[I.iq]:{name:`IQ`,role:`attacker`},[I.buck]:{name:`Buck`,role:`attacker`},[I.blackbeard]:{name:`Blackbeard`,role:`attacker`},[I.capitao]:{name:`Capitão`,role:`attacker`},[I.hibana]:{name:`Hibana`,role:`attacker`},[I.jackal]:{name:`Jackal`,role:`attacker`},[I.ying]:{name:`Ying`,role:`attacker`},[I.zofia]:{name:`Zofia`,role:`attacker`},[I.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[I.lion]:{name:`Lion`,role:`attacker`},[I.finka]:{name:`Finka`,role:`attacker`},[I.maverick]:{name:`Maverick`,role:`attacker`},[I.nomad]:{name:`Nomad`,role:`attacker`},[I.gridlock]:{name:`Gridlock`,role:`attacker`},[I.nokk]:{name:`Nøkk`,role:`attacker`},[I.amaru]:{name:`Amaru`,role:`attacker`},[I.kali]:{name:`Kali`,role:`attacker`},[I.iana]:{name:`Iana`,role:`attacker`},[I.ace]:{name:`Ace`,role:`attacker`},[I.zero]:{name:`Zero`,role:`attacker`},[I.flores]:{name:`Flores`,role:`attacker`},[I.osa]:{name:`Osa`,role:`attacker`},[I.sens]:{name:`Sens`,role:`attacker`},[I.grim]:{name:`Grim`,role:`attacker`},[I.brava]:{name:`Brava`,role:`attacker`},[I.ram]:{name:`Ram`,role:`attacker`},[I.deimos]:{name:`Deimos`,role:`attacker`},[I.rauora]:{name:`Rauora`,role:`attacker`},[I.sentry]:{name:`Sentry`,role:`defender`},[I.smoke]:{name:`Smoke`,role:`defender`},[I.mute]:{name:`Mute`,role:`defender`},[I.castle]:{name:`Castle`,role:`defender`},[I.pulse]:{name:`Pulse`,role:`defender`},[I.doc]:{name:`Doc`,role:`defender`},[I.rook]:{name:`Rook`,role:`defender`},[I.kapkan]:{name:`Kapkan`,role:`defender`},[I.tachanka]:{name:`Tachanka`,role:`defender`},[I.jager]:{name:`Jäger`,role:`defender`},[I.bandit]:{name:`Bandit`,role:`defender`},[I.frost]:{name:`Frost`,role:`defender`},[I.valkyrie]:{name:`Valkyrie`,role:`defender`},[I.caveira]:{name:`Caveira`,role:`defender`},[I.echo]:{name:`Echo`,role:`defender`},[I.mira]:{name:`Mira`,role:`defender`},[I.lesion]:{name:`Lesion`,role:`defender`},[I.ela]:{name:`Ela`,role:`defender`},[I.vigil]:{name:`Vigil`,role:`defender`},[I.alibi]:{name:`Alibi`,role:`defender`},[I.maestro]:{name:`Maestro`,role:`defender`},[I.clash]:{name:`Clash`,role:`defender`},[I.kaid]:{name:`Kaid`,role:`defender`},[I.mozzie]:{name:`Mozzie`,role:`defender`},[I.warden]:{name:`Warden`,role:`defender`},[I.goyo]:{name:`Goyo`,role:`defender`},[I.wamai]:{name:`Wamai`,role:`defender`},[I.oryx]:{name:`Oryx`,role:`defender`},[I.melusi]:{name:`Melusi`,role:`defender`},[I.aruni]:{name:`Aruni`,role:`defender`},[I.thunderbird]:{name:`Thunderbird`,role:`defender`},[I.thorn]:{name:`Thorn`,role:`defender`},[I.azami]:{name:`Azami`,role:`defender`},[I.solis]:{name:`Solis`,role:`defender`},[I.fenrir]:{name:`Fenrir`,role:`defender`},[I.tubarao]:{name:`Tubarao`,role:`defender`},[I.skopos]:{name:`Skopós`,role:`defender`},[I.denari]:{name:`Denari`,role:`defender`}}),z=Object.freeze({attacker:Object.entries(R).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...R[s(Number(e))],id:s(Number(e))})),defender:Object.entries(R).filter(([e,t])=>t.role===`defender`).map(([e])=>({...R[s(Number(e))],id:s(Number(e))}))}),B=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)}),V=Object.freeze({[B.favela]:`Favela`,[B.fortress]:`Fortress`,[B.villa]:`Villa`,[B.neighborhood]:`Neighborhood`,[B.themePark]:`Theme Park`,[B.stadium]:`Stadium`,[B.outback]:`Outback`,[B.yacht]:`Yacht`,[B.emeraldPlains]:`Emerald Plains`,[B.chalet]:`Chalet`,[B.coastline]:`Coastline`,[B.bank]:`Bank`,[B.consulate]:`Consulate`,[B.tower]:`Tower`,[B.nighthavenLabs]:`Nighthaven Labs`,[B.presidentialPlane]:`Presidential Plane`,[B.house]:`House`,[B.kafeDostoyevsky]:`Kafe Dostoyevsky`,[B.border]:`Border`,[B.closeQuarter]:`Close Quarter`,[B.outback]:`Outback`,[B.lair]:`Lair`,[B.herefordBase]:`Hereford Base`,[B.skyscraper]:`Skyscraper`,[B.cqbBasics]:`CQB Basics`,[B.oregon]:`Oregon`,[B.outback]:`Outback`,318512:`Stadium`,[B.fortTruth]:`Fort Truth`,[B.kanal]:`Kanal`,[B.cqbBasics]:`CQB Basics`,[B.stadium2020]:`Stadium 2020`,[B.clubhouse]:`Clubhouse`,[B.district]:`District`,[B.shinden]:`Shinden`,[B.stadiumBravo]:`Stadium Bravo`,[B.muteCommTower]:`M.U.T.E Comm Tower`,[B.doktorsLab]:`Doktor's Lab`}),H=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)}),U=Object.freeze({[H.notPlayed]:`Not Played`,[H.inProgress]:`In Progress`,[H.lost]:`Lost`,[H.enemiesEliminated]:`Enemies Eliminated`,[H.objectiveComplete]:`Objective Complete`,[H.timeRanOut]:`Time ran out`,[H.enemiesSurrendered]:`Enemies Surrendered`,[H.unknownReason]:`Unknown Reason`,[H.matchCancelled]:`Match Cancelled`}),W=Object.freeze({day:h(177839),night:h(177840)}),G=Object.freeze({[W.day]:`Day`,[W.night]:`Night`}),K=()=>n({id:`number`,value:`string`}),q=n({kills:`number`,deaths:`number`,assists:`number`,game_mode_actions:`number`,score:`number`}),J=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:D,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`}),Y=n({index:`number`,rounds_until_next_segment:`number`,segment_size:`number`,segment_index:`number`,team_0:{role:x,state:r(n.number)},team_1:{role:x,state:r(n.number)}}),X=n({name:K(),time_of_day:K()}),ae=n({player_id:r(n.number),final_health:`number`,final_life_state:C,operator_name:K()}),oe=n({round_data:Y,damage_events:J.array(),players:ae.array()}),Z=n({game:`string`,type:`string`,creation_time:`number`}),se=[H.enemiesEliminated,H.objectiveComplete,H.timeRanOut,H.enemiesSurrendered,H.unknownReason];function ce(e){return se.includes(e)}const le=[H.notPlayed,H.inProgress];function ue(e){return!le.includes(e)}const Q=Z.and({game:`'siege'`}),de=Q.and({type:`'match_started'`,content:{game_mode:r(n.string),game_type:K(),match_type:r(n.string),match_id:r(n.string),map:X,is_round_based:`boolean`,current_round_index:`number`,rounds:Y.array()}}),fe=Q.and({type:`'started_queuing'`,content:{game_mode:r(n.string),game_type:K(),match_type:r(n.string)}}),pe=Q.and({type:`'stopped_queuing'`}),me=Q.and({type:`'match_ended'`}),he=Q.and({type:`'map_changed'`,content:{map:X}}),ge=Q.and({type:`'operator_ban_voting_started'`,content:{team:y,index:`number`,side:x}}),_e=Q.and({type:`'operator_banned'`,content:{team:y,index:`number`,side:x,operator_name:K().or(`null`)}}),ve=Q.and({type:`'operator_ban_cleared'`,content:{team:y,index:`number`}}),ye=Q.and({type:`'round_ended'`,content:oe}),be=Q.and({type:`'phase_changed'`,content:{phase:_}}),xe=Q.and({type:`'player_joined'`,content:{player_id:r(n.number),username:`string`,pc_username:`string | null`,profile_id:r(n.string),is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,side:x,team:y,platform:T,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:q,life_state:C,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),Se=Q.and({type:`'player_left'`,content:{player_id:r(n.number)}}),Ce=Q.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:K()}}),we=Q.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),Te=Q.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:x}}),Ee=Q.and({type:`'player_score_changed'`,content:{player_id:r(n.number),score:`number`}}),De=Q.and({type:`'player_kills_changed'`,content:{player_id:r(n.number),kills:`number`}}),Oe=Q.and({type:`'player_deaths_changed'`,content:{player_id:r(n.number),deaths:`number`}}),ke=Q.and({type:`'player_assists_changed'`,content:{player_id:r(n.number),assists:`number`}}),Ae=Q.and({type:`'player_game_mode_actions_changed'`,content:{player_id:r(n.number),game_mode_actions:`number`}}),je=Q.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),Me=Q.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),Ne=Q.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),Pe=Q.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),$=Q.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),Fe=Q.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:C}}),Ie=Q.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number),headshot:`boolean`}}),Le=Q.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Re=Q.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),ze=Q.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:y}}),Be=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:fe,stopped_queuing:pe,match_started:de,match_ended:me,map_changed:he,operator_ban_voting_started:ge,operator_banned:_e,operator_ban_cleared:ve,round_ended:ye,phase_changed:be,player_joined:xe,player_left:Se,player_operator_changed:Ce,player_location_changed:we,player_side_changed:Te,player_score_changed:Ee,player_kills_changed:De,player_deaths_changed:Oe,player_assists_changed:ke,player_game_mode_actions_changed:Ae,defuser_planted:Me,defuser_sabotaged:Ne,defuser_picked_up:Pe,defuser_dropped:$,player_ping_updated:je,player_life_state_changed:Fe,player_died:Ie,player_downed:Le,player_ping_id_changed:Re,player_team_changed:ze}).export();function Ve(){return{key:`siege`,events:Be}}export{Z as BaseEvent,g as SIEGE_BOT_ID,ie as SIEGE_DAMAGE_HIT_ZONES,re as SIEGE_DAMAGE_TEAM_TYPES,E as SIEGE_DAMAGE_TYPES,M as SIEGE_GAME_MODES_TO_ID,N as SIEGE_GAME_MODE_LABELS,ne as SIEGE_GAME_MODE_PHASES,P as SIEGE_GAME_MODE_TYPES_TO_ID,F as SIEGE_GAME_MODE_TYPE_LABELS,V as SIEGE_MAP_LABELS,B as SIEGE_MAP_TO_ID,A as SIEGE_MATCH_TYPES_TO_ID,j as SIEGE_MATCH_TYPE_LABELS,L as SIEGE_OPERATOR_LABELS,R as SIEGE_OPERATOR_META,I as SIEGE_OPERATOR_TO_ID,S as SIEGE_PLAYER_LIFE_STATES,w as SIEGE_PROFILE_PLATFORMS,H as SIEGE_ROUND_STATES_TO_ID,U as SIEGE_ROUND_STATE_LABELS,b as SIEGE_SIDES,z as SIEGE_SIDE_OPERATORS,v as SIEGE_TEAMS,G as SIEGE_TIME_OF_DAY_LABELS,W as SIEGE_TIME_OF_DAY_TO_ID,k as SiegeDamageHitZoneSchema,f as SiegeDamageSourceId,O as SiegeDamageTeamTypeSchema,D as SiegeDamageTypeSchema,m as SiegeGameMode,_ as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,te as SiegeItemObjectId,c as SiegeMapNameId,u as SiegeMatchId,p as SiegeMatchType,s as SiegeOperatorNameId,d as SiegePlayerId,C as SiegePlayerLifeStateSchema,ee as SiegeProfileId,T as SiegeProfilePlatformSchema,l as SiegeRoundState,x as SiegeSideSchema,y as SiegeTeamSchema,h as SiegeTimeOfDay,ue as isSiegeRoundStateCompleted,ce as isSiegeRoundStateVictory,Ve as module};
@@ -1,11 +1,11 @@
1
1
  import * as arktype0 from "arktype";
2
- import * as arktype_internal_variants_object_ts0 from "arktype/internal/variants/object.ts";
2
+ import * as arktype_internal_variants_object_ts1 from "arktype/internal/variants/object.ts";
3
3
 
4
4
  //#region ../games/universal/dist/index.d.ts
5
5
 
6
6
  //#endregion
7
7
  //#region src/events/loggedIn.d.ts
8
- declare const LoggedIn: arktype_internal_variants_object_ts0.ObjectType<{
8
+ declare const LoggedIn: arktype_internal_variants_object_ts1.ObjectType<{
9
9
  game: "siege" | "tft";
10
10
  type: "logged_in";
11
11
  creation_time: number;
@@ -16,7 +16,7 @@ declare const LoggedIn: arktype_internal_variants_object_ts0.ObjectType<{
16
16
  type LoggedInEvent = typeof LoggedIn.infer;
17
17
  //#endregion
18
18
  //#region src/events/moduleLoaded.d.ts
19
- declare const ModuleLoaded: arktype_internal_variants_object_ts0.ObjectType<{
19
+ declare const ModuleLoaded: arktype_internal_variants_object_ts1.ObjectType<{
20
20
  game: "siege" | "tft";
21
21
  type: "module_loaded";
22
22
  creation_time: number;
@@ -28,7 +28,7 @@ declare const ModuleLoaded: arktype_internal_variants_object_ts0.ObjectType<{
28
28
  type ModuleLoadedEvent = typeof ModuleLoaded.infer;
29
29
  //#endregion
30
30
  //#region src/events/moduleUnloaded.d.ts
31
- declare const ModuleUnloaded: arktype_internal_variants_object_ts0.ObjectType<{
31
+ declare const ModuleUnloaded: arktype_internal_variants_object_ts1.ObjectType<{
32
32
  game: "siege" | "tft";
33
33
  type: "module_unloaded";
34
34
  creation_time: number;
@@ -36,7 +36,7 @@ declare const ModuleUnloaded: arktype_internal_variants_object_ts0.ObjectType<{
36
36
  type ModuleUnloadedEvent = typeof ModuleUnloaded.infer;
37
37
  //#endregion
38
38
  //#region src/events/unsupportedGameVersion.d.ts
39
- declare const UnsupportedGameVersion: arktype_internal_variants_object_ts0.ObjectType<{
39
+ declare const UnsupportedGameVersion: arktype_internal_variants_object_ts1.ObjectType<{
40
40
  game: "siege" | "tft";
41
41
  type: "unsupported_game_version";
42
42
  creation_time: number;
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.31.4",
5
+ "version": "0.31.5",
6
6
  "description": "Overlayed app",
7
7
  "license": "SEE LICENSE IN LICENSE.md",
8
8
  "repository": {
@@ -61,8 +61,8 @@
61
61
  },
62
62
  "devDependencies": {
63
63
  "@ark/attest": "^0.49.0",
64
- "@overlayed-gg/native-interface": "0.1.18",
65
- "@overlayed-gg/render-interface": "0.1.16",
64
+ "@overlayed-gg/native-interface": "0.2.1",
65
+ "@overlayed-gg/render-interface": "0.2.1",
66
66
  "msw": "^2.12.3",
67
67
  "rev-utils": "https://r2.reviq.app/rev-utils-v1.0.3.tgz",
68
68
  "tsdown": "0.16.8",
@@ -72,9 +72,9 @@
72
72
  "@overlayed/api": "0.0.4",
73
73
  "@overlayed/cortex-client": "0.0.4",
74
74
  "@overlayed/events": "0.0.4",
75
+ "@overlayed/native-managers": "0.0.4",
75
76
  "@overlayed/siege": "0.0.5",
76
77
  "@overlayed/universal": "0.0.0",
77
- "@overlayed/native-managers": "0.0.4",
78
78
  "@overlayed/utils": "0.0.4",
79
79
  "@overlayed/utils-node": "0.0.4"
80
80
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","names":["AccessLevel","InjectionMethod","Process","Promise","Date","ProcessMonitor","Function","PipeEventBase","PipeEventServer","PipeEventClient","HardwareInterface"],"sources":["index.js","../types.d.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\n\n//#region index.ts\nconst require = createRequire(import.meta.url);\nconst { PipeEventServer, PipeEventClient, PipeEventBase, ProcessMonitor, Process, HardwareInterface } = require(\"@overlayed-gg/native-interface/build/overlayed_native_interface_x64.node\");\nlet AccessLevel = /* @__PURE__ */ function(AccessLevel$1) {\n\tAccessLevel$1[AccessLevel$1[\"Default\"] = 0] = \"Default\";\n\tAccessLevel$1[AccessLevel$1[\"Global\"] = 1] = \"Global\";\n\tAccessLevel$1[AccessLevel$1[\"Admin\"] = 2] = \"Admin\";\n\treturn AccessLevel$1;\n}({});\nlet InjectionMethod = /* @__PURE__ */ function(InjectionMethod$1) {\n\tInjectionMethod$1[InjectionMethod$1[\"windowsHook\"] = 0] = \"windowsHook\";\n\treturn InjectionMethod$1;\n}({});\n\n//#endregion\nexport { AccessLevel, HardwareInterface, InjectionMethod, PipeEventBase, PipeEventClient, PipeEventServer, Process, ProcessMonitor };","/// <reference types=\"node\" />\n\nimport type { AccessLevel, InjectionMethod } from \".\";\n\nexport class Process {\n\tconstructor(id: number);\n\n\tinjectDll(\n\t\tpath: string,\n\t\toptions?: {\n\t\t\tmethod?: InjectionMethod;\n\t\t\tmaxAttemptCount?: number;\n\t\t\tattemptRate?: number;\n\t\t\twindowPollRate?: number;\n\t\t\twindowWaitTimeout?: number;\n\t\t\tprocessHandlePollRate?: number;\n\t\t\tprocessHandleTimeout?: number;\n\t\t\tnotifyWaitTimeout?: number;\n\t\t},\n\t): Promise<void>; // defaults: { method: InjectionMethod.windowsHook, maxAttemptCount: 10, attemptRate: 500, windowPollRate: 100, windowWaitTimeout: 4294967295, processHandlePollRate: 1000, processHandleTimeout: 4294967295, notifyWaitTimeout: 3000 }, all times are declared in miliseconds\n\n\treadonly id: number;\n\treadonly name?: string;\n\treadonly path?: string;\n\n\treadonly createdAt?: Date;\n\treadonly destroyedAt?: Date;\n\n\treadonly exitCode?: number;\n\n\treadonly isElevated?: boolean;\n\n\tstatic readonly currentProcess: Process;\n}\n\nexport class ProcessMonitor {\n\tconstructor(options?: { pollRate?: number }); // default: { pollRate: 1000 }; pollRate - integer in miliseconds\n\n\twipeProcesses(): void;\n\n\tisProcessRegistered(name: string): boolean;\n\tregisterProcess(name: string): void;\n\tunRegisterProcess(name: string): void;\n\n\teventNames(): string[];\n\tgetMaxListeners(): number;\n\tremoveAllListeners(): this;\n\n\tlisteners(eventName: \"create\"): Function[];\n\trawListeners(eventName: \"create\"): Function[];\n\tlistenerCount(eventName: \"create\", listener?: (process: Process) => void): number;\n\n\ton(eventName: \"create\", listener: (process: Process) => void): this;\n\tonce(eventName: \"create\", listener: (process: Process) => void): this;\n\taddListener(eventName: \"create\", listener: (process: Process) => void): this;\n\tprependListener(eventName: \"create\", listener: (process: Process) => void): this;\n\tprependOnceListener(eventName: \"create\", listener: (process: Process) => void): this;\n\n\toff(eventName: \"create\", listener: (process: Process) => void): this;\n\tremoveListener(eventName: \"create\", listener: (process: Process) => void): this;\n\tremoveAllListeners(eventName: \"create\"): this;\n\n\tlisteners(eventName: \"destroy\"): Function[];\n\trawListeners(eventName: \"destroy\"): Function[];\n\tlistenerCount(eventName: \"destroy\", listener?: (process: Process) => void): number;\n\n\ton(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tonce(eventName: \"destroy\", listener: (process: Process) => void): this;\n\taddListener(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tprependListener(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tprependOnceListener(eventName: \"destroy\", listener: (process: Process) => void): this;\n\n\toff(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tremoveListener(eventName: \"destroy\", listener: (process: Process) => void): this;\n\tremoveAllListeners(eventName: \"destroy\"): this;\n}\n\nexport class PipeEventBase {\n\tisConnected(): boolean;\n\n\tdispatch(event: string): void;\n\n\teventNames(): string[];\n\tgetMaxListeners(): number;\n\tremoveAllListeners(): this;\n\n\tlisteners(eventName: \"event\"): Function[];\n\trawListeners(eventName: \"event\"): Function[];\n\tlistenerCount(eventName: \"event\", listener?: (event: string) => void): number;\n\n\ton(eventName: \"event\", listener: (event: string) => void): this;\n\tonce(eventName: \"event\", listener: (event: string) => void): this;\n\taddListener(eventName: \"event\", listener: (event: string) => void): this;\n\tprependListener(eventName: \"event\", listener: (event: string) => void): this;\n\tprependOnceListener(eventName: \"event\", listener: (event: string) => void): this;\n\n\toff(eventName: \"event\", listener: (event: string) => void): this;\n\tremoveListener(eventName: \"event\", listener: (event: string) => void): this;\n\tremoveAllListeners(eventName: \"event\"): this;\n\n\tlisteners(eventName: \"connected\"): Function[];\n\trawListeners(eventName: \"connected\"): Function[];\n\tlistenerCount(eventName: \"connected\", listener?: () => void): number;\n\n\ton(eventName: \"connected\", listener: () => void): this;\n\tonce(eventName: \"connected\", listener: () => void): this;\n\taddListener(eventName: \"connected\", listener: () => void): this;\n\tprependListener(eventName: \"connected\", listener: () => void): this;\n\tprependOnceListener(eventName: \"connected\", listener: () => void): this;\n\n\toff(eventName: \"connected\", listener: () => void): this;\n\tremoveListener(eventName: \"connected\", listener: () => void): this;\n\tremoveAllListeners(eventName: \"connected\"): this;\n\n\tlisteners(eventName: \"disconnected\"): Function[];\n\trawListeners(eventName: \"disconnected\"): Function[];\n\tlistenerCount(eventName: \"disconnected\", listener?: () => void): number;\n\n\ton(eventName: \"disconnected\", listener: () => void): this;\n\tonce(eventName: \"disconnected\", listener: () => void): this;\n\taddListener(eventName: \"disconnected\", listener: () => void): this;\n\tprependListener(eventName: \"disconnected\", listener: () => void): this;\n\tprependOnceListener(eventName: \"disconnected\", listener: () => void): this;\n\n\toff(eventName: \"disconnected\", listener: () => void): this;\n\tremoveListener(eventName: \"disconnected\", listener: () => void): this;\n\tremoveAllListeners(eventName: \"disconnected\"): this;\n\n\tlisteners(eventName: \"error\"): Function[];\n\trawListeners(eventName: \"error\"): Function[];\n\tlistenerCount(eventName: \"error\", listener?: () => void): number;\n\n\ton(eventName: \"error\", listener: () => void): this;\n\tonce(eventName: \"error\", listener: () => void): this;\n\taddListener(eventName: \"error\", listener: () => void): this;\n\tprependListener(eventName: \"error\", listener: () => void): this;\n\tprependOnceListener(eventName: \"error\", listener: () => void): this;\n\n\toff(eventName: \"error\", listener: () => void): this;\n\tremoveListener(eventName: \"error\", listener: () => void): this;\n\tremoveAllListeners(eventName: \"error\"): this;\n}\n\nexport class PipeEventServer extends PipeEventBase {\n\tconstructor(name: string, options?: { clientCount?: number; access?: AccessLevel }); // default: { clientCount: 1, access: AccessLevel.Default };\n}\n\nexport class PipeEventClient extends PipeEventBase {\n\tconstructor(name: string, options?: {}); // default: {};\n}\n\nexport class HardwareInterface {\n\tstatic generateUniqueIdentifier(): string; // results in a uuid version 4\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","names":["VirtualKey","AccessLevel","RenderWindow","Electron","BrowserWindow","WindowEvent","MouseButtonEvent","KeyboardKeyEvent","RenderWindowConstructorOptions","BrowserWindowConstructorOptions","RenderInterface","Function","renderHookPath"],"sources":["../index.ts","../types.d.ts"],"sourcesContent":["/// <reference types=\"node\" />\n/// <reference types=\"electron\" />\n\nimport type { VirtualKey, AccessLevel } from \"./index\";\n\nexport { VirtualKey, AccessLevel };\n\nexport interface RenderWindow extends Electron.BrowserWindow {\n\tgetLayer(): number;\n\tgetInput(): boolean;\n\tgetInputBlock(): boolean;\n\tgetCursorOverride(): boolean;\n\n\tsetLayer(layer: number): void;\n\tsetInput(input: boolean): void;\n\tsetInputBlock(block: boolean): void;\n\tsetCursorOverride(override: boolean): void;\n}\n\nexport interface WindowEvent {\n\twindow?: RenderWindow;\n}\n\nexport interface MouseButtonEvent extends WindowEvent {\n\tx: number;\n\ty: number;\n\n\tglobalX: number;\n\tglobalY: number;\n\n\tkey: VirtualKey;\n}\n\nexport interface KeyboardKeyEvent extends WindowEvent {\n\tkey: VirtualKey;\n}\n\nexport interface RenderWindowConstructorOptions extends Electron.BrowserWindowConstructorOptions {\n\tlayer?: number; // default: 0\n\n\tcreateForeground?: boolean; // default: true\n\n\thasInput?: boolean; // default: true\n\thasInputBlock?: boolean; // default: true\n\thasCursorOverride?: boolean; // default: true\n}\n\nexport class RenderInterface {\n\tconstructor(name: string, options?: { maxWindowCount?: number; eventQueueSize?: number; access?: AccessLevel }); // default: { maxWindowCount: 10, eventQueueSize: 200, access: AccessLevel.Default }\n\n\tnewWindowInternal(browserWindow: Electron.BrowserWindow, options?: RenderWindowConstructorOptions): RenderWindow;\n\n\tgetGlobalMouseBlock(): boolean;\n\tgetGlobalKeyboardBlock(): boolean;\n\tgetGlobalCursorOverride(): boolean;\n\tgetKeyInputBlock(key: VirtualKey): boolean;\n\n\tsetGlobalMouseBlock(block: boolean): void;\n\tsetGlobalKeyboardBlock(block: boolean): void;\n\tsetGlobalCursorOverride(show: boolean): void;\n\tsetKeyInputBlock(key: VirtualKey, block: boolean): void;\n\n\teventNames(): string[];\n\tgetMaxListeners(): number;\n\tremoveAllListeners(): this;\n\n\tlisteners(eventName: \"keyDown\"): Function[];\n\trawListeners(eventName: \"keyDown\"): Function[];\n\tlistenerCount(eventName: \"keyDown\", listener?: (event: KeyboardKeyEvent) => void): number;\n\n\ton(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tonce(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\taddListener(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tprependListener(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tprependOnceListener(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\n\toff(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tremoveListener(eventName: \"keyDown\", listener: (event: KeyboardKeyEvent) => void): this;\n\tremoveAllListeners(eventName: \"keyDown\"): this;\n\n\tlisteners(eventName: \"keyUp\"): Function[];\n\trawListeners(eventName: \"keyUp\"): Function[];\n\tlistenerCount(eventName: \"keyUp\", listener?: (event: KeyboardKeyEvent) => void): number;\n\n\ton(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tonce(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\taddListener(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tprependListener(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tprependOnceListener(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\n\toff(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tremoveListener(eventName: \"keyUp\", listener: (event: KeyboardKeyEvent) => void): this;\n\tremoveAllListeners(eventName: \"keyUp\"): this;\n\n\tlisteners(eventName: \"mouseDown\"): Function[];\n\trawListeners(eventName: \"mouseDown\"): Function[];\n\tlistenerCount(eventName: \"mouseDown\", listener?: (event: MouseButtonEvent) => void): number;\n\n\ton(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tonce(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\taddListener(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tprependListener(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tprependOnceListener(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\n\toff(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tremoveListener(eventName: \"mouseDown\", listener: (event: MouseButtonEvent) => void): this;\n\tremoveAllListeners(eventName: \"mouseDown\"): this;\n\n\tlisteners(eventName: \"mouseUp\"): Function[];\n\trawListeners(eventName: \"mouseUp\"): Function[];\n\tlistenerCount(eventName: \"mouseUp\", listener?: (event: MouseButtonEvent) => void): number;\n\n\ton(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tonce(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\taddListener(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tprependListener(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tprependOnceListener(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\n\toff(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tremoveListener(eventName: \"mouseUp\", listener: (event: MouseButtonEvent) => void): this;\n\tremoveAllListeners(eventName: \"mouseUp\"): this;\n\n\tlisteners(eventName: \"resolution\"): Function[];\n\trawListeners(eventName: \"resolution\"): Function[];\n\tlistenerCount(eventName: \"resolution\", listener?: (width: number, height: number) => void): number;\n\n\ton(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tonce(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\taddListener(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tprependListener(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tprependOnceListener(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\n\toff(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tremoveListener(eventName: \"resolution\", listener: (width: number, height: number) => void): this;\n\tremoveAllListeners(eventName: \"resolution\"): this;\n\n\tlisteners(eventName: \"keyboardFocus\"): Function[];\n\trawListeners(eventName: \"keyboardFocus\"): Function[];\n\tlistenerCount(eventName: \"keyboardFocus\", listener?: (focus: boolean) => void): number;\n\n\ton(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tonce(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\taddListener(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tprependListener(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tprependOnceListener(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\n\toff(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tremoveListener(eventName: \"keyboardFocus\", listener: (focus: boolean) => void): this;\n\tremoveAllListeners(eventName: \"keyboardFocus\"): this;\n}\n\nexport const renderHookPath: string;\n"],"mappings":"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"}