@overlayed/app 0.18.3 → 0.18.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 +1 -1
- package/dist/siege.d.ts +114 -107
- package/dist/siege.js +1 -1
- package/package.json +1 -1
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:Be,stderr:Ve}=Le,w=Symbol(`GENERATOR`),T=Symbol(`STYLER`),E=Symbol(`IS_EMPTY`),He=[`ansi`,`ansi`,`ansi256`,`ansi16m`],D=Object.create(null),Ue=(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=Be?Be.level:0;e.level=t.level===void 0?n:t.level},We=e=>{let t=(...e)=>e.join(` `);return Ue(t,e),Object.setPrototypeOf(t,O.prototype),t};function O(e){return We(e)}Object.setPrototypeOf(O.prototype,Function.prototype);for(let[e,t]of Object.entries(b))D[e]={get(){let n=A(this,qe(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 k=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?b[n].ansi16m(...r):t===`ansi256`?b[n].ansi256(b.rgbToAnsi256(...r)):b[n].ansi(b.rgbToAnsi(...r)):e===`hex`?k(`rgb`,t,n,...b.hexToRgb(...r)):b[n][e](...r),Ge=[`rgb`,`hex`,`ansi256`];for(let e of Ge){D[e]={get(){let{level:t}=this;return function(...n){let r=qe(k(e,He[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=qe(k(e,He[t],`bgColor`,...n),b.bgColor.close,this[T]);return A(this,r,this[E])}}}}const Ke=Object.defineProperties(()=>{},{...D,level:{enumerable:!0,get(){return this[w].level},set(e){this[w].level=e}}}),qe=(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)=>Je(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,Ke),r[w]=e,r[T]=t,r[E]=n,r},Je=(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=Re(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
|
|
5
|
-
`);return a!==-1&&(t=ze(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);const Ye=O();O({level:Ve?Ve.level:0});var j=Ye,M=class{emitter;constructor(){this.emitter=r()}on(e,t){_(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){_(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){_(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},Xe=class{listeners;constructor(){this.listeners=new Map}on(e,t){_(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){_(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=_(e).flatMap(e=>{let t=this.listeners.get(e)||new Set,n=this.listeners.get(`*`)||new Set;return[...Array.from(t),...Array.from(n)]});if(n.length===0)return[];let r=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}}));return r}removeAllListeners(){this.listeners.clear()}};function N(e,...t){let n=class extends e{static _instance;static getInstance(){return this._instance||(this._instance=new e(...t)),this._instance}static clearInstance(){this._instance=void 0}};return n}var Ze=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()})}};const P=N(Ze);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){let t=this.get();return t[e]}save(e){let t=this.onBeforeSave(e);try{d(this.getFilePath()),i.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(){if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return this.data=e,e}try{let e=i.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=n(`string.json.parse`).to(`object`),r=t(e);if(r instanceof n.errors)return this._defaultValue;let i=this._schema[`~standard`].validate(r);if(i instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return i.issues?this.migrate(r,this._defaultValue):this.migrate(i.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return i.accessSync(e,i.constants.R_OK|i.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return i.accessSync(e,i.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r))continue;r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]}return n}reportInvalidConfigFile(e){P.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}},$e=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=>typeof e==`object`?JSON.stringify(e,void 0,2):String(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);let n=e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let n=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``),r=new Date(n);return r<t});n.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`),et=()=>p.join(F(),`logs`),tt=e=>p.join(F(),`apps`,e),nt=e=>p.join(tt(e),`logs`),rt=()=>p.join(F(),`meta.json`);var it=class{fileLogger;path;appId;messageQueue=new we;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=nt(e),this.fileLogger=new $e(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}=$e.getMessageElements(e,...t),a=console[e],o=n[e];a(`${j.gray(r)} ${o(i)}`)}};const I=N(it,`overlayed.log`);var at=class extends ie{blob;chunkSizeMb;maxConcurrent;shouldStop=!1;constructor(e,t){super(),this.blob=e,this.chunkSizeMb=t.chunkSizeMb,this.maxConcurrent=t.maxConcurrent??3}get totalChunks(){return Math.ceil(this.blob.size/(this.chunkSizeMb*1024*1024))}async chunk(e){let t=this.chunkSizeMb*1024*1024,n=this.totalChunks;if(n===0)return;let r=5,i=new Map,a=new Set,o=new Set,s=[];for(let e=0;e<n;e++)s.push(e);let c=async n=>{let c=n*t,l=Math.min(c+t,this.blob.size),u=this.blob.slice(c,l);try{await e(u,n),o.add(n),this.emit(`chunkComplete`,n),a.delete(n)}catch(e){let t=i.get(n)||0;t<r?(i.set(n,t+1),await new Promise(e=>setTimeout(e,(t+1)*1e3)),s.push(n)):(o.add(n),this.emit(`error`,e),this.shouldStop=!0,a.delete(n))}},l=[],u=async()=>{for(;(s.length>0||a.size>0)&&!this.shouldStop;){if(s.length===0){await new Promise(e=>setTimeout(e,10));continue}let e=s.shift();o.has(e)||a.has(e)||(a.add(e),await c(e))}};for(let e=0;e<this.maxConcurrent;e++)l.push(u());await Promise.all(l)}};function ot(e,t){let{recursive:n}=st(t);return se(e)?n?ct(e).map(t=>[e,t]):ue(e).map(t=>[e,t]):[]}function st(e){return{recursive:e?.recursive??!0}}function ct(e){return ue(e,{withFileTypes:!0}).flatMap(t=>{let n=p.join(e,t.name);return t.isDirectory()?ct(n):[n]})}function lt(e){return e}const ut=e(import.meta.url),{PipeEventServer:dt,PipeEventClient:ft,PipeEventBase:pt,ProcessMonitor:mt,Process:ht,InjectionMethod:gt,AccessLevel:_t,HardwareInterface:vt}=ut(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var yt=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(),this.server=null)}init(){this.server=new dt(this.pipeId,{clientCount:1,access:1}),this.server.on(`event`,e=>{try{let t=JSON.parse(e);this.emit(`data`,[t])}catch(e){this.emit(`error`,e)}}),this.server.on(`connected`,()=>{this._hasConnection=!0}),this.server.on(`disconnected`,()=>{this._hasConnection=!1})}};const L=N(yt,`stats-cc`);var bt=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()}},xt=class extends Xe{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=fe.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let St;function Ct(e){St=e}z.interceptors.request.use(e=>{let t=St?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const B=fe.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let wt,Tt;B.interceptors.request.use(e=>{let t=wt?.(),n=Tt?.();return e.headers??={},t&&(e.headers.Authorization=t),n&&(e.headers[`X-Api-Key`]=n),e});function Et(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 Dt(e){return e}function V(e){return e?t=>(e(t),t):Dt}V();const Ot=V();function kt(e){return B.get(`/v1/public/applications/${e}`)}V();function At(e,t){return z.get(`/v1/native/${Mt(e)}/version.txt`,{params:{channel:t},responseType:`text`})}function jt(e,t){return z.get(`/v1/native/${Mt(e)}/files`,{params:{channel:t},responseType:`arraybuffer`})}function Mt(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function Nt(){return B.get(`/v1/public/raven/config`)}V();function Pt(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Ft(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function It(e,t){let n=new FormData;return n.append(`file`,t.chunk),B.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}const Lt=250;function Rt(e){let t=Date.now(),n=e.messages.map(e=>zt(t,e)),r=Et(n,Lt),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 zt(e,t){let n=e-t.created_at.getTime(),r=Math.max(0,Math.floor(n/1e3));return{properties:t.properties,type:t.type,seconds_offset:r}}function Bt(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Vt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Ht;function Ut(e){Ht=e}var Wt=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 h.mkdir(this.targetDir,{recursive:!0}),await this.checkForUpdates(e),clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.checkForUpdates(e),this.UPDATE_CHECK_INTERVAL_MS)}destroy(){this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=void 0),super.destroy()}async getCurrentVersion(e){try{let t=p.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await h.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 Ht?.();for(let n of e)try{let{data:e}=await At(n,t),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r;this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t,i),this.logger.log(`${n} > Downloaded and extracted`),i&&(this.logger.log(`${n} > Cleaning up versions older than ${e}`),await this.cleanupOldVersions(n,e)),this.emit(`dllUpdated`,{identifier:n,version:e})}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n,r){let{data:i}=await jt(e,n),a=this.getTargetPath(e),o=this.getTargetVersionPath(e,t);await h.mkdir(o,{recursive:!0});let s=new g;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 h.access(i,h.constants.F_OK);return}catch{this.logger.warn(`${e} > File missing, re-downloading: ${i}`)}let a=await n.async(`nodebuffer`);await h.writeFile(i,a)}});await Promise.all(c);let l=p.join(a,`version.txt`);this.logger.log(`Saving version file`,l),await h.writeFile(l,t)}async cleanupOldVersions(e,t){let n=p.join(this.targetDir,e),r=await h.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await h.rm(p.join(n,e.name),{recursive:!0,force:!0})}};const H=N(Wt);var Gt=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),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),H.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{let e=await Nt(),t={games:e.data.games};this._ravenConfig=t,this.resetState();let n=new Set;for(let e of this._ravenConfig.games){for(let t of e.executables){let n=t.toLowerCase();this._executableToGameMap.set(n,e),this._executablesArray.push(n)}e.modules.forEach(e=>n.add(e))}await H.getInstance().initWithDlls(Array.from(n)),this.logger.log(`Raven updated`,this._ravenConfig),this.emit(`executablesUpdated`,{executables:this.executables,map:this._executableToGameMap})}catch(e){this.logger.error(`Failed to fetch Raven config`,e),this._failedRefetchTimeoutHandler=setTimeout(()=>this.fetchRavenConfig(),this.FAILED_REFETCH_INTERVAL)}}resetState(){this._executableToGameMap.clear(),this._executablesArray=[]}};const U=N(Gt),Kt=e(import.meta.url),{PipeEventServer:qt,PipeEventClient:Jt,PipeEventBase:Yt,ProcessMonitor:Xt,Process:W,InjectionMethod:Zt,AccessLevel:Qt,HardwareInterface:$t}=Kt(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var en=class extends R{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new Xt}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),U.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(){U.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){let t=this._processes.get(e);return t?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){e.executables.forEach(e=>{this.logger.log(`Monitoring process`,e),this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name),n=t?.filter(t=>t.id!==e.id)??[];n.length===0?this._processes.delete(e.name):this._processes.set(e.name,n)}};const G=N(en),tn=e(import.meta.url),{RenderInterface:nn,renderHookPath:rn}=tn(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);var an=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}}},on=class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new an(new nn(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}};const K=N(on);var sn=class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new we,this.setupFlushInterval()}track(e,t){this.eventQueue.add({type:e,properties:t,created_at:new Date})}flush(){let e=Array.from(this.eventQueue.flush()),t=e.concat({type:`ping`,properties:{},created_at:new Date});if(!this.meta)throw Error(`Tried to flush Cortex events before meta was set`);try{Rt({...this.meta,messages:t})}catch{}return t}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}};const q=N(sn),cn=e(import.meta.url),ln=cn.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`);var un=class extends xt{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;_activeReadyRavenGames=new Set;get isInGame(){return this._activeReadyRavenGames.size>0}constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}init(){super.init(),K.getInstance().createInterface(`OGG_SIEGE`),G.getInstance().on(`create`,this.boundOnProcessCreate),G.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){G.getInstance().off(`create`,this.boundOnProcessCreate),G.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(q.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;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,W.currentProcess.isElevated),e.isElevated&&!W.currentProcess.isElevated){P.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!W.currentProcess.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:W.currentProcess.isElevated,gameElevated:e.isElevated});return}let r=this.copyDll(ln);if(r)try{await e.injectDll(r),this.logger.log(`Render Interface Injection Successful`,r)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:r})}let i=t?.modules.map(async t=>{let n=await H.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=H.getInstance().getTargetVersionPath(t,n);this.logger.log(`DLL Path`,r);let i=await this.getDllFiles(r);return this.logger.log(`DLL Files`,i),Promise.all(i.map(async t=>{let n=p.basename(t),i=p.join(r,n);if(!i)return Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(i),this._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}),q.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{se(r)||ce(r,{recursive:!0});let e=le(n);de(i,e),ae(n,i)}catch(e){return e.code===`EBUSY`?i:(this.logger.error(`Failed to copy`,e),this.logger.error(`Failed to copy`,{originalPath:n,targetPath:i}),!1)}return i}async getDllFiles(e){try{let t=await h.readdir(e);return t.filter(e=>e.endsWith(`.dll`)).map(t=>p.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this._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}),q.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=U.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}};const J=N(un);var dn=class extends bt{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),J.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){J.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=le(n.path),i=pe(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{let e=await Pt(t.identifier,i);a=e.data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new g;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 at(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Ft(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 It(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Bt(e)?Vt(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}};const fn=N(dn);function pn(e=[]){return p.normalize(p.join(tt(global.OVERLAYED.APPLICATION_ID),...e))}const mn=n({game:`string`,type:`string`,creation_time:`number`}),hn=new Qe({path:rt(),schema:n({userId:`string | undefined`}),default:{userId:void 0}});function gn(){let e=hn.get().userId;if(e)return e;let t=_n();return hn.set({userId:t}),t}function _n(){try{return $t.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}function Y(e,t){return`${e}:${t}`}function vn(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=Y(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=Y(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=Y(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=Y(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function yn(){let e=P.getInstance(),t=J.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 X=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}(X||{});const bn=new Map([[X.LeftButton,`LeftButton`],[X.RightButton,`RightButton`],[X.Cancel,`Cancel`],[X.MiddleButton,`MiddleButton`],[X.ExtraButton1,`ExtraButton1`],[X.ExtraButton2,`ExtraButton2`],[X.Back,`Backspace`],[X.Tab,`Tab`],[X.Clear,`Clear`],[X.Return,`Enter`],[X.Shift,`ShiftLeft`],[X.Control,`ControlLeft`],[X.Menu,`AltLeft`],[X.Pause,`Pause`],[X.CapsLock,`CapsLock`],[X.Kana,`KanaMode`],[X.Junja,`JunjaMode`],[X.Final,`Finalize`],[X.Hanja,`HanjaMode`],[X.Escape,`Escape`],[X.Convert,`Convert`],[X.NonConvert,`NonConvert`],[X.Accept,`Accept`],[X.ModeChange,`ModeChange`],[X.Space,`Space`],[X.Prior,`PageUp`],[X.Next,`PageDown`],[X.End,`End`],[X.Home,`Home`],[X.Left,`ArrowLeft`],[X.Up,`ArrowUp`],[X.Right,`ArrowRight`],[X.Down,`ArrowDown`],[X.Select,`Select`],[X.Print,`PrintScreen`],[X.Execute,`Execute`],[X.Snapshot,`Snapshot`],[X.Insert,`Insert`],[X.Delete,`Delete`],[X.Help,`Help`],[X.N0,`Digit0`],[X.N1,`Digit1`],[X.N2,`Digit2`],[X.N3,`Digit3`],[X.N4,`Digit4`],[X.N5,`Digit5`],[X.N6,`Digit6`],[X.N7,`Digit7`],[X.N8,`Digit8`],[X.N9,`Digit9`],[X.A,`KeyA`],[X.B,`KeyB`],[X.C,`KeyC`],[X.D,`KeyD`],[X.E,`KeyE`],[X.F,`KeyF`],[X.G,`KeyG`],[X.H,`KeyH`],[X.I,`KeyI`],[X.J,`KeyJ`],[X.K,`KeyK`],[X.L,`KeyL`],[X.M,`KeyM`],[X.N,`KeyN`],[X.O,`KeyO`],[X.P,`KeyP`],[X.Q,`KeyQ`],[X.R,`KeyR`],[X.S,`KeyS`],[X.T,`KeyT`],[X.U,`KeyU`],[X.V,`KeyV`],[X.W,`KeyW`],[X.X,`KeyX`],[X.Y,`KeyY`],[X.Z,`KeyZ`],[X.LeftWindows,`MetaLeft`],[X.RightWindows,`MetaRight`],[X.Application,`ContextMenu`],[X.Sleep,`Sleep`],[X.Numpad0,`Numpad0`],[X.Numpad1,`Numpad1`],[X.Numpad2,`Numpad2`],[X.Numpad3,`Numpad3`],[X.Numpad4,`Numpad4`],[X.Numpad5,`Numpad5`],[X.Numpad6,`Numpad6`],[X.Numpad7,`Numpad7`],[X.Numpad8,`Numpad8`],[X.Numpad9,`Numpad9`],[X.Multiply,`NumpadMultiply`],[X.Add,`NumpadAdd`],[X.Separator,`NumpadSeparator`],[X.Subtract,`NumpadSubtract`],[X.Decimal,`NumpadDecimal`],[X.Divide,`NumpadDivide`],[X.F1,`F1`],[X.F2,`F2`],[X.F3,`F3`],[X.F4,`F4`],[X.F5,`F5`],[X.F6,`F6`],[X.F7,`F7`],[X.F8,`F8`],[X.F9,`F9`],[X.F10,`F10`],[X.F11,`F11`],[X.F12,`F12`],[X.F13,`F13`],[X.F14,`F14`],[X.F15,`F15`],[X.F16,`F16`],[X.F17,`F17`],[X.F18,`F18`],[X.F19,`F19`],[X.F20,`F20`],[X.F21,`F21`],[X.F22,`F22`],[X.F23,`F23`],[X.F24,`F24`],[X.NumLock,`NumLock`],[X.ScrollLock,`ScrollLock`],[X.NEC_Equal,`NEC_Equal`],[X.Fujitsu_Masshou,`Fujitsu_Masshou`],[X.Fujitsu_Touroku,`Fujitsu_Touroku`],[X.Fujitsu_Loya,`Fujitsu_Loya`],[X.Fujitsu_Roya,`Fujitsu_Roya`],[X.LeftShift,`ShiftLeft`],[X.RightShift,`ShiftRight`],[X.LeftControl,`ControlLeft`],[X.RightControl,`ControlRight`],[X.LeftMenu,`AltLeft`],[X.RightMenu,`AltRight`],[X.BrowserBack,`BrowserBack`],[X.BrowserForward,`BrowserForward`],[X.BrowserRefresh,`BrowserRefresh`],[X.BrowserStop,`BrowserStop`],[X.BrowserSearch,`BrowserSearch`],[X.BrowserFavorites,`BrowserFavorites`],[X.BrowserHome,`BrowserHome`],[X.VolumeMute,`VolumeMute`],[X.VolumeDown,`VolumeDown`],[X.VolumeUp,`VolumeUp`],[X.MediaNextTrack,`MediaTrackNext`],[X.MediaPrevTrack,`MediaTrackPrevious`],[X.MediaStop,`MediaStop`],[X.MediaPlayPause,`MediaPlayPause`],[X.LaunchMail,`LaunchMail`],[X.LaunchMediaSelect,`LaunchMediaSelect`],[X.LaunchApplication1,`LaunchApplication1`],[X.LaunchApplication2,`LaunchApplication2`],[X.OEM1,`OEM_1`],[X.OEMPlus,`Equal`],[X.OEMComma,`Comma`],[X.OEMMinus,`Minus`],[X.OEMPeriod,`Period`],[X.OEM2,`Slash`],[X.OEM3,`Backquote`],[X.OEM4,`BracketLeft`],[X.OEM5,`Backslash`],[X.OEM6,`BracketRight`],[X.OEM7,`Quote`],[X.OEM8,`IntlRo`],[X.OEMAX,`OEM_AX`],[X.OEM102,`IntlBackslash`],[X.ICOHelp,`ICO_HELP`],[X.ICO00,`ICO_00`],[X.ProcessKey,`Process`],[X.ICOClear,`ICO_CLEAR`],[X.Packet,`Packet`],[X.OEMReset,`OEM_Reset`],[X.OEMJump,`OEM_Jump`],[X.OEMPA1,`OEM_PA1`],[X.OEMPA2,`OEM_PA2`],[X.OEMPA3,`OEM_PA3`],[X.OEMWSCtrl,`OEM_WS_Ctrl`],[X.OEMCUSel,`OEM_CU_Sel`],[X.OEMATTN,`OEM_ATTN`],[X.OEMFinish,`OEM_Finish`],[X.OEMCopy,`OEM_Copy`],[X.OEMAuto,`OEM_Auto`],[X.OEMENLW,`OEM_ENLW`],[X.OEMBackTab,`BackTab`],[X.ATTN,`ATTN`],[X.CRSel,`CRSel`],[X.EXSel,`EXSel`],[X.EREOF,`EREOF`],[X.Play,`MediaPlay`],[X.Zoom,`Zoom`],[X.Noname,`Noname`],[X.PA1,`PA1`],[X.OEMClear,`OEM_Clear`]]),xn=new Map(bn.entries().map(([e,t])=>[t,e])),Sn=n({"[string]":{keys:`string[]`,mode:n(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var Cn=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:pn([`keybinds.json`]),schema:Sn,default:e})}init(){super.init();let e=K.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=K.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=bn.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=bn.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries()){let r=n[e];r.keys.includes(t)&&this.triggeredToggleKeybinds.delete(e)}this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up)continue;let r=e[t];this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))&&(this.activeKeybinds.delete(t),n.up(),this.logger.log(`Keybind up triggered`,this.getKeybindToString(r)))}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.length===this.pressedKeys.size&&r.keys.every(e=>xn.has(e)?this.pressedKeys.has(e):!1);if(i){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.every(e=>xn.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1));i&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&!this.triggeredToggleKeybinds.has(n)){let r=t.toggle();this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&!this.activeKeybinds.has(n)){let r=t.down();r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}};function wn(e){let t=new Cn(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(),me.on(`quit`,()=>{t.destroy()}),r}function Z(){return K.getInstance().getInterface(`OGG_SIEGE`)}function Tn(){let e=J.getInstance(),t=P.getInstance(),n=q.getInstance();n.meta=En(),e.on([`gameReady`,`gameClose`],()=>{n.meta||(n.meta=En()),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 En(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:gn(),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 Dn(){function e(e,t){return e.once(`closed`,()=>{e.isDestroyed()||q.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||q.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),q.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(Z().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>Z().instance.on(e,t),off:(e,t)=>Z().instance.off(e,t),once:(e,t)=>Z().instance.once(e,t),addListener:(e,t)=>Z().instance.addListener(e,t),removeListener:(e,t)=>Z().instance.removeListener(e,t),removeAllListeners:()=>Z().instance.removeAllListeners(),prependListener:(e,t)=>Z().instance.prependListener(e,t),prependOnceListener:(e,t)=>Z().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=Z(),t=L.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}var On=class extends bt{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=K.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}};const kn=N(On,`OGG_SIEGE`);function An(){return{scope:e=>kn.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>Z().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>Z().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>Z().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>Z().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>Z().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>Z().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>Z().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>Z().instance.getKeyInputBlock(e)}}}function jn(){return{track:(e,t)=>{let n=q.getInstance();n.track(`custom__${String(e)}`,t)}}}var Mn=xe((exports,t)=>{var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e,t)=>{var n=new Set([`mouseDown`,`mouseUp`,`pointerDown`,`pointerUp`]),r=new WeakSet;function i(e,t,{allowHosts:i}={}){let{shell:a}=t;if(r.has(e))return;r.add(e);let o=e.webContents;function s(e){return!!(!c(e)||i?.includes(e.host))}function c(e){return new URL(o.getURL()).origin!==e.origin}let l=0;function u(){l=Date.now()}function d(){let e=Date.now()-l,t=e<150;return t||console.warn(`was not recently active`,e),t}if(process.platform===`win32`){let t={KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576};for(let n of Object.values(t))e.hookWindowMessage(n,u)}o.on(`input-event`,(e,t)=>{n.has(t.type)&&u()}),o.on(`will-navigate`,(e,t)=>{let n=e.url||t;if(console.log(`will-navigate`,n),!n)return;let r=new URL(n);if(!s(r)){if(!d()){console.log(`blocked navigation`,n),e.preventDefault();return}c(r)&&(console.log(`external navigation`,n),e.preventDefault(),a.openExternal(n))}}),o.session.on(`will-download`,(e,t)=>{let n=t.getURL();/^blob:/.test(n)||e.preventDefault()}),o.setWindowOpenHandler(e=>{console.log(`window-open`,e.url);let{url:t}=e,n=new URL(t);if(!s(n))return d()?(c(n)&&a.openExternal(e.url),{action:`deny`}):(console.log(`blocked navigation`,t),{action:`deny`})})}t.exports=i}),i=n((e,t)=>{var n=new Set([`Mozilla`,`AppleWebKit`,`Chrome`,`Safari`,`Gecko`,`Firefox`,`OPR`,`Edg`,`Version`,`Mobile`,`curl`,`PostmanRuntime`]);async function r(e,t,r){let{webContents:i}=e,a=await i.executeJavaScript(`navigator.userAgent`);a=a.match(/[^\/]+\/[^\s]+( \([^\)]+\))?/g).map(e=>e.trim()).filter(e=>{let[t]=e.split(`/`,1);return n.has(t)}).join(` `),i.setUserAgent(a),t.app.userAgentFallback=a}t.exports=r}),a=r(),o=i();function s(e,t,n={}){a(e,t,n.linkHandler),o(e,t,n.userAgent)}t.exports={setupRevUtils:s,setupLinkHandler:a,setUserAgent:o}}),Nn=Ce(Mn(),1);function Pn(){return{registerWindow:e=>{(0,Nn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function Fn(e){let t=nt(global.OVERLAYED.APPLICATION_ID),n=ot(t,{recursive:!0}),r=et(),i=ot(r,{recursive:!0});I.getInstance().info(`Logs path: `,t),I.getInstance().info(`Overlayed logs path: `,r);let a=new g;return[...n,...i].forEach(([e,t])=>{I.getInstance().info(`Zipping: `,t);let n=oe(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 In(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 Ln(e){let t=new it(`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)=>{q.getInstance().track(`bug_report_submitted`,{version:e.version,category:e.category});let n=Fn(t),r=await n.generateAsync({type:`base64`});await In(e,r)}}}const Rn=1e3;function zn(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>=Rn){P.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${n.length}, max: ${Rn}`});return}n.push(e)}}function c(r){let i=mn(r);if(i instanceof n.errors){q.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){q.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;q.getInstance().track(`unsupported_game_version`,{game:l.game,hash:e?.hash,version:e?.version})}let u=Y(o.key,l.type),d=Y(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 Q=!1,Bn={},$,Vn=new M;function Hn(e){let{init:t=!0,debug:n=!1,silent:r=!0}=e;if(Un(e),I.getInstance().init(e.applicationId,n,r),Q)return $;function i(){if(Q)return;Tn();let t=new Map,n=new Map,r=vn(e.modules,t,Vn),a=yn(),o=wn(e.keybinds),s=Dn(),c=An(),l=Pn(),u=jn(),d=Ln(e);Wn(e),zn(e,t,n,Vn,Bn),Q=!0,$={...r,...a,ads:l,keybinds:o,windows:s,input:c,cortex:u,hasAnyActiveProcesses:()=>G.getInstance().hasAnyActiveProcesses,init:i,log:d,initialized:Q}}return t?(i(),$):new Proxy({init:i},{get:(e,t)=>{if(t!==`init`&&!Q)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:$[t]}})}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Un(e){global.OVERLAYED={APPLICATION_ID:Ot(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.18.3`,FRONTEND_VERSION:`0.0.0`,sessionId:crypto.randomUUID(),electron:e.electron}}function Wn(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);J.getInstance().setSubscribedGames(t),fn.getInstance().init(),J.getInstance().init(),G.getInstance().init(),U.getInstance().init();async function n(){let e=kt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=gn();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=r??n(),r)),q.getInstance().track(`start`,{}),me.on(`quit`,()=>{q.getInstance().track(`electron_quit`,{}),Gn()}),process.on(`exit`,()=>{q.getInstance().track(`exit`,{}),Gn()})}async function Gn(){await q.getInstance().flush(),U.getInstance().destroy(),J.getInstance().destroy(),fn.getInstance().destroy(),G.getInstance().destroy(),K.getInstance().getInterface(`OGG_SIEGE`).destroy(),L.getInstance().destroy(),P.getInstance().destroy()}export{lt as defineConfig,Hn as overlayed,Ut as setFetchLatestTokenCallback,Ct as setUpdaterTokenResolver};
|
|
5
|
+
`);return a!==-1&&(t=ze(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);const Ye=O();O({level:Ve?Ve.level:0});var j=Ye,M=class{emitter;constructor(){this.emitter=r()}on(e,t){_(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){_(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){_(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},Xe=class{listeners;constructor(){this.listeners=new Map}on(e,t){_(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){_(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=_(e).flatMap(e=>{let t=this.listeners.get(e)||new Set,n=this.listeners.get(`*`)||new Set;return[...Array.from(t),...Array.from(n)]});if(n.length===0)return[];let r=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}}));return r}removeAllListeners(){this.listeners.clear()}};function N(e,...t){let n=class extends e{static _instance;static getInstance(){return this._instance||(this._instance=new e(...t)),this._instance}static clearInstance(){this._instance=void 0}};return n}var Ze=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()})}};const P=N(Ze);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){let t=this.get();return t[e]}save(e){let t=this.onBeforeSave(e);try{d(this.getFilePath()),i.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(){if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return this.data=e,e}try{let e=i.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=n(`string.json.parse`).to(`object`),r=t(e);if(r instanceof n.errors)return this._defaultValue;let i=this._schema[`~standard`].validate(r);if(i instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return i.issues?this.migrate(r,this._defaultValue):this.migrate(i.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return i.accessSync(e,i.constants.R_OK|i.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return i.accessSync(e,i.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r))continue;r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]}return n}reportInvalidConfigFile(e){P.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}},$e=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=>typeof e==`object`?JSON.stringify(e,void 0,2):String(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);let n=e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let n=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``),r=new Date(n);return r<t});n.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`),et=()=>p.join(F(),`logs`),tt=e=>p.join(F(),`apps`,e),nt=e=>p.join(tt(e),`logs`),rt=()=>p.join(F(),`meta.json`);var it=class{fileLogger;path;appId;messageQueue=new we;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=nt(e),this.fileLogger=new $e(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}=$e.getMessageElements(e,...t),a=console[e],o=n[e];a(`${j.gray(r)} ${o(i)}`)}};const I=N(it,`overlayed.log`);var at=class extends ie{blob;chunkSizeMb;maxConcurrent;shouldStop=!1;constructor(e,t){super(),this.blob=e,this.chunkSizeMb=t.chunkSizeMb,this.maxConcurrent=t.maxConcurrent??3}get totalChunks(){return Math.ceil(this.blob.size/(this.chunkSizeMb*1024*1024))}async chunk(e){let t=this.chunkSizeMb*1024*1024,n=this.totalChunks;if(n===0)return;let r=5,i=new Map,a=new Set,o=new Set,s=[];for(let e=0;e<n;e++)s.push(e);let c=async n=>{let c=n*t,l=Math.min(c+t,this.blob.size),u=this.blob.slice(c,l);try{await e(u,n),o.add(n),this.emit(`chunkComplete`,n),a.delete(n)}catch(e){let t=i.get(n)||0;t<r?(i.set(n,t+1),await new Promise(e=>setTimeout(e,(t+1)*1e3)),s.push(n)):(o.add(n),this.emit(`error`,e),this.shouldStop=!0,a.delete(n))}},l=[],u=async()=>{for(;(s.length>0||a.size>0)&&!this.shouldStop;){if(s.length===0){await new Promise(e=>setTimeout(e,10));continue}let e=s.shift();o.has(e)||a.has(e)||(a.add(e),await c(e))}};for(let e=0;e<this.maxConcurrent;e++)l.push(u());await Promise.all(l)}};function ot(e,t){let{recursive:n}=st(t);return se(e)?n?ct(e).map(t=>[e,t]):ue(e).map(t=>[e,t]):[]}function st(e){return{recursive:e?.recursive??!0}}function ct(e){return ue(e,{withFileTypes:!0}).flatMap(t=>{let n=p.join(e,t.name);return t.isDirectory()?ct(n):[n]})}function lt(e){return e}const ut=e(import.meta.url),{PipeEventServer:dt,PipeEventClient:ft,PipeEventBase:pt,ProcessMonitor:mt,Process:ht,InjectionMethod:gt,AccessLevel:_t,HardwareInterface:vt}=ut(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var yt=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(),this.server=null)}init(){this.server=new dt(this.pipeId,{clientCount:1,access:1}),this.server.on(`event`,e=>{try{let t=JSON.parse(e);this.emit(`data`,[t])}catch(e){this.emit(`error`,e)}}),this.server.on(`connected`,()=>{this._hasConnection=!0}),this.server.on(`disconnected`,()=>{this._hasConnection=!1})}};const L=N(yt,`stats-cc`);var bt=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()}},xt=class extends Xe{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=fe.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let St;function Ct(e){St=e}z.interceptors.request.use(e=>{let t=St?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const B=fe.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let wt,Tt;B.interceptors.request.use(e=>{let t=wt?.(),n=Tt?.();return e.headers??={},t&&(e.headers.Authorization=t),n&&(e.headers[`X-Api-Key`]=n),e});function Et(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 Dt(e){return e}function V(e){return e?t=>(e(t),t):Dt}V();const Ot=V();function kt(e){return B.get(`/v1/public/applications/${e}`)}V();function At(e,t){return z.get(`/v1/native/${Mt(e)}/version.txt`,{params:{channel:t},responseType:`text`})}function jt(e,t){return z.get(`/v1/native/${Mt(e)}/files`,{params:{channel:t},responseType:`arraybuffer`})}function Mt(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function Nt(){return B.get(`/v1/public/raven/config`)}V();function Pt(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Ft(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function It(e,t){let n=new FormData;return n.append(`file`,t.chunk),B.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}const Lt=250;function Rt(e){let t=Date.now(),n=e.messages.map(e=>zt(t,e)),r=Et(n,Lt),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 zt(e,t){let n=e-t.created_at.getTime(),r=Math.max(0,Math.floor(n/1e3));return{properties:t.properties,type:t.type,seconds_offset:r}}function Bt(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Vt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Ht;function Ut(e){Ht=e}var Wt=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 h.mkdir(this.targetDir,{recursive:!0}),await this.checkForUpdates(e),clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.checkForUpdates(e),this.UPDATE_CHECK_INTERVAL_MS)}destroy(){this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=void 0),super.destroy()}async getCurrentVersion(e){try{let t=p.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await h.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 Ht?.();for(let n of e)try{let{data:e}=await At(n,t),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r;this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t,i),this.logger.log(`${n} > Downloaded and extracted`),i&&(this.logger.log(`${n} > Cleaning up versions older than ${e}`),await this.cleanupOldVersions(n,e)),this.emit(`dllUpdated`,{identifier:n,version:e})}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n,r){let{data:i}=await jt(e,n),a=this.getTargetPath(e),o=this.getTargetVersionPath(e,t);await h.mkdir(o,{recursive:!0});let s=new g;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 h.access(i,h.constants.F_OK);return}catch{this.logger.warn(`${e} > File missing, re-downloading: ${i}`)}let a=await n.async(`nodebuffer`);await h.writeFile(i,a)}});await Promise.all(c);let l=p.join(a,`version.txt`);this.logger.log(`Saving version file`,l),await h.writeFile(l,t)}async cleanupOldVersions(e,t){let n=p.join(this.targetDir,e),r=await h.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await h.rm(p.join(n,e.name),{recursive:!0,force:!0})}};const H=N(Wt);var Gt=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),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),H.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{let e=await Nt(),t={games:e.data.games};this._ravenConfig=t,this.resetState();let n=new Set;for(let e of this._ravenConfig.games){for(let t of e.executables){let n=t.toLowerCase();this._executableToGameMap.set(n,e),this._executablesArray.push(n)}e.modules.forEach(e=>n.add(e))}await H.getInstance().initWithDlls(Array.from(n)),this.logger.log(`Raven updated`,this._ravenConfig),this.emit(`executablesUpdated`,{executables:this.executables,map:this._executableToGameMap})}catch(e){this.logger.error(`Failed to fetch Raven config`,e),this._failedRefetchTimeoutHandler=setTimeout(()=>this.fetchRavenConfig(),this.FAILED_REFETCH_INTERVAL)}}resetState(){this._executableToGameMap.clear(),this._executablesArray=[]}};const U=N(Gt),Kt=e(import.meta.url),{PipeEventServer:qt,PipeEventClient:Jt,PipeEventBase:Yt,ProcessMonitor:Xt,Process:W,InjectionMethod:Zt,AccessLevel:Qt,HardwareInterface:$t}=Kt(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var en=class extends R{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new Xt}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),U.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(){U.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){let t=this._processes.get(e);return t?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){e.executables.forEach(e=>{this.logger.log(`Monitoring process`,e),this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name),n=t?.filter(t=>t.id!==e.id)??[];n.length===0?this._processes.delete(e.name):this._processes.set(e.name,n)}};const G=N(en),tn=e(import.meta.url),{RenderInterface:nn,renderHookPath:rn}=tn(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);var an=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}}},on=class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new an(new nn(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}};const K=N(on);var sn=class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new we,this.setupFlushInterval()}track(e,t){this.eventQueue.add({type:e,properties:t,created_at:new Date})}flush(){let e=Array.from(this.eventQueue.flush()),t=e.concat({type:`ping`,properties:{},created_at:new Date});if(!this.meta)throw Error(`Tried to flush Cortex events before meta was set`);try{Rt({...this.meta,messages:t})}catch{}return t}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}};const q=N(sn),cn=e(import.meta.url),ln=cn.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`);var un=class extends xt{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;_activeReadyRavenGames=new Set;get isInGame(){return this._activeReadyRavenGames.size>0}constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}init(){super.init(),K.getInstance().createInterface(`OGG_SIEGE`),G.getInstance().on(`create`,this.boundOnProcessCreate),G.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){G.getInstance().off(`create`,this.boundOnProcessCreate),G.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(q.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;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,W.currentProcess.isElevated),e.isElevated&&!W.currentProcess.isElevated){P.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!W.currentProcess.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:W.currentProcess.isElevated,gameElevated:e.isElevated});return}let r=this.copyDll(ln);if(r)try{await e.injectDll(r),this.logger.log(`Render Interface Injection Successful`,r)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:r})}let i=t?.modules.map(async t=>{let n=await H.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=H.getInstance().getTargetVersionPath(t,n);this.logger.log(`DLL Path`,r);let i=await this.getDllFiles(r);return this.logger.log(`DLL Files`,i),Promise.all(i.map(async t=>{let n=p.basename(t),i=p.join(r,n);if(!i)return Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(i),this._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}),q.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{se(r)||ce(r,{recursive:!0});let e=le(n);de(i,e),ae(n,i)}catch(e){return e.code===`EBUSY`?i:(this.logger.error(`Failed to copy`,e),this.logger.error(`Failed to copy`,{originalPath:n,targetPath:i}),!1)}return i}async getDllFiles(e){try{let t=await h.readdir(e);return t.filter(e=>e.endsWith(`.dll`)).map(t=>p.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this._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}),q.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=U.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}};const J=N(un);var dn=class extends bt{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),J.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){J.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=le(n.path),i=pe(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{let e=await Pt(t.identifier,i);a=e.data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new g;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 at(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Ft(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 It(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Bt(e)?Vt(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}};const fn=N(dn);function pn(e=[]){return p.normalize(p.join(tt(global.OVERLAYED.APPLICATION_ID),...e))}const mn=n({game:`string`,type:`string`,creation_time:`number`}),hn=new Qe({path:rt(),schema:n({userId:`string | undefined`}),default:{userId:void 0}});function gn(){let e=hn.get().userId;if(e)return e;let t=_n();return hn.set({userId:t}),t}function _n(){try{return $t.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}function Y(e,t){return`${e}:${t}`}function vn(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=Y(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=Y(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=Y(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=Y(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function yn(){let e=P.getInstance(),t=J.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 X=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}(X||{});const bn=new Map([[X.LeftButton,`LeftButton`],[X.RightButton,`RightButton`],[X.Cancel,`Cancel`],[X.MiddleButton,`MiddleButton`],[X.ExtraButton1,`ExtraButton1`],[X.ExtraButton2,`ExtraButton2`],[X.Back,`Backspace`],[X.Tab,`Tab`],[X.Clear,`Clear`],[X.Return,`Enter`],[X.Shift,`ShiftLeft`],[X.Control,`ControlLeft`],[X.Menu,`AltLeft`],[X.Pause,`Pause`],[X.CapsLock,`CapsLock`],[X.Kana,`KanaMode`],[X.Junja,`JunjaMode`],[X.Final,`Finalize`],[X.Hanja,`HanjaMode`],[X.Escape,`Escape`],[X.Convert,`Convert`],[X.NonConvert,`NonConvert`],[X.Accept,`Accept`],[X.ModeChange,`ModeChange`],[X.Space,`Space`],[X.Prior,`PageUp`],[X.Next,`PageDown`],[X.End,`End`],[X.Home,`Home`],[X.Left,`ArrowLeft`],[X.Up,`ArrowUp`],[X.Right,`ArrowRight`],[X.Down,`ArrowDown`],[X.Select,`Select`],[X.Print,`PrintScreen`],[X.Execute,`Execute`],[X.Snapshot,`Snapshot`],[X.Insert,`Insert`],[X.Delete,`Delete`],[X.Help,`Help`],[X.N0,`Digit0`],[X.N1,`Digit1`],[X.N2,`Digit2`],[X.N3,`Digit3`],[X.N4,`Digit4`],[X.N5,`Digit5`],[X.N6,`Digit6`],[X.N7,`Digit7`],[X.N8,`Digit8`],[X.N9,`Digit9`],[X.A,`KeyA`],[X.B,`KeyB`],[X.C,`KeyC`],[X.D,`KeyD`],[X.E,`KeyE`],[X.F,`KeyF`],[X.G,`KeyG`],[X.H,`KeyH`],[X.I,`KeyI`],[X.J,`KeyJ`],[X.K,`KeyK`],[X.L,`KeyL`],[X.M,`KeyM`],[X.N,`KeyN`],[X.O,`KeyO`],[X.P,`KeyP`],[X.Q,`KeyQ`],[X.R,`KeyR`],[X.S,`KeyS`],[X.T,`KeyT`],[X.U,`KeyU`],[X.V,`KeyV`],[X.W,`KeyW`],[X.X,`KeyX`],[X.Y,`KeyY`],[X.Z,`KeyZ`],[X.LeftWindows,`MetaLeft`],[X.RightWindows,`MetaRight`],[X.Application,`ContextMenu`],[X.Sleep,`Sleep`],[X.Numpad0,`Numpad0`],[X.Numpad1,`Numpad1`],[X.Numpad2,`Numpad2`],[X.Numpad3,`Numpad3`],[X.Numpad4,`Numpad4`],[X.Numpad5,`Numpad5`],[X.Numpad6,`Numpad6`],[X.Numpad7,`Numpad7`],[X.Numpad8,`Numpad8`],[X.Numpad9,`Numpad9`],[X.Multiply,`NumpadMultiply`],[X.Add,`NumpadAdd`],[X.Separator,`NumpadSeparator`],[X.Subtract,`NumpadSubtract`],[X.Decimal,`NumpadDecimal`],[X.Divide,`NumpadDivide`],[X.F1,`F1`],[X.F2,`F2`],[X.F3,`F3`],[X.F4,`F4`],[X.F5,`F5`],[X.F6,`F6`],[X.F7,`F7`],[X.F8,`F8`],[X.F9,`F9`],[X.F10,`F10`],[X.F11,`F11`],[X.F12,`F12`],[X.F13,`F13`],[X.F14,`F14`],[X.F15,`F15`],[X.F16,`F16`],[X.F17,`F17`],[X.F18,`F18`],[X.F19,`F19`],[X.F20,`F20`],[X.F21,`F21`],[X.F22,`F22`],[X.F23,`F23`],[X.F24,`F24`],[X.NumLock,`NumLock`],[X.ScrollLock,`ScrollLock`],[X.NEC_Equal,`NEC_Equal`],[X.Fujitsu_Masshou,`Fujitsu_Masshou`],[X.Fujitsu_Touroku,`Fujitsu_Touroku`],[X.Fujitsu_Loya,`Fujitsu_Loya`],[X.Fujitsu_Roya,`Fujitsu_Roya`],[X.LeftShift,`ShiftLeft`],[X.RightShift,`ShiftRight`],[X.LeftControl,`ControlLeft`],[X.RightControl,`ControlRight`],[X.LeftMenu,`AltLeft`],[X.RightMenu,`AltRight`],[X.BrowserBack,`BrowserBack`],[X.BrowserForward,`BrowserForward`],[X.BrowserRefresh,`BrowserRefresh`],[X.BrowserStop,`BrowserStop`],[X.BrowserSearch,`BrowserSearch`],[X.BrowserFavorites,`BrowserFavorites`],[X.BrowserHome,`BrowserHome`],[X.VolumeMute,`VolumeMute`],[X.VolumeDown,`VolumeDown`],[X.VolumeUp,`VolumeUp`],[X.MediaNextTrack,`MediaTrackNext`],[X.MediaPrevTrack,`MediaTrackPrevious`],[X.MediaStop,`MediaStop`],[X.MediaPlayPause,`MediaPlayPause`],[X.LaunchMail,`LaunchMail`],[X.LaunchMediaSelect,`LaunchMediaSelect`],[X.LaunchApplication1,`LaunchApplication1`],[X.LaunchApplication2,`LaunchApplication2`],[X.OEM1,`OEM_1`],[X.OEMPlus,`Equal`],[X.OEMComma,`Comma`],[X.OEMMinus,`Minus`],[X.OEMPeriod,`Period`],[X.OEM2,`Slash`],[X.OEM3,`Backquote`],[X.OEM4,`BracketLeft`],[X.OEM5,`Backslash`],[X.OEM6,`BracketRight`],[X.OEM7,`Quote`],[X.OEM8,`IntlRo`],[X.OEMAX,`OEM_AX`],[X.OEM102,`IntlBackslash`],[X.ICOHelp,`ICO_HELP`],[X.ICO00,`ICO_00`],[X.ProcessKey,`Process`],[X.ICOClear,`ICO_CLEAR`],[X.Packet,`Packet`],[X.OEMReset,`OEM_Reset`],[X.OEMJump,`OEM_Jump`],[X.OEMPA1,`OEM_PA1`],[X.OEMPA2,`OEM_PA2`],[X.OEMPA3,`OEM_PA3`],[X.OEMWSCtrl,`OEM_WS_Ctrl`],[X.OEMCUSel,`OEM_CU_Sel`],[X.OEMATTN,`OEM_ATTN`],[X.OEMFinish,`OEM_Finish`],[X.OEMCopy,`OEM_Copy`],[X.OEMAuto,`OEM_Auto`],[X.OEMENLW,`OEM_ENLW`],[X.OEMBackTab,`BackTab`],[X.ATTN,`ATTN`],[X.CRSel,`CRSel`],[X.EXSel,`EXSel`],[X.EREOF,`EREOF`],[X.Play,`MediaPlay`],[X.Zoom,`Zoom`],[X.Noname,`Noname`],[X.PA1,`PA1`],[X.OEMClear,`OEM_Clear`]]),xn=new Map(bn.entries().map(([e,t])=>[t,e])),Sn=n({"[string]":{keys:`string[]`,mode:n(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var Cn=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:pn([`keybinds.json`]),schema:Sn,default:e})}init(){super.init();let e=K.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=K.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=bn.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=bn.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries()){let r=n[e];r.keys.includes(t)&&this.triggeredToggleKeybinds.delete(e)}this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up)continue;let r=e[t];this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))&&(this.activeKeybinds.delete(t),n.up(),this.logger.log(`Keybind up triggered`,this.getKeybindToString(r)))}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.length===this.pressedKeys.size&&r.keys.every(e=>xn.has(e)?this.pressedKeys.has(e):!1);if(i){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.every(e=>xn.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1));i&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&!this.triggeredToggleKeybinds.has(n)){let r=t.toggle();this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&!this.activeKeybinds.has(n)){let r=t.down();r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}};function wn(e){let t=new Cn(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(),me.on(`quit`,()=>{t.destroy()}),r}function Z(){return K.getInstance().getInterface(`OGG_SIEGE`)}function Tn(){let e=J.getInstance(),t=P.getInstance(),n=q.getInstance();n.meta=En(),e.on([`gameReady`,`gameClose`],()=>{n.meta||(n.meta=En()),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 En(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:gn(),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 Dn(){function e(e,t){return e.once(`closed`,()=>{e.isDestroyed()||q.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||q.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),q.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(Z().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>Z().instance.on(e,t),off:(e,t)=>Z().instance.off(e,t),once:(e,t)=>Z().instance.once(e,t),addListener:(e,t)=>Z().instance.addListener(e,t),removeListener:(e,t)=>Z().instance.removeListener(e,t),removeAllListeners:()=>Z().instance.removeAllListeners(),prependListener:(e,t)=>Z().instance.prependListener(e,t),prependOnceListener:(e,t)=>Z().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=Z(),t=L.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}var On=class extends bt{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=K.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}};const kn=N(On,`OGG_SIEGE`);function An(){return{scope:e=>kn.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>Z().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>Z().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>Z().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>Z().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>Z().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>Z().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>Z().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>Z().instance.getKeyInputBlock(e)}}}function jn(){return{track:(e,t)=>{let n=q.getInstance();n.track(`custom__${String(e)}`,t)}}}var Mn=xe((exports,t)=>{var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e,t)=>{var n=new Set([`mouseDown`,`mouseUp`,`pointerDown`,`pointerUp`]),r=new WeakSet;function i(e,t,{allowHosts:i}={}){let{shell:a}=t;if(r.has(e))return;r.add(e);let o=e.webContents;function s(e){return!!(!c(e)||i?.includes(e.host))}function c(e){return new URL(o.getURL()).origin!==e.origin}let l=0;function u(){l=Date.now()}function d(){let e=Date.now()-l,t=e<150;return t||console.warn(`was not recently active`,e),t}if(process.platform===`win32`){let t={KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576};for(let n of Object.values(t))e.hookWindowMessage(n,u)}o.on(`input-event`,(e,t)=>{n.has(t.type)&&u()}),o.on(`will-navigate`,(e,t)=>{let n=e.url||t;if(console.log(`will-navigate`,n),!n)return;let r=new URL(n);if(!s(r)){if(!d()){console.log(`blocked navigation`,n),e.preventDefault();return}c(r)&&(console.log(`external navigation`,n),e.preventDefault(),a.openExternal(n))}}),o.session.on(`will-download`,(e,t)=>{let n=t.getURL();/^blob:/.test(n)||e.preventDefault()}),o.setWindowOpenHandler(e=>{console.log(`window-open`,e.url);let{url:t}=e,n=new URL(t);if(!s(n))return d()?(c(n)&&a.openExternal(e.url),{action:`deny`}):(console.log(`blocked navigation`,t),{action:`deny`})})}t.exports=i}),i=n((e,t)=>{var n=new Set([`Mozilla`,`AppleWebKit`,`Chrome`,`Safari`,`Gecko`,`Firefox`,`OPR`,`Edg`,`Version`,`Mobile`,`curl`,`PostmanRuntime`]);async function r(e,t,r){let{webContents:i}=e,a=await i.executeJavaScript(`navigator.userAgent`);a=a.match(/[^\/]+\/[^\s]+( \([^\)]+\))?/g).map(e=>e.trim()).filter(e=>{let[t]=e.split(`/`,1);return n.has(t)}).join(` `),i.setUserAgent(a),t.app.userAgentFallback=a}t.exports=r}),a=r(),o=i();function s(e,t,n={}){a(e,t,n.linkHandler),o(e,t,n.userAgent)}t.exports={setupRevUtils:s,setupLinkHandler:a,setUserAgent:o}}),Nn=Ce(Mn(),1);function Pn(){return{registerWindow:e=>{(0,Nn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function Fn(e){let t=nt(global.OVERLAYED.APPLICATION_ID),n=ot(t,{recursive:!0}),r=et(),i=ot(r,{recursive:!0});I.getInstance().info(`Logs path: `,t),I.getInstance().info(`Overlayed logs path: `,r);let a=new g;return[...n,...i].forEach(([e,t])=>{I.getInstance().info(`Zipping: `,t);let n=oe(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 In(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 Ln(e){let t=new it(`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)=>{q.getInstance().track(`bug_report_submitted`,{version:e.version,category:e.category});let n=Fn(t),r=await n.generateAsync({type:`base64`});await In(e,r)}}}const Rn=1e3;function zn(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>=Rn){P.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${n.length}, max: ${Rn}`});return}n.push(e)}}function c(r){let i=mn(r);if(i instanceof n.errors){q.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){q.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;q.getInstance().track(`unsupported_game_version`,{game:l.game,hash:e?.hash,version:e?.version})}let u=Y(o.key,l.type),d=Y(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 Q=!1,Bn={},$,Vn=new M;function Hn(e){let{init:t=!0,debug:n=!1,silent:r=!0}=e;if(Un(e),I.getInstance().init(e.applicationId,n,r),Q)return $;function i(){if(Q)return;Tn();let t=new Map,n=new Map,r=vn(e.modules,t,Vn),a=yn(),o=wn(e.keybinds),s=Dn(),c=An(),l=Pn(),u=jn(),d=Ln(e);Wn(e),zn(e,t,n,Vn,Bn),Q=!0,$={...r,...a,ads:l,keybinds:o,windows:s,input:c,cortex:u,hasAnyActiveProcesses:()=>G.getInstance().hasAnyActiveProcesses,init:i,log:d,initialized:Q}}return t?(i(),$):new Proxy({init:i},{get:(e,t)=>{if(t!==`init`&&!Q)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:$[t]}})}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Un(e){global.OVERLAYED={APPLICATION_ID:Ot(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.18.4`,FRONTEND_VERSION:`0.0.0`,sessionId:crypto.randomUUID(),electron:e.electron}}function Wn(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);J.getInstance().setSubscribedGames(t),fn.getInstance().init(),J.getInstance().init(),G.getInstance().init(),U.getInstance().init();async function n(){let e=kt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=gn();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=r??n(),r)),q.getInstance().track(`start`,{}),me.on(`quit`,()=>{q.getInstance().track(`electron_quit`,{}),Gn()}),process.on(`exit`,()=>{q.getInstance().track(`exit`,{}),Gn()})}async function Gn(){await q.getInstance().flush(),U.getInstance().destroy(),J.getInstance().destroy(),fn.getInstance().destroy(),G.getInstance().destroy(),K.getInstance().getInterface(`OGG_SIEGE`).destroy(),L.getInstance().destroy(),P.getInstance().destroy()}export{lt as defineConfig,Hn as overlayed,Ut as setFetchLatestTokenCallback,Ct as setUpdaterTokenResolver};
|
package/dist/siege.d.ts
CHANGED
|
@@ -99,27 +99,29 @@ type SiegeMatchType = Brand<string, "siegeMatchType">;
|
|
|
99
99
|
declare const SiegeMatchType: Brander<SiegeMatchType>;
|
|
100
100
|
type SiegeGameMode = Brand<string, "siegeGameMode">;
|
|
101
101
|
declare const SiegeGameMode: Brander<SiegeGameMode>;
|
|
102
|
+
type SiegeTimeOfDay = Brand<number, "siegeTimeOfDay">;
|
|
103
|
+
declare const SiegeTimeOfDay: Brander<SiegeTimeOfDay>;
|
|
102
104
|
//# sourceMappingURL=brands.d.ts.map
|
|
103
105
|
//#endregion
|
|
104
106
|
//#region src/consts.d.ts
|
|
105
107
|
declare const SIEGE_BOT_ID = "00000000-0000-0000-0000-000000000000";
|
|
106
108
|
declare const SIEGE_GAME_MODE_PHASES: readonly ["intro", "planning", "prep", "action", "results", "invalid"];
|
|
107
|
-
declare const SiegeGameModePhaseSchema: arktype_internal_methods_string_ts0.StringType<"
|
|
109
|
+
declare const SiegeGameModePhaseSchema: arktype_internal_methods_string_ts0.StringType<"intro" | "planning" | "prep" | "action" | "results" | "invalid", {}>;
|
|
108
110
|
type SiegeGameModePhase = typeof SiegeGameModePhaseSchema.infer;
|
|
109
111
|
declare const SIEGE_TEAMS: readonly [0, 1];
|
|
110
112
|
declare const SiegeTeamSchema: arktype_internal_methods_number_ts0.NumberType<0 | 1, {}>;
|
|
111
113
|
type SiegeTeam = typeof SiegeTeamSchema.infer;
|
|
112
114
|
declare const SIEGE_SIDES: readonly ["attacker", "defender", "both", "invalid"];
|
|
113
|
-
declare const SiegeSideSchema: arktype_internal_methods_string_ts0.StringType<"
|
|
115
|
+
declare const SiegeSideSchema: arktype_internal_methods_string_ts0.StringType<"invalid" | "attacker" | "defender" | "both", {}>;
|
|
114
116
|
type SiegeSide = typeof SiegeSideSchema.infer;
|
|
115
117
|
declare const SIEGE_PLAYER_LIFE_STATES: readonly ["normal", "overhealed", "low_health", "downed", "dead", "respawning"];
|
|
116
|
-
declare const SiegePlayerLifeStateSchema: arktype_internal_methods_string_ts0.StringType<"
|
|
118
|
+
declare const SiegePlayerLifeStateSchema: arktype_internal_methods_string_ts0.StringType<"normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning", {}>;
|
|
117
119
|
type SiegePlayerLifeState = typeof SiegePlayerLifeStateSchema.infer;
|
|
118
120
|
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"];
|
|
119
|
-
declare const SiegeDamageTypeSchema: arktype_internal_methods_string_ts0.StringType<"unknown" | "
|
|
121
|
+
declare const SiegeDamageTypeSchema: arktype_internal_methods_string_ts0.StringType<"invalid" | "unknown" | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine", {}>;
|
|
120
122
|
type SiegeDamageType = typeof SiegeDamageTypeSchema.infer;
|
|
121
123
|
declare const SIEGE_DAMAGE_TEAM_TYPES: readonly ["unknown", "enemy", "friendly", "invalid"];
|
|
122
|
-
declare const SiegeDamageTeamTypeSchema: arktype_internal_methods_string_ts0.StringType<"
|
|
124
|
+
declare const SiegeDamageTeamTypeSchema: arktype_internal_methods_string_ts0.StringType<"invalid" | "unknown" | "enemy" | "friendly", {}>;
|
|
123
125
|
type SiegeDamageTeamType = typeof SiegeDamageTeamTypeSchema.infer;
|
|
124
126
|
declare const SIEGE_MATCH_TYPES_TO_ID: Readonly<{
|
|
125
127
|
readonly quickPlay: SiegeMatchType;
|
|
@@ -594,6 +596,11 @@ declare const SIEGE_ROUND_STATES_TO_ID: Readonly<{
|
|
|
594
596
|
readonly matchCancelled: SiegeRoundState;
|
|
595
597
|
}>;
|
|
596
598
|
declare const SIEGE_ROUND_STATE_LABELS: Record<SiegeRoundState, string>;
|
|
599
|
+
declare const SIEGE_TIME_OF_DAY_TO_ID: Readonly<{
|
|
600
|
+
readonly day: SiegeTimeOfDay;
|
|
601
|
+
readonly night: SiegeTimeOfDay;
|
|
602
|
+
}>;
|
|
603
|
+
declare const SIEGE_TIME_OF_DAY_LABELS: Record<SiegeTimeOfDay, string>;
|
|
597
604
|
//# sourceMappingURL=consts.d.ts.map
|
|
598
605
|
//#endregion
|
|
599
606
|
//#region src/module.d.ts
|
|
@@ -658,7 +665,7 @@ declare function module(): {
|
|
|
658
665
|
value: string;
|
|
659
666
|
};
|
|
660
667
|
time_of_day: {
|
|
661
|
-
id:
|
|
668
|
+
id: SiegeTimeOfDay;
|
|
662
669
|
value: string;
|
|
663
670
|
};
|
|
664
671
|
};
|
|
@@ -670,11 +677,11 @@ declare function module(): {
|
|
|
670
677
|
segment_size: number;
|
|
671
678
|
segment_index: number;
|
|
672
679
|
team_0: {
|
|
673
|
-
role: "
|
|
680
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
674
681
|
state: SiegeRoundState;
|
|
675
682
|
};
|
|
676
683
|
team_1: {
|
|
677
|
-
role: "
|
|
684
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
678
685
|
state: SiegeRoundState;
|
|
679
686
|
};
|
|
680
687
|
}[];
|
|
@@ -695,7 +702,7 @@ declare function module(): {
|
|
|
695
702
|
value: string;
|
|
696
703
|
};
|
|
697
704
|
time_of_day: {
|
|
698
|
-
id:
|
|
705
|
+
id: SiegeTimeOfDay;
|
|
699
706
|
value: string;
|
|
700
707
|
};
|
|
701
708
|
};
|
|
@@ -707,7 +714,7 @@ declare function module(): {
|
|
|
707
714
|
content: {
|
|
708
715
|
index: number;
|
|
709
716
|
team: 0 | 1;
|
|
710
|
-
side: "
|
|
717
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
711
718
|
operator_name: {
|
|
712
719
|
id: SiegeOperatorNameId;
|
|
713
720
|
value: string;
|
|
@@ -724,11 +731,11 @@ declare function module(): {
|
|
|
724
731
|
segment_size: number;
|
|
725
732
|
segment_index: number;
|
|
726
733
|
team_0: {
|
|
727
|
-
role: "
|
|
734
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
728
735
|
state: SiegeRoundState;
|
|
729
736
|
};
|
|
730
737
|
team_1: {
|
|
731
|
-
role: "
|
|
738
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
732
739
|
state: SiegeRoundState;
|
|
733
740
|
};
|
|
734
741
|
};
|
|
@@ -739,15 +746,15 @@ declare function module(): {
|
|
|
739
746
|
remaining_health: number;
|
|
740
747
|
pre_damage_health: number;
|
|
741
748
|
max_health: number;
|
|
742
|
-
damage_type: "unknown" | "
|
|
743
|
-
damage_team_type: "
|
|
749
|
+
damage_type: "invalid" | "unknown" | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
|
|
750
|
+
damage_team_type: "invalid" | "unknown" | "enemy" | "friendly";
|
|
744
751
|
damage_item_id: SiegeItemObjectId | null;
|
|
745
752
|
damage_time: number;
|
|
746
753
|
}[];
|
|
747
754
|
players: {
|
|
748
755
|
player_id: SiegePlayerId;
|
|
749
756
|
final_health: number;
|
|
750
|
-
final_life_state: "
|
|
757
|
+
final_life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
751
758
|
operator_name: {
|
|
752
759
|
id: SiegeOperatorNameId;
|
|
753
760
|
value: string;
|
|
@@ -759,7 +766,7 @@ declare function module(): {
|
|
|
759
766
|
type: "phase_changed";
|
|
760
767
|
creation_time: number;
|
|
761
768
|
content: {
|
|
762
|
-
phase: "
|
|
769
|
+
phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid";
|
|
763
770
|
};
|
|
764
771
|
} | ((In: {
|
|
765
772
|
game: "siege";
|
|
@@ -773,7 +780,7 @@ declare function module(): {
|
|
|
773
780
|
is_squad_member: boolean;
|
|
774
781
|
is_local_player: boolean;
|
|
775
782
|
username: string;
|
|
776
|
-
side: "
|
|
783
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
777
784
|
team: 0 | 1;
|
|
778
785
|
is_privacy_username: boolean;
|
|
779
786
|
has_avatar_hidden: boolean;
|
|
@@ -786,12 +793,12 @@ declare function module(): {
|
|
|
786
793
|
plants: number;
|
|
787
794
|
score: number;
|
|
788
795
|
};
|
|
789
|
-
life_state: "
|
|
796
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
790
797
|
ping: number;
|
|
791
798
|
};
|
|
792
799
|
}) => arktype2.Out<{
|
|
793
800
|
content: {
|
|
794
|
-
starting_side: "
|
|
801
|
+
starting_side: "invalid" | "attacker" | "defender" | "both";
|
|
795
802
|
player_id: SiegePlayerId;
|
|
796
803
|
profile_id: string;
|
|
797
804
|
is_bot: boolean;
|
|
@@ -799,7 +806,7 @@ declare function module(): {
|
|
|
799
806
|
is_squad_member: boolean;
|
|
800
807
|
is_local_player: boolean;
|
|
801
808
|
username: string;
|
|
802
|
-
side: "
|
|
809
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
803
810
|
team: 0 | 1;
|
|
804
811
|
is_privacy_username: boolean;
|
|
805
812
|
has_avatar_hidden: boolean;
|
|
@@ -812,7 +819,7 @@ declare function module(): {
|
|
|
812
819
|
plants: number;
|
|
813
820
|
score: number;
|
|
814
821
|
};
|
|
815
|
-
life_state: "
|
|
822
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
816
823
|
ping: number;
|
|
817
824
|
};
|
|
818
825
|
game: "siege";
|
|
@@ -850,7 +857,7 @@ declare function module(): {
|
|
|
850
857
|
creation_time: number;
|
|
851
858
|
content: {
|
|
852
859
|
player_id: SiegePlayerId;
|
|
853
|
-
side: "
|
|
860
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
854
861
|
};
|
|
855
862
|
} | {
|
|
856
863
|
game: "siege";
|
|
@@ -909,7 +916,7 @@ declare function module(): {
|
|
|
909
916
|
creation_time: number;
|
|
910
917
|
content: {
|
|
911
918
|
player_id: SiegePlayerId;
|
|
912
|
-
life_state: "
|
|
919
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
913
920
|
};
|
|
914
921
|
} | {
|
|
915
922
|
game: "siege";
|
|
@@ -1008,7 +1015,7 @@ declare function module(): {
|
|
|
1008
1015
|
value: string;
|
|
1009
1016
|
};
|
|
1010
1017
|
time_of_day: {
|
|
1011
|
-
id:
|
|
1018
|
+
id: SiegeTimeOfDay;
|
|
1012
1019
|
value: string;
|
|
1013
1020
|
};
|
|
1014
1021
|
};
|
|
@@ -1020,11 +1027,11 @@ declare function module(): {
|
|
|
1020
1027
|
segment_size: number;
|
|
1021
1028
|
segment_index: number;
|
|
1022
1029
|
team_0: {
|
|
1023
|
-
role: "
|
|
1030
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1024
1031
|
state: SiegeRoundState;
|
|
1025
1032
|
};
|
|
1026
1033
|
team_1: {
|
|
1027
|
-
role: "
|
|
1034
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1028
1035
|
state: SiegeRoundState;
|
|
1029
1036
|
};
|
|
1030
1037
|
}[];
|
|
@@ -1047,7 +1054,7 @@ declare function module(): {
|
|
|
1047
1054
|
value: string;
|
|
1048
1055
|
};
|
|
1049
1056
|
time_of_day: {
|
|
1050
|
-
id:
|
|
1057
|
+
id: SiegeTimeOfDay;
|
|
1051
1058
|
value: string;
|
|
1052
1059
|
};
|
|
1053
1060
|
};
|
|
@@ -1060,7 +1067,7 @@ declare function module(): {
|
|
|
1060
1067
|
content: {
|
|
1061
1068
|
index: number;
|
|
1062
1069
|
team: 0 | 1;
|
|
1063
|
-
side: "
|
|
1070
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
1064
1071
|
operator_name: {
|
|
1065
1072
|
id: SiegeOperatorNameId;
|
|
1066
1073
|
value: string;
|
|
@@ -1078,11 +1085,11 @@ declare function module(): {
|
|
|
1078
1085
|
segment_size: number;
|
|
1079
1086
|
segment_index: number;
|
|
1080
1087
|
team_0: {
|
|
1081
|
-
role: "
|
|
1088
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1082
1089
|
state: SiegeRoundState;
|
|
1083
1090
|
};
|
|
1084
1091
|
team_1: {
|
|
1085
|
-
role: "
|
|
1092
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1086
1093
|
state: SiegeRoundState;
|
|
1087
1094
|
};
|
|
1088
1095
|
};
|
|
@@ -1093,15 +1100,15 @@ declare function module(): {
|
|
|
1093
1100
|
remaining_health: number;
|
|
1094
1101
|
pre_damage_health: number;
|
|
1095
1102
|
max_health: number;
|
|
1096
|
-
damage_type: "unknown" | "
|
|
1097
|
-
damage_team_type: "
|
|
1103
|
+
damage_type: "invalid" | "unknown" | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
|
|
1104
|
+
damage_team_type: "invalid" | "unknown" | "enemy" | "friendly";
|
|
1098
1105
|
damage_item_id: SiegeItemObjectId | null;
|
|
1099
1106
|
damage_time: number;
|
|
1100
1107
|
}[];
|
|
1101
1108
|
players: {
|
|
1102
1109
|
player_id: SiegePlayerId;
|
|
1103
1110
|
final_health: number;
|
|
1104
|
-
final_life_state: "
|
|
1111
|
+
final_life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1105
1112
|
operator_name: {
|
|
1106
1113
|
id: SiegeOperatorNameId;
|
|
1107
1114
|
value: string;
|
|
@@ -1114,7 +1121,7 @@ declare function module(): {
|
|
|
1114
1121
|
type: "phase_changed";
|
|
1115
1122
|
creation_time: number;
|
|
1116
1123
|
content: {
|
|
1117
|
-
phase: "
|
|
1124
|
+
phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid";
|
|
1118
1125
|
};
|
|
1119
1126
|
};
|
|
1120
1127
|
player_joined: (In: {
|
|
@@ -1129,7 +1136,7 @@ declare function module(): {
|
|
|
1129
1136
|
is_squad_member: boolean;
|
|
1130
1137
|
is_local_player: boolean;
|
|
1131
1138
|
username: string;
|
|
1132
|
-
side: "
|
|
1139
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
1133
1140
|
team: 0 | 1;
|
|
1134
1141
|
is_privacy_username: boolean;
|
|
1135
1142
|
has_avatar_hidden: boolean;
|
|
@@ -1142,12 +1149,12 @@ declare function module(): {
|
|
|
1142
1149
|
plants: number;
|
|
1143
1150
|
score: number;
|
|
1144
1151
|
};
|
|
1145
|
-
life_state: "
|
|
1152
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1146
1153
|
ping: number;
|
|
1147
1154
|
};
|
|
1148
1155
|
}) => arktype2.Out<{
|
|
1149
1156
|
content: {
|
|
1150
|
-
starting_side: "
|
|
1157
|
+
starting_side: "invalid" | "attacker" | "defender" | "both";
|
|
1151
1158
|
player_id: SiegePlayerId;
|
|
1152
1159
|
profile_id: string;
|
|
1153
1160
|
is_bot: boolean;
|
|
@@ -1155,7 +1162,7 @@ declare function module(): {
|
|
|
1155
1162
|
is_squad_member: boolean;
|
|
1156
1163
|
is_local_player: boolean;
|
|
1157
1164
|
username: string;
|
|
1158
|
-
side: "
|
|
1165
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
1159
1166
|
team: 0 | 1;
|
|
1160
1167
|
is_privacy_username: boolean;
|
|
1161
1168
|
has_avatar_hidden: boolean;
|
|
@@ -1168,7 +1175,7 @@ declare function module(): {
|
|
|
1168
1175
|
plants: number;
|
|
1169
1176
|
score: number;
|
|
1170
1177
|
};
|
|
1171
|
-
life_state: "
|
|
1178
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1172
1179
|
ping: number;
|
|
1173
1180
|
};
|
|
1174
1181
|
game: "siege";
|
|
@@ -1210,7 +1217,7 @@ declare function module(): {
|
|
|
1210
1217
|
creation_time: number;
|
|
1211
1218
|
content: {
|
|
1212
1219
|
player_id: SiegePlayerId;
|
|
1213
|
-
side: "
|
|
1220
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
1214
1221
|
};
|
|
1215
1222
|
};
|
|
1216
1223
|
player_stats_changed: {
|
|
@@ -1276,7 +1283,7 @@ declare function module(): {
|
|
|
1276
1283
|
creation_time: number;
|
|
1277
1284
|
content: {
|
|
1278
1285
|
player_id: SiegePlayerId;
|
|
1279
|
-
life_state: "
|
|
1286
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1280
1287
|
};
|
|
1281
1288
|
};
|
|
1282
1289
|
player_died: {
|
|
@@ -1363,8 +1370,8 @@ declare const PlayerDamageDataSchema: arktype_internal_methods_object_ts0.Object
|
|
|
1363
1370
|
remaining_health: number;
|
|
1364
1371
|
pre_damage_health: number;
|
|
1365
1372
|
max_health: number;
|
|
1366
|
-
damage_type: "unknown" | "
|
|
1367
|
-
damage_team_type: "
|
|
1373
|
+
damage_type: "invalid" | "unknown" | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
|
|
1374
|
+
damage_team_type: "invalid" | "unknown" | "enemy" | "friendly";
|
|
1368
1375
|
damage_item_id: SiegeItemObjectId | null;
|
|
1369
1376
|
damage_time: number;
|
|
1370
1377
|
}, {}>;
|
|
@@ -1375,11 +1382,11 @@ declare const MatchRoundDataSchema: arktype_internal_methods_object_ts0.ObjectTy
|
|
|
1375
1382
|
segment_size: number;
|
|
1376
1383
|
segment_index: number;
|
|
1377
1384
|
team_0: {
|
|
1378
|
-
role: "
|
|
1385
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1379
1386
|
state: SiegeRoundState;
|
|
1380
1387
|
};
|
|
1381
1388
|
team_1: {
|
|
1382
|
-
role: "
|
|
1389
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1383
1390
|
state: SiegeRoundState;
|
|
1384
1391
|
};
|
|
1385
1392
|
}, {}>;
|
|
@@ -1391,7 +1398,7 @@ declare const MapDataSchema: arktype_internal_methods_object_ts0.ObjectType<{
|
|
|
1391
1398
|
value: string;
|
|
1392
1399
|
};
|
|
1393
1400
|
time_of_day: {
|
|
1394
|
-
id:
|
|
1401
|
+
id: SiegeTimeOfDay;
|
|
1395
1402
|
value: string;
|
|
1396
1403
|
};
|
|
1397
1404
|
}, {}>;
|
|
@@ -1399,7 +1406,7 @@ type MapData = typeof MapDataSchema.infer;
|
|
|
1399
1406
|
declare const RoundEndPlayerDataSchema: arktype_internal_methods_object_ts0.ObjectType<{
|
|
1400
1407
|
player_id: SiegePlayerId;
|
|
1401
1408
|
final_health: number;
|
|
1402
|
-
final_life_state: "
|
|
1409
|
+
final_life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1403
1410
|
operator_name: {
|
|
1404
1411
|
id: SiegeOperatorNameId;
|
|
1405
1412
|
value: string;
|
|
@@ -1413,11 +1420,11 @@ declare const RoundEndDataSchema: arktype_internal_methods_object_ts0.ObjectType
|
|
|
1413
1420
|
segment_size: number;
|
|
1414
1421
|
segment_index: number;
|
|
1415
1422
|
team_0: {
|
|
1416
|
-
role: "
|
|
1423
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1417
1424
|
state: SiegeRoundState;
|
|
1418
1425
|
};
|
|
1419
1426
|
team_1: {
|
|
1420
|
-
role: "
|
|
1427
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1421
1428
|
state: SiegeRoundState;
|
|
1422
1429
|
};
|
|
1423
1430
|
};
|
|
@@ -1428,15 +1435,15 @@ declare const RoundEndDataSchema: arktype_internal_methods_object_ts0.ObjectType
|
|
|
1428
1435
|
remaining_health: number;
|
|
1429
1436
|
pre_damage_health: number;
|
|
1430
1437
|
max_health: number;
|
|
1431
|
-
damage_type: "unknown" | "
|
|
1432
|
-
damage_team_type: "
|
|
1438
|
+
damage_type: "invalid" | "unknown" | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
|
|
1439
|
+
damage_team_type: "invalid" | "unknown" | "enemy" | "friendly";
|
|
1433
1440
|
damage_item_id: SiegeItemObjectId | null;
|
|
1434
1441
|
damage_time: number;
|
|
1435
1442
|
}[];
|
|
1436
1443
|
players: {
|
|
1437
1444
|
player_id: SiegePlayerId;
|
|
1438
1445
|
final_health: number;
|
|
1439
|
-
final_life_state: "
|
|
1446
|
+
final_life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1440
1447
|
operator_name: {
|
|
1441
1448
|
id: SiegeOperatorNameId;
|
|
1442
1449
|
value: string;
|
|
@@ -1478,7 +1485,7 @@ declare const MatchStarted: arktype_internal_methods_object_ts0.ObjectType<{
|
|
|
1478
1485
|
value: string;
|
|
1479
1486
|
};
|
|
1480
1487
|
time_of_day: {
|
|
1481
|
-
id:
|
|
1488
|
+
id: SiegeTimeOfDay;
|
|
1482
1489
|
value: string;
|
|
1483
1490
|
};
|
|
1484
1491
|
};
|
|
@@ -1490,11 +1497,11 @@ declare const MatchStarted: arktype_internal_methods_object_ts0.ObjectType<{
|
|
|
1490
1497
|
segment_size: number;
|
|
1491
1498
|
segment_index: number;
|
|
1492
1499
|
team_0: {
|
|
1493
|
-
role: "
|
|
1500
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1494
1501
|
state: SiegeRoundState;
|
|
1495
1502
|
};
|
|
1496
1503
|
team_1: {
|
|
1497
|
-
role: "
|
|
1504
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1498
1505
|
state: SiegeRoundState;
|
|
1499
1506
|
};
|
|
1500
1507
|
}[];
|
|
@@ -1582,7 +1589,7 @@ declare const MapChanged: arktype_internal_methods_object_ts0.ObjectType<{
|
|
|
1582
1589
|
value: string;
|
|
1583
1590
|
};
|
|
1584
1591
|
time_of_day: {
|
|
1585
|
-
id:
|
|
1592
|
+
id: SiegeTimeOfDay;
|
|
1586
1593
|
value: string;
|
|
1587
1594
|
};
|
|
1588
1595
|
};
|
|
@@ -1599,7 +1606,7 @@ declare const OperatorBanned: arktype_internal_methods_object_ts0.ObjectType<{
|
|
|
1599
1606
|
content: {
|
|
1600
1607
|
index: number;
|
|
1601
1608
|
team: 0 | 1;
|
|
1602
|
-
side: "
|
|
1609
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
1603
1610
|
operator_name: {
|
|
1604
1611
|
id: SiegeOperatorNameId;
|
|
1605
1612
|
value: string;
|
|
@@ -1621,11 +1628,11 @@ declare const RoundEnded: arktype_internal_methods_object_ts0.ObjectType<{
|
|
|
1621
1628
|
segment_size: number;
|
|
1622
1629
|
segment_index: number;
|
|
1623
1630
|
team_0: {
|
|
1624
|
-
role: "
|
|
1631
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1625
1632
|
state: SiegeRoundState;
|
|
1626
1633
|
};
|
|
1627
1634
|
team_1: {
|
|
1628
|
-
role: "
|
|
1635
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
1629
1636
|
state: SiegeRoundState;
|
|
1630
1637
|
};
|
|
1631
1638
|
};
|
|
@@ -1636,15 +1643,15 @@ declare const RoundEnded: arktype_internal_methods_object_ts0.ObjectType<{
|
|
|
1636
1643
|
remaining_health: number;
|
|
1637
1644
|
pre_damage_health: number;
|
|
1638
1645
|
max_health: number;
|
|
1639
|
-
damage_type: "unknown" | "
|
|
1640
|
-
damage_team_type: "
|
|
1646
|
+
damage_type: "invalid" | "unknown" | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
|
|
1647
|
+
damage_team_type: "invalid" | "unknown" | "enemy" | "friendly";
|
|
1641
1648
|
damage_item_id: SiegeItemObjectId | null;
|
|
1642
1649
|
damage_time: number;
|
|
1643
1650
|
}[];
|
|
1644
1651
|
players: {
|
|
1645
1652
|
player_id: SiegePlayerId;
|
|
1646
1653
|
final_health: number;
|
|
1647
|
-
final_life_state: "
|
|
1654
|
+
final_life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1648
1655
|
operator_name: {
|
|
1649
1656
|
id: SiegeOperatorNameId;
|
|
1650
1657
|
value: string;
|
|
@@ -1661,7 +1668,7 @@ declare const PhaseChanged: arktype_internal_methods_object_ts0.ObjectType<{
|
|
|
1661
1668
|
type: "phase_changed";
|
|
1662
1669
|
creation_time: number;
|
|
1663
1670
|
content: {
|
|
1664
|
-
phase: "
|
|
1671
|
+
phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid";
|
|
1665
1672
|
};
|
|
1666
1673
|
}, {}>;
|
|
1667
1674
|
type PhaseChangedEvent = typeof PhaseChanged.infer;
|
|
@@ -1680,7 +1687,7 @@ declare const PlayerJoined: arktype_internal_methods_object_ts0.ObjectType<(In:
|
|
|
1680
1687
|
is_squad_member: boolean;
|
|
1681
1688
|
is_local_player: boolean;
|
|
1682
1689
|
username: string;
|
|
1683
|
-
side: "
|
|
1690
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
1684
1691
|
team: 0 | 1;
|
|
1685
1692
|
is_privacy_username: boolean;
|
|
1686
1693
|
has_avatar_hidden: boolean;
|
|
@@ -1693,12 +1700,12 @@ declare const PlayerJoined: arktype_internal_methods_object_ts0.ObjectType<(In:
|
|
|
1693
1700
|
plants: number;
|
|
1694
1701
|
score: number;
|
|
1695
1702
|
};
|
|
1696
|
-
life_state: "
|
|
1703
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1697
1704
|
ping: number;
|
|
1698
1705
|
};
|
|
1699
1706
|
}) => arktype2.Out<{
|
|
1700
1707
|
content: {
|
|
1701
|
-
starting_side: "
|
|
1708
|
+
starting_side: "invalid" | "attacker" | "defender" | "both";
|
|
1702
1709
|
player_id: SiegePlayerId;
|
|
1703
1710
|
profile_id: string;
|
|
1704
1711
|
is_bot: boolean;
|
|
@@ -1706,7 +1713,7 @@ declare const PlayerJoined: arktype_internal_methods_object_ts0.ObjectType<(In:
|
|
|
1706
1713
|
is_squad_member: boolean;
|
|
1707
1714
|
is_local_player: boolean;
|
|
1708
1715
|
username: string;
|
|
1709
|
-
side: "
|
|
1716
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
1710
1717
|
team: 0 | 1;
|
|
1711
1718
|
is_privacy_username: boolean;
|
|
1712
1719
|
has_avatar_hidden: boolean;
|
|
@@ -1719,7 +1726,7 @@ declare const PlayerJoined: arktype_internal_methods_object_ts0.ObjectType<(In:
|
|
|
1719
1726
|
plants: number;
|
|
1720
1727
|
score: number;
|
|
1721
1728
|
};
|
|
1722
|
-
life_state: "
|
|
1729
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1723
1730
|
ping: number;
|
|
1724
1731
|
};
|
|
1725
1732
|
game: "siege";
|
|
@@ -1777,7 +1784,7 @@ declare const PlayerSideChanged: arktype_internal_methods_object_ts0.ObjectType<
|
|
|
1777
1784
|
creation_time: number;
|
|
1778
1785
|
content: {
|
|
1779
1786
|
player_id: SiegePlayerId;
|
|
1780
|
-
side: "
|
|
1787
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
1781
1788
|
};
|
|
1782
1789
|
}, {}>;
|
|
1783
1790
|
type PlayerSideChangedEvent = typeof PlayerSideChanged.infer;
|
|
@@ -1871,7 +1878,7 @@ declare const PlayerLifeStateChanged: arktype_internal_methods_object_ts0.Object
|
|
|
1871
1878
|
creation_time: number;
|
|
1872
1879
|
content: {
|
|
1873
1880
|
player_id: SiegePlayerId;
|
|
1874
|
-
life_state: "
|
|
1881
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
1875
1882
|
};
|
|
1876
1883
|
}, {}>;
|
|
1877
1884
|
type PlayerLifeStateChangedEvent = typeof PlayerLifeStateChanged.infer;
|
|
@@ -1990,7 +1997,7 @@ declare const events: arktype2.Module<{
|
|
|
1990
1997
|
value: string;
|
|
1991
1998
|
};
|
|
1992
1999
|
time_of_day: {
|
|
1993
|
-
id:
|
|
2000
|
+
id: SiegeTimeOfDay;
|
|
1994
2001
|
value: string;
|
|
1995
2002
|
};
|
|
1996
2003
|
};
|
|
@@ -2002,11 +2009,11 @@ declare const events: arktype2.Module<{
|
|
|
2002
2009
|
segment_size: number;
|
|
2003
2010
|
segment_index: number;
|
|
2004
2011
|
team_0: {
|
|
2005
|
-
role: "
|
|
2012
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
2006
2013
|
state: SiegeRoundState;
|
|
2007
2014
|
};
|
|
2008
2015
|
team_1: {
|
|
2009
|
-
role: "
|
|
2016
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
2010
2017
|
state: SiegeRoundState;
|
|
2011
2018
|
};
|
|
2012
2019
|
}[];
|
|
@@ -2027,7 +2034,7 @@ declare const events: arktype2.Module<{
|
|
|
2027
2034
|
value: string;
|
|
2028
2035
|
};
|
|
2029
2036
|
time_of_day: {
|
|
2030
|
-
id:
|
|
2037
|
+
id: SiegeTimeOfDay;
|
|
2031
2038
|
value: string;
|
|
2032
2039
|
};
|
|
2033
2040
|
};
|
|
@@ -2039,7 +2046,7 @@ declare const events: arktype2.Module<{
|
|
|
2039
2046
|
content: {
|
|
2040
2047
|
index: number;
|
|
2041
2048
|
team: 0 | 1;
|
|
2042
|
-
side: "
|
|
2049
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
2043
2050
|
operator_name: {
|
|
2044
2051
|
id: SiegeOperatorNameId;
|
|
2045
2052
|
value: string;
|
|
@@ -2056,11 +2063,11 @@ declare const events: arktype2.Module<{
|
|
|
2056
2063
|
segment_size: number;
|
|
2057
2064
|
segment_index: number;
|
|
2058
2065
|
team_0: {
|
|
2059
|
-
role: "
|
|
2066
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
2060
2067
|
state: SiegeRoundState;
|
|
2061
2068
|
};
|
|
2062
2069
|
team_1: {
|
|
2063
|
-
role: "
|
|
2070
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
2064
2071
|
state: SiegeRoundState;
|
|
2065
2072
|
};
|
|
2066
2073
|
};
|
|
@@ -2071,15 +2078,15 @@ declare const events: arktype2.Module<{
|
|
|
2071
2078
|
remaining_health: number;
|
|
2072
2079
|
pre_damage_health: number;
|
|
2073
2080
|
max_health: number;
|
|
2074
|
-
damage_type: "unknown" | "
|
|
2075
|
-
damage_team_type: "
|
|
2081
|
+
damage_type: "invalid" | "unknown" | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
|
|
2082
|
+
damage_team_type: "invalid" | "unknown" | "enemy" | "friendly";
|
|
2076
2083
|
damage_item_id: SiegeItemObjectId | null;
|
|
2077
2084
|
damage_time: number;
|
|
2078
2085
|
}[];
|
|
2079
2086
|
players: {
|
|
2080
2087
|
player_id: SiegePlayerId;
|
|
2081
2088
|
final_health: number;
|
|
2082
|
-
final_life_state: "
|
|
2089
|
+
final_life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
2083
2090
|
operator_name: {
|
|
2084
2091
|
id: SiegeOperatorNameId;
|
|
2085
2092
|
value: string;
|
|
@@ -2091,7 +2098,7 @@ declare const events: arktype2.Module<{
|
|
|
2091
2098
|
type: "phase_changed";
|
|
2092
2099
|
creation_time: number;
|
|
2093
2100
|
content: {
|
|
2094
|
-
phase: "
|
|
2101
|
+
phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid";
|
|
2095
2102
|
};
|
|
2096
2103
|
} | ((In: {
|
|
2097
2104
|
game: "siege";
|
|
@@ -2105,7 +2112,7 @@ declare const events: arktype2.Module<{
|
|
|
2105
2112
|
is_squad_member: boolean;
|
|
2106
2113
|
is_local_player: boolean;
|
|
2107
2114
|
username: string;
|
|
2108
|
-
side: "
|
|
2115
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
2109
2116
|
team: 0 | 1;
|
|
2110
2117
|
is_privacy_username: boolean;
|
|
2111
2118
|
has_avatar_hidden: boolean;
|
|
@@ -2118,12 +2125,12 @@ declare const events: arktype2.Module<{
|
|
|
2118
2125
|
plants: number;
|
|
2119
2126
|
score: number;
|
|
2120
2127
|
};
|
|
2121
|
-
life_state: "
|
|
2128
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
2122
2129
|
ping: number;
|
|
2123
2130
|
};
|
|
2124
2131
|
}) => arktype2.Out<{
|
|
2125
2132
|
content: {
|
|
2126
|
-
starting_side: "
|
|
2133
|
+
starting_side: "invalid" | "attacker" | "defender" | "both";
|
|
2127
2134
|
player_id: SiegePlayerId;
|
|
2128
2135
|
profile_id: string;
|
|
2129
2136
|
is_bot: boolean;
|
|
@@ -2131,7 +2138,7 @@ declare const events: arktype2.Module<{
|
|
|
2131
2138
|
is_squad_member: boolean;
|
|
2132
2139
|
is_local_player: boolean;
|
|
2133
2140
|
username: string;
|
|
2134
|
-
side: "
|
|
2141
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
2135
2142
|
team: 0 | 1;
|
|
2136
2143
|
is_privacy_username: boolean;
|
|
2137
2144
|
has_avatar_hidden: boolean;
|
|
@@ -2144,7 +2151,7 @@ declare const events: arktype2.Module<{
|
|
|
2144
2151
|
plants: number;
|
|
2145
2152
|
score: number;
|
|
2146
2153
|
};
|
|
2147
|
-
life_state: "
|
|
2154
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
2148
2155
|
ping: number;
|
|
2149
2156
|
};
|
|
2150
2157
|
game: "siege";
|
|
@@ -2182,7 +2189,7 @@ declare const events: arktype2.Module<{
|
|
|
2182
2189
|
creation_time: number;
|
|
2183
2190
|
content: {
|
|
2184
2191
|
player_id: SiegePlayerId;
|
|
2185
|
-
side: "
|
|
2192
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
2186
2193
|
};
|
|
2187
2194
|
} | {
|
|
2188
2195
|
game: "siege";
|
|
@@ -2241,7 +2248,7 @@ declare const events: arktype2.Module<{
|
|
|
2241
2248
|
creation_time: number;
|
|
2242
2249
|
content: {
|
|
2243
2250
|
player_id: SiegePlayerId;
|
|
2244
|
-
life_state: "
|
|
2251
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
2245
2252
|
};
|
|
2246
2253
|
} | {
|
|
2247
2254
|
game: "siege";
|
|
@@ -2340,7 +2347,7 @@ declare const events: arktype2.Module<{
|
|
|
2340
2347
|
value: string;
|
|
2341
2348
|
};
|
|
2342
2349
|
time_of_day: {
|
|
2343
|
-
id:
|
|
2350
|
+
id: SiegeTimeOfDay;
|
|
2344
2351
|
value: string;
|
|
2345
2352
|
};
|
|
2346
2353
|
};
|
|
@@ -2352,11 +2359,11 @@ declare const events: arktype2.Module<{
|
|
|
2352
2359
|
segment_size: number;
|
|
2353
2360
|
segment_index: number;
|
|
2354
2361
|
team_0: {
|
|
2355
|
-
role: "
|
|
2362
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
2356
2363
|
state: SiegeRoundState;
|
|
2357
2364
|
};
|
|
2358
2365
|
team_1: {
|
|
2359
|
-
role: "
|
|
2366
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
2360
2367
|
state: SiegeRoundState;
|
|
2361
2368
|
};
|
|
2362
2369
|
}[];
|
|
@@ -2379,7 +2386,7 @@ declare const events: arktype2.Module<{
|
|
|
2379
2386
|
value: string;
|
|
2380
2387
|
};
|
|
2381
2388
|
time_of_day: {
|
|
2382
|
-
id:
|
|
2389
|
+
id: SiegeTimeOfDay;
|
|
2383
2390
|
value: string;
|
|
2384
2391
|
};
|
|
2385
2392
|
};
|
|
@@ -2392,7 +2399,7 @@ declare const events: arktype2.Module<{
|
|
|
2392
2399
|
content: {
|
|
2393
2400
|
index: number;
|
|
2394
2401
|
team: 0 | 1;
|
|
2395
|
-
side: "
|
|
2402
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
2396
2403
|
operator_name: {
|
|
2397
2404
|
id: SiegeOperatorNameId;
|
|
2398
2405
|
value: string;
|
|
@@ -2410,11 +2417,11 @@ declare const events: arktype2.Module<{
|
|
|
2410
2417
|
segment_size: number;
|
|
2411
2418
|
segment_index: number;
|
|
2412
2419
|
team_0: {
|
|
2413
|
-
role: "
|
|
2420
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
2414
2421
|
state: SiegeRoundState;
|
|
2415
2422
|
};
|
|
2416
2423
|
team_1: {
|
|
2417
|
-
role: "
|
|
2424
|
+
role: "invalid" | "attacker" | "defender" | "both";
|
|
2418
2425
|
state: SiegeRoundState;
|
|
2419
2426
|
};
|
|
2420
2427
|
};
|
|
@@ -2425,15 +2432,15 @@ declare const events: arktype2.Module<{
|
|
|
2425
2432
|
remaining_health: number;
|
|
2426
2433
|
pre_damage_health: number;
|
|
2427
2434
|
max_health: number;
|
|
2428
|
-
damage_type: "unknown" | "
|
|
2429
|
-
damage_team_type: "
|
|
2435
|
+
damage_type: "invalid" | "unknown" | "downed" | "bullet" | "melee" | "explosive" | "falling" | "regeneration" | "debris" | "projectile" | "gas" | "thermal_explosion" | "melee_gadget" | "barbed_wire" | "electric" | "reinforcement" | "frag" | "paralyzed" | "emp" | "break" | "cleanup" | "interrogation" | "melee-finisher" | "toxic" | "toxic-explosion" | "pneumatic" | "body-contact" | "contact-explosion" | "flash" | "parasite-spike" | "laser" | "concussion" | "blowtorch" | "taser-shield" | "reverse-friendly-fire" | "self-destroyed" | "area-control" | "fire" | "breach-kick" | "break-wall" | "blade-mine";
|
|
2436
|
+
damage_team_type: "invalid" | "unknown" | "enemy" | "friendly";
|
|
2430
2437
|
damage_item_id: SiegeItemObjectId | null;
|
|
2431
2438
|
damage_time: number;
|
|
2432
2439
|
}[];
|
|
2433
2440
|
players: {
|
|
2434
2441
|
player_id: SiegePlayerId;
|
|
2435
2442
|
final_health: number;
|
|
2436
|
-
final_life_state: "
|
|
2443
|
+
final_life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
2437
2444
|
operator_name: {
|
|
2438
2445
|
id: SiegeOperatorNameId;
|
|
2439
2446
|
value: string;
|
|
@@ -2446,7 +2453,7 @@ declare const events: arktype2.Module<{
|
|
|
2446
2453
|
type: "phase_changed";
|
|
2447
2454
|
creation_time: number;
|
|
2448
2455
|
content: {
|
|
2449
|
-
phase: "
|
|
2456
|
+
phase: "intro" | "planning" | "prep" | "action" | "results" | "invalid";
|
|
2450
2457
|
};
|
|
2451
2458
|
};
|
|
2452
2459
|
player_joined: (In: {
|
|
@@ -2461,7 +2468,7 @@ declare const events: arktype2.Module<{
|
|
|
2461
2468
|
is_squad_member: boolean;
|
|
2462
2469
|
is_local_player: boolean;
|
|
2463
2470
|
username: string;
|
|
2464
|
-
side: "
|
|
2471
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
2465
2472
|
team: 0 | 1;
|
|
2466
2473
|
is_privacy_username: boolean;
|
|
2467
2474
|
has_avatar_hidden: boolean;
|
|
@@ -2474,12 +2481,12 @@ declare const events: arktype2.Module<{
|
|
|
2474
2481
|
plants: number;
|
|
2475
2482
|
score: number;
|
|
2476
2483
|
};
|
|
2477
|
-
life_state: "
|
|
2484
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
2478
2485
|
ping: number;
|
|
2479
2486
|
};
|
|
2480
2487
|
}) => arktype2.Out<{
|
|
2481
2488
|
content: {
|
|
2482
|
-
starting_side: "
|
|
2489
|
+
starting_side: "invalid" | "attacker" | "defender" | "both";
|
|
2483
2490
|
player_id: SiegePlayerId;
|
|
2484
2491
|
profile_id: string;
|
|
2485
2492
|
is_bot: boolean;
|
|
@@ -2487,7 +2494,7 @@ declare const events: arktype2.Module<{
|
|
|
2487
2494
|
is_squad_member: boolean;
|
|
2488
2495
|
is_local_player: boolean;
|
|
2489
2496
|
username: string;
|
|
2490
|
-
side: "
|
|
2497
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
2491
2498
|
team: 0 | 1;
|
|
2492
2499
|
is_privacy_username: boolean;
|
|
2493
2500
|
has_avatar_hidden: boolean;
|
|
@@ -2500,7 +2507,7 @@ declare const events: arktype2.Module<{
|
|
|
2500
2507
|
plants: number;
|
|
2501
2508
|
score: number;
|
|
2502
2509
|
};
|
|
2503
|
-
life_state: "
|
|
2510
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
2504
2511
|
ping: number;
|
|
2505
2512
|
};
|
|
2506
2513
|
game: "siege";
|
|
@@ -2542,7 +2549,7 @@ declare const events: arktype2.Module<{
|
|
|
2542
2549
|
creation_time: number;
|
|
2543
2550
|
content: {
|
|
2544
2551
|
player_id: SiegePlayerId;
|
|
2545
|
-
side: "
|
|
2552
|
+
side: "invalid" | "attacker" | "defender" | "both";
|
|
2546
2553
|
};
|
|
2547
2554
|
};
|
|
2548
2555
|
player_stats_changed: {
|
|
@@ -2608,7 +2615,7 @@ declare const events: arktype2.Module<{
|
|
|
2608
2615
|
creation_time: number;
|
|
2609
2616
|
content: {
|
|
2610
2617
|
player_id: SiegePlayerId;
|
|
2611
|
-
life_state: "
|
|
2618
|
+
life_state: "normal" | "overhealed" | "low_health" | "downed" | "dead" | "respawning";
|
|
2612
2619
|
};
|
|
2613
2620
|
};
|
|
2614
2621
|
player_died: {
|
|
@@ -2654,4 +2661,4 @@ type SiegeEventType = SiegeEvent["type"];
|
|
|
2654
2661
|
|
|
2655
2662
|
//#endregion
|
|
2656
2663
|
//#endregion
|
|
2657
|
-
export { BaseEvent, type DefuserDroppedEvent, type DefuserPickedUpEvent, type DefuserPlantedEvent, type DefuserSabotagedEvent, type LocalPlayerEvent, type MapChangedEvent, MapData, MapDataSchema, type MatchEndedEvent, MatchRoundData, MatchRoundDataSchema, type MatchStartedEvent, type ModuleLoadedEvent, type ModuleUnloadedEvent, type OperatorBannedEvent, type PhaseChangedEvent, PlayerDamageData, PlayerDamageDataSchema, type PlayerDiedEvent, type PlayerDownedEvent, type PlayerJoinedEvent, type PlayerLeftEvent, type PlayerLifeStateChangedEvent, type PlayerLocationChangedEvent, PlayerMatchStatsData, PlayerMatchStatsDataSchema, type PlayerOperatorChangedEvent, type PlayerPingIdChangedEvent, type PlayerPingUpdatedEvent, type PlayerSideChangedEvent, type PlayerStatsChangedEvent, type PlayerTeamChangedEvent, RoundEndData, RoundEndDataSchema, RoundEndPlayerData, RoundEndPlayerDataSchema, type RoundEndedEvent, SIEGE_BOT_ID, SIEGE_DAMAGE_TEAM_TYPES, SIEGE_DAMAGE_TYPES, SIEGE_GAME_MODES_TO_ID, SIEGE_GAME_MODE_LABELS, SIEGE_GAME_MODE_PHASES, SIEGE_GAME_MODE_TYPES_TO_ID, SIEGE_GAME_MODE_TYPE_LABELS, SIEGE_MAP_LABELS, SIEGE_MAP_TO_ID, SIEGE_MATCH_TYPES_TO_ID, SIEGE_MATCH_TYPE_LABELS, SIEGE_OPERATOR_LABELS, SIEGE_OPERATOR_META, SIEGE_OPERATOR_TO_ID, SIEGE_PLAYER_LIFE_STATES, SIEGE_ROUND_STATES_TO_ID, SIEGE_ROUND_STATE_LABELS, SIEGE_SIDES, SIEGE_SIDE_OPERATORS, SIEGE_TEAMS, SiegeDamageTeamType, SiegeDamageTeamTypeSchema, SiegeDamageType, SiegeDamageTypeSchema, SiegeEvent, SiegeEventType, SiegeGameMode, SiegeGameModePhase, SiegeGameModePhaseSchema, SiegeGameModeTypeNameId, SiegeItemObjectId, SiegeMapNameId, SiegeMatchId, SiegeMatchType, SiegeOperatorMeta, SiegeOperatorMetaFull, SiegeOperatorNameId, SiegePlayerId, SiegePlayerLifeState, SiegePlayerLifeStateSchema, SiegeProfileId, SiegeRoundState, SiegeSide, SiegeSideSchema, SiegeTeam, SiegeTeamSchema, type StartedQueuingEvent, type StoppedQueueingEvent, Translation, TranslationSchema, type UnsupportedGameVersionEvent, events, isSiegeRoundStateCompleted, isSiegeRoundStateVictory, module };
|
|
2664
|
+
export { BaseEvent, type DefuserDroppedEvent, type DefuserPickedUpEvent, type DefuserPlantedEvent, type DefuserSabotagedEvent, type LocalPlayerEvent, type MapChangedEvent, MapData, MapDataSchema, type MatchEndedEvent, MatchRoundData, MatchRoundDataSchema, type MatchStartedEvent, type ModuleLoadedEvent, type ModuleUnloadedEvent, type OperatorBannedEvent, type PhaseChangedEvent, PlayerDamageData, PlayerDamageDataSchema, type PlayerDiedEvent, type PlayerDownedEvent, type PlayerJoinedEvent, type PlayerLeftEvent, type PlayerLifeStateChangedEvent, type PlayerLocationChangedEvent, PlayerMatchStatsData, PlayerMatchStatsDataSchema, type PlayerOperatorChangedEvent, type PlayerPingIdChangedEvent, type PlayerPingUpdatedEvent, type PlayerSideChangedEvent, type PlayerStatsChangedEvent, type PlayerTeamChangedEvent, RoundEndData, RoundEndDataSchema, RoundEndPlayerData, RoundEndPlayerDataSchema, type RoundEndedEvent, SIEGE_BOT_ID, SIEGE_DAMAGE_TEAM_TYPES, SIEGE_DAMAGE_TYPES, SIEGE_GAME_MODES_TO_ID, SIEGE_GAME_MODE_LABELS, SIEGE_GAME_MODE_PHASES, SIEGE_GAME_MODE_TYPES_TO_ID, SIEGE_GAME_MODE_TYPE_LABELS, SIEGE_MAP_LABELS, SIEGE_MAP_TO_ID, SIEGE_MATCH_TYPES_TO_ID, SIEGE_MATCH_TYPE_LABELS, SIEGE_OPERATOR_LABELS, SIEGE_OPERATOR_META, SIEGE_OPERATOR_TO_ID, SIEGE_PLAYER_LIFE_STATES, SIEGE_ROUND_STATES_TO_ID, SIEGE_ROUND_STATE_LABELS, SIEGE_SIDES, SIEGE_SIDE_OPERATORS, SIEGE_TEAMS, SIEGE_TIME_OF_DAY_LABELS, SIEGE_TIME_OF_DAY_TO_ID, SiegeDamageTeamType, SiegeDamageTeamTypeSchema, SiegeDamageType, SiegeDamageTypeSchema, SiegeEvent, SiegeEventType, SiegeGameMode, SiegeGameModePhase, SiegeGameModePhaseSchema, SiegeGameModeTypeNameId, SiegeItemObjectId, SiegeMapNameId, SiegeMatchId, SiegeMatchType, SiegeOperatorMeta, SiegeOperatorMetaFull, SiegeOperatorNameId, SiegePlayerId, SiegePlayerLifeState, SiegePlayerLifeStateSchema, SiegeProfileId, SiegeRoundState, SiegeSide, SiegeSideSchema, SiegeTeam, SiegeTeamSchema, SiegeTimeOfDay, type StartedQueuingEvent, type StoppedQueueingEvent, Translation, TranslationSchema, type UnsupportedGameVersionEvent, events, isSiegeRoundStateCompleted, isSiegeRoundStateVictory, module };
|
package/dist/siege.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Type as e,scope as t,type as n}from"arktype";function r(e){return e}function ee(e){return e}function i(e){return e?t=>(e(t),t):ee}const a=i(),o=i(),s=i(),c=i(),l=i(),u=i(),d=i(),f=i(),p=i(),m=i(),h=`00000000-0000-0000-0000-000000000000`,g=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`],_=n(`===`,...g),v=[0,1],y=n(`===`,...v),b=[`attacker`,`defender`,`both`,`invalid`],x=n(`===`,...b),S=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],C=n(`===`,...S),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.invalid`.split(`.`),T=n(`===`,...w),E=[`unknown`,`enemy`,`friendly`,`invalid`],D=n(`===`,...E),O=Object.freeze({quickPlay:p(`QUICK PLAY`),versusAi:p(`VERSUS AI`),standard:p(`STANDARD`),ranked:p(`RANKED`)}),k=Object.freeze({[O.quickPlay]:`Quick Play`,[O.versusAi]:`Versus AI`,[O.standard]:`Standard`,[O.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:a(205379),quickMatch:a(138115),customGame:a(62008),versusAi:a(397300),standard:a(393930),arcade:a(320109),siegeCup:a(414089),dualFront:a(420611),showdown:a(305544),trainingGrounds:a(-1)}),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`}),P=Object.freeze({glaz:o(62242),blitz:o(62243),buck:o(62244),sledge:o(62245),ash:o(62246),thermite:o(62247),castle:o(62248),rook:o(62249),pulse:o(62250),doc:o(62251),mute:o(62252),smoke:o(62253),recruit:o(62555),thatcher:o(65143),twitch:o(65156),montagne:o(65159),bandit:o(65165),fuze:o(65168),kapkan:o(65171),tachanka:o(65174),jager:o(113049),iq:o(113052),frost:o(186159),blackbeard:o(187249),valkyrie:o(187252),caveira:o(207671),capitao:o(207674),echo:o(209180),hibana:o(209183),mira:o(222172),jackal:o(222182),ying:o(239334),lesion:o(239337),ela:o(254595),zofia:o(254606),dokkaebi:o(273652),vigil:o(273663),finka:o(281457),lion:o(281463),alibi:o(282399),maestro:o(285888),maverick:o(288504),clash:o(288526),nomad:o(293435),kaid:o(293436),gridlock:o(298589),mozzie:o(298616),nokk:o(299657),warden:o(299668),goyo:o(304196),amaru:o(308469),kali:o(310757),wamai:o(310768),oryx:o(317965),iana:o(317976),melusi:o(320062),ace:o(320073),zero:o(328927),aruni:o(328940),flores:o(334086),thunderbird:o(336466),osa:o(344493),thorn:o(349405),azami:o(354314),sens:o(357386),grim:o(365404),solis:o(376836),brava:o(382419),fenrir:o(386388),ram:o(392904),tubarao:o(395594),deimos:o(400504),striker:o(404278),sentry:o(404290),skopos:o(408405),rauora:o(421052)}),te=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`}),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`}}),I=Object.freeze({attacker:Object.entries(F).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...F[o(Number(e))],id:o(Number(e))})),defender:Object.entries(F).filter(([e,t])=>t.role===`defender`).map(([e])=>({...F[o(Number(e))],id:o(Number(e))}))}),L=Object.freeze({favela:s(202283),fortress:s(293334),villa:s(286407),neighborhood:s(333785),article5:s(196214),themePark:s(229325),stadium:s(338641),outback:s(299162),yacht:s(62226),emeraldPlains:s(358871),chalet:s(62230),coastline:s(217482),bank:s(62228),consulate:s(62227),tower:s(255669),nighthavenLabs:s(375492),presidentialPlane:s(62225),house:s(62221),kafeDostoyevsky:s(62232),border:s(201746),closeQuarter:s(365400),bartlettU:s(62231),lair:s(396234),herefordBase:s(62223),skyscraper:s(208094),cqbBasics:s(196157),oregon:s(62222),fortTruth:s(307723),kanal:s(62229),stadium2020:s(357300),clubhouse:s(62224),district:s(1193341205),shinden:s(359432)}),R=Object.freeze({202283:`Favela`,293334:`Fortress`,286407:`Villa`,333785:`Neighborhood`,196214:`Article 5`,229325:`Theme Park`,338641:`Stadium`,299162:`Outback`,62226:`Yacht`,358871:`Emerald Plains`,62230:`Chalet`,217482:`Coastline`,62228:`Bank`,62227:`Consulate`,255669:`Tower`,375492:`Nighthaven Labs`,62225:`Presidential Plane`,187984:`Article 5`,62221:`House`,62232:`Kafe Dostoyevsky`,201746:`Border`,365400:`Close Quarter`,299161:`Outback`,62231:`Bartlett U.`,396234:`Lair`,62223:`Hereford Base`,208094:`Skyscraper`,196157:`CQB Basics`,62222:`Oregon`,299534:`Outback`,318512:`Stadium`,307723:`Fort Truth`,195681:`Article 5`,62229:`Kanal`,177763:`CQB Basics`,357300:`Stadium 2020`,62224:`Clubhouse`,1193341205:`District`,359432:`Shinden`}),z=Object.freeze({notPlayed:c(0),inProgress:c(1),lost:c(2),enemiesEliminated:c(3),objectiveComplete:c(4),timeRanOut:c(5),enemiesSurrendered:c(6),unknownReason:c(7),matchCancelled:c(8)}),B=Object.freeze({[z.notPlayed]:`Not Played`,[z.inProgress]:`In Progress`,[z.lost]:`Lost`,[z.enemiesEliminated]:`Enemies Eliminated`,[z.objectiveComplete]:`Objective Complete`,[z.timeRanOut]:`Time ran out`,[z.enemiesSurrendered]:`Enemies Surrendered`,[z.unknownReason]:`Unknown Reason`,[z.matchCancelled]:`Match Cancelled`}),V=n({game:`string`,type:`string`,creation_time:`number`}),H=[z.enemiesEliminated,z.objectiveComplete,z.timeRanOut,z.enemiesSurrendered,z.unknownReason];function U(e){return H.includes(e)}const W=[z.notPlayed,z.inProgress];function G(e){return!W.includes(e)}const K=V.and({game:`'siege'`}),q=K.and({type:`'local_player'`,content:{profile_id:r(n.string)}}),J=()=>n({id:`number`,value:`string`}),Y=n({kills:`number`,deaths:`number`,assists:`number`,plants:`number`,score:`number`}),X=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:D,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:x,state:r(n.number)},team_1:{role:x,state:r(n.number)}}),Q=n({id:`number`,name:J(),time_of_day:J()}),ne=n({player_id:r(n.number),final_health:`number`,final_life_state:C,operator_name:J().or(`null`)}),re=n({round_data:Z,damage_events:X.array(),players:ne.array()}),ie=K.and({type:`'match_started'`,content:{game_mode:r(n.string),game_type:J(),match_type:r(n.string),match_id:r(n.string),map:Q,is_round_based:`boolean`,current_round_index:`number`,rounds:Z.array()}}),ae=K.and({type:`'module_loaded'`}),oe=K.and({type:`'module_unloaded'`}),se=K.and({type:`'started_queuing'`,content:{game_mode:r(n.string),game_type:J(),match_type:r(n.string)}}),ce=K.and({type:`'stopped_queuing'`}),le=K.and({type:`'unsupported_game_version'`,content:{hash:`string | null`,version:`string | null`}}),ue=K.and({type:`'match_ended'`}),de=K.and({type:`'map_changed'`,content:{map:Q}}),fe=K.and({type:`'operator_banned'`,content:{index:`number`,team:y,side:x,operator_name:J().or(`null`)}}),pe=K.and({type:`'round_ended'`,content:re}),me=K.and({type:`'phase_changed'`,content:{phase:_}}),he=K.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:`string.uuid`,is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:x,team:y,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:Y,life_state:C,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),ge=K.and({type:`'player_left'`,content:{player_id:r(n.number)}}),_e=K.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:J().or(`null`)}}),ve=K.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),ye=K.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:x}}),be=K.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:Y}}),$=K.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),xe=K.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),Se=K.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),Ce=K.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),we=K.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),Te=K.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:C}}),Ee=K.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),De=K.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Oe=K.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),ke=K.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:y}}),Ae=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | local_player | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_banned | round_ended | phase_changed | player_joined | player_left | player_operator_changed | player_location_changed | player_side_changed | player_stats_changed`,"#event2":`player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated`,event:`event1 | event2`,module_loaded:ae,module_unloaded:oe,unsupported_game_version:le,local_player:q,started_queuing:se,stopped_queuing:ce,match_started:ie,match_ended:ue,map_changed:de,operator_banned:fe,round_ended:pe,phase_changed:me,player_joined:he,player_left:ge,player_operator_changed:_e,player_location_changed:ve,player_side_changed:ye,player_stats_changed:be,defuser_planted:xe,defuser_sabotaged:Se,defuser_picked_up:Ce,defuser_dropped:we,player_ping_updated:$,player_life_state_changed:Te,player_died:Ee,player_downed:De,player_ping_id_changed:Oe,player_team_changed:ke}).export();function je(){return{key:`siege`,events:Ae}}export{V as BaseEvent,h as SIEGE_BOT_ID,E as SIEGE_DAMAGE_TEAM_TYPES,w as SIEGE_DAMAGE_TYPES,A as SIEGE_GAME_MODES_TO_ID,j as SIEGE_GAME_MODE_LABELS,g as SIEGE_GAME_MODE_PHASES,M as SIEGE_GAME_MODE_TYPES_TO_ID,N as SIEGE_GAME_MODE_TYPE_LABELS,R as SIEGE_MAP_LABELS,L as SIEGE_MAP_TO_ID,O as SIEGE_MATCH_TYPES_TO_ID,k as SIEGE_MATCH_TYPE_LABELS,te as SIEGE_OPERATOR_LABELS,F as SIEGE_OPERATOR_META,P as SIEGE_OPERATOR_TO_ID,S as SIEGE_PLAYER_LIFE_STATES,z as SIEGE_ROUND_STATES_TO_ID,B as SIEGE_ROUND_STATE_LABELS,b as SIEGE_SIDES,I as SIEGE_SIDE_OPERATORS,v as SIEGE_TEAMS,D as SiegeDamageTeamTypeSchema,T as SiegeDamageTypeSchema,m as SiegeGameMode,_ as SiegeGameModePhaseSchema,a as SiegeGameModeTypeNameId,f as SiegeItemObjectId,s as SiegeMapNameId,l as SiegeMatchId,p as SiegeMatchType,o as SiegeOperatorNameId,u as SiegePlayerId,C as SiegePlayerLifeStateSchema,d as SiegeProfileId,c as SiegeRoundState,x as SiegeSideSchema,y as SiegeTeamSchema,G as isSiegeRoundStateCompleted,U as isSiegeRoundStateVictory,je as module};
|
|
1
|
+
import{Type as e,scope as t,type as n}from"arktype";function r(e){return e}function ee(e){return e}function i(e){return e?t=>(e(t),t):ee}const a=i(),o=i(),s=i(),c=i(),l=i(),u=i(),te=i(),d=i(),f=i(),p=i(),m=i(),ne=`00000000-0000-0000-0000-000000000000`,h=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`],g=n(`===`,...h),_=[0,1],v=n(`===`,..._),y=[`attacker`,`defender`,`both`,`invalid`],b=n(`===`,...y),x=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],S=n(`===`,...x),C=`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(`.`),w=n(`===`,...C),T=[`unknown`,`enemy`,`friendly`,`invalid`],E=n(`===`,...T),D=Object.freeze({quickPlay:f(`QUICK PLAY`),versusAi:f(`VERSUS AI`),standard:f(`STANDARD`),ranked:f(`RANKED`)}),O=Object.freeze({[D.quickPlay]:`Quick Play`,[D.versusAi]:`Versus AI`,[D.standard]:`Standard`,[D.ranked]:`Ranked`}),k=Object.freeze({teamDeathmatch:p(`TEAM DEATHMATCH`),goldenGun:p(`GOLDEN GUN`),freeForAll:p(`FREE FOR ALL`),weaponRoulette:p(`WEAPON ROULETTE`),dualFront:p(`DUAL FRONT`),bomb:p(`BOMB`),versusAi:p(`VERSUS AI`),hostage:p(`HOSTAGE`),threeVsThreeSecureArea:p(`3 VS 3 SECURE AREA`),targetDrill:p(`TARGET DRILL`),rengoku:p(`RENGOKU`)}),A=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`}),j=Object.freeze({ranked:a(205379),quickMatch:a(138115),customGame:a(62008),versusAi:a(397300),standard:a(393930),arcade:a(320109),siegeCup:a(414089),dualFront:a(420611),showdown:a(305544),trainingGrounds:a(-1)}),M=Object.freeze({[j.quickMatch]:`Quick Match`,[j.ranked]:`Ranked`,[j.customGame]:`Custom Game`,[j.versusAi]:`Versus AI`,[j.standard]:`Standard`,[j.arcade]:`Arcade`,[j.siegeCup]:`Siege Cup`,[j.dualFront]:`Dual Front`,[j.showdown]:`Showdown`,[j.trainingGrounds]:`Training Grounds`}),N=Object.freeze({glaz:o(62242),blitz:o(62243),buck:o(62244),sledge:o(62245),ash:o(62246),thermite:o(62247),castle:o(62248),rook:o(62249),pulse:o(62250),doc:o(62251),mute:o(62252),smoke:o(62253),recruit:o(62555),thatcher:o(65143),twitch:o(65156),montagne:o(65159),bandit:o(65165),fuze:o(65168),kapkan:o(65171),tachanka:o(65174),jager:o(113049),iq:o(113052),frost:o(186159),blackbeard:o(187249),valkyrie:o(187252),caveira:o(207671),capitao:o(207674),echo:o(209180),hibana:o(209183),mira:o(222172),jackal:o(222182),ying:o(239334),lesion:o(239337),ela:o(254595),zofia:o(254606),dokkaebi:o(273652),vigil:o(273663),finka:o(281457),lion:o(281463),alibi:o(282399),maestro:o(285888),maverick:o(288504),clash:o(288526),nomad:o(293435),kaid:o(293436),gridlock:o(298589),mozzie:o(298616),nokk:o(299657),warden:o(299668),goyo:o(304196),amaru:o(308469),kali:o(310757),wamai:o(310768),oryx:o(317965),iana:o(317976),melusi:o(320062),ace:o(320073),zero:o(328927),aruni:o(328940),flores:o(334086),thunderbird:o(336466),osa:o(344493),thorn:o(349405),azami:o(354314),sens:o(357386),grim:o(365404),solis:o(376836),brava:o(382419),fenrir:o(386388),ram:o(392904),tubarao:o(395594),deimos:o(400504),striker:o(404278),sentry:o(404290),skopos:o(408405),rauora:o(421052)}),re=Object.freeze({[N.glaz]:`glaz`,[N.blitz]:`blitz`,[N.buck]:`buck`,[N.sledge]:`sledge`,[N.ash]:`ash`,[N.thermite]:`thermite`,[N.castle]:`castle`,[N.rook]:`rook`,[N.pulse]:`pulse`,[N.doc]:`doc`,[N.mute]:`mute`,[N.smoke]:`smoke`,[N.recruit]:`recruit`,[N.thatcher]:`thatcher`,[N.twitch]:`twitch`,[N.montagne]:`montagne`,[N.bandit]:`bandit`,[N.fuze]:`fuze`,[N.kapkan]:`kapkan`,[N.tachanka]:`tachanka`,[N.jager]:`jager`,[N.iq]:`iq`,[N.frost]:`frost`,[N.blackbeard]:`blackbeard`,[N.valkyrie]:`valkyrie`,[N.caveira]:`caveira`,[N.capitao]:`capitao`,[N.echo]:`echo`,[N.hibana]:`hibana`,[N.mira]:`mira`,[N.jackal]:`jackal`,[N.ying]:`ying`,[N.lesion]:`lesion`,[N.ela]:`ela`,[N.zofia]:`zofia`,[N.dokkaebi]:`dokkaebi`,[N.vigil]:`vigil`,[N.finka]:`finka`,[N.lion]:`lion`,[N.alibi]:`alibi`,[N.maestro]:`maestro`,[N.maverick]:`maverick`,[N.clash]:`clash`,[N.nomad]:`nomad`,[N.kaid]:`kaid`,[N.gridlock]:`gridlock`,[N.mozzie]:`mozzie`,[N.nokk]:`nokk`,[N.warden]:`warden`,[N.goyo]:`goyo`,[N.amaru]:`amaru`,[N.kali]:`kali`,[N.wamai]:`wamai`,[N.oryx]:`oryx`,[N.iana]:`iana`,[N.melusi]:`melusi`,[N.ace]:`ace`,[N.zero]:`zero`,[N.aruni]:`aruni`,[N.flores]:`flores`,[N.thunderbird]:`thunderbird`,[N.osa]:`osa`,[N.thorn]:`thorn`,[N.azami]:`azami`,[N.sens]:`sens`,[N.grim]:`grim`,[N.solis]:`solis`,[N.brava]:`brava`,[N.fenrir]:`fenrir`,[N.ram]:`ram`,[N.tubarao]:`tubarao`,[N.deimos]:`deimos`,[N.striker]:`striker`,[N.sentry]:`sentry`,[N.skopos]:`skopos`,[N.rauora]:`rauora`}),P=Object.freeze({[N.striker]:{name:`Striker`,role:`attacker`},[N.sledge]:{name:`Sledge`,role:`attacker`},[N.thatcher]:{name:`Thatcher`,role:`attacker`},[N.ash]:{name:`Ash`,role:`attacker`},[N.thermite]:{name:`Thermite`,role:`attacker`},[N.twitch]:{name:`Twitch`,role:`attacker`},[N.montagne]:{name:`Montagne`,role:`attacker`},[N.glaz]:{name:`Glaz`,role:`attacker`},[N.fuze]:{name:`Fuze`,role:`attacker`},[N.blitz]:{name:`Blitz`,role:`attacker`},[N.iq]:{name:`IQ`,role:`attacker`},[N.buck]:{name:`Buck`,role:`attacker`},[N.blackbeard]:{name:`Blackbeard`,role:`attacker`},[N.capitao]:{name:`Capitão`,role:`attacker`},[N.hibana]:{name:`Hibana`,role:`attacker`},[N.jackal]:{name:`Jackal`,role:`attacker`},[N.ying]:{name:`Ying`,role:`attacker`},[N.zofia]:{name:`Zofia`,role:`attacker`},[N.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[N.lion]:{name:`Lion`,role:`attacker`},[N.finka]:{name:`Finka`,role:`attacker`},[N.maverick]:{name:`Maverick`,role:`attacker`},[N.nomad]:{name:`Nomad`,role:`attacker`},[N.gridlock]:{name:`Gridlock`,role:`attacker`},[N.nokk]:{name:`Nøkk`,role:`attacker`},[N.amaru]:{name:`Amaru`,role:`attacker`},[N.kali]:{name:`Kali`,role:`attacker`},[N.iana]:{name:`Iana`,role:`attacker`},[N.ace]:{name:`Ace`,role:`attacker`},[N.zero]:{name:`Zero`,role:`attacker`},[N.flores]:{name:`Flores`,role:`attacker`},[N.osa]:{name:`Osa`,role:`attacker`},[N.sens]:{name:`Sens`,role:`attacker`},[N.grim]:{name:`Grim`,role:`attacker`},[N.brava]:{name:`Brava`,role:`attacker`},[N.ram]:{name:`Ram`,role:`attacker`},[N.deimos]:{name:`Deimos`,role:`attacker`},[N.rauora]:{name:`Rauora`,role:`attacker`},[N.sentry]:{name:`Sentry`,role:`defender`},[N.smoke]:{name:`Smoke`,role:`defender`},[N.mute]:{name:`Mute`,role:`defender`},[N.castle]:{name:`Castle`,role:`defender`},[N.pulse]:{name:`Pulse`,role:`defender`},[N.doc]:{name:`Doc`,role:`defender`},[N.rook]:{name:`Rook`,role:`defender`},[N.kapkan]:{name:`Kapkan`,role:`defender`},[N.tachanka]:{name:`Tachanka`,role:`defender`},[N.jager]:{name:`Jäger`,role:`defender`},[N.bandit]:{name:`Bandit`,role:`defender`},[N.frost]:{name:`Frost`,role:`defender`},[N.valkyrie]:{name:`Valkyrie`,role:`defender`},[N.caveira]:{name:`Caveira`,role:`defender`},[N.echo]:{name:`Echo`,role:`defender`},[N.mira]:{name:`Mira`,role:`defender`},[N.lesion]:{name:`Lesion`,role:`defender`},[N.ela]:{name:`Ela`,role:`defender`},[N.vigil]:{name:`Vigil`,role:`defender`},[N.alibi]:{name:`Alibi`,role:`defender`},[N.maestro]:{name:`Maestro`,role:`defender`},[N.clash]:{name:`Clash`,role:`defender`},[N.kaid]:{name:`Kaid`,role:`defender`},[N.mozzie]:{name:`Mozzie`,role:`defender`},[N.warden]:{name:`Warden`,role:`defender`},[N.goyo]:{name:`Goyo`,role:`defender`},[N.wamai]:{name:`Wamai`,role:`defender`},[N.oryx]:{name:`Oryx`,role:`defender`},[N.melusi]:{name:`Melusi`,role:`defender`},[N.aruni]:{name:`Aruni`,role:`defender`},[N.thunderbird]:{name:`Thunderbird`,role:`defender`},[N.thorn]:{name:`Thorn`,role:`defender`},[N.azami]:{name:`Azami`,role:`defender`},[N.solis]:{name:`Solis`,role:`defender`},[N.fenrir]:{name:`Fenrir`,role:`defender`},[N.tubarao]:{name:`Tubarao`,role:`defender`},[N.skopos]:{name:`Skopós`,role:`defender`}}),F=Object.freeze({attacker:Object.entries(P).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...P[o(Number(e))],id:o(Number(e))})),defender:Object.entries(P).filter(([e,t])=>t.role===`defender`).map(([e])=>({...P[o(Number(e))],id:o(Number(e))}))}),I=Object.freeze({favela:s(202283),fortress:s(293334),villa:s(286407),neighborhood:s(333785),article5:s(196214),themePark:s(229325),stadium:s(338641),outback:s(299162),yacht:s(62226),emeraldPlains:s(358871),chalet:s(62230),coastline:s(217482),bank:s(62228),consulate:s(62227),tower:s(255669),nighthavenLabs:s(375492),presidentialPlane:s(62225),house:s(62221),kafeDostoyevsky:s(62232),border:s(201746),closeQuarter:s(365400),bartlettU:s(62231),lair:s(396234),herefordBase:s(62223),skyscraper:s(208094),cqbBasics:s(196157),oregon:s(62222),fortTruth:s(307723),kanal:s(62229),stadium2020:s(357300),clubhouse:s(62224),district:s(1193341205),shinden:s(359432)}),L=Object.freeze({202283:`Favela`,293334:`Fortress`,286407:`Villa`,333785:`Neighborhood`,196214:`Article 5`,229325:`Theme Park`,338641:`Stadium`,299162:`Outback`,62226:`Yacht`,358871:`Emerald Plains`,62230:`Chalet`,217482:`Coastline`,62228:`Bank`,62227:`Consulate`,255669:`Tower`,375492:`Nighthaven Labs`,62225:`Presidential Plane`,187984:`Article 5`,62221:`House`,62232:`Kafe Dostoyevsky`,201746:`Border`,365400:`Close Quarter`,299161:`Outback`,62231:`Bartlett U.`,396234:`Lair`,62223:`Hereford Base`,208094:`Skyscraper`,196157:`CQB Basics`,62222:`Oregon`,299534:`Outback`,318512:`Stadium`,307723:`Fort Truth`,195681:`Article 5`,62229:`Kanal`,177763:`CQB Basics`,357300:`Stadium 2020`,62224:`Clubhouse`,1193341205:`District`,359432:`Shinden`}),R=Object.freeze({notPlayed:c(0),inProgress:c(1),lost:c(2),enemiesEliminated:c(3),objectiveComplete:c(4),timeRanOut:c(5),enemiesSurrendered:c(6),unknownReason:c(7),matchCancelled:c(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:m(177839),night:m(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`,plants:`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:w,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:b,state:r(n.number)},team_1:{role:b,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:S,operator_name:Y().or(`null`)}),$=n({round_data:Z,damage_events:ie.array(),players:ae.array()}),oe=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()}}),se=q.and({type:`'module_loaded'`}),ce=q.and({type:`'module_unloaded'`}),le=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:v,side:b,operator_name:Y().or(`null`)}}),he=q.and({type:`'round_ended'`,content:$}),ge=q.and({type:`'phase_changed'`,content:{phase:g}}),_e=q.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:`string.uuid`,is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:b,team:v,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:X,life_state:S,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:b}}),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:S}}),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:v}}),Ne=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | local_player | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_banned | round_ended | phase_changed | player_joined | player_left | player_operator_changed | player_location_changed | player_side_changed | player_stats_changed`,"#event2":`player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated`,event:`event1 | event2`,module_loaded:se,module_unloaded:ce,unsupported_game_version:de,local_player:J,started_queuing:le,stopped_queuing:ue,match_started:oe,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}).export();function Pe(){return{key:`siege`,events:Ne}}export{H as BaseEvent,ne as SIEGE_BOT_ID,T as SIEGE_DAMAGE_TEAM_TYPES,C as SIEGE_DAMAGE_TYPES,k as SIEGE_GAME_MODES_TO_ID,A as SIEGE_GAME_MODE_LABELS,h as SIEGE_GAME_MODE_PHASES,j as SIEGE_GAME_MODE_TYPES_TO_ID,M 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,re as SIEGE_OPERATOR_LABELS,P as SIEGE_OPERATOR_META,N as SIEGE_OPERATOR_TO_ID,x as SIEGE_PLAYER_LIFE_STATES,R as SIEGE_ROUND_STATES_TO_ID,z as SIEGE_ROUND_STATE_LABELS,y as SIEGE_SIDES,F as SIEGE_SIDE_OPERATORS,_ as SIEGE_TEAMS,V as SIEGE_TIME_OF_DAY_LABELS,B as SIEGE_TIME_OF_DAY_TO_ID,E as SiegeDamageTeamTypeSchema,w as SiegeDamageTypeSchema,p as SiegeGameMode,g as SiegeGameModePhaseSchema,a as SiegeGameModeTypeNameId,d as SiegeItemObjectId,s as SiegeMapNameId,l as SiegeMatchId,f as SiegeMatchType,o as SiegeOperatorNameId,u as SiegePlayerId,S as SiegePlayerLifeStateSchema,te as SiegeProfileId,c as SiegeRoundState,b as SiegeSideSchema,v as SiegeTeamSchema,m as SiegeTimeOfDay,K as isSiegeRoundStateCompleted,W as isSiegeRoundStateVictory,Pe as module};
|