@overlayed/app 0.27.1 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -319,22 +319,65 @@ declare class OverridesManager extends Manager {
319
319
  declare function module(): {
320
320
  readonly key: "universal";
321
321
  readonly events: arktype0.Module<{
322
- logged_in: {
323
- game: "siege";
322
+ event: {
323
+ game: "siege" | "tft";
324
324
  type: "logged_in";
325
325
  creation_time: number;
326
326
  content: {
327
327
  account_id: string;
328
328
  };
329
+ } | {
330
+ game: "siege" | "tft";
331
+ type: "module_loaded";
332
+ creation_time: number;
333
+ content: {
334
+ game_version: string;
335
+ process_hash: string;
336
+ };
337
+ } | {
338
+ game: "siege" | "tft";
339
+ type: "module_unloaded";
340
+ creation_time: number;
341
+ } | {
342
+ game: "siege" | "tft";
343
+ type: "unsupported_game_version";
344
+ creation_time: number;
345
+ content: {
346
+ game_version: string;
347
+ process_hash: string;
348
+ };
329
349
  };
330
- event: {
331
- game: "siege";
350
+ logged_in: {
351
+ game: "siege" | "tft";
332
352
  type: "logged_in";
333
353
  creation_time: number;
334
354
  content: {
335
355
  account_id: string;
336
356
  };
337
357
  };
358
+ module_loaded: {
359
+ game: "siege" | "tft";
360
+ type: "module_loaded";
361
+ creation_time: number;
362
+ content: {
363
+ game_version: string;
364
+ process_hash: string;
365
+ };
366
+ };
367
+ module_unloaded: {
368
+ game: "siege" | "tft";
369
+ type: "module_unloaded";
370
+ creation_time: number;
371
+ };
372
+ unsupported_game_version: {
373
+ game: "siege" | "tft";
374
+ type: "unsupported_game_version";
375
+ creation_time: number;
376
+ content: {
377
+ game_version: string;
378
+ process_hash: string;
379
+ };
380
+ };
338
381
  }>;
339
382
  };
340
383
  //#endregion
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import{createRequire as e}from"node:module";import{Type as t,scope as n,type as r}from"arktype";import i from"mitt";import a,{createWriteStream as o,existsSync as s,mkdirSync as c,readdirSync as l,unlinkSync as u,writeFileSync as d}from"fs";import{ensureFileSync as f}from"fs-extra";import{join as p}from"path";import m,{basename as ee,resolve as te}from"node:path";import h from"node:process";import*as g from"node:os";import ne from"node:os";import re from"node:tty";import ie from"events";import{copyFileSync as ae,createReadStream as oe,existsSync as se,mkdirSync as ce,readFileSync as le,readdirSync as ue,writeFileSync as de}from"node:fs";import"glob";import"jiti";import fe from"xior";import _ from"fs/promises";import pe from"jszip";import{createHash as me}from"node:crypto";import{app as he}from"electron";import*as ge from"node:fs/promises";import _e from"systeminformation";var ve=Object.create,ye=Object.defineProperty,be=Object.getOwnPropertyDescriptor,xe=Object.getOwnPropertyNames,Se=Object.getPrototypeOf,Ce=Object.prototype.hasOwnProperty,we=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Te=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=xe(t),a=0,o=i.length,s;a<o;a++)s=i[a],!Ce.call(e,s)&&s!==n&&ye(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=be(t,s))||r.enumerable});return e},Ee=(e,t,n)=>(n=e==null?{}:ve(Se(e)),Te(t||!e||!e.__esModule?ye(n,`default`,{value:e,enumerable:!0}):n,e));function v(e){return e?Array.isArray(e)?e:[e]:[]}var De=class{data=[];constructor(){}get size(){return this.data.length}add(e){this.data.push(e)}next(){return this.data.shift()}clear(){this.data.length=0}*flush(){for(;this.size>0;){let e=this.next();e&&(yield e)}}};const Oe=(e=0)=>t=>`\u001B[${t+e}m`,ke=(e=0)=>t=>`\u001B[${38+e};5;${t}m`,Ae=(e=0)=>(t,n,r)=>`\u001B[${38+e};2;${t};${n};${r}m`,y={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(y.modifier);const je=Object.keys(y.color),Me=Object.keys(y.bgColor);[...je,...Me];function Ne(){let e=new Map;for(let[t,n]of Object.entries(y)){for(let[t,r]of Object.entries(n))y[t]={open:`\u001B[${r[0]}m`,close:`\u001B[${r[1]}m`},n[t]=y[t],e.set(r[0],r[1]);Object.defineProperty(y,t,{value:n,enumerable:!1})}return Object.defineProperty(y,`codes`,{value:e,enumerable:!1}),y.color.close=`\x1B[39m`,y.bgColor.close=`\x1B[49m`,y.color.ansi=Oe(),y.color.ansi256=ke(),y.color.ansi16m=Ae(),y.bgColor.ansi=Oe(10),y.bgColor.ansi256=ke(10),y.bgColor.ansi16m=Ae(10),Object.defineProperties(y,{rgbToAnsi256:{value(e,t,n){return e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>y.rgbToAnsi256(...y.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>y.ansi256ToAnsi(y.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>y.ansi256ToAnsi(y.hexToAnsi256(e)),enumerable:!1}}),y}var b=Ne();function x(e,t=globalThis.Deno?globalThis.Deno.args:h.argv){let n=e.startsWith(`-`)?``:e.length===1?`-`:`--`,r=t.indexOf(n+e),i=t.indexOf(`--`);return r!==-1&&(i===-1||r<i)}const{env:S}=h;let C;x(`no-color`)||x(`no-colors`)||x(`color=false`)||x(`color=never`)?C=0:(x(`color`)||x(`colors`)||x(`color=true`)||x(`color=always`))&&(C=1);function Pe(){if(`FORCE_COLOR`in S)return S.FORCE_COLOR===`true`?1:S.FORCE_COLOR===`false`?0:S.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(S.FORCE_COLOR,10),3)}function Fe(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Ie(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=Pe();r!==void 0&&(C=r);let i=n?C:r;if(i===0)return 0;if(n){if(x(`color=16m`)||x(`color=full`)||x(`color=truecolor`))return 3;if(x(`color=256`))return 2}if(`TF_BUILD`in S&&`AGENT_NAME`in S)return 1;if(e&&!t&&i===void 0)return 0;let a=i||0;if(S.TERM===`dumb`)return a;if(h.platform===`win32`){let e=ne.release().split(`.`);return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if(`CI`in S)return[`GITHUB_ACTIONS`,`GITEA_ACTIONS`,`CIRCLECI`].some(e=>e in S)?3:[`TRAVIS`,`APPVEYOR`,`GITLAB_CI`,`BUILDKITE`,`DRONE`].some(e=>e in S)||S.CI_NAME===`codeship`?1:a;if(`TEAMCITY_VERSION`in S)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(S.TEAMCITY_VERSION)?1:0;if(S.COLORTERM===`truecolor`||S.TERM===`xterm-kitty`||S.TERM===`xterm-ghostty`||S.TERM===`wezterm`)return 3;if(`TERM_PROGRAM`in S){let e=Number.parseInt((S.TERM_PROGRAM_VERSION||``).split(`.`)[0],10);switch(S.TERM_PROGRAM){case`iTerm.app`:return e>=3?3:2;case`Apple_Terminal`:return 2}}return/-256(color)?$/i.test(S.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(S.TERM)||`COLORTERM`in S?1:a}function Le(e,t={}){return Fe(Ie(e,{streamIsTTY:e&&e.isTTY,...t}))}var Re={stdout:Le({isTTY:re.isatty(1)}),stderr:Le({isTTY:re.isatty(2)})};function ze(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,o=``;do o+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return o+=e.slice(a),o}function Be(e,t,n,r){let i=0,a=``;do{let o=e[r-1]===`\r`;a+=e.slice(i,o?r-1:r)+t+(o?`\r
2
2
  `:`
3
3
  `)+n,i=r+1,r=e.indexOf(`
4
- `,i)}while(r!==-1);return a+=e.slice(i),a}const{stdout:Ve,stderr:He}=Re,w=Symbol(`GENERATOR`),T=Symbol(`STYLER`),E=Symbol(`IS_EMPTY`),Ue=[`ansi`,`ansi`,`ansi256`,`ansi16m`],D=Object.create(null),We=(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=Ve?Ve.level:0;e.level=t.level===void 0?n:t.level},Ge=e=>{let t=(...e)=>e.join(` `);return We(t,e),Object.setPrototypeOf(t,O.prototype),t};function O(e){return Ge(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);for(let e of[`rgb`,`hex`,`ansi256`]){D[e]={get(){let{level:t}=this;return function(...n){let r=qe(k(e,Ue[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,Ue[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=ze(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
5
- `);return a!==-1&&(t=Be(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);const Ye=O();O({level:He?He.level:0});var j=Ye,M=class{emitter;constructor(){this.emitter=i()}on(e,t){v(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){v(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){v(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},Xe=class{listeners;constructor(){this.listeners=new Map}on(e,t){v(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){v(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=v(e).flatMap(e=>{let t=this.listeners.get(e)||new Set,n=this.listeners.get(`*`)||new Set;return[...Array.from(t),...Array.from(n)]});return n.length===0?[]:await Promise.all(n.map(async n=>{try{let e=n(...t);return e instanceof Promise?await e:e}catch(t){console.error(`Error in event listener for ${String(e)}:`,t);return}}))}removeAllListeners(){this.listeners.clear()}};function N(e,...t){return class extends e{static _instance;static getInstance(){return this._instance||=new e(...t),this._instance}static clearInstance(){this._instance=void 0}}}const P=N(class extends M{destroy(){this.removeAllListeners()}fatal(e,t,n){this.emit(`fatal`,{code:t,message:e,data:n,timestamp:Date.now()})}error(e,t,n){this.emit(`error`,{code:t,message:e,data:n,timestamp:Date.now()})}warn(e,t,n){this.emit(`warning`,{code:t,message:e,data:n,timestamp:Date.now()})}});var Ze=class{data;_schema;_defaultValue;_path;constructor(e){let{schema:t,default:n,path:r}=e;this._schema=t,this._defaultValue=n,this._path=r}set(e){let t=this._schema[`~standard`].validate(e);if(t instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);if(t.issues){this.reportInvalidConfigFile(t.issues);return}this.data=this.onBeforeSave(e),this.save(e)}get(){return this.data?this.data:this.load()}getKey(e){return this.get()[e]}save(e){let t=this.onBeforeSave(e);try{f(this.getFilePath()),a.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(){if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return this.data=e,e}try{let e=a.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=r(`string.json.parse`).to(`object`)(e);if(t instanceof r.errors)return this._defaultValue;let n=this._schema[`~standard`].validate(t);if(n instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return n.issues?this.migrate(t,this._defaultValue):this.migrate(n.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return a.accessSync(e,a.constants.R_OK|a.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return a.accessSync(e,a.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]);return n}reportInvalidConfigFile(e){P.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}};function Qe(e,t,n){return typeof e!=`object`||!e?String(e):e instanceof Error?JSON.stringify(e,Object.getOwnPropertyNames(e),n):e instanceof Map?JSON.stringify(Object.fromEntries(e.entries()),t,n):e instanceof Set?JSON.stringify(Array.from(e),t,n):JSON.stringify(e,t,n)}var $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;return{timestamp:n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getUTCMilliseconds().toString().padStart(3,`0`)}`,level:e,message:t.map(e=>Qe(e)).join(` `)}}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{c(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=p(this.logPath,this.getFileName(this.currentDate));if(!s(e))try{d(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return`${e.getUTCFullYear()}-${(e.getUTCMonth()+1).toString().padStart(2,`0`)}-${e.getUTCDate().toString().padStart(2,`0`)}`}createStream(){return o(p(this.logPath,this.getFileName(this.currentDate)),{flags:`a`,encoding:`utf8`})}async rotateLogs(){if(this.isRotating)return;this.isRotating=!0;let e=this.getDateString(new Date);e!==this.currentDate&&await new Promise(t=>{this.stream.end(()=>{this.currentDate=e,this.stream=this.createStream(),this.cleanupOldLogs(),t()})}),this.isRotating=!1}startRotationCheck(){return setInterval(()=>this.rotateLogs(),6e4)}cleanupOldLogs(){let e=l(this.logPath),t=new Date,n=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()-7));e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let[t,r,i]=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``).split(`-`).map(Number);return new Date(Date.UTC(t,r-1,i))<=n}).forEach(e=>{try{u(p(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}write(t,...n){let{timestamp:r,message:i}=e.getMessageElements(t,...n),a=`[${r}] [${t}] ${i}\n`;this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}};const F=()=>m.join(process.env.APPDATA??``,`overlayed`),et=()=>m.join(F(),`logs`),tt=e=>m.join(F(),`apps`,e),nt=e=>m.join(tt(e),`logs`),rt=()=>m.join(F(),`meta.json`);var it=class{fileLogger;path;appId;messageQueue=new De;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=new Map,i=new Set,a=new Set,o=[];for(let e=0;e<n;e++)o.push(e);let s=async n=>{let s=n*t,c=Math.min(s+t,this.blob.size),l=this.blob.slice(s,c);try{await e(l,n),a.add(n),this.emit(`chunkComplete`,n),i.delete(n)}catch(e){let t=r.get(n)||0;t<5?(r.set(n,t+1),await new Promise(e=>setTimeout(e,(t+1)*1e3)),o.push(n)):(a.add(n),this.emit(`error`,e),this.shouldStop=!0,i.delete(n))}},c=[],l=async()=>{for(;(o.length>0||i.size>0)&&!this.shouldStop;){if(o.length===0){await new Promise(e=>setTimeout(e,10));continue}let e=o.shift();a.has(e)||i.has(e)||(i.add(e),await s(e))}};for(let e=0;e<this.maxConcurrent;e++)c.push(l());await Promise.all(c)}};function 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=m.join(e,t.name);return t.isDirectory()?ct(n):[n]})}function lt(e){return e}const{PipeEventServer:ut,PipeEventClient:dt,PipeEventBase:ft,ProcessMonitor:pt,Process:mt,HardwareInterface:ht}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),gt=N(class extends M{server=null;_hasConnection=!1;pipeId;get hasConnection(){return this._hasConnection}constructor(e){super(),this.pipeId=e,this.init()}destroy(){this.server&&=(this._hasConnection=!1,this.server?.removeAllListeners(),null)}init(){this.server=new ut(this.pipeId,{clientCount:1,access:1}),this.server.on(`event`,e=>{try{let t=JSON.parse(e);this.emit(`data`,[t])}catch(e){this.emit(`error`,e)}}),this.server.on(`connected`,()=>{this._hasConnection=!0}),this.server.on(`disconnected`,()=>{this._hasConnection=!1})}},`stats-cc`),{RenderInterface:_t,renderHookPath:vt}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);let yt=function(e){return e[e.LeftButton=1]=`LeftButton`,e[e.RightButton=2]=`RightButton`,e[e.Cancel=3]=`Cancel`,e[e.MiddleButton=4]=`MiddleButton`,e[e.ExtraButton1=5]=`ExtraButton1`,e[e.ExtraButton2=6]=`ExtraButton2`,e[e.Back=8]=`Back`,e[e.Tab=9]=`Tab`,e[e.Clear=12]=`Clear`,e[e.Return=13]=`Return`,e[e.Shift=16]=`Shift`,e[e.Control=17]=`Control`,e[e.Menu=18]=`Menu`,e[e.Pause=19]=`Pause`,e[e.CapsLock=20]=`CapsLock`,e[e.Kana=21]=`Kana`,e[e.Hangeul=21]=`Hangeul`,e[e.Hangul=21]=`Hangul`,e[e.Junja=23]=`Junja`,e[e.Final=24]=`Final`,e[e.Hanja=25]=`Hanja`,e[e.Kanji=25]=`Kanji`,e[e.Escape=27]=`Escape`,e[e.Convert=28]=`Convert`,e[e.NonConvert=29]=`NonConvert`,e[e.Accept=30]=`Accept`,e[e.ModeChange=31]=`ModeChange`,e[e.Space=32]=`Space`,e[e.Prior=33]=`Prior`,e[e.Next=34]=`Next`,e[e.End=35]=`End`,e[e.Home=36]=`Home`,e[e.Left=37]=`Left`,e[e.Up=38]=`Up`,e[e.Right=39]=`Right`,e[e.Down=40]=`Down`,e[e.Select=41]=`Select`,e[e.Print=42]=`Print`,e[e.Execute=43]=`Execute`,e[e.Snapshot=44]=`Snapshot`,e[e.Insert=45]=`Insert`,e[e.Delete=46]=`Delete`,e[e.Help=47]=`Help`,e[e.N0=48]=`N0`,e[e.N1=49]=`N1`,e[e.N2=50]=`N2`,e[e.N3=51]=`N3`,e[e.N4=52]=`N4`,e[e.N5=53]=`N5`,e[e.N6=54]=`N6`,e[e.N7=55]=`N7`,e[e.N8=56]=`N8`,e[e.N9=57]=`N9`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.LeftWindows=91]=`LeftWindows`,e[e.RightWindows=92]=`RightWindows`,e[e.Application=93]=`Application`,e[e.Sleep=95]=`Sleep`,e[e.Numpad0=96]=`Numpad0`,e[e.Numpad1=97]=`Numpad1`,e[e.Numpad2=98]=`Numpad2`,e[e.Numpad3=99]=`Numpad3`,e[e.Numpad4=100]=`Numpad4`,e[e.Numpad5=101]=`Numpad5`,e[e.Numpad6=102]=`Numpad6`,e[e.Numpad7=103]=`Numpad7`,e[e.Numpad8=104]=`Numpad8`,e[e.Numpad9=105]=`Numpad9`,e[e.Multiply=106]=`Multiply`,e[e.Add=107]=`Add`,e[e.Separator=108]=`Separator`,e[e.Subtract=109]=`Subtract`,e[e.Decimal=110]=`Decimal`,e[e.Divide=111]=`Divide`,e[e.F1=112]=`F1`,e[e.F2=113]=`F2`,e[e.F3=114]=`F3`,e[e.F4=115]=`F4`,e[e.F5=116]=`F5`,e[e.F6=117]=`F6`,e[e.F7=118]=`F7`,e[e.F8=119]=`F8`,e[e.F9=120]=`F9`,e[e.F10=121]=`F10`,e[e.F11=122]=`F11`,e[e.F12=123]=`F12`,e[e.F13=124]=`F13`,e[e.F14=125]=`F14`,e[e.F15=126]=`F15`,e[e.F16=127]=`F16`,e[e.F17=128]=`F17`,e[e.F18=129]=`F18`,e[e.F19=130]=`F19`,e[e.F20=131]=`F20`,e[e.F21=132]=`F21`,e[e.F22=133]=`F22`,e[e.F23=134]=`F23`,e[e.F24=135]=`F24`,e[e.NumLock=144]=`NumLock`,e[e.ScrollLock=145]=`ScrollLock`,e[e.NEC_Equal=146]=`NEC_Equal`,e[e.Fujitsu_Jisho=146]=`Fujitsu_Jisho`,e[e.Fujitsu_Masshou=147]=`Fujitsu_Masshou`,e[e.Fujitsu_Touroku=148]=`Fujitsu_Touroku`,e[e.Fujitsu_Loya=149]=`Fujitsu_Loya`,e[e.Fujitsu_Roya=150]=`Fujitsu_Roya`,e[e.LeftShift=160]=`LeftShift`,e[e.RightShift=161]=`RightShift`,e[e.LeftControl=162]=`LeftControl`,e[e.RightControl=163]=`RightControl`,e[e.LeftMenu=164]=`LeftMenu`,e[e.RightMenu=165]=`RightMenu`,e[e.BrowserBack=166]=`BrowserBack`,e[e.BrowserForward=167]=`BrowserForward`,e[e.BrowserRefresh=168]=`BrowserRefresh`,e[e.BrowserStop=169]=`BrowserStop`,e[e.BrowserSearch=170]=`BrowserSearch`,e[e.BrowserFavorites=171]=`BrowserFavorites`,e[e.BrowserHome=172]=`BrowserHome`,e[e.VolumeMute=173]=`VolumeMute`,e[e.VolumeDown=174]=`VolumeDown`,e[e.VolumeUp=175]=`VolumeUp`,e[e.MediaNextTrack=176]=`MediaNextTrack`,e[e.MediaPrevTrack=177]=`MediaPrevTrack`,e[e.MediaStop=178]=`MediaStop`,e[e.MediaPlayPause=179]=`MediaPlayPause`,e[e.LaunchMail=180]=`LaunchMail`,e[e.LaunchMediaSelect=181]=`LaunchMediaSelect`,e[e.LaunchApplication1=182]=`LaunchApplication1`,e[e.LaunchApplication2=183]=`LaunchApplication2`,e[e.OEM1=186]=`OEM1`,e[e.OEMPlus=187]=`OEMPlus`,e[e.OEMComma=188]=`OEMComma`,e[e.OEMMinus=189]=`OEMMinus`,e[e.OEMPeriod=190]=`OEMPeriod`,e[e.OEM2=191]=`OEM2`,e[e.OEM3=192]=`OEM3`,e[e.OEM4=219]=`OEM4`,e[e.OEM5=220]=`OEM5`,e[e.OEM6=221]=`OEM6`,e[e.OEM7=222]=`OEM7`,e[e.OEM8=223]=`OEM8`,e[e.OEMAX=225]=`OEMAX`,e[e.OEM102=226]=`OEM102`,e[e.ICOHelp=227]=`ICOHelp`,e[e.ICO00=228]=`ICO00`,e[e.ProcessKey=229]=`ProcessKey`,e[e.ICOClear=230]=`ICOClear`,e[e.Packet=231]=`Packet`,e[e.OEMReset=233]=`OEMReset`,e[e.OEMJump=234]=`OEMJump`,e[e.OEMPA1=235]=`OEMPA1`,e[e.OEMPA2=236]=`OEMPA2`,e[e.OEMPA3=237]=`OEMPA3`,e[e.OEMWSCtrl=238]=`OEMWSCtrl`,e[e.OEMCUSel=239]=`OEMCUSel`,e[e.OEMATTN=240]=`OEMATTN`,e[e.OEMFinish=241]=`OEMFinish`,e[e.OEMCopy=242]=`OEMCopy`,e[e.OEMAuto=243]=`OEMAuto`,e[e.OEMENLW=244]=`OEMENLW`,e[e.OEMBackTab=245]=`OEMBackTab`,e[e.ATTN=246]=`ATTN`,e[e.CRSel=247]=`CRSel`,e[e.EXSel=248]=`EXSel`,e[e.EREOF=249]=`EREOF`,e[e.Play=250]=`Play`,e[e.Zoom=251]=`Zoom`,e[e.Noname=252]=`Noname`,e[e.PA1=253]=`PA1`,e[e.OEMClear=254]=`OEMClear`,e}({});const bt=r({game:`string`,type:`string`,creation_time:`number`}).and({game:`'siege'`}).and({type:`'logged_in'`,content:{account_id:`string`}}),xt=n({"#event1":`logged_in`,event:`event1`,logged_in:bt}).export(),St=Object.keys(xt).filter(e=>e!==`event`);function Ct(){return{key:`universal`,events:xt}}var wt=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}},L=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()}},Tt=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 R=fe.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let Et;function Dt(e){Et=e}R.interceptors.request.use(e=>{let t=Et?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const z=fe.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});z.interceptors.request.use(e=>(e.headers??={},e));function Ot(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 kt(e){return e}function At(e){return e?t=>(e(t),t):kt}const jt=At();function Mt(e){return z.get(`/v1/public/applications/${e}`)}function Nt(e,t,n){return R.get(`/v1/native/${Ft(e)}/version.txt`,{params:{channel:t},responseType:`text`,headers:{"X-App-Version":It(n,t)}})}function Pt(e,t,n){return R.get(`/v1/native/${Ft(e)}/files`,{params:{channel:t},responseType:`arraybuffer`,headers:{"X-App-Version":It(n,t)}})}function Ft(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function It(e,t){return`desktop-application/${e} (channel=${t})`}function Lt(){return z.get(`/v1/public/raven/config`)}function Rt(e,t){return z.get(`/v1/public/raven/games/${e}/builds/${t}`)}function zt(e,t){return z.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Bt(e,t){let n=new FormData;return n.append(`file`,t.chunk),z.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}function Vt(e){let t=Date.now(),n=Ot(e.messages.map(e=>Ht(t,e)),250),r=Promise.all(n.map(async t=>z.post(`/v1/public/cortex/events`,{...e,messages:t})));return r.catch(e=>{let t=e?.response?.data||e?.message||e;console.error(`Failed to submit cortex events`,t)}),r}function Ht(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 Ut(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Wt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Gt;function Kt(e){Gt=e}const B=N(class extends L{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=m.join(F(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await _.mkdir(this.targetDir,{recursive:!0}),await this.checkForUpdates(e),clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.checkForUpdates(e),this.UPDATE_CHECK_INTERVAL_MS)}destroy(){this.updateInterval&&=(clearInterval(this.updateInterval),void 0),super.destroy()}async getCurrentVersion(e){try{let t=m.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await _.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return m.join(this.targetDir,e)}getTargetVersionPath(e,t){return m.join(this.getTargetPath(e),t)}async checkForUpdates(e){let t=global.OVERLAYED.APP_BUILD_CHANNEL;if(this.logger.log(`Checking for updates`),!t){this.logger.error(`Invalid VITE_BUILD_CHANNEL`);return}await Gt?.();for(let n of e)try{let{data:e}=await Nt(n,t,global.OVERLAYED.APP_VERSION),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r,a=!1;if(!i){let t=this.getTargetVersionPath(n,e);await this.hasPathAccess(t)?(await _.readdir(t)).length===0&&(a=!0,this.logger.warn(`${n} > Version path exists, but no files. Forcing download.`)):(a=!0,this.logger.warn(`${n} > Version path does not exist. Forcing download.`))}i||a?(this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t),this.logger.log(`${n} > Downloaded and extracted`),await this.cleanupOldVersions(n,e),this.logger.log(`${n} > Cleaned up versions older than ${e}`),this.emit(`dllUpdated`,{identifier:n,version:e})):this.logger.log(`${n} > No update found`)}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n){this.logger.log(`${e} > Downloading DLLs for version ${t}`);let{data:r}=await Pt(e,n,global.OVERLAYED.APP_VERSION);this.logger.log(`${e} > Downloaded DLLs for version ${t}`);let i=this.getTargetPath(e),a=this.getTargetVersionPath(e,t);await _.mkdir(a,{recursive:!0});let o=new pe;await o.loadAsync(r);let s=Object.keys(o.files).map(async t=>{let n=o.files[t];if(n&&!n.dir){let r=m.join(a,t),i=await n.async(`nodebuffer`);await _.writeFile(r,i),this.logger.log(`${e} > Extracted DLL: ${t}`)}});await Promise.all(s);let c=m.join(i,`version.txt`);await _.writeFile(c,t),this.logger.log(`${e} > Saved version file: ${t}`)}async cleanupOldVersions(e,t){let n=m.join(this.targetDir,e),r=await _.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await _.rm(m.join(n,e.name),{recursive:!0,force:!0})}async hasPathAccess(e){try{return await _.access(e,_.constants.F_OK),!0}catch{return!1}}}),V=N(class extends L{REFETCH_INTERVAL=1e3*60*5;FAILED_REFETCH_INTERVAL=1e3*30;_ravenConfig;_executableToGameMap=new Map;_executablesArray=[];_refetchIntervalHandler=null;_failedRefetchTimeoutHandler=null;constructor(){super(`RavenManager`)}init(){super.init(),this.fetchRavenConfig(),this._refetchIntervalHandler=setInterval(()=>{this._failedRefetchTimeoutHandler&&=(clearTimeout(this._failedRefetchTimeoutHandler),null),this.fetchRavenConfig()},this.REFETCH_INTERVAL)}getExecutableData(e){return this._executableToGameMap.get(e.toLowerCase())??null}get executables(){return this._executablesArray}get executablesMap(){return this._executableToGameMap}destroy(){this._refetchIntervalHandler&&clearInterval(this._refetchIntervalHandler),this._failedRefetchTimeoutHandler&&clearTimeout(this._failedRefetchTimeoutHandler),B.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{this._ravenConfig={games:(await Lt()).data.games},this.resetState();let e=new Set;for(let t of this._ravenConfig.games){for(let e of t.executables){let n=e.toLowerCase();this._executableToGameMap.set(n,t),this._executablesArray.push(n)}t.modules.forEach(t=>e.add(t))}await B.getInstance().initWithDlls(Array.from(e)),this.logger.log(`Raven updated, monitoring ${this._executableToGameMap.size} executables`),this.emit(`executablesUpdated`,{executables:this.executables,map:this._executableToGameMap})}catch(e){this.logger.error(`Failed to fetch Raven config`,e),this._failedRefetchTimeoutHandler=setTimeout(()=>this.fetchRavenConfig(),this.FAILED_REFETCH_INTERVAL)}}resetState(){this._executableToGameMap.clear(),this._executablesArray=[]}}),{PipeEventServer:qt,PipeEventClient:Jt,PipeEventBase:Yt,ProcessMonitor:Xt,Process:Zt,HardwareInterface:Qt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),H=N(class extends L{_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(),V.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(){V.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){return this._processes.get(e)?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){this.logger.log(`Monitoring ${e.executables.length} processes`),e.executables.forEach(e=>{this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name)?.filter(t=>t.id!==e.id)??[];t.length===0?this._processes.delete(e.name):this._processes.set(e.name,t)}});var $t=class{_instance;_resolution;boundOnResolutionChanged=this.onResolutionChanged.bind(this);constructor(e){this._instance=e,this._resolution={width:0,height:0},this._instance.on(`resolution`,this.boundOnResolutionChanged)}destroy(){this._instance.off(`resolution`,this.boundOnResolutionChanged)}get instance(){return this._instance}get resolution(){return this._resolution}onResolutionChanged(e,t){this._resolution={width:e,height:t}}};const U=N(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new $t(new _t(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),W=N(class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new De,this.setupFlushInterval()}track(e,t){this.eventQueue.add({type:e,properties:t,created_at:new Date})}flush(){let e=Array.from(this.eventQueue.flush()).concat({type:`ping`,properties:{},created_at:new Date});if(!this.meta)throw Error(`Tried to flush Cortex events before meta was set`);try{Vt({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}});function en(e=[]){return m.normalize(m.join(tt(global.OVERLAYED.APPLICATION_ID),...e))}const tn=r({game:`string`,type:`string`,creation_time:`number`}),G=new Ze({path:rt(),schema:r({userId:`string | undefined`,sessionId:`string | undefined`,sessionLastUsed:`number | undefined`,"debug?":{"ri_disabled?":`boolean`,"gm_disabled?":`boolean`}}),default:{userId:void 0,sessionId:void 0,sessionLastUsed:void 0}});function nn(){let{debug:e}=G.get();return e?{ri_disabled:e.ri_disabled??!1,gm_disabled:e.gm_disabled??!1}:{ri_disabled:!1,gm_disabled:!1}}function rn(){let e=G.get().userId;if(e)return e;let t=sn();return G.set({...G.get(),userId:t}),t}function an(){let e=G.get();if(e.sessionId&&typeof e.sessionLastUsed==`number`&&Date.now()-e.sessionLastUsed<=300*1e3)return e.sessionId;let t=crypto.randomUUID();return G.set({...e,sessionId:t,sessionLastUsed:Date.now()}),t}function on(){try{let e=G.get();G.set({...e,sessionLastUsed:Date.now()})}catch(e){I.getInstance().log(`Failed to update sessionLastUsed`,e)}}function sn(){try{return Qt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}const cn=e(import.meta.url).resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),K=N(class extends Tt{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(),U.getInstance().createInterface(`OGG_SIEGE`),H.getInstance().on(`create`,this.boundOnProcessCreate),H.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){H.getInstance().off(`create`,this.boundOnProcessCreate),H.getInstance().off(`destroy`,this.boundOnProcessDestroy),super.destroy()}on(e,t){super.on(e,t);let n=v(e);if(!(n.includes(`gameReady`)||n.includes(`*`))||this._activeReadyRavenGames.size===0)return;let r=t;for(let e of this._activeReadyRavenGames)this.logger.log(`Late calling gameReady callback for game`,e),r({game:e})}async onProcessCreate({process:e}){let t=this.getRavenGame(e);if(!t)return;if(this.subscribedGames.size===0){this.logger.warn(`No subscribed games, skipping`);return}if(W.getInstance().track(`game_launch`,{game:t.identifier}),!this.subscribedGames.has(t.identifier)&&!this.subscribedGames.has(`*`))return;let n=new AbortController;if(await this.emit(`gameLaunch`,{game:t.identifier,reject:()=>n.abort()}),n.signal.aborted)return;let r=Zt.currentProcess;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,r.isElevated),e.isElevated&&!r.isElevated){P.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!r.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:r.isElevated,gameElevated:e.isElevated});return}let i=this.copyDll(cn),a=nn();if(a.ri_disabled&&this.logger.log(`Skipping render interface injection due to meta debug`,{renderInterfacePath:i}),i&&!a.ri_disabled)try{await e.injectDll(i),this.logger.log(`Render Interface Injection Successful`,i)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:i})}let o=t?.modules.map(async t=>{let n=await B.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=B.getInstance().getTargetVersionPath(t,n);this.logger.log(`DLL Path`,r);let i=await this.getDllFiles(r);return this.logger.log(`DLL Files`,i),Promise.all(i.map(async t=>{let n=m.basename(t),i=m.join(r,n);if(!i)return Promise.resolve();if(a.gm_disabled)return this.logger.log(`Skipping injection due to meta debug`,{targetPath:i}),Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(o),this._activeReadyRavenGames.add(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),this.logger.log(`Game Ready`),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,{game:t.identifier}),W.getInstance().track(`game_ready`,{game:t.identifier})}copyDll(e){let t=m.basename(e),n=te(e),r=m.join(F(),`resources`),i=m.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{se(r)||ce(r,{recursive:!0}),de(i,le(n)),ae(n,i)}catch(e){return e.code===`EBUSY`?i:(this.logger.error(`Failed to copy`,e),this.logger.error(`Failed to copy`,{originalPath:n,targetPath:i}),!1)}return i}async getDllFiles(e){try{return(await _.readdir(e)).filter(e=>e.endsWith(`.dll`)).map(t=>m.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this._activeReadyRavenGames.delete(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),this.emit(`gameCloseInternal`,{ravenGame:t,process:e}),this.emit(`gameClose`,{game:t.identifier}),W.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=V.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}}),ln=N(class extends wt{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),K.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){K.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=le(n.path),i=me(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{a=(await Rt(t.identifier,i)).data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new pe;o.file(n.name,r);let s=await o.generateAsync({type:`blob`});try{this.logger.log(`Uploading build (size: `,s.size,` bytes)`);let e=new at(s,{chunkSizeMb:25,maxConcurrent:1}),n=await zt(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 Bt(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Ut(e)?Wt(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}});function q(e,t){return`${e}:${t}`}function un(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=q(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=q(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=q(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=q(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function dn(){let e=P.getInstance(),t=K.getInstance();return{on:(n,r)=>{switch(n){case`fatal`:e.on(`fatal`,r);break;case`error`:e.on(`error`,r);break;case`warning`:e.on(`warning`,r);break;case`gameLaunch`:t.on(`gameLaunch`,r);break;case`gameClose`:t.on(`gameClose`,r);break;case`gameReady`:t.on(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}},off:(n,r)=>{switch(n){case`fatal`:e.off(`fatal`,r);break;case`error`:e.off(`error`,r);break;case`warning`:e.off(`warning`,r);break;case`gameLaunch`:t.off(`gameLaunch`,r);break;case`gameClose`:t.off(`gameClose`,r);break;case`gameReady`:t.off(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}}}}var J=function(e){return e[e.LeftButton=1]=`LeftButton`,e[e.RightButton=2]=`RightButton`,e[e.Cancel=3]=`Cancel`,e[e.MiddleButton=4]=`MiddleButton`,e[e.ExtraButton1=5]=`ExtraButton1`,e[e.ExtraButton2=6]=`ExtraButton2`,e[e.Back=8]=`Back`,e[e.Tab=9]=`Tab`,e[e.Clear=12]=`Clear`,e[e.Return=13]=`Return`,e[e.Shift=16]=`Shift`,e[e.Control=17]=`Control`,e[e.Menu=18]=`Menu`,e[e.Pause=19]=`Pause`,e[e.CapsLock=20]=`CapsLock`,e[e.Kana=21]=`Kana`,e[e.Hangeul=21]=`Hangeul`,e[e.Hangul=21]=`Hangul`,e[e.Junja=23]=`Junja`,e[e.Final=24]=`Final`,e[e.Hanja=25]=`Hanja`,e[e.Kanji=25]=`Kanji`,e[e.Escape=27]=`Escape`,e[e.Convert=28]=`Convert`,e[e.NonConvert=29]=`NonConvert`,e[e.Accept=30]=`Accept`,e[e.ModeChange=31]=`ModeChange`,e[e.Space=32]=`Space`,e[e.Prior=33]=`Prior`,e[e.Next=34]=`Next`,e[e.End=35]=`End`,e[e.Home=36]=`Home`,e[e.Left=37]=`Left`,e[e.Up=38]=`Up`,e[e.Right=39]=`Right`,e[e.Down=40]=`Down`,e[e.Select=41]=`Select`,e[e.Print=42]=`Print`,e[e.Execute=43]=`Execute`,e[e.Snapshot=44]=`Snapshot`,e[e.Insert=45]=`Insert`,e[e.Delete=46]=`Delete`,e[e.Help=47]=`Help`,e[e.N0=48]=`N0`,e[e.N1=49]=`N1`,e[e.N2=50]=`N2`,e[e.N3=51]=`N3`,e[e.N4=52]=`N4`,e[e.N5=53]=`N5`,e[e.N6=54]=`N6`,e[e.N7=55]=`N7`,e[e.N8=56]=`N8`,e[e.N9=57]=`N9`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.LeftWindows=91]=`LeftWindows`,e[e.RightWindows=92]=`RightWindows`,e[e.Application=93]=`Application`,e[e.Sleep=95]=`Sleep`,e[e.Numpad0=96]=`Numpad0`,e[e.Numpad1=97]=`Numpad1`,e[e.Numpad2=98]=`Numpad2`,e[e.Numpad3=99]=`Numpad3`,e[e.Numpad4=100]=`Numpad4`,e[e.Numpad5=101]=`Numpad5`,e[e.Numpad6=102]=`Numpad6`,e[e.Numpad7=103]=`Numpad7`,e[e.Numpad8=104]=`Numpad8`,e[e.Numpad9=105]=`Numpad9`,e[e.Multiply=106]=`Multiply`,e[e.Add=107]=`Add`,e[e.Separator=108]=`Separator`,e[e.Subtract=109]=`Subtract`,e[e.Decimal=110]=`Decimal`,e[e.Divide=111]=`Divide`,e[e.F1=112]=`F1`,e[e.F2=113]=`F2`,e[e.F3=114]=`F3`,e[e.F4=115]=`F4`,e[e.F5=116]=`F5`,e[e.F6=117]=`F6`,e[e.F7=118]=`F7`,e[e.F8=119]=`F8`,e[e.F9=120]=`F9`,e[e.F10=121]=`F10`,e[e.F11=122]=`F11`,e[e.F12=123]=`F12`,e[e.F13=124]=`F13`,e[e.F14=125]=`F14`,e[e.F15=126]=`F15`,e[e.F16=127]=`F16`,e[e.F17=128]=`F17`,e[e.F18=129]=`F18`,e[e.F19=130]=`F19`,e[e.F20=131]=`F20`,e[e.F21=132]=`F21`,e[e.F22=133]=`F22`,e[e.F23=134]=`F23`,e[e.F24=135]=`F24`,e[e.NumLock=144]=`NumLock`,e[e.ScrollLock=145]=`ScrollLock`,e[e.NEC_Equal=146]=`NEC_Equal`,e[e.Fujitsu_Jisho=146]=`Fujitsu_Jisho`,e[e.Fujitsu_Masshou=147]=`Fujitsu_Masshou`,e[e.Fujitsu_Touroku=148]=`Fujitsu_Touroku`,e[e.Fujitsu_Loya=149]=`Fujitsu_Loya`,e[e.Fujitsu_Roya=150]=`Fujitsu_Roya`,e[e.LeftShift=160]=`LeftShift`,e[e.RightShift=161]=`RightShift`,e[e.LeftControl=162]=`LeftControl`,e[e.RightControl=163]=`RightControl`,e[e.LeftMenu=164]=`LeftMenu`,e[e.RightMenu=165]=`RightMenu`,e[e.BrowserBack=166]=`BrowserBack`,e[e.BrowserForward=167]=`BrowserForward`,e[e.BrowserRefresh=168]=`BrowserRefresh`,e[e.BrowserStop=169]=`BrowserStop`,e[e.BrowserSearch=170]=`BrowserSearch`,e[e.BrowserFavorites=171]=`BrowserFavorites`,e[e.BrowserHome=172]=`BrowserHome`,e[e.VolumeMute=173]=`VolumeMute`,e[e.VolumeDown=174]=`VolumeDown`,e[e.VolumeUp=175]=`VolumeUp`,e[e.MediaNextTrack=176]=`MediaNextTrack`,e[e.MediaPrevTrack=177]=`MediaPrevTrack`,e[e.MediaStop=178]=`MediaStop`,e[e.MediaPlayPause=179]=`MediaPlayPause`,e[e.LaunchMail=180]=`LaunchMail`,e[e.LaunchMediaSelect=181]=`LaunchMediaSelect`,e[e.LaunchApplication1=182]=`LaunchApplication1`,e[e.LaunchApplication2=183]=`LaunchApplication2`,e[e.OEM1=186]=`OEM1`,e[e.OEMPlus=187]=`OEMPlus`,e[e.OEMComma=188]=`OEMComma`,e[e.OEMMinus=189]=`OEMMinus`,e[e.OEMPeriod=190]=`OEMPeriod`,e[e.OEM2=191]=`OEM2`,e[e.OEM3=192]=`OEM3`,e[e.OEM4=219]=`OEM4`,e[e.OEM5=220]=`OEM5`,e[e.OEM6=221]=`OEM6`,e[e.OEM7=222]=`OEM7`,e[e.OEM8=223]=`OEM8`,e[e.OEMAX=225]=`OEMAX`,e[e.OEM102=226]=`OEM102`,e[e.ICOHelp=227]=`ICOHelp`,e[e.ICO00=228]=`ICO00`,e[e.ProcessKey=229]=`ProcessKey`,e[e.ICOClear=230]=`ICOClear`,e[e.Packet=231]=`Packet`,e[e.OEMReset=233]=`OEMReset`,e[e.OEMJump=234]=`OEMJump`,e[e.OEMPA1=235]=`OEMPA1`,e[e.OEMPA2=236]=`OEMPA2`,e[e.OEMPA3=237]=`OEMPA3`,e[e.OEMWSCtrl=238]=`OEMWSCtrl`,e[e.OEMCUSel=239]=`OEMCUSel`,e[e.OEMATTN=240]=`OEMATTN`,e[e.OEMFinish=241]=`OEMFinish`,e[e.OEMCopy=242]=`OEMCopy`,e[e.OEMAuto=243]=`OEMAuto`,e[e.OEMENLW=244]=`OEMENLW`,e[e.OEMBackTab=245]=`OEMBackTab`,e[e.ATTN=246]=`ATTN`,e[e.CRSel=247]=`CRSel`,e[e.EXSel=248]=`EXSel`,e[e.EREOF=249]=`EREOF`,e[e.Play=250]=`Play`,e[e.Zoom=251]=`Zoom`,e[e.Noname=252]=`Noname`,e[e.PA1=253]=`PA1`,e[e.OEMClear=254]=`OEMClear`,e}(J||{});const Y=new Map([[J.LeftButton,`LeftButton`],[J.RightButton,`RightButton`],[J.Cancel,`Cancel`],[J.MiddleButton,`MiddleButton`],[J.ExtraButton1,`ExtraButton1`],[J.ExtraButton2,`ExtraButton2`],[J.Back,`Backspace`],[J.Tab,`Tab`],[J.Clear,`Clear`],[J.Return,`Enter`],[J.Shift,`ShiftLeft`],[J.Control,`ControlLeft`],[J.Menu,`AltLeft`],[J.Pause,`Pause`],[J.CapsLock,`CapsLock`],[J.Kana,`KanaMode`],[J.Junja,`JunjaMode`],[J.Final,`Finalize`],[J.Hanja,`HanjaMode`],[J.Escape,`Escape`],[J.Convert,`Convert`],[J.NonConvert,`NonConvert`],[J.Accept,`Accept`],[J.ModeChange,`ModeChange`],[J.Space,`Space`],[J.Prior,`PageUp`],[J.Next,`PageDown`],[J.End,`End`],[J.Home,`Home`],[J.Left,`ArrowLeft`],[J.Up,`ArrowUp`],[J.Right,`ArrowRight`],[J.Down,`ArrowDown`],[J.Select,`Select`],[J.Print,`PrintScreen`],[J.Execute,`Execute`],[J.Snapshot,`Snapshot`],[J.Insert,`Insert`],[J.Delete,`Delete`],[J.Help,`Help`],[J.N0,`Digit0`],[J.N1,`Digit1`],[J.N2,`Digit2`],[J.N3,`Digit3`],[J.N4,`Digit4`],[J.N5,`Digit5`],[J.N6,`Digit6`],[J.N7,`Digit7`],[J.N8,`Digit8`],[J.N9,`Digit9`],[J.A,`KeyA`],[J.B,`KeyB`],[J.C,`KeyC`],[J.D,`KeyD`],[J.E,`KeyE`],[J.F,`KeyF`],[J.G,`KeyG`],[J.H,`KeyH`],[J.I,`KeyI`],[J.J,`KeyJ`],[J.K,`KeyK`],[J.L,`KeyL`],[J.M,`KeyM`],[J.N,`KeyN`],[J.O,`KeyO`],[J.P,`KeyP`],[J.Q,`KeyQ`],[J.R,`KeyR`],[J.S,`KeyS`],[J.T,`KeyT`],[J.U,`KeyU`],[J.V,`KeyV`],[J.W,`KeyW`],[J.X,`KeyX`],[J.Y,`KeyY`],[J.Z,`KeyZ`],[J.LeftWindows,`MetaLeft`],[J.RightWindows,`MetaRight`],[J.Application,`ContextMenu`],[J.Sleep,`Sleep`],[J.Numpad0,`Numpad0`],[J.Numpad1,`Numpad1`],[J.Numpad2,`Numpad2`],[J.Numpad3,`Numpad3`],[J.Numpad4,`Numpad4`],[J.Numpad5,`Numpad5`],[J.Numpad6,`Numpad6`],[J.Numpad7,`Numpad7`],[J.Numpad8,`Numpad8`],[J.Numpad9,`Numpad9`],[J.Multiply,`NumpadMultiply`],[J.Add,`NumpadAdd`],[J.Separator,`NumpadSeparator`],[J.Subtract,`NumpadSubtract`],[J.Decimal,`NumpadDecimal`],[J.Divide,`NumpadDivide`],[J.F1,`F1`],[J.F2,`F2`],[J.F3,`F3`],[J.F4,`F4`],[J.F5,`F5`],[J.F6,`F6`],[J.F7,`F7`],[J.F8,`F8`],[J.F9,`F9`],[J.F10,`F10`],[J.F11,`F11`],[J.F12,`F12`],[J.F13,`F13`],[J.F14,`F14`],[J.F15,`F15`],[J.F16,`F16`],[J.F17,`F17`],[J.F18,`F18`],[J.F19,`F19`],[J.F20,`F20`],[J.F21,`F21`],[J.F22,`F22`],[J.F23,`F23`],[J.F24,`F24`],[J.NumLock,`NumLock`],[J.ScrollLock,`ScrollLock`],[J.NEC_Equal,`NEC_Equal`],[J.Fujitsu_Masshou,`Fujitsu_Masshou`],[J.Fujitsu_Touroku,`Fujitsu_Touroku`],[J.Fujitsu_Loya,`Fujitsu_Loya`],[J.Fujitsu_Roya,`Fujitsu_Roya`],[J.LeftShift,`ShiftLeft`],[J.RightShift,`ShiftRight`],[J.LeftControl,`ControlLeft`],[J.RightControl,`ControlRight`],[J.LeftMenu,`AltLeft`],[J.RightMenu,`AltRight`],[J.BrowserBack,`BrowserBack`],[J.BrowserForward,`BrowserForward`],[J.BrowserRefresh,`BrowserRefresh`],[J.BrowserStop,`BrowserStop`],[J.BrowserSearch,`BrowserSearch`],[J.BrowserFavorites,`BrowserFavorites`],[J.BrowserHome,`BrowserHome`],[J.VolumeMute,`VolumeMute`],[J.VolumeDown,`VolumeDown`],[J.VolumeUp,`VolumeUp`],[J.MediaNextTrack,`MediaTrackNext`],[J.MediaPrevTrack,`MediaTrackPrevious`],[J.MediaStop,`MediaStop`],[J.MediaPlayPause,`MediaPlayPause`],[J.LaunchMail,`LaunchMail`],[J.LaunchMediaSelect,`LaunchMediaSelect`],[J.LaunchApplication1,`LaunchApplication1`],[J.LaunchApplication2,`LaunchApplication2`],[J.OEM1,`OEM_1`],[J.OEMPlus,`Equal`],[J.OEMComma,`Comma`],[J.OEMMinus,`Minus`],[J.OEMPeriod,`Period`],[J.OEM2,`Slash`],[J.OEM3,`Backquote`],[J.OEM4,`BracketLeft`],[J.OEM5,`Backslash`],[J.OEM6,`BracketRight`],[J.OEM7,`Quote`],[J.OEM8,`IntlRo`],[J.OEMAX,`OEM_AX`],[J.OEM102,`IntlBackslash`],[J.ICOHelp,`ICO_HELP`],[J.ICO00,`ICO_00`],[J.ProcessKey,`Process`],[J.ICOClear,`ICO_CLEAR`],[J.Packet,`Packet`],[J.OEMReset,`OEM_Reset`],[J.OEMJump,`OEM_Jump`],[J.OEMPA1,`OEM_PA1`],[J.OEMPA2,`OEM_PA2`],[J.OEMPA3,`OEM_PA3`],[J.OEMWSCtrl,`OEM_WS_Ctrl`],[J.OEMCUSel,`OEM_CU_Sel`],[J.OEMATTN,`OEM_ATTN`],[J.OEMFinish,`OEM_Finish`],[J.OEMCopy,`OEM_Copy`],[J.OEMAuto,`OEM_Auto`],[J.OEMENLW,`OEM_ENLW`],[J.OEMBackTab,`BackTab`],[J.ATTN,`ATTN`],[J.CRSel,`CRSel`],[J.EXSel,`EXSel`],[J.EREOF,`EREOF`],[J.Play,`MediaPlay`],[J.Zoom,`Zoom`],[J.Noname,`Noname`],[J.PA1,`PA1`],[J.OEMClear,`OEM_Clear`]]),fn=new Map(Y.entries().map(([e,t])=>[t,e])),pn=r({"[string]":{keys:`string[]`,mode:r(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var mn=class extends L{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 Ze({path:en([`keybinds.json`]),schema:pn,default:e})}init(){super.init();let e=U.getInstance().getInterface(`OGG_SIEGE`);e.instance.on(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.on(`keyDown`,this.boundHandleKeyDown),e.instance.on(`keyUp`,this.boundHandleKeyUp)}async onKeybindToggled(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.toggle.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.down.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.up.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async updateKeybind(e,t){this.keybindsFile.set({[e]:t})}async updateKeybinds(e){let t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0));this.keybindsFile.set({...this.keybindsFile.get(),...t})}getConfig(){return this.keybindsFile.get()}destroy(){let e=U.getInstance().getInterface(`OGG_SIEGE`);e.instance.off(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.off(`keyDown`,this.boundHandleKeyDown),e.instance.off(`keyUp`,this.boundHandleKeyUp),super.destroy()}handleKeyDown(e){if(this.keybindListeningPaused)return;let t=Y.get(e.key);if(!t){this.logger.error(`Unknown key down`,e);return}this.pressedKeys.add(t),this.checkKeybindings()}handleKeyboardFocus(){this.pressedKeys.clear(),this.activeKeybinds.clear(),this.triggeredToggleKeybinds.clear()}async handleKeyUp(e){if(this.keybindListeningPaused)return;let t=Y.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries())n[e].keys.includes(t)&&this.triggeredToggleKeybinds.delete(e);this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up||n.up.length===0)continue;let r=e[t];if(this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))){this.activeKeybinds.delete(t);for(let e of n.up)e();this.logger.log(`Keybind up triggered`,this.getKeybindToString(r))}}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];if(r.keys.length===this.pressedKeys.size&&r.keys.every(e=>fn.has(e)?this.pressedKeys.has(e):!1)){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];r.keys.every(e=>fn.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1))&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&t.toggle.length>0&&!this.triggeredToggleKeybinds.has(n)){let r;for(let e of t.toggle){let t=e();typeof t==`string`&&r===void 0&&(r=t)}this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&t.down.length>0&&!this.activeKeybinds.has(n)){let r;for(let e of t.down){let t=e();if(typeof t==`string`){r=t;break}}r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}};function hn(e){let t=new mn(e),n={};for(let r in e)n[r]={on:(e,n)=>{switch(e){case`down`:t.onKeybindDown(r,n);break;case`up`:t.onKeybindUp(r,n);break;case`toggle`:t.onKeybindToggled(r,n);break;default:throw Error(`Event type not implemented ${e}`,{cause:[e,n]})}}};let r={...n,getConfig:()=>t.getConfig(),pauseKeybindListening:()=>{t.keybindListeningPaused=!0},resumeKeybindListening:()=>{t.keybindListeningPaused=!1},updateKeybind:(e,n)=>{t.updateKeybind(e,n)},updateKeybinds:e=>{t.updateKeybinds(e)}};return t.init(),he.on(`quit`,()=>{t.destroy()}),r}function X(){return U.getInstance().getInterface(`OGG_SIEGE`)}function gn(){let e=K.getInstance(),t=P.getInstance(),n=W.getInstance();n.meta=_n(),e.on([`gameReady`,`gameClose`],()=>{n.meta||=_n(),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 _n(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:rn(),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 vn(){function e(e,t){return e.once(`closed`,()=>{e.isDestroyed()||W.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||W.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),W.getInstance().track(`window_created`,{url:e.webContents.getURL(),in_game:t}),e}return{createWindow:t=>e(new global.OVERLAYED.electron.BrowserWindow(t),!1),createInGameWindow:t=>e(X().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>X().instance.on(e,t),off:(e,t)=>X().instance.off(e,t),once:(e,t)=>X().instance.once(e,t),addListener:(e,t)=>X().instance.addListener(e,t),removeListener:(e,t)=>X().instance.removeListener(e,t),removeAllListeners:()=>X().instance.removeAllListeners(),prependListener:(e,t)=>X().instance.prependListener(e,t),prependOnceListener:(e,t)=>X().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=X(),t=gt.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const yn=N(class extends wt{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=U.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}},`OGG_SIEGE`);function bn(){return{scope:e=>yn.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>X().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>X().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>X().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>X().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>X().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>X().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>X().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>X().instance.getKeyInputBlock(e)}}}function xn(){return{track:(e,t)=>{W.getInstance().track(`custom__${String(e)}`,t)}}}var Sn=Ee(we(((e,t)=>{var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e,t)=>{var n=new Set([`mouseDown`,`mouseUp`,`pointerDown`,`pointerUp`]),r=new WeakSet;function i(e,t,{allowHosts:i}={}){let{shell:a}=t;if(r.has(e))return;r.add(e);let o=e.webContents;function s(e){return!!(!c(e)||i?.includes(e.host))}function c(e){return new URL(o.getURL()).origin!==e.origin}let l=0;function u(){l=Date.now()}function d(){let e=Date.now()-l,t=e<150;return t||console.warn(`was not recently active`,e),t}if(process.platform===`win32`)for(let t of Object.values({KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576}))e.hookWindowMessage(t,u);o.on(`input-event`,(e,t)=>{n.has(t.type)&&u()}),o.on(`will-navigate`,(e,t)=>{let n=e.url||t;if(console.log(`will-navigate`,n),!n)return;let r=new URL(n);if(!s(r)){if(!d()){console.log(`blocked navigation`,n),e.preventDefault();return}c(r)&&(console.log(`external navigation`,n),e.preventDefault(),a.openExternal(n))}}),o.session.on(`will-download`,(e,t)=>{let n=t.getURL();/^blob:/.test(n)||e.preventDefault()}),o.setWindowOpenHandler(e=>{console.log(`window-open`,e.url);let{url:t}=e,n=new URL(t);if(!s(n))return d()?(c(n)&&a.openExternal(e.url),{action:`deny`}):(console.log(`blocked navigation`,t),{action:`deny`})})}t.exports=i}),i=n((e,t)=>{var n=new Set([`Mozilla`,`AppleWebKit`,`Chrome`,`Safari`,`Gecko`,`Firefox`,`OPR`,`Edg`,`Version`,`Mobile`,`curl`,`PostmanRuntime`]);async function r(e,t,r){let{webContents:i}=e,a=await i.executeJavaScript(`navigator.userAgent`);a=a.match(/[^\/]+\/[^\s]+( \([^\)]+\))?/g).map(e=>e.trim()).filter(e=>{let[t]=e.split(`/`,1);return n.has(t)}).join(` `),i.setUserAgent(a),t.app.userAgentFallback=a}t.exports=r}),a=r(),o=i();function s(e,t,n={}){a(e,t,n.linkHandler),o(e,t,n.userAgent)}t.exports={setupRevUtils:s,setupLinkHandler:a,setUserAgent:o}}))(),1);function Cn(){return{registerWindow:e=>{(0,Sn.setupRevUtils)(e,global.OVERLAYED.electron)}}}function wn(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 pe;return[...n,...i].forEach(([e,t])=>{I.getInstance().info(`Zipping: `,t);let n=oe(t),r=ee(t);a.file(r,n,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{I.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function Tn(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 En(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)=>{W.getInstance().track(`bug_report_submitted`,{version:e.version,category:e.category}),await Tn(e,await wn(t).generateAsync({type:`base64`}))}}}const Dn=1e3;function On(e,t,n,i,a){let o=gt.getInstance(),s=I.getInstance().scope(`SetupPipeServer`);s.log(`Initializing`);function c(e,t){let r=n.get(t);if(!r)n.set(t,[e]);else{if(r.length>=Dn){P.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${r.length}, max: ${Dn}`});return}r.push(e)}}function l(n){s.info(n);let i=tn(n);if(i instanceof r.errors){W.getInstance().track(`invalid_game_event`,{}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=St.includes(i.type),l=e.modules.find(e=>e.key===`universal`),u=o?l:e.modules.find(e=>e.key===i.game);if(!u){s.warn(`Invalid module`,{module:o?`universal`:i.game});return}let d=u.events.event,f=d(n);if(f instanceof r.errors){if(`type`in f.byPath)return;s.warn(`Invalid event`,{summary:f.summary}),W.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type,summary:f.summary}),P.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:f.summary});return}if(!a[u.key]){s.info(`${u.key}: Storing event - ${f.type}`),c(f,u.key);return}if(f.type===`unsupported_game_version`){let{content:e}=f;W.getInstance().track(`unsupported_game_version`,{game:f.game,hash:e?.hash,version:e?.version})}let p=q(u.key,f.type),m=q(u.key,`*`),ee=t.get(p),te=t.get(m),h=[...Array.from(ee??[]),...Array.from(te??[])];if(h.length===0){s.info(`No handlers found for event`,{event:f});return}h.forEach(e=>{s.info(`Calling handler`),e(f)})}return i.on(`flushEvents`,e=>{if(a[e])return;a[e]=!0;let t=n.get(e);t&&(I.getInstance().info(`Flushing ${t.length} events for module ${e}`),t.forEach(e=>l(e)),n.delete(e))}),o.on(`data`,e=>e.forEach(l)),o.on(`error`,e=>{s.error(`Pipe server error`,e),P.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o}let Z=!1,kn={},Q,An=new M,$;function jn(e){let t=Mn(e),{init:n=!0,debug:r=!1,silent:i=!0}=t;if(Nn(e),I.getInstance().init(e.applicationId,r,i),Z)return Q;function a(){if(Z){I.getInstance().warn(`Overlayed already initialized`);return}gn();let e=new Map,n=new Map,r=un(t.modules,e,An),i=dn(),o=hn(t.keybinds),s=vn(),c=bn(),l=Cn(),u=xn(),d=En(t);I.getInstance().log(`Overlayed initialized`),Pn(t),On(t,e,n,An,kn),Z=!0,Q={...r,...i,ads:l,keybinds:o,windows:s,input:c,cortex:u,hasAnyActiveProcesses:()=>H.getInstance().hasAnyActiveProcesses,hasAnyActiveGames:()=>K.getInstance().isInGame,init:a,log:d,initialized:Z},Q.universal.on(`logged_in`,e=>{W.getInstance().track(`account_id`,{account_id:e.content.account_id,game:e.game})})}return n?(a(),Q):new Proxy({init:a},{get:(e,t)=>{if(t!==`init`&&!Z)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Q[t]}})}function Mn(e){return{...e,modules:[...e.modules,Ct()]}}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Nn(e){global.OVERLAYED={APPLICATION_ID:jt(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.27.1`,FRONTEND_VERSION:`0.0.0`,sessionId:an(),electron:e.electron}}function Pn(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);K.getInstance().setSubscribedGames(t),ln.getInstance().init(),K.getInstance().init(),H.getInstance().init(),V.getInstance().init();async function n(){let e=Mt(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=rn();I.getInstance().log(`userId`,t);let n={...await e,userId:t};return I.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r??=n(),r)),W.getInstance().track(`start`,{});try{$&&clearInterval($),$=setInterval(()=>{try{on()}catch{}},3e4),$.unref()}catch(e){I.getInstance().log(`failed to start sessionLastUsed interval`,e)}async function i(){let e={};e.os=g.platform().trim(),e.os_version=process.getSystemVersion().trim(),e.architecture=g.arch().trim();let t=g.cpus();t.length>0?(e.cpu=t[0].model.trim(),e.cpu_cores=t.length,e.cpu_speed=t[0].speed):I.getInstance().warn(`Failed to collect CPU info`);let n=await _e.graphics();I.getInstance().info(`GPU info`,n);let r=n.controllers.sort((e,t)=>(t.vram??0)-(e.vram??0))[0];r?(e.gpu=r.model.trim(),e.gpu_memory=r.vram??0):I.getInstance().warn(`Failed to find primary GPU`),e.display_count=n.displays.length;let i=n.displays.find(e=>e.main)??n.displays[0];i?(e.primary_display_resolution_x=i.resolutionX??void 0,e.primary_display_resolution_y=i.resolutionY??void 0,e.primary_display_refresh_rate=i.currentRefreshRate??void 0):I.getInstance().warn(`Failed to find main display`),e.ram=process.getSystemMemoryInfo().total;let a=g.homedir(),o=await ge.statfs(a);return o&&`blocks`in o&&`bsize`in o&&`bavail`in o?(e.disk=o.blocks*o.bsize,e.disk_free=o.bavail*o.bsize):I.getInstance().warn(`Failed to collect disk info`),I.getInstance().log(`Retrieved system information`,e),e}he.on(`ready`,()=>{i().then(e=>{W.getInstance().track(`system_info`,e)}).catch(e=>{I.getInstance().log(`Failed to retrieve system information`,e)})}),he.on(`quit`,()=>{W.getInstance().track(`electron_quit`,{}),Fn()}),process.on(`exit`,()=>{W.getInstance().track(`exit`,{}),Fn()})}async function Fn(){try{on()}catch{}try{$&&clearInterval($),$=void 0}catch{}await W.getInstance().flush(),V.getInstance().destroy(),K.getInstance().destroy(),ln.getInstance().destroy(),H.getInstance().destroy(),U.getInstance().getInterface(`OGG_SIEGE`).destroy(),gt.getInstance().destroy(),P.getInstance().destroy()}function In(e,t){return e+t}export{_t as RenderInterface,yt as VirtualKey,In as add,lt as defineConfig,jn as overlayed,Kt as setFetchLatestTokenCallback,Dt as setUpdaterTokenResolver};
4
+ `,i)}while(r!==-1);return a+=e.slice(i),a}const{stdout:Ve,stderr:He}=Re,w=Symbol(`GENERATOR`),T=Symbol(`STYLER`),E=Symbol(`IS_EMPTY`),Ue=[`ansi`,`ansi`,`ansi256`,`ansi16m`],D=Object.create(null),We=(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=Ve?Ve.level:0;e.level=t.level===void 0?n:t.level},Ge=e=>{let t=(...e)=>e.join(` `);return We(t,e),Object.setPrototypeOf(t,O.prototype),t};function O(e){return Ge(e)}Object.setPrototypeOf(O.prototype,Function.prototype);for(let[e,t]of Object.entries(b))D[e]={get(){let n=j(this,A(t.open,t.close,this[T]),this[E]);return Object.defineProperty(this,e,{value:n}),n}};D.visible={get(){let e=j(this,this[T],!0);return Object.defineProperty(this,`visible`,{value:e}),e}};const k=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?b[n].ansi16m(...r):t===`ansi256`?b[n].ansi256(b.rgbToAnsi256(...r)):b[n].ansi(b.rgbToAnsi(...r)):e===`hex`?k(`rgb`,t,n,...b.hexToRgb(...r)):b[n][e](...r);for(let e of[`rgb`,`hex`,`ansi256`]){D[e]={get(){let{level:t}=this;return function(...n){let r=A(k(e,Ue[t],`color`,...n),b.color.close,this[T]);return j(this,r,this[E])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);D[t]={get(){let{level:t}=this;return function(...n){let r=A(k(e,Ue[t],`bgColor`,...n),b.bgColor.close,this[T]);return j(this,r,this[E])}}}}const Ke=Object.defineProperties(()=>{},{...D,level:{enumerable:!0,get(){return this[w].level},set(e){this[w].level=e}}}),A=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},j=(e,t,n)=>{let r=(...e)=>qe(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,Ke),r[w]=e,r[T]=t,r[E]=n,r},qe=(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=ze(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
5
+ `);return a!==-1&&(t=Be(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);const Je=O();O({level:He?He.level:0});var M=Je,N=class{emitter;constructor(){this.emitter=i()}on(e,t){v(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){v(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){v(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},Ye=class{listeners;constructor(){this.listeners=new Map}on(e,t){v(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){v(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=v(e).flatMap(e=>{let t=this.listeners.get(e)||new Set,n=this.listeners.get(`*`)||new Set;return[...Array.from(t),...Array.from(n)]});return n.length===0?[]:await Promise.all(n.map(async n=>{try{let e=n(...t);return e instanceof Promise?await e:e}catch(t){console.error(`Error in event listener for ${String(e)}:`,t);return}}))}removeAllListeners(){this.listeners.clear()}};function P(e,...t){return class extends e{static _instance;static getInstance(){return this._instance||=new e(...t),this._instance}static clearInstance(){this._instance=void 0}}}const F=P(class extends N{destroy(){this.removeAllListeners()}fatal(e,t,n){this.emit(`fatal`,{code:t,message:e,data:n,timestamp:Date.now()})}error(e,t,n){this.emit(`error`,{code:t,message:e,data:n,timestamp:Date.now()})}warn(e,t,n){this.emit(`warning`,{code:t,message:e,data:n,timestamp:Date.now()})}});var Xe=class{data;_schema;_defaultValue;_path;constructor(e){let{schema:t,default:n,path:r}=e;this._schema=t,this._defaultValue=n,this._path=r}set(e){let t=this._schema[`~standard`].validate(e);if(t instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);if(t.issues){this.reportInvalidConfigFile(t.issues);return}this.data=this.onBeforeSave(e),this.save(e)}get(){return this.data?this.data:this.load()}getKey(e){return this.get()[e]}save(e){let t=this.onBeforeSave(e);try{f(this.getFilePath()),a.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(){if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return this.data=e,e}try{let e=a.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=r(`string.json.parse`).to(`object`)(e);if(t instanceof r.errors)return this._defaultValue;let n=this._schema[`~standard`].validate(t);if(n instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return n.issues?this.migrate(t,this._defaultValue):this.migrate(n.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return a.accessSync(e,a.constants.R_OK|a.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return a.accessSync(e,a.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]);return n}reportInvalidConfigFile(e){F.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}};function Ze(e,t,n){return typeof e!=`object`||!e?String(e):e instanceof Error?JSON.stringify(e,Object.getOwnPropertyNames(e),n):e instanceof Map?JSON.stringify(Object.fromEntries(e.entries()),t,n):e instanceof Set?JSON.stringify(Array.from(e),t,n):JSON.stringify(e,t,n)}var Qe=class e extends N{stream;logPath;baseFileName;currentDate;rotationCheckInterval;isRotating=!1;constructor(e,t){super(),this.logPath=e,this.baseFileName=t.replace(`.log`,``),this.currentDate=this.getDateString(new Date),this.ensureLogDirectory(),this.ensureLogFile(),this.stream=this.createStream(),this.rotationCheckInterval=this.startRotationCheck(),this.cleanupOldLogs()}static scope(t,n){return new e(t,n)}log(...e){this.write(`log`,...e)}error(...e){this.write(`error`,...e)}warn(...e){this.write(`warn`,...e)}info(...e){this.write(`info`,...e)}debug(...e){this.write(`debug`,...e)}async close(){clearInterval(this.rotationCheckInterval),await new Promise(e=>{this.stream.end(()=>e())})}getCurrentFileName(){return this.getFileName(this.currentDate)}static getMessageElements(e,...t){let n=new Date;return{timestamp:n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getUTCMilliseconds().toString().padStart(3,`0`)}`,level:e,message:t.map(e=>Ze(e)).join(` `)}}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{c(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=p(this.logPath,this.getFileName(this.currentDate));if(!s(e))try{d(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return`${e.getUTCFullYear()}-${(e.getUTCMonth()+1).toString().padStart(2,`0`)}-${e.getUTCDate().toString().padStart(2,`0`)}`}createStream(){return o(p(this.logPath,this.getFileName(this.currentDate)),{flags:`a`,encoding:`utf8`})}async rotateLogs(){if(this.isRotating)return;this.isRotating=!0;let e=this.getDateString(new Date);e!==this.currentDate&&await new Promise(t=>{this.stream.end(()=>{this.currentDate=e,this.stream=this.createStream(),this.cleanupOldLogs(),t()})}),this.isRotating=!1}startRotationCheck(){return setInterval(()=>this.rotateLogs(),6e4)}cleanupOldLogs(){let e=l(this.logPath),t=new Date,n=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()-7));e.filter(e=>e.startsWith(this.baseFileName)&&e.endsWith(`.log`)).filter(e=>{let[t,r,i]=e.replace(`${this.baseFileName}-`,``).replace(`.log`,``).split(`-`).map(Number);return new Date(Date.UTC(t,r-1,i))<=n}).forEach(e=>{try{u(p(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}write(t,...n){let{timestamp:r,message:i}=e.getMessageElements(t,...n),a=`[${r}] [${t}] ${i}\n`;this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}};const I=()=>m.join(process.env.APPDATA??``,`overlayed`),$e=()=>m.join(I(),`logs`),et=e=>m.join(I(),`apps`,e),tt=e=>m.join(et(e),`logs`),nt=()=>m.join(I(),`meta.json`);var rt=class{fileLogger;path;appId;messageQueue=new De;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=tt(e),this.fileLogger=new Qe(this.path,this.fileName),this.messageQueue.flush().forEach(e=>{this.fileLogger?.[e.type](...e.args)})}scope(e){if(!this.appId||!this.path)throw Error(`Logger not initialized`);let t=`[${e}]`;return{scope:e=>this.scope(e),error:(...e)=>this.error(t,...e),warn:(...e)=>this.warn(t,...e),info:(...e)=>this.info(t,...e),log:(...e)=>this.log(t,...e),debug:(...e)=>this.debug(t,...e)}}error(...e){this.handle(`error`,...e)}warn(...e){this.handle(`warn`,...e)}info(...e){this.handle(`log`,...e)}debug(...e){this._debug&&this.handle(`debug`,...e)}log(...e){this.handle(`log`,...e)}handle(e,...t){this.logToConsole(e,...t),this.fileLogger?this.fileLogger[e](...t):this.messageQueue.add({type:e,args:t})}logToConsole(e,...t){let n={error:M.red,warn:M.yellow,debug:M.blue,log:M.white};if(this.silent&&!this._debug)return;let{timestamp:r,message:i}=Qe.getMessageElements(e,...t),a=console[e],o=n[e];a(`${M.gray(r)} ${o(i)}`)}};const L=P(rt,`overlayed.log`);var it=class extends ie{blob;chunkSizeMb;maxConcurrent;shouldStop=!1;constructor(e,t){super(),this.blob=e,this.chunkSizeMb=t.chunkSizeMb,this.maxConcurrent=t.maxConcurrent??3}get totalChunks(){return Math.ceil(this.blob.size/(this.chunkSizeMb*1024*1024))}async chunk(e){let t=this.chunkSizeMb*1024*1024,n=this.totalChunks;if(n===0)return;let r=new Map,i=new Set,a=new Set,o=[];for(let e=0;e<n;e++)o.push(e);let s=async n=>{let s=n*t,c=Math.min(s+t,this.blob.size),l=this.blob.slice(s,c);try{await e(l,n),a.add(n),this.emit(`chunkComplete`,n),i.delete(n)}catch(e){let t=r.get(n)||0;t<5?(r.set(n,t+1),await new Promise(e=>setTimeout(e,(t+1)*1e3)),o.push(n)):(a.add(n),this.emit(`error`,e),this.shouldStop=!0,i.delete(n))}},c=[],l=async()=>{for(;(o.length>0||i.size>0)&&!this.shouldStop;){if(o.length===0){await new Promise(e=>setTimeout(e,10));continue}let e=o.shift();a.has(e)||i.has(e)||(i.add(e),await s(e))}};for(let e=0;e<this.maxConcurrent;e++)c.push(l());await Promise.all(c)}};function at(e,t){let{recursive:n}=ot(t);return se(e)?n?st(e).map(t=>[e,t]):ue(e).map(t=>[e,t]):[]}function ot(e){return{recursive:e?.recursive??!0}}function st(e){return ue(e,{withFileTypes:!0}).flatMap(t=>{let n=m.join(e,t.name);return t.isDirectory()?st(n):[n]})}function ct(e){return e}const{PipeEventServer:lt,PipeEventClient:ut,PipeEventBase:dt,ProcessMonitor:ft,Process:pt,HardwareInterface:mt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),ht=P(class extends N{server=null;_hasConnection=!1;pipeId;get hasConnection(){return this._hasConnection}constructor(e){super(),this.pipeId=e,this.init()}destroy(){this.server&&=(this._hasConnection=!1,this.server?.removeAllListeners(),null)}init(){this.server=new lt(this.pipeId,{clientCount:1,access:1}),this.server.on(`event`,e=>{try{let t=JSON.parse(e);this.emit(`data`,[t])}catch(e){this.emit(`error`,e)}}),this.server.on(`connected`,()=>{this._hasConnection=!0}),this.server.on(`disconnected`,()=>{this._hasConnection=!1})}},`stats-cc`),{RenderInterface:gt,renderHookPath:_t}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);let vt=function(e){return e[e.LeftButton=1]=`LeftButton`,e[e.RightButton=2]=`RightButton`,e[e.Cancel=3]=`Cancel`,e[e.MiddleButton=4]=`MiddleButton`,e[e.ExtraButton1=5]=`ExtraButton1`,e[e.ExtraButton2=6]=`ExtraButton2`,e[e.Back=8]=`Back`,e[e.Tab=9]=`Tab`,e[e.Clear=12]=`Clear`,e[e.Return=13]=`Return`,e[e.Shift=16]=`Shift`,e[e.Control=17]=`Control`,e[e.Menu=18]=`Menu`,e[e.Pause=19]=`Pause`,e[e.CapsLock=20]=`CapsLock`,e[e.Kana=21]=`Kana`,e[e.Hangeul=21]=`Hangeul`,e[e.Hangul=21]=`Hangul`,e[e.Junja=23]=`Junja`,e[e.Final=24]=`Final`,e[e.Hanja=25]=`Hanja`,e[e.Kanji=25]=`Kanji`,e[e.Escape=27]=`Escape`,e[e.Convert=28]=`Convert`,e[e.NonConvert=29]=`NonConvert`,e[e.Accept=30]=`Accept`,e[e.ModeChange=31]=`ModeChange`,e[e.Space=32]=`Space`,e[e.Prior=33]=`Prior`,e[e.Next=34]=`Next`,e[e.End=35]=`End`,e[e.Home=36]=`Home`,e[e.Left=37]=`Left`,e[e.Up=38]=`Up`,e[e.Right=39]=`Right`,e[e.Down=40]=`Down`,e[e.Select=41]=`Select`,e[e.Print=42]=`Print`,e[e.Execute=43]=`Execute`,e[e.Snapshot=44]=`Snapshot`,e[e.Insert=45]=`Insert`,e[e.Delete=46]=`Delete`,e[e.Help=47]=`Help`,e[e.N0=48]=`N0`,e[e.N1=49]=`N1`,e[e.N2=50]=`N2`,e[e.N3=51]=`N3`,e[e.N4=52]=`N4`,e[e.N5=53]=`N5`,e[e.N6=54]=`N6`,e[e.N7=55]=`N7`,e[e.N8=56]=`N8`,e[e.N9=57]=`N9`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.LeftWindows=91]=`LeftWindows`,e[e.RightWindows=92]=`RightWindows`,e[e.Application=93]=`Application`,e[e.Sleep=95]=`Sleep`,e[e.Numpad0=96]=`Numpad0`,e[e.Numpad1=97]=`Numpad1`,e[e.Numpad2=98]=`Numpad2`,e[e.Numpad3=99]=`Numpad3`,e[e.Numpad4=100]=`Numpad4`,e[e.Numpad5=101]=`Numpad5`,e[e.Numpad6=102]=`Numpad6`,e[e.Numpad7=103]=`Numpad7`,e[e.Numpad8=104]=`Numpad8`,e[e.Numpad9=105]=`Numpad9`,e[e.Multiply=106]=`Multiply`,e[e.Add=107]=`Add`,e[e.Separator=108]=`Separator`,e[e.Subtract=109]=`Subtract`,e[e.Decimal=110]=`Decimal`,e[e.Divide=111]=`Divide`,e[e.F1=112]=`F1`,e[e.F2=113]=`F2`,e[e.F3=114]=`F3`,e[e.F4=115]=`F4`,e[e.F5=116]=`F5`,e[e.F6=117]=`F6`,e[e.F7=118]=`F7`,e[e.F8=119]=`F8`,e[e.F9=120]=`F9`,e[e.F10=121]=`F10`,e[e.F11=122]=`F11`,e[e.F12=123]=`F12`,e[e.F13=124]=`F13`,e[e.F14=125]=`F14`,e[e.F15=126]=`F15`,e[e.F16=127]=`F16`,e[e.F17=128]=`F17`,e[e.F18=129]=`F18`,e[e.F19=130]=`F19`,e[e.F20=131]=`F20`,e[e.F21=132]=`F21`,e[e.F22=133]=`F22`,e[e.F23=134]=`F23`,e[e.F24=135]=`F24`,e[e.NumLock=144]=`NumLock`,e[e.ScrollLock=145]=`ScrollLock`,e[e.NEC_Equal=146]=`NEC_Equal`,e[e.Fujitsu_Jisho=146]=`Fujitsu_Jisho`,e[e.Fujitsu_Masshou=147]=`Fujitsu_Masshou`,e[e.Fujitsu_Touroku=148]=`Fujitsu_Touroku`,e[e.Fujitsu_Loya=149]=`Fujitsu_Loya`,e[e.Fujitsu_Roya=150]=`Fujitsu_Roya`,e[e.LeftShift=160]=`LeftShift`,e[e.RightShift=161]=`RightShift`,e[e.LeftControl=162]=`LeftControl`,e[e.RightControl=163]=`RightControl`,e[e.LeftMenu=164]=`LeftMenu`,e[e.RightMenu=165]=`RightMenu`,e[e.BrowserBack=166]=`BrowserBack`,e[e.BrowserForward=167]=`BrowserForward`,e[e.BrowserRefresh=168]=`BrowserRefresh`,e[e.BrowserStop=169]=`BrowserStop`,e[e.BrowserSearch=170]=`BrowserSearch`,e[e.BrowserFavorites=171]=`BrowserFavorites`,e[e.BrowserHome=172]=`BrowserHome`,e[e.VolumeMute=173]=`VolumeMute`,e[e.VolumeDown=174]=`VolumeDown`,e[e.VolumeUp=175]=`VolumeUp`,e[e.MediaNextTrack=176]=`MediaNextTrack`,e[e.MediaPrevTrack=177]=`MediaPrevTrack`,e[e.MediaStop=178]=`MediaStop`,e[e.MediaPlayPause=179]=`MediaPlayPause`,e[e.LaunchMail=180]=`LaunchMail`,e[e.LaunchMediaSelect=181]=`LaunchMediaSelect`,e[e.LaunchApplication1=182]=`LaunchApplication1`,e[e.LaunchApplication2=183]=`LaunchApplication2`,e[e.OEM1=186]=`OEM1`,e[e.OEMPlus=187]=`OEMPlus`,e[e.OEMComma=188]=`OEMComma`,e[e.OEMMinus=189]=`OEMMinus`,e[e.OEMPeriod=190]=`OEMPeriod`,e[e.OEM2=191]=`OEM2`,e[e.OEM3=192]=`OEM3`,e[e.OEM4=219]=`OEM4`,e[e.OEM5=220]=`OEM5`,e[e.OEM6=221]=`OEM6`,e[e.OEM7=222]=`OEM7`,e[e.OEM8=223]=`OEM8`,e[e.OEMAX=225]=`OEMAX`,e[e.OEM102=226]=`OEM102`,e[e.ICOHelp=227]=`ICOHelp`,e[e.ICO00=228]=`ICO00`,e[e.ProcessKey=229]=`ProcessKey`,e[e.ICOClear=230]=`ICOClear`,e[e.Packet=231]=`Packet`,e[e.OEMReset=233]=`OEMReset`,e[e.OEMJump=234]=`OEMJump`,e[e.OEMPA1=235]=`OEMPA1`,e[e.OEMPA2=236]=`OEMPA2`,e[e.OEMPA3=237]=`OEMPA3`,e[e.OEMWSCtrl=238]=`OEMWSCtrl`,e[e.OEMCUSel=239]=`OEMCUSel`,e[e.OEMATTN=240]=`OEMATTN`,e[e.OEMFinish=241]=`OEMFinish`,e[e.OEMCopy=242]=`OEMCopy`,e[e.OEMAuto=243]=`OEMAuto`,e[e.OEMENLW=244]=`OEMENLW`,e[e.OEMBackTab=245]=`OEMBackTab`,e[e.ATTN=246]=`ATTN`,e[e.CRSel=247]=`CRSel`,e[e.EXSel=248]=`EXSel`,e[e.EREOF=249]=`EREOF`,e[e.Play=250]=`Play`,e[e.Zoom=251]=`Zoom`,e[e.Noname=252]=`Noname`,e[e.PA1=253]=`PA1`,e[e.OEMClear=254]=`OEMClear`,e}({});const R=r({game:`string`,type:`string`,creation_time:`number`}).and({game:`'siege' | 'tft'`}),yt=R.and({type:`'logged_in'`,content:{account_id:`string`}}),bt=R.and({type:`'module_loaded'`,content:{game_version:`string`,process_hash:`string`}}),xt=R.and({type:`'module_unloaded'`}),St=R.and({type:`'unsupported_game_version'`,content:{game_version:`string`,process_hash:`string`}}),Ct=n({"#event1":`logged_in | module_loaded | module_unloaded | unsupported_game_version`,event:`event1`,logged_in:yt,module_loaded:bt,module_unloaded:xt,unsupported_game_version:St}).export(),wt=Object.keys(Ct).filter(e=>e!==`event`);function Tt(){return{key:`universal`,events:Ct}}var Et=class{logger;initialized=!1;constructor(e){this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},z=class extends N{logger;initialized=!1;constructor(e){super(),this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},Dt=class extends Ye{logger;initialized=!1;constructor(e){super(),this.logger=L.getInstance().scope(e)}init(){this.logger.log(`Initializing`),this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const Ot=fe.create({baseURL:`https://updater.stats.cc`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let kt;function At(e){kt=e}Ot.interceptors.request.use(e=>{let t=kt?.();return t?(e.headers??={},e.headers.Authorization=t,e):e});const B=fe.create({baseURL:`https://api.overlayed.gg`,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});B.interceptors.request.use(e=>(e.headers??={},e));function jt(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 Mt(e){return e}function Nt(e){return e?t=>(e(t),t):Mt}const Pt=Nt();function Ft(e){return B.get(`/v1/public/applications/${e}`)}function It(e,t,n){return Ot.get(`/v1/native/${Rt(e)}/version.txt`,{params:{channel:t},responseType:`text`,headers:{"X-App-Version":zt(n,t)}})}function Lt(e,t,n){return Ot.get(`/v1/native/${Rt(e)}/files`,{params:{channel:t},responseType:`arraybuffer`,headers:{"X-App-Version":zt(n,t)}})}function Rt(e){return e===`01JXPFK6YQ3N00N2Y9JHFNG55D`||e===`01JZEBPGHT5M4Y6SGY4P7Q9EZT`?`siege-game-module`:e}function zt(e,t){return`desktop-application/${e} (channel=${t})`}function Bt(){return B.get(`/v1/public/raven/config`)}function Vt(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Ht(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Ut(e,t){let n=new FormData;return n.append(`file`,t.chunk),B.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}function Wt(e){let t=Date.now(),n=jt(e.messages.map(e=>Gt(t,e)),250),r=Promise.all(n.map(async t=>B.post(`/v1/public/cortex/events`,{...e,messages:t})));return r.catch(e=>{let t=e?.response?.data||e?.message||e;console.error(`Failed to submit cortex events`,t)}),r}function Gt(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 Kt(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function qt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Jt;function Yt(e){Jt=e}const V=P(class extends z{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=m.join(I(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await _.mkdir(this.targetDir,{recursive:!0}),await this.checkForUpdates(e),clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.checkForUpdates(e),this.UPDATE_CHECK_INTERVAL_MS)}destroy(){this.updateInterval&&=(clearInterval(this.updateInterval),void 0),super.destroy()}async getCurrentVersion(e){try{let t=m.join(this.targetDir,e,`version.txt`);return this.logger.log(`Version Path`,t),await _.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return m.join(this.targetDir,e)}getTargetVersionPath(e,t){return m.join(this.getTargetPath(e),t)}async checkForUpdates(e){let t=global.OVERLAYED.APP_BUILD_CHANNEL;if(this.logger.log(`Checking for updates`),!t){this.logger.error(`Invalid VITE_BUILD_CHANNEL`);return}await Jt?.();for(let n of e)try{let{data:e}=await It(n,t,global.OVERLAYED.APP_VERSION),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r,a=!1;if(!i){let t=this.getTargetVersionPath(n,e);await this.hasPathAccess(t)?(await _.readdir(t)).length===0&&(a=!0,this.logger.warn(`${n} > Version path exists, but no files. Forcing download.`)):(a=!0,this.logger.warn(`${n} > Version path does not exist. Forcing download.`))}i||a?(this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t),this.logger.log(`${n} > Downloaded and extracted`),await this.cleanupOldVersions(n,e),this.logger.log(`${n} > Cleaned up versions older than ${e}`),this.emit(`dllUpdated`,{identifier:n,version:e})):this.logger.log(`${n} > No update found`)}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n){this.logger.log(`${e} > Downloading DLLs for version ${t}`);let{data:r}=await Lt(e,n,global.OVERLAYED.APP_VERSION);this.logger.log(`${e} > Downloaded DLLs for version ${t}`);let i=this.getTargetPath(e),a=this.getTargetVersionPath(e,t);await _.mkdir(a,{recursive:!0});let o=new pe;await o.loadAsync(r);let s=Object.keys(o.files).map(async t=>{let n=o.files[t];if(n&&!n.dir){let r=m.join(a,t),i=await n.async(`nodebuffer`);await _.writeFile(r,i),this.logger.log(`${e} > Extracted DLL: ${t}`)}});await Promise.all(s);let c=m.join(i,`version.txt`);await _.writeFile(c,t),this.logger.log(`${e} > Saved version file: ${t}`)}async cleanupOldVersions(e,t){let n=m.join(this.targetDir,e),r=await _.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await _.rm(m.join(n,e.name),{recursive:!0,force:!0})}async hasPathAccess(e){try{return await _.access(e,_.constants.F_OK),!0}catch{return!1}}}),H=P(class extends z{REFETCH_INTERVAL=1e3*60*5;FAILED_REFETCH_INTERVAL=1e3*30;_ravenConfig;_executableToGameMap=new Map;_executablesArray=[];_refetchIntervalHandler=null;_failedRefetchTimeoutHandler=null;constructor(){super(`RavenManager`)}init(){super.init(),this.fetchRavenConfig(),this._refetchIntervalHandler=setInterval(()=>{this._failedRefetchTimeoutHandler&&=(clearTimeout(this._failedRefetchTimeoutHandler),null),this.fetchRavenConfig()},this.REFETCH_INTERVAL)}getExecutableData(e){return this._executableToGameMap.get(e.toLowerCase())??null}get executables(){return this._executablesArray}get executablesMap(){return this._executableToGameMap}destroy(){this._refetchIntervalHandler&&clearInterval(this._refetchIntervalHandler),this._failedRefetchTimeoutHandler&&clearTimeout(this._failedRefetchTimeoutHandler),V.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{this._ravenConfig={games:(await Bt()).data.games},this.resetState();let e=new Set;for(let t of this._ravenConfig.games){for(let e of t.executables){let n=e.toLowerCase();this._executableToGameMap.set(n,t),this._executablesArray.push(n)}t.modules.forEach(t=>e.add(t))}await V.getInstance().initWithDlls(Array.from(e)),this.logger.log(`Raven updated, monitoring ${this._executableToGameMap.size} executables`),this.emit(`executablesUpdated`,{executables:this.executables,map:this._executableToGameMap})}catch(e){this.logger.error(`Failed to fetch Raven config`,e),this._failedRefetchTimeoutHandler=setTimeout(()=>this.fetchRavenConfig(),this.FAILED_REFETCH_INTERVAL)}}resetState(){this._executableToGameMap.clear(),this._executablesArray=[]}}),{PipeEventServer:Xt,PipeEventClient:Zt,PipeEventBase:Qt,ProcessMonitor:$t,Process:en,HardwareInterface:tn}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),U=P(class extends z{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new $t}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),H.getInstance().on(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processMonitor.on(`create`,e=>{this.logger.log(`Process created`,e),this.addProcess(e),this.logger.log(`Active Process Count: ${this._processes.size}`),this.emit(`create`,{process:e})}),this._processMonitor.on(`destroy`,e=>{this.logger.log(`Process destroyed`,e),this.deleteProcess(e),this.logger.log(`Active Process Count: ${this._processes.size}`),this.emit(`destroy`,{process:e})})}destroy(){H.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){return this._processes.get(e)?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){this.logger.log(`Monitoring ${e.executables.length} processes`),e.executables.forEach(e=>{this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name)?.filter(t=>t.id!==e.id)??[];t.length===0?this._processes.delete(e.name):this._processes.set(e.name,t)}});var nn=class{_instance;_resolution;boundOnResolutionChanged=this.onResolutionChanged.bind(this);constructor(e){this._instance=e,this._resolution={width:0,height:0},this._instance.on(`resolution`,this.boundOnResolutionChanged)}destroy(){this._instance.off(`resolution`,this.boundOnResolutionChanged)}get instance(){return this._instance}get resolution(){return this._resolution}onResolutionChanged(e,t){this._resolution={width:e,height:t}}};const W=P(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new nn(new gt(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),G=P(class{options;eventQueue;meta=null;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new De,this.setupFlushInterval()}track(e,t){this.eventQueue.add({type:e,properties:t,created_at:new Date})}flush(){let e=Array.from(this.eventQueue.flush()).concat({type:`ping`,properties:{},created_at:new Date});if(!this.meta)throw Error(`Tried to flush Cortex events before meta was set`);try{Wt({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}});function rn(e=[]){return m.normalize(m.join(et(global.OVERLAYED.APPLICATION_ID),...e))}const an=r({game:`string`,type:`string`,creation_time:`number`}),K=new Xe({path:nt(),schema:r({userId:`string | undefined`,sessionId:`string | undefined`,sessionLastUsed:`number | undefined`,"debug?":{"ri_disabled?":`boolean`,"gm_disabled?":`boolean`}}),default:{userId:void 0,sessionId:void 0,sessionLastUsed:void 0}});function on(){let{debug:e}=K.get();return e?{ri_disabled:e.ri_disabled??!1,gm_disabled:e.gm_disabled??!1}:{ri_disabled:!1,gm_disabled:!1}}function sn(){let e=K.get().userId;if(e)return e;let t=un();return K.set({...K.get(),userId:t}),t}function cn(){let e=K.get();if(e.sessionId&&typeof e.sessionLastUsed==`number`&&Date.now()-e.sessionLastUsed<=300*1e3)return e.sessionId;let t=crypto.randomUUID();return K.set({...e,sessionId:t,sessionLastUsed:Date.now()}),t}function ln(){try{let e=K.get();K.set({...e,sessionLastUsed:Date.now()})}catch(e){L.getInstance().log(`Failed to update sessionLastUsed`,e)}}function un(){try{return tn.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}const dn=e(import.meta.url).resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),q=P(class extends Dt{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;_activeReadyRavenGames=new Set;get isInGame(){return this._activeReadyRavenGames.size>0}constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}init(){super.init(),W.getInstance().createInterface(`OGG_SIEGE`),U.getInstance().on(`create`,this.boundOnProcessCreate),U.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){U.getInstance().off(`create`,this.boundOnProcessCreate),U.getInstance().off(`destroy`,this.boundOnProcessDestroy),super.destroy()}on(e,t){super.on(e,t);let n=v(e);if(!(n.includes(`gameReady`)||n.includes(`*`))||this._activeReadyRavenGames.size===0)return;let r=t;for(let e of this._activeReadyRavenGames)this.logger.log(`Late calling gameReady callback for game`,e),r({game:e})}async onProcessCreate({process:e}){let t=this.getRavenGame(e);if(!t)return;if(this.subscribedGames.size===0){this.logger.warn(`No subscribed games, skipping`);return}if(G.getInstance().track(`game_launch`,{game:t.identifier}),!this.subscribedGames.has(t.identifier)&&!this.subscribedGames.has(`*`))return;let n=new AbortController;if(await this.emit(`gameLaunch`,{game:t.identifier,reject:()=>n.abort()}),n.signal.aborted)return;let r=en.currentProcess;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,r.isElevated),e.isElevated&&!r.isElevated){F.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!r.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:r.isElevated,gameElevated:e.isElevated});return}let i=this.copyDll(dn),a=on();if(a.ri_disabled&&this.logger.log(`Skipping render interface injection due to meta debug`,{renderInterfacePath:i}),i&&!a.ri_disabled)try{await e.injectDll(i),this.logger.log(`Render Interface Injection Successful`,i)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:i})}let o=t?.modules.map(async t=>{let n=await V.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=V.getInstance().getTargetVersionPath(t,n);this.logger.log(`DLL Path`,r);let i=await this.getDllFiles(r);return this.logger.log(`DLL Files`,i),Promise.all(i.map(async t=>{let n=m.basename(t),i=m.join(r,n);if(!i)return Promise.resolve();if(a.gm_disabled)return this.logger.log(`Skipping injection due to meta debug`,{targetPath:i}),Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(o),this._activeReadyRavenGames.add(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),this.logger.log(`Game Ready`),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,{game:t.identifier}),G.getInstance().track(`game_ready`,{game:t.identifier})}copyDll(e){let t=m.basename(e),n=te(e),r=m.join(I(),`resources`),i=m.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{se(r)||ce(r,{recursive:!0}),de(i,le(n)),ae(n,i)}catch(e){return e.code===`EBUSY`?i:(this.logger.error(`Failed to copy`,e),this.logger.error(`Failed to copy`,{originalPath:n,targetPath:i}),!1)}return i}async getDllFiles(e){try{return(await _.readdir(e)).filter(e=>e.endsWith(`.dll`)).map(t=>m.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this._activeReadyRavenGames.delete(t.identifier),this.logger.debug(`Active ready raven games`,Array.from(this._activeReadyRavenGames).join(`, `)),this.emit(`gameCloseInternal`,{ravenGame:t,process:e}),this.emit(`gameClose`,{game:t.identifier}),G.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=H.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}}),fn=P(class extends Et{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),q.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){q.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=le(n.path),i=me(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{a=(await Vt(t.identifier,i)).data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new pe;o.file(n.name,r);let s=await o.generateAsync({type:`blob`});try{this.logger.log(`Uploading build (size: `,s.size,` bytes)`);let e=new it(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Ht(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 Ut(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){Kt(e)?qt(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}});function J(e,t){return`${e}:${t}`}function pn(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=J(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=J(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=J(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=J(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function mn(){let e=F.getInstance(),t=q.getInstance();return{on:(n,r)=>{switch(n){case`fatal`:e.on(`fatal`,r);break;case`error`:e.on(`error`,r);break;case`warning`:e.on(`warning`,r);break;case`gameLaunch`:t.on(`gameLaunch`,r);break;case`gameClose`:t.on(`gameClose`,r);break;case`gameReady`:t.on(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}},off:(n,r)=>{switch(n){case`fatal`:e.off(`fatal`,r);break;case`error`:e.off(`error`,r);break;case`warning`:e.off(`warning`,r);break;case`gameLaunch`:t.off(`gameLaunch`,r);break;case`gameClose`:t.off(`gameClose`,r);break;case`gameReady`:t.off(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}}}}var Y=function(e){return e[e.LeftButton=1]=`LeftButton`,e[e.RightButton=2]=`RightButton`,e[e.Cancel=3]=`Cancel`,e[e.MiddleButton=4]=`MiddleButton`,e[e.ExtraButton1=5]=`ExtraButton1`,e[e.ExtraButton2=6]=`ExtraButton2`,e[e.Back=8]=`Back`,e[e.Tab=9]=`Tab`,e[e.Clear=12]=`Clear`,e[e.Return=13]=`Return`,e[e.Shift=16]=`Shift`,e[e.Control=17]=`Control`,e[e.Menu=18]=`Menu`,e[e.Pause=19]=`Pause`,e[e.CapsLock=20]=`CapsLock`,e[e.Kana=21]=`Kana`,e[e.Hangeul=21]=`Hangeul`,e[e.Hangul=21]=`Hangul`,e[e.Junja=23]=`Junja`,e[e.Final=24]=`Final`,e[e.Hanja=25]=`Hanja`,e[e.Kanji=25]=`Kanji`,e[e.Escape=27]=`Escape`,e[e.Convert=28]=`Convert`,e[e.NonConvert=29]=`NonConvert`,e[e.Accept=30]=`Accept`,e[e.ModeChange=31]=`ModeChange`,e[e.Space=32]=`Space`,e[e.Prior=33]=`Prior`,e[e.Next=34]=`Next`,e[e.End=35]=`End`,e[e.Home=36]=`Home`,e[e.Left=37]=`Left`,e[e.Up=38]=`Up`,e[e.Right=39]=`Right`,e[e.Down=40]=`Down`,e[e.Select=41]=`Select`,e[e.Print=42]=`Print`,e[e.Execute=43]=`Execute`,e[e.Snapshot=44]=`Snapshot`,e[e.Insert=45]=`Insert`,e[e.Delete=46]=`Delete`,e[e.Help=47]=`Help`,e[e.N0=48]=`N0`,e[e.N1=49]=`N1`,e[e.N2=50]=`N2`,e[e.N3=51]=`N3`,e[e.N4=52]=`N4`,e[e.N5=53]=`N5`,e[e.N6=54]=`N6`,e[e.N7=55]=`N7`,e[e.N8=56]=`N8`,e[e.N9=57]=`N9`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.LeftWindows=91]=`LeftWindows`,e[e.RightWindows=92]=`RightWindows`,e[e.Application=93]=`Application`,e[e.Sleep=95]=`Sleep`,e[e.Numpad0=96]=`Numpad0`,e[e.Numpad1=97]=`Numpad1`,e[e.Numpad2=98]=`Numpad2`,e[e.Numpad3=99]=`Numpad3`,e[e.Numpad4=100]=`Numpad4`,e[e.Numpad5=101]=`Numpad5`,e[e.Numpad6=102]=`Numpad6`,e[e.Numpad7=103]=`Numpad7`,e[e.Numpad8=104]=`Numpad8`,e[e.Numpad9=105]=`Numpad9`,e[e.Multiply=106]=`Multiply`,e[e.Add=107]=`Add`,e[e.Separator=108]=`Separator`,e[e.Subtract=109]=`Subtract`,e[e.Decimal=110]=`Decimal`,e[e.Divide=111]=`Divide`,e[e.F1=112]=`F1`,e[e.F2=113]=`F2`,e[e.F3=114]=`F3`,e[e.F4=115]=`F4`,e[e.F5=116]=`F5`,e[e.F6=117]=`F6`,e[e.F7=118]=`F7`,e[e.F8=119]=`F8`,e[e.F9=120]=`F9`,e[e.F10=121]=`F10`,e[e.F11=122]=`F11`,e[e.F12=123]=`F12`,e[e.F13=124]=`F13`,e[e.F14=125]=`F14`,e[e.F15=126]=`F15`,e[e.F16=127]=`F16`,e[e.F17=128]=`F17`,e[e.F18=129]=`F18`,e[e.F19=130]=`F19`,e[e.F20=131]=`F20`,e[e.F21=132]=`F21`,e[e.F22=133]=`F22`,e[e.F23=134]=`F23`,e[e.F24=135]=`F24`,e[e.NumLock=144]=`NumLock`,e[e.ScrollLock=145]=`ScrollLock`,e[e.NEC_Equal=146]=`NEC_Equal`,e[e.Fujitsu_Jisho=146]=`Fujitsu_Jisho`,e[e.Fujitsu_Masshou=147]=`Fujitsu_Masshou`,e[e.Fujitsu_Touroku=148]=`Fujitsu_Touroku`,e[e.Fujitsu_Loya=149]=`Fujitsu_Loya`,e[e.Fujitsu_Roya=150]=`Fujitsu_Roya`,e[e.LeftShift=160]=`LeftShift`,e[e.RightShift=161]=`RightShift`,e[e.LeftControl=162]=`LeftControl`,e[e.RightControl=163]=`RightControl`,e[e.LeftMenu=164]=`LeftMenu`,e[e.RightMenu=165]=`RightMenu`,e[e.BrowserBack=166]=`BrowserBack`,e[e.BrowserForward=167]=`BrowserForward`,e[e.BrowserRefresh=168]=`BrowserRefresh`,e[e.BrowserStop=169]=`BrowserStop`,e[e.BrowserSearch=170]=`BrowserSearch`,e[e.BrowserFavorites=171]=`BrowserFavorites`,e[e.BrowserHome=172]=`BrowserHome`,e[e.VolumeMute=173]=`VolumeMute`,e[e.VolumeDown=174]=`VolumeDown`,e[e.VolumeUp=175]=`VolumeUp`,e[e.MediaNextTrack=176]=`MediaNextTrack`,e[e.MediaPrevTrack=177]=`MediaPrevTrack`,e[e.MediaStop=178]=`MediaStop`,e[e.MediaPlayPause=179]=`MediaPlayPause`,e[e.LaunchMail=180]=`LaunchMail`,e[e.LaunchMediaSelect=181]=`LaunchMediaSelect`,e[e.LaunchApplication1=182]=`LaunchApplication1`,e[e.LaunchApplication2=183]=`LaunchApplication2`,e[e.OEM1=186]=`OEM1`,e[e.OEMPlus=187]=`OEMPlus`,e[e.OEMComma=188]=`OEMComma`,e[e.OEMMinus=189]=`OEMMinus`,e[e.OEMPeriod=190]=`OEMPeriod`,e[e.OEM2=191]=`OEM2`,e[e.OEM3=192]=`OEM3`,e[e.OEM4=219]=`OEM4`,e[e.OEM5=220]=`OEM5`,e[e.OEM6=221]=`OEM6`,e[e.OEM7=222]=`OEM7`,e[e.OEM8=223]=`OEM8`,e[e.OEMAX=225]=`OEMAX`,e[e.OEM102=226]=`OEM102`,e[e.ICOHelp=227]=`ICOHelp`,e[e.ICO00=228]=`ICO00`,e[e.ProcessKey=229]=`ProcessKey`,e[e.ICOClear=230]=`ICOClear`,e[e.Packet=231]=`Packet`,e[e.OEMReset=233]=`OEMReset`,e[e.OEMJump=234]=`OEMJump`,e[e.OEMPA1=235]=`OEMPA1`,e[e.OEMPA2=236]=`OEMPA2`,e[e.OEMPA3=237]=`OEMPA3`,e[e.OEMWSCtrl=238]=`OEMWSCtrl`,e[e.OEMCUSel=239]=`OEMCUSel`,e[e.OEMATTN=240]=`OEMATTN`,e[e.OEMFinish=241]=`OEMFinish`,e[e.OEMCopy=242]=`OEMCopy`,e[e.OEMAuto=243]=`OEMAuto`,e[e.OEMENLW=244]=`OEMENLW`,e[e.OEMBackTab=245]=`OEMBackTab`,e[e.ATTN=246]=`ATTN`,e[e.CRSel=247]=`CRSel`,e[e.EXSel=248]=`EXSel`,e[e.EREOF=249]=`EREOF`,e[e.Play=250]=`Play`,e[e.Zoom=251]=`Zoom`,e[e.Noname=252]=`Noname`,e[e.PA1=253]=`PA1`,e[e.OEMClear=254]=`OEMClear`,e}(Y||{});const hn=new Map([[Y.LeftButton,`LeftButton`],[Y.RightButton,`RightButton`],[Y.Cancel,`Cancel`],[Y.MiddleButton,`MiddleButton`],[Y.ExtraButton1,`ExtraButton1`],[Y.ExtraButton2,`ExtraButton2`],[Y.Back,`Backspace`],[Y.Tab,`Tab`],[Y.Clear,`Clear`],[Y.Return,`Enter`],[Y.Shift,`ShiftLeft`],[Y.Control,`ControlLeft`],[Y.Menu,`AltLeft`],[Y.Pause,`Pause`],[Y.CapsLock,`CapsLock`],[Y.Kana,`KanaMode`],[Y.Junja,`JunjaMode`],[Y.Final,`Finalize`],[Y.Hanja,`HanjaMode`],[Y.Escape,`Escape`],[Y.Convert,`Convert`],[Y.NonConvert,`NonConvert`],[Y.Accept,`Accept`],[Y.ModeChange,`ModeChange`],[Y.Space,`Space`],[Y.Prior,`PageUp`],[Y.Next,`PageDown`],[Y.End,`End`],[Y.Home,`Home`],[Y.Left,`ArrowLeft`],[Y.Up,`ArrowUp`],[Y.Right,`ArrowRight`],[Y.Down,`ArrowDown`],[Y.Select,`Select`],[Y.Print,`PrintScreen`],[Y.Execute,`Execute`],[Y.Snapshot,`Snapshot`],[Y.Insert,`Insert`],[Y.Delete,`Delete`],[Y.Help,`Help`],[Y.N0,`Digit0`],[Y.N1,`Digit1`],[Y.N2,`Digit2`],[Y.N3,`Digit3`],[Y.N4,`Digit4`],[Y.N5,`Digit5`],[Y.N6,`Digit6`],[Y.N7,`Digit7`],[Y.N8,`Digit8`],[Y.N9,`Digit9`],[Y.A,`KeyA`],[Y.B,`KeyB`],[Y.C,`KeyC`],[Y.D,`KeyD`],[Y.E,`KeyE`],[Y.F,`KeyF`],[Y.G,`KeyG`],[Y.H,`KeyH`],[Y.I,`KeyI`],[Y.J,`KeyJ`],[Y.K,`KeyK`],[Y.L,`KeyL`],[Y.M,`KeyM`],[Y.N,`KeyN`],[Y.O,`KeyO`],[Y.P,`KeyP`],[Y.Q,`KeyQ`],[Y.R,`KeyR`],[Y.S,`KeyS`],[Y.T,`KeyT`],[Y.U,`KeyU`],[Y.V,`KeyV`],[Y.W,`KeyW`],[Y.X,`KeyX`],[Y.Y,`KeyY`],[Y.Z,`KeyZ`],[Y.LeftWindows,`MetaLeft`],[Y.RightWindows,`MetaRight`],[Y.Application,`ContextMenu`],[Y.Sleep,`Sleep`],[Y.Numpad0,`Numpad0`],[Y.Numpad1,`Numpad1`],[Y.Numpad2,`Numpad2`],[Y.Numpad3,`Numpad3`],[Y.Numpad4,`Numpad4`],[Y.Numpad5,`Numpad5`],[Y.Numpad6,`Numpad6`],[Y.Numpad7,`Numpad7`],[Y.Numpad8,`Numpad8`],[Y.Numpad9,`Numpad9`],[Y.Multiply,`NumpadMultiply`],[Y.Add,`NumpadAdd`],[Y.Separator,`NumpadSeparator`],[Y.Subtract,`NumpadSubtract`],[Y.Decimal,`NumpadDecimal`],[Y.Divide,`NumpadDivide`],[Y.F1,`F1`],[Y.F2,`F2`],[Y.F3,`F3`],[Y.F4,`F4`],[Y.F5,`F5`],[Y.F6,`F6`],[Y.F7,`F7`],[Y.F8,`F8`],[Y.F9,`F9`],[Y.F10,`F10`],[Y.F11,`F11`],[Y.F12,`F12`],[Y.F13,`F13`],[Y.F14,`F14`],[Y.F15,`F15`],[Y.F16,`F16`],[Y.F17,`F17`],[Y.F18,`F18`],[Y.F19,`F19`],[Y.F20,`F20`],[Y.F21,`F21`],[Y.F22,`F22`],[Y.F23,`F23`],[Y.F24,`F24`],[Y.NumLock,`NumLock`],[Y.ScrollLock,`ScrollLock`],[Y.NEC_Equal,`NEC_Equal`],[Y.Fujitsu_Masshou,`Fujitsu_Masshou`],[Y.Fujitsu_Touroku,`Fujitsu_Touroku`],[Y.Fujitsu_Loya,`Fujitsu_Loya`],[Y.Fujitsu_Roya,`Fujitsu_Roya`],[Y.LeftShift,`ShiftLeft`],[Y.RightShift,`ShiftRight`],[Y.LeftControl,`ControlLeft`],[Y.RightControl,`ControlRight`],[Y.LeftMenu,`AltLeft`],[Y.RightMenu,`AltRight`],[Y.BrowserBack,`BrowserBack`],[Y.BrowserForward,`BrowserForward`],[Y.BrowserRefresh,`BrowserRefresh`],[Y.BrowserStop,`BrowserStop`],[Y.BrowserSearch,`BrowserSearch`],[Y.BrowserFavorites,`BrowserFavorites`],[Y.BrowserHome,`BrowserHome`],[Y.VolumeMute,`VolumeMute`],[Y.VolumeDown,`VolumeDown`],[Y.VolumeUp,`VolumeUp`],[Y.MediaNextTrack,`MediaTrackNext`],[Y.MediaPrevTrack,`MediaTrackPrevious`],[Y.MediaStop,`MediaStop`],[Y.MediaPlayPause,`MediaPlayPause`],[Y.LaunchMail,`LaunchMail`],[Y.LaunchMediaSelect,`LaunchMediaSelect`],[Y.LaunchApplication1,`LaunchApplication1`],[Y.LaunchApplication2,`LaunchApplication2`],[Y.OEM1,`OEM_1`],[Y.OEMPlus,`Equal`],[Y.OEMComma,`Comma`],[Y.OEMMinus,`Minus`],[Y.OEMPeriod,`Period`],[Y.OEM2,`Slash`],[Y.OEM3,`Backquote`],[Y.OEM4,`BracketLeft`],[Y.OEM5,`Backslash`],[Y.OEM6,`BracketRight`],[Y.OEM7,`Quote`],[Y.OEM8,`IntlRo`],[Y.OEMAX,`OEM_AX`],[Y.OEM102,`IntlBackslash`],[Y.ICOHelp,`ICO_HELP`],[Y.ICO00,`ICO_00`],[Y.ProcessKey,`Process`],[Y.ICOClear,`ICO_CLEAR`],[Y.Packet,`Packet`],[Y.OEMReset,`OEM_Reset`],[Y.OEMJump,`OEM_Jump`],[Y.OEMPA1,`OEM_PA1`],[Y.OEMPA2,`OEM_PA2`],[Y.OEMPA3,`OEM_PA3`],[Y.OEMWSCtrl,`OEM_WS_Ctrl`],[Y.OEMCUSel,`OEM_CU_Sel`],[Y.OEMATTN,`OEM_ATTN`],[Y.OEMFinish,`OEM_Finish`],[Y.OEMCopy,`OEM_Copy`],[Y.OEMAuto,`OEM_Auto`],[Y.OEMENLW,`OEM_ENLW`],[Y.OEMBackTab,`BackTab`],[Y.ATTN,`ATTN`],[Y.CRSel,`CRSel`],[Y.EXSel,`EXSel`],[Y.EREOF,`EREOF`],[Y.Play,`MediaPlay`],[Y.Zoom,`Zoom`],[Y.Noname,`Noname`],[Y.PA1,`PA1`],[Y.OEMClear,`OEM_Clear`]]),gn=new Map(hn.entries().map(([e,t])=>[t,e])),_n=r({"[string]":{keys:`string[]`,mode:r(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var vn=class extends z{preferencesKeybindToCallbacks=new Map;pressedKeys=new Set;activeKeybinds=new Set;triggeredToggleKeybinds=new Set;boundHandleKeyboardFocus=this.handleKeyboardFocus.bind(this);boundHandleKeyDown=this.handleKeyDown.bind(this);boundHandleKeyUp=this.handleKeyUp.bind(this);keybindsFile;keybindListeningPaused=!1;constructor(e){super(`KeybindManager`),this.keybindsFile=new Xe({path:rn([`keybinds.json`]),schema:_n,default:e})}init(){super.init();let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.on(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.on(`keyDown`,this.boundHandleKeyDown),e.instance.on(`keyUp`,this.boundHandleKeyUp)}async onKeybindToggled(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.toggle.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.down.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)??{toggle:[],down:[],up:[]};n.up.push(t),this.preferencesKeybindToCallbacks.set(e,n)}async updateKeybind(e,t){this.keybindsFile.set({[e]:t})}async updateKeybinds(e){let t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0));this.keybindsFile.set({...this.keybindsFile.get(),...t})}getConfig(){return this.keybindsFile.get()}destroy(){let e=W.getInstance().getInterface(`OGG_SIEGE`);e.instance.off(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.off(`keyDown`,this.boundHandleKeyDown),e.instance.off(`keyUp`,this.boundHandleKeyUp),super.destroy()}handleKeyDown(e){if(this.keybindListeningPaused)return;let t=hn.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=hn.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries())n[e].keys.includes(t)&&this.triggeredToggleKeybinds.delete(e);this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up||n.up.length===0)continue;let r=e[t];if(this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))){this.activeKeybinds.delete(t);for(let e of n.up)e();this.logger.log(`Keybind up triggered`,this.getKeybindToString(r))}}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];if(r.keys.length===this.pressedKeys.size&&r.keys.every(e=>gn.has(e)?this.pressedKeys.has(e):!1)){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t];r.keys.every(e=>gn.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1))&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&t.toggle.length>0&&!this.triggeredToggleKeybinds.has(n)){let r;for(let e of t.toggle){let t=e();typeof t==`string`&&r===void 0&&(r=t)}this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&t.down.length>0&&!this.activeKeybinds.has(n)){let r;for(let e of t.down){let t=e();if(typeof t==`string`){r=t;break}}r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}};function yn(e){let t=new vn(e),n={};for(let r in e)n[r]={on:(e,n)=>{switch(e){case`down`:t.onKeybindDown(r,n);break;case`up`:t.onKeybindUp(r,n);break;case`toggle`:t.onKeybindToggled(r,n);break;default:throw Error(`Event type not implemented ${e}`,{cause:[e,n]})}}};let r={...n,getConfig:()=>t.getConfig(),pauseKeybindListening:()=>{t.keybindListeningPaused=!0},resumeKeybindListening:()=>{t.keybindListeningPaused=!1},updateKeybind:(e,n)=>{t.updateKeybind(e,n)},updateKeybinds:e=>{t.updateKeybinds(e)}};return t.init(),he.on(`quit`,()=>{t.destroy()}),r}function X(){return W.getInstance().getInterface(`OGG_SIEGE`)}function bn(){let e=q.getInstance(),t=F.getInstance(),n=G.getInstance();n.meta=xn(),e.on([`gameReady`,`gameClose`],()=>{n.meta||=xn(),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 xn(){return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:sn(),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 Sn(){function e(e,t){return e.once(`closed`,()=>{e.isDestroyed()||G.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||G.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),G.getInstance().track(`window_created`,{url:e.webContents.getURL(),in_game:t}),e}return{createWindow:t=>e(new global.OVERLAYED.electron.BrowserWindow(t),!1),createInGameWindow:t=>e(X().instance.newWindowInternal(global.OVERLAYED.electron.BrowserWindow,t),!0),on:(e,t)=>X().instance.on(e,t),off:(e,t)=>X().instance.off(e,t),once:(e,t)=>X().instance.once(e,t),addListener:(e,t)=>X().instance.addListener(e,t),removeListener:(e,t)=>X().instance.removeListener(e,t),removeAllListeners:()=>X().instance.removeAllListeners(),prependListener:(e,t)=>X().instance.prependListener(e,t),prependOnceListener:(e,t)=>X().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=X(),t=ht.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const Cn=P(class extends Et{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=W.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}},`OGG_SIEGE`);function wn(){return{scope:e=>Cn.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>X().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>X().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>X().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>X().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>X().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>X().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>X().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>X().instance.getKeyInputBlock(e)}}}function Tn(){return{track:(e,t)=>{G.getInstance().track(`custom__${String(e)}`,t)}}}var En=Ee(we(((e,t)=>{var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e,t)=>{var n=new Set([`mouseDown`,`mouseUp`,`pointerDown`,`pointerUp`]),r=new WeakSet;function i(e,t,{allowHosts:i}={}){let{shell:a}=t;if(r.has(e))return;r.add(e);let o=e.webContents;function s(e){return!!(!c(e)||i?.includes(e.host))}function c(e){return new URL(o.getURL()).origin!==e.origin}let l=0;function u(){l=Date.now()}function d(){let e=Date.now()-l,t=e<150;return t||console.warn(`was not recently active`,e),t}if(process.platform===`win32`)for(let t of Object.values({KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576}))e.hookWindowMessage(t,u);o.on(`input-event`,(e,t)=>{n.has(t.type)&&u()}),o.on(`will-navigate`,(e,t)=>{let n=e.url||t;if(console.log(`will-navigate`,n),!n)return;let r=new URL(n);if(!s(r)){if(!d()){console.log(`blocked navigation`,n),e.preventDefault();return}c(r)&&(console.log(`external navigation`,n),e.preventDefault(),a.openExternal(n))}}),o.session.on(`will-download`,(e,t)=>{let n=t.getURL();/^blob:/.test(n)||e.preventDefault()}),o.setWindowOpenHandler(e=>{console.log(`window-open`,e.url);let{url:t}=e,n=new URL(t);if(!s(n))return d()?(c(n)&&a.openExternal(e.url),{action:`deny`}):(console.log(`blocked navigation`,t),{action:`deny`})})}t.exports=i}),i=n((e,t)=>{var n=new Set([`Mozilla`,`AppleWebKit`,`Chrome`,`Safari`,`Gecko`,`Firefox`,`OPR`,`Edg`,`Version`,`Mobile`,`curl`,`PostmanRuntime`]);async function r(e,t,r){let{webContents:i}=e,a=await i.executeJavaScript(`navigator.userAgent`);a=a.match(/[^\/]+\/[^\s]+( \([^\)]+\))?/g).map(e=>e.trim()).filter(e=>{let[t]=e.split(`/`,1);return n.has(t)}).join(` `),i.setUserAgent(a),t.app.userAgentFallback=a}t.exports=r}),a=r(),o=i();function s(e,t,n={}){a(e,t,n.linkHandler),o(e,t,n.userAgent)}t.exports={setupRevUtils:s,setupLinkHandler:a,setUserAgent:o}}))(),1);function Dn(){return{registerWindow:e=>{(0,En.setupRevUtils)(e,global.OVERLAYED.electron)}}}function On(e){let t=tt(global.OVERLAYED.APPLICATION_ID),n=at(t,{recursive:!0}),r=$e(),i=at(r,{recursive:!0});L.getInstance().info(`Logs path: `,t),L.getInstance().info(`Overlayed logs path: `,r);let a=new pe;return[...n,...i].forEach(([e,t])=>{L.getInstance().info(`Zipping: `,t);let n=oe(t),r=ee(t);a.file(r,n,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{L.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function kn(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 An(e){let t=new rt(`app.log`);return t.init(global.OVERLAYED.APPLICATION_ID,e.debug),{scope:e=>t.scope(e),info:e=>t.info(e),warn:e=>t.warn(e),error:e=>t.error(e),debug:e=>t.debug(e),submitBugReport:async(e,t)=>{G.getInstance().track(`bug_report_submitted`,{version:e.version,category:e.category}),await kn(e,await On(t).generateAsync({type:`base64`}))}}}const jn=1e3;function Mn(e,t,n,i,a){let o=ht.getInstance(),s=L.getInstance().scope(`SetupPipeServer`);s.log(`Initializing`);function c(e,t){let r=n.get(t);if(!r)n.set(t,[e]);else{if(r.length>=jn){F.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${r.length}, max: ${jn}`});return}r.push(e)}}function l(n){s.info(n);let i=an(n);if(i instanceof r.errors){G.getInstance().track(`invalid_game_event`,{}),F.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=wt.includes(i.type),l=e.modules.find(e=>e.key===`universal`),u=o?l:e.modules.find(e=>e.key===i.game);if(!u){s.warn(`Invalid module`,{module:o?`universal`:i.game});return}let d=u.events.event,f=d(n);if(f instanceof r.errors){if(`type`in f.byPath)return;s.warn(`Invalid event`,{summary:f.summary}),G.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type,summary:f.summary}),F.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:f.summary});return}if(!a[u.key]){c(f,u.key);return}if(f.type===`unsupported_game_version`){let{content:e}=f;G.getInstance().track(`unsupported_game_version`,{game:f.game,hash:e.process_hash,version:e.game_version})}let p=J(u.key,f.type),m=J(u.key,`*`),ee=t.get(p),te=t.get(m),h=[...Array.from(ee??[]),...Array.from(te??[])];if(h.length===0){s.info(`No handlers found for event`,{event:f});return}h.forEach(e=>{e(f)})}return i.on(`flushEvents`,e=>{if(a[e])return;a[e]=!0;let t=n.get(e);t&&(L.getInstance().info(`Flushing ${t.length} events for module ${e}`),t.forEach(e=>l(e)),n.delete(e))}),o.on(`data`,e=>e.forEach(l)),o.on(`error`,e=>{s.error(`Pipe server error`,e),F.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o}let Z=!1,Nn={},Q,Pn=new N,$;function Fn(e){let t=In(e),{init:n=!0,debug:r=!1,silent:i=!0}=t;if(Ln(e),L.getInstance().init(e.applicationId,r,i),Z)return Q;function a(){if(Z){L.getInstance().warn(`Overlayed already initialized`);return}bn();let e=new Map,n=new Map,r=pn(t.modules,e,Pn),i=mn(),o=yn(t.keybinds),s=Sn(),c=wn(),l=Dn(),u=Tn(),d=An(t);L.getInstance().log(`Overlayed initialized`),Rn(t),Mn(t,e,n,Pn,Nn),Z=!0,Q={...r,...i,ads:l,keybinds:o,windows:s,input:c,cortex:u,hasAnyActiveProcesses:()=>U.getInstance().hasAnyActiveProcesses,hasAnyActiveGames:()=>q.getInstance().isInGame,init:a,log:d,initialized:Z},Q.universal.on(`logged_in`,e=>{G.getInstance().track(`account_id`,{account_id:e.content.account_id,game:e.game})})}return n?(a(),Q):new Proxy({init:a},{get:(e,t)=>{if(t!==`init`&&!Z)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Q[t]}})}function In(e){return{...e,modules:[...e.modules,Tt()]}}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Ln(e){global.OVERLAYED={APPLICATION_ID:Pt(e.applicationId),APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??`0.0.0`,PACKAGE_VERSION:`0.28.0`,FRONTEND_VERSION:`0.0.0`,sessionId:cn(),electron:e.electron}}function Rn(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);q.getInstance().setSubscribedGames(t),fn.getInstance().init(),q.getInstance().init(),U.getInstance().init(),H.getInstance().init();async function n(){let e=Ft(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=sn();L.getInstance().log(`userId`,t);let n={...await e,userId:t};return L.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r??=n(),r)),G.getInstance().track(`start`,{});try{$&&clearInterval($),$=setInterval(()=>{try{ln()}catch{}},3e4),$.unref()}catch(e){L.getInstance().log(`failed to start sessionLastUsed interval`,e)}async function i(){let e={};e.os=g.platform().trim(),e.os_version=process.getSystemVersion().trim(),e.architecture=g.arch().trim();let t=g.cpus();t.length>0?(e.cpu=t[0].model.trim(),e.cpu_cores=t.length,e.cpu_speed=t[0].speed):L.getInstance().warn(`Failed to collect CPU info`);let n=await _e.graphics();L.getInstance().info(`GPU info`,n);let r=n.controllers.sort((e,t)=>(t.vram??0)-(e.vram??0))[0];r?(e.gpu=r.model.trim(),e.gpu_memory=r.vram??0):L.getInstance().warn(`Failed to find primary GPU`),e.display_count=n.displays.length;let i=n.displays.find(e=>e.main)??n.displays[0];i?(e.primary_display_resolution_x=i.resolutionX??void 0,e.primary_display_resolution_y=i.resolutionY??void 0,e.primary_display_refresh_rate=i.currentRefreshRate??void 0):L.getInstance().warn(`Failed to find main display`),e.ram=process.getSystemMemoryInfo().total;let a=g.homedir(),o=await ge.statfs(a);return o&&`blocks`in o&&`bsize`in o&&`bavail`in o?(e.disk=o.blocks*o.bsize,e.disk_free=o.bavail*o.bsize):L.getInstance().warn(`Failed to collect disk info`),L.getInstance().log(`Retrieved system information`,e),e}he.on(`ready`,()=>{i().then(e=>{G.getInstance().track(`system_info`,e)}).catch(e=>{L.getInstance().log(`Failed to retrieve system information`,e)})}),he.on(`quit`,()=>{G.getInstance().track(`electron_quit`,{}),zn()}),process.on(`exit`,()=>{G.getInstance().track(`exit`,{}),zn()})}async function zn(){try{ln()}catch{}try{$&&clearInterval($),$=void 0}catch{}await G.getInstance().flush(),H.getInstance().destroy(),q.getInstance().destroy(),fn.getInstance().destroy(),U.getInstance().destroy(),W.getInstance().getInterface(`OGG_SIEGE`).destroy(),ht.getInstance().destroy(),F.getInstance().destroy()}function Bn(e,t){return e+t}export{gt as RenderInterface,vt as VirtualKey,Bn as add,ct as defineConfig,Fn as overlayed,Yt as setFetchLatestTokenCallback,At as setUpdaterTokenResolver};
package/dist/siege.d.ts CHANGED
@@ -619,22 +619,6 @@ declare function module(): {
619
619
  readonly key: "siege";
620
620
  readonly events: arktype2.Module<{
621
621
  event: {
622
- game: "siege";
623
- type: "module_loaded";
624
- creation_time: number;
625
- } | {
626
- game: "siege";
627
- type: "module_unloaded";
628
- creation_time: number;
629
- } | {
630
- game: "siege";
631
- type: "unsupported_game_version";
632
- creation_time: number;
633
- content: {
634
- hash: string | null;
635
- version: string | null;
636
- };
637
- } | {
638
622
  game: "siege";
639
623
  type: "started_queuing";
640
624
  creation_time: number;
@@ -778,7 +762,7 @@ declare function module(): {
778
762
  operator_name: {
779
763
  id: SiegeOperatorNameId;
780
764
  value: string;
781
- } | null;
765
+ };
782
766
  }[];
783
767
  };
784
768
  } | {
@@ -859,7 +843,7 @@ declare function module(): {
859
843
  operator_name: {
860
844
  id: SiegeOperatorNameId;
861
845
  value: string;
862
- } | null;
846
+ };
863
847
  };
864
848
  } | {
865
849
  game: "siege";
@@ -968,25 +952,6 @@ declare function module(): {
968
952
  team: 0 | 1;
969
953
  };
970
954
  };
971
- module_loaded: {
972
- game: "siege";
973
- type: "module_loaded";
974
- creation_time: number;
975
- };
976
- module_unloaded: {
977
- game: "siege";
978
- type: "module_unloaded";
979
- creation_time: number;
980
- };
981
- unsupported_game_version: {
982
- game: "siege";
983
- type: "unsupported_game_version";
984
- creation_time: number;
985
- content: {
986
- hash: string | null;
987
- version: string | null;
988
- };
989
- };
990
955
  started_queuing: {
991
956
  game: "siege";
992
957
  type: "started_queuing";
@@ -1139,7 +1104,7 @@ declare function module(): {
1139
1104
  operator_name: {
1140
1105
  id: SiegeOperatorNameId;
1141
1106
  value: string;
1142
- } | null;
1107
+ };
1143
1108
  }[];
1144
1109
  };
1145
1110
  };
@@ -1224,7 +1189,7 @@ declare function module(): {
1224
1189
  operator_name: {
1225
1190
  id: SiegeOperatorNameId;
1226
1191
  value: string;
1227
- } | null;
1192
+ };
1228
1193
  };
1229
1194
  };
1230
1195
  player_location_changed: {
@@ -1431,7 +1396,7 @@ declare const RoundEndPlayerDataSchema: arktype_internal_methods_object_ts0.Obje
1431
1396
  operator_name: {
1432
1397
  id: SiegeOperatorNameId;
1433
1398
  value: string;
1434
- } | null;
1399
+ };
1435
1400
  }, {}>;
1436
1401
  type RoundEndPlayerData = typeof RoundEndPlayerDataSchema.infer;
1437
1402
  declare const RoundEndDataSchema: arktype_internal_methods_object_ts0.ObjectType<{
@@ -1469,7 +1434,7 @@ declare const RoundEndDataSchema: arktype_internal_methods_object_ts0.ObjectType
1469
1434
  operator_name: {
1470
1435
  id: SiegeOperatorNameId;
1471
1436
  value: string;
1472
- } | null;
1437
+ };
1473
1438
  }[];
1474
1439
  }, {}>;
1475
1440
  type RoundEndData = typeof RoundEndDataSchema.infer;
@@ -1517,22 +1482,6 @@ declare const MatchStarted: arktype_internal_methods_object_ts0.ObjectType<{
1517
1482
  }, {}>;
1518
1483
  type MatchStartedEvent = typeof MatchStarted.infer;
1519
1484
  //#endregion
1520
- //#region src/events/moduleLoaded.d.ts
1521
- declare const ModuleLoaded: arktype_internal_methods_object_ts0.ObjectType<{
1522
- game: "siege";
1523
- type: "module_loaded";
1524
- creation_time: number;
1525
- }, {}>;
1526
- type ModuleLoadedEvent = typeof ModuleLoaded.infer;
1527
- //#endregion
1528
- //#region src/events/moduleUnloaded.d.ts
1529
- declare const ModuleUnloaded: arktype_internal_methods_object_ts0.ObjectType<{
1530
- game: "siege";
1531
- type: "module_unloaded";
1532
- creation_time: number;
1533
- }, {}>;
1534
- type ModuleUnloadedEvent = typeof ModuleUnloaded.infer;
1535
- //#endregion
1536
1485
  //#region src/events/startedQueuing.d.ts
1537
1486
  declare const StartedQueuing: arktype_internal_methods_object_ts0.ObjectType<{
1538
1487
  game: "siege";
@@ -1557,18 +1506,6 @@ declare const StoppedQueueing: arktype_internal_methods_object_ts0.ObjectType<{
1557
1506
  }, {}>;
1558
1507
  type StoppedQueueingEvent = typeof StoppedQueueing.infer;
1559
1508
  //#endregion
1560
- //#region src/events/unsupportedGameVersion.d.ts
1561
- declare const UnsupportedGameVersion: arktype_internal_methods_object_ts0.ObjectType<{
1562
- game: "siege";
1563
- type: "unsupported_game_version";
1564
- creation_time: number;
1565
- content: {
1566
- hash: string | null;
1567
- version: string | null;
1568
- };
1569
- }, {}>;
1570
- type UnsupportedGameVersionEvent = typeof UnsupportedGameVersion.infer;
1571
- //#endregion
1572
1509
  //#region src/events/matchEnded.d.ts
1573
1510
  declare const MatchEnded: arktype_internal_methods_object_ts0.ObjectType<{
1574
1511
  game: "siege";
@@ -1679,7 +1616,7 @@ declare const RoundEnded: arktype_internal_methods_object_ts0.ObjectType<{
1679
1616
  operator_name: {
1680
1617
  id: SiegeOperatorNameId;
1681
1618
  value: string;
1682
- } | null;
1619
+ };
1683
1620
  }[];
1684
1621
  };
1685
1622
  }, {}>;
@@ -1776,7 +1713,7 @@ declare const PlayerOperatorChanged: arktype_internal_methods_object_ts0.ObjectT
1776
1713
  operator_name: {
1777
1714
  id: SiegeOperatorNameId;
1778
1715
  value: string;
1779
- } | null;
1716
+ };
1780
1717
  };
1781
1718
  }, {}>;
1782
1719
  type PlayerOperatorChangedEvent = typeof PlayerOperatorChanged.infer;
@@ -1942,22 +1879,6 @@ type PlayerTeamChangedEvent = typeof PlayerTeamChanged.infer;
1942
1879
  //#region src/events/index.d.ts
1943
1880
  declare const siegeEvents: arktype2.Module<{
1944
1881
  event: {
1945
- game: "siege";
1946
- type: "module_loaded";
1947
- creation_time: number;
1948
- } | {
1949
- game: "siege";
1950
- type: "module_unloaded";
1951
- creation_time: number;
1952
- } | {
1953
- game: "siege";
1954
- type: "unsupported_game_version";
1955
- creation_time: number;
1956
- content: {
1957
- hash: string | null;
1958
- version: string | null;
1959
- };
1960
- } | {
1961
1882
  game: "siege";
1962
1883
  type: "started_queuing";
1963
1884
  creation_time: number;
@@ -2101,7 +2022,7 @@ declare const siegeEvents: arktype2.Module<{
2101
2022
  operator_name: {
2102
2023
  id: SiegeOperatorNameId;
2103
2024
  value: string;
2104
- } | null;
2025
+ };
2105
2026
  }[];
2106
2027
  };
2107
2028
  } | {
@@ -2182,7 +2103,7 @@ declare const siegeEvents: arktype2.Module<{
2182
2103
  operator_name: {
2183
2104
  id: SiegeOperatorNameId;
2184
2105
  value: string;
2185
- } | null;
2106
+ };
2186
2107
  };
2187
2108
  } | {
2188
2109
  game: "siege";
@@ -2291,25 +2212,6 @@ declare const siegeEvents: arktype2.Module<{
2291
2212
  team: 0 | 1;
2292
2213
  };
2293
2214
  };
2294
- module_loaded: {
2295
- game: "siege";
2296
- type: "module_loaded";
2297
- creation_time: number;
2298
- };
2299
- module_unloaded: {
2300
- game: "siege";
2301
- type: "module_unloaded";
2302
- creation_time: number;
2303
- };
2304
- unsupported_game_version: {
2305
- game: "siege";
2306
- type: "unsupported_game_version";
2307
- creation_time: number;
2308
- content: {
2309
- hash: string | null;
2310
- version: string | null;
2311
- };
2312
- };
2313
2215
  started_queuing: {
2314
2216
  game: "siege";
2315
2217
  type: "started_queuing";
@@ -2462,7 +2364,7 @@ declare const siegeEvents: arktype2.Module<{
2462
2364
  operator_name: {
2463
2365
  id: SiegeOperatorNameId;
2464
2366
  value: string;
2465
- } | null;
2367
+ };
2466
2368
  }[];
2467
2369
  };
2468
2370
  };
@@ -2547,7 +2449,7 @@ declare const siegeEvents: arktype2.Module<{
2547
2449
  operator_name: {
2548
2450
  id: SiegeOperatorNameId;
2549
2451
  value: string;
2550
- } | null;
2452
+ };
2551
2453
  };
2552
2454
  };
2553
2455
  player_location_changed: {
@@ -2674,4 +2576,4 @@ type SiegeEvent = typeof siegeEvents.event.infer;
2674
2576
  type SiegeEventType = SiegeEvent["type"];
2675
2577
  //#endregion
2676
2578
  //#endregion
2677
- export { BaseEvent, type DefuserDroppedEvent, type DefuserPickedUpEvent, type DefuserPlantedEvent, type DefuserSabotagedEvent, type MapChangedEvent, MapData, MapDataSchema, type MatchEndedEvent, MatchRoundData, MatchRoundDataSchema, type MatchStartedEvent, type ModuleLoadedEvent, type ModuleUnloadedEvent, type OperatorBanClearedEvent, type OperatorBanVotingStartedEvent, 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, isSiegeRoundStateCompleted, isSiegeRoundStateVictory, module, siegeEvents };
2579
+ export { BaseEvent, type DefuserDroppedEvent, type DefuserPickedUpEvent, type DefuserPlantedEvent, type DefuserSabotagedEvent, type MapChangedEvent, MapData, MapDataSchema, type MatchEndedEvent, MatchRoundData, MatchRoundDataSchema, type MatchStartedEvent, type OperatorBanClearedEvent, type OperatorBanVotingStartedEvent, type OperatorBannedEvent, type PhaseChangedEvent, 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, isSiegeRoundStateCompleted, isSiegeRoundStateVictory, module, siegeEvents };
package/dist/siege.js CHANGED
@@ -1 +1 @@
1
- import{Type as e,scope as t,type as n}from"arktype";function r(e){return e}function 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(),te=i(),f=i(),p=i(),m=i(),h=`00000000-0000-0000-0000-000000000000`,g=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`,`first`],_=n(`string`),v=[0,1],y=n(`===`,...v),b=[`attacker`,`defender`,`both`,`invalid`],x=n(`string`),S=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],C=n(`string`),w=`bullet.melee.explosive.falling.regeneration.unknown.debris.projectile.downed.gas.thermal_explosion.melee_gadget.barbed_wire.electric.reinforcement.frag.paralyzed.emp.break.cleanup.interrogation.melee-finisher.toxic.toxic-explosion.pneumatic.body-contact.contact-explosion.flash.parasite-spike.laser.concussion.blowtorch.taser-shield.reverse-friendly-fire.self-destroyed.area-control.fire.breach-kick.break-wall.blade-mine.melee-pushback.supressive-fire.gas-pipe-fire.invalid`.split(`.`),T=n(`string`),E=[`unknown`,`enemy`,`friendly`,`invalid`],D=n(`string`),O=Object.freeze({quickPlay:f(`QUICK PLAY`),versusAi:f(`VERSUS AI`),standard:f(`STANDARD`),ranked:f(`RANKED`)}),k=Object.freeze({[O.quickPlay]:`Quick Play`,[O.versusAi]:`Versus AI`,[O.standard]:`Standard`,[O.ranked]:`Ranked`}),A=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`),hideAndSeek:p(`HIDE AND SEEK`)}),ne=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`,[A.hideAndSeek]:`Hide and Seek`}),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),unranked:a(310813),deathmatch:a(420611),rengoku:a(359430),muteProtocol:a(368421),fieldTraining:a(423927),hideAndSeek:a(310854)}),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`,[j.unranked]:`Unranked`,[j.deathmatch]:`Deathmatch`,[j.rengoku]:`Rengoku`,[j.muteProtocol]:`M.U.T.E Protocol`,[j.fieldTraining]:`Field Training`,[j.hideAndSeek]:`Hide and Seek`}),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),denari:o(2437779699)}),P=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`,[N.denari]:`denari`}),F=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`},[N.denari]:{name:`Denari`,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),themePark:s(229325),stadium:s(338641),outback:s(299534),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),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),stadiumBravo:s(376421),muteCommTower:s(328922),doktorsLab:s(560244830)}),R=Object.freeze({[L.favela]:`Favela`,[L.fortress]:`Fortress`,[L.villa]:`Villa`,[L.neighborhood]:`Neighborhood`,[L.themePark]:`Theme Park`,[L.stadium]:`Stadium`,[L.outback]:`Outback`,[L.yacht]:`Yacht`,[L.emeraldPlains]:`Emerald Plains`,[L.chalet]:`Chalet`,[L.coastline]:`Coastline`,[L.bank]:`Bank`,[L.consulate]:`Consulate`,[L.tower]:`Tower`,[L.nighthavenLabs]:`Nighthaven Labs`,[L.presidentialPlane]:`Presidential Plane`,[L.house]:`House`,[L.kafeDostoyevsky]:`Kafe Dostoyevsky`,[L.border]:`Border`,[L.closeQuarter]:`Close Quarter`,[L.outback]:`Outback`,[L.lair]:`Lair`,[L.herefordBase]:`Hereford Base`,[L.skyscraper]:`Skyscraper`,[L.cqbBasics]:`CQB Basics`,[L.oregon]:`Oregon`,[L.outback]:`Outback`,318512:`Stadium`,[L.fortTruth]:`Fort Truth`,[L.kanal]:`Kanal`,[L.cqbBasics]:`CQB Basics`,[L.stadium2020]:`Stadium 2020`,[L.clubhouse]:`Clubhouse`,[L.district]:`District`,[L.shinden]:`Shinden`,[L.stadiumBravo]:`Stadium Bravo`,[L.muteCommTower]:`M.U.T.E Comm Tower`,[L.doktorsLab]:`Doktor's Lab`}),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=Object.freeze({day:m(177839),night:m(177840)}),H=Object.freeze({[V.day]:`Day`,[V.night]:`Night`}),U=()=>n({id:`number`,value:`string`}),W=n({kills:`number`,deaths:`number`,assists:`number`,score:`number`}),G=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_item_instance_id:r(n.number).or(`null`),damage_time:`number`}),K=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({name:U(),time_of_day:U()}),J=n({player_id:r(n.number),final_health:`number`,final_life_state:C,operator_name:U().or(`null`)}),Y=n({round_data:K,damage_events:G.array(),players:J.array()}),X=n({game:`string`,type:`string`,creation_time:`number`}),Z=[z.enemiesEliminated,z.objectiveComplete,z.timeRanOut,z.enemiesSurrendered,z.unknownReason];function re(e){return Z.includes(e)}const ie=[z.notPlayed,z.inProgress];function ae(e){return!ie.includes(e)}const Q=X.and({game:`'siege'`}),oe=Q.and({type:`'match_started'`,content:{game_mode:r(n.string),game_type:U(),match_type:r(n.string),match_id:r(n.string),map:q,is_round_based:`boolean`,current_round_index:`number`,rounds:K.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:U(),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_ban_voting_started'`,content:{team:y,index:`number`,side:x}}),he=Q.and({type:`'operator_banned'`,content:{team:y,index:`number`,side:x,operator_name:U().or(`null`)}}),ge=Q.and({type:`'operator_ban_cleared'`,content:{team:y,index:`number`}}),_e=Q.and({type:`'round_ended'`,content:Y}),ve=Q.and({type:`'phase_changed'`,content:{phase:_}}),ye=Q.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:r(n.string),is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:x,team:y,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:W,life_state:C,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),be=Q.and({type:`'player_left'`,content:{player_id:r(n.number)}}),xe=Q.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:U().or(`null`)}}),Se=Q.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),Ce=Q.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:x}}),we=Q.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:W}}),Te=Q.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),Ee=Q.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),De=Q.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),$=Q.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),Oe=Q.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),ke=Q.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:C}}),Ae=Q.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),je=Q.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Me=Q.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Ne=Q.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:y}}),Pe=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_ban_voting_started | operator_banned | operator_ban_cleared | round_ended | phase_changed | player_joined | player_left | player_operator_changed`,"#event2":`player_location_changed | player_side_changed | player_stats_changed | player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated`,event:`event1 | event2`,module_loaded:se,module_unloaded:ce,unsupported_game_version:de,started_queuing:le,stopped_queuing:ue,match_started:oe,match_ended:fe,map_changed:pe,operator_ban_voting_started:me,operator_banned:he,operator_ban_cleared:ge,round_ended:_e,phase_changed:ve,player_joined:ye,player_left:be,player_operator_changed:xe,player_location_changed:Se,player_side_changed:Ce,player_stats_changed:we,defuser_planted:Ee,defuser_sabotaged:De,defuser_picked_up:$,defuser_dropped:Oe,player_ping_updated:Te,player_life_state_changed:ke,player_died:Ae,player_downed:je,player_ping_id_changed:Me,player_team_changed:Ne}).export();function Fe(){return{key:`siege`,events:Pe}}export{X 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,ne as SIEGE_GAME_MODE_LABELS,g as SIEGE_GAME_MODE_PHASES,j as SIEGE_GAME_MODE_TYPES_TO_ID,M 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,P as SIEGE_OPERATOR_LABELS,F as SIEGE_OPERATOR_META,N 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,H as SIEGE_TIME_OF_DAY_LABELS,V as SIEGE_TIME_OF_DAY_TO_ID,D as SiegeDamageTeamTypeSchema,T as SiegeDamageTypeSchema,p as SiegeGameMode,_ as SiegeGameModePhaseSchema,a as SiegeGameModeTypeNameId,te as SiegeItemObjectId,s as SiegeMapNameId,l as SiegeMatchId,f as SiegeMatchType,o as SiegeOperatorNameId,u as SiegePlayerId,C as SiegePlayerLifeStateSchema,d as SiegeProfileId,c as SiegeRoundState,x as SiegeSideSchema,y as SiegeTeamSchema,m as SiegeTimeOfDay,ae as isSiegeRoundStateCompleted,re as isSiegeRoundStateVictory,Fe as module};
1
+ import{Type as e,scope as t,type as n}from"arktype";function r(e){return e}function i(e){return e}function a(e){return e?t=>(e(t),t):i}const o=a(),s=a(),c=a(),l=a(),u=a(),d=a(),ee=a(),te=a(),f=a(),p=a(),m=a(),h=`00000000-0000-0000-0000-000000000000`,g=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`,`first`],_=n(`string`),v=[0,1],y=n(`===`,...v),b=[`attacker`,`defender`,`both`,`invalid`],x=n(`string`),S=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],C=n(`string`),w=`bullet.melee.explosive.falling.regeneration.unknown.debris.projectile.downed.gas.thermal_explosion.melee_gadget.barbed_wire.electric.reinforcement.frag.paralyzed.emp.break.cleanup.interrogation.melee-finisher.toxic.toxic-explosion.pneumatic.body-contact.contact-explosion.flash.parasite-spike.laser.concussion.blowtorch.taser-shield.reverse-friendly-fire.self-destroyed.area-control.fire.breach-kick.break-wall.blade-mine.melee-pushback.supressive-fire.gas-pipe-fire.invalid`.split(`.`),T=n(`string`),E=[`unknown`,`enemy`,`friendly`,`invalid`],D=n(`string`),O=Object.freeze({quickPlay:f(`QUICK PLAY`),versusAi:f(`VERSUS AI`),standard:f(`STANDARD`),ranked:f(`RANKED`)}),k=Object.freeze({[O.quickPlay]:`Quick Play`,[O.versusAi]:`Versus AI`,[O.standard]:`Standard`,[O.ranked]:`Ranked`}),A=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`),hideAndSeek:p(`HIDE AND SEEK`)}),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`,[A.hideAndSeek]:`Hide and Seek`}),M=Object.freeze({ranked:o(205379),quickMatch:o(138115),customGame:o(62008),versusAi:o(397300),standard:o(393930),arcade:o(320109),siegeCup:o(414089),dualFront:o(420611),showdown:o(305544),trainingGrounds:o(-1),unranked:o(310813),deathmatch:o(420611),rengoku:o(359430),muteProtocol:o(368421),fieldTraining:o(423927),hideAndSeek:o(310854)}),N=Object.freeze({[M.quickMatch]:`Quick Match`,[M.ranked]:`Ranked`,[M.customGame]:`Custom Game`,[M.versusAi]:`Versus AI`,[M.standard]:`Standard`,[M.arcade]:`Arcade`,[M.siegeCup]:`Siege Cup`,[M.dualFront]:`Dual Front`,[M.showdown]:`Showdown`,[M.trainingGrounds]:`Training Grounds`,[M.unranked]:`Unranked`,[M.deathmatch]:`Deathmatch`,[M.rengoku]:`Rengoku`,[M.muteProtocol]:`M.U.T.E Protocol`,[M.fieldTraining]:`Field Training`,[M.hideAndSeek]:`Hide and Seek`}),P=Object.freeze({glaz:s(62242),blitz:s(62243),buck:s(62244),sledge:s(62245),ash:s(62246),thermite:s(62247),castle:s(62248),rook:s(62249),pulse:s(62250),doc:s(62251),mute:s(62252),smoke:s(62253),recruit:s(62555),thatcher:s(65143),twitch:s(65156),montagne:s(65159),bandit:s(65165),fuze:s(65168),kapkan:s(65171),tachanka:s(65174),jager:s(113049),iq:s(113052),frost:s(186159),blackbeard:s(187249),valkyrie:s(187252),caveira:s(207671),capitao:s(207674),echo:s(209180),hibana:s(209183),mira:s(222172),jackal:s(222182),ying:s(239334),lesion:s(239337),ela:s(254595),zofia:s(254606),dokkaebi:s(273652),vigil:s(273663),finka:s(281457),lion:s(281463),alibi:s(282399),maestro:s(285888),maverick:s(288504),clash:s(288526),nomad:s(293435),kaid:s(293436),gridlock:s(298589),mozzie:s(298616),nokk:s(299657),warden:s(299668),goyo:s(304196),amaru:s(308469),kali:s(310757),wamai:s(310768),oryx:s(317965),iana:s(317976),melusi:s(320062),ace:s(320073),zero:s(328927),aruni:s(328940),flores:s(334086),thunderbird:s(336466),osa:s(344493),thorn:s(349405),azami:s(354314),sens:s(357386),grim:s(365404),solis:s(376836),brava:s(382419),fenrir:s(386388),ram:s(392904),tubarao:s(395594),deimos:s(400504),striker:s(404278),sentry:s(404290),skopos:s(408405),rauora:s(421052),denari:s(2437779699)}),F=Object.freeze({[P.glaz]:`glaz`,[P.blitz]:`blitz`,[P.buck]:`buck`,[P.sledge]:`sledge`,[P.ash]:`ash`,[P.thermite]:`thermite`,[P.castle]:`castle`,[P.rook]:`rook`,[P.pulse]:`pulse`,[P.doc]:`doc`,[P.mute]:`mute`,[P.smoke]:`smoke`,[P.recruit]:`recruit`,[P.thatcher]:`thatcher`,[P.twitch]:`twitch`,[P.montagne]:`montagne`,[P.bandit]:`bandit`,[P.fuze]:`fuze`,[P.kapkan]:`kapkan`,[P.tachanka]:`tachanka`,[P.jager]:`jager`,[P.iq]:`iq`,[P.frost]:`frost`,[P.blackbeard]:`blackbeard`,[P.valkyrie]:`valkyrie`,[P.caveira]:`caveira`,[P.capitao]:`capitao`,[P.echo]:`echo`,[P.hibana]:`hibana`,[P.mira]:`mira`,[P.jackal]:`jackal`,[P.ying]:`ying`,[P.lesion]:`lesion`,[P.ela]:`ela`,[P.zofia]:`zofia`,[P.dokkaebi]:`dokkaebi`,[P.vigil]:`vigil`,[P.finka]:`finka`,[P.lion]:`lion`,[P.alibi]:`alibi`,[P.maestro]:`maestro`,[P.maverick]:`maverick`,[P.clash]:`clash`,[P.nomad]:`nomad`,[P.kaid]:`kaid`,[P.gridlock]:`gridlock`,[P.mozzie]:`mozzie`,[P.nokk]:`nokk`,[P.warden]:`warden`,[P.goyo]:`goyo`,[P.amaru]:`amaru`,[P.kali]:`kali`,[P.wamai]:`wamai`,[P.oryx]:`oryx`,[P.iana]:`iana`,[P.melusi]:`melusi`,[P.ace]:`ace`,[P.zero]:`zero`,[P.aruni]:`aruni`,[P.flores]:`flores`,[P.thunderbird]:`thunderbird`,[P.osa]:`osa`,[P.thorn]:`thorn`,[P.azami]:`azami`,[P.sens]:`sens`,[P.grim]:`grim`,[P.solis]:`solis`,[P.brava]:`brava`,[P.fenrir]:`fenrir`,[P.ram]:`ram`,[P.tubarao]:`tubarao`,[P.deimos]:`deimos`,[P.striker]:`striker`,[P.sentry]:`sentry`,[P.skopos]:`skopos`,[P.rauora]:`rauora`,[P.denari]:`denari`}),I=Object.freeze({[P.striker]:{name:`Striker`,role:`attacker`},[P.sledge]:{name:`Sledge`,role:`attacker`},[P.thatcher]:{name:`Thatcher`,role:`attacker`},[P.ash]:{name:`Ash`,role:`attacker`},[P.thermite]:{name:`Thermite`,role:`attacker`},[P.twitch]:{name:`Twitch`,role:`attacker`},[P.montagne]:{name:`Montagne`,role:`attacker`},[P.glaz]:{name:`Glaz`,role:`attacker`},[P.fuze]:{name:`Fuze`,role:`attacker`},[P.blitz]:{name:`Blitz`,role:`attacker`},[P.iq]:{name:`IQ`,role:`attacker`},[P.buck]:{name:`Buck`,role:`attacker`},[P.blackbeard]:{name:`Blackbeard`,role:`attacker`},[P.capitao]:{name:`Capitão`,role:`attacker`},[P.hibana]:{name:`Hibana`,role:`attacker`},[P.jackal]:{name:`Jackal`,role:`attacker`},[P.ying]:{name:`Ying`,role:`attacker`},[P.zofia]:{name:`Zofia`,role:`attacker`},[P.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[P.lion]:{name:`Lion`,role:`attacker`},[P.finka]:{name:`Finka`,role:`attacker`},[P.maverick]:{name:`Maverick`,role:`attacker`},[P.nomad]:{name:`Nomad`,role:`attacker`},[P.gridlock]:{name:`Gridlock`,role:`attacker`},[P.nokk]:{name:`Nøkk`,role:`attacker`},[P.amaru]:{name:`Amaru`,role:`attacker`},[P.kali]:{name:`Kali`,role:`attacker`},[P.iana]:{name:`Iana`,role:`attacker`},[P.ace]:{name:`Ace`,role:`attacker`},[P.zero]:{name:`Zero`,role:`attacker`},[P.flores]:{name:`Flores`,role:`attacker`},[P.osa]:{name:`Osa`,role:`attacker`},[P.sens]:{name:`Sens`,role:`attacker`},[P.grim]:{name:`Grim`,role:`attacker`},[P.brava]:{name:`Brava`,role:`attacker`},[P.ram]:{name:`Ram`,role:`attacker`},[P.deimos]:{name:`Deimos`,role:`attacker`},[P.rauora]:{name:`Rauora`,role:`attacker`},[P.sentry]:{name:`Sentry`,role:`defender`},[P.smoke]:{name:`Smoke`,role:`defender`},[P.mute]:{name:`Mute`,role:`defender`},[P.castle]:{name:`Castle`,role:`defender`},[P.pulse]:{name:`Pulse`,role:`defender`},[P.doc]:{name:`Doc`,role:`defender`},[P.rook]:{name:`Rook`,role:`defender`},[P.kapkan]:{name:`Kapkan`,role:`defender`},[P.tachanka]:{name:`Tachanka`,role:`defender`},[P.jager]:{name:`Jäger`,role:`defender`},[P.bandit]:{name:`Bandit`,role:`defender`},[P.frost]:{name:`Frost`,role:`defender`},[P.valkyrie]:{name:`Valkyrie`,role:`defender`},[P.caveira]:{name:`Caveira`,role:`defender`},[P.echo]:{name:`Echo`,role:`defender`},[P.mira]:{name:`Mira`,role:`defender`},[P.lesion]:{name:`Lesion`,role:`defender`},[P.ela]:{name:`Ela`,role:`defender`},[P.vigil]:{name:`Vigil`,role:`defender`},[P.alibi]:{name:`Alibi`,role:`defender`},[P.maestro]:{name:`Maestro`,role:`defender`},[P.clash]:{name:`Clash`,role:`defender`},[P.kaid]:{name:`Kaid`,role:`defender`},[P.mozzie]:{name:`Mozzie`,role:`defender`},[P.warden]:{name:`Warden`,role:`defender`},[P.goyo]:{name:`Goyo`,role:`defender`},[P.wamai]:{name:`Wamai`,role:`defender`},[P.oryx]:{name:`Oryx`,role:`defender`},[P.melusi]:{name:`Melusi`,role:`defender`},[P.aruni]:{name:`Aruni`,role:`defender`},[P.thunderbird]:{name:`Thunderbird`,role:`defender`},[P.thorn]:{name:`Thorn`,role:`defender`},[P.azami]:{name:`Azami`,role:`defender`},[P.solis]:{name:`Solis`,role:`defender`},[P.fenrir]:{name:`Fenrir`,role:`defender`},[P.tubarao]:{name:`Tubarao`,role:`defender`},[P.skopos]:{name:`Skopós`,role:`defender`},[P.denari]:{name:`Denari`,role:`defender`}}),L=Object.freeze({attacker:Object.entries(I).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...I[s(Number(e))],id:s(Number(e))})),defender:Object.entries(I).filter(([e,t])=>t.role===`defender`).map(([e])=>({...I[s(Number(e))],id:s(Number(e))}))}),R=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),themePark:c(229325),stadium:c(338641),outback:c(299534),yacht:c(62226),emeraldPlains:c(358871),chalet:c(62230),coastline:c(217482),bank:c(62228),consulate:c(62227),tower:c(255669),nighthavenLabs:c(375492),presidentialPlane:c(62225),house:c(62221),kafeDostoyevsky:c(62232),border:c(201746),closeQuarter:c(365400),lair:c(396234),herefordBase:c(62223),skyscraper:c(208094),cqbBasics:c(196157),oregon:c(62222),fortTruth:c(307723),kanal:c(62229),stadium2020:c(357300),clubhouse:c(62224),district:c(1193341205),shinden:c(359432),stadiumBravo:c(376421),muteCommTower:c(328922),doktorsLab:c(560244830)}),z=Object.freeze({[R.favela]:`Favela`,[R.fortress]:`Fortress`,[R.villa]:`Villa`,[R.neighborhood]:`Neighborhood`,[R.themePark]:`Theme Park`,[R.stadium]:`Stadium`,[R.outback]:`Outback`,[R.yacht]:`Yacht`,[R.emeraldPlains]:`Emerald Plains`,[R.chalet]:`Chalet`,[R.coastline]:`Coastline`,[R.bank]:`Bank`,[R.consulate]:`Consulate`,[R.tower]:`Tower`,[R.nighthavenLabs]:`Nighthaven Labs`,[R.presidentialPlane]:`Presidential Plane`,[R.house]:`House`,[R.kafeDostoyevsky]:`Kafe Dostoyevsky`,[R.border]:`Border`,[R.closeQuarter]:`Close Quarter`,[R.outback]:`Outback`,[R.lair]:`Lair`,[R.herefordBase]:`Hereford Base`,[R.skyscraper]:`Skyscraper`,[R.cqbBasics]:`CQB Basics`,[R.oregon]:`Oregon`,[R.outback]:`Outback`,318512:`Stadium`,[R.fortTruth]:`Fort Truth`,[R.kanal]:`Kanal`,[R.cqbBasics]:`CQB Basics`,[R.stadium2020]:`Stadium 2020`,[R.clubhouse]:`Clubhouse`,[R.district]:`District`,[R.shinden]:`Shinden`,[R.stadiumBravo]:`Stadium Bravo`,[R.muteCommTower]:`M.U.T.E Comm Tower`,[R.doktorsLab]:`Doktor's Lab`}),B=Object.freeze({notPlayed:l(0),inProgress:l(1),lost:l(2),enemiesEliminated:l(3),objectiveComplete:l(4),timeRanOut:l(5),enemiesSurrendered:l(6),unknownReason:l(7),matchCancelled:l(8)}),V=Object.freeze({[B.notPlayed]:`Not Played`,[B.inProgress]:`In Progress`,[B.lost]:`Lost`,[B.enemiesEliminated]:`Enemies Eliminated`,[B.objectiveComplete]:`Objective Complete`,[B.timeRanOut]:`Time ran out`,[B.enemiesSurrendered]:`Enemies Surrendered`,[B.unknownReason]:`Unknown Reason`,[B.matchCancelled]:`Match Cancelled`}),H=Object.freeze({day:m(177839),night:m(177840)}),U=Object.freeze({[H.day]:`Day`,[H.night]:`Night`}),W=()=>n({id:`number`,value:`string`}),G=n({kills:`number`,deaths:`number`,assists:`number`,score:`number`}),K=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_item_instance_id:r(n.number).or(`null`),damage_time:`number`}),q=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)}}),J=n({name:W(),time_of_day:W()}),Y=n({player_id:r(n.number),final_health:`number`,final_life_state:C,operator_name:W()}),X=n({round_data:q,damage_events:K.array(),players:Y.array()}),Z=n({game:`string`,type:`string`,creation_time:`number`}),Q=[B.enemiesEliminated,B.objectiveComplete,B.timeRanOut,B.enemiesSurrendered,B.unknownReason];function ne(e){return Q.includes(e)}const re=[B.notPlayed,B.inProgress];function ie(e){return!re.includes(e)}const $=Z.and({game:`'siege'`}),ae=$.and({type:`'match_started'`,content:{game_mode:r(n.string),game_type:W(),match_type:r(n.string),match_id:r(n.string),map:J,is_round_based:`boolean`,current_round_index:`number`,rounds:q.array()}}),oe=$.and({type:`'started_queuing'`,content:{game_mode:r(n.string),game_type:W(),match_type:r(n.string)}}),se=$.and({type:`'stopped_queuing'`}),ce=$.and({type:`'match_ended'`}),le=$.and({type:`'map_changed'`,content:{map:J}}),ue=$.and({type:`'operator_ban_voting_started'`,content:{team:y,index:`number`,side:x}}),de=$.and({type:`'operator_banned'`,content:{team:y,index:`number`,side:x,operator_name:W().or(`null`)}}),fe=$.and({type:`'operator_ban_cleared'`,content:{team:y,index:`number`}}),pe=$.and({type:`'round_ended'`,content:X}),me=$.and({type:`'phase_changed'`,content:{phase:_}}),he=$.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:r(n.string),is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:x,team:y,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:G,life_state:C,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),ge=$.and({type:`'player_left'`,content:{player_id:r(n.number)}}),_e=$.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:W()}}),ve=$.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),ye=$.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:x}}),be=$.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:G}}),xe=$.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),Se=$.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),Ce=$.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),we=$.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),Te=$.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),Ee=$.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:C}}),De=$.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Oe=$.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),ke=$.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Ae=$.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:y}}),je=t({"#event1":`started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_ban_voting_started | operator_banned | operator_ban_cleared | round_ended | phase_changed | player_joined | player_left | player_operator_changed`,"#event2":`player_location_changed | player_side_changed | player_stats_changed | player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated`,event:`event1 | event2`,started_queuing:oe,stopped_queuing:se,match_started:ae,match_ended:ce,map_changed:le,operator_ban_voting_started:ue,operator_banned:de,operator_ban_cleared: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:Se,defuser_sabotaged:Ce,defuser_picked_up:we,defuser_dropped:Te,player_ping_updated:xe,player_life_state_changed:Ee,player_died:De,player_downed:Oe,player_ping_id_changed:ke,player_team_changed:Ae}).export();function Me(){return{key:`siege`,events:je}}export{Z 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,z as SIEGE_MAP_LABELS,R as SIEGE_MAP_TO_ID,O as SIEGE_MATCH_TYPES_TO_ID,k as SIEGE_MATCH_TYPE_LABELS,F as SIEGE_OPERATOR_LABELS,I as SIEGE_OPERATOR_META,P as SIEGE_OPERATOR_TO_ID,S as SIEGE_PLAYER_LIFE_STATES,B as SIEGE_ROUND_STATES_TO_ID,V as SIEGE_ROUND_STATE_LABELS,b as SIEGE_SIDES,L as SIEGE_SIDE_OPERATORS,v as SIEGE_TEAMS,U as SIEGE_TIME_OF_DAY_LABELS,H as SIEGE_TIME_OF_DAY_TO_ID,D as SiegeDamageTeamTypeSchema,T as SiegeDamageTypeSchema,p as SiegeGameMode,_ as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,te as SiegeItemObjectId,c as SiegeMapNameId,u as SiegeMatchId,f as SiegeMatchType,s as SiegeOperatorNameId,d as SiegePlayerId,C as SiegePlayerLifeStateSchema,ee as SiegeProfileId,l as SiegeRoundState,x as SiegeSideSchema,y as SiegeTeamSchema,m as SiegeTimeOfDay,ie as isSiegeRoundStateCompleted,ne as isSiegeRoundStateVictory,Me as module};
@@ -6,7 +6,7 @@ import * as arktype_internal_methods_object_ts0 from "arktype/internal/methods/o
6
6
  //#endregion
7
7
  //#region src/events/loggedIn.d.ts
8
8
  declare const LoggedIn: arktype_internal_methods_object_ts0.ObjectType<{
9
- game: "siege";
9
+ game: "siege" | "tft";
10
10
  type: "logged_in";
11
11
  creation_time: number;
12
12
  content: {
@@ -14,25 +14,71 @@ declare const LoggedIn: arktype_internal_methods_object_ts0.ObjectType<{
14
14
  };
15
15
  }, {}>;
16
16
  type LoggedInEvent = typeof LoggedIn.infer;
17
+ //#endregion
18
+ //#region src/events/moduleLoaded.d.ts
19
+
17
20
  //#endregion
18
21
  //#region src/events/index.d.ts
19
22
  declare const universalEvents: arktype0.Module<{
20
- logged_in: {
21
- game: "siege";
23
+ event: {
24
+ game: "siege" | "tft";
22
25
  type: "logged_in";
23
26
  creation_time: number;
24
27
  content: {
25
28
  account_id: string;
26
29
  };
30
+ } | {
31
+ game: "siege" | "tft";
32
+ type: "module_loaded";
33
+ creation_time: number;
34
+ content: {
35
+ game_version: string;
36
+ process_hash: string;
37
+ };
38
+ } | {
39
+ game: "siege" | "tft";
40
+ type: "module_unloaded";
41
+ creation_time: number;
42
+ } | {
43
+ game: "siege" | "tft";
44
+ type: "unsupported_game_version";
45
+ creation_time: number;
46
+ content: {
47
+ game_version: string;
48
+ process_hash: string;
49
+ };
27
50
  };
28
- event: {
29
- game: "siege";
51
+ logged_in: {
52
+ game: "siege" | "tft";
30
53
  type: "logged_in";
31
54
  creation_time: number;
32
55
  content: {
33
56
  account_id: string;
34
57
  };
35
58
  };
59
+ module_loaded: {
60
+ game: "siege" | "tft";
61
+ type: "module_loaded";
62
+ creation_time: number;
63
+ content: {
64
+ game_version: string;
65
+ process_hash: string;
66
+ };
67
+ };
68
+ module_unloaded: {
69
+ game: "siege" | "tft";
70
+ type: "module_unloaded";
71
+ creation_time: number;
72
+ };
73
+ unsupported_game_version: {
74
+ game: "siege" | "tft";
75
+ type: "unsupported_game_version";
76
+ creation_time: number;
77
+ content: {
78
+ game_version: string;
79
+ process_hash: string;
80
+ };
81
+ };
36
82
  }>;
37
83
  type UniversalGameEvent = typeof universalEvents.event.infer;
38
84
  type UniversalGameEventType = UniversalGameEvent["type"];
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@overlayed/app",
3
3
  "author": "overlayed.gg",
4
4
  "homepage": "https://overlayed.gg",
5
- "version": "0.27.1",
5
+ "version": "0.28.0",
6
6
  "description": "Overlayed app",
7
7
  "license": "SEE LICENSE IN LICENSE.md",
8
8
  "repository": {
@@ -71,8 +71,8 @@
71
71
  "vitest": "^3.2.4",
72
72
  "@overlayed/api": "0.0.4",
73
73
  "@overlayed/cortex-client": "0.0.4",
74
- "@overlayed/native-managers": "0.0.4",
75
74
  "@overlayed/events": "0.0.4",
75
+ "@overlayed/native-managers": "0.0.4",
76
76
  "@overlayed/siege": "0.0.5",
77
77
  "@overlayed/universal": "0.0.0",
78
78
  "@overlayed/utils": "0.0.4",