@overlayed/app 0.24.3 → 0.24.4

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.js CHANGED
@@ -2,4 +2,4 @@ import{createRequire as e}from"node:module";import{Type as t,type as n}from"arkt
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:Le,stderr:Re}=Pe,w=Symbol(`GENERATOR`),T=Symbol(`STYLER`),E=Symbol(`IS_EMPTY`),ze=[`ansi`,`ansi`,`ansi256`,`ansi16m`],D=Object.create(null),Be=(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=Le?Le.level:0;e.level=t.level===void 0?n:t.level},Ve=e=>{let t=(...e)=>e.join(` `);return Be(t,e),Object.setPrototypeOf(t,O.prototype),t};function O(e){return Ve(e)}Object.setPrototypeOf(O.prototype,Function.prototype);for(let[e,t]of Object.entries(b))D[e]={get(){let n=A(this,k(t.open,t.close,this[T]),this[E]);return Object.defineProperty(this,e,{value:n}),n}};D.visible={get(){let e=A(this,this[T],!0);return Object.defineProperty(this,`visible`,{value:e}),e}};const He=(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`?He(`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=k(He(e,ze[t],`color`,...n),b.color.close,this[T]);return A(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=k(He(e,ze[t],`bgColor`,...n),b.bgColor.close,this[T]);return A(this,r,this[E])}}}}const Ue=Object.defineProperties(()=>{},{...D,level:{enumerable:!0,get(){return this[w].level},set(e){this[w].level=e}}}),k=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},A=(e,t,n)=>{let r=(...e)=>We(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,Ue),r[w]=e,r[T]=t,r[E]=n,r},We=(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=Fe(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
5
- `);return a!==-1&&(t=Ie(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);const Ge=O();O({level:Re?Re.level:0});var j=Ge,M=class{emitter;constructor(){this.emitter=r()}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()}},Ke=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 N(e,...t){return class extends e{static _instance;static getInstance(){return this._instance||=new e(...t),this._instance}static clearInstance(){this._instance=void 0}}}const P=N(class extends M{destroy(){this.removeAllListeners()}fatal(e,t,n){this.emit(`fatal`,{code:t,message:e,data:n,timestamp:Date.now()})}error(e,t,n){this.emit(`error`,{code:t,message:e,data:n,timestamp:Date.now()})}warn(e,t,n){this.emit(`warning`,{code:t,message:e,data:n,timestamp:Date.now()})}});var qe=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{d(this.getFilePath()),i.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(){if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return this.data=e,e}try{let e=i.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=n(`string.json.parse`).to(`object`)(e);if(t instanceof n.errors)return this._defaultValue;let r=this._schema[`~standard`].validate(t);if(r instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return r.issues?this.migrate(t,this._defaultValue):this.migrate(r.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return i.accessSync(e,i.constants.R_OK|i.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return i.accessSync(e,i.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]);return n}reportInvalidConfigFile(e){P.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}};function Je(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 Ye=class e extends M{stream;logPath;baseFileName;currentDate;rotationCheckInterval;isRotating=!1;constructor(e,t){super(),this.logPath=e,this.baseFileName=t.replace(`.log`,``),this.currentDate=this.getDateString(new Date),this.ensureLogDirectory(),this.ensureLogFile(),this.stream=this.createStream(),this.rotationCheckInterval=this.startRotationCheck(),this.cleanupOldLogs()}static scope(t,n){return new e(t,n)}log(...e){this.write(`log`,...e)}error(...e){this.write(`error`,...e)}warn(...e){this.write(`warn`,...e)}info(...e){this.write(`info`,...e)}debug(...e){this.write(`debug`,...e)}async close(){clearInterval(this.rotationCheckInterval),await new Promise(e=>{this.stream.end(()=>e())})}getCurrentFileName(){return this.getFileName(this.currentDate)}static getMessageElements(e,...t){let n=new Date,r=n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getMilliseconds().toString().padStart(3,`0`)}`,i=t.map(e=>Je(e)).join(` `);return{timestamp:r,level:e,message:i}}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{s(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=f(this.logPath,this.getFileName(this.currentDate));if(!o(e))try{u(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return e.toISOString().split(`T`)[0]}createStream(){let e=f(this.logPath,this.getFileName(this.currentDate));return a(e,{flags:`a`,encoding:`utf8`})}async rotateLogs(){if(this.isRotating)return;this.isRotating=!0;let e=this.getDateString(new Date);e!==this.currentDate&&await new Promise(t=>{this.stream.end(()=>{this.currentDate=e,this.stream=this.createStream(),this.cleanupOldLogs(),t()})}),this.isRotating=!1}startRotationCheck(){return setInterval(()=>this.rotateLogs(),6e4)}cleanupOldLogs(){let e=c(this.logPath),t=new Date;t.setDate(t.getDate()-7),e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let n=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``);return new Date(n)<t}).forEach(e=>{try{l(f(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}write(t,...n){let{timestamp:r,message:i}=e.getMessageElements(t,...n),a=`[${r}] [${t}] ${i}\n`;this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}};const F=()=>p.join(process.env.APPDATA??``,`overlayed`),Xe=()=>p.join(F(),`logs`),Ze=e=>p.join(F(),`apps`,e),Qe=e=>p.join(Ze(e),`logs`),$e=()=>p.join(F(),`meta.json`);var et=class{fileLogger;path;appId;messageQueue=new Ce;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=Qe(e),this.fileLogger=new Ye(this.path,this.fileName),this.messageQueue.flush().forEach(e=>{this.fileLogger?.[e.type](...e.args)})}scope(e){if(!this.appId||!this.path)throw Error(`Logger not initialized`);let t=`[${e}]`;return{scope:e=>this.scope(e),error:(...e)=>this.error(t,...e),warn:(...e)=>this.warn(t,...e),info:(...e)=>this.info(t,...e),log:(...e)=>this.log(t,...e),debug:(...e)=>this.debug(t,...e)}}error(...e){this.handle(`error`,...e)}warn(...e){this.handle(`warn`,...e)}info(...e){this.handle(`log`,...e)}debug(...e){this._debug&&this.handle(`debug`,...e)}log(...e){this.handle(`log`,...e)}handle(e,...t){this.logToConsole(e,...t),this.fileLogger?this.fileLogger[e](...t):this.messageQueue.add({type:e,args:t})}logToConsole(e,...t){let n={error:j.red,warn:j.yellow,debug:j.blue,log:j.white};if(this.silent&&!this._debug)return;let{timestamp:r,message:i}=Ye.getMessageElements(e,...t),a=console[e],o=n[e];a(`${j.gray(r)} ${o(i)}`)}};const I=N(et,`overlayed.log`);var tt=class extends re{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 nt(e,t){let{recursive:n}=rt(t);return oe(e)?n?it(e).map(t=>[e,t]):le(e).map(t=>[e,t]):[]}function rt(e){return{recursive:e?.recursive??!0}}function it(e){return le(e,{withFileTypes:!0}).flatMap(t=>{let n=p.join(e,t.name);return t.isDirectory()?it(n):[n]})}function at(e){return e}const{PipeEventServer:ot,PipeEventClient:st,PipeEventBase:ct,ProcessMonitor:lt,Process:ut,HardwareInterface:dt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),ft=ot,L=N(class extends M{server=null;_hasConnection=!1;pipeId;get hasConnection(){return this._hasConnection}constructor(e){super(),this.pipeId=e,this.init()}destroy(){this.server&&=(this._hasConnection=!1,this.server?.removeAllListeners(),null)}init(){this.server=new ft(this.pipeId,{clientCount:1,access:1}),this.server.on(`event`,e=>{try{let t=JSON.parse(e);this.emit(`data`,[t])}catch(e){this.emit(`error`,e)}}),this.server.on(`connected`,()=>{this._hasConnection=!0}),this.server.on(`disconnected`,()=>{this._hasConnection=!1})}},`stats-cc`),{RenderInterface:pt,renderHookPath:mt}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`),ht=pt;let gt=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}({});var _t=class{logger;initialized=!1;constructor(e){this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},R=class extends M{logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},vt=class extends Ke{logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const z=de.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let yt;function bt(e){yt=e}z.interceptors.request.use(e=>{let t=yt?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const B=de.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});B.interceptors.request.use(e=>(e.headers??={},e));function xt(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 St(e){return e}function Ct(e){return e?t=>(e(t),t):St}const wt=Ct();function Tt(e){return B.get(`/v1/public/applications/${e}`)}function Et(e,t,n){return z.get(`/v1/native/${Ot(e)}/version.txt`,{params:{channel:t},responseType:`text`,headers:{"X-App-Version":kt(n,t)}})}function Dt(e,t,n){return z.get(`/v1/native/${Ot(e)}/files`,{params:{channel:t},responseType:`arraybuffer`,headers:{"X-App-Version":kt(n,t)}})}function Ot(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function kt(e,t){return`desktop-application/${e} (channel=${t})`}function At(){return B.get(`/v1/public/raven/config`)}function jt(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Mt(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Nt(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 Pt(e){let t=Date.now(),n=e.messages.map(e=>Ft(t,e)),r=xt(n,250),i=Promise.all(r.map(async t=>B.post(`/v1/public/cortex/events`,{...e,messages:t})));return i.catch(e=>{let t=e?.response?.data||e?.message||e;console.error(`Failed to submit cortex events`,t)}),i}function Ft(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 It(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Lt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Rt;function zt(e){Rt=e}const V=N(class extends R{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=p.join(F(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await g.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=p.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await g.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return p.join(this.targetDir,e)}getTargetVersionPath(e,t){return p.join(this.getTargetPath(e),t)}async checkForUpdates(e){let t=global.OVERLAYED.APP_BUILD_CHANNEL;if(this.logger.log(`Checking for updates`),!t){this.logger.error(`Invalid VITE_BUILD_CHANNEL`);return}await Rt?.();for(let n of e)try{let{data:e}=await Et(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;this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t,i),this.logger.log(`${n} > Downloaded and extracted`),i&&(this.logger.log(`${n} > Cleaning up versions older than ${e}`),await this.cleanupOldVersions(n,e)),this.emit(`dllUpdated`,{identifier:n,version:e})}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n,r){let{data:i}=await Dt(e,n,global.OVERLAYED.APP_VERSION),a=this.getTargetPath(e),o=this.getTargetVersionPath(e,t);await g.mkdir(o,{recursive:!0});let s=new _;await s.loadAsync(i);let c=Object.keys(s.files).map(async t=>{let n=s.files[t];if(n&&!n.dir){let i=p.join(o,t);if(!r)try{await g.access(i,g.constants.F_OK);return}catch{this.logger.warn(`${e} > File missing, re-downloading: ${i}`)}let a=await n.async(`nodebuffer`);await g.writeFile(i,a)}});await Promise.all(c);let l=p.join(a,`version.txt`);this.logger.log(`Saving version file`,l),await g.writeFile(l,t)}async cleanupOldVersions(e,t){let n=p.join(this.targetDir,e),r=await g.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await g.rm(p.join(n,e.name),{recursive:!0,force:!0})}}),H=N(class extends R{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 At()).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:Bt,PipeEventClient:Vt,PipeEventBase:Ht,ProcessMonitor:Ut,Process:Wt,HardwareInterface:Gt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),Kt=Gt,qt=Ut,Jt=Wt,U=N(class extends R{_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.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 Yt=class{_instance;_resolution;boundOnResolutionChanged=this.onResolutionChanged.bind(this);constructor(e){this._instance=e,this._resolution={width:0,height:0},this._instance.on(`resolution`,this.boundOnResolutionChanged)}destroy(){this._instance.off(`resolution`,this.boundOnResolutionChanged)}get instance(){return this._instance}get resolution(){return this._resolution}onResolutionChanged(e,t){this._resolution={width:e,height:t}}};const W=N(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new Yt(new ht(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),G=N(class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new Ce,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{Pt({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}}),Xt=e(import.meta.url).resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),K=N(class extends vt{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()}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){P.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!r.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:r.isElevated,gameElevated:e.isElevated});return}let i=this.copyDll(Xt);if(i)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 a=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=p.basename(t),i=p.join(r,n);if(!i)return Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(a),this._activeReadyRavenGames.add(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),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=p.basename(e),n=ee(e),r=p.join(F(),`resources`),i=p.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{oe(r)||se(r,{recursive:!0});let e=ce(n);ue(i,e),ie(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 g.readdir(e)).filter(e=>e.endsWith(`.dll`)).map(t=>p.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this._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}}),Zt=N(class extends _t{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),K.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){K.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=ce(n.path),i=fe(`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 jt(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 _;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 tt(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Mt(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 Nt(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){It(e)?Lt(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 Qt(e=[]){return p.normalize(p.join(Ze(global.OVERLAYED.APPLICATION_ID),...e))}const $t=n({game:`string`,type:`string`,creation_time:`number`}),q=new qe({path:$e(),schema:n({userId:`string | undefined`,sessionId:`string | undefined`,sessionLastUsed:`number | undefined`}),default:{userId:void 0,sessionId:void 0,sessionLastUsed:void 0}});function en(){let e=q.get().userId;if(e)return e;let t=rn();return q.set({...q.get(),userId:t}),t}function tn(){let e=q.get();if(e.sessionId&&typeof e.sessionLastUsed==`number`&&Date.now()-e.sessionLastUsed<=300*1e3)return e.sessionId;let t=crypto.randomUUID();return q.set({...e,sessionId:t,sessionLastUsed:Date.now()}),t}function nn(){try{let e=q.get();q.set({...e,sessionLastUsed:Date.now()})}catch(e){I.getInstance().log(`Failed to update sessionLastUsed`,e)}}function rn(){try{return Kt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}function J(e,t){return`${e}:${t}`}function an(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=J(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=J(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=J(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=J(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function on(){let e=P.getInstance(),t=K.getInstance();return{on:(n,r)=>{switch(n){case`fatal`:e.on(`fatal`,r);break;case`error`:e.on(`error`,r);break;case`warning`:e.on(`warning`,r);break;case`gameLaunch`:t.on(`gameLaunch`,r);break;case`gameClose`:t.on(`gameClose`,r);break;case`gameReady`:t.on(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}},off:(n,r)=>{switch(n){case`fatal`:e.off(`fatal`,r);break;case`error`:e.off(`error`,r);break;case`warning`:e.off(`warning`,r);break;case`gameLaunch`:t.off(`gameLaunch`,r);break;case`gameClose`:t.off(`gameClose`,r);break;case`gameReady`:t.off(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}}}}var Y=function(e){return e[e.LeftButton=1]=`LeftButton`,e[e.RightButton=2]=`RightButton`,e[e.Cancel=3]=`Cancel`,e[e.MiddleButton=4]=`MiddleButton`,e[e.ExtraButton1=5]=`ExtraButton1`,e[e.ExtraButton2=6]=`ExtraButton2`,e[e.Back=8]=`Back`,e[e.Tab=9]=`Tab`,e[e.Clear=12]=`Clear`,e[e.Return=13]=`Return`,e[e.Shift=16]=`Shift`,e[e.Control=17]=`Control`,e[e.Menu=18]=`Menu`,e[e.Pause=19]=`Pause`,e[e.CapsLock=20]=`CapsLock`,e[e.Kana=21]=`Kana`,e[e.Hangeul=21]=`Hangeul`,e[e.Hangul=21]=`Hangul`,e[e.Junja=23]=`Junja`,e[e.Final=24]=`Final`,e[e.Hanja=25]=`Hanja`,e[e.Kanji=25]=`Kanji`,e[e.Escape=27]=`Escape`,e[e.Convert=28]=`Convert`,e[e.NonConvert=29]=`NonConvert`,e[e.Accept=30]=`Accept`,e[e.ModeChange=31]=`ModeChange`,e[e.Space=32]=`Space`,e[e.Prior=33]=`Prior`,e[e.Next=34]=`Next`,e[e.End=35]=`End`,e[e.Home=36]=`Home`,e[e.Left=37]=`Left`,e[e.Up=38]=`Up`,e[e.Right=39]=`Right`,e[e.Down=40]=`Down`,e[e.Select=41]=`Select`,e[e.Print=42]=`Print`,e[e.Execute=43]=`Execute`,e[e.Snapshot=44]=`Snapshot`,e[e.Insert=45]=`Insert`,e[e.Delete=46]=`Delete`,e[e.Help=47]=`Help`,e[e.N0=48]=`N0`,e[e.N1=49]=`N1`,e[e.N2=50]=`N2`,e[e.N3=51]=`N3`,e[e.N4=52]=`N4`,e[e.N5=53]=`N5`,e[e.N6=54]=`N6`,e[e.N7=55]=`N7`,e[e.N8=56]=`N8`,e[e.N9=57]=`N9`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.LeftWindows=91]=`LeftWindows`,e[e.RightWindows=92]=`RightWindows`,e[e.Application=93]=`Application`,e[e.Sleep=95]=`Sleep`,e[e.Numpad0=96]=`Numpad0`,e[e.Numpad1=97]=`Numpad1`,e[e.Numpad2=98]=`Numpad2`,e[e.Numpad3=99]=`Numpad3`,e[e.Numpad4=100]=`Numpad4`,e[e.Numpad5=101]=`Numpad5`,e[e.Numpad6=102]=`Numpad6`,e[e.Numpad7=103]=`Numpad7`,e[e.Numpad8=104]=`Numpad8`,e[e.Numpad9=105]=`Numpad9`,e[e.Multiply=106]=`Multiply`,e[e.Add=107]=`Add`,e[e.Separator=108]=`Separator`,e[e.Subtract=109]=`Subtract`,e[e.Decimal=110]=`Decimal`,e[e.Divide=111]=`Divide`,e[e.F1=112]=`F1`,e[e.F2=113]=`F2`,e[e.F3=114]=`F3`,e[e.F4=115]=`F4`,e[e.F5=116]=`F5`,e[e.F6=117]=`F6`,e[e.F7=118]=`F7`,e[e.F8=119]=`F8`,e[e.F9=120]=`F9`,e[e.F10=121]=`F10`,e[e.F11=122]=`F11`,e[e.F12=123]=`F12`,e[e.F13=124]=`F13`,e[e.F14=125]=`F14`,e[e.F15=126]=`F15`,e[e.F16=127]=`F16`,e[e.F17=128]=`F17`,e[e.F18=129]=`F18`,e[e.F19=130]=`F19`,e[e.F20=131]=`F20`,e[e.F21=132]=`F21`,e[e.F22=133]=`F22`,e[e.F23=134]=`F23`,e[e.F24=135]=`F24`,e[e.NumLock=144]=`NumLock`,e[e.ScrollLock=145]=`ScrollLock`,e[e.NEC_Equal=146]=`NEC_Equal`,e[e.Fujitsu_Jisho=146]=`Fujitsu_Jisho`,e[e.Fujitsu_Masshou=147]=`Fujitsu_Masshou`,e[e.Fujitsu_Touroku=148]=`Fujitsu_Touroku`,e[e.Fujitsu_Loya=149]=`Fujitsu_Loya`,e[e.Fujitsu_Roya=150]=`Fujitsu_Roya`,e[e.LeftShift=160]=`LeftShift`,e[e.RightShift=161]=`RightShift`,e[e.LeftControl=162]=`LeftControl`,e[e.RightControl=163]=`RightControl`,e[e.LeftMenu=164]=`LeftMenu`,e[e.RightMenu=165]=`RightMenu`,e[e.BrowserBack=166]=`BrowserBack`,e[e.BrowserForward=167]=`BrowserForward`,e[e.BrowserRefresh=168]=`BrowserRefresh`,e[e.BrowserStop=169]=`BrowserStop`,e[e.BrowserSearch=170]=`BrowserSearch`,e[e.BrowserFavorites=171]=`BrowserFavorites`,e[e.BrowserHome=172]=`BrowserHome`,e[e.VolumeMute=173]=`VolumeMute`,e[e.VolumeDown=174]=`VolumeDown`,e[e.VolumeUp=175]=`VolumeUp`,e[e.MediaNextTrack=176]=`MediaNextTrack`,e[e.MediaPrevTrack=177]=`MediaPrevTrack`,e[e.MediaStop=178]=`MediaStop`,e[e.MediaPlayPause=179]=`MediaPlayPause`,e[e.LaunchMail=180]=`LaunchMail`,e[e.LaunchMediaSelect=181]=`LaunchMediaSelect`,e[e.LaunchApplication1=182]=`LaunchApplication1`,e[e.LaunchApplication2=183]=`LaunchApplication2`,e[e.OEM1=186]=`OEM1`,e[e.OEMPlus=187]=`OEMPlus`,e[e.OEMComma=188]=`OEMComma`,e[e.OEMMinus=189]=`OEMMinus`,e[e.OEMPeriod=190]=`OEMPeriod`,e[e.OEM2=191]=`OEM2`,e[e.OEM3=192]=`OEM3`,e[e.OEM4=219]=`OEM4`,e[e.OEM5=220]=`OEM5`,e[e.OEM6=221]=`OEM6`,e[e.OEM7=222]=`OEM7`,e[e.OEM8=223]=`OEM8`,e[e.OEMAX=225]=`OEMAX`,e[e.OEM102=226]=`OEM102`,e[e.ICOHelp=227]=`ICOHelp`,e[e.ICO00=228]=`ICO00`,e[e.ProcessKey=229]=`ProcessKey`,e[e.ICOClear=230]=`ICOClear`,e[e.Packet=231]=`Packet`,e[e.OEMReset=233]=`OEMReset`,e[e.OEMJump=234]=`OEMJump`,e[e.OEMPA1=235]=`OEMPA1`,e[e.OEMPA2=236]=`OEMPA2`,e[e.OEMPA3=237]=`OEMPA3`,e[e.OEMWSCtrl=238]=`OEMWSCtrl`,e[e.OEMCUSel=239]=`OEMCUSel`,e[e.OEMATTN=240]=`OEMATTN`,e[e.OEMFinish=241]=`OEMFinish`,e[e.OEMCopy=242]=`OEMCopy`,e[e.OEMAuto=243]=`OEMAuto`,e[e.OEMENLW=244]=`OEMENLW`,e[e.OEMBackTab=245]=`OEMBackTab`,e[e.ATTN=246]=`ATTN`,e[e.CRSel=247]=`CRSel`,e[e.EXSel=248]=`EXSel`,e[e.EREOF=249]=`EREOF`,e[e.Play=250]=`Play`,e[e.Zoom=251]=`Zoom`,e[e.Noname=252]=`Noname`,e[e.PA1=253]=`PA1`,e[e.OEMClear=254]=`OEMClear`,e}(Y||{});const sn=new Map([[Y.LeftButton,`LeftButton`],[Y.RightButton,`RightButton`],[Y.Cancel,`Cancel`],[Y.MiddleButton,`MiddleButton`],[Y.ExtraButton1,`ExtraButton1`],[Y.ExtraButton2,`ExtraButton2`],[Y.Back,`Backspace`],[Y.Tab,`Tab`],[Y.Clear,`Clear`],[Y.Return,`Enter`],[Y.Shift,`ShiftLeft`],[Y.Control,`ControlLeft`],[Y.Menu,`AltLeft`],[Y.Pause,`Pause`],[Y.CapsLock,`CapsLock`],[Y.Kana,`KanaMode`],[Y.Junja,`JunjaMode`],[Y.Final,`Finalize`],[Y.Hanja,`HanjaMode`],[Y.Escape,`Escape`],[Y.Convert,`Convert`],[Y.NonConvert,`NonConvert`],[Y.Accept,`Accept`],[Y.ModeChange,`ModeChange`],[Y.Space,`Space`],[Y.Prior,`PageUp`],[Y.Next,`PageDown`],[Y.End,`End`],[Y.Home,`Home`],[Y.Left,`ArrowLeft`],[Y.Up,`ArrowUp`],[Y.Right,`ArrowRight`],[Y.Down,`ArrowDown`],[Y.Select,`Select`],[Y.Print,`PrintScreen`],[Y.Execute,`Execute`],[Y.Snapshot,`Snapshot`],[Y.Insert,`Insert`],[Y.Delete,`Delete`],[Y.Help,`Help`],[Y.N0,`Digit0`],[Y.N1,`Digit1`],[Y.N2,`Digit2`],[Y.N3,`Digit3`],[Y.N4,`Digit4`],[Y.N5,`Digit5`],[Y.N6,`Digit6`],[Y.N7,`Digit7`],[Y.N8,`Digit8`],[Y.N9,`Digit9`],[Y.A,`KeyA`],[Y.B,`KeyB`],[Y.C,`KeyC`],[Y.D,`KeyD`],[Y.E,`KeyE`],[Y.F,`KeyF`],[Y.G,`KeyG`],[Y.H,`KeyH`],[Y.I,`KeyI`],[Y.J,`KeyJ`],[Y.K,`KeyK`],[Y.L,`KeyL`],[Y.M,`KeyM`],[Y.N,`KeyN`],[Y.O,`KeyO`],[Y.P,`KeyP`],[Y.Q,`KeyQ`],[Y.R,`KeyR`],[Y.S,`KeyS`],[Y.T,`KeyT`],[Y.U,`KeyU`],[Y.V,`KeyV`],[Y.W,`KeyW`],[Y.X,`KeyX`],[Y.Y,`KeyY`],[Y.Z,`KeyZ`],[Y.LeftWindows,`MetaLeft`],[Y.RightWindows,`MetaRight`],[Y.Application,`ContextMenu`],[Y.Sleep,`Sleep`],[Y.Numpad0,`Numpad0`],[Y.Numpad1,`Numpad1`],[Y.Numpad2,`Numpad2`],[Y.Numpad3,`Numpad3`],[Y.Numpad4,`Numpad4`],[Y.Numpad5,`Numpad5`],[Y.Numpad6,`Numpad6`],[Y.Numpad7,`Numpad7`],[Y.Numpad8,`Numpad8`],[Y.Numpad9,`Numpad9`],[Y.Multiply,`NumpadMultiply`],[Y.Add,`NumpadAdd`],[Y.Separator,`NumpadSeparator`],[Y.Subtract,`NumpadSubtract`],[Y.Decimal,`NumpadDecimal`],[Y.Divide,`NumpadDivide`],[Y.F1,`F1`],[Y.F2,`F2`],[Y.F3,`F3`],[Y.F4,`F4`],[Y.F5,`F5`],[Y.F6,`F6`],[Y.F7,`F7`],[Y.F8,`F8`],[Y.F9,`F9`],[Y.F10,`F10`],[Y.F11,`F11`],[Y.F12,`F12`],[Y.F13,`F13`],[Y.F14,`F14`],[Y.F15,`F15`],[Y.F16,`F16`],[Y.F17,`F17`],[Y.F18,`F18`],[Y.F19,`F19`],[Y.F20,`F20`],[Y.F21,`F21`],[Y.F22,`F22`],[Y.F23,`F23`],[Y.F24,`F24`],[Y.NumLock,`NumLock`],[Y.ScrollLock,`ScrollLock`],[Y.NEC_Equal,`NEC_Equal`],[Y.Fujitsu_Masshou,`Fujitsu_Masshou`],[Y.Fujitsu_Touroku,`Fujitsu_Touroku`],[Y.Fujitsu_Loya,`Fujitsu_Loya`],[Y.Fujitsu_Roya,`Fujitsu_Roya`],[Y.LeftShift,`ShiftLeft`],[Y.RightShift,`ShiftRight`],[Y.LeftControl,`ControlLeft`],[Y.RightControl,`ControlRight`],[Y.LeftMenu,`AltLeft`],[Y.RightMenu,`AltRight`],[Y.BrowserBack,`BrowserBack`],[Y.BrowserForward,`BrowserForward`],[Y.BrowserRefresh,`BrowserRefresh`],[Y.BrowserStop,`BrowserStop`],[Y.BrowserSearch,`BrowserSearch`],[Y.BrowserFavorites,`BrowserFavorites`],[Y.BrowserHome,`BrowserHome`],[Y.VolumeMute,`VolumeMute`],[Y.VolumeDown,`VolumeDown`],[Y.VolumeUp,`VolumeUp`],[Y.MediaNextTrack,`MediaTrackNext`],[Y.MediaPrevTrack,`MediaTrackPrevious`],[Y.MediaStop,`MediaStop`],[Y.MediaPlayPause,`MediaPlayPause`],[Y.LaunchMail,`LaunchMail`],[Y.LaunchMediaSelect,`LaunchMediaSelect`],[Y.LaunchApplication1,`LaunchApplication1`],[Y.LaunchApplication2,`LaunchApplication2`],[Y.OEM1,`OEM_1`],[Y.OEMPlus,`Equal`],[Y.OEMComma,`Comma`],[Y.OEMMinus,`Minus`],[Y.OEMPeriod,`Period`],[Y.OEM2,`Slash`],[Y.OEM3,`Backquote`],[Y.OEM4,`BracketLeft`],[Y.OEM5,`Backslash`],[Y.OEM6,`BracketRight`],[Y.OEM7,`Quote`],[Y.OEM8,`IntlRo`],[Y.OEMAX,`OEM_AX`],[Y.OEM102,`IntlBackslash`],[Y.ICOHelp,`ICO_HELP`],[Y.ICO00,`ICO_00`],[Y.ProcessKey,`Process`],[Y.ICOClear,`ICO_CLEAR`],[Y.Packet,`Packet`],[Y.OEMReset,`OEM_Reset`],[Y.OEMJump,`OEM_Jump`],[Y.OEMPA1,`OEM_PA1`],[Y.OEMPA2,`OEM_PA2`],[Y.OEMPA3,`OEM_PA3`],[Y.OEMWSCtrl,`OEM_WS_Ctrl`],[Y.OEMCUSel,`OEM_CU_Sel`],[Y.OEMATTN,`OEM_ATTN`],[Y.OEMFinish,`OEM_Finish`],[Y.OEMCopy,`OEM_Copy`],[Y.OEMAuto,`OEM_Auto`],[Y.OEMENLW,`OEM_ENLW`],[Y.OEMBackTab,`BackTab`],[Y.ATTN,`ATTN`],[Y.CRSel,`CRSel`],[Y.EXSel,`EXSel`],[Y.EREOF,`EREOF`],[Y.Play,`MediaPlay`],[Y.Zoom,`Zoom`],[Y.Noname,`Noname`],[Y.PA1,`PA1`],[Y.OEMClear,`OEM_Clear`]]),cn=new Map(sn.entries().map(([e,t])=>[t,e])),ln=n({"[string]":{keys:`string[]`,mode:n(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var un=class extends R{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 qe({path:Qt([`keybinds.json`]),schema:ln,default:e})}init(){super.init();let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.on(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.on(`keyDown`,this.boundHandleKeyDown),e.instance.on(`keyUp`,this.boundHandleKeyUp)}async onKeybindToggled(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.toggle=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.down=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.up=t,this.preferencesKeybindToCallbacks.set(e,n)}async updateKeybind(e,t){this.keybindsFile.set({[e]:t})}async updateKeybinds(e){let t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0));this.keybindsFile.set({...this.keybindsFile.get(),...t})}getConfig(){return this.keybindsFile.get()}destroy(){let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.off(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.off(`keyDown`,this.boundHandleKeyDown),e.instance.off(`keyUp`,this.boundHandleKeyUp),super.destroy()}handleKeyDown(e){if(this.keybindListeningPaused)return;let t=sn.get(e.key);if(!t){this.logger.error(`Unknown key down`,e);return}this.pressedKeys.add(t),this.checkKeybindings()}handleKeyboardFocus(){this.pressedKeys.clear(),this.activeKeybinds.clear(),this.triggeredToggleKeybinds.clear()}async handleKeyUp(e){if(this.keybindListeningPaused)return;let t=sn.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries())n[e].keys.includes(t)&&this.triggeredToggleKeybinds.delete(e);this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up)continue;let r=e[t];this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))&&(this.activeKeybinds.delete(t),n.up(),this.logger.log(`Keybind up triggered`,this.getKeybindToString(r)))}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];if(r.keys.length===this.pressedKeys.size&&r.keys.every(e=>cn.has(e)?this.pressedKeys.has(e):!1)){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];r.keys.every(e=>cn.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1))&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&!this.triggeredToggleKeybinds.has(n)){let r=t.toggle();this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&!this.activeKeybinds.has(n)){let r=t.down();r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}};function dn(e){let t=new un(e),n={};for(let r in e)n[r]={on:(e,n)=>{switch(e){case`down`:t.onKeybindDown(r,n);break;case`up`:t.onKeybindUp(r,n);break;case`toggle`:t.onKeybindToggled(r,n);break;default:throw Error(`Event type not implemented ${e}`,{cause:[e,n]})}}};let r={...n,getConfig:()=>t.getConfig(),pauseKeybindListening:()=>{t.keybindListeningPaused=!0},resumeKeybindListening:()=>{t.keybindListeningPaused=!1},updateKeybind:(e,n)=>{t.updateKeybind(e,n)},updateKeybinds:e=>{t.updateKeybinds(e)}};return t.init(),pe.on(`quit`,()=>{t.destroy()}),r}function X(){return W.getInstance().getInterface(`OGG_SIEGE`)}function fn(){let e=K.getInstance(),t=P.getInstance(),n=G.getInstance();n.meta=pn(),e.on([`gameReady`,`gameClose`],()=>{n.meta||=pn(),n.meta.in_game=e.isInGame}),t.on(`fatal`,e=>{n.track(`fatal`,{message:e.message,code:e.code,data:JSON.stringify(e.data)})}),t.on(`error`,e=>{n.track(`error`,{code:e.code,message:e.message,data:JSON.stringify(e.data)})}),t.on(`warning`,e=>{n.track(`warning`,{message:e.message,code:e.code,data:JSON.stringify(e.data)})})}function pn(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id: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 mn(){function e(e,t){return e.once(`closed`,()=>{e.isDestroyed()||G.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||G.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),G.getInstance().track(`window_created`,{url:e.webContents.getURL(),in_game:t}),e}return{createWindow:t=>e(new global.OVERLAYED.electron.BrowserWindow(t),!1),createInGameWindow:t=>e(X().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>X().instance.on(e,t),off:(e,t)=>X().instance.off(e,t),once:(e,t)=>X().instance.once(e,t),addListener:(e,t)=>X().instance.addListener(e,t),removeListener:(e,t)=>X().instance.removeListener(e,t),removeAllListeners:()=>X().instance.removeAllListeners(),prependListener:(e,t)=>X().instance.prependListener(e,t),prependOnceListener:(e,t)=>X().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=X(),t=L.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const hn=N(class extends _t{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=W.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}},`OGG_SIEGE`);function gn(){return{scope:e=>hn.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>X().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>X().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>X().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>X().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>X().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>X().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>X().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>X().instance.getKeyInputBlock(e)}}}function _n(){return{track:(e,t)=>{G.getInstance().track(`custom__${String(e)}`,t)}}}var vn=Se(be(((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}}))(),1);function yn(){return{registerWindow:e=>{(0,vn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function bn(e){let t=Qe(global.OVERLAYED.APPLICATION_ID),n=nt(t,{recursive:!0}),r=Xe(),i=nt(r,{recursive:!0});I.getInstance().info(`Logs path: `,t),I.getInstance().info(`Overlayed logs path: `,r);let a=new _;return[...n,...i].forEach(([e,t])=>{I.getInstance().info(`Zipping: `,t);let n=ae(t),r=m(t);a.file(r,n,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{I.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function xn(e,t){let n={...e,version:`${global.OVERLAYED.APP_VERSION}@${global.OVERLAYED.APP_BUILD_CHANNEL}`,log_zip:`data:application/zip;base64,${t}`};await fetch(`https://api.stats.cc/v1/overlay/contact`,{method:`POST`,body:JSON.stringify(n),redirect:`follow`,headers:{"Content-Type":`application/json`}})}function Sn(e){let t=new et(`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});let n=await bn(t).generateAsync({type:`base64`});await xn(e,n)}}}const Cn=1e3;function wn(e,t,r,i,a){let o=L.getInstance();function s(e,t){let n=r.get(t);if(!n)r.set(t,[e]);else{if(n.length>=Cn){P.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${n.length}, max: ${Cn}`});return}n.push(e)}}function c(r){let i=$t(r);if(i instanceof n.errors){G.getInstance().track(`invalid_game_event`,{}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=e.modules.find(e=>e.key===i.game);if(!o)return;let c=o.events.event,l=c(r);if(l instanceof n.errors){if(`type`in l.byPath)return;G.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:l.summary});return}if(!a[o.key]){s(l,o.key);return}if(l.type===`unsupported_game_version`){let{content:e}=l;G.getInstance().track(`unsupported_game_version`,{game:l.game,hash:e?.hash,version:e?.version})}let u=J(o.key,l.type),d=J(o.key,`*`),f=t.get(u),p=t.get(d),m=[...Array.from(f??[]),...Array.from(p??[])];m.length!==0&&m.forEach(e=>{e(l)})}return i.on(`flushEvents`,e=>{if(a[e])return;a[e]=!0;let t=r.get(e);t&&(I.getInstance().info(`Flushing ${t.length} events for module ${e}`),t.forEach(e=>c(e)),r.delete(e))}),o.on(`data`,e=>e.forEach(c)),o.on(`error`,e=>{P.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o}let Z=!1,Tn={},Q,En=new M,$;function Dn(e){let{init:t=!0,debug:n=!1,silent:r=!0}=e;if(On(e),I.getInstance().init(e.applicationId,n,r),Z)return Q;function i(){if(Z)return;fn();let t=new Map,n=new Map,r=an(e.modules,t,En),a=on(),o=dn(e.keybinds),s=mn(),c=gn(),l=yn(),u=_n(),d=Sn(e);kn(e),wn(e,t,n,En,Tn),Z=!0,Q={...r,...a,ads:l,keybinds:o,windows:s,input:c,cortex:u,hasAnyActiveProcesses:()=>U.getInstance().hasAnyActiveProcesses,hasAnyActiveGames:()=>K.getInstance().isInGame,init:i,log:d,initialized:Z}}return t?(i(),Q):new Proxy({init:i},{get:(e,t)=>{if(t!==`init`&&!Z)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Q[t]}})}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function On(e){global.OVERLAYED={APPLICATION_ID:wt(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.24.3`,FRONTEND_VERSION:`0.0.0`,sessionId:tn(),electron:e.electron}}function kn(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);K.getInstance().setSubscribedGames(t),Zt.getInstance().init(),K.getInstance().init(),U.getInstance().init(),H.getInstance().init();async function n(){let e=Tt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=en();I.getInstance().log(`userId`,t);let n={...await e,userId:t};return I.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r??=n(),r)),G.getInstance().track(`start`,{});try{$&&clearInterval($),$=setInterval(()=>{try{nn()}catch{}},3e4),$.unref()}catch(e){I.getInstance().log(`failed to start sessionLastUsed interval`,e)}pe.on(`quit`,()=>{G.getInstance().track(`electron_quit`,{}),An()}),process.on(`exit`,()=>{G.getInstance().track(`exit`,{}),An()})}async function An(){try{nn()}catch{}try{$&&clearInterval($),$=void 0}catch{}await G.getInstance().flush(),H.getInstance().destroy(),K.getInstance().destroy(),Zt.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),L.getInstance().destroy(),P.getInstance().destroy()}function jn(e,t){return e+t}export{ht as RenderInterface,gt as VirtualKey,jn as add,at as defineConfig,Dn as overlayed,zt as setFetchLatestTokenCallback,bt as setUpdaterTokenResolver};
5
+ `);return a!==-1&&(t=Ie(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);const Ge=O();O({level:Re?Re.level:0});var j=Ge,M=class{emitter;constructor(){this.emitter=r()}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()}},Ke=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 N(e,...t){return class extends e{static _instance;static getInstance(){return this._instance||=new e(...t),this._instance}static clearInstance(){this._instance=void 0}}}const P=N(class extends M{destroy(){this.removeAllListeners()}fatal(e,t,n){this.emit(`fatal`,{code:t,message:e,data:n,timestamp:Date.now()})}error(e,t,n){this.emit(`error`,{code:t,message:e,data:n,timestamp:Date.now()})}warn(e,t,n){this.emit(`warning`,{code:t,message:e,data:n,timestamp:Date.now()})}});var qe=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{d(this.getFilePath()),i.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(){if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return this.data=e,e}try{let e=i.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=n(`string.json.parse`).to(`object`)(e);if(t instanceof n.errors)return this._defaultValue;let r=this._schema[`~standard`].validate(t);if(r instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return r.issues?this.migrate(t,this._defaultValue):this.migrate(r.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return i.accessSync(e,i.constants.R_OK|i.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return i.accessSync(e,i.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]);return n}reportInvalidConfigFile(e){P.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}};function Je(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 Ye=class e extends M{stream;logPath;baseFileName;currentDate;rotationCheckInterval;isRotating=!1;constructor(e,t){super(),this.logPath=e,this.baseFileName=t.replace(`.log`,``),this.currentDate=this.getDateString(new Date),this.ensureLogDirectory(),this.ensureLogFile(),this.stream=this.createStream(),this.rotationCheckInterval=this.startRotationCheck(),this.cleanupOldLogs()}static scope(t,n){return new e(t,n)}log(...e){this.write(`log`,...e)}error(...e){this.write(`error`,...e)}warn(...e){this.write(`warn`,...e)}info(...e){this.write(`info`,...e)}debug(...e){this.write(`debug`,...e)}async close(){clearInterval(this.rotationCheckInterval),await new Promise(e=>{this.stream.end(()=>e())})}getCurrentFileName(){return this.getFileName(this.currentDate)}static getMessageElements(e,...t){let n=new Date,r=n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getMilliseconds().toString().padStart(3,`0`)}`,i=t.map(e=>Je(e)).join(` `);return{timestamp:r,level:e,message:i}}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{s(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=f(this.logPath,this.getFileName(this.currentDate));if(!o(e))try{u(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return e.toISOString().split(`T`)[0]}createStream(){let e=f(this.logPath,this.getFileName(this.currentDate));return a(e,{flags:`a`,encoding:`utf8`})}async rotateLogs(){if(this.isRotating)return;this.isRotating=!0;let e=this.getDateString(new Date);e!==this.currentDate&&await new Promise(t=>{this.stream.end(()=>{this.currentDate=e,this.stream=this.createStream(),this.cleanupOldLogs(),t()})}),this.isRotating=!1}startRotationCheck(){return setInterval(()=>this.rotateLogs(),6e4)}cleanupOldLogs(){let e=c(this.logPath),t=new Date;t.setDate(t.getDate()-7),e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let n=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``);return new Date(n)<t}).forEach(e=>{try{l(f(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}write(t,...n){let{timestamp:r,message:i}=e.getMessageElements(t,...n),a=`[${r}] [${t}] ${i}\n`;this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}};const F=()=>p.join(process.env.APPDATA??``,`overlayed`),Xe=()=>p.join(F(),`logs`),Ze=e=>p.join(F(),`apps`,e),Qe=e=>p.join(Ze(e),`logs`),$e=()=>p.join(F(),`meta.json`);var et=class{fileLogger;path;appId;messageQueue=new Ce;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=Qe(e),this.fileLogger=new Ye(this.path,this.fileName),this.messageQueue.flush().forEach(e=>{this.fileLogger?.[e.type](...e.args)})}scope(e){if(!this.appId||!this.path)throw Error(`Logger not initialized`);let t=`[${e}]`;return{scope:e=>this.scope(e),error:(...e)=>this.error(t,...e),warn:(...e)=>this.warn(t,...e),info:(...e)=>this.info(t,...e),log:(...e)=>this.log(t,...e),debug:(...e)=>this.debug(t,...e)}}error(...e){this.handle(`error`,...e)}warn(...e){this.handle(`warn`,...e)}info(...e){this.handle(`log`,...e)}debug(...e){this._debug&&this.handle(`debug`,...e)}log(...e){this.handle(`log`,...e)}handle(e,...t){this.logToConsole(e,...t),this.fileLogger?this.fileLogger[e](...t):this.messageQueue.add({type:e,args:t})}logToConsole(e,...t){let n={error:j.red,warn:j.yellow,debug:j.blue,log:j.white};if(this.silent&&!this._debug)return;let{timestamp:r,message:i}=Ye.getMessageElements(e,...t),a=console[e],o=n[e];a(`${j.gray(r)} ${o(i)}`)}};const I=N(et,`overlayed.log`);var tt=class extends re{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 nt(e,t){let{recursive:n}=rt(t);return oe(e)?n?it(e).map(t=>[e,t]):le(e).map(t=>[e,t]):[]}function rt(e){return{recursive:e?.recursive??!0}}function it(e){return le(e,{withFileTypes:!0}).flatMap(t=>{let n=p.join(e,t.name);return t.isDirectory()?it(n):[n]})}function at(e){return e}const{PipeEventServer:ot,PipeEventClient:st,PipeEventBase:ct,ProcessMonitor:lt,Process:ut,HardwareInterface:dt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),ft=ot,L=N(class extends M{server=null;_hasConnection=!1;pipeId;get hasConnection(){return this._hasConnection}constructor(e){super(),this.pipeId=e,this.init()}destroy(){this.server&&=(this._hasConnection=!1,this.server?.removeAllListeners(),null)}init(){this.server=new ft(this.pipeId,{clientCount:1,access:1}),this.server.on(`event`,e=>{try{let t=JSON.parse(e);this.emit(`data`,[t])}catch(e){this.emit(`error`,e)}}),this.server.on(`connected`,()=>{this._hasConnection=!0}),this.server.on(`disconnected`,()=>{this._hasConnection=!1})}},`stats-cc`),{RenderInterface:pt,renderHookPath:mt}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`),ht=pt;let gt=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}({});var _t=class{logger;initialized=!1;constructor(e){this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},R=class extends M{logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},vt=class extends Ke{logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const z=de.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let yt;function bt(e){yt=e}z.interceptors.request.use(e=>{let t=yt?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const B=de.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});B.interceptors.request.use(e=>(e.headers??={},e));function xt(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 St(e){return e}function Ct(e){return e?t=>(e(t),t):St}const wt=Ct();function Tt(e){return B.get(`/v1/public/applications/${e}`)}function Et(e,t,n){return z.get(`/v1/native/${Ot(e)}/version.txt`,{params:{channel:t},responseType:`text`,headers:{"X-App-Version":kt(n,t)}})}function Dt(e,t,n){return z.get(`/v1/native/${Ot(e)}/files`,{params:{channel:t},responseType:`arraybuffer`,headers:{"X-App-Version":kt(n,t)}})}function Ot(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function kt(e,t){return`desktop-application/${e} (channel=${t})`}function At(){return B.get(`/v1/public/raven/config`)}function jt(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Mt(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Nt(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 Pt(e){let t=Date.now(),n=e.messages.map(e=>Ft(t,e)),r=xt(n,250),i=Promise.all(r.map(async t=>B.post(`/v1/public/cortex/events`,{...e,messages:t})));return i.catch(e=>{let t=e?.response?.data||e?.message||e;console.error(`Failed to submit cortex events`,t)}),i}function Ft(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 It(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Lt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Rt;function zt(e){Rt=e}const V=N(class extends R{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=p.join(F(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await g.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=p.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await g.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return p.join(this.targetDir,e)}getTargetVersionPath(e,t){return p.join(this.getTargetPath(e),t)}async checkForUpdates(e){let t=global.OVERLAYED.APP_BUILD_CHANNEL;if(this.logger.log(`Checking for updates`),!t){this.logger.error(`Invalid VITE_BUILD_CHANNEL`);return}await Rt?.();for(let n of e)try{let{data:e}=await Et(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;this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t,i),this.logger.log(`${n} > Downloaded and extracted`),i&&(this.logger.log(`${n} > Cleaning up versions older than ${e}`),await this.cleanupOldVersions(n,e)),this.emit(`dllUpdated`,{identifier:n,version:e})}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n,r){let{data:i}=await Dt(e,n,global.OVERLAYED.APP_VERSION),a=this.getTargetPath(e),o=this.getTargetVersionPath(e,t);await g.mkdir(o,{recursive:!0});let s=new _;await s.loadAsync(i);let c=Object.keys(s.files).map(async t=>{let n=s.files[t];if(n&&!n.dir){let i=p.join(o,t);if(!r)try{await g.access(i,g.constants.F_OK);return}catch{this.logger.warn(`${e} > File missing, re-downloading: ${i}`)}let a=await n.async(`nodebuffer`);await g.writeFile(i,a)}});await Promise.all(c);let l=p.join(a,`version.txt`);this.logger.log(`Saving version file`,l),await g.writeFile(l,t)}async cleanupOldVersions(e,t){let n=p.join(this.targetDir,e),r=await g.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await g.rm(p.join(n,e.name),{recursive:!0,force:!0})}}),H=N(class extends R{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 At()).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:Bt,PipeEventClient:Vt,PipeEventBase:Ht,ProcessMonitor:Ut,Process:Wt,HardwareInterface:Gt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),Kt=Gt,qt=Ut,Jt=Wt,U=N(class extends R{_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.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 Yt=class{_instance;_resolution;boundOnResolutionChanged=this.onResolutionChanged.bind(this);constructor(e){this._instance=e,this._resolution={width:0,height:0},this._instance.on(`resolution`,this.boundOnResolutionChanged)}destroy(){this._instance.off(`resolution`,this.boundOnResolutionChanged)}get instance(){return this._instance}get resolution(){return this._resolution}onResolutionChanged(e,t){this._resolution={width:e,height:t}}};const W=N(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new Yt(new ht(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),G=N(class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new Ce,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{Pt({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}}),Xt=e(import.meta.url).resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),K=N(class extends vt{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()}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){P.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!r.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:r.isElevated,gameElevated:e.isElevated});return}let i=this.copyDll(Xt);if(i)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 a=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=p.basename(t),i=p.join(r,n);if(!i)return Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(a),this._activeReadyRavenGames.add(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),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=p.basename(e),n=ee(e),r=p.join(F(),`resources`),i=p.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{oe(r)||se(r,{recursive:!0});let e=ce(n);ue(i,e),ie(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 g.readdir(e)).filter(e=>e.endsWith(`.dll`)).map(t=>p.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this._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}}),Zt=N(class extends _t{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),K.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){K.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=ce(n.path),i=fe(`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 jt(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 _;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 tt(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Mt(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 Nt(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){It(e)?Lt(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 Qt(e=[]){return p.normalize(p.join(Ze(global.OVERLAYED.APPLICATION_ID),...e))}const $t=n({game:`string`,type:`string`,creation_time:`number`}),q=new qe({path:$e(),schema:n({userId:`string | undefined`,sessionId:`string | undefined`,sessionLastUsed:`number | undefined`}),default:{userId:void 0,sessionId:void 0,sessionLastUsed:void 0}});function en(){let e=q.get().userId;if(e)return e;let t=rn();return q.set({...q.get(),userId:t}),t}function tn(){let e=q.get();if(e.sessionId&&typeof e.sessionLastUsed==`number`&&Date.now()-e.sessionLastUsed<=300*1e3)return e.sessionId;let t=crypto.randomUUID();return q.set({...e,sessionId:t,sessionLastUsed:Date.now()}),t}function nn(){try{let e=q.get();q.set({...e,sessionLastUsed:Date.now()})}catch(e){I.getInstance().log(`Failed to update sessionLastUsed`,e)}}function rn(){try{return Kt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}function J(e,t){return`${e}:${t}`}function an(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=J(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=J(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=J(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=J(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function on(){let e=P.getInstance(),t=K.getInstance();return{on:(n,r)=>{switch(n){case`fatal`:e.on(`fatal`,r);break;case`error`:e.on(`error`,r);break;case`warning`:e.on(`warning`,r);break;case`gameLaunch`:t.on(`gameLaunch`,r);break;case`gameClose`:t.on(`gameClose`,r);break;case`gameReady`:t.on(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}},off:(n,r)=>{switch(n){case`fatal`:e.off(`fatal`,r);break;case`error`:e.off(`error`,r);break;case`warning`:e.off(`warning`,r);break;case`gameLaunch`:t.off(`gameLaunch`,r);break;case`gameClose`:t.off(`gameClose`,r);break;case`gameReady`:t.off(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}}}}var Y=function(e){return e[e.LeftButton=1]=`LeftButton`,e[e.RightButton=2]=`RightButton`,e[e.Cancel=3]=`Cancel`,e[e.MiddleButton=4]=`MiddleButton`,e[e.ExtraButton1=5]=`ExtraButton1`,e[e.ExtraButton2=6]=`ExtraButton2`,e[e.Back=8]=`Back`,e[e.Tab=9]=`Tab`,e[e.Clear=12]=`Clear`,e[e.Return=13]=`Return`,e[e.Shift=16]=`Shift`,e[e.Control=17]=`Control`,e[e.Menu=18]=`Menu`,e[e.Pause=19]=`Pause`,e[e.CapsLock=20]=`CapsLock`,e[e.Kana=21]=`Kana`,e[e.Hangeul=21]=`Hangeul`,e[e.Hangul=21]=`Hangul`,e[e.Junja=23]=`Junja`,e[e.Final=24]=`Final`,e[e.Hanja=25]=`Hanja`,e[e.Kanji=25]=`Kanji`,e[e.Escape=27]=`Escape`,e[e.Convert=28]=`Convert`,e[e.NonConvert=29]=`NonConvert`,e[e.Accept=30]=`Accept`,e[e.ModeChange=31]=`ModeChange`,e[e.Space=32]=`Space`,e[e.Prior=33]=`Prior`,e[e.Next=34]=`Next`,e[e.End=35]=`End`,e[e.Home=36]=`Home`,e[e.Left=37]=`Left`,e[e.Up=38]=`Up`,e[e.Right=39]=`Right`,e[e.Down=40]=`Down`,e[e.Select=41]=`Select`,e[e.Print=42]=`Print`,e[e.Execute=43]=`Execute`,e[e.Snapshot=44]=`Snapshot`,e[e.Insert=45]=`Insert`,e[e.Delete=46]=`Delete`,e[e.Help=47]=`Help`,e[e.N0=48]=`N0`,e[e.N1=49]=`N1`,e[e.N2=50]=`N2`,e[e.N3=51]=`N3`,e[e.N4=52]=`N4`,e[e.N5=53]=`N5`,e[e.N6=54]=`N6`,e[e.N7=55]=`N7`,e[e.N8=56]=`N8`,e[e.N9=57]=`N9`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.LeftWindows=91]=`LeftWindows`,e[e.RightWindows=92]=`RightWindows`,e[e.Application=93]=`Application`,e[e.Sleep=95]=`Sleep`,e[e.Numpad0=96]=`Numpad0`,e[e.Numpad1=97]=`Numpad1`,e[e.Numpad2=98]=`Numpad2`,e[e.Numpad3=99]=`Numpad3`,e[e.Numpad4=100]=`Numpad4`,e[e.Numpad5=101]=`Numpad5`,e[e.Numpad6=102]=`Numpad6`,e[e.Numpad7=103]=`Numpad7`,e[e.Numpad8=104]=`Numpad8`,e[e.Numpad9=105]=`Numpad9`,e[e.Multiply=106]=`Multiply`,e[e.Add=107]=`Add`,e[e.Separator=108]=`Separator`,e[e.Subtract=109]=`Subtract`,e[e.Decimal=110]=`Decimal`,e[e.Divide=111]=`Divide`,e[e.F1=112]=`F1`,e[e.F2=113]=`F2`,e[e.F3=114]=`F3`,e[e.F4=115]=`F4`,e[e.F5=116]=`F5`,e[e.F6=117]=`F6`,e[e.F7=118]=`F7`,e[e.F8=119]=`F8`,e[e.F9=120]=`F9`,e[e.F10=121]=`F10`,e[e.F11=122]=`F11`,e[e.F12=123]=`F12`,e[e.F13=124]=`F13`,e[e.F14=125]=`F14`,e[e.F15=126]=`F15`,e[e.F16=127]=`F16`,e[e.F17=128]=`F17`,e[e.F18=129]=`F18`,e[e.F19=130]=`F19`,e[e.F20=131]=`F20`,e[e.F21=132]=`F21`,e[e.F22=133]=`F22`,e[e.F23=134]=`F23`,e[e.F24=135]=`F24`,e[e.NumLock=144]=`NumLock`,e[e.ScrollLock=145]=`ScrollLock`,e[e.NEC_Equal=146]=`NEC_Equal`,e[e.Fujitsu_Jisho=146]=`Fujitsu_Jisho`,e[e.Fujitsu_Masshou=147]=`Fujitsu_Masshou`,e[e.Fujitsu_Touroku=148]=`Fujitsu_Touroku`,e[e.Fujitsu_Loya=149]=`Fujitsu_Loya`,e[e.Fujitsu_Roya=150]=`Fujitsu_Roya`,e[e.LeftShift=160]=`LeftShift`,e[e.RightShift=161]=`RightShift`,e[e.LeftControl=162]=`LeftControl`,e[e.RightControl=163]=`RightControl`,e[e.LeftMenu=164]=`LeftMenu`,e[e.RightMenu=165]=`RightMenu`,e[e.BrowserBack=166]=`BrowserBack`,e[e.BrowserForward=167]=`BrowserForward`,e[e.BrowserRefresh=168]=`BrowserRefresh`,e[e.BrowserStop=169]=`BrowserStop`,e[e.BrowserSearch=170]=`BrowserSearch`,e[e.BrowserFavorites=171]=`BrowserFavorites`,e[e.BrowserHome=172]=`BrowserHome`,e[e.VolumeMute=173]=`VolumeMute`,e[e.VolumeDown=174]=`VolumeDown`,e[e.VolumeUp=175]=`VolumeUp`,e[e.MediaNextTrack=176]=`MediaNextTrack`,e[e.MediaPrevTrack=177]=`MediaPrevTrack`,e[e.MediaStop=178]=`MediaStop`,e[e.MediaPlayPause=179]=`MediaPlayPause`,e[e.LaunchMail=180]=`LaunchMail`,e[e.LaunchMediaSelect=181]=`LaunchMediaSelect`,e[e.LaunchApplication1=182]=`LaunchApplication1`,e[e.LaunchApplication2=183]=`LaunchApplication2`,e[e.OEM1=186]=`OEM1`,e[e.OEMPlus=187]=`OEMPlus`,e[e.OEMComma=188]=`OEMComma`,e[e.OEMMinus=189]=`OEMMinus`,e[e.OEMPeriod=190]=`OEMPeriod`,e[e.OEM2=191]=`OEM2`,e[e.OEM3=192]=`OEM3`,e[e.OEM4=219]=`OEM4`,e[e.OEM5=220]=`OEM5`,e[e.OEM6=221]=`OEM6`,e[e.OEM7=222]=`OEM7`,e[e.OEM8=223]=`OEM8`,e[e.OEMAX=225]=`OEMAX`,e[e.OEM102=226]=`OEM102`,e[e.ICOHelp=227]=`ICOHelp`,e[e.ICO00=228]=`ICO00`,e[e.ProcessKey=229]=`ProcessKey`,e[e.ICOClear=230]=`ICOClear`,e[e.Packet=231]=`Packet`,e[e.OEMReset=233]=`OEMReset`,e[e.OEMJump=234]=`OEMJump`,e[e.OEMPA1=235]=`OEMPA1`,e[e.OEMPA2=236]=`OEMPA2`,e[e.OEMPA3=237]=`OEMPA3`,e[e.OEMWSCtrl=238]=`OEMWSCtrl`,e[e.OEMCUSel=239]=`OEMCUSel`,e[e.OEMATTN=240]=`OEMATTN`,e[e.OEMFinish=241]=`OEMFinish`,e[e.OEMCopy=242]=`OEMCopy`,e[e.OEMAuto=243]=`OEMAuto`,e[e.OEMENLW=244]=`OEMENLW`,e[e.OEMBackTab=245]=`OEMBackTab`,e[e.ATTN=246]=`ATTN`,e[e.CRSel=247]=`CRSel`,e[e.EXSel=248]=`EXSel`,e[e.EREOF=249]=`EREOF`,e[e.Play=250]=`Play`,e[e.Zoom=251]=`Zoom`,e[e.Noname=252]=`Noname`,e[e.PA1=253]=`PA1`,e[e.OEMClear=254]=`OEMClear`,e}(Y||{});const sn=new Map([[Y.LeftButton,`LeftButton`],[Y.RightButton,`RightButton`],[Y.Cancel,`Cancel`],[Y.MiddleButton,`MiddleButton`],[Y.ExtraButton1,`ExtraButton1`],[Y.ExtraButton2,`ExtraButton2`],[Y.Back,`Backspace`],[Y.Tab,`Tab`],[Y.Clear,`Clear`],[Y.Return,`Enter`],[Y.Shift,`ShiftLeft`],[Y.Control,`ControlLeft`],[Y.Menu,`AltLeft`],[Y.Pause,`Pause`],[Y.CapsLock,`CapsLock`],[Y.Kana,`KanaMode`],[Y.Junja,`JunjaMode`],[Y.Final,`Finalize`],[Y.Hanja,`HanjaMode`],[Y.Escape,`Escape`],[Y.Convert,`Convert`],[Y.NonConvert,`NonConvert`],[Y.Accept,`Accept`],[Y.ModeChange,`ModeChange`],[Y.Space,`Space`],[Y.Prior,`PageUp`],[Y.Next,`PageDown`],[Y.End,`End`],[Y.Home,`Home`],[Y.Left,`ArrowLeft`],[Y.Up,`ArrowUp`],[Y.Right,`ArrowRight`],[Y.Down,`ArrowDown`],[Y.Select,`Select`],[Y.Print,`PrintScreen`],[Y.Execute,`Execute`],[Y.Snapshot,`Snapshot`],[Y.Insert,`Insert`],[Y.Delete,`Delete`],[Y.Help,`Help`],[Y.N0,`Digit0`],[Y.N1,`Digit1`],[Y.N2,`Digit2`],[Y.N3,`Digit3`],[Y.N4,`Digit4`],[Y.N5,`Digit5`],[Y.N6,`Digit6`],[Y.N7,`Digit7`],[Y.N8,`Digit8`],[Y.N9,`Digit9`],[Y.A,`KeyA`],[Y.B,`KeyB`],[Y.C,`KeyC`],[Y.D,`KeyD`],[Y.E,`KeyE`],[Y.F,`KeyF`],[Y.G,`KeyG`],[Y.H,`KeyH`],[Y.I,`KeyI`],[Y.J,`KeyJ`],[Y.K,`KeyK`],[Y.L,`KeyL`],[Y.M,`KeyM`],[Y.N,`KeyN`],[Y.O,`KeyO`],[Y.P,`KeyP`],[Y.Q,`KeyQ`],[Y.R,`KeyR`],[Y.S,`KeyS`],[Y.T,`KeyT`],[Y.U,`KeyU`],[Y.V,`KeyV`],[Y.W,`KeyW`],[Y.X,`KeyX`],[Y.Y,`KeyY`],[Y.Z,`KeyZ`],[Y.LeftWindows,`MetaLeft`],[Y.RightWindows,`MetaRight`],[Y.Application,`ContextMenu`],[Y.Sleep,`Sleep`],[Y.Numpad0,`Numpad0`],[Y.Numpad1,`Numpad1`],[Y.Numpad2,`Numpad2`],[Y.Numpad3,`Numpad3`],[Y.Numpad4,`Numpad4`],[Y.Numpad5,`Numpad5`],[Y.Numpad6,`Numpad6`],[Y.Numpad7,`Numpad7`],[Y.Numpad8,`Numpad8`],[Y.Numpad9,`Numpad9`],[Y.Multiply,`NumpadMultiply`],[Y.Add,`NumpadAdd`],[Y.Separator,`NumpadSeparator`],[Y.Subtract,`NumpadSubtract`],[Y.Decimal,`NumpadDecimal`],[Y.Divide,`NumpadDivide`],[Y.F1,`F1`],[Y.F2,`F2`],[Y.F3,`F3`],[Y.F4,`F4`],[Y.F5,`F5`],[Y.F6,`F6`],[Y.F7,`F7`],[Y.F8,`F8`],[Y.F9,`F9`],[Y.F10,`F10`],[Y.F11,`F11`],[Y.F12,`F12`],[Y.F13,`F13`],[Y.F14,`F14`],[Y.F15,`F15`],[Y.F16,`F16`],[Y.F17,`F17`],[Y.F18,`F18`],[Y.F19,`F19`],[Y.F20,`F20`],[Y.F21,`F21`],[Y.F22,`F22`],[Y.F23,`F23`],[Y.F24,`F24`],[Y.NumLock,`NumLock`],[Y.ScrollLock,`ScrollLock`],[Y.NEC_Equal,`NEC_Equal`],[Y.Fujitsu_Masshou,`Fujitsu_Masshou`],[Y.Fujitsu_Touroku,`Fujitsu_Touroku`],[Y.Fujitsu_Loya,`Fujitsu_Loya`],[Y.Fujitsu_Roya,`Fujitsu_Roya`],[Y.LeftShift,`ShiftLeft`],[Y.RightShift,`ShiftRight`],[Y.LeftControl,`ControlLeft`],[Y.RightControl,`ControlRight`],[Y.LeftMenu,`AltLeft`],[Y.RightMenu,`AltRight`],[Y.BrowserBack,`BrowserBack`],[Y.BrowserForward,`BrowserForward`],[Y.BrowserRefresh,`BrowserRefresh`],[Y.BrowserStop,`BrowserStop`],[Y.BrowserSearch,`BrowserSearch`],[Y.BrowserFavorites,`BrowserFavorites`],[Y.BrowserHome,`BrowserHome`],[Y.VolumeMute,`VolumeMute`],[Y.VolumeDown,`VolumeDown`],[Y.VolumeUp,`VolumeUp`],[Y.MediaNextTrack,`MediaTrackNext`],[Y.MediaPrevTrack,`MediaTrackPrevious`],[Y.MediaStop,`MediaStop`],[Y.MediaPlayPause,`MediaPlayPause`],[Y.LaunchMail,`LaunchMail`],[Y.LaunchMediaSelect,`LaunchMediaSelect`],[Y.LaunchApplication1,`LaunchApplication1`],[Y.LaunchApplication2,`LaunchApplication2`],[Y.OEM1,`OEM_1`],[Y.OEMPlus,`Equal`],[Y.OEMComma,`Comma`],[Y.OEMMinus,`Minus`],[Y.OEMPeriod,`Period`],[Y.OEM2,`Slash`],[Y.OEM3,`Backquote`],[Y.OEM4,`BracketLeft`],[Y.OEM5,`Backslash`],[Y.OEM6,`BracketRight`],[Y.OEM7,`Quote`],[Y.OEM8,`IntlRo`],[Y.OEMAX,`OEM_AX`],[Y.OEM102,`IntlBackslash`],[Y.ICOHelp,`ICO_HELP`],[Y.ICO00,`ICO_00`],[Y.ProcessKey,`Process`],[Y.ICOClear,`ICO_CLEAR`],[Y.Packet,`Packet`],[Y.OEMReset,`OEM_Reset`],[Y.OEMJump,`OEM_Jump`],[Y.OEMPA1,`OEM_PA1`],[Y.OEMPA2,`OEM_PA2`],[Y.OEMPA3,`OEM_PA3`],[Y.OEMWSCtrl,`OEM_WS_Ctrl`],[Y.OEMCUSel,`OEM_CU_Sel`],[Y.OEMATTN,`OEM_ATTN`],[Y.OEMFinish,`OEM_Finish`],[Y.OEMCopy,`OEM_Copy`],[Y.OEMAuto,`OEM_Auto`],[Y.OEMENLW,`OEM_ENLW`],[Y.OEMBackTab,`BackTab`],[Y.ATTN,`ATTN`],[Y.CRSel,`CRSel`],[Y.EXSel,`EXSel`],[Y.EREOF,`EREOF`],[Y.Play,`MediaPlay`],[Y.Zoom,`Zoom`],[Y.Noname,`Noname`],[Y.PA1,`PA1`],[Y.OEMClear,`OEM_Clear`]]),cn=new Map(sn.entries().map(([e,t])=>[t,e])),ln=n({"[string]":{keys:`string[]`,mode:n(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var un=class extends R{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 qe({path:Qt([`keybinds.json`]),schema:ln,default:e})}init(){super.init();let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.on(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.on(`keyDown`,this.boundHandleKeyDown),e.instance.on(`keyUp`,this.boundHandleKeyUp)}async onKeybindToggled(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.toggle=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.down=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.up=t,this.preferencesKeybindToCallbacks.set(e,n)}async updateKeybind(e,t){this.keybindsFile.set({[e]:t})}async updateKeybinds(e){let t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0));this.keybindsFile.set({...this.keybindsFile.get(),...t})}getConfig(){return this.keybindsFile.get()}destroy(){let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.off(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.off(`keyDown`,this.boundHandleKeyDown),e.instance.off(`keyUp`,this.boundHandleKeyUp),super.destroy()}handleKeyDown(e){if(this.keybindListeningPaused)return;let t=sn.get(e.key);if(!t){this.logger.error(`Unknown key down`,e);return}this.pressedKeys.add(t),this.checkKeybindings()}handleKeyboardFocus(){this.pressedKeys.clear(),this.activeKeybinds.clear(),this.triggeredToggleKeybinds.clear()}async handleKeyUp(e){if(this.keybindListeningPaused)return;let t=sn.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries())n[e].keys.includes(t)&&this.triggeredToggleKeybinds.delete(e);this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up)continue;let r=e[t];this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))&&(this.activeKeybinds.delete(t),n.up(),this.logger.log(`Keybind up triggered`,this.getKeybindToString(r)))}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];if(r.keys.length===this.pressedKeys.size&&r.keys.every(e=>cn.has(e)?this.pressedKeys.has(e):!1)){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];r.keys.every(e=>cn.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1))&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&!this.triggeredToggleKeybinds.has(n)){let r=t.toggle();this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&!this.activeKeybinds.has(n)){let r=t.down();r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}};function dn(e){let t=new un(e),n={};for(let r in e)n[r]={on:(e,n)=>{switch(e){case`down`:t.onKeybindDown(r,n);break;case`up`:t.onKeybindUp(r,n);break;case`toggle`:t.onKeybindToggled(r,n);break;default:throw Error(`Event type not implemented ${e}`,{cause:[e,n]})}}};let r={...n,getConfig:()=>t.getConfig(),pauseKeybindListening:()=>{t.keybindListeningPaused=!0},resumeKeybindListening:()=>{t.keybindListeningPaused=!1},updateKeybind:(e,n)=>{t.updateKeybind(e,n)},updateKeybinds:e=>{t.updateKeybinds(e)}};return t.init(),pe.on(`quit`,()=>{t.destroy()}),r}function X(){return W.getInstance().getInterface(`OGG_SIEGE`)}function fn(){let e=K.getInstance(),t=P.getInstance(),n=G.getInstance();n.meta=pn(),e.on([`gameReady`,`gameClose`],()=>{n.meta||=pn(),n.meta.in_game=e.isInGame}),t.on(`fatal`,e=>{n.track(`fatal`,{message:e.message,code:e.code,data:JSON.stringify(e.data)})}),t.on(`error`,e=>{n.track(`error`,{code:e.code,message:e.message,data:JSON.stringify(e.data)})}),t.on(`warning`,e=>{n.track(`warning`,{message:e.message,code:e.code,data:JSON.stringify(e.data)})})}function pn(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id: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 mn(){function e(e,t){return e.once(`closed`,()=>{e.isDestroyed()||G.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||G.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),G.getInstance().track(`window_created`,{url:e.webContents.getURL(),in_game:t}),e}return{createWindow:t=>e(new global.OVERLAYED.electron.BrowserWindow(t),!1),createInGameWindow:t=>e(X().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>X().instance.on(e,t),off:(e,t)=>X().instance.off(e,t),once:(e,t)=>X().instance.once(e,t),addListener:(e,t)=>X().instance.addListener(e,t),removeListener:(e,t)=>X().instance.removeListener(e,t),removeAllListeners:()=>X().instance.removeAllListeners(),prependListener:(e,t)=>X().instance.prependListener(e,t),prependOnceListener:(e,t)=>X().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=X(),t=L.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const hn=N(class extends _t{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=W.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}},`OGG_SIEGE`);function gn(){return{scope:e=>hn.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>X().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>X().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>X().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>X().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>X().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>X().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>X().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>X().instance.getKeyInputBlock(e)}}}function _n(){return{track:(e,t)=>{G.getInstance().track(`custom__${String(e)}`,t)}}}var vn=Se(be(((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}}))(),1);function yn(){return{registerWindow:e=>{(0,vn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function bn(e){let t=Qe(global.OVERLAYED.APPLICATION_ID),n=nt(t,{recursive:!0}),r=Xe(),i=nt(r,{recursive:!0});I.getInstance().info(`Logs path: `,t),I.getInstance().info(`Overlayed logs path: `,r);let a=new _;return[...n,...i].forEach(([e,t])=>{I.getInstance().info(`Zipping: `,t);let n=ae(t),r=m(t);a.file(r,n,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{I.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function xn(e,t){let n={...e,version:`${global.OVERLAYED.APP_VERSION}@${global.OVERLAYED.APP_BUILD_CHANNEL}`,log_zip:`data:application/zip;base64,${t}`};await fetch(`https://api.stats.cc/v1/overlay/contact`,{method:`POST`,body:JSON.stringify(n),redirect:`follow`,headers:{"Content-Type":`application/json`}})}function Sn(e){let t=new et(`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});let n=await bn(t).generateAsync({type:`base64`});await xn(e,n)}}}const Cn=1e3;function wn(e,t,r,i,a){let o=L.getInstance();function s(e,t){let n=r.get(t);if(!n)r.set(t,[e]);else{if(n.length>=Cn){P.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${n.length}, max: ${Cn}`});return}n.push(e)}}function c(r){let i=$t(r);if(i instanceof n.errors){G.getInstance().track(`invalid_game_event`,{}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=e.modules.find(e=>e.key===i.game);if(!o)return;let c=o.events.event,l=c(r);if(l instanceof n.errors){if(`type`in l.byPath)return;G.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:l.summary});return}if(!a[o.key]){s(l,o.key);return}if(l.type===`unsupported_game_version`){let{content:e}=l;G.getInstance().track(`unsupported_game_version`,{game:l.game,hash:e?.hash,version:e?.version})}let u=J(o.key,l.type),d=J(o.key,`*`),f=t.get(u),p=t.get(d),m=[...Array.from(f??[]),...Array.from(p??[])];m.length!==0&&m.forEach(e=>{e(l)})}return i.on(`flushEvents`,e=>{if(a[e])return;a[e]=!0;let t=r.get(e);t&&(I.getInstance().info(`Flushing ${t.length} events for module ${e}`),t.forEach(e=>c(e)),r.delete(e))}),o.on(`data`,e=>e.forEach(c)),o.on(`error`,e=>{P.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o}let Z=!1,Tn={},Q,En=new M,$;function Dn(e){let{init:t=!0,debug:n=!1,silent:r=!0}=e;if(On(e),I.getInstance().init(e.applicationId,n,r),Z)return Q;function i(){if(Z)return;fn();let t=new Map,n=new Map,r=an(e.modules,t,En),a=on(),o=dn(e.keybinds),s=mn(),c=gn(),l=yn(),u=_n(),d=Sn(e);kn(e),wn(e,t,n,En,Tn),Z=!0,Q={...r,...a,ads:l,keybinds:o,windows:s,input:c,cortex:u,hasAnyActiveProcesses:()=>U.getInstance().hasAnyActiveProcesses,hasAnyActiveGames:()=>K.getInstance().isInGame,init:i,log:d,initialized:Z}}return t?(i(),Q):new Proxy({init:i},{get:(e,t)=>{if(t!==`init`&&!Z)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Q[t]}})}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function On(e){global.OVERLAYED={APPLICATION_ID:wt(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.24.4`,FRONTEND_VERSION:`0.0.0`,sessionId:tn(),electron:e.electron}}function kn(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);K.getInstance().setSubscribedGames(t),Zt.getInstance().init(),K.getInstance().init(),U.getInstance().init(),H.getInstance().init();async function n(){let e=Tt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=en();I.getInstance().log(`userId`,t);let n={...await e,userId:t};return I.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r??=n(),r)),G.getInstance().track(`start`,{});try{$&&clearInterval($),$=setInterval(()=>{try{nn()}catch{}},3e4),$.unref()}catch(e){I.getInstance().log(`failed to start sessionLastUsed interval`,e)}pe.on(`quit`,()=>{G.getInstance().track(`electron_quit`,{}),An()}),process.on(`exit`,()=>{G.getInstance().track(`exit`,{}),An()})}async function An(){try{nn()}catch{}try{$&&clearInterval($),$=void 0}catch{}await G.getInstance().flush(),H.getInstance().destroy(),K.getInstance().destroy(),Zt.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),L.getInstance().destroy(),P.getInstance().destroy()}function jn(e,t){return e+t}export{ht as RenderInterface,gt as VirtualKey,jn as add,at as defineConfig,Dn as overlayed,zt as setFetchLatestTokenCallback,bt as setUpdaterTokenResolver};
package/dist/siege.d.ts CHANGED
@@ -104,24 +104,24 @@ declare const SiegeTimeOfDay: Brander<SiegeTimeOfDay>;
104
104
  //#endregion
105
105
  //#region src/consts.d.ts
106
106
  declare const SIEGE_BOT_ID = "00000000-0000-0000-0000-000000000000";
107
- declare const SIEGE_GAME_MODE_PHASES: readonly ["intro", "planning", "prep", "action", "results", "invalid"];
108
- declare const SiegeGameModePhaseSchema: arktype_internal_methods_string_ts0.StringType<"invalid" | "intro" | "planning" | "prep" | "action" | "results", {}>;
109
- type SiegeGameModePhase = typeof SiegeGameModePhaseSchema.infer;
107
+ declare const SIEGE_GAME_MODE_PHASES: readonly ["intro", "planning", "prep", "action", "results", "invalid", "first"];
108
+ type SiegeGameModePhase = (typeof SIEGE_GAME_MODE_PHASES)[number] | (string & {});
109
+ declare const SiegeGameModePhaseSchema: arktype_internal_methods_string_ts0.StringType<SiegeGameModePhase, {}>;
110
110
  declare const SIEGE_TEAMS: readonly [0, 1];
111
111
  declare const SiegeTeamSchema: arktype_internal_methods_number_ts0.NumberType<0 | 1, {}>;
112
112
  type SiegeTeam = typeof SiegeTeamSchema.infer;
113
113
  declare const SIEGE_SIDES: readonly ["attacker", "defender", "both", "invalid"];
114
- declare const SiegeSideSchema: arktype_internal_methods_string_ts0.StringType<"attacker" | "defender" | "both" | "invalid", {}>;
115
- type SiegeSide = typeof SiegeSideSchema.infer;
114
+ type SiegeSide = (typeof SIEGE_SIDES)[number] | (string & {});
115
+ declare const SiegeSideSchema: arktype_internal_methods_string_ts0.StringType<SiegeSide, {}>;
116
116
  declare const SIEGE_PLAYER_LIFE_STATES: readonly ["normal", "overhealed", "low_health", "downed", "dead", "respawning"];
117
- declare const SiegePlayerLifeStateSchema: arktype_internal_methods_string_ts0.StringType<"downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning", {}>;
118
- type SiegePlayerLifeState = typeof SiegePlayerLifeStateSchema.infer;
119
- 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", "invalid"];
120
- declare const SiegeDamageTypeSchema: arktype_internal_methods_string_ts0.StringType<"unknown" | "invalid" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine", {}>;
121
- type SiegeDamageType = typeof SiegeDamageTypeSchema.infer;
117
+ type SiegePlayerLifeState = (typeof SIEGE_PLAYER_LIFE_STATES)[number] | (string & {});
118
+ declare const SiegePlayerLifeStateSchema: arktype_internal_methods_string_ts0.StringType<SiegePlayerLifeState, {}>;
119
+ 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"];
120
+ type SiegeDamageType = (typeof SIEGE_DAMAGE_TYPES)[number] | (string & {});
121
+ declare const SiegeDamageTypeSchema: arktype_internal_methods_string_ts0.StringType<SiegeDamageType, {}>;
122
122
  declare const SIEGE_DAMAGE_TEAM_TYPES: readonly ["unknown", "enemy", "friendly", "invalid"];
123
- declare const SiegeDamageTeamTypeSchema: arktype_internal_methods_string_ts0.StringType<"unknown" | "invalid" | "enemy" | "friendly", {}>;
124
- type SiegeDamageTeamType = typeof SiegeDamageTeamTypeSchema.infer;
123
+ type SiegeDamageTeamType = (typeof SIEGE_DAMAGE_TEAM_TYPES)[number] | (string & {});
124
+ declare const SiegeDamageTeamTypeSchema: arktype_internal_methods_string_ts0.StringType<SiegeDamageTeamType, {}>;
125
125
  declare const SIEGE_MATCH_TYPES_TO_ID: Readonly<{
126
126
  readonly quickPlay: SiegeMatchType;
127
127
  readonly versusAi: SiegeMatchType;
@@ -685,11 +685,11 @@ declare function module(): {
685
685
  segment_size: number;
686
686
  segment_index: number;
687
687
  team_0: {
688
- role: "attacker" | "defender" | "both" | "invalid";
688
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
689
689
  state: SiegeRoundState;
690
690
  };
691
691
  team_1: {
692
- role: "attacker" | "defender" | "both" | "invalid";
692
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
693
693
  state: SiegeRoundState;
694
694
  };
695
695
  }[];
@@ -722,7 +722,7 @@ declare function module(): {
722
722
  content: {
723
723
  index: number;
724
724
  team: 0 | 1;
725
- side: "attacker" | "defender" | "both" | "invalid";
725
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
726
726
  operator_name: {
727
727
  id: SiegeOperatorNameId;
728
728
  value: string;
@@ -739,11 +739,11 @@ declare function module(): {
739
739
  segment_size: number;
740
740
  segment_index: number;
741
741
  team_0: {
742
- role: "attacker" | "defender" | "both" | "invalid";
742
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
743
743
  state: SiegeRoundState;
744
744
  };
745
745
  team_1: {
746
- role: "attacker" | "defender" | "both" | "invalid";
746
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
747
747
  state: SiegeRoundState;
748
748
  };
749
749
  };
@@ -754,15 +754,15 @@ declare function module(): {
754
754
  remaining_health: number;
755
755
  pre_damage_health: number;
756
756
  max_health: number;
757
- damage_type: "unknown" | "invalid" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
758
- damage_team_type: "unknown" | "invalid" | "enemy" | "friendly";
757
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
758
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
759
759
  damage_item_id: SiegeItemObjectId | null;
760
760
  damage_time: number;
761
761
  }[];
762
762
  players: {
763
763
  player_id: SiegePlayerId;
764
764
  final_health: number;
765
- final_life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
765
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
766
766
  operator_name: {
767
767
  id: SiegeOperatorNameId;
768
768
  value: string;
@@ -774,7 +774,7 @@ declare function module(): {
774
774
  type: "phase_changed";
775
775
  creation_time: number;
776
776
  content: {
777
- phase: "invalid" | "intro" | "planning" | "prep" | "action" | "results";
777
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
778
778
  };
779
779
  } | ((In: {
780
780
  game: "siege";
@@ -788,7 +788,7 @@ declare function module(): {
788
788
  is_squad_member: boolean;
789
789
  is_local_player: boolean;
790
790
  username: string;
791
- side: "attacker" | "defender" | "both" | "invalid";
791
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
792
792
  team: 0 | 1;
793
793
  is_privacy_username: boolean;
794
794
  has_avatar_hidden: boolean;
@@ -800,12 +800,12 @@ declare function module(): {
800
800
  assists: number;
801
801
  score: number;
802
802
  };
803
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
803
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
804
804
  ping: number;
805
805
  };
806
806
  }) => arktype2.Out<{
807
807
  content: {
808
- starting_side: "attacker" | "defender" | "both" | "invalid";
808
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
809
809
  player_id: SiegePlayerId;
810
810
  profile_id: SiegeProfileId;
811
811
  is_bot: boolean;
@@ -813,7 +813,7 @@ declare function module(): {
813
813
  is_squad_member: boolean;
814
814
  is_local_player: boolean;
815
815
  username: string;
816
- side: "attacker" | "defender" | "both" | "invalid";
816
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
817
817
  team: 0 | 1;
818
818
  is_privacy_username: boolean;
819
819
  has_avatar_hidden: boolean;
@@ -825,7 +825,7 @@ declare function module(): {
825
825
  assists: number;
826
826
  score: number;
827
827
  };
828
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
828
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
829
829
  ping: number;
830
830
  };
831
831
  game: "siege";
@@ -863,7 +863,7 @@ declare function module(): {
863
863
  creation_time: number;
864
864
  content: {
865
865
  player_id: SiegePlayerId;
866
- side: "attacker" | "defender" | "both" | "invalid";
866
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
867
867
  };
868
868
  } | {
869
869
  game: "siege";
@@ -921,7 +921,7 @@ declare function module(): {
921
921
  creation_time: number;
922
922
  content: {
923
923
  player_id: SiegePlayerId;
924
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
924
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
925
925
  };
926
926
  } | {
927
927
  game: "siege";
@@ -1039,11 +1039,11 @@ declare function module(): {
1039
1039
  segment_size: number;
1040
1040
  segment_index: number;
1041
1041
  team_0: {
1042
- role: "attacker" | "defender" | "both" | "invalid";
1042
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1043
1043
  state: SiegeRoundState;
1044
1044
  };
1045
1045
  team_1: {
1046
- role: "attacker" | "defender" | "both" | "invalid";
1046
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1047
1047
  state: SiegeRoundState;
1048
1048
  };
1049
1049
  }[];
@@ -1079,7 +1079,7 @@ declare function module(): {
1079
1079
  content: {
1080
1080
  index: number;
1081
1081
  team: 0 | 1;
1082
- side: "attacker" | "defender" | "both" | "invalid";
1082
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1083
1083
  operator_name: {
1084
1084
  id: SiegeOperatorNameId;
1085
1085
  value: string;
@@ -1097,11 +1097,11 @@ declare function module(): {
1097
1097
  segment_size: number;
1098
1098
  segment_index: number;
1099
1099
  team_0: {
1100
- role: "attacker" | "defender" | "both" | "invalid";
1100
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1101
1101
  state: SiegeRoundState;
1102
1102
  };
1103
1103
  team_1: {
1104
- role: "attacker" | "defender" | "both" | "invalid";
1104
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1105
1105
  state: SiegeRoundState;
1106
1106
  };
1107
1107
  };
@@ -1112,15 +1112,15 @@ declare function module(): {
1112
1112
  remaining_health: number;
1113
1113
  pre_damage_health: number;
1114
1114
  max_health: number;
1115
- damage_type: "unknown" | "invalid" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
1116
- damage_team_type: "unknown" | "invalid" | "enemy" | "friendly";
1115
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1116
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
1117
1117
  damage_item_id: SiegeItemObjectId | null;
1118
1118
  damage_time: number;
1119
1119
  }[];
1120
1120
  players: {
1121
1121
  player_id: SiegePlayerId;
1122
1122
  final_health: number;
1123
- final_life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1123
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1124
1124
  operator_name: {
1125
1125
  id: SiegeOperatorNameId;
1126
1126
  value: string;
@@ -1133,7 +1133,7 @@ declare function module(): {
1133
1133
  type: "phase_changed";
1134
1134
  creation_time: number;
1135
1135
  content: {
1136
- phase: "invalid" | "intro" | "planning" | "prep" | "action" | "results";
1136
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
1137
1137
  };
1138
1138
  };
1139
1139
  player_joined: (In: {
@@ -1148,7 +1148,7 @@ declare function module(): {
1148
1148
  is_squad_member: boolean;
1149
1149
  is_local_player: boolean;
1150
1150
  username: string;
1151
- side: "attacker" | "defender" | "both" | "invalid";
1151
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1152
1152
  team: 0 | 1;
1153
1153
  is_privacy_username: boolean;
1154
1154
  has_avatar_hidden: boolean;
@@ -1160,12 +1160,12 @@ declare function module(): {
1160
1160
  assists: number;
1161
1161
  score: number;
1162
1162
  };
1163
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1163
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1164
1164
  ping: number;
1165
1165
  };
1166
1166
  }) => arktype2.Out<{
1167
1167
  content: {
1168
- starting_side: "attacker" | "defender" | "both" | "invalid";
1168
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1169
1169
  player_id: SiegePlayerId;
1170
1170
  profile_id: SiegeProfileId;
1171
1171
  is_bot: boolean;
@@ -1173,7 +1173,7 @@ declare function module(): {
1173
1173
  is_squad_member: boolean;
1174
1174
  is_local_player: boolean;
1175
1175
  username: string;
1176
- side: "attacker" | "defender" | "both" | "invalid";
1176
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1177
1177
  team: 0 | 1;
1178
1178
  is_privacy_username: boolean;
1179
1179
  has_avatar_hidden: boolean;
@@ -1185,7 +1185,7 @@ declare function module(): {
1185
1185
  assists: number;
1186
1186
  score: number;
1187
1187
  };
1188
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1188
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1189
1189
  ping: number;
1190
1190
  };
1191
1191
  game: "siege";
@@ -1227,7 +1227,7 @@ declare function module(): {
1227
1227
  creation_time: number;
1228
1228
  content: {
1229
1229
  player_id: SiegePlayerId;
1230
- side: "attacker" | "defender" | "both" | "invalid";
1230
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1231
1231
  };
1232
1232
  };
1233
1233
  player_stats_changed: {
@@ -1292,7 +1292,7 @@ declare function module(): {
1292
1292
  creation_time: number;
1293
1293
  content: {
1294
1294
  player_id: SiegePlayerId;
1295
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1295
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1296
1296
  };
1297
1297
  };
1298
1298
  player_died: {
@@ -1384,8 +1384,8 @@ declare const PlayerDamageDataSchema: arktype_internal_methods_object_ts0.Object
1384
1384
  remaining_health: number;
1385
1385
  pre_damage_health: number;
1386
1386
  max_health: number;
1387
- damage_type: "unknown" | "invalid" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
1388
- damage_team_type: "unknown" | "invalid" | "enemy" | "friendly";
1387
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1388
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
1389
1389
  damage_item_id: SiegeItemObjectId | null;
1390
1390
  damage_time: number;
1391
1391
  }, {}>;
@@ -1396,11 +1396,11 @@ declare const MatchRoundDataSchema: arktype_internal_methods_object_ts0.ObjectTy
1396
1396
  segment_size: number;
1397
1397
  segment_index: number;
1398
1398
  team_0: {
1399
- role: "attacker" | "defender" | "both" | "invalid";
1399
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1400
1400
  state: SiegeRoundState;
1401
1401
  };
1402
1402
  team_1: {
1403
- role: "attacker" | "defender" | "both" | "invalid";
1403
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1404
1404
  state: SiegeRoundState;
1405
1405
  };
1406
1406
  }, {}>;
@@ -1420,7 +1420,7 @@ type MapData = typeof MapDataSchema.infer;
1420
1420
  declare const RoundEndPlayerDataSchema: arktype_internal_methods_object_ts0.ObjectType<{
1421
1421
  player_id: SiegePlayerId;
1422
1422
  final_health: number;
1423
- final_life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1423
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1424
1424
  operator_name: {
1425
1425
  id: SiegeOperatorNameId;
1426
1426
  value: string;
@@ -1434,11 +1434,11 @@ declare const RoundEndDataSchema: arktype_internal_methods_object_ts0.ObjectType
1434
1434
  segment_size: number;
1435
1435
  segment_index: number;
1436
1436
  team_0: {
1437
- role: "attacker" | "defender" | "both" | "invalid";
1437
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1438
1438
  state: SiegeRoundState;
1439
1439
  };
1440
1440
  team_1: {
1441
- role: "attacker" | "defender" | "both" | "invalid";
1441
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1442
1442
  state: SiegeRoundState;
1443
1443
  };
1444
1444
  };
@@ -1449,15 +1449,15 @@ declare const RoundEndDataSchema: arktype_internal_methods_object_ts0.ObjectType
1449
1449
  remaining_health: number;
1450
1450
  pre_damage_health: number;
1451
1451
  max_health: number;
1452
- damage_type: "unknown" | "invalid" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
1453
- damage_team_type: "unknown" | "invalid" | "enemy" | "friendly";
1452
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1453
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
1454
1454
  damage_item_id: SiegeItemObjectId | null;
1455
1455
  damage_time: number;
1456
1456
  }[];
1457
1457
  players: {
1458
1458
  player_id: SiegePlayerId;
1459
1459
  final_health: number;
1460
- final_life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1460
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1461
1461
  operator_name: {
1462
1462
  id: SiegeOperatorNameId;
1463
1463
  value: string;
@@ -1509,11 +1509,11 @@ declare const MatchStarted: arktype_internal_methods_object_ts0.ObjectType<{
1509
1509
  segment_size: number;
1510
1510
  segment_index: number;
1511
1511
  team_0: {
1512
- role: "attacker" | "defender" | "both" | "invalid";
1512
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1513
1513
  state: SiegeRoundState;
1514
1514
  };
1515
1515
  team_1: {
1516
- role: "attacker" | "defender" | "both" | "invalid";
1516
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1517
1517
  state: SiegeRoundState;
1518
1518
  };
1519
1519
  }[];
@@ -1610,7 +1610,7 @@ declare const OperatorBanned: arktype_internal_methods_object_ts0.ObjectType<{
1610
1610
  content: {
1611
1611
  index: number;
1612
1612
  team: 0 | 1;
1613
- side: "attacker" | "defender" | "both" | "invalid";
1613
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1614
1614
  operator_name: {
1615
1615
  id: SiegeOperatorNameId;
1616
1616
  value: string;
@@ -1631,11 +1631,11 @@ declare const RoundEnded: arktype_internal_methods_object_ts0.ObjectType<{
1631
1631
  segment_size: number;
1632
1632
  segment_index: number;
1633
1633
  team_0: {
1634
- role: "attacker" | "defender" | "both" | "invalid";
1634
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1635
1635
  state: SiegeRoundState;
1636
1636
  };
1637
1637
  team_1: {
1638
- role: "attacker" | "defender" | "both" | "invalid";
1638
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
1639
1639
  state: SiegeRoundState;
1640
1640
  };
1641
1641
  };
@@ -1646,15 +1646,15 @@ declare const RoundEnded: arktype_internal_methods_object_ts0.ObjectType<{
1646
1646
  remaining_health: number;
1647
1647
  pre_damage_health: number;
1648
1648
  max_health: number;
1649
- damage_type: "unknown" | "invalid" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
1650
- damage_team_type: "unknown" | "invalid" | "enemy" | "friendly";
1649
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
1650
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
1651
1651
  damage_item_id: SiegeItemObjectId | null;
1652
1652
  damage_time: number;
1653
1653
  }[];
1654
1654
  players: {
1655
1655
  player_id: SiegePlayerId;
1656
1656
  final_health: number;
1657
- final_life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1657
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1658
1658
  operator_name: {
1659
1659
  id: SiegeOperatorNameId;
1660
1660
  value: string;
@@ -1670,7 +1670,7 @@ declare const PhaseChanged: arktype_internal_methods_object_ts0.ObjectType<{
1670
1670
  type: "phase_changed";
1671
1671
  creation_time: number;
1672
1672
  content: {
1673
- phase: "invalid" | "intro" | "planning" | "prep" | "action" | "results";
1673
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
1674
1674
  };
1675
1675
  }, {}>;
1676
1676
  type PhaseChangedEvent = typeof PhaseChanged.infer;
@@ -1688,7 +1688,7 @@ declare const PlayerJoined: arktype_internal_methods_object_ts0.ObjectType<(In:
1688
1688
  is_squad_member: boolean;
1689
1689
  is_local_player: boolean;
1690
1690
  username: string;
1691
- side: "attacker" | "defender" | "both" | "invalid";
1691
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1692
1692
  team: 0 | 1;
1693
1693
  is_privacy_username: boolean;
1694
1694
  has_avatar_hidden: boolean;
@@ -1700,12 +1700,12 @@ declare const PlayerJoined: arktype_internal_methods_object_ts0.ObjectType<(In:
1700
1700
  assists: number;
1701
1701
  score: number;
1702
1702
  };
1703
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1703
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1704
1704
  ping: number;
1705
1705
  };
1706
1706
  }) => arktype2.Out<{
1707
1707
  content: {
1708
- starting_side: "attacker" | "defender" | "both" | "invalid";
1708
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1709
1709
  player_id: SiegePlayerId;
1710
1710
  profile_id: SiegeProfileId;
1711
1711
  is_bot: boolean;
@@ -1713,7 +1713,7 @@ declare const PlayerJoined: arktype_internal_methods_object_ts0.ObjectType<(In:
1713
1713
  is_squad_member: boolean;
1714
1714
  is_local_player: boolean;
1715
1715
  username: string;
1716
- side: "attacker" | "defender" | "both" | "invalid";
1716
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1717
1717
  team: 0 | 1;
1718
1718
  is_privacy_username: boolean;
1719
1719
  has_avatar_hidden: boolean;
@@ -1725,7 +1725,7 @@ declare const PlayerJoined: arktype_internal_methods_object_ts0.ObjectType<(In:
1725
1725
  assists: number;
1726
1726
  score: number;
1727
1727
  };
1728
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1728
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1729
1729
  ping: number;
1730
1730
  };
1731
1731
  game: "siege";
@@ -1779,7 +1779,7 @@ declare const PlayerSideChanged: arktype_internal_methods_object_ts0.ObjectType<
1779
1779
  creation_time: number;
1780
1780
  content: {
1781
1781
  player_id: SiegePlayerId;
1782
- side: "attacker" | "defender" | "both" | "invalid";
1782
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
1783
1783
  };
1784
1784
  }, {}>;
1785
1785
  type PlayerSideChangedEvent = typeof PlayerSideChanged.infer;
@@ -1865,7 +1865,7 @@ declare const PlayerLifeStateChanged: arktype_internal_methods_object_ts0.Object
1865
1865
  creation_time: number;
1866
1866
  content: {
1867
1867
  player_id: SiegePlayerId;
1868
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1868
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
1869
1869
  };
1870
1870
  }, {}>;
1871
1871
  type PlayerLifeStateChangedEvent = typeof PlayerLifeStateChanged.infer;
@@ -2001,11 +2001,11 @@ declare const events: arktype2.Module<{
2001
2001
  segment_size: number;
2002
2002
  segment_index: number;
2003
2003
  team_0: {
2004
- role: "attacker" | "defender" | "both" | "invalid";
2004
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2005
2005
  state: SiegeRoundState;
2006
2006
  };
2007
2007
  team_1: {
2008
- role: "attacker" | "defender" | "both" | "invalid";
2008
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2009
2009
  state: SiegeRoundState;
2010
2010
  };
2011
2011
  }[];
@@ -2038,7 +2038,7 @@ declare const events: arktype2.Module<{
2038
2038
  content: {
2039
2039
  index: number;
2040
2040
  team: 0 | 1;
2041
- side: "attacker" | "defender" | "both" | "invalid";
2041
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2042
2042
  operator_name: {
2043
2043
  id: SiegeOperatorNameId;
2044
2044
  value: string;
@@ -2055,11 +2055,11 @@ declare const events: arktype2.Module<{
2055
2055
  segment_size: number;
2056
2056
  segment_index: number;
2057
2057
  team_0: {
2058
- role: "attacker" | "defender" | "both" | "invalid";
2058
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2059
2059
  state: SiegeRoundState;
2060
2060
  };
2061
2061
  team_1: {
2062
- role: "attacker" | "defender" | "both" | "invalid";
2062
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2063
2063
  state: SiegeRoundState;
2064
2064
  };
2065
2065
  };
@@ -2070,15 +2070,15 @@ declare const events: arktype2.Module<{
2070
2070
  remaining_health: number;
2071
2071
  pre_damage_health: number;
2072
2072
  max_health: number;
2073
- damage_type: "unknown" | "invalid" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
2074
- damage_team_type: "unknown" | "invalid" | "enemy" | "friendly";
2073
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
2074
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
2075
2075
  damage_item_id: SiegeItemObjectId | null;
2076
2076
  damage_time: number;
2077
2077
  }[];
2078
2078
  players: {
2079
2079
  player_id: SiegePlayerId;
2080
2080
  final_health: number;
2081
- final_life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2081
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2082
2082
  operator_name: {
2083
2083
  id: SiegeOperatorNameId;
2084
2084
  value: string;
@@ -2090,7 +2090,7 @@ declare const events: arktype2.Module<{
2090
2090
  type: "phase_changed";
2091
2091
  creation_time: number;
2092
2092
  content: {
2093
- phase: "invalid" | "intro" | "planning" | "prep" | "action" | "results";
2093
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
2094
2094
  };
2095
2095
  } | ((In: {
2096
2096
  game: "siege";
@@ -2104,7 +2104,7 @@ declare const events: arktype2.Module<{
2104
2104
  is_squad_member: boolean;
2105
2105
  is_local_player: boolean;
2106
2106
  username: string;
2107
- side: "attacker" | "defender" | "both" | "invalid";
2107
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2108
2108
  team: 0 | 1;
2109
2109
  is_privacy_username: boolean;
2110
2110
  has_avatar_hidden: boolean;
@@ -2116,12 +2116,12 @@ declare const events: arktype2.Module<{
2116
2116
  assists: number;
2117
2117
  score: number;
2118
2118
  };
2119
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2119
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2120
2120
  ping: number;
2121
2121
  };
2122
2122
  }) => arktype2.Out<{
2123
2123
  content: {
2124
- starting_side: "attacker" | "defender" | "both" | "invalid";
2124
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2125
2125
  player_id: SiegePlayerId;
2126
2126
  profile_id: SiegeProfileId;
2127
2127
  is_bot: boolean;
@@ -2129,7 +2129,7 @@ declare const events: arktype2.Module<{
2129
2129
  is_squad_member: boolean;
2130
2130
  is_local_player: boolean;
2131
2131
  username: string;
2132
- side: "attacker" | "defender" | "both" | "invalid";
2132
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2133
2133
  team: 0 | 1;
2134
2134
  is_privacy_username: boolean;
2135
2135
  has_avatar_hidden: boolean;
@@ -2141,7 +2141,7 @@ declare const events: arktype2.Module<{
2141
2141
  assists: number;
2142
2142
  score: number;
2143
2143
  };
2144
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2144
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2145
2145
  ping: number;
2146
2146
  };
2147
2147
  game: "siege";
@@ -2179,7 +2179,7 @@ declare const events: arktype2.Module<{
2179
2179
  creation_time: number;
2180
2180
  content: {
2181
2181
  player_id: SiegePlayerId;
2182
- side: "attacker" | "defender" | "both" | "invalid";
2182
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2183
2183
  };
2184
2184
  } | {
2185
2185
  game: "siege";
@@ -2237,7 +2237,7 @@ declare const events: arktype2.Module<{
2237
2237
  creation_time: number;
2238
2238
  content: {
2239
2239
  player_id: SiegePlayerId;
2240
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2240
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2241
2241
  };
2242
2242
  } | {
2243
2243
  game: "siege";
@@ -2355,11 +2355,11 @@ declare const events: arktype2.Module<{
2355
2355
  segment_size: number;
2356
2356
  segment_index: number;
2357
2357
  team_0: {
2358
- role: "attacker" | "defender" | "both" | "invalid";
2358
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2359
2359
  state: SiegeRoundState;
2360
2360
  };
2361
2361
  team_1: {
2362
- role: "attacker" | "defender" | "both" | "invalid";
2362
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2363
2363
  state: SiegeRoundState;
2364
2364
  };
2365
2365
  }[];
@@ -2395,7 +2395,7 @@ declare const events: arktype2.Module<{
2395
2395
  content: {
2396
2396
  index: number;
2397
2397
  team: 0 | 1;
2398
- side: "attacker" | "defender" | "both" | "invalid";
2398
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2399
2399
  operator_name: {
2400
2400
  id: SiegeOperatorNameId;
2401
2401
  value: string;
@@ -2413,11 +2413,11 @@ declare const events: arktype2.Module<{
2413
2413
  segment_size: number;
2414
2414
  segment_index: number;
2415
2415
  team_0: {
2416
- role: "attacker" | "defender" | "both" | "invalid";
2416
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2417
2417
  state: SiegeRoundState;
2418
2418
  };
2419
2419
  team_1: {
2420
- role: "attacker" | "defender" | "both" | "invalid";
2420
+ role: "attacker" | "defender" | "both" | "invalid" | (string & {});
2421
2421
  state: SiegeRoundState;
2422
2422
  };
2423
2423
  };
@@ -2428,15 +2428,15 @@ declare const events: arktype2.Module<{
2428
2428
  remaining_health: number;
2429
2429
  pre_damage_health: number;
2430
2430
  max_health: number;
2431
- damage_type: "unknown" | "invalid" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
2432
- damage_team_type: "unknown" | "invalid" | "enemy" | "friendly";
2431
+ damage_type: "unknown" | "invalid" | (string & {}) | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "downed" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine" | "melee-pushback" | "supressive-fire" | "gas-pipe-fire";
2432
+ damage_team_type: "unknown" | "invalid" | (string & {}) | "enemy" | "friendly";
2433
2433
  damage_item_id: SiegeItemObjectId | null;
2434
2434
  damage_time: number;
2435
2435
  }[];
2436
2436
  players: {
2437
2437
  player_id: SiegePlayerId;
2438
2438
  final_health: number;
2439
- final_life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2439
+ final_life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2440
2440
  operator_name: {
2441
2441
  id: SiegeOperatorNameId;
2442
2442
  value: string;
@@ -2449,7 +2449,7 @@ declare const events: arktype2.Module<{
2449
2449
  type: "phase_changed";
2450
2450
  creation_time: number;
2451
2451
  content: {
2452
- phase: "invalid" | "intro" | "planning" | "prep" | "action" | "results";
2452
+ phase: "invalid" | (string & {}) | "intro" | "planning" | "prep" | "action" | "results" | "first";
2453
2453
  };
2454
2454
  };
2455
2455
  player_joined: (In: {
@@ -2464,7 +2464,7 @@ declare const events: arktype2.Module<{
2464
2464
  is_squad_member: boolean;
2465
2465
  is_local_player: boolean;
2466
2466
  username: string;
2467
- side: "attacker" | "defender" | "both" | "invalid";
2467
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2468
2468
  team: 0 | 1;
2469
2469
  is_privacy_username: boolean;
2470
2470
  has_avatar_hidden: boolean;
@@ -2476,12 +2476,12 @@ declare const events: arktype2.Module<{
2476
2476
  assists: number;
2477
2477
  score: number;
2478
2478
  };
2479
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2479
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2480
2480
  ping: number;
2481
2481
  };
2482
2482
  }) => arktype2.Out<{
2483
2483
  content: {
2484
- starting_side: "attacker" | "defender" | "both" | "invalid";
2484
+ starting_side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2485
2485
  player_id: SiegePlayerId;
2486
2486
  profile_id: SiegeProfileId;
2487
2487
  is_bot: boolean;
@@ -2489,7 +2489,7 @@ declare const events: arktype2.Module<{
2489
2489
  is_squad_member: boolean;
2490
2490
  is_local_player: boolean;
2491
2491
  username: string;
2492
- side: "attacker" | "defender" | "both" | "invalid";
2492
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2493
2493
  team: 0 | 1;
2494
2494
  is_privacy_username: boolean;
2495
2495
  has_avatar_hidden: boolean;
@@ -2501,7 +2501,7 @@ declare const events: arktype2.Module<{
2501
2501
  assists: number;
2502
2502
  score: number;
2503
2503
  };
2504
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2504
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2505
2505
  ping: number;
2506
2506
  };
2507
2507
  game: "siege";
@@ -2543,7 +2543,7 @@ declare const events: arktype2.Module<{
2543
2543
  creation_time: number;
2544
2544
  content: {
2545
2545
  player_id: SiegePlayerId;
2546
- side: "attacker" | "defender" | "both" | "invalid";
2546
+ side: "attacker" | "defender" | "both" | "invalid" | (string & {});
2547
2547
  };
2548
2548
  };
2549
2549
  player_stats_changed: {
@@ -2608,7 +2608,7 @@ declare const events: arktype2.Module<{
2608
2608
  creation_time: number;
2609
2609
  content: {
2610
2610
  player_id: SiegePlayerId;
2611
- life_state: "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2611
+ life_state: (string & {}) | "downed" | "normal" | "overhealed" | "low_health" | "dead" | "respawning";
2612
2612
  };
2613
2613
  };
2614
2614
  player_died: {
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(),f=a(),ee=a(),p=a(),m=a(),h=a(),g=`00000000-0000-0000-0000-000000000000`,_=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`],v=n(`===`,..._),y=[0,1],b=n(`===`,...y),x=[`attacker`,`defender`,`both`,`invalid`],S=n(`===`,...x),C=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],w=n(`===`,...C),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.invalid`.split(`.`),E=n(`===`,...T),D=[`unknown`,`enemy`,`friendly`,`invalid`],O=n(`===`,...D),k=Object.freeze({quickPlay:p(`QUICK PLAY`),versusAi:p(`VERSUS AI`),standard:p(`STANDARD`),ranked:p(`RANKED`)}),te=Object.freeze({[k.quickPlay]:`Quick Play`,[k.versusAi]:`Versus AI`,[k.standard]:`Standard`,[k.ranked]:`Ranked`}),A=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`)}),j=Object.freeze({[A.teamDeathmatch]:`Team Deathmatch`,[A.goldenGun]:`Golden Gun`,[A.freeForAll]:`Free For All`,[A.weaponRoulette]:`Weapon Roulette`,[A.dualFront]:`Dual Front`,[A.bomb]:`Bomb`,[A.versusAi]:`Versus AI`,[A.hostage]:`Hostage`,[A.threeVsThreeSecureArea]:`3v3 Secure Area`,[A.targetDrill]:`Target Drill`,[A.rengoku]:`Rengoku`}),M=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)}),N=Object.freeze({[M.quickMatch]:`Quick Match`,[M.ranked]:`Ranked`,[M.customGame]:`Custom Game`,[M.versusAi]:`Versus AI`,[M.standard]:`Standard`,[M.arcade]:`Arcade`,[M.siegeCup]:`Siege Cup`,[M.dualFront]:`Dual Front`,[M.showdown]:`Showdown`,[M.trainingGrounds]:`Training Grounds`,[M.unranked]:`Unranked`,[M.deathmatch]:`Deathmatch`,[M.rengoku]:`Rengoku`,[M.muteProtocol]:`M.U.T.E Protocol`,[M.fieldTraining]:`Field Training`}),P=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)}),ne=Object.freeze({[P.glaz]:`glaz`,[P.blitz]:`blitz`,[P.buck]:`buck`,[P.sledge]:`sledge`,[P.ash]:`ash`,[P.thermite]:`thermite`,[P.castle]:`castle`,[P.rook]:`rook`,[P.pulse]:`pulse`,[P.doc]:`doc`,[P.mute]:`mute`,[P.smoke]:`smoke`,[P.recruit]:`recruit`,[P.thatcher]:`thatcher`,[P.twitch]:`twitch`,[P.montagne]:`montagne`,[P.bandit]:`bandit`,[P.fuze]:`fuze`,[P.kapkan]:`kapkan`,[P.tachanka]:`tachanka`,[P.jager]:`jager`,[P.iq]:`iq`,[P.frost]:`frost`,[P.blackbeard]:`blackbeard`,[P.valkyrie]:`valkyrie`,[P.caveira]:`caveira`,[P.capitao]:`capitao`,[P.echo]:`echo`,[P.hibana]:`hibana`,[P.mira]:`mira`,[P.jackal]:`jackal`,[P.ying]:`ying`,[P.lesion]:`lesion`,[P.ela]:`ela`,[P.zofia]:`zofia`,[P.dokkaebi]:`dokkaebi`,[P.vigil]:`vigil`,[P.finka]:`finka`,[P.lion]:`lion`,[P.alibi]:`alibi`,[P.maestro]:`maestro`,[P.maverick]:`maverick`,[P.clash]:`clash`,[P.nomad]:`nomad`,[P.kaid]:`kaid`,[P.gridlock]:`gridlock`,[P.mozzie]:`mozzie`,[P.nokk]:`nokk`,[P.warden]:`warden`,[P.goyo]:`goyo`,[P.amaru]:`amaru`,[P.kali]:`kali`,[P.wamai]:`wamai`,[P.oryx]:`oryx`,[P.iana]:`iana`,[P.melusi]:`melusi`,[P.ace]:`ace`,[P.zero]:`zero`,[P.aruni]:`aruni`,[P.flores]:`flores`,[P.thunderbird]:`thunderbird`,[P.osa]:`osa`,[P.thorn]:`thorn`,[P.azami]:`azami`,[P.sens]:`sens`,[P.grim]:`grim`,[P.solis]:`solis`,[P.brava]:`brava`,[P.fenrir]:`fenrir`,[P.ram]:`ram`,[P.tubarao]:`tubarao`,[P.deimos]:`deimos`,[P.striker]:`striker`,[P.sentry]:`sentry`,[P.skopos]:`skopos`,[P.rauora]:`rauora`,[P.denari]:`denari`}),F=Object.freeze({[P.striker]:{name:`Striker`,role:`attacker`},[P.sledge]:{name:`Sledge`,role:`attacker`},[P.thatcher]:{name:`Thatcher`,role:`attacker`},[P.ash]:{name:`Ash`,role:`attacker`},[P.thermite]:{name:`Thermite`,role:`attacker`},[P.twitch]:{name:`Twitch`,role:`attacker`},[P.montagne]:{name:`Montagne`,role:`attacker`},[P.glaz]:{name:`Glaz`,role:`attacker`},[P.fuze]:{name:`Fuze`,role:`attacker`},[P.blitz]:{name:`Blitz`,role:`attacker`},[P.iq]:{name:`IQ`,role:`attacker`},[P.buck]:{name:`Buck`,role:`attacker`},[P.blackbeard]:{name:`Blackbeard`,role:`attacker`},[P.capitao]:{name:`Capitão`,role:`attacker`},[P.hibana]:{name:`Hibana`,role:`attacker`},[P.jackal]:{name:`Jackal`,role:`attacker`},[P.ying]:{name:`Ying`,role:`attacker`},[P.zofia]:{name:`Zofia`,role:`attacker`},[P.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[P.lion]:{name:`Lion`,role:`attacker`},[P.finka]:{name:`Finka`,role:`attacker`},[P.maverick]:{name:`Maverick`,role:`attacker`},[P.nomad]:{name:`Nomad`,role:`attacker`},[P.gridlock]:{name:`Gridlock`,role:`attacker`},[P.nokk]:{name:`Nøkk`,role:`attacker`},[P.amaru]:{name:`Amaru`,role:`attacker`},[P.kali]:{name:`Kali`,role:`attacker`},[P.iana]:{name:`Iana`,role:`attacker`},[P.ace]:{name:`Ace`,role:`attacker`},[P.zero]:{name:`Zero`,role:`attacker`},[P.flores]:{name:`Flores`,role:`attacker`},[P.osa]:{name:`Osa`,role:`attacker`},[P.sens]:{name:`Sens`,role:`attacker`},[P.grim]:{name:`Grim`,role:`attacker`},[P.brava]:{name:`Brava`,role:`attacker`},[P.ram]:{name:`Ram`,role:`attacker`},[P.deimos]:{name:`Deimos`,role:`attacker`},[P.rauora]:{name:`Rauora`,role:`attacker`},[P.sentry]:{name:`Sentry`,role:`defender`},[P.smoke]:{name:`Smoke`,role:`defender`},[P.mute]:{name:`Mute`,role:`defender`},[P.castle]:{name:`Castle`,role:`defender`},[P.pulse]:{name:`Pulse`,role:`defender`},[P.doc]:{name:`Doc`,role:`defender`},[P.rook]:{name:`Rook`,role:`defender`},[P.kapkan]:{name:`Kapkan`,role:`defender`},[P.tachanka]:{name:`Tachanka`,role:`defender`},[P.jager]:{name:`Jäger`,role:`defender`},[P.bandit]:{name:`Bandit`,role:`defender`},[P.frost]:{name:`Frost`,role:`defender`},[P.valkyrie]:{name:`Valkyrie`,role:`defender`},[P.caveira]:{name:`Caveira`,role:`defender`},[P.echo]:{name:`Echo`,role:`defender`},[P.mira]:{name:`Mira`,role:`defender`},[P.lesion]:{name:`Lesion`,role:`defender`},[P.ela]:{name:`Ela`,role:`defender`},[P.vigil]:{name:`Vigil`,role:`defender`},[P.alibi]:{name:`Alibi`,role:`defender`},[P.maestro]:{name:`Maestro`,role:`defender`},[P.clash]:{name:`Clash`,role:`defender`},[P.kaid]:{name:`Kaid`,role:`defender`},[P.mozzie]:{name:`Mozzie`,role:`defender`},[P.warden]:{name:`Warden`,role:`defender`},[P.goyo]:{name:`Goyo`,role:`defender`},[P.wamai]:{name:`Wamai`,role:`defender`},[P.oryx]:{name:`Oryx`,role:`defender`},[P.melusi]:{name:`Melusi`,role:`defender`},[P.aruni]:{name:`Aruni`,role:`defender`},[P.thunderbird]:{name:`Thunderbird`,role:`defender`},[P.thorn]:{name:`Thorn`,role:`defender`},[P.azami]:{name:`Azami`,role:`defender`},[P.solis]:{name:`Solis`,role:`defender`},[P.fenrir]:{name:`Fenrir`,role:`defender`},[P.tubarao]:{name:`Tubarao`,role:`defender`},[P.skopos]:{name:`Skopós`,role:`defender`},[P.denari]:{name:`Denari`,role:`defender`}}),re=Object.freeze({attacker:Object.entries(F).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...F[s(Number(e))],id:s(Number(e))})),defender:Object.entries(F).filter(([e,t])=>t.role===`defender`).map(([e])=>({...F[s(Number(e))],id:s(Number(e))}))}),I=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),themePark:c(229325),stadium:c(338641),outback:c(299162),yacht:c(62226),emeraldPlains:c(358871),chalet:c(62230),coastline:c(217482),bank:c(62228),consulate:c(62227),tower:c(255669),nighthavenLabs:c(375492),presidentialPlane:c(62225),house:c(62221),kafeDostoyevsky:c(62232),border:c(201746),closeQuarter:c(365400),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)}),L=Object.freeze({[I.favela]:`Favela`,[I.fortress]:`Fortress`,[I.villa]:`Villa`,[I.neighborhood]:`Neighborhood`,[I.themePark]:`Theme Park`,[I.stadium]:`Stadium`,[I.outback]:`Outback`,[I.yacht]:`Yacht`,[I.emeraldPlains]:`Emerald Plains`,[I.chalet]:`Chalet`,[I.coastline]:`Coastline`,[I.bank]:`Bank`,[I.consulate]:`Consulate`,[I.tower]:`Tower`,[I.nighthavenLabs]:`Nighthaven Labs`,[I.presidentialPlane]:`Presidential Plane`,[I.house]:`House`,[I.kafeDostoyevsky]:`Kafe Dostoyevsky`,[I.border]:`Border`,[I.closeQuarter]:`Close Quarter`,[I.outback]:`Outback`,[I.lair]:`Lair`,[I.herefordBase]:`Hereford Base`,[I.skyscraper]:`Skyscraper`,[I.cqbBasics]:`CQB Basics`,[I.oregon]:`Oregon`,[I.outback]:`Outback`,318512:`Stadium`,[I.fortTruth]:`Fort Truth`,[I.kanal]:`Kanal`,[I.cqbBasics]:`CQB Basics`,[I.stadium2020]:`Stadium 2020`,[I.clubhouse]:`Clubhouse`,[I.district]:`District`,[I.shinden]:`Shinden`,[I.stadiumBravo]:`Stadium Bravo`,[I.muteCommTower]:`M.U.T.E Comm Tower`}),R=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)}),z=Object.freeze({[R.notPlayed]:`Not Played`,[R.inProgress]:`In Progress`,[R.lost]:`Lost`,[R.enemiesEliminated]:`Enemies Eliminated`,[R.objectiveComplete]:`Objective Complete`,[R.timeRanOut]:`Time ran out`,[R.enemiesSurrendered]:`Enemies Surrendered`,[R.unknownReason]:`Unknown Reason`,[R.matchCancelled]:`Match Cancelled`}),B=Object.freeze({day:h(177839),night:h(177840)}),V=Object.freeze({[B.day]:`Day`,[B.night]:`Night`}),H=n({game:`string`,type:`string`,creation_time:`number`}),U=[R.enemiesEliminated,R.objectiveComplete,R.timeRanOut,R.enemiesSurrendered,R.unknownReason];function W(e){return U.includes(e)}const G=[R.notPlayed,R.inProgress];function K(e){return!G.includes(e)}const q=H.and({game:`'siege'`}),J=q.and({type:`'local_player'`,content:{profile_id:r(n.string)}}),Y=()=>n({id:`number`,value:`string`}),X=n({kills:`number`,deaths:`number`,assists:`number`,score:`number`}),ie=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_item_id:r(n.number).or(`null`),damage_time:`number`}),Z=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)}}),Q=n({id:`number`,name:Y(),time_of_day:Y()}),ae=n({player_id:r(n.number),final_health:`number`,final_life_state:w,operator_name:Y().or(`null`)}),oe=n({round_data:Z,damage_events:ie.array(),players:ae.array()}),se=q.and({type:`'match_started'`,content:{game_mode:r(n.string),game_type:Y(),match_type:r(n.string),match_id:r(n.string),map:Q,is_round_based:`boolean`,current_round_index:`number`,rounds:Z.array()}}),ce=q.and({type:`'module_loaded'`}),le=q.and({type:`'module_unloaded'`}),ue=q.and({type:`'started_queuing'`,content:{game_mode:r(n.string),game_type:Y(),match_type:r(n.string)}}),de=q.and({type:`'stopped_queuing'`}),fe=q.and({type:`'unsupported_game_version'`,content:{hash:`string | null`,version:`string | null`}}),pe=q.and({type:`'match_ended'`}),me=q.and({type:`'map_changed'`,content:{map:Q}}),he=q.and({type:`'operator_banned'`,content:{index:`number`,team:b,side:S,operator_name:Y().or(`null`)}}),ge=q.and({type:`'round_ended'`,content:oe}),_e=q.and({type:`'phase_changed'`,content:{phase:v}}),ve=q.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:r(n.string),is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:S,team:b,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:X,life_state:w,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),ye=q.and({type:`'player_left'`,content:{player_id:r(n.number)}}),be=q.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:Y().or(`null`)}}),xe=q.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),Se=q.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:S}}),Ce=q.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:X}}),we=q.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),Te=q.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),Ee=q.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),De=q.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),Oe=q.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),ke=q.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:w}}),Ae=q.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),$=q.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),je=q.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Me=q.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:b}}),Ne=q.and({type:`'game_log'`,content:{message:`string.json`}}),Pe=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | local_player | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_banned | round_ended | phase_changed | player_joined | player_left | player_operator_changed | player_location_changed | player_side_changed | player_stats_changed`,"#event2":`player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated | game_log`,event:`event1 | event2`,module_loaded:ce,module_unloaded:le,unsupported_game_version:fe,local_player:J,started_queuing:ue,stopped_queuing:de,match_started:se,match_ended:pe,map_changed:me,operator_banned:he,round_ended:ge,phase_changed:_e,player_joined:ve,player_left:ye,player_operator_changed:be,player_location_changed:xe,player_side_changed:Se,player_stats_changed:Ce,defuser_planted:Te,defuser_sabotaged:Ee,defuser_picked_up:De,defuser_dropped:Oe,player_ping_updated:we,player_life_state_changed:ke,player_died:Ae,player_downed:$,player_ping_id_changed:je,player_team_changed:Me,game_log:Ne}).export();function Fe(){return{key:`siege`,events:Pe}}export{H as BaseEvent,g as SIEGE_BOT_ID,D as SIEGE_DAMAGE_TEAM_TYPES,T as SIEGE_DAMAGE_TYPES,A as SIEGE_GAME_MODES_TO_ID,j as SIEGE_GAME_MODE_LABELS,_ as SIEGE_GAME_MODE_PHASES,M as SIEGE_GAME_MODE_TYPES_TO_ID,N as SIEGE_GAME_MODE_TYPE_LABELS,L as SIEGE_MAP_LABELS,I as SIEGE_MAP_TO_ID,k as SIEGE_MATCH_TYPES_TO_ID,te as SIEGE_MATCH_TYPE_LABELS,ne as SIEGE_OPERATOR_LABELS,F as SIEGE_OPERATOR_META,P as SIEGE_OPERATOR_TO_ID,C as SIEGE_PLAYER_LIFE_STATES,R as SIEGE_ROUND_STATES_TO_ID,z as SIEGE_ROUND_STATE_LABELS,x as SIEGE_SIDES,re as SIEGE_SIDE_OPERATORS,y as SIEGE_TEAMS,V as SIEGE_TIME_OF_DAY_LABELS,B as SIEGE_TIME_OF_DAY_TO_ID,O as SiegeDamageTeamTypeSchema,E as SiegeDamageTypeSchema,m as SiegeGameMode,v as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,ee as SiegeItemObjectId,c as SiegeMapNameId,u as SiegeMatchId,p as SiegeMatchType,s as SiegeOperatorNameId,d as SiegePlayerId,w as SiegePlayerLifeStateSchema,f as SiegeProfileId,l as SiegeRoundState,S as SiegeSideSchema,b as SiegeTeamSchema,h as SiegeTimeOfDay,K as isSiegeRoundStateCompleted,W as isSiegeRoundStateVictory,Fe 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(),f=a(),ee=a(),p=a(),m=a(),h=a(),g=`00000000-0000-0000-0000-000000000000`,_=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`,`first`],v=n(`string`),y=[0,1],b=n(`===`,...y),x=[`attacker`,`defender`,`both`,`invalid`],S=n(`string`),te=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],C=n(`string`),w=`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(`.`),T=n(`string`),ne=[`unknown`,`enemy`,`friendly`,`invalid`],E=n(`string`),D=Object.freeze({quickPlay:p(`QUICK PLAY`),versusAi:p(`VERSUS AI`),standard:p(`STANDARD`),ranked:p(`RANKED`)}),O=Object.freeze({[D.quickPlay]:`Quick Play`,[D.versusAi]:`Versus AI`,[D.standard]:`Standard`,[D.ranked]:`Ranked`}),k=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`)}),re=Object.freeze({[k.teamDeathmatch]:`Team Deathmatch`,[k.goldenGun]:`Golden Gun`,[k.freeForAll]:`Free For All`,[k.weaponRoulette]:`Weapon Roulette`,[k.dualFront]:`Dual Front`,[k.bomb]:`Bomb`,[k.versusAi]:`Versus AI`,[k.hostage]:`Hostage`,[k.threeVsThreeSecureArea]:`3v3 Secure Area`,[k.targetDrill]:`Target Drill`,[k.rengoku]:`Rengoku`}),A=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)}),j=Object.freeze({[A.quickMatch]:`Quick Match`,[A.ranked]:`Ranked`,[A.customGame]:`Custom Game`,[A.versusAi]:`Versus AI`,[A.standard]:`Standard`,[A.arcade]:`Arcade`,[A.siegeCup]:`Siege Cup`,[A.dualFront]:`Dual Front`,[A.showdown]:`Showdown`,[A.trainingGrounds]:`Training Grounds`,[A.unranked]:`Unranked`,[A.deathmatch]:`Deathmatch`,[A.rengoku]:`Rengoku`,[A.muteProtocol]:`M.U.T.E Protocol`,[A.fieldTraining]:`Field Training`}),M=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)}),N=Object.freeze({[M.glaz]:`glaz`,[M.blitz]:`blitz`,[M.buck]:`buck`,[M.sledge]:`sledge`,[M.ash]:`ash`,[M.thermite]:`thermite`,[M.castle]:`castle`,[M.rook]:`rook`,[M.pulse]:`pulse`,[M.doc]:`doc`,[M.mute]:`mute`,[M.smoke]:`smoke`,[M.recruit]:`recruit`,[M.thatcher]:`thatcher`,[M.twitch]:`twitch`,[M.montagne]:`montagne`,[M.bandit]:`bandit`,[M.fuze]:`fuze`,[M.kapkan]:`kapkan`,[M.tachanka]:`tachanka`,[M.jager]:`jager`,[M.iq]:`iq`,[M.frost]:`frost`,[M.blackbeard]:`blackbeard`,[M.valkyrie]:`valkyrie`,[M.caveira]:`caveira`,[M.capitao]:`capitao`,[M.echo]:`echo`,[M.hibana]:`hibana`,[M.mira]:`mira`,[M.jackal]:`jackal`,[M.ying]:`ying`,[M.lesion]:`lesion`,[M.ela]:`ela`,[M.zofia]:`zofia`,[M.dokkaebi]:`dokkaebi`,[M.vigil]:`vigil`,[M.finka]:`finka`,[M.lion]:`lion`,[M.alibi]:`alibi`,[M.maestro]:`maestro`,[M.maverick]:`maverick`,[M.clash]:`clash`,[M.nomad]:`nomad`,[M.kaid]:`kaid`,[M.gridlock]:`gridlock`,[M.mozzie]:`mozzie`,[M.nokk]:`nokk`,[M.warden]:`warden`,[M.goyo]:`goyo`,[M.amaru]:`amaru`,[M.kali]:`kali`,[M.wamai]:`wamai`,[M.oryx]:`oryx`,[M.iana]:`iana`,[M.melusi]:`melusi`,[M.ace]:`ace`,[M.zero]:`zero`,[M.aruni]:`aruni`,[M.flores]:`flores`,[M.thunderbird]:`thunderbird`,[M.osa]:`osa`,[M.thorn]:`thorn`,[M.azami]:`azami`,[M.sens]:`sens`,[M.grim]:`grim`,[M.solis]:`solis`,[M.brava]:`brava`,[M.fenrir]:`fenrir`,[M.ram]:`ram`,[M.tubarao]:`tubarao`,[M.deimos]:`deimos`,[M.striker]:`striker`,[M.sentry]:`sentry`,[M.skopos]:`skopos`,[M.rauora]:`rauora`,[M.denari]:`denari`}),P=Object.freeze({[M.striker]:{name:`Striker`,role:`attacker`},[M.sledge]:{name:`Sledge`,role:`attacker`},[M.thatcher]:{name:`Thatcher`,role:`attacker`},[M.ash]:{name:`Ash`,role:`attacker`},[M.thermite]:{name:`Thermite`,role:`attacker`},[M.twitch]:{name:`Twitch`,role:`attacker`},[M.montagne]:{name:`Montagne`,role:`attacker`},[M.glaz]:{name:`Glaz`,role:`attacker`},[M.fuze]:{name:`Fuze`,role:`attacker`},[M.blitz]:{name:`Blitz`,role:`attacker`},[M.iq]:{name:`IQ`,role:`attacker`},[M.buck]:{name:`Buck`,role:`attacker`},[M.blackbeard]:{name:`Blackbeard`,role:`attacker`},[M.capitao]:{name:`Capitão`,role:`attacker`},[M.hibana]:{name:`Hibana`,role:`attacker`},[M.jackal]:{name:`Jackal`,role:`attacker`},[M.ying]:{name:`Ying`,role:`attacker`},[M.zofia]:{name:`Zofia`,role:`attacker`},[M.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[M.lion]:{name:`Lion`,role:`attacker`},[M.finka]:{name:`Finka`,role:`attacker`},[M.maverick]:{name:`Maverick`,role:`attacker`},[M.nomad]:{name:`Nomad`,role:`attacker`},[M.gridlock]:{name:`Gridlock`,role:`attacker`},[M.nokk]:{name:`Nøkk`,role:`attacker`},[M.amaru]:{name:`Amaru`,role:`attacker`},[M.kali]:{name:`Kali`,role:`attacker`},[M.iana]:{name:`Iana`,role:`attacker`},[M.ace]:{name:`Ace`,role:`attacker`},[M.zero]:{name:`Zero`,role:`attacker`},[M.flores]:{name:`Flores`,role:`attacker`},[M.osa]:{name:`Osa`,role:`attacker`},[M.sens]:{name:`Sens`,role:`attacker`},[M.grim]:{name:`Grim`,role:`attacker`},[M.brava]:{name:`Brava`,role:`attacker`},[M.ram]:{name:`Ram`,role:`attacker`},[M.deimos]:{name:`Deimos`,role:`attacker`},[M.rauora]:{name:`Rauora`,role:`attacker`},[M.sentry]:{name:`Sentry`,role:`defender`},[M.smoke]:{name:`Smoke`,role:`defender`},[M.mute]:{name:`Mute`,role:`defender`},[M.castle]:{name:`Castle`,role:`defender`},[M.pulse]:{name:`Pulse`,role:`defender`},[M.doc]:{name:`Doc`,role:`defender`},[M.rook]:{name:`Rook`,role:`defender`},[M.kapkan]:{name:`Kapkan`,role:`defender`},[M.tachanka]:{name:`Tachanka`,role:`defender`},[M.jager]:{name:`Jäger`,role:`defender`},[M.bandit]:{name:`Bandit`,role:`defender`},[M.frost]:{name:`Frost`,role:`defender`},[M.valkyrie]:{name:`Valkyrie`,role:`defender`},[M.caveira]:{name:`Caveira`,role:`defender`},[M.echo]:{name:`Echo`,role:`defender`},[M.mira]:{name:`Mira`,role:`defender`},[M.lesion]:{name:`Lesion`,role:`defender`},[M.ela]:{name:`Ela`,role:`defender`},[M.vigil]:{name:`Vigil`,role:`defender`},[M.alibi]:{name:`Alibi`,role:`defender`},[M.maestro]:{name:`Maestro`,role:`defender`},[M.clash]:{name:`Clash`,role:`defender`},[M.kaid]:{name:`Kaid`,role:`defender`},[M.mozzie]:{name:`Mozzie`,role:`defender`},[M.warden]:{name:`Warden`,role:`defender`},[M.goyo]:{name:`Goyo`,role:`defender`},[M.wamai]:{name:`Wamai`,role:`defender`},[M.oryx]:{name:`Oryx`,role:`defender`},[M.melusi]:{name:`Melusi`,role:`defender`},[M.aruni]:{name:`Aruni`,role:`defender`},[M.thunderbird]:{name:`Thunderbird`,role:`defender`},[M.thorn]:{name:`Thorn`,role:`defender`},[M.azami]:{name:`Azami`,role:`defender`},[M.solis]:{name:`Solis`,role:`defender`},[M.fenrir]:{name:`Fenrir`,role:`defender`},[M.tubarao]:{name:`Tubarao`,role:`defender`},[M.skopos]:{name:`Skopós`,role:`defender`},[M.denari]:{name:`Denari`,role:`defender`}}),F=Object.freeze({attacker:Object.entries(P).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...P[s(Number(e))],id:s(Number(e))})),defender:Object.entries(P).filter(([e,t])=>t.role===`defender`).map(([e])=>({...P[s(Number(e))],id:s(Number(e))}))}),I=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),themePark:c(229325),stadium:c(338641),outback:c(299162),yacht:c(62226),emeraldPlains:c(358871),chalet:c(62230),coastline:c(217482),bank:c(62228),consulate:c(62227),tower:c(255669),nighthavenLabs:c(375492),presidentialPlane:c(62225),house:c(62221),kafeDostoyevsky:c(62232),border:c(201746),closeQuarter:c(365400),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)}),L=Object.freeze({[I.favela]:`Favela`,[I.fortress]:`Fortress`,[I.villa]:`Villa`,[I.neighborhood]:`Neighborhood`,[I.themePark]:`Theme Park`,[I.stadium]:`Stadium`,[I.outback]:`Outback`,[I.yacht]:`Yacht`,[I.emeraldPlains]:`Emerald Plains`,[I.chalet]:`Chalet`,[I.coastline]:`Coastline`,[I.bank]:`Bank`,[I.consulate]:`Consulate`,[I.tower]:`Tower`,[I.nighthavenLabs]:`Nighthaven Labs`,[I.presidentialPlane]:`Presidential Plane`,[I.house]:`House`,[I.kafeDostoyevsky]:`Kafe Dostoyevsky`,[I.border]:`Border`,[I.closeQuarter]:`Close Quarter`,[I.outback]:`Outback`,[I.lair]:`Lair`,[I.herefordBase]:`Hereford Base`,[I.skyscraper]:`Skyscraper`,[I.cqbBasics]:`CQB Basics`,[I.oregon]:`Oregon`,[I.outback]:`Outback`,318512:`Stadium`,[I.fortTruth]:`Fort Truth`,[I.kanal]:`Kanal`,[I.cqbBasics]:`CQB Basics`,[I.stadium2020]:`Stadium 2020`,[I.clubhouse]:`Clubhouse`,[I.district]:`District`,[I.shinden]:`Shinden`,[I.stadiumBravo]:`Stadium Bravo`,[I.muteCommTower]:`M.U.T.E Comm Tower`}),R=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)}),z=Object.freeze({[R.notPlayed]:`Not Played`,[R.inProgress]:`In Progress`,[R.lost]:`Lost`,[R.enemiesEliminated]:`Enemies Eliminated`,[R.objectiveComplete]:`Objective Complete`,[R.timeRanOut]:`Time ran out`,[R.enemiesSurrendered]:`Enemies Surrendered`,[R.unknownReason]:`Unknown Reason`,[R.matchCancelled]:`Match Cancelled`}),B=Object.freeze({day:h(177839),night:h(177840)}),V=Object.freeze({[B.day]:`Day`,[B.night]:`Night`}),H=n({game:`string`,type:`string`,creation_time:`number`}),U=[R.enemiesEliminated,R.objectiveComplete,R.timeRanOut,R.enemiesSurrendered,R.unknownReason];function W(e){return U.includes(e)}const G=[R.notPlayed,R.inProgress];function K(e){return!G.includes(e)}const q=H.and({game:`'siege'`}),J=q.and({type:`'local_player'`,content:{profile_id:r(n.string)}}),Y=()=>n({id:`number`,value:`string`}),X=n({kills:`number`,deaths:`number`,assists:`number`,score:`number`}),ie=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:T,damage_team_type:E,damage_item_id:r(n.number).or(`null`),damage_time:`number`}),Z=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)}}),Q=n({id:`number`,name:Y(),time_of_day:Y()}),ae=n({player_id:r(n.number),final_health:`number`,final_life_state:C,operator_name:Y().or(`null`)}),oe=n({round_data:Z,damage_events:ie.array(),players:ae.array()}),se=q.and({type:`'match_started'`,content:{game_mode:r(n.string),game_type:Y(),match_type:r(n.string),match_id:r(n.string),map:Q,is_round_based:`boolean`,current_round_index:`number`,rounds:Z.array()}}),ce=q.and({type:`'module_loaded'`}),le=q.and({type:`'module_unloaded'`}),$=q.and({type:`'started_queuing'`,content:{game_mode:r(n.string),game_type:Y(),match_type:r(n.string)}}),ue=q.and({type:`'stopped_queuing'`}),de=q.and({type:`'unsupported_game_version'`,content:{hash:`string | null`,version:`string | null`}}),fe=q.and({type:`'match_ended'`}),pe=q.and({type:`'map_changed'`,content:{map:Q}}),me=q.and({type:`'operator_banned'`,content:{index:`number`,team:b,side:S,operator_name:Y().or(`null`)}}),he=q.and({type:`'round_ended'`,content:oe}),ge=q.and({type:`'phase_changed'`,content:{phase:v}}),_e=q.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:r(n.string),is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:S,team:b,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:X,life_state:C,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),ve=q.and({type:`'player_left'`,content:{player_id:r(n.number)}}),ye=q.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:Y().or(`null`)}}),be=q.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),xe=q.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:S}}),Se=q.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:X}}),Ce=q.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),we=q.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),Te=q.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),Ee=q.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),De=q.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),Oe=q.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:C}}),ke=q.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Ae=q.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),je=q.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Me=q.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:b}}),Ne=q.and({type:`'game_log'`,content:{message:`string.json`}}),Pe=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | local_player | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_banned | round_ended | phase_changed | player_joined | player_left | player_operator_changed | player_location_changed | player_side_changed | player_stats_changed`,"#event2":`player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated | game_log`,event:`event1 | event2`,module_loaded:ce,module_unloaded:le,unsupported_game_version:de,local_player:J,started_queuing:$,stopped_queuing:ue,match_started:se,match_ended:fe,map_changed:pe,operator_banned:me,round_ended:he,phase_changed:ge,player_joined:_e,player_left:ve,player_operator_changed:ye,player_location_changed:be,player_side_changed:xe,player_stats_changed:Se,defuser_planted:we,defuser_sabotaged:Te,defuser_picked_up:Ee,defuser_dropped:De,player_ping_updated:Ce,player_life_state_changed:Oe,player_died:ke,player_downed:Ae,player_ping_id_changed:je,player_team_changed:Me,game_log:Ne}).export();function Fe(){return{key:`siege`,events:Pe}}export{H as BaseEvent,g as SIEGE_BOT_ID,ne as SIEGE_DAMAGE_TEAM_TYPES,w as SIEGE_DAMAGE_TYPES,k as SIEGE_GAME_MODES_TO_ID,re as SIEGE_GAME_MODE_LABELS,_ as SIEGE_GAME_MODE_PHASES,A as SIEGE_GAME_MODE_TYPES_TO_ID,j as SIEGE_GAME_MODE_TYPE_LABELS,L as SIEGE_MAP_LABELS,I as SIEGE_MAP_TO_ID,D as SIEGE_MATCH_TYPES_TO_ID,O as SIEGE_MATCH_TYPE_LABELS,N as SIEGE_OPERATOR_LABELS,P as SIEGE_OPERATOR_META,M as SIEGE_OPERATOR_TO_ID,te as SIEGE_PLAYER_LIFE_STATES,R as SIEGE_ROUND_STATES_TO_ID,z as SIEGE_ROUND_STATE_LABELS,x as SIEGE_SIDES,F as SIEGE_SIDE_OPERATORS,y as SIEGE_TEAMS,V as SIEGE_TIME_OF_DAY_LABELS,B as SIEGE_TIME_OF_DAY_TO_ID,E as SiegeDamageTeamTypeSchema,T as SiegeDamageTypeSchema,m as SiegeGameMode,v as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,ee as SiegeItemObjectId,c as SiegeMapNameId,u as SiegeMatchId,p as SiegeMatchType,s as SiegeOperatorNameId,d as SiegePlayerId,C as SiegePlayerLifeStateSchema,f as SiegeProfileId,l as SiegeRoundState,S as SiegeSideSchema,b as SiegeTeamSchema,h as SiegeTimeOfDay,K as isSiegeRoundStateCompleted,W as isSiegeRoundStateVictory,Fe as module};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@overlayed/app",
3
3
  "author": "overlayed.gg",
4
4
  "homepage": "https://overlayed.gg",
5
- "version": "0.24.3",
5
+ "version": "0.24.4",
6
6
  "description": "Overlayed app",
7
7
  "license": "SEE LICENSE IN LICENSE.md",
8
8
  "repository": {
@@ -68,7 +68,7 @@
68
68
  "@overlayed/cortex-client": "0.0.4",
69
69
  "@overlayed/events": "0.0.4",
70
70
  "@overlayed/native-managers": "0.0.4",
71
- "@overlayed/siege": "0.0.4",
71
+ "@overlayed/siege": "0.0.5",
72
72
  "@overlayed/utils": "0.0.4",
73
73
  "@overlayed/utils-node": "0.0.4"
74
74
  },