@overlayed/app 1.3.13 → 1.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +1 -1
- package/dist/siege.d.ts +38 -38
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -12,6 +12,6 @@ Defaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=1
|
|
|
12
12
|
`;break;default:e+=String.fromCharCode(n)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},H.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case`\\`:++this.pos;break;case`$`:if(this.input[this.pos+1]!==`{`)break;case"`":return this.finishToken(b.invalidTemplate,this.input.slice(this.start,this.pos));case`\r`:this.input[this.pos+1]===`
|
|
13
13
|
`&&++this.pos;case`
|
|
14
14
|
`:case`\u2028`:case`\u2029`:++this.curLine,this.lineStart=this.pos+1}this.raise(this.start,`Unterminated template`)},H.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return`
|
|
15
|
-
`;case 114:return`\r`;case 120:return String.fromCharCode(this.readHexChar(2));case 117:return k(this.readCodePoint());case 116:return` `;case 98:return`\b`;case 118:return`\v`;case 102:return`\f`;case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),``;case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,`Invalid escape sequence`),e){var n=this.pos-1;this.invalidStringToken(n,`Invalid escape sequence in template string`)}default:if(t>=48&&t<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(r,8);return i>255&&(r=r.slice(0,-1),i=parseInt(r,8)),this.pos+=r.length-1,t=this.input.charCodeAt(this.pos),r===`0`&&t!==56&&t!==57||!this.strict&&!e||this.invalidStringToken(this.pos-1-r.length,e?`Octal literal in template string`:`Octal literal in strict mode`),String.fromCharCode(i)}return C(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),``):String.fromCharCode(t)}},H.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return n===null&&this.invalidStringToken(t,`Bad character escape sequence`),n},H.readWord1=function(){this.containsEsc=!1;for(var e=``,t=!0,n=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var i=this.fullCharCodeAtPos();if(m(i,r))this.pos+=i<=65535?1:2;else{if(i!==92)break;this.containsEsc=!0,e+=this.input.slice(n,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,`Expecting Unicode escape sequence \\uXXXX`),++this.pos;var o=this.readCodePoint();(t?p:m)(o,r)||this.invalidStringToken(a,`Invalid Unicode escape`),e+=k(o),n=this.pos}t=!1}return e+this.input.slice(n,this.pos)},H.readWord=function(){var e=this.readWord1(),t=b.name;return this.keywords.test(e)&&(t=ee[e]),this.finishToken(t,e)},M.acorn={Parser:M,version:`8.16.0`,defaultOptions:ue,Position:se,SourceLocation:ce,getLineInfo:le,Node:je,TokenType:h,tokTypes:b,keywordTypes:ee,TokContext:Ce,tokContexts:R,isIdentifierChar:m,isIdentifierStart:p,Token:ot,isNewLine:C,lineBreak:x,lineBreakG:S,nonASCIIwhitespace:te};var lt=r(`node:module`),U=r(`node:fs`);String.fromCharCode;let ut=/\/$|\/\?|\/#/,dt=/^\.?\//;function ft(e=``,t){return t?ut.test(e):e.endsWith(`/`)}function pt(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(ft(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function mt(e){return e&&e!==`/`}function ht(e,...t){let n=e||``;for(let e of t.filter(e=>mt(e)))if(n){let t=e.replace(dt,``);n=pt(n)+t}else n=e;return n}let gt=/^[A-Za-z]:\//;function _t(e=``){return e&&e.replace(/\\/g,`/`).replace(gt,e=>e.toUpperCase())}let vt=/^[/\\]{2}/,yt=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,bt=/^[A-Za-z]:$/,xt=/.(\.[^./]+|\.)$/,St=function(e){if(e.length===0)return`.`;let t=(e=_t(e)).match(vt),n=W(e),r=e[e.length-1]===`/`;return(e=Et(e,!n)).length===0?n?`/`:r?`./`:`.`:(r&&(e+=`/`),bt.test(e)&&(e+=`/`),t?n?`//${e}`:`//./${e}`:n&&!W(e)?`/${e}`:e)},Ct=function(...e){let t=``;for(let n of e)if(n)if(t.length>0){let e=t[t.length-1]===`/`,r=n[0]===`/`;t+=e&&r?n.slice(1):e||r?n:`/${n}`}else t+=n;return St(t)};function wt(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}let Tt=function(...e){let t=``,n=!1;for(let r=(e=e.map(e=>_t(e))).length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:wt();i&&i.length!==0&&(t=`${i}/${t}`,n=W(i))}return t=Et(t,!n),n&&!W(t)?`/${t}`:t.length>0?t:`.`};function Et(e,t){let n=``,r=0,i=-1,a=0,o=null;for(let s=0;s<=e.length;++s){if(s<e.length)o=e[s];else{if(o===`/`)break;o=`/`}if(o===`/`){if(!(i===s-1||a===1))if(a===2){if(n.length<2||r!==2||n[n.length-1]!==`.`||n[n.length-2]!==`.`){if(n.length>2){let e=n.lastIndexOf(`/`);e===-1?(n=``,r=0):(n=n.slice(0,e),r=n.length-1-n.lastIndexOf(`/`)),i=s,a=0;continue}if(n.length>0){n=``,r=0,i=s,a=0;continue}}t&&(n+=n.length>0?`/..`:`..`,r=2)}else n.length>0?n+=`/${e.slice(i+1,s)}`:n=e.slice(i+1,s),r=s-i-1;i=s,a=0}else o===`.`&&a!==-1?++a:a=-1}return n}let W=function(e){return yt.test(e)},Dt=function(e){if(e===`..`)return``;let t=xt.exec(_t(e));return t&&t[1]||``},Ot=function(e){let t=_t(e).replace(/\/$/,``).split(`/`).slice(0,-1);return t.length===1&&bt.test(t[0])&&(t[0]+=`/`),t.join(`/`)||(W(e)?`/`:`.`)},kt=function(e,t){let n=_t(e).split(`/`),r=``;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t){r=t;break}}return t&&r.endsWith(t)?r.slice(0,-t.length):r},G=A(`node:url`),At=A(`node:assert`),jt=A(`node:process`);var Mt=r(`node:path`);let Nt=A(`node:v8`),Pt=A(`node:util`),Ft=new Set(lt.builtinModules);function It(e){return e.replace(/\\/g,`/`)}let Lt={}.hasOwnProperty,K=/^([A-Z][a-z\d]*)+$/,Rt=new Set([`string`,`function`,`number`,`object`,`Function`,`Object`,`boolean`,`bigint`,`symbol`]),q={};function zt(e,t=`and`){return e.length<3?e.join(` ${t} `):`${e.slice(0,-1).join(`, `)}, ${t} ${e[e.length-1]}`}let Bt=new Map,Vt;function J(e,t,n){return Bt.set(e,t),function(e,t){return n;function n(...n){let r=Error.stackTraceLimit;Ht()&&(Error.stackTraceLimit=0);let i=new e;Ht()&&(Error.stackTraceLimit=r);let a=function(e,t,n){let r=Bt.get(e);if(At.ok(r!==void 0,"expected `message` to be found"),typeof r==`function`)return At.ok(r.length<=t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${r.length}).`),Reflect.apply(r,n,t);let i=/%[dfijoOs]/g,a=0;for(;i.exec(r)!==null;)a++;return At.ok(a===t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${a}).`),t.length===0?r:(t.unshift(r),Reflect.apply(Pt.format,null,t))}(t,n,i);return Object.defineProperties(i,{message:{value:a,enumerable:!1,writable:!0,configurable:!0},toString:{value(){return`${this.name} [${t}]: ${this.message}`},enumerable:!1,writable:!0,configurable:!0}}),Ut(i),i.code=t,i}}(n,e)}function Ht(){try{if(Nt.startupSnapshot.isBuildingSnapshot())return!1}catch{}let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Lt.call(e,`writable`)&&e.writable!==void 0?e.writable:e.set!==void 0}q.ERR_INVALID_ARG_TYPE=J(`ERR_INVALID_ARG_TYPE`,(e,t,n)=>{At.ok(typeof e==`string`,`'name' must be a string`),Array.isArray(t)||(t=[t]);let r=`The `;if(e.endsWith(` argument`))r+=`${e} `;else{let t=e.includes(`.`)?`property`:`argument`;r+=`"${e}" ${t} `}r+=`must be `;let i=[],a=[],o=[];for(let e of t)At.ok(typeof e==`string`,`All expected entries have to be of type string`),Rt.has(e)?i.push(e.toLowerCase()):K.exec(e)===null?(At.ok(e!==`object`,`The value "object" should be written as "Object"`),o.push(e)):a.push(e);if(a.length>0){let e=i.indexOf(`object`);e!==-1&&(i.slice(e,1),a.push(`Object`))}return i.length>0&&(r+=`${i.length>1?`one of type`:`of type`} ${zt(i,`or`)}`,(a.length>0||o.length>0)&&(r+=` or `)),a.length>0&&(r+=`an instance of ${zt(a,`or`)}`,o.length>0&&(r+=` or `)),o.length>0&&(o.length>1?r+=`one of ${zt(o,`or`)}`:(o[0].toLowerCase()!==o[0]&&(r+=`an `),r+=`${o[0]}`)),r+=`. Received ${function(e){if(e==null)return String(e);if(typeof e==`function`&&e.name)return`function ${e.name}`;if(typeof e==`object`)return e.constructor&&e.constructor.name?`an instance of ${e.constructor.name}`:`${(0,Pt.inspect)(e,{depth:-1})}`;let t=(0,Pt.inspect)(e,{colors:!1});return t.length>28&&(t=`${t.slice(0,25)}...`),`type ${typeof e} (${t})`}(n)}`,r},TypeError),q.ERR_INVALID_MODULE_SPECIFIER=J(`ERR_INVALID_MODULE_SPECIFIER`,(e,t,n=void 0)=>`Invalid module "${e}" ${t}${n?` imported from ${n}`:``}`,TypeError),q.ERR_INVALID_PACKAGE_CONFIG=J(`ERR_INVALID_PACKAGE_CONFIG`,(e,t,n)=>`Invalid package config ${e}${t?` while importing ${t}`:``}${n?`. ${n}`:``}`,Error),q.ERR_INVALID_PACKAGE_TARGET=J(`ERR_INVALID_PACKAGE_TARGET`,(e,t,n,r=!1,i=void 0)=>{let a=typeof n==`string`&&!r&&n.length>0&&!n.startsWith(`./`);return t===`.`?(At.ok(!1===r),`Invalid "exports" main target ${JSON.stringify(n)} defined in the package config ${e}package.json${i?` imported from ${i}`:``}${a?`; targets must start with "./"`:``}`):`Invalid "${r?`imports`:`exports`}" target ${JSON.stringify(n)} defined for '${t}' in the package config ${e}package.json${i?` imported from ${i}`:``}${a?`; targets must start with "./"`:``}`},Error),q.ERR_MODULE_NOT_FOUND=J(`ERR_MODULE_NOT_FOUND`,(e,t,n=!1)=>`Cannot find ${n?`module`:`package`} '${e}' imported from ${t}`,Error),q.ERR_NETWORK_IMPORT_DISALLOWED=J(`ERR_NETWORK_IMPORT_DISALLOWED`,`import of '%s' by %s is not supported: %s`,Error),q.ERR_PACKAGE_IMPORT_NOT_DEFINED=J(`ERR_PACKAGE_IMPORT_NOT_DEFINED`,(e,t,n)=>`Package import specifier "${e}" is not defined${t?` in package ${t}package.json`:``} imported from ${n}`,TypeError),q.ERR_PACKAGE_PATH_NOT_EXPORTED=J(`ERR_PACKAGE_PATH_NOT_EXPORTED`,(e,t,n=void 0)=>t===`.`?`No "exports" main defined in ${e}package.json${n?` imported from ${n}`:``}`:`Package subpath '${t}' is not defined by "exports" in ${e}package.json${n?` imported from ${n}`:``}`,Error),q.ERR_UNSUPPORTED_DIR_IMPORT=J(`ERR_UNSUPPORTED_DIR_IMPORT`,`Directory import '%s' is not supported resolving ES modules imported from %s`,Error),q.ERR_UNSUPPORTED_RESOLVE_REQUEST=J(`ERR_UNSUPPORTED_RESOLVE_REQUEST`,`Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.`,TypeError),q.ERR_UNKNOWN_FILE_EXTENSION=J(`ERR_UNKNOWN_FILE_EXTENSION`,(e,t)=>`Unknown file extension "${e}" for ${t}`,TypeError),q.ERR_INVALID_ARG_VALUE=J(`ERR_INVALID_ARG_VALUE`,(e,t,n=`is invalid`)=>{let r=(0,Pt.inspect)(t);return r.length>128&&(r=`${r.slice(0,128)}...`),`The ${e.includes(`.`)?`property`:`argument`} '${e}' ${n}. Received ${r}`},TypeError);let Ut=function(e){let t=`__node_internal_`+e.name;return Object.defineProperty(e,"name",{value:t}),e}(function(e){let t=Ht();return t&&(Vt=Error.stackTraceLimit,Error.stackTraceLimit=1/0),Error.captureStackTrace(e),t&&(Error.stackTraceLimit=Vt),e}),Wt={}.hasOwnProperty,{ERR_INVALID_PACKAGE_CONFIG:Gt}=q,Kt=new Map;function qt(e,{base:t,specifier:n}){let r=Kt.get(e);if(r)return r;let i;try{i=U.readFileSync(Mt.toNamespacedPath(e),`utf8`)}catch(e){let t=e;if(t.code!==`ENOENT`)throw t}let a={exists:!1,pjsonPath:e,main:void 0,name:void 0,type:`none`,exports:void 0,imports:void 0};if(i!==void 0){let r;try{r=JSON.parse(i)}catch(r){let i=r,a=new Gt(e,(t?`"${n}" from `:``)+(0,G.fileURLToPath)(t||n),i.message);throw a.cause=i,a}a.exists=!0,Wt.call(r,`name`)&&typeof r.name==`string`&&(a.name=r.name),Wt.call(r,`main`)&&typeof r.main==`string`&&(a.main=r.main),Wt.call(r,`exports`)&&(a.exports=r.exports),Wt.call(r,`imports`)&&(a.imports=r.imports),!Wt.call(r,`type`)||r.type!==`commonjs`&&r.type!==`module`||(a.type=r.type)}return Kt.set(e,a),a}function Jt(e){let t=new URL(`package.json`,e);for(;!t.pathname.endsWith(`node_modules/package.json`);){let n=qt((0,G.fileURLToPath)(t),{specifier:e});if(n.exists)return n;let r=t;if(t=new URL(`../package.json`,t),t.pathname===r.pathname)break}return{pjsonPath:(0,G.fileURLToPath)(t),exists:!1,type:`none`}}function Yt(e){return Jt(e).type}let{ERR_UNKNOWN_FILE_EXTENSION:Xt}=q,Zt={}.hasOwnProperty,Qt={__proto__:null,".cjs":`commonjs`,".js":`module`,".json":`json`,".mjs":`module`},$t={__proto__:null,"data:":function(e){let{1:t}=/^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(e.pathname)||[null,null,null];return function(e){return e&&/\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(e)?`module`:e===`application/json`?`json`:null}(t)},"file:":function(e,t,n){let r=function(e){let t=e.pathname,n=t.length;for(;n--;){let e=t.codePointAt(n);if(e===47)return``;if(e===46)return t.codePointAt(n-1)===47?``:t.slice(n)}return``}(e);if(r===`.js`){let t=Yt(e);return t===`none`?`commonjs`:t}if(r===``){let t=Yt(e);return t===`none`||t===`commonjs`?`commonjs`:`module`}let i=Qt[r];if(i)return i;if(n)return;let a=(0,G.fileURLToPath)(e);throw new Xt(r,a)},"http:":en,"https:":en,"node:":()=>`builtin`};function en(){}let Y=Object.freeze([`node`,`import`]),tn=new Set(Y);function nn(e){return tn}let rn=RegExp.prototype[Symbol.replace],{ERR_INVALID_MODULE_SPECIFIER:an,ERR_INVALID_PACKAGE_CONFIG:on,ERR_INVALID_PACKAGE_TARGET:sn,ERR_MODULE_NOT_FOUND:cn,ERR_PACKAGE_IMPORT_NOT_DEFINED:ln,ERR_PACKAGE_PATH_NOT_EXPORTED:un,ERR_UNSUPPORTED_DIR_IMPORT:dn,ERR_UNSUPPORTED_RESOLVE_REQUEST:fn}=q,pn={}.hasOwnProperty,mn=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i,hn=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,gn=/^\.|%|\\/,_n=/\*/g,vn=/%2f|%5c/i,yn=new Set,bn=/[/\\]{2}/;function xn(e,t,n,r,i,a,o){if(jt.noDeprecation)return;let s=(0,G.fileURLToPath)(r),c=bn.exec(o?e:t)!==null;jt.emitWarning(`Use of deprecated ${c?`double slash`:`leading or trailing slash matching`} resolving "${e}" for module request "${t}" ${t===n?``:`matched to "${n}" `}in the "${i?`imports`:`exports`}" field module resolution of the package at ${s}${a?` imported from ${(0,G.fileURLToPath)(a)}`:``}.`,`DeprecationWarning`,`DEP0166`)}function Sn(e,t,n,r){if(jt.noDeprecation||function(e,t){let n=e.protocol;return Zt.call($t,n)&&$t[n](e,t,!0)||null}(e,{parentURL:n.href})!==`module`)return;let i=(0,G.fileURLToPath)(e.href),a=(0,G.fileURLToPath)(new URL(`.`,t)),o=(0,G.fileURLToPath)(n);r?Mt.resolve(a,r)!==i&&jt.emitWarning(`Package ${a} has a "main" field set to "${r}", excluding the full filename and extension to the resolved file at "${i.slice(a.length)}", imported from ${o}.\n Automatic extension resolution of the "main" field is deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`):jt.emitWarning(`No "main" or "exports" field defined in the package.json for ${a} resolving the main entry point "${i.slice(a.length)}", imported from ${o}.\nDefault "index" lookups for the main are deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`)}function Cn(e){try{return(0,U.statSync)(e)}catch{}}function wn(e){let t=(0,U.statSync)(e,{throwIfNoEntry:!1}),n=t?t.isFile():void 0;return n!=null&&n}function Tn(e,t,n){let r;if(t.main!==void 0){if(r=new URL(t.main,e),wn(r))return r;let i=[`./${t.main}.js`,`./${t.main}.json`,`./${t.main}.node`,`./${t.main}/index.js`,`./${t.main}/index.json`,`./${t.main}/index.node`],a=-1;for(;++a<i.length&&(r=new URL(i[a],e),!wn(r));)r=void 0;if(r)return Sn(r,e,n,t.main),r}let i=[`./index.js`,`./index.json`,`./index.node`],a=-1;for(;++a<i.length&&(r=new URL(i[a],e),!wn(r));)r=void 0;if(r)return Sn(r,e,n,t.main),r;throw new cn((0,G.fileURLToPath)(new URL(`.`,e)),(0,G.fileURLToPath)(n))}function En(e,t,n){return new un((0,G.fileURLToPath)(new URL(`.`,t)),e,n&&(0,G.fileURLToPath)(n))}function Dn(e,t,n,r,i){return t=typeof t==`object`&&t?JSON.stringify(t,null,``):`${t}`,new sn((0,G.fileURLToPath)(new URL(`.`,n)),e,t,r,i&&(0,G.fileURLToPath)(i))}function On(e,t,n,r,i,a,o,s,c){if(t!==``&&!a&&e[e.length-1]!==`/`)throw Dn(n,e,r,o,i);if(!e.startsWith(`./`)){if(o&&!e.startsWith(`../`)&&!e.startsWith(`/`)){let n=!1;try{new URL(e),n=!0}catch{}if(!n)return Pn(a?rn.call(_n,e,()=>t):e+t,r,c)}throw Dn(n,e,r,o,i)}if(mn.exec(e.slice(2))!==null){if(hn.exec(e.slice(2))!==null)throw Dn(n,e,r,o,i);if(!s){let s=a?n.replace(`*`,()=>t):n+t;xn(a?rn.call(_n,e,()=>t):e,s,n,r,o,i,!0)}}let l=new URL(e,r),u=l.pathname,d=new URL(`.`,r).pathname;if(!u.startsWith(d))throw Dn(n,e,r,o,i);if(t===``)return l;if(mn.exec(t)!==null){let c=a?n.replace(`*`,()=>t):n+t;hn.exec(t)===null?s||xn(a?rn.call(_n,e,()=>t):e,c,n,r,o,i,!1):(function(e,t,n,r,i){let a=`request is not a valid match in pattern "${t}" for the "${r?`imports`:`exports`}" resolution of ${(0,G.fileURLToPath)(n)}`;throw new an(e,a,i&&(0,G.fileURLToPath)(i))})(c,n,r,o,i)}return a?new URL(rn.call(_n,l.href,()=>t)):new URL(t,l)}function X(e){let t=Number(e);return`${t}`===e&&t>=0&&t<4294967295}function kn(e,t,n,r,i,a,o,s,c){if(typeof t==`string`)return On(t,n,r,e,i,a,o,s,c);if(Array.isArray(t)){let l=t;if(l.length===0)return null;let u,d=-1;for(;++d<l.length;){let t=l[d],f;try{f=kn(e,t,n,r,i,a,o,s,c)}catch(e){if(u=e,e.code===`ERR_INVALID_PACKAGE_TARGET`)continue;throw e}if(f!==void 0){if(f!==null)return f;u=null}}if(u==null)return null;throw u}if(typeof t==`object`&&t){let l=Object.getOwnPropertyNames(t),u=-1;for(;++u<l.length;)if(X(l[u]))throw new on((0,G.fileURLToPath)(e),i,`"exports" cannot contain numeric property keys.`);for(u=-1;++u<l.length;){let d=l[u];if(d==="default"||c&&c.has(d)){let l=kn(e,t[d],n,r,i,a,o,s,c);if(l===void 0)continue;return l}}return null}if(t===null)return null;throw Dn(r,t,e,o,i)}function An(e,t,n){if(jt.noDeprecation)return;let r=(0,G.fileURLToPath)(t);yn.has(r+`|`+e)||(yn.add(r+`|`+e),jt.emitWarning(`Use of deprecated trailing slash pattern mapping "${e}" in the "exports" field module resolution of the package at ${r}${n?` imported from ${(0,G.fileURLToPath)(n)}`:``}. Mapping specifiers ending in "/" is no longer supported.`,`DeprecationWarning`,`DEP0155`))}function jn(e,t,n,r,i){let a=n.exports;if(function(e,t,n){if(typeof e==`string`||Array.isArray(e))return!0;if(typeof e!=`object`||!e)return!1;let r=Object.getOwnPropertyNames(e),i=!1,a=0,o=-1;for(;++o<r.length;){let e=r[o],s=e===``||e[0]!==`.`;if(a++===0)i=s;else if(i!==s)throw new on((0,G.fileURLToPath)(t),n,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return i}(a,e,r)&&(a={".":a}),pn.call(a,t)&&!t.includes(`*`)&&!t.endsWith(`/`)){let n=kn(e,a[t],``,t,r,!1,!1,!1,i);if(n==null)throw En(t,e,r);return n}let o=``,s=``,c=Object.getOwnPropertyNames(a),l=-1;for(;++l<c.length;){let n=c[l],i=n.indexOf(`*`);if(i!==-1&&t.startsWith(n.slice(0,i))){t.endsWith(`/`)&&An(t,e,r);let a=n.slice(i+1);t.length>=n.length&&t.endsWith(a)&&Mn(o,n)===1&&n.lastIndexOf(`*`)===i&&(o=n,s=t.slice(i,t.length-a.length))}}if(o){let n=kn(e,a[o],s,o,r,!0,!1,t.endsWith(`/`),i);if(n==null)throw En(t,e,r);return n}throw En(t,e,r)}function Mn(e,t){let n=e.indexOf(`*`),r=t.indexOf(`*`),i=n===-1?e.length:n+1,a=r===-1?t.length:r+1;return i>a?-1:a>i||n===-1?1:r===-1||e.length>t.length?-1:+(t.length>e.length)}function Nn(e,t,n){if(e===`#`||e.startsWith(`#/`)||e.endsWith(`/`))throw new an(e,`is not a valid internal imports specifier name`,(0,G.fileURLToPath)(t));let r,i=Jt(t);if(i.exists){r=(0,G.pathToFileURL)(i.pjsonPath);let a=i.imports;if(a)if(pn.call(a,e)&&!e.includes(`*`)){let i=kn(r,a[e],``,e,t,!1,!0,!1,n);if(i!=null)return i}else{let i=``,o=``,s=Object.getOwnPropertyNames(a),c=-1;for(;++c<s.length;){let t=s[c],n=t.indexOf(`*`);if(n!==-1&&e.startsWith(t.slice(0,-1))){let r=t.slice(n+1);e.length>=t.length&&e.endsWith(r)&&Mn(i,t)===1&&t.lastIndexOf(`*`)===n&&(i=t,o=e.slice(n,e.length-r.length))}}if(i){let e=kn(r,a[i],o,i,t,!0,!0,!1,n);if(e!=null)return e}}}throw function(e,t,n){return new ln(e,t&&(0,G.fileURLToPath)(new URL(`.`,t)),(0,G.fileURLToPath)(n))}(e,r,t)}function Pn(e,t,n){if(lt.builtinModules.includes(e))return new URL(`node:`+e);let{packageName:r,packageSubpath:i,isScoped:a}=function(e,t){let n=e.indexOf(`/`),r=!0,i=!1;e[0]===`@`&&(i=!0,n===-1||e.length===0?r=!1:n=e.indexOf(`/`,n+1));let a=n===-1?e:e.slice(0,n);if(gn.exec(a)!==null&&(r=!1),!r)throw new an(e,`is not a valid package name`,(0,G.fileURLToPath)(t));return{packageName:a,packageSubpath:`.`+(n===-1?``:e.slice(n)),isScoped:i}}(e,t),o=Jt(t);if(o.exists){let e=(0,G.pathToFileURL)(o.pjsonPath);if(o.name===r&&o.exports!==void 0&&o.exports!==null)return jn(e,i,o,t,n)}let s,c=new URL(`./node_modules/`+r+`/package.json`,t),l=(0,G.fileURLToPath)(c);do{let o=Cn(l.slice(0,-13));if(!o||!o.isDirectory()){s=l,c=new URL((a?`../../../../node_modules/`:`../../../node_modules/`)+r+`/package.json`,c),l=(0,G.fileURLToPath)(c);continue}let u=qt(l,{base:t,specifier:e});return u.exports!==void 0&&u.exports!==null?jn(c,i,u,t,n):i===`.`?Tn(c,u,t):new URL(i,c)}while(l.length!==s.length)}function Fn(e,t,n,r){n===void 0&&(n=nn());let i=t.protocol,a=i===`data:`||i===`http:`||i===`https:`,o;if(function(e){return e!==``&&(e[0]===`/`||function(e){return e[0]===`.`&&(e.length===1||e[1]===`/`||e[1]===`.`&&(e.length===2||e[2]===`/`))}(e))}(e))try{o=new URL(e,t)}catch(n){let r=new fn(e,t);throw r.cause=n,r}else if(i===`file:`&&e[0]===`#`)o=Nn(e,t,n);else try{o=new URL(e)}catch(r){if(a&&!lt.builtinModules.includes(e)){let n=new fn(e,t);throw n.cause=r,n}o=Pn(e,t,n)}return At.ok(o!==void 0,`expected to be defined`),o.protocol===`file:`?function(e,t){if(vn.exec(e.pathname)!==null)throw new an(e.pathname,`must not include encoded "/" or "\\" characters`,(0,G.fileURLToPath)(t));let n;try{n=(0,G.fileURLToPath)(e)}catch(n){let r=n;throw Object.defineProperty(r,"input",{value:String(e)}),Object.defineProperty(r,"module",{value:String(t)}),r}let r=Cn(n.endsWith(`/`)?n.slice(-1):n);if(r&&r.isDirectory()){let r=new dn(n,(0,G.fileURLToPath)(t));throw r.url=String(e),r}if(!r||!r.isFile()){let r=new cn(n||e.pathname,t&&(0,G.fileURLToPath)(t),!0);throw r.url=String(e),r}{let t=(0,U.realpathSync)(n),{search:r,hash:i}=e;(e=(0,G.pathToFileURL)(t+(n.endsWith(Mt.sep)?`/`:``))).search=r,e.hash=i}return e}(o,t):o}function In(e){return typeof e!=`string`||e.startsWith(`file://`)?It((0,G.fileURLToPath)(e)):It(e)}function Ln(e){return(0,G.pathToFileURL)(In(e)).toString()}let Rn=new Set([`node`,`import`]),zn=[`.mjs`,`.cjs`,`.js`,`.json`],Bn=new Set([`ERR_MODULE_NOT_FOUND`,`ERR_UNSUPPORTED_DIR_IMPORT`,`MODULE_NOT_FOUND`,`ERR_PACKAGE_PATH_NOT_EXPORTED`]);function Vn(e,t,n){try{return Fn(e,t,n)}catch(e){if(!Bn.has(e?.code))throw e}}function Hn(e,t={}){if(typeof e!=`string`){if(!(e instanceof URL))throw TypeError("input must be a `string` or `URL`");e=In(e)}if(/(?:node|data|http|https):/.test(e))return e;if(Ft.has(e))return`node:`+e;if(e.startsWith(`file://`)&&(e=In(e)),W(e))try{if((0,U.statSync)(e).isFile())return Ln(e)}catch(e){if(e?.code!==`ENOENT`)throw e}let n=t.conditions?new Set(t.conditions):Rn,r=(Array.isArray(t.url)?t.url:[t.url]).filter(Boolean).map(e=>new URL(function(e){return typeof e!=`string`&&(e=e.toString()),/(?:node|data|http|https|file):/.test(e)?e:Ft.has(e)?`node:`+e:`file://`+encodeURI(It(e))}(e.toString())));r.length===0&&r.push(new URL(Ln(process.cwd())));let i=[...r];for(let e of r)e.protocol===`file:`&&i.push(new URL(`./`,e),new URL(ht(e.pathname,`_index.js`),e),new URL(`node_modules`,e));let a;for(let r of i){if(a=Vn(e,r,n),a)break;for(let i of[``,`/index`]){for(let o of t.extensions||zn)if(a=Vn(ht(e,i)+o,r,n),a)break;if(a)break}if(a)break}if(!a){let t=Error(`Cannot find module ${e} imported from ${i.join(`, `)}`);throw t.code=`ERR_MODULE_NOT_FOUND`,t}return Ln(a)}function Un(e,t){return Hn(e,t)}function Wn(e,t){return In(Un(e,t))}let Gn=/(?:[\s;]|^)(?:import[\s\w*,{}]*from|import\s*["'*{]|export\b\s*(?:[*{]|default|class|type|function|const|var|let|async function)|import\.meta\b)/m,Kn=/\/\*.+?\*\/|\/\/.*(?=[nr])/g;function qn(e,t={}){return t.stripComments&&(e=e.replace(Kn,``)),Gn.test(e)}function Jn(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)}let Yn=new Set([`/`,`\\`,void 0]),Xn=Symbol.for(`pathe:normalizedAlias`),Zn=/[/\\]/;function Qn(e){if(e[Xn])return e;let t=Object.fromEntries(Object.entries(e).sort(([e],[t])=>function(e,t){return t.split(`/`).length-e.split(`/`).length}(e,t)));for(let e in t)for(let n in t)n===e||e.startsWith(n)||t[e]?.startsWith(n)&&Yn.has(t[e][n.length])&&(t[e]=t[n]+t[e].slice(n.length));return Object.defineProperty(t,Xn,{value:!0,enumerable:!1}),t}function $n(e=`/`){let t=e[e.length-1];return t===`/`||t===`\\`}var er={rE:`2.6.1`};let tr=A(`node:crypto`);var nr=r.n(tr);let Z=globalThis.process?.env||Object.create(null),rr=globalThis.process||{env:Z},ir=rr!==void 0&&rr.env&&rr.env.NODE_ENV||void 0,ar=[[`claude`,[`CLAUDECODE`,`CLAUDE_CODE`]],[`replit`,[`REPL_ID`]],[`gemini`,[`GEMINI_CLI`]],[`codex`,[`CODEX_SANDBOX`,`CODEX_THREAD_ID`]],[`opencode`,[`OPENCODE`]],[`pi`,[or(`PATH`,/\.pi[\\/]agent/)]],[`auggie`,[`AUGMENT_AGENT`]],[`goose`,[`GOOSE_PROVIDER`]],[`devin`,[or(`EDITOR`,/devin/)]],[`cursor`,[`CURSOR_AGENT`]],[`kiro`,[or(`TERM_PROGRAM`,/kiro/)]]];function or(e,t){return()=>{let n=Z[e];return!!n&&t.test(n)}}let sr=function(){let e=Z.AI_AGENT;if(e)return{name:e.toLowerCase()};for(let[e,t]of ar)for(let n of t)if(typeof n==`string`?Z[n]:n())return{name:e};return{}}(),cr=(sr.name,sr.name,[[`APPVEYOR`],[`AWS_AMPLIFY`,`AWS_APP_ID`,{ci:!0}],[`AZURE_PIPELINES`,`SYSTEM_TEAMFOUNDATIONCOLLECTIONURI`],[`AZURE_STATIC`,`INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN`],[`APPCIRCLE`,`AC_APPCIRCLE`],[`BAMBOO`,`bamboo_planKey`],[`BITBUCKET`,`BITBUCKET_COMMIT`],[`BITRISE`,`BITRISE_IO`],[`BUDDY`,`BUDDY_WORKSPACE_ID`],[`BUILDKITE`],[`CIRCLE`,`CIRCLECI`],[`CIRRUS`,`CIRRUS_CI`],[`CLOUDFLARE_PAGES`,`CF_PAGES`,{ci:!0}],[`CLOUDFLARE_WORKERS`,`WORKERS_CI`,{ci:!0}],[`GOOGLE_CLOUDRUN`,`K_SERVICE`],[`GOOGLE_CLOUDRUN_JOB`,`CLOUD_RUN_JOB`],[`CODEBUILD`,`CODEBUILD_BUILD_ARN`],[`CODEFRESH`,`CF_BUILD_ID`],[`DRONE`],[`DRONE`,`DRONE_BUILD_EVENT`],[`DSARI`],[`GITHUB_ACTIONS`],[`GITLAB`,`GITLAB_CI`],[`GITLAB`,`CI_MERGE_REQUEST_ID`],[`GOCD`,`GO_PIPELINE_LABEL`],[`LAYERCI`],[`JENKINS`,`JENKINS_URL`],[`HUDSON`,`HUDSON_URL`],[`MAGNUM`],[`NETLIFY`],[`NETLIFY`,`NETLIFY_LOCAL`,{ci:!1}],[`NEVERCODE`],[`RENDER`],[`SAIL`,`SAILCI`],[`SEMAPHORE`],[`SCREWDRIVER`],[`SHIPPABLE`],[`SOLANO`,`TDDIUM`],[`STRIDER`],[`TEAMCITY`,`TEAMCITY_VERSION`],[`TRAVIS`],[`VERCEL`,`NOW_BUILDER`],[`VERCEL`,`VERCEL`,{ci:!1}],[`VERCEL`,`VERCEL_ENV`,{ci:!1}],[`APPCENTER`,`APPCENTER_BUILD_ID`],[`CODESANDBOX`,`CODESANDBOX_SSE`,{ci:!1}],[`CODESANDBOX`,`CODESANDBOX_HOST`,{ci:!1}],[`STACKBLITZ`],[`STORMKIT`],[`CLEAVR`],[`ZEABUR`],[`CODESPHERE`,`CODESPHERE_APP_ID`,{ci:!0}],[`RAILWAY`,`RAILWAY_PROJECT_ID`],[`RAILWAY`,`RAILWAY_SERVICE_ID`],[`DENO-DEPLOY`,`DENO_DEPLOY`],[`DENO-DEPLOY`,`DENO_DEPLOYMENT_ID`],[`FIREBASE_APP_HOSTING`,`FIREBASE_APP_HOSTING`,{ci:!0}],[`EDGEONE_PAGES`,`EO_PAGES_CI`,{ci:!0}]]),lr=function(){for(let e of cr)if(Z[e[1]||e[0]])return{name:e[0].toLowerCase(),...e[2]};return Z.SHELL===`/bin/jsh`&&rr.versions?.webcontainer?{name:`stackblitz`,ci:!1}:{name:``,ci:!1}}(),ur=(lr.name,rr.platform||``);Z.CI||lr.ci;let dr=!!rr.stdout?.isTTY;Z.DEBUG,ir===`test`||Z.TEST;let fr=(ir===`production`||Z.MODE,ir===`dev`||ir===`development`||Z.MODE,Z.MINIMAL,/^win/i.test(ur)),pr=(/^linux/i.test(ur),/^darwin/i.test(ur),!Z.NO_COLOR&&(Z.FORCE_COLOR||(dr||fr)&&Z.TERM),(rr.versions?.node||``).replace(/^v/,``)||null),mr=(Number(pr?.split(`.`)[0]),!!rr?.versions?.node),hr=`Bun`in globalThis,gr=`Deno`in globalThis,_r=`fastly`in globalThis,vr=[[`Netlify`in globalThis,`netlify`],[`EdgeRuntime`in globalThis,`edge-light`],[globalThis.navigator?.userAgent===`Cloudflare-Workers`,`workerd`],[_r,`fastly`],[gr,`deno`],[hr,`bun`],[mr,`node`]];(function(){let e=vr.find(e=>e[0]);e&&e[1]})();let yr=A(`node:tty`)?.WriteStream?.prototype?.hasColors?.()??!1,Q=(e,t)=>{if(!yr)return e=>e;let n=`[${e}m`,r=`[${t}m`;return e=>{let i=e+``,a=i.indexOf(r);if(a===-1)return n+i+r;let o=n,s=0,c=(t===22?r:``)+n;for(;a!==-1;)o+=i.slice(s,a)+c,s=a+r.length,a=i.indexOf(r,s);return o+=i.slice(s)+r,o}},br=(Q(0,0),Q(1,22),Q(2,22),Q(3,23),Q(4,24),Q(53,55),Q(7,27),Q(8,28),Q(9,29),Q(30,39),Q(31,39)),xr=Q(32,39),Sr=Q(33,39),Cr=Q(34,39),wr=(Q(35,39),Q(36,39)),Tr=(Q(37,39),Q(90,39));Q(40,49),Q(41,49),Q(42,49),Q(43,49),Q(44,49),Q(45,49),Q(46,49),Q(47,49),Q(100,49),Q(91,39),Q(92,39),Q(93,39),Q(94,39),Q(95,39),Q(96,39),Q(97,39),Q(101,49),Q(102,49),Q(103,49),Q(104,49),Q(105,49),Q(106,49),Q(107,49);function Er(e){if(typeof e!=`string`||e.startsWith(`file://`))return!1;try{return(0,U.lstatSync)(e).isDirectory()}catch{return!1}}function Dr(e,t=8){return(function(){if(Ar!==void 0)return Ar;try{return Ar=!!nr().getFips?.(),Ar}catch{return Ar=!1,Ar}}()?nr().createHash(`sha256`):nr().createHash(`md5`)).update(e).digest(`hex`).slice(0,t)}let Or={true:xr(`true`),false:Sr(`false`),"[rebuild]":Sr(`[rebuild]`),"[esm]":Cr(`[esm]`),"[cjs]":xr(`[cjs]`),"[import]":Cr(`[import]`),"[require]":xr(`[require]`),"[native]":wr(`[native]`),"[transpile]":Sr(`[transpile]`),"[fallback]":br(`[fallback]`),"[unknown]":br(`[unknown]`),"[hit]":xr(`[hit]`),"[miss]":Sr(`[miss]`),"[json]":xr(`[json]`),"[data]":xr(`[data]`)};function $(e,...t){if(!e.opts.debug)return;let n=process.cwd();console.log(Tr([`[jiti]`,...t.map(e=>e in Or?Or[e]:typeof e==`string`?e.replace(n,`.`):JSON.stringify(e))].join(` `)))}function kr(e,t){return e.opts.interopDefault?function(e){let t=typeof e;if(e===null||t!==`object`&&t!==`function`)return e;let n=e.default,r=typeof n,i=n==null,a=r===`object`||r===`function`;if(i&&e instanceof Promise)return e;let o=r===`function`&&t!==`function`,s=a&&!(n instanceof Promise),c=new Map;return new Proxy(e,{get(t,r){if(c.has(r))return c.get(r);let a;return r==="__esModule"?a=!0:r==="default"?a=i?e:typeof n?.default==`function`&&e.__esModule?n.default:n:r in t?a=t[r]:s&&(a=n[r],typeof a==`function`&&(a=a.bind(n))),c.set(r,a),a},apply:o?(e,t,r)=>Reflect.apply(n,t,r):void 0})}(t):t}let Ar;function jr(e,t){return!!Mr(e,t)}function Mr(e,t,n){let r=process.env[e];if(!(e in process.env))return t;try{return JSON.parse(r)}catch{return n?r:t}}let Nr=/\.(c|m)?j(sx?)$/,Pr=/\.(c|m)?t(sx?)$/;function Fr(e,t,n){let r,i;if(e.isNativeRe.test(t))return t;if(e.resolveTsConfigPaths&&!n.skipTsConfigPaths){let r=e.resolveTsConfigPaths(t);for(let t of r){let r=Fr(e,t,{...n,try:!0,skipTsConfigPaths:!0});if(r)return r}}e.alias&&(t=function(e,t){let n=_t(e);t=Qn(t);for(let[e,r]of Object.entries(t))if(n.startsWith(e)&&$n(n[($n(e)?e.slice(0,-1):e).length]))return Ct(r,n.slice(e.length));return n}(t,e.alias));let a=n?.parentURL||e.url;Er(a)&&(a=Ct(a,`_index.js`));let o=(n?.async?[n?.conditions,[`node`,`import`],[`node`,`require`]]:[n?.conditions,[`node`,`require`],[`node`,`import`]]).filter(Boolean);for(let n of o){try{r=Wn(t,{url:a,conditions:n,extensions:e.opts.extensions})}catch(e){i=e}if(r)return r}try{return e.nativeRequire.resolve(t,{paths:n.paths})}catch(e){i=e}for(let i of e.additionalExts)if(r=Ir(e,t+i,a,n)||Ir(e,t+`/index`+i,a,n),r||(Pr.test(e.filename)||Pr.test(e.parentModule?.filename||``)||Nr.test(t))&&(r=Ir(e,t.replace(Nr,`.$1t$2`),a,n),r))return r;if(!n?.try)throw i}function Ir(e,t,n,r){try{return e.nativeRequire.resolve(t,{...r,paths:[Ot(In(n)),...r?.paths||[]]})}catch{}}let Lr=A(`node:fs/promises`),Rr=A(`node:perf_hooks`),zr=A(`node:vm`);var Br=r.n(zr);function Vr(e,t,n){let r=e.parentCache||{};if(t.startsWith(`node:`))return Hr(e,t,n.async);if(t.startsWith(`file:`))t=(0,G.fileURLToPath)(t);else if(t.startsWith(`data:`)){if(!n.async)throw Error("`data:` URLs are only supported in ESM context. Use `import` or `jiti.import` instead.");return $(e,`[native]`,`[data]`,`[import]`,t),Hr(e,t,!0)}if(lt.builtinModules.includes(t)||t===`.pnp.js`)return Hr(e,t,n.async);if(e.opts.virtualModules&&t in e.opts.virtualModules){$(e,`[virtual]`,t);let r=e.opts.virtualModules[t];return n.async?Promise.resolve(kr(e,r)):kr(e,r)}if(e.opts.tryNative&&!e.opts.transformOptions)try{if(!(t=Fr(e,t,n))&&n.try)return;if($(e,`[try-native]`,n.async&&e.nativeImport?`[import]`:`[require]`,t),n.async&&e.nativeImport)return e.nativeImport(t).then(n=>(!1===e.opts.moduleCache&&delete e.nativeRequire.cache[t],kr(e,n))).catch(r=>($(e,`[try-native] Using fallback for ${t} because of an error:`,r),Vr({...e,opts:{...e.opts,tryNative:!1}},t,n)));{let n=e.nativeRequire(t);return!1===e.opts.moduleCache&&delete e.nativeRequire.cache[t],kr(e,n)}}catch(n){$(e,`[try-native] Using fallback for ${t} because of an error:`,n)}let i=Fr(e,t,n);if(!i&&n.try)return;let a=Dt(i);if(a===`.json`){$(e,`[json]`,i);let t=e.nativeRequire(i);return t&&!(`default`in t)&&Object.defineProperty(t,"default",{value:t,enumerable:!1}),t}if(a&&!e.opts.extensions.includes(a))return $(e,`[native]`,`[unknown]`,n.async?`[import]`:`[require]`,i),Hr(e,i,n.async);if(e.isNativeRe.test(i))return $(e,`[native]`,n.async?`[import]`:`[require]`,i),Hr(e,i,n.async);if(r[i])return kr(e,r[i]?.exports);if(e.opts.moduleCache){let t=e.nativeRequire.cache[i];if(t?.loaded)return kr(e,t.exports)}return Kr(e,(0,U.readFileSync)(i,`utf8`),{id:t,filename:i,ext:a,cache:r,async:n.async})}function Hr(e,t,n){return n&&e.nativeImport?e.nativeImport(function(e){return fr&&W(e)?Ln(e):e}(t)).then(t=>kr(e,t)):kr(e,e.nativeRequire(t))}function Ur(e,t,n){if(!e.opts.fsCache||!t.filename)return n();let r=` /* v9-${Dr(t.source,16)} */\n`,i=`${kt(Ot(t.filename))}-${function(e){let t=e.split(Zn).pop();if(!t)return;let n=t.lastIndexOf(`.`);return n<=0?t:t.slice(0,n)}(t.filename)}`+(e.opts.sourceMaps?`+map`:``)+(t.interopDefault?`.i`:``)+`.${Dr(t.filename)}`+(t.async?`.mjs`:`.cjs`);t.jsx&&t.filename.endsWith(`x`)&&(i+=`x`);let a=e.opts.fsCache,o=Ct(a,i);if(!e.opts.rebuildFsCache&&(0,U.existsSync)(o)){let n=(0,U.readFileSync)(o,`utf8`);if(n.endsWith(r))return $(e,`[cache]`,`[hit]`,t.filename,`~>`,o),n}$(e,`[cache]`,`[miss]`,t.filename);let s=n();return s.includes(`__JITI_ERROR__`)||((0,U.writeFileSync)(o,s+r,`utf8`),$(e,`[cache]`,`[store]`,t.filename,`~>`,o)),s}function Wr(t){if(!0===t.opts.fsCache&&(t.opts.fsCache=function(t){let n=t.filename&&Tt(t.filename,`../node_modules`);if(n&&(0,U.existsSync)(n))return Ct(n,`.cache/jiti`);let r=(0,e.tmpdir)();if(process.env.TMPDIR&&r===process.cwd()&&!process.env.JITI_RESPECT_TMPDIR_ENV){let t=process.env.TMPDIR;delete process.env.TMPDIR,r=(0,e.tmpdir)(),process.env.TMPDIR=t}return Ct(r,`jiti`)}(t)),t.opts.fsCache)try{if((0,U.mkdirSync)(t.opts.fsCache,{recursive:!0}),!function(e){try{return(0,U.accessSync)(e,U.constants.W_OK),!0}catch{return!1}}(t.opts.fsCache))throw Error(`directory is not writable!`)}catch(e){$(t,`Error creating cache directory at `,t.opts.fsCache,e),t.opts.fsCache=!1}}function Gr(e,t){let n=Ur(e,t,()=>{let n=e.opts.transform({...e.opts.transformOptions,babel:{...e.opts.sourceMaps?{sourceFileName:t.filename,sourceMaps:`inline`}:{},...e.opts.transformOptions?.babel},interopDefault:e.opts.interopDefault,...t});return n.error&&e.opts.debug&&$(e,n.error),n.code});return n.startsWith(`#!`)&&(n=`// `+n),n}function Kr(t,n,r={}){let i=r.id||(r.filename?kt(r.filename):`_jitiEval.${r.ext||(r.async?`mjs`:`js`)}`),a=r.filename||Fr(t,i,{async:r.async}),o=r.ext||Dt(a),s=r.cache||t.parentCache||{},c=/\.[cm]?tsx?$/.test(o),l=o===`.mjs`||o===`.js`&&function(e){for(;e&&e!==`.`&&e!==`/`;){e=Ct(e,`..`);try{let t=(0,U.readFileSync)(Ct(e,`package.json`),`utf8`);try{return JSON.parse(t)}catch{}break}catch{}}}(a)?.type===`module`,u=o===`.cjs`,d=r.forceTranspile??(!u&&!(l&&r.async)&&(c||l||t.isTransformRe.test(a)||qn(n))),f=Rr.performance.now();if(d){n=Gr(t,{filename:a,source:n,ts:c,async:r.async??!1,jsx:t.opts.jsx});let e=Math.round(1e3*(Rr.performance.now()-f))/1e3;$(t,`[transpile]`,r.async?`[esm]`:`[cjs]`,a,`(${e}ms)`)}else{if($(t,`[native]`,r.async?`[import]`:`[require]`,a),r.async)return Promise.resolve(Hr(t,a,r.async)).catch(e=>($(t,`Native import error:`,e),$(t,`[fallback]`,a),Kr(t,n,{...r,forceTranspile:!0})));try{return Hr(t,a,r.async)}catch(e){$(t,`Native require error:`,e),$(t,`[fallback]`,a),n=Gr(t,{filename:a,source:n,ts:c,async:r.async??!1,jsx:t.opts.jsx})}}let p=new lt.Module(a);p.filename=a,t.parentModule&&(p.parent=t.parentModule,Array.isArray(t.parentModule.children)&&!t.parentModule.children.includes(p)&&t.parentModule.children.push(p));let m=Jr(a,t.opts,{parentModule:p,parentCache:s,nativeImport:t.nativeImport,onError:t.onError,createRequire:t.createRequire},!0),h;p.require=m,p.path=Ot(a),p.paths=lt.Module._nodeModulePaths(p.path),s[a]=p,t.opts.moduleCache&&(t.nativeRequire.cache[a]=p);let g=function(e,t){return`(${t?.async?`async `:``}function (exports, require, module, __filename, __dirname, jitiImport, jitiESMResolve) { ${e}\n});`}(n,{async:r.async});try{h=Br().runInThisContext(g,{filename:a,lineOffset:0,displayErrors:!1})}catch(n){n.name===`SyntaxError`&&r.async&&t.nativeImport?($(t,`[esm]`,`[import]`,`[fallback]`,a),h=function(t,n,r,i,a){let o=`export default ${n}`,s=a?void 0:`data:text/javascript;base64,${Buffer.from(o).toString(`base64`)}`;return(...n)=>{let a,c=()=>(a=function(t,n){let r=Ct((0,e.tmpdir)(),`jiti-esm`);try{(0,U.mkdirSync)(r,{recursive:!0})}catch{}let i=Ct(r,`${kt(n,Dt(n))}-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);return(0,U.writeFileSync)(i,t),i}(o,r),$(t,`[esm]`,`[tempfile]`,a),i(Ln(a)));return(s?i(s).catch(e=>{if(e?.code!==`ENAMETOOLONG`)throw e;return c()}):c()).then(e=>e.default(...n)).finally(()=>{a&&(0,Lr.unlink)(a).catch(()=>{})})}}(t,g,a,t.nativeImport,t.opts.esmEvalTempFile)):(t.opts.moduleCache&&delete t.nativeRequire.cache[a],t.onError(n))}let _;try{_=h(p.exports,p.require,p,p.filename,Ot(p.filename),m.import,m.esmResolve)}catch(e){t.opts.moduleCache&&delete t.nativeRequire.cache[a],t.onError(e)}function v(){if(p.exports&&p.exports.__JITI_ERROR__){let{filename:e,line:n,column:r,code:i,message:a}=p.exports.__JITI_ERROR__,o=Error(`${i}: ${a} \n ${`${e}:${n}:${r}`}`);Error.captureStackTrace(o,Vr),t.onError(o)}return p.loaded=!0,kr(t,p.exports)}return r.async?Promise.resolve(_).then(v):v()}let qr=(0,e.platform)()===`win32`;function Jr(e,t={},n,i=!1){let a=i?t:function(e){let t={fsCache:jr(`JITI_FS_CACHE`,jr(`JITI_CACHE`,!0)),rebuildFsCache:jr(`JITI_REBUILD_FS_CACHE`,!1),moduleCache:jr(`JITI_MODULE_CACHE`,jr(`JITI_REQUIRE_CACHE`,!0)),debug:jr(`JITI_DEBUG`,!1),sourceMaps:jr(`JITI_SOURCE_MAPS`,!1),interopDefault:jr(`JITI_INTEROP_DEFAULT`,!0),extensions:Mr(`JITI_EXTENSIONS`,[`.js`,`.mjs`,`.cjs`,`.ts`,`.tsx`,`.mts`,`.cts`,`.mtsx`,`.ctsx`]),alias:Mr(`JITI_ALIAS`,{}),nativeModules:Mr(`JITI_NATIVE_MODULES`,[]),transformModules:Mr(`JITI_TRANSFORM_MODULES`,[]),tryNative:Mr(`JITI_TRY_NATIVE`,`Bun`in globalThis),esmEvalTempFile:jr(`JITI_ESM_EVAL_TEMP_FILE`,!1),jsx:jr(`JITI_JSX`,!1),tsconfigPaths:Mr(`JITI_TSCONFIG_PATHS`,!1,!0)};t.jsx&&t.extensions.push(`.jsx`,`.tsx`);let n={};return e.cache!==void 0&&(n.fsCache=e.cache),e.requireCache!==void 0&&(n.moduleCache=e.requireCache),{...t,...n,...e}}(t);typeof e==`string`&&e.startsWith(`file://`)&&(e=In(e));let o=a.alias&&Object.keys(a.alias).length>0?Qn(a.alias||{}):void 0,s;if(a.tsconfigPaths){let{getTsconfig:t,createPathsMatcher:n}=r(`./node_modules/.pnpm/get-tsconfig@4.14.0/node_modules/get-tsconfig/dist/index.cjs`),i=t(typeof a.tsconfigPaths==`string`?a.tsconfigPaths:Ot(e));i&&(s=n(i))}let c=[`typescript`,`jiti`,...a.nativeModules||[]],l=RegExp(`node_modules/(${c.map(e=>Jn(e)).join(`|`)})/`),u=[...a.transformModules||[]],d=RegExp(`node_modules/(${u.map(e=>Jn(e)).join(`|`)})/`);e||=process.cwd(),!i&&Er(e)&&(e=Ct(e,`_index.js`));let f=Ln(e),p=[...a.extensions].filter(e=>e!==`.js`),m=n.createRequire(qr?e.replace(/\//g,`\\`):e),h={filename:e,url:f,opts:a,alias:o,resolveTsConfigPaths:s,nativeModules:c,transformModules:u,isNativeRe:l,isTransformRe:d,additionalExts:p,nativeRequire:m,onError:n.onError,parentModule:n.parentModule,parentCache:n.parentCache,nativeImport:n.nativeImport,createRequire:n.createRequire};return i||$(h,`[init]`,...[[`version:`,er.rE],[`module-cache:`,a.moduleCache],[`fs-cache:`,a.fsCache],[`rebuild-fs-cache:`,a.rebuildFsCache],[`interop-defaults:`,a.interopDefault]].flat()),i||Wr(h),Object.assign(function(e){return Vr(h,e,{async:!1})},{cache:a.moduleCache?m.cache:Object.create(null),extensions:m.extensions,main:m.main,options:a,resolve:Object.assign(function(e,t){return Fr(h,e,{...t,async:!1})},{paths:m.resolve.paths}),transform:e=>Gr(h,e),evalModule:(e,t)=>Kr(h,e,t),async import(e,t){let n=await Vr(h,e,{...t,async:!0});return t?.default?n?.default??n:n},esmResolve(e,t){typeof t==`string`&&(t={parentURL:t});let n=Fr(h,e,{parentURL:f,...t,async:!0});return!n||typeof n!=`string`||n.startsWith(`file://`)?n:Ln(n)}})}})(),t.exports=i.default})()}))();var fe=class{emitter;constructor(){this.emitter=r()}on(e,t){le(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){le(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){le(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},pe=class{listeners;constructor(){this.listeners=new Map}on(e,t){le(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){le(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=le(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 j(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 me=j(class extends fe{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 M=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)throw this.reportInvalidConfigFile(t.issues),Error(`Invalid config data for ${this._path}: ${t.issues.map(e=>e.message).join(`; `)}`);this.data=this.onBeforeSave(e),this.save(e)}get(e={}){return this.data?this.data:this.load(e)}getKey(e,t={}){return this.get(t)[e]}save(e){let t=this.onBeforeSave(e);try{d(this.getFilePath()),i.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(e={}){let{createIfMissing:t=!0}=e;if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){t&&this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return t&&(this.data=e),e}try{let e=i.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=n(`string.json.parse`).to(`object`)(e);if(t instanceof n.errors)return this._defaultValue;let r=this._schema[`~standard`].validate(t);if(r instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return r.issues?this.migrate(t,this._defaultValue):this.migrate(r.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return i.accessSync(e,i.constants.R_OK|i.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return i.accessSync(e,i.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]);return n}reportInvalidConfigFile(e){me.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}};function N(e,t,n){return typeof e!=`object`||!e?String(e):e instanceof Error?JSON.stringify(e,(e,t)=>{if(t instanceof Error){let e={};for(let n of Object.getOwnPropertyNames(t))e[n]=t[n];return e}return t},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)}const P=/\x1b\[[0-9;]*m/g;function he(e){return e.replace(P,``)}var ge=class e extends fe{stream;logPath;baseFileName;currentDate;rotationCheckInterval;isRotating=!1;constructor(e,t){super(),this.logPath=e,this.baseFileName=t.replace(`.log`,``),this.currentDate=this.getDateString(new Date),this.ensureLogDirectory(),this.ensureLogFile(),this.stream=this.createStream(),this.rotationCheckInterval=this.startRotationCheck(),this.cleanupOldLogs()}static scope(t,n){return new e(t,n)}log(...e){this.write(`info`,...e)}error(...e){this.write(`error`,...e)}warn(...e){this.write(`warn`,...e)}info(...e){this.write(`info`,...e)}debug(...e){this.write(`debug`,...e)}async close(){clearInterval(this.rotationCheckInterval),await new Promise(e=>{this.stream.end(()=>e())})}getCurrentFileName(){return this.getFileName(this.currentDate)}static getMessageElements(e,...t){let n=new Date;return{timestamp:n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getUTCMilliseconds().toString().padStart(3,`0`)}`,level:e,message:t.map(e=>N(e)).join(` `)}}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{s(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=p(this.logPath,this.getFileName(this.currentDate));if(!o(e))try{u(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return`${e.getUTCFullYear()}-${(e.getUTCMonth()+1).toString().padStart(2,`0`)}-${e.getUTCDate().toString().padStart(2,`0`)}`}createStream(){return a(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=c(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{l(p(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}ensureStreamValid(){if(!this.stream.writable||this.stream.destroyed)try{this.stream=this.createStream()}catch(e){this.emit(`error`,e instanceof Error?e:Error(String(e)))}}write(t,...n){let{timestamp:r,message:i}=e.getMessageElements(t,...n),a=`[${r}] [${t}] ${he(i)}\n`;this.ensureStreamValid(),this.stream.write(a,e=>{if(e)if(e.code===`ERR_STREAM_WRITE_AFTER_END`||!this.stream.writable)try{this.stream=this.createStream(),this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}catch(e){this.emit(`error`,e instanceof Error?e:Error(String(e)))}else this.emit(`error`,e);else this.emit(`write`,a)})}};const F=()=>h.join(process.env.APPDATA??``,`overlayed`),_e=()=>h.join(F(),`logs`),ve=e=>h.join(F(),`apps`,e),ye=e=>h.join(ve(e),`logs`),be=()=>h.join(F(),`meta.json`),xe=()=>h.join(F(),`crash-dumps`);var Se=class{fileLogger;path;appId;messageQueue=new de;fileName;_debug=!1;silent=!1;forceSilent=!1;constructor(e){this.fileName=e}init(e,t=!1,n=!1,r=!1){this.appId=e,this._debug=t,this.silent=n,this.forceSilent=r,this.path=ye(e),this.fileLogger=new ge(this.path,this.fileName),this.messageQueue.flush().forEach(e=>{this.fileLogger?.[e.type](...e.args)})}scope(e){if(!this.appId||!this.path)throw Error(`Logger not initialized`);let t=v.cyan(`[${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:v.red,warn:v.yellow,debug:v.blue,log:v.white};if(this.forceSilent||this.silent&&!this._debug)return;let{timestamp:r,message:i}=ge.getMessageElements(e,...t),a=console[e],o=n[e];a(`${v.gray(r)} ${o(i)}`)}};const I=j(Se,`overlayed.log`);var L=class extends ee{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 Ce(e,t){let{recursive:n}=R(t);return S(e)?n?we(e).map(t=>[e,t]):te(e).map(t=>[e,t]):[]}function R(e){return{recursive:e?.recursive??!0}}function we(e){return te(e,{withFileTypes:!0}).flatMap(t=>{let n=h.join(e,t.name);return t.isDirectory()?we(n):[n]})}function z(e){return Te(e),e}function Te(e){if(!ue(e.applicationId))throw Error(`Invalid applicationId, must be a valid ULID.`)}function Ee(e,t){let n=t?.cwd??process.cwd(),r=m.join(n,`.overlayed`);y.existsSync(r)||y.mkdirSync(r,{recursive:!0});let i={application:{id:e.id,name:e.name,slug:e.slug,siteUrl:e.siteUrl},release:{id:null,channel:`local`,version:`0.0.0`}},a=m.join(r,`meta.json`);return y.writeFileSync(a,JSON.stringify(i,null,2)),i}const{PipeEventServer:De,PipeEventClient:Oe,PipeEventBase:ke,ProcessMonitor:Ae,Process:je,HardwareInterface:Me}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),Ne=j(class extends fe{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 De(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.emit(`connected`,void 0)}),this.server.on(`disconnected`,()=>{this._hasConnection=!1,this.emit(`disconnected`,void 0)})}},`overlayed-event-server`),{RenderInterface:Pe,renderHookPath:Fe}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);let Ie=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 Le=n({game:`string`,type:`string`,creation_time:`number`}).and({game:`'siege' | 'tft'`}),Re=t({"#event1":`logged_in | module_loaded | module_unloaded | unsupported_game_version`,event:`event1`,logged_in:Le.and({type:`'logged_in'`,content:{account_id:`string`}}),module_loaded:Le.and({type:`'module_loaded'`,content:{game_version:`string`,process_hash:`string`}}),module_unloaded:Le.and({type:`'module_unloaded'`}),unsupported_game_version:Le.and({type:`'unsupported_game_version'`,content:{game_version:`string`,process_hash:`string`}})}).export(),ze=Object.keys(Re).filter(e=>e!==`event`);function Be(){return{key:`universal`,events:Re}}var Ve=class{options=null;logger;initialized=!1;constructor(e){this.logger=I.getInstance().scope(e)}init(e){this.logger.log(`Initializing`),this.options=e||null,this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},He=class extends fe{options=null;logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(e){this.logger.log(`Initializing`),this.options=e||null,this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},Ue=class extends pe{options=null;logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(e){this.logger.log(`Initializing`),this.options=e||null,this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const We=`https://api.overlayed.gg`,B=ie.create({baseURL:We,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let Ge;function Ke(e){Ge=e}let qe;function Je(e){qe=e}function V(e){return`overlayed/app (${Object.entries(e).map(([e,t])=>`${e}=${t}`).join(`, `)})`}B.interceptors.request.use(e=>{let t=Ge?.();e.headers??={},t&&(e.headers[`X-Api-Key`]=t);let n=qe?.();return n&&(e.headers[`User-Agent`]=V(n)),e});function Ye(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 Xe(e){return e}function Ze(e){return e?t=>(e(t),t):Xe}const Qe=Ze();function $e(e){return B.get(`/v1/public/applications/${e}`)}function et(e,t){return B.get(`/v1/public/applications/${e}/releases/check`,{params:t})}function tt(e,t){return B.post(`/v1/public/applications/${e}/game-crash-reports`,t)}function nt(e,t,n){return B.post(`/v1/public/applications/${e}/game-crash-reports/${t}/confirm`,n)}function rt(e,t){let n=new FormData;return n.append(`file`,new Blob([t.file],{type:`application/zip`}),`logs.zip`),n.append(`data`,JSON.stringify(t.data)),B.post(`/v1/public/applications/${e}/feedbacks`,n)}function it(e,t){return B.get(`/v1/public/applications/${e}/feature-flags`,{params:t})}function at(e,t){return B.get(`/v1/public/applications/${e}/notices`,{params:t})}const ot=Ze();function H(e,t){return B.get(`/v1/public/modules/${e}/release`,{params:{cortex_user_id:t}})}function st(e,t,n){return B.post(`/v1/public/modules/${e}/releases/${t}/download`,n)}async function ct(e,t){if(e.method!==`GET`)throw Error(`Unsupported presigned request method: ${e.method}`);let n=await fetch(e.url,{method:e.method,headers:e.headers,signal:t?.signal});if(!n.ok){let e=await U(n);throw Error(`Presigned download failed (${n.status} ${n.statusText})${e?`: ${e}`:``}`)}let r=await n.arrayBuffer();return new Uint8Array(r)}async function lt(e,t){if(e.method!==`PUT`)throw Error(`Unsupported presigned request method: ${e.method}`);let n=await fetch(e.url,{method:e.method,headers:{...e.headers,"Content-Length":t.byteLength.toString()},body:t});if(!n.ok){let e=await U(n);throw Error(`Presigned upload failed (${n.status} ${n.statusText})${e?`: ${e}`:``}`)}}async function U(e){try{let t=(await e.text()).trim();if(t.length===0)return;let n=2048;return t.length>n?`${t.slice(0,n)}…`:t}catch{return}}function ut(){return B.get(`/v1/public/raven/config`)}const dt=Ze();function ft(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function pt(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function mt(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 ht(e){let t=Date.now(),n=e.messages.filter(e=>t-e.created_at.getTime()<6e5),r=e.messages.length-n.length;r>0&&console.warn(`Dropped ${r} cortex event(s) older than 600s`);let i=Ye(n.map(e=>gt(t,e)),50),a=Promise.all(i.map(async t=>B.post(`/v1/public/cortex/events`,{...e,messages:t})));return a.catch(e=>{let t=e?.response?.data||e?.message||e;console.error(`Failed to submit cortex events`,t)}),a}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 _t(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function vt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}const{PipeEventServer:yt,PipeEventClient:bt,PipeEventBase:xt,ProcessMonitor:St,Process:Ct,HardwareInterface:wt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);function Tt(e=[]){return h.normalize(h.join(ve(global.OVERLAYED.APPLICATION_ID),...e))}const Et=n({game:`string`,type:`string`,creation_time:`number`}),W=new M({path:be(),schema:n({userId:`string | undefined`,sessionId:`string | undefined`,sessionLastUsed:`number | undefined`,accessToken:`string | undefined`,"debug?":{"ri_disabled?":`boolean`,"gm_disabled?":`boolean`}}),default:{userId:void 0,sessionId:void 0,sessionLastUsed:void 0,accessToken:void 0}});function Dt(){let{debug:e}=W.get();return e?{ri_disabled:e.ri_disabled??!1,gm_disabled:e.gm_disabled??!1}:{ri_disabled:!1,gm_disabled:!1}}function Ot(){let e=W.get().userId;if(e)return e;let t=Mt();return W.set({...W.get(),userId:t}),t}function kt(){let e=W.get();if(e.sessionId&&typeof e.sessionLastUsed==`number`&&Date.now()-e.sessionLastUsed<=300*1e3)return e.sessionId;let t=crypto.randomUUID();return W.set({...e,sessionId:t,sessionLastUsed:Date.now()}),t}function G(){try{let e=W.get();W.set({...e,sessionLastUsed:Date.now()})}catch(e){I.getInstance().log(`Failed to update sessionLastUsed`,e)}}function At(){return W.get().accessToken}function jt(e){try{let t=W.get();W.set({...t,accessToken:e??void 0})}catch(e){I.getInstance().log(`Failed to set accessToken`,e)}}function Mt(){try{return wt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}const Nt=j(class extends He{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=h.join(F(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await D.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 getDllFile(e){let t=await this.getCurrentBuildInfo(e);if(!t){this.logger.error(`No build found for module`,{moduleId:e});return}let n=this.getBuildPath(e,t.buildId);if(!S(n)){this.logger.error(`No build file found for module`,{moduleId:e});return}let r=h.join(n,t.buildFileName);if(!S(r)){this.logger.error(`No DLL file found for module`,{moduleId:e});return}return r}async getCurrentBuildInfo(e){try{let t=h.join(this.targetDir,e,`build.json`),n=await D.readFile(t,`utf-8`);return JSON.parse(n)}catch{return null}}getModulePath(e){return h.join(this.targetDir,e)}getBuildPath(e,t){return h.join(this.getModulePath(e),t)}async checkForUpdates(e){this.logger.log(`Checking for updates`);let t=Ot();if(!t){this.logger.error(`Failed to resolve cortex user id`);return}this.logger.log(`Cortex User ID`,t);for(let n of e)try{let{data:e}=await H(n,t);this.logger.log(`Release`,e);let r=(await this.getCurrentBuildInfo(n))?.buildId||null;this.logger.log(`${n} > Performing update check. current: ${r}, requested: ${e.build_id}`),e.build_id!==r||await this.isDownloadCorrupted(this.getBuildPath(n,e.build_id),e)?(this.logger.log(`${n} > Update found. current: ${r}, requested: ${e.build_id}`),this.logger.log(`${n} > Downloading and extracting DLLs`),await this.downloadAndExtractDll(n,e),this.logger.log(`${n} > Cleaning up other builds`),await this.cleanupExistingBuilds(n,e.build_id),this.emit(`dllUpdated`,{moduleId:n,buildId:e.build_id,releaseId:e.release_id})):this.logger.log(`${n} > No update found`)}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t){this.logger.log(`${e} > Requesting download for build ${t.build_id}`);let n=Ot();if(!n){this.logger.error(`Failed to resolve cortex user id`);return}let{data:r}=await st(e,t.release_id,{download_token:t.download_token,cortex_user_id:n});this.logger.log(`${e} > Downloading DLLs for build ${t.build_id}`);let i=await ct(r,{signal:AbortSignal.timeout(1e3*60*5)});this.logger.log(`${e} > Downloaded zip file for build ${t.build_id}`);let a=this.getBuildPath(e,t.build_id);await D.mkdir(a,{recursive:!0});let o=new ae;await o.loadAsync(i);let s=Object.keys(o.files).map(e=>({name:e,file:o.files[e]})).filter(({file:e})=>!e.dir);if(s.length!==1){this.logger.error(`${e} > Zip must contain exactly 1 file, got ${s.length}`);return}let c=s[0],l=h.basename(c.name),u=h.normalize(l),d=h.isAbsolute(u),f=u.startsWith(`..`)||u.includes(`..${h.sep}`);if(l===``||l===`.`||l===`..`){this.logger.error(`${e} > Zip contained an invalid file name: ${c.name}`);return}if(!l.toLowerCase().endsWith(`.dll`)){this.logger.error(`${e} > Zip contained a non-dll file: ${c.name}`);return}if(d||f){this.logger.error(`${e} > Zip entry path is unsafe: ${c.name}`);return}let p=h.join(a,u),m=await c.file.async(`nodebuffer`);await D.writeFile(p,m),this.logger.log(`${e} > Extracted 1 file to ${p}`);let g={buildId:t.build_id,buildFileName:t.build_file_name},_=h.join(this.getModulePath(e),`build.json`);await D.writeFile(_,JSON.stringify(g),`utf-8`),this.logger.log(`${e} > Saved buildId to file: ${t.build_id}`)}async cleanupExistingBuilds(e,t){let n=this.getModulePath(e),r=this.getBuildPath(e,t),i=await D.readdir(n,{withFileTypes:!0});for(let t of i)t.isDirectory()&&h.join(n,t.name)!==r&&(await D.rm(h.join(n,t.name),{recursive:!0,force:!0}),this.logger.log(`${e} > Cleaned up build: ${t.name}`))}async hasPathAccess(e){try{return await D.access(e,D.constants.F_OK),!0}catch{return!1}}async isDownloadCorrupted(e,t){if(!await this.hasPathAccess(e))return this.logger.error(`Download is corrupted. Path does not exist: ${e}`),!0;let n=t.build_file_name,r=h.join(e,n);if(!S(r))return this.logger.error(`Download is corrupted. Build file not found: ${r}`),!0;if(t.build_hash){let e=await D.readFile(r),i=re(`sha256`).update(e).digest(`hex`);if(i.toLowerCase()!==t.build_hash.toLowerCase())return this.logger.error(`Download is corrupted. Build file hash mismatch: ${n} ${i.toLowerCase()} !== ${t.build_hash.toLowerCase()}`),!0}return!1}}),Pt=j(class extends He{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),Nt.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{let e={games:(await ut()).data.games};this._ravenConfig=e,this.resetState();let t=new Set;for(let e of this._ravenConfig.games){for(let t of e.executables){let n=t.toLowerCase();this._executableToGameMap.set(n,e),this._executablesArray.push(n)}e.modules.forEach(e=>t.add(e))}await Nt.getInstance().initWithDlls(Array.from(t)),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=[]}}),Ft=j(class extends He{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new St}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),Pt.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(){Pt.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){return this._processes.get(e)?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){this.logger.log(`Monitoring ${e.executables.length} processes`),e.executables.forEach(e=>{this._processMonitor.isProcessRegistered(e)||this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name)?.filter(t=>t.id!==e.id)??[];t.length===0?this._processes.delete(e.name):this._processes.set(e.name,t)}});var It=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 Lt=j(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new It(new Pe(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),K=j(class{options;eventQueue;meta=null;enabled=!0;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new de,this.setupFlushInterval()}track(e,t){this.enabled&&this.eventQueue.add({type:e,properties:t,created_at:new Date})}flush(){if(!this.enabled)return[];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{ht({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){this.enabled&&setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}}),Rt=e(import.meta.url),q=Rt.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),zt=Rt.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x86.dll`),Bt=Rt.resolve(`@overlayed/app/dist/native-interface/build/overlayed_injector_x64.exe`),Vt=Rt.resolve(`@overlayed/app/dist/native-interface/build/overlayed_injector_x86.exe`),J=j(class extends Ue{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;_activeReadyRavenGames={};get isInGame(){return Object.keys(this._activeReadyRavenGames).length>0}constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}getActiveGames(){return Object.keys(this._activeReadyRavenGames)}init(){super.init(),Lt.getInstance().createInterface(`OGG_SIEGE`),Ft.getInstance().on(`create`,this.boundOnProcessCreate),Ft.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){Ft.getInstance().off(`create`,this.boundOnProcessCreate),Ft.getInstance().off(`destroy`,this.boundOnProcessDestroy),super.destroy()}on(e,t){super.on(e,t);let n=le(e);if(!(n.includes(`gameReady`)||n.includes(`*`))||Object.keys(this._activeReadyRavenGames).length===0)return;let r=t;for(let e of Object.values(this._activeReadyRavenGames))this.logger.log(`Late calling gameReady callback for game`,e.game),r(e)}async onProcessCreate({process:e}){this.logger.log(`On process create`,e);let t=this.getRavenGame(e);if(!t)return;if(this.logger.log(`Raven game found`,t),t.command_line_regex){this.logger.log(`Performing command line regex check`,{regex:t.command_line_regex});try{let n=e.commandLine;this.logger.log(`Process command line`,n);let r=new RegExp(t.command_line_regex);if(!e.commandLine||!r.test(e.commandLine)){this.logger.log(`Process command line does not match regex, skipping`,{commandLine:e.commandLine,regex:t.command_line_regex});return}}catch(e){this.logger.error(`Failed to check command line`,e);return}}if(K.getInstance().track(`game_launch`,{game:t.identifier}),this.subscribedGames.size===0){this.logger.warn(`No subscribed games, skipping`);return}if(!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=Ct.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){me.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=e.createdAt||new Date,a=Math.floor((new Date().getTime()-i.getTime())/1e3);this.logger.log(`Process created ${a}s ago`),a<30&&(this.logger.log(`Delaying injection for 45 seconds to allow game to be ready`),await new Promise(e=>setTimeout(e,1e3*45)));let{ri_disabled:o,gm_disabled:s}=Dt(),c=!1;!o&&t.has_render_support&&t.allow_dll_injections?c=await this.injectRenderInterface(e):this.logger.log(`Skipping render interface injection`,{has_render_support:t.has_render_support,allow_dll_injections:t.allow_dll_injections,ri_disabled:o}),!s&&t.allow_dll_injections?await this.injectGameModules(t,e):this.logger.log(`Skipping game module(s) injection`,{allow_dll_injections:t.allow_dll_injections,gm_disabled:s});let l={game:t.identifier,inGameRenderingSupported:c};this._activeReadyRavenGames[t.identifier]=l,this.logger.debug(`Active ready raven games`,Object.keys(this._activeReadyRavenGames).join(`, `)),this.logger.log(`Game Ready`),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,l),K.getInstance().track(`game_ready`,{game:t.identifier})}copyInjectors(){let e=this.copyDll(Bt),t=this.copyDll(Vt);return!e||!t?(this.logger.error(`Failed to copy injector executables`),!1):h.dirname(e)}copyDll(e){let t=h.basename(e),n=_(e),r=h.join(F(),`resources`),i=h.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{S(r)||C(r,{recursive:!0}),T(i,w(n)),b(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 injectRenderInterface(e){this.logger.log(`Injecting render interface`,{is32Bit:e.is32Bit,process:e});let t=e.is32Bit?zt:q;this.logger.log(`Render hook path`,t);let n=this.copyDll(t);if(!n)return this.logger.error(`Failed to copy render hook DLL`,{renderHookPath:t}),!1;let r=this.copyInjectors();if(!r)return!1;this.logger.log(`Resolved injector path`,r);try{return this.logger.log(`Injecting render interface`,n),await e.injectDll(n,r),this.logger.log(`Render Interface Injection Successful`,n),!0}catch(e){return this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderHookPathCopied:n}),!1}}async injectGameModules(e,t){let n=this.copyInjectors();if(n){this.logger.log(`Resolved injector path`,n);for(let r of e.modules){let e=await Nt.getInstance().getDllFile(r);if(!e){this.logger.error(`No DLL file found for module`,{moduleId:r});continue}try{this.logger.log(`Injecting game module`,e),await t.injectDll(e,n),this.logger.log(`Injection Successful`,e)}catch(t){this.logger.error(`Injection Failed`,{dllFile:e},t)}}}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(delete this._activeReadyRavenGames[t.identifier],this.logger.debug(`Active ready raven games`,Object.keys(this._activeReadyRavenGames).join(`, `)),this.emit(`gameCloseInternal`,{ravenGame:t,process:e}),this.emit(`gameClose`,{game:t.identifier}),K.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=Pt.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}}),Ht=j(class extends Ve{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),J.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){J.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=w(n.path),i=re(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{a=(await ft(t.identifier,i)).data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new ae;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 L(s,{chunkSizeMb:25,maxConcurrent:1}),n=await pt(t.identifier,{build_hash:i,chunk_count:e.totalChunks,file_size_bytes:s.size});await e.chunk(async(e,r)=>{this.logger.log(`Uploading chunk`,r),await mt(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){_t(e)?vt(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}}),Ut=j(class extends Ve{constructor(){super(`CampaignManager`)}async check(e){let t=h.join(ve(e),`campaign_code.txt`);try{let e=(await E.readFile(t,`utf-8`)).trim().replace(/ \(\d+\)/g,``);e&&(this.logger.log(`UTM campaign code found`,e),K.getInstance().track(`utm_attribution`,{campaign_code:e}),K.getInstance().flush())}catch{}}}),Wt=new M({path:f.normalize(`${process.env.APPDATA||process.env.HOME||`.`}/.overlayed/config.json`),default:void 0,schema:t({Account:n({email:`string`,apiKey:`string`,"applicationId?":`string`,"baseUrl?":`string`})}).type({currentAccount:`Account | undefined`,accounts:`Account[]`}).or(`undefined`)});function Gt(e,t){let n=t.applicationId===void 0||e.applicationId===void 0||e.applicationId===t.applicationId,r=(e.baseUrl??`https://api.overlayed.gg`)===t.baseUrl;return n&&r}function Kt(e){let{currentAccount:t,accounts:n,expected:r}=e;if(t&&Gt(t,r))return{account:t,source:`current`};let i=n.find(e=>Gt(e,r));if(i)return{account:i,source:`other`}}function qt(e,t){return`${e}:${t}`}function Jt(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=qt(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=qt(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=qt(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=qt(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function Yt(){let e=me.getInstance(),t=J.getInstance();return{on:(n,r)=>{switch(n){case`fatal`:e.on(`fatal`,r);break;case`error`:e.on(`error`,r);break;case`warning`:e.on(`warning`,r);break;case`gameLaunch`:t.on(`gameLaunch`,r);break;case`gameClose`:t.on(`gameClose`,r);break;case`gameReady`:t.on(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}},off:(n,r)=>{switch(n){case`fatal`:e.off(`fatal`,r);break;case`error`:e.off(`error`,r);break;case`warning`:e.off(`warning`,r);break;case`gameLaunch`:t.off(`gameLaunch`,r);break;case`gameClose`:t.off(`gameClose`,r);break;case`gameReady`:t.off(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}}}}const Xt=new Map([[1,`LeftButton`],[2,`RightButton`],[3,`Cancel`],[4,`MiddleButton`],[5,`ExtraButton1`],[6,`ExtraButton2`],[8,`Backspace`],[9,`Tab`],[12,`Clear`],[13,`Enter`],[16,`ShiftLeft`],[17,`ControlLeft`],[18,`AltLeft`],[19,`Pause`],[20,`CapsLock`],[21,`KanaMode`],[23,`JunjaMode`],[24,`Finalize`],[25,`HanjaMode`],[27,`Escape`],[28,`Convert`],[29,`NonConvert`],[30,`Accept`],[31,`ModeChange`],[32,`Space`],[33,`PageUp`],[34,`PageDown`],[35,`End`],[36,`Home`],[37,`ArrowLeft`],[38,`ArrowUp`],[39,`ArrowRight`],[40,`ArrowDown`],[41,`Select`],[42,`PrintScreen`],[43,`Execute`],[44,`Snapshot`],[45,`Insert`],[46,`Delete`],[47,`Help`],[48,`Digit0`],[49,`Digit1`],[50,`Digit2`],[51,`Digit3`],[52,`Digit4`],[53,`Digit5`],[54,`Digit6`],[55,`Digit7`],[56,`Digit8`],[57,`Digit9`],[65,`KeyA`],[66,`KeyB`],[67,`KeyC`],[68,`KeyD`],[69,`KeyE`],[70,`KeyF`],[71,`KeyG`],[72,`KeyH`],[73,`KeyI`],[74,`KeyJ`],[75,`KeyK`],[76,`KeyL`],[77,`KeyM`],[78,`KeyN`],[79,`KeyO`],[80,`KeyP`],[81,`KeyQ`],[82,`KeyR`],[83,`KeyS`],[84,`KeyT`],[85,`KeyU`],[86,`KeyV`],[87,`KeyW`],[88,`KeyX`],[89,`KeyY`],[90,`KeyZ`],[91,`MetaLeft`],[92,`MetaRight`],[93,`ContextMenu`],[95,`Sleep`],[96,`Numpad0`],[97,`Numpad1`],[98,`Numpad2`],[99,`Numpad3`],[100,`Numpad4`],[101,`Numpad5`],[102,`Numpad6`],[103,`Numpad7`],[104,`Numpad8`],[105,`Numpad9`],[106,`NumpadMultiply`],[107,`NumpadAdd`],[108,`NumpadSeparator`],[109,`NumpadSubtract`],[110,`NumpadDecimal`],[111,`NumpadDivide`],[112,`F1`],[113,`F2`],[114,`F3`],[115,`F4`],[116,`F5`],[117,`F6`],[118,`F7`],[119,`F8`],[120,`F9`],[121,`F10`],[122,`F11`],[123,`F12`],[124,`F13`],[125,`F14`],[126,`F15`],[127,`F16`],[128,`F17`],[129,`F18`],[130,`F19`],[131,`F20`],[132,`F21`],[133,`F22`],[134,`F23`],[135,`F24`],[144,`NumLock`],[145,`ScrollLock`],[146,`NEC_Equal`],[147,`Fujitsu_Masshou`],[148,`Fujitsu_Touroku`],[149,`Fujitsu_Loya`],[150,`Fujitsu_Roya`],[160,`ShiftLeft`],[161,`ShiftRight`],[162,`ControlLeft`],[163,`ControlRight`],[164,`AltLeft`],[165,`AltRight`],[166,`BrowserBack`],[167,`BrowserForward`],[168,`BrowserRefresh`],[169,`BrowserStop`],[170,`BrowserSearch`],[171,`BrowserFavorites`],[172,`BrowserHome`],[173,`VolumeMute`],[174,`VolumeDown`],[175,`VolumeUp`],[176,`MediaTrackNext`],[177,`MediaTrackPrevious`],[178,`MediaStop`],[179,`MediaPlayPause`],[180,`LaunchMail`],[181,`LaunchMediaSelect`],[182,`LaunchApplication1`],[183,`LaunchApplication2`],[186,`OEM_1`],[187,`Equal`],[188,`Comma`],[189,`Minus`],[190,`Period`],[191,`Slash`],[192,`Backquote`],[219,`BracketLeft`],[220,`Backslash`],[221,`BracketRight`],[222,`Quote`],[223,`IntlRo`],[225,`OEM_AX`],[226,`IntlBackslash`],[227,`ICO_HELP`],[228,`ICO_00`],[229,`Process`],[230,`ICO_CLEAR`],[231,`Packet`],[233,`OEM_Reset`],[234,`OEM_Jump`],[235,`OEM_PA1`],[236,`OEM_PA2`],[237,`OEM_PA3`],[238,`OEM_WS_Ctrl`],[239,`OEM_CU_Sel`],[240,`OEM_ATTN`],[241,`OEM_Finish`],[242,`OEM_Copy`],[243,`OEM_Auto`],[244,`OEM_ENLW`],[245,`BackTab`],[246,`ATTN`],[247,`CRSel`],[248,`EXSel`],[249,`EREOF`],[250,`MediaPlay`],[251,`Zoom`],[252,`Noname`],[253,`PA1`],[254,`OEM_Clear`]]),Zt=new Map(Xt.entries().map(([e,t])=>[t,e])),Qt=n({"[string]":{keys:`string[]`,mode:n(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var $t=class extends He{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 M({path:Tt([`keybinds.json`]),schema:Qt,default:e})}init(){super.init();let e=Lt.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=Lt.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=Xt.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=Xt.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=>Zt.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=>Zt.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 en(e){let t=new $t(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(),O.on(`quit`,()=>{t.destroy()}),r}function Y(){return Lt.getInstance().getInterface(`OGG_SIEGE`)}function tn(){let e=J.getInstance(),t=me.getInstance(),n=K.getInstance();if(!O.isPackaged){I.getInstance().info(`Cortex is disabled in development`),n.enabled=!1;return}try{n.meta=nn()}catch(e){I.getInstance().error(`Failed to setup cortex`,e);return}e.on([`gameReady`,`gameClose`],()=>{n.meta||=nn(),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 nn(){if(!global.OVERLAYED_META.release.id)throw Error(`Release ID is required`);return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:Ot(),release_id:global.OVERLAYED_META.release.id,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,frontend_release_id:global.OVERLAYED.FRONTEND_RELEASE_ID,session_id:global.OVERLAYED.sessionId,in_game:!1}}const rn=j(class extends He{CHECK_INTERVAL=1e3*60*15;RETRY_INTERVAL=1e3*15;_updateCheckInterval=null;_latestCheckResponse=null;_activeCheckResponse=null;initialReleaseId=null;get manualUpdatesEnabled(){return this.options?.manualUpdates??!1}get activeReleaseId(){return this._activeCheckResponse?.release_id??this.initialReleaseId}constructor(){super(`SiteManager`)}init(e){super.init(e),e?.manualUpdates&&this.enableManualUpdates()}destroy(){super.destroy(),this._updateCheckInterval&&=(clearInterval(this._updateCheckInterval),null)}allowSiteUpdateOnNextLoad(){if(!this.options?.manualUpdates){this.logger.warn(`allowSiteUpdateOnNextLoad called but manual updates are disabled`);return}if(!this._latestCheckResponse){this.logger.warn(`allowSiteUpdateOnNextLoad called but no update has been checked yet`);return}if(this._activeCheckResponse?.release_id===this._latestCheckResponse.release_id){this.logger.warn(`allowSiteUpdateOnNextLoad called but theres no update available`);return}this._activeCheckResponse=this._latestCheckResponse,K.getInstance().track(`site_update_applied`,{version:this._latestCheckResponse.version,release_id:this._latestCheckResponse.release_id}),this.setFrontendCortexMeta(this._latestCheckResponse.release_id,this._latestCheckResponse.version)}setFrontendCortexMeta(e,t){let n=K.getInstance();n.meta||=nn(),e&&(global.OVERLAYED.FRONTEND_RELEASE_ID=e,n.meta.frontend_release_id=e),t&&(global.OVERLAYED.FRONTEND_VERSION=t,n.meta.frontend_version=t),e&&t&&n.track(`frontend_version_changed`,{version:t,release_id:e})}enableManualUpdates(){this.logger.log(`Enabling manual site updates`),this.checkForUpdates(),this._updateCheckInterval=setInterval(()=>{this.checkForUpdates(!0)},this.CHECK_INTERVAL)}async checkForUpdates(e=!1){let t=global.OVERLAYED_META?.application?.siteUrl;if(!t){this.logger.log(`No siteUrl configured, skipping check`);return}K.getInstance().track(`site_check_for_update`,{});try{let n=new URL(`/check`,t).toString();this.logger.log(`Checking site URL`,n);let r={"Overlayed-User-Agent":V({package_version:global.OVERLAYED.PACKAGE_VERSION,application_id:global.OVERLAYED.APPLICATION_ID,application_version:global.OVERLAYED.APP_VERSION}),"Overlayed-Cortex-User-Id":global.OVERLAYED_RUNTIME.userId},i=At();i&&(r[`Overlayed-Access-Token`]=i);let a=global.OVERLAYED_META.release.channelId;a&&(r[`Overlayed-Channel-Id`]=a);let o=await fetch(n,{headers:r});if(!o.ok){this.logger.warn(`Site check failed with status`,o.status),K.getInstance().track(`site_check_error`,{status:o.status}),e&&this.scheduleRetry();return}let s=await o.json();if(this.logger.log(`Site check response`,s),!s.release_id){this.logger.error(`Site check response missing release_id`);return}if(!this._latestCheckResponse){this._latestCheckResponse=s;return}return this._latestCheckResponse.release_id===s.release_id?void 0:(this.logger.log(`New site version detected`,s),this._latestCheckResponse=s,K.getInstance().track(`site_update_ready`,{version:s.version,release_id:s.release_id}),this.emit(`siteUpdateReady`,{releaseId:s.release_id,version:s.version}),s)}catch(e){let t=e instanceof Error?e.message:String(e);K.getInstance().track(`site_check_error`,{message:t}),this.logger.error(`Site check failed`,{error:e,message:t}),this.scheduleRetry()}}scheduleRetry(){setTimeout(()=>{this.checkForUpdates()},this.RETRY_INTERVAL)}}),an=j(Se,`browser-windows.log`);let on;function sn(){return on||(on=class e extends global.OVERLAYED.electron.BrowserWindow{static session=void 0;constructor(t){let n=e.resolveCustomOptions(t);super(n)}static resolveCustomOptions(t){let n=global.OVERLAYED_META,r=global.OVERLAYED_RUNTIME;return{...t,webPreferences:{...t.webPreferences,session:e.getSession(),additionalArguments:[...t.webPreferences?.additionalArguments||[],...global.OVERLAYED.electron.app.isPackaged?[]:[`--overlayed-meta=${JSON.stringify(n)}`],`--overlayed-runtime=${JSON.stringify(r)}`]}}}static getSession(){if(!global.OVERLAYED_META?.application?.siteUrl)return;if(e.session)return e.session;e.session=global.OVERLAYED.electron.session.fromPartition(`persist:overlayed-${global.OVERLAYED.APPLICATION_ID}`);let t=rn.getInstance(),n=V({package_version:global.OVERLAYED.PACKAGE_VERSION,application_id:global.OVERLAYED.APPLICATION_ID,application_version:global.OVERLAYED.APP_VERSION}),r={urls:[global.OVERLAYED_META.application.siteUrl+`/*`]},i=global.OVERLAYED_RUNTIME.userId;return e.session.webRequest.onBeforeSendHeaders(r,(e,r)=>{let a=At();a&&(e.requestHeaders[`Overlayed-Access-Token`]=a);let o=global.OVERLAYED_META.release.channelId;o&&(e.requestHeaders[`Overlayed-Channel-Id`]=o),t.manualUpdatesEnabled&&t.activeReleaseId&&(e.requestHeaders[`Overlayed-Release-Id`]=t.activeReleaseId),e.requestHeaders[`Overlayed-Cortex-User-Id`]=i,e.requestHeaders[`Overlayed-User-Agent`]=n,r({requestHeaders:e.requestHeaders})}),t.manualUpdatesEnabled&&e.session.webRequest.onHeadersReceived(r,(e,n)=>{if(t.initialReleaseId){n(e);return}let r=e.responseHeaders?.[`Overlayed-Release-Id`]?.[0];r&&(t.initialReleaseId=ot(r));let i=e.responseHeaders?.[`Overlayed-Release-Version`]?.[0];t.setFrontendCortexMeta(r,i),n(e)}),e.session}},on)}function cn(){function e(e,t){let n=an.getInstance();return e.once(`closed`,()=>{e.isDestroyed()||K.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||K.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),e.webContents.on(`console-message`,(t,r,i,a,o)=>{let s=e.isDestroyed()?`destroyed`:e.webContents.getURL();n[r===3?`error`:r===2?`warn`:`log`](`[${s}] [${o}:${a}] ${i}`)}),K.getInstance().track(`window_created`,{url:e.webContents.getURL(),in_game:t}),e}return{getProductionSiteUrl:()=>{let e=global.OVERLAYED_META.application.siteUrl;return URL.canParse(e)?new URL(e):new URL(`https://default.overlayedapps.com`)},createWindow:t=>e(new(sn())(t),!1),createInGameWindow:t=>{let n=sn();return e(Y().instance.newWindowInternal(n,t),!0)},on:(e,t)=>Y().instance.on(e,t),off:(e,t)=>Y().instance.off(e,t),once:(e,t)=>Y().instance.once(e,t),addListener:(e,t)=>Y().instance.addListener(e,t),removeListener:(e,t)=>Y().instance.removeListener(e,t),removeAllListeners:()=>Y().instance.removeAllListeners(),prependListener:(e,t)=>Y().instance.prependListener(e,t),prependOnceListener:(e,t)=>Y().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=Y(),t=Ne.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const ln=j(class extends Ve{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=Lt.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 un(){return{scope:e=>ln.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>Y().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>Y().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>Y().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>Y().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>Y().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>Y().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>Y().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>Y().instance.getKeyInputBlock(e)}}}function dn(){return{track:(e,t)=>{K.getInstance().track(`custom__${String(e)}`,t)}}}function fn(){return{registerWindow:()=>{}}}const pn=/(\d{4})-(\d{2})-(\d{2})\.log$/;function mn(e){let t=e.match(pn);if(!t)return!1;let[,n,r,i]=t,a=Number(n),o=Number(r),s=Number(i);if(o<1||o>12||s<1||s>31)return!1;let c=new Date(a,o-1,s);if(isNaN(c.getTime())||c.getFullYear()!==a||c.getMonth()!==o-1||c.getDate()!==s)return!1;let l=new Date;return l.setDate(l.getDate()-7),l.setHours(0,0,0,0),c>=l}function hn(e){let{silent:t=!1,additionalFiles:n}=e??{},r=ye(global.OVERLAYED.APPLICATION_ID),i=Ce(r,{recursive:!0}),a=_e(),o=Ce(a,{recursive:!0});t||(I.getInstance().info(`Logs path: `,r),I.getInstance().info(`Overlayed logs path: `,a));let s=new ae;return i.forEach(([e,n])=>{t||I.getInstance().info(`Zipping: `,n);let r=x(n);s.file(g(n),r,{compression:`DEFLATE`})}),o.forEach(([e,n])=>{if(!mn(g(n))){t||I.getInstance().info(`Skipping old/unrecognized log: `,n);return}t||I.getInstance().info(`Zipping: `,n);let r=x(n);s.file(g(n),r,{compression:`DEFLATE`})}),n&&Object.entries(n).forEach(([e,n])=>{t||I.getInstance().info(`Zipping extra file: `,e),s.file(e,n,{compression:`DEFLATE`})}),s}async function gn(e,t,n){let r=global.OVERLAYED_META.release.id?ot(global.OVERLAYED_META.release.id):void 0,i=Ot();return rt(global.OVERLAYED.APPLICATION_ID,{file:Buffer.from(n,`base64`),data:{release_id:r,type:e,cortex_user_id:i,...t}}).then(e=>(I.getInstance().info(`Feedback submitted`,e),e.data.id)).catch(e=>{console.error(JSON.stringify(e,null,2)),I.getInstance().error(`Failed to submit feedback`,e)})}function _n(e){let t=new Se(`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),submitFeedback:async(e,t,n)=>{let r=global.OVERLAYED_META.release.id?ot(global.OVERLAYED_META.release.id):void 0;return r&&O.isPackaged&&K.getInstance().track(e===`bug_report`?`bug_report_submitted`:`suggestion_submitted`,{release_id:r}),await gn(e,t,await hn(n).generateAsync({type:`base64`}))},getLogsZip:e=>hn(e)}}const vn=1e3;function yn(e,t,r,i,a){let o=Ne.getInstance(),s=I.getInstance().scope(`SetupPipeServer`);s.log(`Initializing`);function c(e,t){let n=r.get(t);if(!n)r.set(t,[e]);else{if(n.length>=vn){me.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${n.length}, max: ${vn}`});return}n.push(e)}}function l(r){s.info(r);let i=Et(r);if(i instanceof n.errors){K.getInstance().track(`invalid_game_event`,{}),me.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=ze.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(r);if(f instanceof n.errors){if(`type`in f.byPath)return;s.warn(`Invalid event`,{summary:f.summary}),K.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type,summary:f.summary}),me.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;K.getInstance().track(`unsupported_game_version`,{game:f.game,hash:e.process_hash,version:e.game_version})}let p=qt(u.key,f.type),m=qt(u.key,`*`),h=t.get(p),g=t.get(m),_=[...Array.from(h??[]),...Array.from(g??[])];if(_.length===0){s.info(`No handlers found for event`,{event:f});return}_.forEach(e=>{e(f)})}return i.on(`flushEvents`,e=>{if(a[e])return;a[e]=!0;let t=r.get(e);t&&(I.getInstance().info(`Flushing ${t.length} events for module ${e}`),t.forEach(e=>l(e)),r.delete(e))}),o.on(`data`,e=>e.forEach(l)),o.on(`error`,e=>{s.error(`Pipe server error`,e),me.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o.on(`connected`,()=>{s.log(`Pipe server connected`)}),o.on(`disconnected`,()=>{s.log(`Pipe server disconnected`)}),o}const bn=j(class extends He{FETCH_INTERVAL=1e3*60*10;_fetchInterval=null;_flags=new Map;_overrides=new Map;_defaults=new Map;_boundOnGameReady=this.onGameEvent.bind(this);_boundOnGameClose=this.onGameEvent.bind(this);_readyResolve;ready;constructor(){super(`FeatureFlagManager`),this.ready=new Promise(e=>{this._readyResolve=e}),this.fetchFlags(),this.setupInterval(),J.getInstance().on(`gameReady`,this._boundOnGameReady),J.getInstance().on(`gameClose`,this._boundOnGameClose)}destroy(){this._fetchInterval&&=(clearInterval(this._fetchInterval),null),J.getInstance().off(`gameReady`,this._boundOnGameReady),J.getInstance().off(`gameClose`,this._boundOnGameClose),super.destroy()}setDefaults(e){this._defaults=new Map(Object.entries(e))}async refresh(){await this.fetchFlags()}override(e,t){let n=this.get(e);this._overrides.set(e,t),n!==t&&(this.emit(e,t),this.emit(`updated`,!0))}clearOverride(e){if(!this._overrides.has(e))return;let t=this.get(e);this._overrides.delete(e);let n=this.get(e);t!==n&&(this.emit(e,n),this.emit(`updated`,!0))}clearOverrides(){if(this._overrides.size===0)return;let e=new Map;for(let t of this._overrides.keys())e.set(t,this.get(t));this._overrides.clear();let t=!1;for(let[n,r]of e){let e=this.get(n);r!==e&&(this.emit(n,e),t=!0)}t&&this.emit(`updated`,!0)}isOverridden(e){return this._overrides.has(e)}getAllOverrides(){return Object.fromEntries(this._overrides)}inspect(e){let t=this._overrides.get(e),n=this._flags.get(e),r=this._defaults.get(e);return{effective:t??n??r??!1,override:t,actual:n,default:r}}get(e){let t=this._overrides.get(e),n=this._flags.get(e),r=this._defaults.get(e);return t??n??r??!1}getAll(){let e=Object.fromEntries(this._defaults);for(let[t,n]of this._flags)e[t]=n;for(let[t,n]of this._overrides)e[t]=n;return e}onGameEvent(){this.fetchFlags()}setupInterval(){this._fetchInterval=setInterval(()=>{this.fetchFlags()},this.FETCH_INTERVAL)}async fetchFlags(){try{let e=J.getInstance().getActiveGames(),{data:t}=await it(global.OVERLAYED.APPLICATION_ID,{cortex_user_id:global.OVERLAYED_RUNTIME.userId,release_id:global.OVERLAYED_META.release.id??void 0,channel_id:global.OVERLAYED_META.release.channelId??void 0,active_games:e.map(e=>e.toString())??void 0}),n=new Map;for(let e of t)n.set(e.name,e.enabled);for(let[e,t]of n){if(this._overrides.has(e))continue;let n=this._flags.get(e);n!==void 0&&n!==t&&this.emit(e,t)}for(let[e]of this._flags)this._overrides.has(e)||n.has(e)||this.emit(e,this._defaults.get(e)??!1);this._flags=n;for(let e of this._defaults.keys())this._flags.has(e)||this.logger.warn(`Registered feature flag "${e}" was not found in the API response`);this.emit(`updated`,!0)}catch(e){this.logger.error(`Failed to fetch feature flags`,e)}finally{this._readyResolve()}}});function xn(e){let t=bn.getInstance();return e&&t.setDefaults(e),{on:(e,n)=>t.on(e,n),off:(e,n)=>t.off(e,n),ready:t.ready,get:e=>t.get(e),getAll:()=>t.getAll(),refresh:()=>t.refresh(),override:(e,n)=>t.override(e,n),clearOverride:e=>t.clearOverride(e),clearOverrides:()=>t.clearOverrides(),isOverridden:e=>t.isOverridden(e),getAllOverrides:()=>t.getAllOverrides(),inspect:e=>t.inspect(e)}}function Sn(){let e=rn.getInstance();return{on:(t,n)=>{e.on(t,n)},off:(t,n)=>{e.off(t,n)},allowSiteUpdateOnNextLoad:()=>{e.allowSiteUpdateOnNextLoad()}}}const Cn=n({dismissedNotices:ce(n.string).array()}),wn=j(class extends He{NOTICE_FETCH_INTERVAL=1e3*60*10;MAX_DISMISSED_NOTICES=100;_noticeFetchInterval=null;_notices=[];_noticesFile;_boundOnGameReady=this.onGameReady.bind(this);get notices(){let e=this._noticesFile.get().dismissedNotices;return this._notices.filter(t=>!e.includes(t.id))}constructor(){super(`NoticeManager`),this._noticesFile=this.getNoticesFile(),this._noticesFile.load(),this.fetchNotices(),this.setupNoticeInterval(),J.getInstance().on(`gameReady`,this._boundOnGameReady)}destroy(){this._noticeFetchInterval&&=(clearInterval(this._noticeFetchInterval),null),J.getInstance().off(`gameReady`,this._boundOnGameReady),super.destroy()}dismissNotice(e){let t=this._notices.find(t=>t.id===e);if(!t||!t.dismissible)return;let n=this._noticesFile.get().dismissedNotices;n.unshift(e),this._noticesFile.set({dismissedNotices:n.slice(0,this.MAX_DISMISSED_NOTICES)}),this.emitNoticesUpdated()}onGameReady(){this.fetchNotices()}setupNoticeInterval(){this._noticeFetchInterval=setInterval(()=>{this.fetchNotices()},this.NOTICE_FETCH_INTERVAL)}getNoticesFile(){return new M({path:Tt([`notices.json`]),schema:Cn,default:{dismissedNotices:[]}})}async fetchNotices(){let e=J.getInstance().getActiveGames();try{let{data:t}=await at(global.OVERLAYED.APPLICATION_ID,{release_id:global.OVERLAYED_META.release.id?ot(global.OVERLAYED_META.release.id):void 0,channel:global.OVERLAYED_META.release.channel,version:global.OVERLAYED_META.release.version,games:e});this._notices=t,this.emitNoticesUpdated()}catch(e){this.logger.error(`Failed to fetch notices`,e)}}emitNoticesUpdated(){this.emit(`noticesUpdated`,{notices:this.notices})}});function Tn(){let e=wn.getInstance();return{on:(t,n)=>{e.on(t,n)},off:(t,n)=>{e.off(t,n)},dismissNotice:t=>{e.dismissNotice(t)},getNotices:()=>e.notices}}const{Provider:En}=oe;var Dn=class extends En{options;updater;logger=I.getInstance().scope(`OverlayedProvider`);constructor(e,t,n){super(n),this.options=e,this.updater=t}async getLatestVersion(){try{let e=await et(this.options.application_id,{release_id:this.options.release_id,cortex_user_id:this.options.cortex_user_id,access_token:this.options.access_token,requested_channel:this.options.requested_channel});return this.logger.log(`checkApplicationRelease response`,e.data),K.getInstance().track(`update_release_check_success`,{version:e.data.release.version,channel:e.data.release.channel,fallback:!!e.data.fallback}),e.data.fallback&&this.logger.warn(`Update fallback detected, switching to default channel`),{path:``,sha512:e.data.download_hash??``,version:`${e.data.release.version}-${e.data.release.channel}`,releaseName:e.data.release.id,releaseDate:e.data.release.created_at,files:[{url:e.data.download_url,sha512:e.data.download_hash??``}]}}catch(e){let t=e instanceof Error?e.stack||e.message:String(e);throw K.getInstance().track(`update_release_check_error`,{message:t}),Error(`Unable to find the latest version (${this.options.release_id}), please ensure release exists. ${t}`)}}resolveFiles(e){return[{info:e.files[0],url:new URL(e.files[0].url)}]}};function On(e){return{provider:`custom`,updateProvider:Dn,...e}}function X(){return oe.autoUpdater}const kn=j(class extends He{DEFAULT_CHANNEL=`public`;TOKEN_REFRESH_INTERVAL=1e3*60*15;accessTokenFetcher=void 0;_tokenRefreshInterval=null;_downloadStarted=!1;constructor(){super(`UpdateManager`)}init(){super.init(),this.registerListenerForwarders(),this.setupTokenRefreshInterval(),X().disableDifferentialDownload=!0}destroy(){X().removeAllListeners(),this._tokenRefreshInterval&&=(clearInterval(this._tokenRefreshInterval),null),super.destroy()}setupTokenRefreshInterval(){this._tokenRefreshInterval=setInterval(()=>{this.checkAndRefreshToken()},this.TOKEN_REFRESH_INTERVAL)}async checkAndRefreshToken(){let e=global.OVERLAYED_META.release.channel;e!==this.DEFAULT_CHANNEL&&(this.logger.log(`Refreshing access token for channel`,e),await this.setAndGetLatestAccessToken(e))}async checkForUpdates(e){this.logger.log(`Starting checkForUpdates`);let t=e??global.OVERLAYED_META.release.channel;return K.getInstance().track(`check_for_update`,{channel:t}),this._downloadStarted=!1,await this.setAndGetLatestAccessToken(t),e?(X().allowDowngrade=!0,X().channel=e,this.setFeedUrl({requestedChannel:e})):(X().allowDowngrade=!1,X().channel=global.OVERLAYED_META.release.channel,this.setFeedUrl({})),this.logger.log(`Checking for updates`),X().checkForUpdates()}async switchChannel(e){return this.logger.log(`Switching channel`,e),K.getInstance().track(`update_channel_switch`,{from_channel:global.OVERLAYED_META.release.channel,to_channel:e}),this._downloadStarted=!1,await this.setAndGetLatestAccessToken(e),X().allowDowngrade=!0,X().channel=e,this.setFeedUrl({requestedChannel:e}),X().checkForUpdates()}quitAndInstall(e,t){this.logger.log(`quitAndInstall`,{isSilent:e,isForceRunAfter:t});let[n,r]=this.canUpdate();if(!n)throw this.logger.warn(`Cannot update`,{denialReason:r}),K.getInstance().track(`update_install_blocked`,{reason:r}),Error(r);return this.logger.log(`Quitting and installing`),K.getInstance().track(`update_install`,{}),X().quitAndInstall(e,t)}canUpdate(){return J.getInstance().isInGame?[!1,`User is in game`]:[!0,null]}downloadUpdate(e){return X().downloadUpdate(e)}setAccessTokenFetcher(e){this.accessTokenFetcher=e}async setAndGetLatestAccessToken(e){if(this.logger.log(`Fetching new token`),!this.accessTokenFetcher)return this.logger.warn(`accessTokenFetcher is not set, private channels will not work.`),jt(null),null;if(this.logger.log(`Setting and getting latest access token for channel`,e),e===this.DEFAULT_CHANNEL)return this.logger.log(`Default channel, skipping`),jt(null),null;if(e!==global.OVERLAYED_META.release.channel)return this.forceFetchNewAccessToken(e);this.logger.log(`Access token exists, checking expiration`);let t=At();if(t){let e=this.getAccessTokenExpirationDate(t);if(!e)this.logger.log(`Invalid token, setting to null`),jt(null);else if(e.getTime()>=Date.now()+300*1e3)return this.logger.log(`Token is not expired, using it.`),t}return this.forceFetchNewAccessToken(e)}async forceFetchNewAccessToken(e){this.accessTokenFetcher||this.logger.warn(`accessTokenFetcher is not set [2], private channels will not work.`);try{let t=await this.accessTokenFetcher?.(e)??null;this.logger.log(`New token fetched`,t?.slice(0,5)+`...`);let n=At();if(t==null||n===t){K.getInstance().track(`update_token_invalid`,{channel:e}),this.emit(`authTokenInvalid`,{}),jt(null);return}return jt(t),t}catch(e){let t=e instanceof Error?e.message:String(e);return K.getInstance().track(`update_token_fetch_error`,{message:t}),this.logger.error(`Error fetching new token`,{error:e,message:t}),jt(null),null}}setFeedUrl(e){if(!global.OVERLAYED_META.release.id){this.logger.warn(`Tried to set feed URL in development mode`);return}X().setFeedURL(On({application_id:global.OVERLAYED.APPLICATION_ID,release_id:global.OVERLAYED_META.release.id,cortex_user_id:global.OVERLAYED_RUNTIME.userId,access_token:At(),requested_channel:e.requestedChannel}))}registerListenerForwarders(){X().on(`checking-for-update`,()=>{this.logger.info(`Checking for updates`),this.emit(`checkingForUpdates`,{})}),X().on(`download-progress`,e=>{this._downloadStarted||(this._downloadStarted=!0,K.getInstance().track(`update_download_started`,{version:X().currentVersion?.version??``})),this.emit(`downloadProgress`,{info:e});let t=`Download speed: ${e.bytesPerSecond} - Downloaded ${e.percent}%`;t+=` (${e.transferred}/${e.total})`,this.logger.log(t)}),X().on(`error`,(e,t)=>{this.logger.error(`Error`,e,t),K.getInstance().track(`update_download_error`,{message:t??e.message}),this.emit(`error`,{error:e,message:t})}),X().on(`update-not-available`,e=>{this.logger.info(`Update not available`,e),K.getInstance().track(`update_not_available`,{version:e.version}),this.emit(`updateNotAvailable`,{info:e})}),X().on(`update-available`,e=>{this.logger.info(`Update available`,e),K.getInstance().track(`update_available`,{version:e.version,channel:X().channel??``}),this.emit(`updateAvailable`,{info:e})}),X().on(`update-downloaded`,e=>{this.logger.info(`Update downloaded`,e),K.getInstance().track(`update_download_complete`,{version:e.version}),this.emit(`updateDownloaded`,{event:e})}),X().on(`update-cancelled`,e=>{this.logger.info(`Update cancelled`,e),K.getInstance().track(`update_cancelled`,{version:e.version}),this.emit(`updateCancelled`,{info:e})})}getAccessTokenExpirationDate(e){try{let t=e.split(`.`)[1];if(!t)return null;let n=atob(t.replace(/-/g,`+`).replace(/_/g,`/`)),r=JSON.parse(n);return r.exp?new Date(r.exp*1e3):null}catch{return null}}});function An(){let e=kn.getInstance();return{site:Sn(),on:(t,n)=>{e.on(t,n)},off:(t,n)=>{e.off(t,n)},setAccessTokenFetcher:t=>e.setAccessTokenFetcher(t),checkForUpdates:()=>e.checkForUpdates(),switchChannel:t=>e.checkForUpdates(t),quitAndInstall:(t,n)=>e.quitAndInstall(t,n),canUpdate:()=>e.canUpdate(),downloadUpdate:t=>e.downloadUpdate(t)}}function jn(){return{getChannel:()=>global.OVERLAYED_META.release.channel,getVersion:()=>global.OVERLAYED_META.release.version,getReleaseId:()=>global.OVERLAYED_META.release.id}}const Mn=j(class extends He{_knownModificationTimes=new Map;_confirmedDumps=new Set;_pendingReports=new Map;_snapshotTimestamp=0;boundOnGameReady=this.onGameReady.bind(this);boundOnGameClose=this.onGameClose.bind(this);constructor(){super(`CrashDumpManager`)}init(){super.init(),this.logger.debug(`init() registering game event listeners`),J.getInstance().on(`gameReadyInternal`,this.boundOnGameReady),J.getInstance().on(`gameCloseInternal`,this.boundOnGameClose),this.logger.debug(`init() complete`)}destroy(){this.logger.debug(`destroy() called`,{pendingReports:this._pendingReports.size,confirmedDumps:this._confirmedDumps.size,knownModificationTimes:this._knownModificationTimes.size}),J.getInstance().off(`gameReadyInternal`,this.boundOnGameReady),J.getInstance().off(`gameCloseInternal`,this.boundOnGameClose),this._knownModificationTimes.clear(),this._confirmedDumps.clear(),this._pendingReports.clear(),this._snapshotTimestamp=0,this.logger.debug(`destroy() cleanup complete`),super.destroy()}async submit(e){this.logger.debug(`submit() called`,{id:e,pendingCount:this._pendingReports.size});let t=this._pendingReports.get(e);if(!t){this.logger.warn(`submit called with unknown id`,e);return}let{response:n,dumpPath:r}=t;this.logger.debug(`Resolved pending report for submission`,{id:e,dumpPath:r});let i=global.OVERLAYED.APPLICATION_ID,a=Ot();if(this.logger.debug(`Resolved identifiers for submission`,{applicationId:i,cortexUserId:a}),n.crash_dump_upload_request)try{this.logger.debug(`Reading crash dump file`,{dumpPath:r});let t=await E.readFile(r);this.logger.debug(`Uploading crash dump`,{dumpPath:r,size:t.byteLength}),await lt(n.crash_dump_upload_request,new Uint8Array(t)),this.logger.debug(`Crash dump uploaded, confirming`,{id:e}),await nt(i,e,{cortex_user_id:a,file_type:`crash_dump`}),this.logger.debug(`Crash dump confirmed`,{id:e})}catch(e){this.logger.error(`Failed to upload crash dump`,{dumpPath:r,error:e})}else this.logger.warn(`No crash dump upload request in response`,{id:e});this._pendingReports.delete(e),this._confirmedDumps.add(r),this.logger.debug(`Report state updated, attempting dump file cleanup`,{id:e,dumpPath:r});try{await E.unlink(r),this.logger.debug(`Dump file cleaned up successfully`,{dumpPath:r})}catch(e){this.logger.warn(`Failed to clean up dump file after submission`,{dumpPath:r,error:e})}this.logger.log(`Crash report submitted successfully`,r)}async onGameReady({ravenGame:e}){this.logger.debug(`onGameReady() fired`,{game:e.identifier}),await this.snapshotModificationTimes(),this.logger.debug(`onGameReady() snapshot complete`,{game:e.identifier})}async onGameClose({ravenGame:e}){this.logger.debug(`onGameClose() fired`,{game:e.identifier}),await this.scanForNewDumps(dt(e.identifier)),this.logger.debug(`onGameClose() scan complete`,{game:e.identifier})}async snapshotModificationTimes(){let e=xe();this._snapshotTimestamp=Date.now(),this.logger.debug(`snapshotModificationTimes() called`,{crashDumpsPath:e,snapshotTimestamp:this._snapshotTimestamp});try{await E.access(e)}catch{this.logger.debug(`Crash dumps directory does not exist, skipping snapshot`,{crashDumpsPath:e});return}let t=await this.findAllDumps(e);this.logger.debug(`Found dumps for snapshot`,{count:t.length});for(let e of t)try{let t=await E.stat(e);if(t.mtimeMs>=this._snapshotTimestamp-3e4){this.logger.debug(`Skipping recent dump from snapshot`,{dumpPath:e,mtimeMs:t.mtimeMs,snapshotTimestamp:this._snapshotTimestamp});continue}this._knownModificationTimes.set(e,t.mtimeMs),this.logger.debug(`Recorded modification time`,{dumpPath:e,mtimeMs:t.mtimeMs})}catch(t){this.logger.warn(`Failed to stat dump file during snapshot`,{dumpPath:e,error:t})}this.logger.debug(`Snapshot complete`,{totalTracked:this._knownModificationTimes.size})}async scanForNewDumps(e){let t=xe();this.logger.debug(`scanForNewDumps() called`,{game:e,crashDumpsPath:t});try{await E.access(t)}catch{this.logger.debug(`Crash dumps directory does not exist, skipping scan`,{crashDumpsPath:t});return}let n=new Set([...this._pendingReports.values()].map(e=>e.dumpPath)),r=await this.findAllDumps(t);this.logger.debug(`Scan found dumps`,{total:r.length,pendingCount:n.size,confirmedCount:this._confirmedDumps.size});for(let t of r){if(this._confirmedDumps.has(t)){this.logger.debug(`Skipping already confirmed dump`,{dumpPath:t});continue}if(n.has(t)){this.logger.debug(`Skipping already pending dump`,{dumpPath:t});continue}let r;try{r=await E.stat(t)}catch(e){this.logger.warn(`Failed to stat dump file during scan`,{dumpPath:t,error:e});continue}let i=r.mtimeMs,a=this._knownModificationTimes.get(t);if(this.logger.debug(`Comparing modification times`,{dumpPath:t,modificationTime:i,knownModificationTime:a}),a===void 0||i>a){this.logger.debug(`Dump is new or modified`,{dumpPath:t,isNew:a===void 0});try{let n=r.size,i=m.basename(m.dirname(t)),a=m.basename(t,m.extname(t));this.logger.debug(`Preparing crash report`,{dumpPath:t,crashDumpSize:n,crashSource:i});let o=(await hn().generateAsync({type:`uint8array`})).byteLength,s=global.OVERLAYED.APPLICATION_ID,c=Ot(),l=global.OVERLAYED_META.release.id;this.logger.debug(`Creating game crash report via API`,{applicationId:s,cortexUserId:c,game:e,crashSource:i,crashDumpSize:n,logsSize:o});let{data:u}=await tt(s,{cortex_user_id:c,game:e,crash_source:i,crash_identifier:a,release_id:l,logs_size:o,crash_dump_size:n});this._pendingReports.set(u.id,{response:u,dumpPath:t}),this.logger.debug(`Crash report created, emitting 'new' event`,{id:u.id,game:e}),this.logger.log(`New crash dump detected`,{dumpPath:t,game:e,id:u.id}),this.emit(`new`,{id:u.id,game:e})}catch(e){this.logger.error(`Failed to create game crash report`,{dumpPath:t,error:e})}}else this.logger.debug(`Dump unchanged, skipping`,{dumpPath:t});this._knownModificationTimes.set(t,i)}this.logger.debug(`scanForNewDumps() complete`,{game:e,pendingReports:this._pendingReports.size})}async findAllDumps(e){this.logger.debug(`findAllDumps() called`,{basePath:e});let t=[],n;try{n=await E.readdir(e,{withFileTypes:!0})}catch(n){return this.logger.warn(`Failed to read crash dumps directory`,{basePath:e,error:n}),t}this.logger.debug(`Top-level entries in crash dumps directory`,{count:n.length,directories:n.filter(e=>e.isDirectory()).map(e=>e.name)});for(let r of n)if(r.isDirectory()){let n=m.join(e,r.name),i;try{i=await E.readdir(n,{withFileTypes:!0})}catch(e){this.logger.warn(`Failed to read crash dump subdirectory`,{subPath:n,error:e});continue}let a=i.filter(e=>e.isFile()&&e.name.endsWith(`.dmp`));this.logger.debug(`Scanned subdirectory`,{subPath:n,totalEntries:i.length,dmpCount:a.length});for(let e of a)t.push(m.join(n,e.name))}return this.logger.debug(`findAllDumps() complete`,{totalFound:t.length}),t}});let Nn=!1,Pn={},Fn,In=new fe,Ln;function Rn(e){Bn(e);let t=zn(e),{init:n=!0,debug:r=!1,silent:i=!0}=t,a=Hn(e);if(I.getInstance().init(e.applicationId,r,i),an.getInstance().init(e.applicationId,r,!0,!0),a&&Gn(Qe(e.applicationId),!1).catch(()=>{}),Nn)return Fn;function o(){if(Nn){I.getInstance().warn(`Overlayed already initialized`);return}tn();let n=Wt.get({createIfMissing:!1});if(n){let t=Kt({currentAccount:n.currentAccount,accounts:n.accounts,expected:{applicationId:e.applicationId,baseUrl:We}});t&&Ke(()=>t.account.apiKey)}let r=new Map,i=new Map,a=An(),s=Jt(t.modules,r,In),c=Yt(),l=en(t.keybinds),u=cn(),d=un(),f=fn(),p=dn(),m=_n(t),h=Tn(),g=xn(t.featureFlags),_=jn();I.getInstance().log(`Overlayed initialized`),Un(t),yn(t,r,i,In,Pn),Nn=!0,Fn={...s,...c,ads:f,keybinds:l,windows:u,input:d,cortex:p,hasAnyActiveProcesses:()=>Ft.getInstance().hasAnyActiveProcesses,hasAnyActiveGames:()=>J.getInstance().isInGame,init:o,log:m,initialized:Nn,notices:h,featureFlags:g,updater:a,application:_,crashDumps:{on:(e,t)=>Mn.getInstance().on(e,t),off:(e,t)=>Mn.getInstance().off(e,t),submit:e=>Mn.getInstance().submit(e)}},Fn.universal.on(`logged_in`,e=>{K.getInstance().track(`account_id`,{account_id:e.content.account_id,game:e.game})})}return n&&a?(o(),Fn):new Proxy({init:o},{get:(e,t)=>{if(t===`init`)return e[t];if(!Nn)throw Error(a?`overlayed was called before initialized: ${t}`:Vn);return Fn[t]}})}function zn(e){return{...e,modules:[...e.modules,Be()]}}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Bn(e){if(!ue(e.applicationId))throw Error(`Invalid applicationId, must be a valid ULID.`)}const Vn="Overlayed metadata has not been initialized yet. Run `overlayed init` to set up your local development environment.";function Hn(e){let t=Wn(),n=`1.3.13`,r=Qe(e.applicationId);function i(){return{package_version:n,application_id:r,application_version:t?.release.version??`0.0.0`}}return I.getInstance().log(`ua object`,i()),Je(()=>i()),t===null?(global.OVERLAYED=new Proxy({},{get:()=>{throw Error(Vn)}}),Gn(r,!0),!1):(global.OVERLAYED={APPLICATION_ID:r,APP_BUILD_CHANNEL:t.release.channel,APP_VERSION:t.release.version,PACKAGE_VERSION:n,FRONTEND_VERSION:`0.0.0`,sessionId:kt(),electron:e.electron},global.OVERLAYED_META=t,global.OVERLAYED_RUNTIME={userId:Ot()},I.getInstance().log(`meta`,t),!0)}function Un(e){I.getInstance().warn(`Bootstrapping`);let t=e.universal?[`*`]:e.modules.map(e=>e.key);J.getInstance().setSubscribedGames(t),I.getInstance().warn(`Initializing update manager`),kn.getInstance().init(),I.getInstance().warn(`Initialized update manager`),rn.getInstance().init({manualUpdates:e.site?.manualUpdates??!1}),Ht.getInstance().init(),J.getInstance().init(),Mn.getInstance().init(),Ft.getInstance().init(),Pt.getInstance().init(),K.getInstance().track(`start`,{}),Ut.getInstance().check(e.applicationId);try{Ln&&clearInterval(Ln),Ln=setInterval(()=>{try{G()}catch{}},3e4),Ln.unref()}catch(e){I.getInstance().log(`failed to start sessionLastUsed interval`,e)}async function n(){let e={};e.os=ne.platform().trim(),e.os_version=process.getSystemVersion().trim(),e.architecture=ne.arch().trim();let t=ne.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 k.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=ne.homedir(),o=await E.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}O.on(`ready`,()=>{n().then(e=>{K.getInstance().track(`system_info`,e)}).catch(e=>{I.getInstance().log(`Failed to retrieve system information`,e)})}),O.on(`quit`,()=>{K.getInstance().track(`electron_quit`,{}),Kn()}),process.on(`exit`,()=>{K.getInstance().track(`exit`,{}),Kn()})}function Wn(){if(O.isPackaged)try{let e=m.join(process.resourcesPath,`meta.json`);return JSON.parse(y.readFileSync(e,`utf-8`))}catch(e){throw Error(`Failed to read application metadata from resources/meta.json`,{cause:e})}else{let e=m.join(process.cwd(),`.overlayed`,`meta.json`);return y.existsSync(e)?JSON.parse(y.readFileSync(e,`utf-8`)):null}}async function Gn(e,t=!1){if(!O.isPackaged)try{I.getInstance().log(`Fetching application metadata from API...`);let n=Ee({...(await $e(e)).data,siteUrl:``});t&&(I.getInstance().log(v.yellowBright(`Uninitialized development environment detected. Created .overlayed folder. In the future, run ${v.bold(`overlayed init`)} to do so. \n\nThe process will now exit to load the cached metadata.\n\n${v.italic(`Note: This will never happen in a packaged application, and will only happen once in local development so long as the .overlayed folder exists.`)}`)),process.exit(0)),global.OVERLAYED_META=n}catch(e){I.getInstance().error(`Failed to fetch application meta`,e),t&&(console.error(`
|
|
15
|
+
`;case 114:return`\r`;case 120:return String.fromCharCode(this.readHexChar(2));case 117:return k(this.readCodePoint());case 116:return` `;case 98:return`\b`;case 118:return`\v`;case 102:return`\f`;case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),``;case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,`Invalid escape sequence`),e){var n=this.pos-1;this.invalidStringToken(n,`Invalid escape sequence in template string`)}default:if(t>=48&&t<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(r,8);return i>255&&(r=r.slice(0,-1),i=parseInt(r,8)),this.pos+=r.length-1,t=this.input.charCodeAt(this.pos),r===`0`&&t!==56&&t!==57||!this.strict&&!e||this.invalidStringToken(this.pos-1-r.length,e?`Octal literal in template string`:`Octal literal in strict mode`),String.fromCharCode(i)}return C(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),``):String.fromCharCode(t)}},H.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return n===null&&this.invalidStringToken(t,`Bad character escape sequence`),n},H.readWord1=function(){this.containsEsc=!1;for(var e=``,t=!0,n=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var i=this.fullCharCodeAtPos();if(m(i,r))this.pos+=i<=65535?1:2;else{if(i!==92)break;this.containsEsc=!0,e+=this.input.slice(n,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,`Expecting Unicode escape sequence \\uXXXX`),++this.pos;var o=this.readCodePoint();(t?p:m)(o,r)||this.invalidStringToken(a,`Invalid Unicode escape`),e+=k(o),n=this.pos}t=!1}return e+this.input.slice(n,this.pos)},H.readWord=function(){var e=this.readWord1(),t=b.name;return this.keywords.test(e)&&(t=ee[e]),this.finishToken(t,e)},M.acorn={Parser:M,version:`8.16.0`,defaultOptions:ue,Position:se,SourceLocation:ce,getLineInfo:le,Node:je,TokenType:h,tokTypes:b,keywordTypes:ee,TokContext:Ce,tokContexts:R,isIdentifierChar:m,isIdentifierStart:p,Token:ot,isNewLine:C,lineBreak:x,lineBreakG:S,nonASCIIwhitespace:te};var lt=r(`node:module`),U=r(`node:fs`);String.fromCharCode;let ut=/\/$|\/\?|\/#/,dt=/^\.?\//;function ft(e=``,t){return t?ut.test(e):e.endsWith(`/`)}function pt(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(ft(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function mt(e){return e&&e!==`/`}function ht(e,...t){let n=e||``;for(let e of t.filter(e=>mt(e)))if(n){let t=e.replace(dt,``);n=pt(n)+t}else n=e;return n}let gt=/^[A-Za-z]:\//;function _t(e=``){return e&&e.replace(/\\/g,`/`).replace(gt,e=>e.toUpperCase())}let vt=/^[/\\]{2}/,yt=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,bt=/^[A-Za-z]:$/,xt=/.(\.[^./]+|\.)$/,St=function(e){if(e.length===0)return`.`;let t=(e=_t(e)).match(vt),n=W(e),r=e[e.length-1]===`/`;return(e=Et(e,!n)).length===0?n?`/`:r?`./`:`.`:(r&&(e+=`/`),bt.test(e)&&(e+=`/`),t?n?`//${e}`:`//./${e}`:n&&!W(e)?`/${e}`:e)},Ct=function(...e){let t=``;for(let n of e)if(n)if(t.length>0){let e=t[t.length-1]===`/`,r=n[0]===`/`;t+=e&&r?n.slice(1):e||r?n:`/${n}`}else t+=n;return St(t)};function wt(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}let Tt=function(...e){let t=``,n=!1;for(let r=(e=e.map(e=>_t(e))).length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:wt();i&&i.length!==0&&(t=`${i}/${t}`,n=W(i))}return t=Et(t,!n),n&&!W(t)?`/${t}`:t.length>0?t:`.`};function Et(e,t){let n=``,r=0,i=-1,a=0,o=null;for(let s=0;s<=e.length;++s){if(s<e.length)o=e[s];else{if(o===`/`)break;o=`/`}if(o===`/`){if(!(i===s-1||a===1))if(a===2){if(n.length<2||r!==2||n[n.length-1]!==`.`||n[n.length-2]!==`.`){if(n.length>2){let e=n.lastIndexOf(`/`);e===-1?(n=``,r=0):(n=n.slice(0,e),r=n.length-1-n.lastIndexOf(`/`)),i=s,a=0;continue}if(n.length>0){n=``,r=0,i=s,a=0;continue}}t&&(n+=n.length>0?`/..`:`..`,r=2)}else n.length>0?n+=`/${e.slice(i+1,s)}`:n=e.slice(i+1,s),r=s-i-1;i=s,a=0}else o===`.`&&a!==-1?++a:a=-1}return n}let W=function(e){return yt.test(e)},Dt=function(e){if(e===`..`)return``;let t=xt.exec(_t(e));return t&&t[1]||``},Ot=function(e){let t=_t(e).replace(/\/$/,``).split(`/`).slice(0,-1);return t.length===1&&bt.test(t[0])&&(t[0]+=`/`),t.join(`/`)||(W(e)?`/`:`.`)},kt=function(e,t){let n=_t(e).split(`/`),r=``;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t){r=t;break}}return t&&r.endsWith(t)?r.slice(0,-t.length):r},G=A(`node:url`),At=A(`node:assert`),jt=A(`node:process`);var Mt=r(`node:path`);let Nt=A(`node:v8`),Pt=A(`node:util`),Ft=new Set(lt.builtinModules);function It(e){return e.replace(/\\/g,`/`)}let Lt={}.hasOwnProperty,K=/^([A-Z][a-z\d]*)+$/,Rt=new Set([`string`,`function`,`number`,`object`,`Function`,`Object`,`boolean`,`bigint`,`symbol`]),q={};function zt(e,t=`and`){return e.length<3?e.join(` ${t} `):`${e.slice(0,-1).join(`, `)}, ${t} ${e[e.length-1]}`}let Bt=new Map,Vt;function J(e,t,n){return Bt.set(e,t),function(e,t){return n;function n(...n){let r=Error.stackTraceLimit;Ht()&&(Error.stackTraceLimit=0);let i=new e;Ht()&&(Error.stackTraceLimit=r);let a=function(e,t,n){let r=Bt.get(e);if(At.ok(r!==void 0,"expected `message` to be found"),typeof r==`function`)return At.ok(r.length<=t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${r.length}).`),Reflect.apply(r,n,t);let i=/%[dfijoOs]/g,a=0;for(;i.exec(r)!==null;)a++;return At.ok(a===t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${a}).`),t.length===0?r:(t.unshift(r),Reflect.apply(Pt.format,null,t))}(t,n,i);return Object.defineProperties(i,{message:{value:a,enumerable:!1,writable:!0,configurable:!0},toString:{value(){return`${this.name} [${t}]: ${this.message}`},enumerable:!1,writable:!0,configurable:!0}}),Ut(i),i.code=t,i}}(n,e)}function Ht(){try{if(Nt.startupSnapshot.isBuildingSnapshot())return!1}catch{}let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Lt.call(e,`writable`)&&e.writable!==void 0?e.writable:e.set!==void 0}q.ERR_INVALID_ARG_TYPE=J(`ERR_INVALID_ARG_TYPE`,(e,t,n)=>{At.ok(typeof e==`string`,`'name' must be a string`),Array.isArray(t)||(t=[t]);let r=`The `;if(e.endsWith(` argument`))r+=`${e} `;else{let t=e.includes(`.`)?`property`:`argument`;r+=`"${e}" ${t} `}r+=`must be `;let i=[],a=[],o=[];for(let e of t)At.ok(typeof e==`string`,`All expected entries have to be of type string`),Rt.has(e)?i.push(e.toLowerCase()):K.exec(e)===null?(At.ok(e!==`object`,`The value "object" should be written as "Object"`),o.push(e)):a.push(e);if(a.length>0){let e=i.indexOf(`object`);e!==-1&&(i.slice(e,1),a.push(`Object`))}return i.length>0&&(r+=`${i.length>1?`one of type`:`of type`} ${zt(i,`or`)}`,(a.length>0||o.length>0)&&(r+=` or `)),a.length>0&&(r+=`an instance of ${zt(a,`or`)}`,o.length>0&&(r+=` or `)),o.length>0&&(o.length>1?r+=`one of ${zt(o,`or`)}`:(o[0].toLowerCase()!==o[0]&&(r+=`an `),r+=`${o[0]}`)),r+=`. Received ${function(e){if(e==null)return String(e);if(typeof e==`function`&&e.name)return`function ${e.name}`;if(typeof e==`object`)return e.constructor&&e.constructor.name?`an instance of ${e.constructor.name}`:`${(0,Pt.inspect)(e,{depth:-1})}`;let t=(0,Pt.inspect)(e,{colors:!1});return t.length>28&&(t=`${t.slice(0,25)}...`),`type ${typeof e} (${t})`}(n)}`,r},TypeError),q.ERR_INVALID_MODULE_SPECIFIER=J(`ERR_INVALID_MODULE_SPECIFIER`,(e,t,n=void 0)=>`Invalid module "${e}" ${t}${n?` imported from ${n}`:``}`,TypeError),q.ERR_INVALID_PACKAGE_CONFIG=J(`ERR_INVALID_PACKAGE_CONFIG`,(e,t,n)=>`Invalid package config ${e}${t?` while importing ${t}`:``}${n?`. ${n}`:``}`,Error),q.ERR_INVALID_PACKAGE_TARGET=J(`ERR_INVALID_PACKAGE_TARGET`,(e,t,n,r=!1,i=void 0)=>{let a=typeof n==`string`&&!r&&n.length>0&&!n.startsWith(`./`);return t===`.`?(At.ok(!1===r),`Invalid "exports" main target ${JSON.stringify(n)} defined in the package config ${e}package.json${i?` imported from ${i}`:``}${a?`; targets must start with "./"`:``}`):`Invalid "${r?`imports`:`exports`}" target ${JSON.stringify(n)} defined for '${t}' in the package config ${e}package.json${i?` imported from ${i}`:``}${a?`; targets must start with "./"`:``}`},Error),q.ERR_MODULE_NOT_FOUND=J(`ERR_MODULE_NOT_FOUND`,(e,t,n=!1)=>`Cannot find ${n?`module`:`package`} '${e}' imported from ${t}`,Error),q.ERR_NETWORK_IMPORT_DISALLOWED=J(`ERR_NETWORK_IMPORT_DISALLOWED`,`import of '%s' by %s is not supported: %s`,Error),q.ERR_PACKAGE_IMPORT_NOT_DEFINED=J(`ERR_PACKAGE_IMPORT_NOT_DEFINED`,(e,t,n)=>`Package import specifier "${e}" is not defined${t?` in package ${t}package.json`:``} imported from ${n}`,TypeError),q.ERR_PACKAGE_PATH_NOT_EXPORTED=J(`ERR_PACKAGE_PATH_NOT_EXPORTED`,(e,t,n=void 0)=>t===`.`?`No "exports" main defined in ${e}package.json${n?` imported from ${n}`:``}`:`Package subpath '${t}' is not defined by "exports" in ${e}package.json${n?` imported from ${n}`:``}`,Error),q.ERR_UNSUPPORTED_DIR_IMPORT=J(`ERR_UNSUPPORTED_DIR_IMPORT`,`Directory import '%s' is not supported resolving ES modules imported from %s`,Error),q.ERR_UNSUPPORTED_RESOLVE_REQUEST=J(`ERR_UNSUPPORTED_RESOLVE_REQUEST`,`Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.`,TypeError),q.ERR_UNKNOWN_FILE_EXTENSION=J(`ERR_UNKNOWN_FILE_EXTENSION`,(e,t)=>`Unknown file extension "${e}" for ${t}`,TypeError),q.ERR_INVALID_ARG_VALUE=J(`ERR_INVALID_ARG_VALUE`,(e,t,n=`is invalid`)=>{let r=(0,Pt.inspect)(t);return r.length>128&&(r=`${r.slice(0,128)}...`),`The ${e.includes(`.`)?`property`:`argument`} '${e}' ${n}. Received ${r}`},TypeError);let Ut=function(e){let t=`__node_internal_`+e.name;return Object.defineProperty(e,"name",{value:t}),e}(function(e){let t=Ht();return t&&(Vt=Error.stackTraceLimit,Error.stackTraceLimit=1/0),Error.captureStackTrace(e),t&&(Error.stackTraceLimit=Vt),e}),Wt={}.hasOwnProperty,{ERR_INVALID_PACKAGE_CONFIG:Gt}=q,Kt=new Map;function qt(e,{base:t,specifier:n}){let r=Kt.get(e);if(r)return r;let i;try{i=U.readFileSync(Mt.toNamespacedPath(e),`utf8`)}catch(e){let t=e;if(t.code!==`ENOENT`)throw t}let a={exists:!1,pjsonPath:e,main:void 0,name:void 0,type:`none`,exports:void 0,imports:void 0};if(i!==void 0){let r;try{r=JSON.parse(i)}catch(r){let i=r,a=new Gt(e,(t?`"${n}" from `:``)+(0,G.fileURLToPath)(t||n),i.message);throw a.cause=i,a}a.exists=!0,Wt.call(r,`name`)&&typeof r.name==`string`&&(a.name=r.name),Wt.call(r,`main`)&&typeof r.main==`string`&&(a.main=r.main),Wt.call(r,`exports`)&&(a.exports=r.exports),Wt.call(r,`imports`)&&(a.imports=r.imports),!Wt.call(r,`type`)||r.type!==`commonjs`&&r.type!==`module`||(a.type=r.type)}return Kt.set(e,a),a}function Jt(e){let t=new URL(`package.json`,e);for(;!t.pathname.endsWith(`node_modules/package.json`);){let n=qt((0,G.fileURLToPath)(t),{specifier:e});if(n.exists)return n;let r=t;if(t=new URL(`../package.json`,t),t.pathname===r.pathname)break}return{pjsonPath:(0,G.fileURLToPath)(t),exists:!1,type:`none`}}function Yt(e){return Jt(e).type}let{ERR_UNKNOWN_FILE_EXTENSION:Xt}=q,Zt={}.hasOwnProperty,Qt={__proto__:null,".cjs":`commonjs`,".js":`module`,".json":`json`,".mjs":`module`},$t={__proto__:null,"data:":function(e){let{1:t}=/^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(e.pathname)||[null,null,null];return function(e){return e&&/\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(e)?`module`:e===`application/json`?`json`:null}(t)},"file:":function(e,t,n){let r=function(e){let t=e.pathname,n=t.length;for(;n--;){let e=t.codePointAt(n);if(e===47)return``;if(e===46)return t.codePointAt(n-1)===47?``:t.slice(n)}return``}(e);if(r===`.js`){let t=Yt(e);return t===`none`?`commonjs`:t}if(r===``){let t=Yt(e);return t===`none`||t===`commonjs`?`commonjs`:`module`}let i=Qt[r];if(i)return i;if(n)return;let a=(0,G.fileURLToPath)(e);throw new Xt(r,a)},"http:":en,"https:":en,"node:":()=>`builtin`};function en(){}let Y=Object.freeze([`node`,`import`]),tn=new Set(Y);function nn(e){return tn}let rn=RegExp.prototype[Symbol.replace],{ERR_INVALID_MODULE_SPECIFIER:an,ERR_INVALID_PACKAGE_CONFIG:on,ERR_INVALID_PACKAGE_TARGET:sn,ERR_MODULE_NOT_FOUND:cn,ERR_PACKAGE_IMPORT_NOT_DEFINED:ln,ERR_PACKAGE_PATH_NOT_EXPORTED:un,ERR_UNSUPPORTED_DIR_IMPORT:dn,ERR_UNSUPPORTED_RESOLVE_REQUEST:fn}=q,pn={}.hasOwnProperty,mn=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i,hn=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,gn=/^\.|%|\\/,_n=/\*/g,vn=/%2f|%5c/i,yn=new Set,bn=/[/\\]{2}/;function xn(e,t,n,r,i,a,o){if(jt.noDeprecation)return;let s=(0,G.fileURLToPath)(r),c=bn.exec(o?e:t)!==null;jt.emitWarning(`Use of deprecated ${c?`double slash`:`leading or trailing slash matching`} resolving "${e}" for module request "${t}" ${t===n?``:`matched to "${n}" `}in the "${i?`imports`:`exports`}" field module resolution of the package at ${s}${a?` imported from ${(0,G.fileURLToPath)(a)}`:``}.`,`DeprecationWarning`,`DEP0166`)}function Sn(e,t,n,r){if(jt.noDeprecation||function(e,t){let n=e.protocol;return Zt.call($t,n)&&$t[n](e,t,!0)||null}(e,{parentURL:n.href})!==`module`)return;let i=(0,G.fileURLToPath)(e.href),a=(0,G.fileURLToPath)(new URL(`.`,t)),o=(0,G.fileURLToPath)(n);r?Mt.resolve(a,r)!==i&&jt.emitWarning(`Package ${a} has a "main" field set to "${r}", excluding the full filename and extension to the resolved file at "${i.slice(a.length)}", imported from ${o}.\n Automatic extension resolution of the "main" field is deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`):jt.emitWarning(`No "main" or "exports" field defined in the package.json for ${a} resolving the main entry point "${i.slice(a.length)}", imported from ${o}.\nDefault "index" lookups for the main are deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`)}function Cn(e){try{return(0,U.statSync)(e)}catch{}}function wn(e){let t=(0,U.statSync)(e,{throwIfNoEntry:!1}),n=t?t.isFile():void 0;return n!=null&&n}function Tn(e,t,n){let r;if(t.main!==void 0){if(r=new URL(t.main,e),wn(r))return r;let i=[`./${t.main}.js`,`./${t.main}.json`,`./${t.main}.node`,`./${t.main}/index.js`,`./${t.main}/index.json`,`./${t.main}/index.node`],a=-1;for(;++a<i.length&&(r=new URL(i[a],e),!wn(r));)r=void 0;if(r)return Sn(r,e,n,t.main),r}let i=[`./index.js`,`./index.json`,`./index.node`],a=-1;for(;++a<i.length&&(r=new URL(i[a],e),!wn(r));)r=void 0;if(r)return Sn(r,e,n,t.main),r;throw new cn((0,G.fileURLToPath)(new URL(`.`,e)),(0,G.fileURLToPath)(n))}function En(e,t,n){return new un((0,G.fileURLToPath)(new URL(`.`,t)),e,n&&(0,G.fileURLToPath)(n))}function Dn(e,t,n,r,i){return t=typeof t==`object`&&t?JSON.stringify(t,null,``):`${t}`,new sn((0,G.fileURLToPath)(new URL(`.`,n)),e,t,r,i&&(0,G.fileURLToPath)(i))}function On(e,t,n,r,i,a,o,s,c){if(t!==``&&!a&&e[e.length-1]!==`/`)throw Dn(n,e,r,o,i);if(!e.startsWith(`./`)){if(o&&!e.startsWith(`../`)&&!e.startsWith(`/`)){let n=!1;try{new URL(e),n=!0}catch{}if(!n)return Pn(a?rn.call(_n,e,()=>t):e+t,r,c)}throw Dn(n,e,r,o,i)}if(mn.exec(e.slice(2))!==null){if(hn.exec(e.slice(2))!==null)throw Dn(n,e,r,o,i);if(!s){let s=a?n.replace(`*`,()=>t):n+t;xn(a?rn.call(_n,e,()=>t):e,s,n,r,o,i,!0)}}let l=new URL(e,r),u=l.pathname,d=new URL(`.`,r).pathname;if(!u.startsWith(d))throw Dn(n,e,r,o,i);if(t===``)return l;if(mn.exec(t)!==null){let c=a?n.replace(`*`,()=>t):n+t;hn.exec(t)===null?s||xn(a?rn.call(_n,e,()=>t):e,c,n,r,o,i,!1):(function(e,t,n,r,i){let a=`request is not a valid match in pattern "${t}" for the "${r?`imports`:`exports`}" resolution of ${(0,G.fileURLToPath)(n)}`;throw new an(e,a,i&&(0,G.fileURLToPath)(i))})(c,n,r,o,i)}return a?new URL(rn.call(_n,l.href,()=>t)):new URL(t,l)}function X(e){let t=Number(e);return`${t}`===e&&t>=0&&t<4294967295}function kn(e,t,n,r,i,a,o,s,c){if(typeof t==`string`)return On(t,n,r,e,i,a,o,s,c);if(Array.isArray(t)){let l=t;if(l.length===0)return null;let u,d=-1;for(;++d<l.length;){let t=l[d],f;try{f=kn(e,t,n,r,i,a,o,s,c)}catch(e){if(u=e,e.code===`ERR_INVALID_PACKAGE_TARGET`)continue;throw e}if(f!==void 0){if(f!==null)return f;u=null}}if(u==null)return null;throw u}if(typeof t==`object`&&t){let l=Object.getOwnPropertyNames(t),u=-1;for(;++u<l.length;)if(X(l[u]))throw new on((0,G.fileURLToPath)(e),i,`"exports" cannot contain numeric property keys.`);for(u=-1;++u<l.length;){let d=l[u];if(d==="default"||c&&c.has(d)){let l=kn(e,t[d],n,r,i,a,o,s,c);if(l===void 0)continue;return l}}return null}if(t===null)return null;throw Dn(r,t,e,o,i)}function An(e,t,n){if(jt.noDeprecation)return;let r=(0,G.fileURLToPath)(t);yn.has(r+`|`+e)||(yn.add(r+`|`+e),jt.emitWarning(`Use of deprecated trailing slash pattern mapping "${e}" in the "exports" field module resolution of the package at ${r}${n?` imported from ${(0,G.fileURLToPath)(n)}`:``}. Mapping specifiers ending in "/" is no longer supported.`,`DeprecationWarning`,`DEP0155`))}function jn(e,t,n,r,i){let a=n.exports;if(function(e,t,n){if(typeof e==`string`||Array.isArray(e))return!0;if(typeof e!=`object`||!e)return!1;let r=Object.getOwnPropertyNames(e),i=!1,a=0,o=-1;for(;++o<r.length;){let e=r[o],s=e===``||e[0]!==`.`;if(a++===0)i=s;else if(i!==s)throw new on((0,G.fileURLToPath)(t),n,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return i}(a,e,r)&&(a={".":a}),pn.call(a,t)&&!t.includes(`*`)&&!t.endsWith(`/`)){let n=kn(e,a[t],``,t,r,!1,!1,!1,i);if(n==null)throw En(t,e,r);return n}let o=``,s=``,c=Object.getOwnPropertyNames(a),l=-1;for(;++l<c.length;){let n=c[l],i=n.indexOf(`*`);if(i!==-1&&t.startsWith(n.slice(0,i))){t.endsWith(`/`)&&An(t,e,r);let a=n.slice(i+1);t.length>=n.length&&t.endsWith(a)&&Mn(o,n)===1&&n.lastIndexOf(`*`)===i&&(o=n,s=t.slice(i,t.length-a.length))}}if(o){let n=kn(e,a[o],s,o,r,!0,!1,t.endsWith(`/`),i);if(n==null)throw En(t,e,r);return n}throw En(t,e,r)}function Mn(e,t){let n=e.indexOf(`*`),r=t.indexOf(`*`),i=n===-1?e.length:n+1,a=r===-1?t.length:r+1;return i>a?-1:a>i||n===-1?1:r===-1||e.length>t.length?-1:+(t.length>e.length)}function Nn(e,t,n){if(e===`#`||e.startsWith(`#/`)||e.endsWith(`/`))throw new an(e,`is not a valid internal imports specifier name`,(0,G.fileURLToPath)(t));let r,i=Jt(t);if(i.exists){r=(0,G.pathToFileURL)(i.pjsonPath);let a=i.imports;if(a)if(pn.call(a,e)&&!e.includes(`*`)){let i=kn(r,a[e],``,e,t,!1,!0,!1,n);if(i!=null)return i}else{let i=``,o=``,s=Object.getOwnPropertyNames(a),c=-1;for(;++c<s.length;){let t=s[c],n=t.indexOf(`*`);if(n!==-1&&e.startsWith(t.slice(0,-1))){let r=t.slice(n+1);e.length>=t.length&&e.endsWith(r)&&Mn(i,t)===1&&t.lastIndexOf(`*`)===n&&(i=t,o=e.slice(n,e.length-r.length))}}if(i){let e=kn(r,a[i],o,i,t,!0,!0,!1,n);if(e!=null)return e}}}throw function(e,t,n){return new ln(e,t&&(0,G.fileURLToPath)(new URL(`.`,t)),(0,G.fileURLToPath)(n))}(e,r,t)}function Pn(e,t,n){if(lt.builtinModules.includes(e))return new URL(`node:`+e);let{packageName:r,packageSubpath:i,isScoped:a}=function(e,t){let n=e.indexOf(`/`),r=!0,i=!1;e[0]===`@`&&(i=!0,n===-1||e.length===0?r=!1:n=e.indexOf(`/`,n+1));let a=n===-1?e:e.slice(0,n);if(gn.exec(a)!==null&&(r=!1),!r)throw new an(e,`is not a valid package name`,(0,G.fileURLToPath)(t));return{packageName:a,packageSubpath:`.`+(n===-1?``:e.slice(n)),isScoped:i}}(e,t),o=Jt(t);if(o.exists){let e=(0,G.pathToFileURL)(o.pjsonPath);if(o.name===r&&o.exports!==void 0&&o.exports!==null)return jn(e,i,o,t,n)}let s,c=new URL(`./node_modules/`+r+`/package.json`,t),l=(0,G.fileURLToPath)(c);do{let o=Cn(l.slice(0,-13));if(!o||!o.isDirectory()){s=l,c=new URL((a?`../../../../node_modules/`:`../../../node_modules/`)+r+`/package.json`,c),l=(0,G.fileURLToPath)(c);continue}let u=qt(l,{base:t,specifier:e});return u.exports!==void 0&&u.exports!==null?jn(c,i,u,t,n):i===`.`?Tn(c,u,t):new URL(i,c)}while(l.length!==s.length)}function Fn(e,t,n,r){n===void 0&&(n=nn());let i=t.protocol,a=i===`data:`||i===`http:`||i===`https:`,o;if(function(e){return e!==``&&(e[0]===`/`||function(e){return e[0]===`.`&&(e.length===1||e[1]===`/`||e[1]===`.`&&(e.length===2||e[2]===`/`))}(e))}(e))try{o=new URL(e,t)}catch(n){let r=new fn(e,t);throw r.cause=n,r}else if(i===`file:`&&e[0]===`#`)o=Nn(e,t,n);else try{o=new URL(e)}catch(r){if(a&&!lt.builtinModules.includes(e)){let n=new fn(e,t);throw n.cause=r,n}o=Pn(e,t,n)}return At.ok(o!==void 0,`expected to be defined`),o.protocol===`file:`?function(e,t){if(vn.exec(e.pathname)!==null)throw new an(e.pathname,`must not include encoded "/" or "\\" characters`,(0,G.fileURLToPath)(t));let n;try{n=(0,G.fileURLToPath)(e)}catch(n){let r=n;throw Object.defineProperty(r,"input",{value:String(e)}),Object.defineProperty(r,"module",{value:String(t)}),r}let r=Cn(n.endsWith(`/`)?n.slice(-1):n);if(r&&r.isDirectory()){let r=new dn(n,(0,G.fileURLToPath)(t));throw r.url=String(e),r}if(!r||!r.isFile()){let r=new cn(n||e.pathname,t&&(0,G.fileURLToPath)(t),!0);throw r.url=String(e),r}{let t=(0,U.realpathSync)(n),{search:r,hash:i}=e;(e=(0,G.pathToFileURL)(t+(n.endsWith(Mt.sep)?`/`:``))).search=r,e.hash=i}return e}(o,t):o}function In(e){return typeof e!=`string`||e.startsWith(`file://`)?It((0,G.fileURLToPath)(e)):It(e)}function Ln(e){return(0,G.pathToFileURL)(In(e)).toString()}let Rn=new Set([`node`,`import`]),zn=[`.mjs`,`.cjs`,`.js`,`.json`],Bn=new Set([`ERR_MODULE_NOT_FOUND`,`ERR_UNSUPPORTED_DIR_IMPORT`,`MODULE_NOT_FOUND`,`ERR_PACKAGE_PATH_NOT_EXPORTED`]);function Vn(e,t,n){try{return Fn(e,t,n)}catch(e){if(!Bn.has(e?.code))throw e}}function Hn(e,t={}){if(typeof e!=`string`){if(!(e instanceof URL))throw TypeError("input must be a `string` or `URL`");e=In(e)}if(/(?:node|data|http|https):/.test(e))return e;if(Ft.has(e))return`node:`+e;if(e.startsWith(`file://`)&&(e=In(e)),W(e))try{if((0,U.statSync)(e).isFile())return Ln(e)}catch(e){if(e?.code!==`ENOENT`)throw e}let n=t.conditions?new Set(t.conditions):Rn,r=(Array.isArray(t.url)?t.url:[t.url]).filter(Boolean).map(e=>new URL(function(e){return typeof e!=`string`&&(e=e.toString()),/(?:node|data|http|https|file):/.test(e)?e:Ft.has(e)?`node:`+e:`file://`+encodeURI(It(e))}(e.toString())));r.length===0&&r.push(new URL(Ln(process.cwd())));let i=[...r];for(let e of r)e.protocol===`file:`&&i.push(new URL(`./`,e),new URL(ht(e.pathname,`_index.js`),e),new URL(`node_modules`,e));let a;for(let r of i){if(a=Vn(e,r,n),a)break;for(let i of[``,`/index`]){for(let o of t.extensions||zn)if(a=Vn(ht(e,i)+o,r,n),a)break;if(a)break}if(a)break}if(!a){let t=Error(`Cannot find module ${e} imported from ${i.join(`, `)}`);throw t.code=`ERR_MODULE_NOT_FOUND`,t}return Ln(a)}function Un(e,t){return Hn(e,t)}function Wn(e,t){return In(Un(e,t))}let Gn=/(?:[\s;]|^)(?:import[\s\w*,{}]*from|import\s*["'*{]|export\b\s*(?:[*{]|default|class|type|function|const|var|let|async function)|import\.meta\b)/m,Kn=/\/\*.+?\*\/|\/\/.*(?=[nr])/g;function qn(e,t={}){return t.stripComments&&(e=e.replace(Kn,``)),Gn.test(e)}function Jn(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)}let Yn=new Set([`/`,`\\`,void 0]),Xn=Symbol.for(`pathe:normalizedAlias`),Zn=/[/\\]/;function Qn(e){if(e[Xn])return e;let t=Object.fromEntries(Object.entries(e).sort(([e],[t])=>function(e,t){return t.split(`/`).length-e.split(`/`).length}(e,t)));for(let e in t)for(let n in t)n===e||e.startsWith(n)||t[e]?.startsWith(n)&&Yn.has(t[e][n.length])&&(t[e]=t[n]+t[e].slice(n.length));return Object.defineProperty(t,Xn,{value:!0,enumerable:!1}),t}function $n(e=`/`){let t=e[e.length-1];return t===`/`||t===`\\`}var er={rE:`2.6.1`};let tr=A(`node:crypto`);var nr=r.n(tr);let Z=globalThis.process?.env||Object.create(null),rr=globalThis.process||{env:Z},ir=rr!==void 0&&rr.env&&rr.env.NODE_ENV||void 0,ar=[[`claude`,[`CLAUDECODE`,`CLAUDE_CODE`]],[`replit`,[`REPL_ID`]],[`gemini`,[`GEMINI_CLI`]],[`codex`,[`CODEX_SANDBOX`,`CODEX_THREAD_ID`]],[`opencode`,[`OPENCODE`]],[`pi`,[or(`PATH`,/\.pi[\\/]agent/)]],[`auggie`,[`AUGMENT_AGENT`]],[`goose`,[`GOOSE_PROVIDER`]],[`devin`,[or(`EDITOR`,/devin/)]],[`cursor`,[`CURSOR_AGENT`]],[`kiro`,[or(`TERM_PROGRAM`,/kiro/)]]];function or(e,t){return()=>{let n=Z[e];return!!n&&t.test(n)}}let sr=function(){let e=Z.AI_AGENT;if(e)return{name:e.toLowerCase()};for(let[e,t]of ar)for(let n of t)if(typeof n==`string`?Z[n]:n())return{name:e};return{}}(),cr=(sr.name,sr.name,[[`APPVEYOR`],[`AWS_AMPLIFY`,`AWS_APP_ID`,{ci:!0}],[`AZURE_PIPELINES`,`SYSTEM_TEAMFOUNDATIONCOLLECTIONURI`],[`AZURE_STATIC`,`INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN`],[`APPCIRCLE`,`AC_APPCIRCLE`],[`BAMBOO`,`bamboo_planKey`],[`BITBUCKET`,`BITBUCKET_COMMIT`],[`BITRISE`,`BITRISE_IO`],[`BUDDY`,`BUDDY_WORKSPACE_ID`],[`BUILDKITE`],[`CIRCLE`,`CIRCLECI`],[`CIRRUS`,`CIRRUS_CI`],[`CLOUDFLARE_PAGES`,`CF_PAGES`,{ci:!0}],[`CLOUDFLARE_WORKERS`,`WORKERS_CI`,{ci:!0}],[`GOOGLE_CLOUDRUN`,`K_SERVICE`],[`GOOGLE_CLOUDRUN_JOB`,`CLOUD_RUN_JOB`],[`CODEBUILD`,`CODEBUILD_BUILD_ARN`],[`CODEFRESH`,`CF_BUILD_ID`],[`DRONE`],[`DRONE`,`DRONE_BUILD_EVENT`],[`DSARI`],[`GITHUB_ACTIONS`],[`GITLAB`,`GITLAB_CI`],[`GITLAB`,`CI_MERGE_REQUEST_ID`],[`GOCD`,`GO_PIPELINE_LABEL`],[`LAYERCI`],[`JENKINS`,`JENKINS_URL`],[`HUDSON`,`HUDSON_URL`],[`MAGNUM`],[`NETLIFY`],[`NETLIFY`,`NETLIFY_LOCAL`,{ci:!1}],[`NEVERCODE`],[`RENDER`],[`SAIL`,`SAILCI`],[`SEMAPHORE`],[`SCREWDRIVER`],[`SHIPPABLE`],[`SOLANO`,`TDDIUM`],[`STRIDER`],[`TEAMCITY`,`TEAMCITY_VERSION`],[`TRAVIS`],[`VERCEL`,`NOW_BUILDER`],[`VERCEL`,`VERCEL`,{ci:!1}],[`VERCEL`,`VERCEL_ENV`,{ci:!1}],[`APPCENTER`,`APPCENTER_BUILD_ID`],[`CODESANDBOX`,`CODESANDBOX_SSE`,{ci:!1}],[`CODESANDBOX`,`CODESANDBOX_HOST`,{ci:!1}],[`STACKBLITZ`],[`STORMKIT`],[`CLEAVR`],[`ZEABUR`],[`CODESPHERE`,`CODESPHERE_APP_ID`,{ci:!0}],[`RAILWAY`,`RAILWAY_PROJECT_ID`],[`RAILWAY`,`RAILWAY_SERVICE_ID`],[`DENO-DEPLOY`,`DENO_DEPLOY`],[`DENO-DEPLOY`,`DENO_DEPLOYMENT_ID`],[`FIREBASE_APP_HOSTING`,`FIREBASE_APP_HOSTING`,{ci:!0}],[`EDGEONE_PAGES`,`EO_PAGES_CI`,{ci:!0}]]),lr=function(){for(let e of cr)if(Z[e[1]||e[0]])return{name:e[0].toLowerCase(),...e[2]};return Z.SHELL===`/bin/jsh`&&rr.versions?.webcontainer?{name:`stackblitz`,ci:!1}:{name:``,ci:!1}}(),ur=(lr.name,rr.platform||``);Z.CI||lr.ci;let dr=!!rr.stdout?.isTTY;Z.DEBUG,ir===`test`||Z.TEST;let fr=(ir===`production`||Z.MODE,ir===`dev`||ir===`development`||Z.MODE,Z.MINIMAL,/^win/i.test(ur)),pr=(/^linux/i.test(ur),/^darwin/i.test(ur),!Z.NO_COLOR&&(Z.FORCE_COLOR||(dr||fr)&&Z.TERM),(rr.versions?.node||``).replace(/^v/,``)||null),mr=(Number(pr?.split(`.`)[0]),!!rr?.versions?.node),hr=`Bun`in globalThis,gr=`Deno`in globalThis,_r=`fastly`in globalThis,vr=[[`Netlify`in globalThis,`netlify`],[`EdgeRuntime`in globalThis,`edge-light`],[globalThis.navigator?.userAgent===`Cloudflare-Workers`,`workerd`],[_r,`fastly`],[gr,`deno`],[hr,`bun`],[mr,`node`]];(function(){let e=vr.find(e=>e[0]);e&&e[1]})();let yr=A(`node:tty`)?.WriteStream?.prototype?.hasColors?.()??!1,Q=(e,t)=>{if(!yr)return e=>e;let n=`[${e}m`,r=`[${t}m`;return e=>{let i=e+``,a=i.indexOf(r);if(a===-1)return n+i+r;let o=n,s=0,c=(t===22?r:``)+n;for(;a!==-1;)o+=i.slice(s,a)+c,s=a+r.length,a=i.indexOf(r,s);return o+=i.slice(s)+r,o}},br=(Q(0,0),Q(1,22),Q(2,22),Q(3,23),Q(4,24),Q(53,55),Q(7,27),Q(8,28),Q(9,29),Q(30,39),Q(31,39)),xr=Q(32,39),Sr=Q(33,39),Cr=Q(34,39),wr=(Q(35,39),Q(36,39)),Tr=(Q(37,39),Q(90,39));Q(40,49),Q(41,49),Q(42,49),Q(43,49),Q(44,49),Q(45,49),Q(46,49),Q(47,49),Q(100,49),Q(91,39),Q(92,39),Q(93,39),Q(94,39),Q(95,39),Q(96,39),Q(97,39),Q(101,49),Q(102,49),Q(103,49),Q(104,49),Q(105,49),Q(106,49),Q(107,49);function Er(e){if(typeof e!=`string`||e.startsWith(`file://`))return!1;try{return(0,U.lstatSync)(e).isDirectory()}catch{return!1}}function Dr(e,t=8){return(function(){if(Ar!==void 0)return Ar;try{return Ar=!!nr().getFips?.(),Ar}catch{return Ar=!1,Ar}}()?nr().createHash(`sha256`):nr().createHash(`md5`)).update(e).digest(`hex`).slice(0,t)}let Or={true:xr(`true`),false:Sr(`false`),"[rebuild]":Sr(`[rebuild]`),"[esm]":Cr(`[esm]`),"[cjs]":xr(`[cjs]`),"[import]":Cr(`[import]`),"[require]":xr(`[require]`),"[native]":wr(`[native]`),"[transpile]":Sr(`[transpile]`),"[fallback]":br(`[fallback]`),"[unknown]":br(`[unknown]`),"[hit]":xr(`[hit]`),"[miss]":Sr(`[miss]`),"[json]":xr(`[json]`),"[data]":xr(`[data]`)};function $(e,...t){if(!e.opts.debug)return;let n=process.cwd();console.log(Tr([`[jiti]`,...t.map(e=>e in Or?Or[e]:typeof e==`string`?e.replace(n,`.`):JSON.stringify(e))].join(` `)))}function kr(e,t){return e.opts.interopDefault?function(e){let t=typeof e;if(e===null||t!==`object`&&t!==`function`)return e;let n=e.default,r=typeof n,i=n==null,a=r===`object`||r===`function`;if(i&&e instanceof Promise)return e;let o=r===`function`&&t!==`function`,s=a&&!(n instanceof Promise),c=new Map;return new Proxy(e,{get(t,r){if(c.has(r))return c.get(r);let a;return r==="__esModule"?a=!0:r==="default"?a=i?e:typeof n?.default==`function`&&e.__esModule?n.default:n:r in t?a=t[r]:s&&(a=n[r],typeof a==`function`&&(a=a.bind(n))),c.set(r,a),a},apply:o?(e,t,r)=>Reflect.apply(n,t,r):void 0})}(t):t}let Ar;function jr(e,t){return!!Mr(e,t)}function Mr(e,t,n){let r=process.env[e];if(!(e in process.env))return t;try{return JSON.parse(r)}catch{return n?r:t}}let Nr=/\.(c|m)?j(sx?)$/,Pr=/\.(c|m)?t(sx?)$/;function Fr(e,t,n){let r,i;if(e.isNativeRe.test(t))return t;if(e.resolveTsConfigPaths&&!n.skipTsConfigPaths){let r=e.resolveTsConfigPaths(t);for(let t of r){let r=Fr(e,t,{...n,try:!0,skipTsConfigPaths:!0});if(r)return r}}e.alias&&(t=function(e,t){let n=_t(e);t=Qn(t);for(let[e,r]of Object.entries(t))if(n.startsWith(e)&&$n(n[($n(e)?e.slice(0,-1):e).length]))return Ct(r,n.slice(e.length));return n}(t,e.alias));let a=n?.parentURL||e.url;Er(a)&&(a=Ct(a,`_index.js`));let o=(n?.async?[n?.conditions,[`node`,`import`],[`node`,`require`]]:[n?.conditions,[`node`,`require`],[`node`,`import`]]).filter(Boolean);for(let n of o){try{r=Wn(t,{url:a,conditions:n,extensions:e.opts.extensions})}catch(e){i=e}if(r)return r}try{return e.nativeRequire.resolve(t,{paths:n.paths})}catch(e){i=e}for(let i of e.additionalExts)if(r=Ir(e,t+i,a,n)||Ir(e,t+`/index`+i,a,n),r||(Pr.test(e.filename)||Pr.test(e.parentModule?.filename||``)||Nr.test(t))&&(r=Ir(e,t.replace(Nr,`.$1t$2`),a,n),r))return r;if(!n?.try)throw i}function Ir(e,t,n,r){try{return e.nativeRequire.resolve(t,{...r,paths:[Ot(In(n)),...r?.paths||[]]})}catch{}}let Lr=A(`node:fs/promises`),Rr=A(`node:perf_hooks`),zr=A(`node:vm`);var Br=r.n(zr);function Vr(e,t,n){let r=e.parentCache||{};if(t.startsWith(`node:`))return Hr(e,t,n.async);if(t.startsWith(`file:`))t=(0,G.fileURLToPath)(t);else if(t.startsWith(`data:`)){if(!n.async)throw Error("`data:` URLs are only supported in ESM context. Use `import` or `jiti.import` instead.");return $(e,`[native]`,`[data]`,`[import]`,t),Hr(e,t,!0)}if(lt.builtinModules.includes(t)||t===`.pnp.js`)return Hr(e,t,n.async);if(e.opts.virtualModules&&t in e.opts.virtualModules){$(e,`[virtual]`,t);let r=e.opts.virtualModules[t];return n.async?Promise.resolve(kr(e,r)):kr(e,r)}if(e.opts.tryNative&&!e.opts.transformOptions)try{if(!(t=Fr(e,t,n))&&n.try)return;if($(e,`[try-native]`,n.async&&e.nativeImport?`[import]`:`[require]`,t),n.async&&e.nativeImport)return e.nativeImport(t).then(n=>(!1===e.opts.moduleCache&&delete e.nativeRequire.cache[t],kr(e,n))).catch(r=>($(e,`[try-native] Using fallback for ${t} because of an error:`,r),Vr({...e,opts:{...e.opts,tryNative:!1}},t,n)));{let n=e.nativeRequire(t);return!1===e.opts.moduleCache&&delete e.nativeRequire.cache[t],kr(e,n)}}catch(n){$(e,`[try-native] Using fallback for ${t} because of an error:`,n)}let i=Fr(e,t,n);if(!i&&n.try)return;let a=Dt(i);if(a===`.json`){$(e,`[json]`,i);let t=e.nativeRequire(i);return t&&!(`default`in t)&&Object.defineProperty(t,"default",{value:t,enumerable:!1}),t}if(a&&!e.opts.extensions.includes(a))return $(e,`[native]`,`[unknown]`,n.async?`[import]`:`[require]`,i),Hr(e,i,n.async);if(e.isNativeRe.test(i))return $(e,`[native]`,n.async?`[import]`:`[require]`,i),Hr(e,i,n.async);if(r[i])return kr(e,r[i]?.exports);if(e.opts.moduleCache){let t=e.nativeRequire.cache[i];if(t?.loaded)return kr(e,t.exports)}return Kr(e,(0,U.readFileSync)(i,`utf8`),{id:t,filename:i,ext:a,cache:r,async:n.async})}function Hr(e,t,n){return n&&e.nativeImport?e.nativeImport(function(e){return fr&&W(e)?Ln(e):e}(t)).then(t=>kr(e,t)):kr(e,e.nativeRequire(t))}function Ur(e,t,n){if(!e.opts.fsCache||!t.filename)return n();let r=` /* v9-${Dr(t.source,16)} */\n`,i=`${kt(Ot(t.filename))}-${function(e){let t=e.split(Zn).pop();if(!t)return;let n=t.lastIndexOf(`.`);return n<=0?t:t.slice(0,n)}(t.filename)}`+(e.opts.sourceMaps?`+map`:``)+(t.interopDefault?`.i`:``)+`.${Dr(t.filename)}`+(t.async?`.mjs`:`.cjs`);t.jsx&&t.filename.endsWith(`x`)&&(i+=`x`);let a=e.opts.fsCache,o=Ct(a,i);if(!e.opts.rebuildFsCache&&(0,U.existsSync)(o)){let n=(0,U.readFileSync)(o,`utf8`);if(n.endsWith(r))return $(e,`[cache]`,`[hit]`,t.filename,`~>`,o),n}$(e,`[cache]`,`[miss]`,t.filename);let s=n();return s.includes(`__JITI_ERROR__`)||((0,U.writeFileSync)(o,s+r,`utf8`),$(e,`[cache]`,`[store]`,t.filename,`~>`,o)),s}function Wr(t){if(!0===t.opts.fsCache&&(t.opts.fsCache=function(t){let n=t.filename&&Tt(t.filename,`../node_modules`);if(n&&(0,U.existsSync)(n))return Ct(n,`.cache/jiti`);let r=(0,e.tmpdir)();if(process.env.TMPDIR&&r===process.cwd()&&!process.env.JITI_RESPECT_TMPDIR_ENV){let t=process.env.TMPDIR;delete process.env.TMPDIR,r=(0,e.tmpdir)(),process.env.TMPDIR=t}return Ct(r,`jiti`)}(t)),t.opts.fsCache)try{if((0,U.mkdirSync)(t.opts.fsCache,{recursive:!0}),!function(e){try{return(0,U.accessSync)(e,U.constants.W_OK),!0}catch{return!1}}(t.opts.fsCache))throw Error(`directory is not writable!`)}catch(e){$(t,`Error creating cache directory at `,t.opts.fsCache,e),t.opts.fsCache=!1}}function Gr(e,t){let n=Ur(e,t,()=>{let n=e.opts.transform({...e.opts.transformOptions,babel:{...e.opts.sourceMaps?{sourceFileName:t.filename,sourceMaps:`inline`}:{},...e.opts.transformOptions?.babel},interopDefault:e.opts.interopDefault,...t});return n.error&&e.opts.debug&&$(e,n.error),n.code});return n.startsWith(`#!`)&&(n=`// `+n),n}function Kr(t,n,r={}){let i=r.id||(r.filename?kt(r.filename):`_jitiEval.${r.ext||(r.async?`mjs`:`js`)}`),a=r.filename||Fr(t,i,{async:r.async}),o=r.ext||Dt(a),s=r.cache||t.parentCache||{},c=/\.[cm]?tsx?$/.test(o),l=o===`.mjs`||o===`.js`&&function(e){for(;e&&e!==`.`&&e!==`/`;){e=Ct(e,`..`);try{let t=(0,U.readFileSync)(Ct(e,`package.json`),`utf8`);try{return JSON.parse(t)}catch{}break}catch{}}}(a)?.type===`module`,u=o===`.cjs`,d=r.forceTranspile??(!u&&!(l&&r.async)&&(c||l||t.isTransformRe.test(a)||qn(n))),f=Rr.performance.now();if(d){n=Gr(t,{filename:a,source:n,ts:c,async:r.async??!1,jsx:t.opts.jsx});let e=Math.round(1e3*(Rr.performance.now()-f))/1e3;$(t,`[transpile]`,r.async?`[esm]`:`[cjs]`,a,`(${e}ms)`)}else{if($(t,`[native]`,r.async?`[import]`:`[require]`,a),r.async)return Promise.resolve(Hr(t,a,r.async)).catch(e=>($(t,`Native import error:`,e),$(t,`[fallback]`,a),Kr(t,n,{...r,forceTranspile:!0})));try{return Hr(t,a,r.async)}catch(e){$(t,`Native require error:`,e),$(t,`[fallback]`,a),n=Gr(t,{filename:a,source:n,ts:c,async:r.async??!1,jsx:t.opts.jsx})}}let p=new lt.Module(a);p.filename=a,t.parentModule&&(p.parent=t.parentModule,Array.isArray(t.parentModule.children)&&!t.parentModule.children.includes(p)&&t.parentModule.children.push(p));let m=Jr(a,t.opts,{parentModule:p,parentCache:s,nativeImport:t.nativeImport,onError:t.onError,createRequire:t.createRequire},!0),h;p.require=m,p.path=Ot(a),p.paths=lt.Module._nodeModulePaths(p.path),s[a]=p,t.opts.moduleCache&&(t.nativeRequire.cache[a]=p);let g=function(e,t){return`(${t?.async?`async `:``}function (exports, require, module, __filename, __dirname, jitiImport, jitiESMResolve) { ${e}\n});`}(n,{async:r.async});try{h=Br().runInThisContext(g,{filename:a,lineOffset:0,displayErrors:!1})}catch(n){n.name===`SyntaxError`&&r.async&&t.nativeImport?($(t,`[esm]`,`[import]`,`[fallback]`,a),h=function(t,n,r,i,a){let o=`export default ${n}`,s=a?void 0:`data:text/javascript;base64,${Buffer.from(o).toString(`base64`)}`;return(...n)=>{let a,c=()=>(a=function(t,n){let r=Ct((0,e.tmpdir)(),`jiti-esm`);try{(0,U.mkdirSync)(r,{recursive:!0})}catch{}let i=Ct(r,`${kt(n,Dt(n))}-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);return(0,U.writeFileSync)(i,t),i}(o,r),$(t,`[esm]`,`[tempfile]`,a),i(Ln(a)));return(s?i(s).catch(e=>{if(e?.code!==`ENAMETOOLONG`)throw e;return c()}):c()).then(e=>e.default(...n)).finally(()=>{a&&(0,Lr.unlink)(a).catch(()=>{})})}}(t,g,a,t.nativeImport,t.opts.esmEvalTempFile)):(t.opts.moduleCache&&delete t.nativeRequire.cache[a],t.onError(n))}let _;try{_=h(p.exports,p.require,p,p.filename,Ot(p.filename),m.import,m.esmResolve)}catch(e){t.opts.moduleCache&&delete t.nativeRequire.cache[a],t.onError(e)}function v(){if(p.exports&&p.exports.__JITI_ERROR__){let{filename:e,line:n,column:r,code:i,message:a}=p.exports.__JITI_ERROR__,o=Error(`${i}: ${a} \n ${`${e}:${n}:${r}`}`);Error.captureStackTrace(o,Vr),t.onError(o)}return p.loaded=!0,kr(t,p.exports)}return r.async?Promise.resolve(_).then(v):v()}let qr=(0,e.platform)()===`win32`;function Jr(e,t={},n,i=!1){let a=i?t:function(e){let t={fsCache:jr(`JITI_FS_CACHE`,jr(`JITI_CACHE`,!0)),rebuildFsCache:jr(`JITI_REBUILD_FS_CACHE`,!1),moduleCache:jr(`JITI_MODULE_CACHE`,jr(`JITI_REQUIRE_CACHE`,!0)),debug:jr(`JITI_DEBUG`,!1),sourceMaps:jr(`JITI_SOURCE_MAPS`,!1),interopDefault:jr(`JITI_INTEROP_DEFAULT`,!0),extensions:Mr(`JITI_EXTENSIONS`,[`.js`,`.mjs`,`.cjs`,`.ts`,`.tsx`,`.mts`,`.cts`,`.mtsx`,`.ctsx`]),alias:Mr(`JITI_ALIAS`,{}),nativeModules:Mr(`JITI_NATIVE_MODULES`,[]),transformModules:Mr(`JITI_TRANSFORM_MODULES`,[]),tryNative:Mr(`JITI_TRY_NATIVE`,`Bun`in globalThis),esmEvalTempFile:jr(`JITI_ESM_EVAL_TEMP_FILE`,!1),jsx:jr(`JITI_JSX`,!1),tsconfigPaths:Mr(`JITI_TSCONFIG_PATHS`,!1,!0)};t.jsx&&t.extensions.push(`.jsx`,`.tsx`);let n={};return e.cache!==void 0&&(n.fsCache=e.cache),e.requireCache!==void 0&&(n.moduleCache=e.requireCache),{...t,...n,...e}}(t);typeof e==`string`&&e.startsWith(`file://`)&&(e=In(e));let o=a.alias&&Object.keys(a.alias).length>0?Qn(a.alias||{}):void 0,s;if(a.tsconfigPaths){let{getTsconfig:t,createPathsMatcher:n}=r(`./node_modules/.pnpm/get-tsconfig@4.14.0/node_modules/get-tsconfig/dist/index.cjs`),i=t(typeof a.tsconfigPaths==`string`?a.tsconfigPaths:Ot(e));i&&(s=n(i))}let c=[`typescript`,`jiti`,...a.nativeModules||[]],l=RegExp(`node_modules/(${c.map(e=>Jn(e)).join(`|`)})/`),u=[...a.transformModules||[]],d=RegExp(`node_modules/(${u.map(e=>Jn(e)).join(`|`)})/`);e||=process.cwd(),!i&&Er(e)&&(e=Ct(e,`_index.js`));let f=Ln(e),p=[...a.extensions].filter(e=>e!==`.js`),m=n.createRequire(qr?e.replace(/\//g,`\\`):e),h={filename:e,url:f,opts:a,alias:o,resolveTsConfigPaths:s,nativeModules:c,transformModules:u,isNativeRe:l,isTransformRe:d,additionalExts:p,nativeRequire:m,onError:n.onError,parentModule:n.parentModule,parentCache:n.parentCache,nativeImport:n.nativeImport,createRequire:n.createRequire};return i||$(h,`[init]`,...[[`version:`,er.rE],[`module-cache:`,a.moduleCache],[`fs-cache:`,a.fsCache],[`rebuild-fs-cache:`,a.rebuildFsCache],[`interop-defaults:`,a.interopDefault]].flat()),i||Wr(h),Object.assign(function(e){return Vr(h,e,{async:!1})},{cache:a.moduleCache?m.cache:Object.create(null),extensions:m.extensions,main:m.main,options:a,resolve:Object.assign(function(e,t){return Fr(h,e,{...t,async:!1})},{paths:m.resolve.paths}),transform:e=>Gr(h,e),evalModule:(e,t)=>Kr(h,e,t),async import(e,t){let n=await Vr(h,e,{...t,async:!0});return t?.default?n?.default??n:n},esmResolve(e,t){typeof t==`string`&&(t={parentURL:t});let n=Fr(h,e,{parentURL:f,...t,async:!0});return!n||typeof n!=`string`||n.startsWith(`file://`)?n:Ln(n)}})}})(),t.exports=i.default})()}))();var fe=class{emitter;constructor(){this.emitter=r()}on(e,t){le(e).forEach(e=>{this.emitter.on(e,t)})}off(e,t){le(e).forEach(e=>{this.emitter.off(e,t)})}emit(e,t){le(e).forEach(e=>{this.emitter.emit(e,t)})}removeAllListeners(){this.emitter.all.clear()}},pe=class{listeners;constructor(){this.listeners=new Map}on(e,t){le(e).forEach(e=>{let n=this.listeners.get(e)||new Set;n.add(t),this.listeners.set(e,n)})}off(e,t){le(e).forEach(e=>{let n=this.listeners.get(e);n&&n.delete(t)})}async emit(e,...t){let n=le(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 j(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 me=j(class extends fe{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 M=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)throw this.reportInvalidConfigFile(t.issues),Error(`Invalid config data for ${this._path}: ${t.issues.map(e=>e.message).join(`; `)}`);this.data=this.onBeforeSave(e),this.save(e)}get(e={}){return this.data?this.data:this.load(e)}getKey(e,t={}){return this.get(t)[e]}save(e){let t=this.onBeforeSave(e);try{d(this.getFilePath()),i.writeFileSync(this.getFilePath(),JSON.stringify(t,void 0,2))}catch{return}return this.data=t}load(e={}){let{createIfMissing:t=!0}=e;if(!this.fileExists(this.getFilePath())||!this.canReadWriteFile(this.getFilePath())){t&&this.save(this._defaultValue);let e=this.onAfterLoad(this._defaultValue);return t&&(this.data=e),e}try{let e=i.readFileSync(this.getFilePath(),`utf8`),t=this.onAfterLoad(this.parseStoredData(e));return this.data=t,t}catch{return this.data=this._defaultValue}}onBeforeSave(e){return e}onAfterLoad(e){return e}getFilePath(){return this._path}parseStoredData(e){try{let t=n(`string.json.parse`).to(`object`)(e);if(t instanceof n.errors)return this._defaultValue;let r=this._schema[`~standard`].validate(t);if(r instanceof Promise)throw Error(`StructuredConfigFile does not support async validation`);return r.issues?this.migrate(t,this._defaultValue):this.migrate(r.value,this._defaultValue)}catch{return this._defaultValue}}canReadWriteFile(e){try{return i.accessSync(e,i.constants.R_OK|i.constants.W_OK),!0}catch{return!1}}fileExists(e){try{return i.accessSync(e,i.constants.F_OK),!0}catch{return!1}}migrate(e,t){let n={...e};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(r in e?e[r]!==null&&t[r]!==null&&typeof e[r]==`object`&&typeof t[r]==`object`&&!Array.isArray(e[r])&&!Array.isArray(t[r])?n[r]=this.migrate(e[r],t[r]):Array.isArray(t[r])&&(n[r]=e[r]):n[r]=t[r]);return n}reportInvalidConfigFile(e){me.getInstance().error(`Invalid config file`,`INVALID_CONFIG_FILE`,{issues:e.map(e=>e.message),filePath:this._path,data:this.data})}};function N(e,t,n){return typeof e!=`object`||!e?String(e):e instanceof Error?JSON.stringify(e,(e,t)=>{if(t instanceof Error){let e={};for(let n of Object.getOwnPropertyNames(t))e[n]=t[n];return e}return t},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)}const P=/\x1b\[[0-9;]*m/g;function he(e){return e.replace(P,``)}var ge=class e extends fe{stream;logPath;baseFileName;currentDate;rotationCheckInterval;isRotating=!1;constructor(e,t){super(),this.logPath=e,this.baseFileName=t.replace(`.log`,``),this.currentDate=this.getDateString(new Date),this.ensureLogDirectory(),this.ensureLogFile(),this.stream=this.createStream(),this.rotationCheckInterval=this.startRotationCheck(),this.cleanupOldLogs()}static scope(t,n){return new e(t,n)}log(...e){this.write(`info`,...e)}error(...e){this.write(`error`,...e)}warn(...e){this.write(`warn`,...e)}info(...e){this.write(`info`,...e)}debug(...e){this.write(`debug`,...e)}async close(){clearInterval(this.rotationCheckInterval),await new Promise(e=>{this.stream.end(()=>e())})}getCurrentFileName(){return this.getFileName(this.currentDate)}static getMessageElements(e,...t){let n=new Date;return{timestamp:n.toISOString().replace(`T`,` `).replace(/\.\d+Z$/,``)+`.${n.getUTCMilliseconds().toString().padStart(3,`0`)}`,level:e,message:t.map(e=>N(e)).join(` `)}}getFileName(e){return`${this.baseFileName}-${e}.log`}ensureLogDirectory(){try{s(this.logPath,{recursive:!0})}catch(e){throw console.error(`Failed to create log directory ${this.logPath}:`,e),e}}ensureLogFile(){let e=p(this.logPath,this.getFileName(this.currentDate));if(!o(e))try{u(e,``,`utf8`)}catch(t){throw console.error(`Failed to create log file ${e}:`,t),t}}getDateString(e){return`${e.getUTCFullYear()}-${(e.getUTCMonth()+1).toString().padStart(2,`0`)}-${e.getUTCDate().toString().padStart(2,`0`)}`}createStream(){return a(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=c(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{l(p(this.logPath,e))}catch(t){console.error(`Failed to delete old log file ${e}:`,t)}})}ensureStreamValid(){if(!this.stream.writable||this.stream.destroyed)try{this.stream=this.createStream()}catch(e){this.emit(`error`,e instanceof Error?e:Error(String(e)))}}write(t,...n){let{timestamp:r,message:i}=e.getMessageElements(t,...n),a=`[${r}] [${t}] ${he(i)}\n`;this.ensureStreamValid(),this.stream.write(a,e=>{if(e)if(e.code===`ERR_STREAM_WRITE_AFTER_END`||!this.stream.writable)try{this.stream=this.createStream(),this.stream.write(a,e=>{e?this.emit(`error`,e):this.emit(`write`,a)})}catch(e){this.emit(`error`,e instanceof Error?e:Error(String(e)))}else this.emit(`error`,e);else this.emit(`write`,a)})}};const F=()=>h.join(process.env.APPDATA??``,`overlayed`),_e=()=>h.join(F(),`logs`),ve=e=>h.join(F(),`apps`,e),ye=e=>h.join(ve(e),`logs`),be=()=>h.join(F(),`meta.json`),xe=()=>h.join(F(),`crash-dumps`);var Se=class{fileLogger;path;appId;messageQueue=new de;fileName;_debug=!1;silent=!1;forceSilent=!1;constructor(e){this.fileName=e}init(e,t=!1,n=!1,r=!1){this.appId=e,this._debug=t,this.silent=n,this.forceSilent=r,this.path=ye(e),this.fileLogger=new ge(this.path,this.fileName),this.messageQueue.flush().forEach(e=>{this.fileLogger?.[e.type](...e.args)})}scope(e){if(!this.appId||!this.path)throw Error(`Logger not initialized`);let t=v.cyan(`[${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:v.red,warn:v.yellow,debug:v.blue,log:v.white};if(this.forceSilent||this.silent&&!this._debug)return;let{timestamp:r,message:i}=ge.getMessageElements(e,...t),a=console[e],o=n[e];a(`${v.gray(r)} ${o(i)}`)}};const I=j(Se,`overlayed.log`);var L=class extends ee{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 Ce(e,t){let{recursive:n}=R(t);return S(e)?n?we(e).map(t=>[e,t]):te(e).map(t=>[e,t]):[]}function R(e){return{recursive:e?.recursive??!0}}function we(e){return te(e,{withFileTypes:!0}).flatMap(t=>{let n=h.join(e,t.name);return t.isDirectory()?we(n):[n]})}function z(e){return Te(e),e}function Te(e){if(!ue(e.applicationId))throw Error(`Invalid applicationId, must be a valid ULID.`)}function Ee(e,t){let n=t?.cwd??process.cwd(),r=m.join(n,`.overlayed`);y.existsSync(r)||y.mkdirSync(r,{recursive:!0});let i={application:{id:e.id,name:e.name,slug:e.slug,siteUrl:e.siteUrl},release:{id:null,channel:`local`,version:`0.0.0`}},a=m.join(r,`meta.json`);return y.writeFileSync(a,JSON.stringify(i,null,2)),i}const{PipeEventServer:De,PipeEventClient:Oe,PipeEventBase:ke,ProcessMonitor:Ae,Process:je,HardwareInterface:Me}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`),Ne=j(class extends fe{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 De(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.emit(`connected`,void 0)}),this.server.on(`disconnected`,()=>{this._hasConnection=!1,this.emit(`disconnected`,void 0)})}},`overlayed-event-server`),{RenderInterface:Pe,renderHookPath:Fe}=e(import.meta.url)(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);let Ie=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 Le=n({game:`string`,type:`string`,creation_time:`number`}).and({game:`'siege' | 'tft'`}),Re=t({"#event1":`logged_in | module_loaded | module_unloaded | unsupported_game_version`,event:`event1`,logged_in:Le.and({type:`'logged_in'`,content:{account_id:`string`}}),module_loaded:Le.and({type:`'module_loaded'`,content:{game_version:`string`,process_hash:`string`}}),module_unloaded:Le.and({type:`'module_unloaded'`}),unsupported_game_version:Le.and({type:`'unsupported_game_version'`,content:{game_version:`string`,process_hash:`string`}})}).export(),ze=Object.keys(Re).filter(e=>e!==`event`);function Be(){return{key:`universal`,events:Re}}var Ve=class{options=null;logger;initialized=!1;constructor(e){this.logger=I.getInstance().scope(e)}init(e){this.logger.log(`Initializing`),this.options=e||null,this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1}},He=class extends fe{options=null;logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(e){this.logger.log(`Initializing`),this.options=e||null,this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}},Ue=class extends pe{options=null;logger;initialized=!1;constructor(e){super(),this.logger=I.getInstance().scope(e)}init(e){this.logger.log(`Initializing`),this.options=e||null,this.initialized=!0}destroy(){this.logger.log(`Destroying`),this.initialized=!1,this.removeAllListeners()}};const We=`https://api.overlayed.gg`,B=ie.create({baseURL:We,headers:{Accept:`application/json`,"Accept-Encoding":`gzip, deflate, br`}});let Ge;function Ke(e){Ge=e}let qe;function Je(e){qe=e}function V(e){return`overlayed/app (${Object.entries(e).map(([e,t])=>`${e}=${t}`).join(`, `)})`}B.interceptors.request.use(e=>{let t=Ge?.();e.headers??={},t&&(e.headers[`X-Api-Key`]=t);let n=qe?.();return n&&(e.headers[`User-Agent`]=V(n)),e});function Ye(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 Xe(e){return e}function Ze(e){return e?t=>(e(t),t):Xe}const Qe=Ze();function $e(e){return B.get(`/v1/public/applications/${e}`)}function et(e,t){return B.get(`/v1/public/applications/${e}/releases/check`,{params:t})}function tt(e,t){return B.post(`/v1/public/applications/${e}/game-crash-reports`,t)}function nt(e,t,n){return B.post(`/v1/public/applications/${e}/game-crash-reports/${t}/confirm`,n)}function rt(e,t){let n=new FormData;return n.append(`file`,new Blob([t.file],{type:`application/zip`}),`logs.zip`),n.append(`data`,JSON.stringify(t.data)),B.post(`/v1/public/applications/${e}/feedbacks`,n)}function it(e,t){return B.get(`/v1/public/applications/${e}/feature-flags`,{params:t})}function at(e,t){return B.get(`/v1/public/applications/${e}/notices`,{params:t})}const ot=Ze();function H(e,t){return B.get(`/v1/public/modules/${e}/release`,{params:{cortex_user_id:t}})}function st(e,t,n){return B.post(`/v1/public/modules/${e}/releases/${t}/download`,n)}async function ct(e,t){if(e.method!==`GET`)throw Error(`Unsupported presigned request method: ${e.method}`);let n=await fetch(e.url,{method:e.method,headers:e.headers,signal:t?.signal});if(!n.ok){let e=await U(n);throw Error(`Presigned download failed (${n.status} ${n.statusText})${e?`: ${e}`:``}`)}let r=await n.arrayBuffer();return new Uint8Array(r)}async function lt(e,t){if(e.method!==`PUT`)throw Error(`Unsupported presigned request method: ${e.method}`);let n=await fetch(e.url,{method:e.method,headers:{...e.headers,"Content-Length":t.byteLength.toString()},body:t});if(!n.ok){let e=await U(n);throw Error(`Presigned upload failed (${n.status} ${n.statusText})${e?`: ${e}`:``}`)}}async function U(e){try{let t=(await e.text()).trim();if(t.length===0)return;let n=2048;return t.length>n?`${t.slice(0,n)}…`:t}catch{return}}function ut(){return B.get(`/v1/public/raven/config`)}const dt=Ze();function ft(e,t){return B.get(`/v1/public/raven/games/${e}/builds/${t}`)}function pt(e,t){return B.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function mt(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 ht(e){let t=Date.now(),n=e.messages.filter(e=>t-e.created_at.getTime()<6e5),r=e.messages.length-n.length;r>0&&console.warn(`Dropped ${r} cortex event(s) older than 600s`);let i=Ye(n.map(e=>gt(t,e)),50),a=Promise.all(i.map(async t=>B.post(`/v1/public/cortex/events`,{...e,messages:t})));return a.catch(e=>{let t=e?.response?.data||e?.message||e;console.error(`Failed to submit cortex events`,t)}),a}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 _t(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function vt(e){return!!(e&&`kind`in e.data&&`message`in e.data)}const{PipeEventServer:yt,PipeEventClient:bt,PipeEventBase:xt,ProcessMonitor:St,Process:Ct,HardwareInterface:wt}=e(import.meta.url)(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);function Tt(e=[]){return h.normalize(h.join(ve(global.OVERLAYED.APPLICATION_ID),...e))}const Et=n({game:`string`,type:`string`,creation_time:`number`}),W=new M({path:be(),schema:n({userId:`string | undefined`,sessionId:`string | undefined`,sessionLastUsed:`number | undefined`,accessToken:`string | undefined`,"debug?":{"ri_disabled?":`boolean`,"gm_disabled?":`boolean`}}),default:{userId:void 0,sessionId:void 0,sessionLastUsed:void 0,accessToken:void 0}});function Dt(){let{debug:e}=W.get();return e?{ri_disabled:e.ri_disabled??!1,gm_disabled:e.gm_disabled??!1}:{ri_disabled:!1,gm_disabled:!1}}function Ot(){let e=W.get().userId;if(e)return e;let t=Mt();return W.set({...W.get(),userId:t}),t}function kt(){let e=W.get();if(e.sessionId&&typeof e.sessionLastUsed==`number`&&Date.now()-e.sessionLastUsed<=300*1e3)return e.sessionId;let t=crypto.randomUUID();return W.set({...e,sessionId:t,sessionLastUsed:Date.now()}),t}function G(){try{let e=W.get();W.set({...e,sessionLastUsed:Date.now()})}catch(e){I.getInstance().log(`Failed to update sessionLastUsed`,e)}}function At(){return W.get().accessToken}function jt(e){try{let t=W.get();W.set({...t,accessToken:e??void 0})}catch(e){I.getInstance().log(`Failed to set accessToken`,e)}}function Mt(){try{return wt.generateUniqueIdentifier()}catch{return crypto.randomUUID()}}const Nt=j(class extends He{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=h.join(F(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await D.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 getDllFile(e){let t=await this.getCurrentBuildInfo(e);if(!t){this.logger.error(`No build found for module`,{moduleId:e});return}let n=this.getBuildPath(e,t.buildId);if(!S(n)){this.logger.error(`No build file found for module`,{moduleId:e});return}let r=h.join(n,t.buildFileName);if(!S(r)){this.logger.error(`No DLL file found for module`,{moduleId:e});return}return r}async getCurrentBuildInfo(e){try{let t=h.join(this.targetDir,e,`build.json`),n=await D.readFile(t,`utf-8`);return JSON.parse(n)}catch{return null}}getModulePath(e){return h.join(this.targetDir,e)}getBuildPath(e,t){return h.join(this.getModulePath(e),t)}async checkForUpdates(e){this.logger.log(`Checking for updates`);let t=Ot();if(!t){this.logger.error(`Failed to resolve cortex user id`);return}this.logger.log(`Cortex User ID`,t);for(let n of e)try{let{data:e}=await H(n,t);this.logger.log(`Release`,e);let r=(await this.getCurrentBuildInfo(n))?.buildId||null;this.logger.log(`${n} > Performing update check. current: ${r}, requested: ${e.build_id}`),e.build_id!==r||await this.isDownloadCorrupted(this.getBuildPath(n,e.build_id),e)?(this.logger.log(`${n} > Update found. current: ${r}, requested: ${e.build_id}`),this.logger.log(`${n} > Downloading and extracting DLLs`),await this.downloadAndExtractDll(n,e),this.logger.log(`${n} > Cleaning up other builds`),await this.cleanupExistingBuilds(n,e.build_id),this.emit(`dllUpdated`,{moduleId:n,buildId:e.build_id,releaseId:e.release_id})):this.logger.log(`${n} > No update found`)}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t){this.logger.log(`${e} > Requesting download for build ${t.build_id}`);let n=Ot();if(!n){this.logger.error(`Failed to resolve cortex user id`);return}let{data:r}=await st(e,t.release_id,{download_token:t.download_token,cortex_user_id:n});this.logger.log(`${e} > Downloading DLLs for build ${t.build_id}`);let i=await ct(r,{signal:AbortSignal.timeout(1e3*60*5)});this.logger.log(`${e} > Downloaded zip file for build ${t.build_id}`);let a=this.getBuildPath(e,t.build_id);await D.mkdir(a,{recursive:!0});let o=new ae;await o.loadAsync(i);let s=Object.keys(o.files).map(e=>({name:e,file:o.files[e]})).filter(({file:e})=>!e.dir);if(s.length!==1){this.logger.error(`${e} > Zip must contain exactly 1 file, got ${s.length}`);return}let c=s[0],l=h.basename(c.name),u=h.normalize(l),d=h.isAbsolute(u),f=u.startsWith(`..`)||u.includes(`..${h.sep}`);if(l===``||l===`.`||l===`..`){this.logger.error(`${e} > Zip contained an invalid file name: ${c.name}`);return}if(!l.toLowerCase().endsWith(`.dll`)){this.logger.error(`${e} > Zip contained a non-dll file: ${c.name}`);return}if(d||f){this.logger.error(`${e} > Zip entry path is unsafe: ${c.name}`);return}let p=h.join(a,u),m=await c.file.async(`nodebuffer`);await D.writeFile(p,m),this.logger.log(`${e} > Extracted 1 file to ${p}`);let g={buildId:t.build_id,buildFileName:t.build_file_name},_=h.join(this.getModulePath(e),`build.json`);await D.writeFile(_,JSON.stringify(g),`utf-8`),this.logger.log(`${e} > Saved buildId to file: ${t.build_id}`)}async cleanupExistingBuilds(e,t){let n=this.getModulePath(e),r=this.getBuildPath(e,t),i=await D.readdir(n,{withFileTypes:!0});for(let t of i)t.isDirectory()&&h.join(n,t.name)!==r&&(await D.rm(h.join(n,t.name),{recursive:!0,force:!0}),this.logger.log(`${e} > Cleaned up build: ${t.name}`))}async hasPathAccess(e){try{return await D.access(e,D.constants.F_OK),!0}catch{return!1}}async isDownloadCorrupted(e,t){if(!await this.hasPathAccess(e))return this.logger.error(`Download is corrupted. Path does not exist: ${e}`),!0;let n=t.build_file_name,r=h.join(e,n);if(!S(r))return this.logger.error(`Download is corrupted. Build file not found: ${r}`),!0;if(t.build_hash){let e=await D.readFile(r),i=re(`sha256`).update(e).digest(`hex`);if(i.toLowerCase()!==t.build_hash.toLowerCase())return this.logger.error(`Download is corrupted. Build file hash mismatch: ${n} ${i.toLowerCase()} !== ${t.build_hash.toLowerCase()}`),!0}return!1}}),Pt=j(class extends He{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),Nt.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{let e={games:(await ut()).data.games};this._ravenConfig=e,this.resetState();let t=new Set;for(let e of this._ravenConfig.games){for(let t of e.executables){let n=t.toLowerCase();this._executableToGameMap.set(n,e),this._executablesArray.push(n)}e.modules.forEach(e=>t.add(e))}await Nt.getInstance().initWithDlls(Array.from(t)),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=[]}}),Ft=j(class extends He{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new St}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),Pt.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(){Pt.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){return this._processes.get(e)?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){this.logger.log(`Monitoring ${e.executables.length} processes`),e.executables.forEach(e=>{this._processMonitor.isProcessRegistered(e)||this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name)?.filter(t=>t.id!==e.id)??[];t.length===0?this._processes.delete(e.name):this._processes.set(e.name,t)}});var It=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 Lt=j(class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new It(new Pe(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}}),K=j(class{options;eventQueue;meta=null;enabled=!0;constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new de,this.setupFlushInterval()}track(e,t){this.enabled&&this.eventQueue.add({type:e,properties:t,created_at:new Date})}flush(){if(!this.enabled)return[];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{ht({...this.meta,messages:e})}catch{}return e}setupFlushInterval(){this.enabled&&setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}}),Rt=e(import.meta.url),q=Rt.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`),zt=Rt.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x86.dll`),Bt=Rt.resolve(`@overlayed/app/dist/native-interface/build/overlayed_injector_x64.exe`),Vt=Rt.resolve(`@overlayed/app/dist/native-interface/build/overlayed_injector_x86.exe`),J=j(class extends Ue{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;_activeReadyRavenGames={};get isInGame(){return Object.keys(this._activeReadyRavenGames).length>0}constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}getActiveGames(){return Object.keys(this._activeReadyRavenGames)}init(){super.init(),Lt.getInstance().createInterface(`OGG_SIEGE`),Ft.getInstance().on(`create`,this.boundOnProcessCreate),Ft.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){Ft.getInstance().off(`create`,this.boundOnProcessCreate),Ft.getInstance().off(`destroy`,this.boundOnProcessDestroy),super.destroy()}on(e,t){super.on(e,t);let n=le(e);if(!(n.includes(`gameReady`)||n.includes(`*`))||Object.keys(this._activeReadyRavenGames).length===0)return;let r=t;for(let e of Object.values(this._activeReadyRavenGames))this.logger.log(`Late calling gameReady callback for game`,e.game),r(e)}async onProcessCreate({process:e}){this.logger.log(`On process create`,e);let t=this.getRavenGame(e);if(!t)return;if(this.logger.log(`Raven game found`,t),t.command_line_regex){this.logger.log(`Performing command line regex check`,{regex:t.command_line_regex});try{let n=e.commandLine;this.logger.log(`Process command line`,n);let r=new RegExp(t.command_line_regex);if(!e.commandLine||!r.test(e.commandLine)){this.logger.log(`Process command line does not match regex, skipping`,{commandLine:e.commandLine,regex:t.command_line_regex});return}}catch(e){this.logger.error(`Failed to check command line`,e);return}}if(K.getInstance().track(`game_launch`,{game:t.identifier}),this.subscribedGames.size===0){this.logger.warn(`No subscribed games, skipping`);return}if(!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=Ct.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){me.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=e.createdAt||new Date,a=Math.floor((new Date().getTime()-i.getTime())/1e3);this.logger.log(`Process created ${a}s ago`),a<30&&(this.logger.log(`Delaying injection for 45 seconds to allow game to be ready`),await new Promise(e=>setTimeout(e,1e3*45)));let{ri_disabled:o,gm_disabled:s}=Dt(),c=!1;!o&&t.has_render_support&&t.allow_dll_injections?c=await this.injectRenderInterface(e):this.logger.log(`Skipping render interface injection`,{has_render_support:t.has_render_support,allow_dll_injections:t.allow_dll_injections,ri_disabled:o}),!s&&t.allow_dll_injections?await this.injectGameModules(t,e):this.logger.log(`Skipping game module(s) injection`,{allow_dll_injections:t.allow_dll_injections,gm_disabled:s});let l={game:t.identifier,inGameRenderingSupported:c};this._activeReadyRavenGames[t.identifier]=l,this.logger.debug(`Active ready raven games`,Object.keys(this._activeReadyRavenGames).join(`, `)),this.logger.log(`Game Ready`),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,l),K.getInstance().track(`game_ready`,{game:t.identifier})}copyInjectors(){let e=this.copyDll(Bt),t=this.copyDll(Vt);return!e||!t?(this.logger.error(`Failed to copy injector executables`),!1):h.dirname(e)}copyDll(e){let t=h.basename(e),n=_(e),r=h.join(F(),`resources`),i=h.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{S(r)||C(r,{recursive:!0}),T(i,w(n)),b(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 injectRenderInterface(e){this.logger.log(`Injecting render interface`,{is32Bit:e.is32Bit,process:e});let t=e.is32Bit?zt:q;this.logger.log(`Render hook path`,t);let n=this.copyDll(t);if(!n)return this.logger.error(`Failed to copy render hook DLL`,{renderHookPath:t}),!1;let r=this.copyInjectors();if(!r)return!1;this.logger.log(`Resolved injector path`,r);try{return this.logger.log(`Injecting render interface`,n),await e.injectDll(n,r),this.logger.log(`Render Interface Injection Successful`,n),!0}catch(e){return this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderHookPathCopied:n}),!1}}async injectGameModules(e,t){let n=this.copyInjectors();if(n){this.logger.log(`Resolved injector path`,n);for(let r of e.modules){let e=await Nt.getInstance().getDllFile(r);if(!e){this.logger.error(`No DLL file found for module`,{moduleId:r});continue}try{this.logger.log(`Injecting game module`,e),await t.injectDll(e,n),this.logger.log(`Injection Successful`,e)}catch(t){this.logger.error(`Injection Failed`,{dllFile:e},t)}}}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(delete this._activeReadyRavenGames[t.identifier],this.logger.debug(`Active ready raven games`,Object.keys(this._activeReadyRavenGames).join(`, `)),this.emit(`gameCloseInternal`,{ravenGame:t,process:e}),this.emit(`gameClose`,{game:t.identifier}),K.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=Pt.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}}),Ht=j(class extends Ve{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),J.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){J.getInstance().off(`gameReadyInternal`,this.boundOnGameLaunch),super.destroy()}async onGameLaunch(...e){let[{ravenGame:t,process:n}]=e;if(!n.path||!n.name){this.logger.error(`Process path or name not found, could not check for build hash`,void 0,n);return}let r=w(n.path),i=re(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{a=(await ft(t.identifier,i)).data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new ae;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 L(s,{chunkSizeMb:25,maxConcurrent:1}),n=await pt(t.identifier,{build_hash:i,chunk_count:e.totalChunks,file_size_bytes:s.size});await e.chunk(async(e,r)=>{this.logger.log(`Uploading chunk`,r),await mt(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){_t(e)?vt(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}}),Ut=j(class extends Ve{constructor(){super(`CampaignManager`)}async check(e){let t=h.join(ve(e),`campaign_code.txt`);try{let e=(await E.readFile(t,`utf-8`)).trim().replace(/ \(\d+\)/g,``);e&&(this.logger.log(`UTM campaign code found`,e),K.getInstance().track(`utm_attribution`,{campaign_code:e}),K.getInstance().flush())}catch{}}}),Wt=new M({path:f.normalize(`${process.env.APPDATA||process.env.HOME||`.`}/.overlayed/config.json`),default:void 0,schema:t({Account:n({email:`string`,apiKey:`string`,"applicationId?":`string`,"baseUrl?":`string`})}).type({currentAccount:`Account | undefined`,accounts:`Account[]`}).or(`undefined`)});function Gt(e,t){let n=t.applicationId===void 0||e.applicationId===void 0||e.applicationId===t.applicationId,r=(e.baseUrl??`https://api.overlayed.gg`)===t.baseUrl;return n&&r}function Kt(e){let{currentAccount:t,accounts:n,expected:r}=e;if(t&&Gt(t,r))return{account:t,source:`current`};let i=n.find(e=>Gt(e,r));if(i)return{account:i,source:`other`}}function qt(e,t){return`${e}:${t}`}function Jt(e,t,n){return e.reduce((e,r)=>{let i=r.key;return e[i]={on(e,n){let r=qt(i,e),a=t.get(r)??new Set;a.add(n),t.set(r,a)},onAny(e){let n=qt(i,`*`),r=t.get(n)??new Set;r.add(e),t.set(n,r)},off(e,n){let r=qt(i,e),a=t.get(r);a&&(a.delete(n),a.size===0&&t.delete(r))},offAny(e){let n=qt(i,`*`),r=t.get(n);r&&(r.delete(e),r.size===0&&t.delete(n))},readyForGameEvents:()=>{n.emit(`flushEvents`,i)}},e},{})}function Yt(){let e=me.getInstance(),t=J.getInstance();return{on:(n,r)=>{switch(n){case`fatal`:e.on(`fatal`,r);break;case`error`:e.on(`error`,r);break;case`warning`:e.on(`warning`,r);break;case`gameLaunch`:t.on(`gameLaunch`,r);break;case`gameClose`:t.on(`gameClose`,r);break;case`gameReady`:t.on(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}},off:(n,r)=>{switch(n){case`fatal`:e.off(`fatal`,r);break;case`error`:e.off(`error`,r);break;case`warning`:e.off(`warning`,r);break;case`gameLaunch`:t.off(`gameLaunch`,r);break;case`gameClose`:t.off(`gameClose`,r);break;case`gameReady`:t.off(`gameReady`,r);break;default:throw Error(`Event type not implemented ${n}`,{cause:[n,r]})}}}}const Xt=new Map([[1,`LeftButton`],[2,`RightButton`],[3,`Cancel`],[4,`MiddleButton`],[5,`ExtraButton1`],[6,`ExtraButton2`],[8,`Backspace`],[9,`Tab`],[12,`Clear`],[13,`Enter`],[16,`ShiftLeft`],[17,`ControlLeft`],[18,`AltLeft`],[19,`Pause`],[20,`CapsLock`],[21,`KanaMode`],[23,`JunjaMode`],[24,`Finalize`],[25,`HanjaMode`],[27,`Escape`],[28,`Convert`],[29,`NonConvert`],[30,`Accept`],[31,`ModeChange`],[32,`Space`],[33,`PageUp`],[34,`PageDown`],[35,`End`],[36,`Home`],[37,`ArrowLeft`],[38,`ArrowUp`],[39,`ArrowRight`],[40,`ArrowDown`],[41,`Select`],[42,`PrintScreen`],[43,`Execute`],[44,`Snapshot`],[45,`Insert`],[46,`Delete`],[47,`Help`],[48,`Digit0`],[49,`Digit1`],[50,`Digit2`],[51,`Digit3`],[52,`Digit4`],[53,`Digit5`],[54,`Digit6`],[55,`Digit7`],[56,`Digit8`],[57,`Digit9`],[65,`KeyA`],[66,`KeyB`],[67,`KeyC`],[68,`KeyD`],[69,`KeyE`],[70,`KeyF`],[71,`KeyG`],[72,`KeyH`],[73,`KeyI`],[74,`KeyJ`],[75,`KeyK`],[76,`KeyL`],[77,`KeyM`],[78,`KeyN`],[79,`KeyO`],[80,`KeyP`],[81,`KeyQ`],[82,`KeyR`],[83,`KeyS`],[84,`KeyT`],[85,`KeyU`],[86,`KeyV`],[87,`KeyW`],[88,`KeyX`],[89,`KeyY`],[90,`KeyZ`],[91,`MetaLeft`],[92,`MetaRight`],[93,`ContextMenu`],[95,`Sleep`],[96,`Numpad0`],[97,`Numpad1`],[98,`Numpad2`],[99,`Numpad3`],[100,`Numpad4`],[101,`Numpad5`],[102,`Numpad6`],[103,`Numpad7`],[104,`Numpad8`],[105,`Numpad9`],[106,`NumpadMultiply`],[107,`NumpadAdd`],[108,`NumpadSeparator`],[109,`NumpadSubtract`],[110,`NumpadDecimal`],[111,`NumpadDivide`],[112,`F1`],[113,`F2`],[114,`F3`],[115,`F4`],[116,`F5`],[117,`F6`],[118,`F7`],[119,`F8`],[120,`F9`],[121,`F10`],[122,`F11`],[123,`F12`],[124,`F13`],[125,`F14`],[126,`F15`],[127,`F16`],[128,`F17`],[129,`F18`],[130,`F19`],[131,`F20`],[132,`F21`],[133,`F22`],[134,`F23`],[135,`F24`],[144,`NumLock`],[145,`ScrollLock`],[146,`NEC_Equal`],[147,`Fujitsu_Masshou`],[148,`Fujitsu_Touroku`],[149,`Fujitsu_Loya`],[150,`Fujitsu_Roya`],[160,`ShiftLeft`],[161,`ShiftRight`],[162,`ControlLeft`],[163,`ControlRight`],[164,`AltLeft`],[165,`AltRight`],[166,`BrowserBack`],[167,`BrowserForward`],[168,`BrowserRefresh`],[169,`BrowserStop`],[170,`BrowserSearch`],[171,`BrowserFavorites`],[172,`BrowserHome`],[173,`VolumeMute`],[174,`VolumeDown`],[175,`VolumeUp`],[176,`MediaTrackNext`],[177,`MediaTrackPrevious`],[178,`MediaStop`],[179,`MediaPlayPause`],[180,`LaunchMail`],[181,`LaunchMediaSelect`],[182,`LaunchApplication1`],[183,`LaunchApplication2`],[186,`OEM_1`],[187,`Equal`],[188,`Comma`],[189,`Minus`],[190,`Period`],[191,`Slash`],[192,`Backquote`],[219,`BracketLeft`],[220,`Backslash`],[221,`BracketRight`],[222,`Quote`],[223,`IntlRo`],[225,`OEM_AX`],[226,`IntlBackslash`],[227,`ICO_HELP`],[228,`ICO_00`],[229,`Process`],[230,`ICO_CLEAR`],[231,`Packet`],[233,`OEM_Reset`],[234,`OEM_Jump`],[235,`OEM_PA1`],[236,`OEM_PA2`],[237,`OEM_PA3`],[238,`OEM_WS_Ctrl`],[239,`OEM_CU_Sel`],[240,`OEM_ATTN`],[241,`OEM_Finish`],[242,`OEM_Copy`],[243,`OEM_Auto`],[244,`OEM_ENLW`],[245,`BackTab`],[246,`ATTN`],[247,`CRSel`],[248,`EXSel`],[249,`EREOF`],[250,`MediaPlay`],[251,`Zoom`],[252,`Noname`],[253,`PA1`],[254,`OEM_Clear`]]),Zt=new Map(Xt.entries().map(([e,t])=>[t,e])),Qt=n({"[string]":{keys:`string[]`,mode:n(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var $t=class extends He{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 M({path:Tt([`keybinds.json`]),schema:Qt,default:e})}init(){super.init();let e=Lt.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=Lt.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=Xt.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=Xt.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=>Zt.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=>Zt.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 en(e){let t=new $t(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(),O.on(`quit`,()=>{t.destroy()}),r}function Y(){return Lt.getInstance().getInterface(`OGG_SIEGE`)}function tn(){let e=J.getInstance(),t=me.getInstance(),n=K.getInstance();if(!O.isPackaged){I.getInstance().info(`Cortex is disabled in development`),n.enabled=!1;return}try{n.meta=nn()}catch(e){I.getInstance().error(`Failed to setup cortex`,e);return}e.on([`gameReady`,`gameClose`],()=>{n.meta||=nn(),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 nn(){if(!global.OVERLAYED_META.release.id)throw Error(`Release ID is required`);return{app_id:global.OVERLAYED.APPLICATION_ID,user_id:Ot(),release_id:global.OVERLAYED_META.release.id,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,frontend_release_id:global.OVERLAYED.FRONTEND_RELEASE_ID,session_id:global.OVERLAYED.sessionId,in_game:!1}}const rn=j(class extends He{CHECK_INTERVAL=1e3*60*15;RETRY_INTERVAL=1e3*15;_updateCheckInterval=null;_latestCheckResponse=null;_activeCheckResponse=null;initialReleaseId=null;get manualUpdatesEnabled(){return this.options?.manualUpdates??!1}get activeReleaseId(){return this._activeCheckResponse?.release_id??this.initialReleaseId}constructor(){super(`SiteManager`)}init(e){super.init(e),e?.manualUpdates&&this.enableManualUpdates()}destroy(){super.destroy(),this._updateCheckInterval&&=(clearInterval(this._updateCheckInterval),null)}allowSiteUpdateOnNextLoad(){if(!this.options?.manualUpdates){this.logger.warn(`allowSiteUpdateOnNextLoad called but manual updates are disabled`);return}if(!this._latestCheckResponse){this.logger.warn(`allowSiteUpdateOnNextLoad called but no update has been checked yet`);return}if(this._activeCheckResponse?.release_id===this._latestCheckResponse.release_id){this.logger.warn(`allowSiteUpdateOnNextLoad called but theres no update available`);return}this._activeCheckResponse=this._latestCheckResponse,K.getInstance().track(`site_update_applied`,{version:this._latestCheckResponse.version,release_id:this._latestCheckResponse.release_id}),this.setFrontendCortexMeta(this._latestCheckResponse.release_id,this._latestCheckResponse.version)}setFrontendCortexMeta(e,t){let n=K.getInstance();n.meta||=nn(),e&&(global.OVERLAYED.FRONTEND_RELEASE_ID=e,n.meta.frontend_release_id=e),t&&(global.OVERLAYED.FRONTEND_VERSION=t,n.meta.frontend_version=t),e&&t&&n.track(`frontend_version_changed`,{version:t,release_id:e})}enableManualUpdates(){this.logger.log(`Enabling manual site updates`),this.checkForUpdates(),this._updateCheckInterval=setInterval(()=>{this.checkForUpdates(!0)},this.CHECK_INTERVAL)}async checkForUpdates(e=!1){let t=global.OVERLAYED_META?.application?.siteUrl;if(!t){this.logger.log(`No siteUrl configured, skipping check`);return}K.getInstance().track(`site_check_for_update`,{});try{let n=new URL(`/check`,t).toString();this.logger.log(`Checking site URL`,n);let r={"Overlayed-User-Agent":V({package_version:global.OVERLAYED.PACKAGE_VERSION,application_id:global.OVERLAYED.APPLICATION_ID,application_version:global.OVERLAYED.APP_VERSION}),"Overlayed-Cortex-User-Id":global.OVERLAYED_RUNTIME.userId},i=At();i&&(r[`Overlayed-Access-Token`]=i);let a=global.OVERLAYED_META.release.channelId;a&&(r[`Overlayed-Channel-Id`]=a);let o=await fetch(n,{headers:r});if(!o.ok){this.logger.warn(`Site check failed with status`,o.status),K.getInstance().track(`site_check_error`,{status:o.status}),e&&this.scheduleRetry();return}let s=await o.json();if(this.logger.log(`Site check response`,s),!s.release_id){this.logger.error(`Site check response missing release_id`);return}if(!this._latestCheckResponse){this._latestCheckResponse=s;return}return this._latestCheckResponse.release_id===s.release_id?void 0:(this.logger.log(`New site version detected`,s),this._latestCheckResponse=s,K.getInstance().track(`site_update_ready`,{version:s.version,release_id:s.release_id}),this.emit(`siteUpdateReady`,{releaseId:s.release_id,version:s.version}),s)}catch(e){let t=e instanceof Error?e.message:String(e);K.getInstance().track(`site_check_error`,{message:t}),this.logger.error(`Site check failed`,{error:e,message:t}),this.scheduleRetry()}}scheduleRetry(){setTimeout(()=>{this.checkForUpdates()},this.RETRY_INTERVAL)}}),an=j(Se,`browser-windows.log`);let on;function sn(){return on||(on=class e extends global.OVERLAYED.electron.BrowserWindow{static session=void 0;constructor(t){let n=e.resolveCustomOptions(t);super(n)}static resolveCustomOptions(t){let n=global.OVERLAYED_META,r=global.OVERLAYED_RUNTIME;return{...t,webPreferences:{...t.webPreferences,session:e.getSession(),additionalArguments:[...t.webPreferences?.additionalArguments||[],...global.OVERLAYED.electron.app.isPackaged?[]:[`--overlayed-meta=${JSON.stringify(n)}`],`--overlayed-runtime=${JSON.stringify(r)}`]}}}static getSession(){if(!global.OVERLAYED_META?.application?.siteUrl)return;if(e.session)return e.session;e.session=global.OVERLAYED.electron.session.fromPartition(`persist:overlayed-${global.OVERLAYED.APPLICATION_ID}`);let t=rn.getInstance(),n=V({package_version:global.OVERLAYED.PACKAGE_VERSION,application_id:global.OVERLAYED.APPLICATION_ID,application_version:global.OVERLAYED.APP_VERSION}),r={urls:[global.OVERLAYED_META.application.siteUrl+`/*`]},i=global.OVERLAYED_RUNTIME.userId;return e.session.webRequest.onBeforeSendHeaders(r,(e,r)=>{let a=At();a&&(e.requestHeaders[`Overlayed-Access-Token`]=a);let o=global.OVERLAYED_META.release.channelId;o&&(e.requestHeaders[`Overlayed-Channel-Id`]=o),t.manualUpdatesEnabled&&t.activeReleaseId&&(e.requestHeaders[`Overlayed-Release-Id`]=t.activeReleaseId),e.requestHeaders[`Overlayed-Cortex-User-Id`]=i,e.requestHeaders[`Overlayed-User-Agent`]=n,r({requestHeaders:e.requestHeaders})}),t.manualUpdatesEnabled&&e.session.webRequest.onHeadersReceived(r,(e,n)=>{if(t.initialReleaseId){n(e);return}let r=e.responseHeaders?.[`Overlayed-Release-Id`]?.[0];r&&(t.initialReleaseId=ot(r));let i=e.responseHeaders?.[`Overlayed-Release-Version`]?.[0];t.setFrontendCortexMeta(r,i),n(e)}),e.session}},on)}function cn(){function e(e,t){let n=an.getInstance();return e.once(`closed`,()=>{e.isDestroyed()||K.getInstance().track(`window_closed`,{url:e.webContents.getURL(),in_game:t})}),e.on(`unresponsive`,()=>{e.isDestroyed()||K.getInstance().track(`window_unresponsive`,{url:e.webContents.getURL(),in_game:t})}),e.webContents.on(`console-message`,(t,r,i,a,o)=>{let s=e.isDestroyed()?`destroyed`:e.webContents.getURL();n[r===3?`error`:r===2?`warn`:`log`](`[${s}] [${o}:${a}] ${i}`)}),K.getInstance().track(`window_created`,{url:e.webContents.getURL(),in_game:t}),e}return{getProductionSiteUrl:()=>{let e=global.OVERLAYED_META.application.siteUrl;return URL.canParse(e)?new URL(e):new URL(`https://default.overlayedapps.com`)},createWindow:t=>e(new(sn())(t),!1),createInGameWindow:t=>{let n=sn();return e(Y().instance.newWindowInternal(n,t),!0)},on:(e,t)=>Y().instance.on(e,t),off:(e,t)=>Y().instance.off(e,t),once:(e,t)=>Y().instance.once(e,t),addListener:(e,t)=>Y().instance.addListener(e,t),removeListener:(e,t)=>Y().instance.removeListener(e,t),removeAllListeners:()=>Y().instance.removeAllListeners(),prependListener:(e,t)=>Y().instance.prependListener(e,t),prependOnceListener:(e,t)=>Y().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=Y(),t=Ne.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}const ln=j(class extends Ve{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=Lt.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 un(){return{scope:e=>ln.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>Y().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>Y().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>Y().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>Y().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>Y().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>Y().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>Y().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>Y().instance.getKeyInputBlock(e)}}}function dn(){return{track:(e,t)=>{K.getInstance().track(`custom__${String(e)}`,t)}}}function fn(){return{registerWindow:()=>{}}}const pn=/(\d{4})-(\d{2})-(\d{2})\.log$/;function mn(e){let t=e.match(pn);if(!t)return!1;let[,n,r,i]=t,a=Number(n),o=Number(r),s=Number(i);if(o<1||o>12||s<1||s>31)return!1;let c=new Date(a,o-1,s);if(isNaN(c.getTime())||c.getFullYear()!==a||c.getMonth()!==o-1||c.getDate()!==s)return!1;let l=new Date;return l.setDate(l.getDate()-7),l.setHours(0,0,0,0),c>=l}function hn(e){let{silent:t=!1,additionalFiles:n}=e??{},r=ye(global.OVERLAYED.APPLICATION_ID),i=Ce(r,{recursive:!0}),a=_e(),o=Ce(a,{recursive:!0});t||(I.getInstance().info(`Logs path: `,r),I.getInstance().info(`Overlayed logs path: `,a));let s=new ae;return i.forEach(([e,n])=>{t||I.getInstance().info(`Zipping: `,n);let r=x(n);s.file(g(n),r,{compression:`DEFLATE`})}),o.forEach(([e,n])=>{if(!mn(g(n))){t||I.getInstance().info(`Skipping old/unrecognized log: `,n);return}t||I.getInstance().info(`Zipping: `,n);let r=x(n);s.file(g(n),r,{compression:`DEFLATE`})}),n&&Object.entries(n).forEach(([e,n])=>{t||I.getInstance().info(`Zipping extra file: `,e),s.file(e,n,{compression:`DEFLATE`})}),s}async function gn(e,t,n){let r=global.OVERLAYED_META.release.id?ot(global.OVERLAYED_META.release.id):void 0,i=Ot();return rt(global.OVERLAYED.APPLICATION_ID,{file:Buffer.from(n,`base64`),data:{release_id:r,type:e,cortex_user_id:i,...t}}).then(e=>(I.getInstance().info(`Feedback submitted`,e),e.data.id)).catch(e=>{console.error(JSON.stringify(e,null,2)),I.getInstance().error(`Failed to submit feedback`,e)})}function _n(e){let t=new Se(`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),submitFeedback:async(e,t,n)=>{let r=global.OVERLAYED_META.release.id?ot(global.OVERLAYED_META.release.id):void 0;return r&&O.isPackaged&&K.getInstance().track(e===`bug_report`?`bug_report_submitted`:`suggestion_submitted`,{release_id:r}),await gn(e,t,await hn(n).generateAsync({type:`base64`}))},getLogsZip:e=>hn(e)}}const vn=1e3;function yn(e,t,r,i,a){let o=Ne.getInstance(),s=I.getInstance().scope(`SetupPipeServer`);s.log(`Initializing`);function c(e,t){let n=r.get(t);if(!n)r.set(t,[e]);else{if(n.length>=vn){me.getInstance().warn(`Event buffer full, removing oldest event`,`EVENT_BUFFER_FULL`,{summary:`Event buffer overflow for module ${t}. Buffer size: ${n.length}, max: ${vn}`});return}n.push(e)}}function l(r){s.info(r);let i=Et(r);if(i instanceof n.errors){K.getInstance().track(`invalid_game_event`,{}),me.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let o=ze.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(r);if(f instanceof n.errors){if(`type`in f.byPath)return;s.warn(`Invalid event`,{summary:f.summary}),K.getInstance().track(`invalid_game_event`,{game:i.game,type:i.type,summary:f.summary}),me.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;K.getInstance().track(`unsupported_game_version`,{game:f.game,hash:e.process_hash,version:e.game_version})}let p=qt(u.key,f.type),m=qt(u.key,`*`),h=t.get(p),g=t.get(m),_=[...Array.from(h??[]),...Array.from(g??[])];if(_.length===0){s.info(`No handlers found for event`,{event:f});return}_.forEach(e=>{e(f)})}return i.on(`flushEvents`,e=>{if(a[e])return;a[e]=!0;let t=r.get(e);t&&(I.getInstance().info(`Flushing ${t.length} events for module ${e}`),t.forEach(e=>l(e)),r.delete(e))}),o.on(`data`,e=>e.forEach(l)),o.on(`error`,e=>{s.error(`Pipe server error`,e),me.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),o.on(`connected`,()=>{s.log(`Pipe server connected`)}),o.on(`disconnected`,()=>{s.log(`Pipe server disconnected`)}),o}const bn=j(class extends He{FETCH_INTERVAL=1e3*60*10;_fetchInterval=null;_flags=new Map;_overrides=new Map;_defaults=new Map;_boundOnGameReady=this.onGameEvent.bind(this);_boundOnGameClose=this.onGameEvent.bind(this);_readyResolve;ready;constructor(){super(`FeatureFlagManager`),this.ready=new Promise(e=>{this._readyResolve=e}),this.fetchFlags(),this.setupInterval(),J.getInstance().on(`gameReady`,this._boundOnGameReady),J.getInstance().on(`gameClose`,this._boundOnGameClose)}destroy(){this._fetchInterval&&=(clearInterval(this._fetchInterval),null),J.getInstance().off(`gameReady`,this._boundOnGameReady),J.getInstance().off(`gameClose`,this._boundOnGameClose),super.destroy()}setDefaults(e){this._defaults=new Map(Object.entries(e))}async refresh(){await this.fetchFlags()}override(e,t){let n=this.get(e);this._overrides.set(e,t),n!==t&&(this.emit(e,t),this.emit(`updated`,!0))}clearOverride(e){if(!this._overrides.has(e))return;let t=this.get(e);this._overrides.delete(e);let n=this.get(e);t!==n&&(this.emit(e,n),this.emit(`updated`,!0))}clearOverrides(){if(this._overrides.size===0)return;let e=new Map;for(let t of this._overrides.keys())e.set(t,this.get(t));this._overrides.clear();let t=!1;for(let[n,r]of e){let e=this.get(n);r!==e&&(this.emit(n,e),t=!0)}t&&this.emit(`updated`,!0)}isOverridden(e){return this._overrides.has(e)}getAllOverrides(){return Object.fromEntries(this._overrides)}inspect(e){let t=this._overrides.get(e),n=this._flags.get(e),r=this._defaults.get(e);return{effective:t??n??r??!1,override:t,actual:n,default:r}}get(e){let t=this._overrides.get(e),n=this._flags.get(e),r=this._defaults.get(e);return t??n??r??!1}getAll(){let e=Object.fromEntries(this._defaults);for(let[t,n]of this._flags)e[t]=n;for(let[t,n]of this._overrides)e[t]=n;return e}onGameEvent(){this.fetchFlags()}setupInterval(){this._fetchInterval=setInterval(()=>{this.fetchFlags()},this.FETCH_INTERVAL)}async fetchFlags(){try{let e=J.getInstance().getActiveGames(),{data:t}=await it(global.OVERLAYED.APPLICATION_ID,{cortex_user_id:global.OVERLAYED_RUNTIME.userId,release_id:global.OVERLAYED_META.release.id??void 0,channel_id:global.OVERLAYED_META.release.channelId??void 0,active_games:e.map(e=>e.toString())??void 0}),n=new Map;for(let e of t)n.set(e.name,e.enabled);for(let[e,t]of n){if(this._overrides.has(e))continue;let n=this._flags.get(e);n!==void 0&&n!==t&&this.emit(e,t)}for(let[e]of this._flags)this._overrides.has(e)||n.has(e)||this.emit(e,this._defaults.get(e)??!1);this._flags=n;for(let e of this._defaults.keys())this._flags.has(e)||this.logger.warn(`Registered feature flag "${e}" was not found in the API response`);this.emit(`updated`,!0)}catch(e){this.logger.error(`Failed to fetch feature flags`,e)}finally{this._readyResolve()}}});function xn(e){let t=bn.getInstance();return e&&t.setDefaults(e),{on:(e,n)=>t.on(e,n),off:(e,n)=>t.off(e,n),ready:t.ready,get:e=>t.get(e),getAll:()=>t.getAll(),refresh:()=>t.refresh(),override:(e,n)=>t.override(e,n),clearOverride:e=>t.clearOverride(e),clearOverrides:()=>t.clearOverrides(),isOverridden:e=>t.isOverridden(e),getAllOverrides:()=>t.getAllOverrides(),inspect:e=>t.inspect(e)}}function Sn(){let e=rn.getInstance();return{on:(t,n)=>{e.on(t,n)},off:(t,n)=>{e.off(t,n)},allowSiteUpdateOnNextLoad:()=>{e.allowSiteUpdateOnNextLoad()}}}const Cn=n({dismissedNotices:ce(n.string).array()}),wn=j(class extends He{NOTICE_FETCH_INTERVAL=1e3*60*10;MAX_DISMISSED_NOTICES=100;_noticeFetchInterval=null;_notices=[];_noticesFile;_boundOnGameReady=this.onGameReady.bind(this);get notices(){let e=this._noticesFile.get().dismissedNotices;return this._notices.filter(t=>!e.includes(t.id))}constructor(){super(`NoticeManager`),this._noticesFile=this.getNoticesFile(),this._noticesFile.load(),this.fetchNotices(),this.setupNoticeInterval(),J.getInstance().on(`gameReady`,this._boundOnGameReady)}destroy(){this._noticeFetchInterval&&=(clearInterval(this._noticeFetchInterval),null),J.getInstance().off(`gameReady`,this._boundOnGameReady),super.destroy()}dismissNotice(e){let t=this._notices.find(t=>t.id===e);if(!t||!t.dismissible)return;let n=this._noticesFile.get().dismissedNotices;n.unshift(e),this._noticesFile.set({dismissedNotices:n.slice(0,this.MAX_DISMISSED_NOTICES)}),this.emitNoticesUpdated()}onGameReady(){this.fetchNotices()}setupNoticeInterval(){this._noticeFetchInterval=setInterval(()=>{this.fetchNotices()},this.NOTICE_FETCH_INTERVAL)}getNoticesFile(){return new M({path:Tt([`notices.json`]),schema:Cn,default:{dismissedNotices:[]}})}async fetchNotices(){let e=J.getInstance().getActiveGames();try{let{data:t}=await at(global.OVERLAYED.APPLICATION_ID,{release_id:global.OVERLAYED_META.release.id?ot(global.OVERLAYED_META.release.id):void 0,channel:global.OVERLAYED_META.release.channel,version:global.OVERLAYED_META.release.version,games:e});this._notices=t,this.emitNoticesUpdated()}catch(e){this.logger.error(`Failed to fetch notices`,e)}}emitNoticesUpdated(){this.emit(`noticesUpdated`,{notices:this.notices})}});function Tn(){let e=wn.getInstance();return{on:(t,n)=>{e.on(t,n)},off:(t,n)=>{e.off(t,n)},dismissNotice:t=>{e.dismissNotice(t)},getNotices:()=>e.notices}}const{Provider:En}=oe;var Dn=class extends En{options;updater;logger=I.getInstance().scope(`OverlayedProvider`);constructor(e,t,n){super(n),this.options=e,this.updater=t}async getLatestVersion(){try{let e=await et(this.options.application_id,{release_id:this.options.release_id,cortex_user_id:this.options.cortex_user_id,access_token:this.options.access_token,requested_channel:this.options.requested_channel});return this.logger.log(`checkApplicationRelease response`,e.data),K.getInstance().track(`update_release_check_success`,{version:e.data.release.version,channel:e.data.release.channel,fallback:!!e.data.fallback}),e.data.fallback&&this.logger.warn(`Update fallback detected, switching to default channel`),{path:``,sha512:e.data.download_hash??``,version:`${e.data.release.version}-${e.data.release.channel}`,releaseName:e.data.release.id,releaseDate:e.data.release.created_at,files:[{url:e.data.download_url,sha512:e.data.download_hash??``}]}}catch(e){let t=e instanceof Error?e.stack||e.message:String(e);throw K.getInstance().track(`update_release_check_error`,{message:t}),Error(`Unable to find the latest version (${this.options.release_id}), please ensure release exists. ${t}`)}}resolveFiles(e){return[{info:e.files[0],url:new URL(e.files[0].url)}]}};function On(e){return{provider:`custom`,updateProvider:Dn,...e}}function X(){return oe.autoUpdater}const kn=j(class extends He{DEFAULT_CHANNEL=`public`;TOKEN_REFRESH_INTERVAL=1e3*60*15;accessTokenFetcher=void 0;_tokenRefreshInterval=null;_downloadStarted=!1;constructor(){super(`UpdateManager`)}init(){super.init(),this.registerListenerForwarders(),this.setupTokenRefreshInterval(),X().disableDifferentialDownload=!0}destroy(){X().removeAllListeners(),this._tokenRefreshInterval&&=(clearInterval(this._tokenRefreshInterval),null),super.destroy()}setupTokenRefreshInterval(){this._tokenRefreshInterval=setInterval(()=>{this.checkAndRefreshToken()},this.TOKEN_REFRESH_INTERVAL)}async checkAndRefreshToken(){let e=global.OVERLAYED_META.release.channel;e!==this.DEFAULT_CHANNEL&&(this.logger.log(`Refreshing access token for channel`,e),await this.setAndGetLatestAccessToken(e))}async checkForUpdates(e){this.logger.log(`Starting checkForUpdates`);let t=e??global.OVERLAYED_META.release.channel;return K.getInstance().track(`check_for_update`,{channel:t}),this._downloadStarted=!1,await this.setAndGetLatestAccessToken(t),e?(X().allowDowngrade=!0,X().channel=e,this.setFeedUrl({requestedChannel:e})):(X().allowDowngrade=!1,X().channel=global.OVERLAYED_META.release.channel,this.setFeedUrl({})),this.logger.log(`Checking for updates`),X().checkForUpdates()}async switchChannel(e){return this.logger.log(`Switching channel`,e),K.getInstance().track(`update_channel_switch`,{from_channel:global.OVERLAYED_META.release.channel,to_channel:e}),this._downloadStarted=!1,await this.setAndGetLatestAccessToken(e),X().allowDowngrade=!0,X().channel=e,this.setFeedUrl({requestedChannel:e}),X().checkForUpdates()}quitAndInstall(e,t){this.logger.log(`quitAndInstall`,{isSilent:e,isForceRunAfter:t});let[n,r]=this.canUpdate();if(!n)throw this.logger.warn(`Cannot update`,{denialReason:r}),K.getInstance().track(`update_install_blocked`,{reason:r}),Error(r);return this.logger.log(`Quitting and installing`),K.getInstance().track(`update_install`,{}),X().quitAndInstall(e,t)}canUpdate(){return J.getInstance().isInGame?[!1,`User is in game`]:[!0,null]}downloadUpdate(e){return X().downloadUpdate(e)}setAccessTokenFetcher(e){this.accessTokenFetcher=e}async setAndGetLatestAccessToken(e){if(this.logger.log(`Fetching new token`),!this.accessTokenFetcher)return this.logger.warn(`accessTokenFetcher is not set, private channels will not work.`),jt(null),null;if(this.logger.log(`Setting and getting latest access token for channel`,e),e===this.DEFAULT_CHANNEL)return this.logger.log(`Default channel, skipping`),jt(null),null;if(e!==global.OVERLAYED_META.release.channel)return this.forceFetchNewAccessToken(e);this.logger.log(`Access token exists, checking expiration`);let t=At();if(t){let e=this.getAccessTokenExpirationDate(t);if(!e)this.logger.log(`Invalid token, setting to null`),jt(null);else if(e.getTime()>=Date.now()+300*1e3)return this.logger.log(`Token is not expired, using it.`),t}return this.forceFetchNewAccessToken(e)}async forceFetchNewAccessToken(e){this.accessTokenFetcher||this.logger.warn(`accessTokenFetcher is not set [2], private channels will not work.`);try{let t=await this.accessTokenFetcher?.(e)??null;this.logger.log(`New token fetched`,t?.slice(0,5)+`...`);let n=At();if(t==null||n===t){K.getInstance().track(`update_token_invalid`,{channel:e}),this.emit(`authTokenInvalid`,{}),jt(null);return}return jt(t),t}catch(e){let t=e instanceof Error?e.message:String(e);return K.getInstance().track(`update_token_fetch_error`,{message:t}),this.logger.error(`Error fetching new token`,{error:e,message:t}),jt(null),null}}setFeedUrl(e){if(!global.OVERLAYED_META.release.id){this.logger.warn(`Tried to set feed URL in development mode`);return}X().setFeedURL(On({application_id:global.OVERLAYED.APPLICATION_ID,release_id:global.OVERLAYED_META.release.id,cortex_user_id:global.OVERLAYED_RUNTIME.userId,access_token:At(),requested_channel:e.requestedChannel}))}registerListenerForwarders(){X().on(`checking-for-update`,()=>{this.logger.info(`Checking for updates`),this.emit(`checkingForUpdates`,{})}),X().on(`download-progress`,e=>{this._downloadStarted||(this._downloadStarted=!0,K.getInstance().track(`update_download_started`,{version:X().currentVersion?.version??``})),this.emit(`downloadProgress`,{info:e});let t=`Download speed: ${e.bytesPerSecond} - Downloaded ${e.percent}%`;t+=` (${e.transferred}/${e.total})`,this.logger.log(t)}),X().on(`error`,(e,t)=>{this.logger.error(`Error`,e,t),K.getInstance().track(`update_download_error`,{message:t??e.message}),this.emit(`error`,{error:e,message:t})}),X().on(`update-not-available`,e=>{this.logger.info(`Update not available`,e),K.getInstance().track(`update_not_available`,{version:e.version}),this.emit(`updateNotAvailable`,{info:e})}),X().on(`update-available`,e=>{this.logger.info(`Update available`,e),K.getInstance().track(`update_available`,{version:e.version,channel:X().channel??``}),this.emit(`updateAvailable`,{info:e})}),X().on(`update-downloaded`,e=>{this.logger.info(`Update downloaded`,e),K.getInstance().track(`update_download_complete`,{version:e.version}),this.emit(`updateDownloaded`,{event:e})}),X().on(`update-cancelled`,e=>{this.logger.info(`Update cancelled`,e),K.getInstance().track(`update_cancelled`,{version:e.version}),this.emit(`updateCancelled`,{info:e})})}getAccessTokenExpirationDate(e){try{let t=e.split(`.`)[1];if(!t)return null;let n=atob(t.replace(/-/g,`+`).replace(/_/g,`/`)),r=JSON.parse(n);return r.exp?new Date(r.exp*1e3):null}catch{return null}}});function An(){let e=kn.getInstance();return{site:Sn(),on:(t,n)=>{e.on(t,n)},off:(t,n)=>{e.off(t,n)},setAccessTokenFetcher:t=>e.setAccessTokenFetcher(t),checkForUpdates:()=>e.checkForUpdates(),switchChannel:t=>e.checkForUpdates(t),quitAndInstall:(t,n)=>e.quitAndInstall(t,n),canUpdate:()=>e.canUpdate(),downloadUpdate:t=>e.downloadUpdate(t)}}function jn(){return{getChannel:()=>global.OVERLAYED_META.release.channel,getVersion:()=>global.OVERLAYED_META.release.version,getReleaseId:()=>global.OVERLAYED_META.release.id}}const Mn=j(class extends He{_knownModificationTimes=new Map;_confirmedDumps=new Set;_pendingReports=new Map;_snapshotTimestamp=0;boundOnGameReady=this.onGameReady.bind(this);boundOnGameClose=this.onGameClose.bind(this);constructor(){super(`CrashDumpManager`)}init(){super.init(),this.logger.debug(`init() registering game event listeners`),J.getInstance().on(`gameReadyInternal`,this.boundOnGameReady),J.getInstance().on(`gameCloseInternal`,this.boundOnGameClose),this.logger.debug(`init() complete`)}destroy(){this.logger.debug(`destroy() called`,{pendingReports:this._pendingReports.size,confirmedDumps:this._confirmedDumps.size,knownModificationTimes:this._knownModificationTimes.size}),J.getInstance().off(`gameReadyInternal`,this.boundOnGameReady),J.getInstance().off(`gameCloseInternal`,this.boundOnGameClose),this._knownModificationTimes.clear(),this._confirmedDumps.clear(),this._pendingReports.clear(),this._snapshotTimestamp=0,this.logger.debug(`destroy() cleanup complete`),super.destroy()}async submit(e){this.logger.debug(`submit() called`,{id:e,pendingCount:this._pendingReports.size});let t=this._pendingReports.get(e);if(!t){this.logger.warn(`submit called with unknown id`,e);return}let{response:n,dumpPath:r}=t;this.logger.debug(`Resolved pending report for submission`,{id:e,dumpPath:r});let i=global.OVERLAYED.APPLICATION_ID,a=Ot();if(this.logger.debug(`Resolved identifiers for submission`,{applicationId:i,cortexUserId:a}),n.crash_dump_upload_request)try{this.logger.debug(`Reading crash dump file`,{dumpPath:r});let t=await E.readFile(r);this.logger.debug(`Uploading crash dump`,{dumpPath:r,size:t.byteLength}),await lt(n.crash_dump_upload_request,new Uint8Array(t)),this.logger.debug(`Crash dump uploaded, confirming`,{id:e}),await nt(i,e,{cortex_user_id:a,file_type:`crash_dump`}),this.logger.debug(`Crash dump confirmed`,{id:e})}catch(e){this.logger.error(`Failed to upload crash dump`,{dumpPath:r,error:e})}else this.logger.warn(`No crash dump upload request in response`,{id:e});this._pendingReports.delete(e),this._confirmedDumps.add(r),this.logger.debug(`Report state updated, attempting dump file cleanup`,{id:e,dumpPath:r});try{await E.unlink(r),this.logger.debug(`Dump file cleaned up successfully`,{dumpPath:r})}catch(e){this.logger.warn(`Failed to clean up dump file after submission`,{dumpPath:r,error:e})}this.logger.log(`Crash report submitted successfully`,r)}async onGameReady({ravenGame:e}){this.logger.debug(`onGameReady() fired`,{game:e.identifier}),await this.snapshotModificationTimes(),this.logger.debug(`onGameReady() snapshot complete`,{game:e.identifier})}async onGameClose({ravenGame:e}){this.logger.debug(`onGameClose() fired`,{game:e.identifier}),await this.scanForNewDumps(dt(e.identifier)),this.logger.debug(`onGameClose() scan complete`,{game:e.identifier})}async snapshotModificationTimes(){let e=xe();this._snapshotTimestamp=Date.now(),this.logger.debug(`snapshotModificationTimes() called`,{crashDumpsPath:e,snapshotTimestamp:this._snapshotTimestamp});try{await E.access(e)}catch{this.logger.debug(`Crash dumps directory does not exist, skipping snapshot`,{crashDumpsPath:e});return}let t=await this.findAllDumps(e);this.logger.debug(`Found dumps for snapshot`,{count:t.length});for(let e of t)try{let t=await E.stat(e);if(t.mtimeMs>=this._snapshotTimestamp-3e4){this.logger.debug(`Skipping recent dump from snapshot`,{dumpPath:e,mtimeMs:t.mtimeMs,snapshotTimestamp:this._snapshotTimestamp});continue}this._knownModificationTimes.set(e,t.mtimeMs),this.logger.debug(`Recorded modification time`,{dumpPath:e,mtimeMs:t.mtimeMs})}catch(t){this.logger.warn(`Failed to stat dump file during snapshot`,{dumpPath:e,error:t})}this.logger.debug(`Snapshot complete`,{totalTracked:this._knownModificationTimes.size})}async scanForNewDumps(e){let t=xe();this.logger.debug(`scanForNewDumps() called`,{game:e,crashDumpsPath:t});try{await E.access(t)}catch{this.logger.debug(`Crash dumps directory does not exist, skipping scan`,{crashDumpsPath:t});return}let n=new Set([...this._pendingReports.values()].map(e=>e.dumpPath)),r=await this.findAllDumps(t);this.logger.debug(`Scan found dumps`,{total:r.length,pendingCount:n.size,confirmedCount:this._confirmedDumps.size});for(let t of r){if(this._confirmedDumps.has(t)){this.logger.debug(`Skipping already confirmed dump`,{dumpPath:t});continue}if(n.has(t)){this.logger.debug(`Skipping already pending dump`,{dumpPath:t});continue}let r;try{r=await E.stat(t)}catch(e){this.logger.warn(`Failed to stat dump file during scan`,{dumpPath:t,error:e});continue}let i=r.mtimeMs,a=this._knownModificationTimes.get(t);if(this.logger.debug(`Comparing modification times`,{dumpPath:t,modificationTime:i,knownModificationTime:a}),a===void 0||i>a){this.logger.debug(`Dump is new or modified`,{dumpPath:t,isNew:a===void 0});try{let n=r.size,i=m.basename(m.dirname(t)),a=m.basename(t,m.extname(t));this.logger.debug(`Preparing crash report`,{dumpPath:t,crashDumpSize:n,crashSource:i});let o=(await hn().generateAsync({type:`uint8array`})).byteLength,s=global.OVERLAYED.APPLICATION_ID,c=Ot(),l=global.OVERLAYED_META.release.id;this.logger.debug(`Creating game crash report via API`,{applicationId:s,cortexUserId:c,game:e,crashSource:i,crashDumpSize:n,logsSize:o});let{data:u}=await tt(s,{cortex_user_id:c,game:e,crash_source:i,crash_identifier:a,release_id:l,logs_size:o,crash_dump_size:n});this._pendingReports.set(u.id,{response:u,dumpPath:t}),this.logger.debug(`Crash report created, emitting 'new' event`,{id:u.id,game:e}),this.logger.log(`New crash dump detected`,{dumpPath:t,game:e,id:u.id}),this.emit(`new`,{id:u.id,game:e})}catch(e){this.logger.error(`Failed to create game crash report`,{dumpPath:t,error:e})}}else this.logger.debug(`Dump unchanged, skipping`,{dumpPath:t});this._knownModificationTimes.set(t,i)}this.logger.debug(`scanForNewDumps() complete`,{game:e,pendingReports:this._pendingReports.size})}async findAllDumps(e){this.logger.debug(`findAllDumps() called`,{basePath:e});let t=[],n;try{n=await E.readdir(e,{withFileTypes:!0})}catch(n){return this.logger.warn(`Failed to read crash dumps directory`,{basePath:e,error:n}),t}this.logger.debug(`Top-level entries in crash dumps directory`,{count:n.length,directories:n.filter(e=>e.isDirectory()).map(e=>e.name)});for(let r of n)if(r.isDirectory()){let n=m.join(e,r.name),i;try{i=await E.readdir(n,{withFileTypes:!0})}catch(e){this.logger.warn(`Failed to read crash dump subdirectory`,{subPath:n,error:e});continue}let a=i.filter(e=>e.isFile()&&e.name.endsWith(`.dmp`));this.logger.debug(`Scanned subdirectory`,{subPath:n,totalEntries:i.length,dmpCount:a.length});for(let e of a)t.push(m.join(n,e.name))}return this.logger.debug(`findAllDumps() complete`,{totalFound:t.length}),t}});let Nn=!1,Pn={},Fn,In=new fe,Ln;function Rn(e){Bn(e);let t=zn(e),{init:n=!0,debug:r=!1,silent:i=!0}=t,a=Hn(e);if(I.getInstance().init(e.applicationId,r,i),an.getInstance().init(e.applicationId,r,!0,!0),a&&Gn(Qe(e.applicationId),!1).catch(()=>{}),Nn)return Fn;function o(){if(Nn){I.getInstance().warn(`Overlayed already initialized`);return}tn();let n=Wt.get({createIfMissing:!1});if(n){let t=Kt({currentAccount:n.currentAccount,accounts:n.accounts,expected:{applicationId:e.applicationId,baseUrl:We}});t&&Ke(()=>t.account.apiKey)}let r=new Map,i=new Map,a=An(),s=Jt(t.modules,r,In),c=Yt(),l=en(t.keybinds),u=cn(),d=un(),f=fn(),p=dn(),m=_n(t),h=Tn(),g=xn(t.featureFlags),_=jn();I.getInstance().log(`Overlayed initialized`),Un(t),yn(t,r,i,In,Pn),Nn=!0,Fn={...s,...c,ads:f,keybinds:l,windows:u,input:d,cortex:p,hasAnyActiveProcesses:()=>Ft.getInstance().hasAnyActiveProcesses,hasAnyActiveGames:()=>J.getInstance().isInGame,init:o,log:m,initialized:Nn,notices:h,featureFlags:g,updater:a,application:_,crashDumps:{on:(e,t)=>Mn.getInstance().on(e,t),off:(e,t)=>Mn.getInstance().off(e,t),submit:e=>Mn.getInstance().submit(e)}},Fn.universal.on(`logged_in`,e=>{K.getInstance().track(`account_id`,{account_id:e.content.account_id,game:e.game})})}return n&&a?(o(),Fn):new Proxy({init:o},{get:(e,t)=>{if(t===`init`)return e[t];if(!Nn)throw Error(a?`overlayed was called before initialized: ${t}`:Vn);return Fn[t]}})}function zn(e){return{...e,modules:[...e.modules,Be()]}}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Bn(e){if(!ue(e.applicationId))throw Error(`Invalid applicationId, must be a valid ULID.`)}const Vn="Overlayed metadata has not been initialized yet. Run `overlayed init` to set up your local development environment.";function Hn(e){let t=Wn(),n=`1.3.14`,r=Qe(e.applicationId);function i(){return{package_version:n,application_id:r,application_version:t?.release.version??`0.0.0`}}return I.getInstance().log(`ua object`,i()),Je(()=>i()),t===null?(global.OVERLAYED=new Proxy({},{get:()=>{throw Error(Vn)}}),Gn(r,!0),!1):(global.OVERLAYED={APPLICATION_ID:r,APP_BUILD_CHANNEL:t.release.channel,APP_VERSION:t.release.version,PACKAGE_VERSION:n,FRONTEND_VERSION:`0.0.0`,sessionId:kt(),electron:e.electron},global.OVERLAYED_META=t,global.OVERLAYED_RUNTIME={userId:Ot()},I.getInstance().log(`meta`,t),!0)}function Un(e){I.getInstance().warn(`Bootstrapping`);let t=e.universal?[`*`]:e.modules.map(e=>e.key);J.getInstance().setSubscribedGames(t),I.getInstance().warn(`Initializing update manager`),kn.getInstance().init(),I.getInstance().warn(`Initialized update manager`),rn.getInstance().init({manualUpdates:e.site?.manualUpdates??!1}),Ht.getInstance().init(),J.getInstance().init(),Mn.getInstance().init(),Ft.getInstance().init(),Pt.getInstance().init(),K.getInstance().track(`start`,{}),Ut.getInstance().check(e.applicationId);try{Ln&&clearInterval(Ln),Ln=setInterval(()=>{try{G()}catch{}},3e4),Ln.unref()}catch(e){I.getInstance().log(`failed to start sessionLastUsed interval`,e)}async function n(){let e={};e.os=ne.platform().trim(),e.os_version=process.getSystemVersion().trim(),e.architecture=ne.arch().trim();let t=ne.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 k.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=ne.homedir(),o=await E.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}O.on(`ready`,()=>{n().then(e=>{K.getInstance().track(`system_info`,e)}).catch(e=>{I.getInstance().log(`Failed to retrieve system information`,e)})}),O.on(`quit`,()=>{K.getInstance().track(`electron_quit`,{}),Kn()}),process.on(`exit`,()=>{K.getInstance().track(`exit`,{}),Kn()})}function Wn(){if(O.isPackaged)try{let e=m.join(process.resourcesPath,`meta.json`);return JSON.parse(y.readFileSync(e,`utf-8`))}catch(e){throw Error(`Failed to read application metadata from resources/meta.json`,{cause:e})}else{let e=m.join(process.cwd(),`.overlayed`,`meta.json`);return y.existsSync(e)?JSON.parse(y.readFileSync(e,`utf-8`)):null}}async function Gn(e,t=!1){if(!O.isPackaged)try{I.getInstance().log(`Fetching application metadata from API...`);let n=Ee({...(await $e(e)).data,siteUrl:``});t&&(I.getInstance().log(v.yellowBright(`Uninitialized development environment detected. Created .overlayed folder. In the future, run ${v.bold(`overlayed init`)} to do so. \n\nThe process will now exit to load the cached metadata.\n\n${v.italic(`Note: This will never happen in a packaged application, and will only happen once in local development so long as the .overlayed folder exists.`)}`)),process.exit(0)),global.OVERLAYED_META=n}catch(e){I.getInstance().error(`Failed to fetch application meta`,e),t&&(console.error(`
|
|
16
16
|
Failed to fetch application metadata. Please ensure you're authenticated with 'overlayed login'.
|
|
17
17
|
`),process.exit(1))}}async function Kn(){try{G()}catch{}try{Ln&&clearInterval(Ln),Ln=void 0}catch{}K.getInstance().flush(),Pt.getInstance().destroy(),Mn.getInstance().destroy(),J.getInstance().destroy(),Ht.getInstance().destroy(),Ft.getInstance().destroy(),Lt.getInstance().getInterface(`OGG_SIEGE`).destroy(),Ne.getInstance().destroy(),me.getInstance().destroy(),kn.getInstance().destroy(),rn.getInstance().destroy(),bn.getInstance().destroy()}export{Pe as RenderInterface,Ie as VirtualKey,z as defineConfig,Rn as overlayed};
|
package/dist/siege.d.ts
CHANGED
|
@@ -652,6 +652,25 @@ declare function module(): {
|
|
|
652
652
|
};
|
|
653
653
|
};
|
|
654
654
|
event: {
|
|
655
|
+
game: "siege";
|
|
656
|
+
type: "stopped_queuing";
|
|
657
|
+
creation_time: number;
|
|
658
|
+
} | {
|
|
659
|
+
game: "siege";
|
|
660
|
+
type: "player_assists_changed";
|
|
661
|
+
creation_time: number;
|
|
662
|
+
content: {
|
|
663
|
+
player_id: SiegePlayerId;
|
|
664
|
+
assists: number;
|
|
665
|
+
};
|
|
666
|
+
} | {
|
|
667
|
+
game: "siege";
|
|
668
|
+
type: "defuser_sabotaged";
|
|
669
|
+
creation_time: number;
|
|
670
|
+
content: {
|
|
671
|
+
player_id: SiegePlayerId;
|
|
672
|
+
};
|
|
673
|
+
} | {
|
|
655
674
|
game: "siege";
|
|
656
675
|
type: "started_queuing";
|
|
657
676
|
creation_time: number;
|
|
@@ -663,10 +682,6 @@ declare function module(): {
|
|
|
663
682
|
};
|
|
664
683
|
match_type: SiegeMatchType;
|
|
665
684
|
};
|
|
666
|
-
} | {
|
|
667
|
-
game: "siege";
|
|
668
|
-
type: "stopped_queuing";
|
|
669
|
-
creation_time: number;
|
|
670
685
|
} | {
|
|
671
686
|
game: "siege";
|
|
672
687
|
type: "match_started";
|
|
@@ -865,14 +880,6 @@ declare function module(): {
|
|
|
865
880
|
player_id: SiegePlayerId;
|
|
866
881
|
deaths: number;
|
|
867
882
|
};
|
|
868
|
-
} | {
|
|
869
|
-
game: "siege";
|
|
870
|
-
type: "player_assists_changed";
|
|
871
|
-
creation_time: number;
|
|
872
|
-
content: {
|
|
873
|
-
player_id: SiegePlayerId;
|
|
874
|
-
assists: number;
|
|
875
|
-
};
|
|
876
883
|
} | {
|
|
877
884
|
game: "siege";
|
|
878
885
|
type: "player_game_mode_actions_changed";
|
|
@@ -888,13 +895,6 @@ declare function module(): {
|
|
|
888
895
|
content: {
|
|
889
896
|
player_id: SiegePlayerId;
|
|
890
897
|
};
|
|
891
|
-
} | {
|
|
892
|
-
game: "siege";
|
|
893
|
-
type: "defuser_sabotaged";
|
|
894
|
-
creation_time: number;
|
|
895
|
-
content: {
|
|
896
|
-
player_id: SiegePlayerId;
|
|
897
|
-
};
|
|
898
898
|
} | {
|
|
899
899
|
game: "siege";
|
|
900
900
|
type: "defuser_picked_up";
|
|
@@ -2012,6 +2012,25 @@ declare const siegeEvents: import("arktype").Module<{
|
|
|
2012
2012
|
};
|
|
2013
2013
|
};
|
|
2014
2014
|
event: {
|
|
2015
|
+
game: "siege";
|
|
2016
|
+
type: "stopped_queuing";
|
|
2017
|
+
creation_time: number;
|
|
2018
|
+
} | {
|
|
2019
|
+
game: "siege";
|
|
2020
|
+
type: "player_assists_changed";
|
|
2021
|
+
creation_time: number;
|
|
2022
|
+
content: {
|
|
2023
|
+
player_id: SiegePlayerId;
|
|
2024
|
+
assists: number;
|
|
2025
|
+
};
|
|
2026
|
+
} | {
|
|
2027
|
+
game: "siege";
|
|
2028
|
+
type: "defuser_sabotaged";
|
|
2029
|
+
creation_time: number;
|
|
2030
|
+
content: {
|
|
2031
|
+
player_id: SiegePlayerId;
|
|
2032
|
+
};
|
|
2033
|
+
} | {
|
|
2015
2034
|
game: "siege";
|
|
2016
2035
|
type: "started_queuing";
|
|
2017
2036
|
creation_time: number;
|
|
@@ -2023,10 +2042,6 @@ declare const siegeEvents: import("arktype").Module<{
|
|
|
2023
2042
|
};
|
|
2024
2043
|
match_type: SiegeMatchType;
|
|
2025
2044
|
};
|
|
2026
|
-
} | {
|
|
2027
|
-
game: "siege";
|
|
2028
|
-
type: "stopped_queuing";
|
|
2029
|
-
creation_time: number;
|
|
2030
2045
|
} | {
|
|
2031
2046
|
game: "siege";
|
|
2032
2047
|
type: "match_started";
|
|
@@ -2225,14 +2240,6 @@ declare const siegeEvents: import("arktype").Module<{
|
|
|
2225
2240
|
player_id: SiegePlayerId;
|
|
2226
2241
|
deaths: number;
|
|
2227
2242
|
};
|
|
2228
|
-
} | {
|
|
2229
|
-
game: "siege";
|
|
2230
|
-
type: "player_assists_changed";
|
|
2231
|
-
creation_time: number;
|
|
2232
|
-
content: {
|
|
2233
|
-
player_id: SiegePlayerId;
|
|
2234
|
-
assists: number;
|
|
2235
|
-
};
|
|
2236
2243
|
} | {
|
|
2237
2244
|
game: "siege";
|
|
2238
2245
|
type: "player_game_mode_actions_changed";
|
|
@@ -2248,13 +2255,6 @@ declare const siegeEvents: import("arktype").Module<{
|
|
|
2248
2255
|
content: {
|
|
2249
2256
|
player_id: SiegePlayerId;
|
|
2250
2257
|
};
|
|
2251
|
-
} | {
|
|
2252
|
-
game: "siege";
|
|
2253
|
-
type: "defuser_sabotaged";
|
|
2254
|
-
creation_time: number;
|
|
2255
|
-
content: {
|
|
2256
|
-
player_id: SiegePlayerId;
|
|
2257
|
-
};
|
|
2258
2258
|
} | {
|
|
2259
2259
|
game: "siege";
|
|
2260
2260
|
type: "defuser_picked_up";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@overlayed/app",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.14",
|
|
4
4
|
"description": "Overlayed app",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript"
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"typescript": "^6.0.3",
|
|
77
77
|
"vite": "^8.1.3",
|
|
78
78
|
"@overlayed/api": "0.0.6",
|
|
79
|
-
"@overlayed/events": "0.0.4",
|
|
80
79
|
"@overlayed/cortex-client": "0.0.6",
|
|
80
|
+
"@overlayed/events": "0.0.4",
|
|
81
81
|
"@overlayed/native-managers": "0.0.4",
|
|
82
82
|
"@overlayed/shared-node": "0.0.4",
|
|
83
83
|
"@overlayed/siege": "0.0.5",
|