@overlayed/app 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -27,4 +27,4 @@ Left: ${e}
27
27
  Right: ${t}`,js=(e,t)=>`The intersection of two ordered unions is indeterminate:
28
28
  Left: ${e}
29
29
  Right: ${t}`,Ms=I({kind:`unit`,hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:e=>e instanceof Date?e.toISOString():Ii(e)}},normalize:e=>e,defaults:{description:e=>A(e.unit),problem:({expected:e,actual:t})=>`${e===t?`must be reference equal to ${e} (serialized to the same value)`:`must be ${e} (was ${t})`}`},intersections:{unit:(e,t)=>z.init(`unit`,e,t),...Vo(`unit`,(e,t)=>{if(t.allows(e.unit))return e;let n=t.hasKind(`intersection`)?t.basis:t;if(n){let t=n.hasKind(`domain`)?n:j.intrinsic.object;if(e.domain!==t.domain){let n=e.domain===`undefined`||e.domain===`null`||e.domain===`boolean`?e.domain:j.intrinsic[e.domain];return z.init(`domain`,n,t)}}return z.init(`assignability`,e,t.hasKind(`intersection`)?t.children.find(t=>!t.allows(e.unit)):t)})}});var Ns=class extends Jo{compiledValue=this.json.unit;serializedValue=typeof this.unit==`string`||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=Fs(this.unit,this.serializedValue);compiledNegation=Fs(this.unit,this.serializedValue,`negated`);expression=A(this.unit);domain=x(this.unit);get shortDescription(){return this.domain===`object`?An.object:this.description}innerToJsonSchema(){return j.intrinsic.jsonPrimitive.allows(this.unit)?{const:this.unit}:U.throwUnjsonifiableError(this.shortDescription)}traverseAllows=this.unit instanceof Date?e=>e instanceof Date&&e.toISOString()===this.compiledValue:Number.isNaN(this.unit)?e=>Number.isNaN(e):e=>e===this.unit};const Ps={implementation:Ms,Node:Ns},Fs=(e,t,n)=>{if(e instanceof Date){let e=`data instanceof Date && data.toISOString() === ${t}`;return n?`!(${e})`:e}return Number.isNaN(e)?`${n?`!`:``}Number.isNaN(data)`:`data ${n?`!`:`=`}== ${t}`},Is=I({kind:`index`,hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(e,t)=>{let n=t.$.parseSchema(e);if(!n.extends(j.intrinsic.key))return C(Bs(n.expression));let r=n.branches.filter(e=>e.hasKind(`unit`));return r.length?C(zs(r.map(e=>A(e.unit)))):n}},value:{child:!0,parse:(e,t)=>t.$.parseSchema(e)}},normalize:e=>e,defaults:{description:e=>`[${e.signature.expression}]: ${e.value.description}`},intersections:{index:(e,t,n)=>{if(e.signature.equals(t.signature)){let r=V(e.value,t.value,n),i=r instanceof z?j.intrinsic.never.internal:r;return n.$.node(`index`,{signature:e.signature,value:i})}return e.signature.extends(t.signature)&&e.value.subsumes(t.value)?t:t.signature.extends(e.signature)&&t.value.subsumes(e.value)?e:null}}});var Ls=class extends oa{impliedBasis=j.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=b(this.value.flatRefs.map(e=>R([this.signature,...e.path],e.node)),R([this.signature],this.value));traverseAllows=(e,t)=>Wn(e).every(e=>this.signature.traverseAllows(e[0],t)?L(e[0],()=>this.value.traverseAllows(e[1],t),t):!0);traverseApply=(e,t)=>Wn(e).forEach(e=>{this.signature.traverseAllows(e[0],t)&&L(e[0],()=>this.value.traverseApply(e[1],t),t)});_transform(e,t){t.path.push(this.signature);let n=super._transform(e,t);return t.path.pop(),n}compile(){}};const Rs={implementation:Is,Node:Ls},zs=e=>`Index keys ${e.join(`, `)} should be specified as named props.`,Bs=e=>`Indexed key definition '${e}' must be a string or symbol`,Vs=I({kind:`required`,hasAssociatedError:!0,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(e,t)=>t.$.parseSchema(e)}},normalize:e=>e,defaults:{description:e=>`${e.compiledKey}: ${e.value.description}`,expected:e=>e.missingValueDescription,actual:()=>`missing`},intersections:{required:Co,optional:Co}});var Hs=class extends wo{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:`required`,missingValueDescription:this.value.shortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=Li(this.errorContext)};const Us={implementation:Vs,Node:Hs},Ws=I({kind:`sequence`,hasAssociatedError:!1,collapsibleKey:`variadic`,keys:{prefix:{child:!0,parse:(e,t)=>{if(e.length!==0)return e.map(e=>t.$.parseSchema(e))}},optionals:{child:!0,parse:(e,t)=>{if(e.length!==0)return e.map(e=>t.$.parseSchema(e))}},defaultables:{child:e=>e.map(e=>e[0]),parse:(e,t)=>{if(e.length!==0)return e.map(e=>{let n=t.$.parseSchema(e[0]);return Mo(n,e[1],null),[n,e[1]]})},serialize:e=>e.map(e=>[e[0].collapsibleJson,Ii(e[1])])},variadic:{child:!0,parse:(e,t)=>t.$.parseSchema(e,t)},minVariadicLength:{parse:e=>e===0?void 0:e},postfix:{child:!0,parse:(e,t)=>{if(e.length!==0)return e.map(e=>t.$.parseSchema(e))}}},normalize:e=>{if(typeof e==`string`)return{variadic:e};if(`variadic`in e||`prefix`in e||`defaultables`in e||`optionals`in e||`postfix`in e||`minVariadicLength`in e){if(e.postfix?.length){if(!e.variadic)return C(Qs);if(e.optionals?.length||e.defaultables?.length)return C(Zs)}return e.minVariadicLength&&!e.variadic?C(`minVariadicLength may not be specified without a variadic element`):e}return{variadic:e}},reduce:(e,t)=>{let n=e.minVariadicLength??0,r=e.prefix?.slice()??[],i=e.defaultables?.slice()??[],a=e.optionals?.slice()??[],o=e.postfix?.slice()??[];if(e.variadic){for(;a.at(-1)?.equals(e.variadic);)a.pop();if(a.length===0&&i.length===0)for(;r.at(-1)?.equals(e.variadic);)r.pop(),n++;for(;o[0]?.equals(e.variadic);)o.shift(),n++}else a.length===0&&i.length===0&&r.push(...o.splice(0));if(n!==e.minVariadicLength||e.prefix&&e.prefix.length!==r.length)return t.node(`sequence`,{...e,prefix:r,defaultables:i,optionals:a,postfix:o,minVariadicLength:n},{prereduced:!0})},defaults:{description:e=>{if(e.isVariadicOnly)return`${e.variadic.nestableExpression}[]`;let t=e.tuple.map(e=>e.kind===`defaultables`?`${e.node.nestableExpression} = ${A(e.default)}`:e.kind===`optionals`?`${e.node.nestableExpression}?`:e.kind===`variadic`?`...${e.node.nestableExpression}[]`:e.node.expression).join(`, `);return`[${t}]`}},intersections:{sequence:(e,t,n)=>{let r=$s({l:e.tuple,r:t.tuple,disjoint:new z,result:[],fixedVariants:[],ctx:n}),i=r.disjoint.length===0?[r,...r.fixedVariants]:r.fixedVariants;return i.length===0?r.disjoint:i.length===1?n.$.node(`sequence`,Xs(i[0].result)):n.$.node(`union`,i.map(e=>({proto:Array,sequence:Xs(e.result)})))}}});var Gs=class extends oa{impliedBasis=j.intrinsic.Array.internal;tuple=Ys(this.inner);prefixLength=this.prefix?.length??0;defaultablesLength=this.defaultables?.length??0;optionalsLength=this.optionals?.length??0;postfixLength=this.postfix?.length??0;defaultablesAndOptionals=[];prevariadic=this.tuple.filter(e=>e.kind===`defaultables`||e.kind===`optionals`?(this.defaultablesAndOptionals.push(e.node),!0):e.kind===`prefix`);variadicOrPostfix=wn(this.variadic&&[this.variadic],this.postfix);flatRefs=this.addFlatRefs();addFlatRefs(){return Yi(this.flatRefs,this.prevariadic.flatMap((e,t)=>b(e.node.flatRefs.map(e=>R([`${t}`,...e.path],e.node)),R([`${t}`],e.node)))),Yi(this.flatRefs,this.variadicOrPostfix.flatMap(e=>b(e.flatRefs.map(e=>R([j.intrinsic.nonNegativeIntegerString.internal,...e.path],e.node)),R([j.intrinsic.nonNegativeIntegerString.internal],e)))),this.flatRefs}isVariadicOnly=this.prevariadic.length+this.postfixLength===0;minVariadicLength=this.inner.minVariadicLength??0;minLength=this.prefixLength+this.minVariadicLength+this.postfixLength;minLengthNode=this.minLength===0?null:this.$.node(`minLength`,this.minLength);maxLength=this.variadic?null:this.tuple.length;maxLengthNode=this.maxLength===null?null:this.$.node(`maxLength`,this.maxLength);impliedSiblings=this.minLengthNode?this.maxLengthNode?[this.minLengthNode,this.maxLengthNode]:[this.minLengthNode]:this.maxLengthNode?[this.maxLengthNode]:[];defaultValueMorphs=qs(this);defaultValueMorphsReference=this.defaultValueMorphs.length?M(this.defaultValueMorphs):void 0;elementAtIndex(e,t){if(t<this.prevariadic.length)return this.tuple[t];let n=e.length-this.postfixLength;return t>=n?{kind:`postfix`,node:this.postfix[t-n]}:{kind:`variadic`,node:this.variadic??S(`Unexpected attempt to access index ${t} on ${this}`)}}traverseAllows=(e,t)=>{for(let n=0;n<e.length;n++)if(!this.elementAtIndex(e,n).node.traverseAllows(e[n],t))return!1;return!0};traverseApply=(e,t)=>{let n=0;for(;n<e.length;n++)L(n,()=>this.elementAtIndex(e,n).node.traverseApply(e[n],t),t)};get element(){return this.cacheGetter(`element`,this.$.node(`union`,this.children))}compile(e){this.prefix?.forEach((t,n)=>e.traverseKey(`${n}`,`data[${n}]`,t)),this.defaultablesAndOptionals.forEach((t,n)=>{let r=`${n+this.prefixLength}`;e.if(`${r} >= ${e.data}.length`,()=>e.traversalKind===`Allows`?e.return(!0):e.return()),e.traverseKey(r,`data[${r}]`,t)}),this.variadic&&(this.postfix&&e.const(`firstPostfixIndex`,`${e.data}.length${this.postfix?`- ${this.postfix.length}`:``}`),e.for(`i < ${this.postfix?`firstPostfixIndex`:`data.length`}`,()=>e.traverseKey(`i`,`data[i]`,this.variadic),this.prevariadic.length),this.postfix?.forEach((t,n)=>{let r=`firstPostfixIndex + ${n}`;e.traverseKey(r,`data[${r}]`,t)})),e.traversalKind===`Allows`&&e.return(!0)}_transform(e,t){t.path.push(j.intrinsic.nonNegativeIntegerString.internal);let n=super._transform(e,t);return t.path.pop(),n}expression=this.description;reduceJsonSchema(e){return this.prefix&&(e.prefixItems=this.prefix.map(e=>e.toJsonSchema())),this.optionals?U.throwUnjsonifiableError(`Optional tuple element${this.optionalsLength>1?`s`:``} ${this.optionals.join(`, `)}`):(this.variadic?(e.items=this.variadic?.toJsonSchema(),this.minLength&&(e.minItems=this.minLength),this.maxLength&&(e.maxItems=this.maxLength)):(e.items=!1,delete e.minItems,delete e.maxItems),this.postfix?U.throwUnjsonifiableError(`Postfix tuple element${this.postfixLength>1?`s`:``} ${this.postfix.join(`, `)}`):e)}};const Ks={},qs=e=>{if(!e.defaultables)return[];let t=[],n=`[`,r=e.prefixLength+e.defaultablesLength-1;for(let i=e.prefixLength;i<=r;i++){let[r,a]=e.defaultables[i-e.prefixLength];t.push(jo(i,r,a)),n+=`${i}: ${r.id} = ${Ii(a)}, `}return n+=`]`,Ks[n]??=t},Js={implementation:Ws,Node:Gs},Ys=e=>{let t=[];return e.prefix?.forEach(e=>t.push({kind:`prefix`,node:e})),e.defaultables?.forEach(([e,n])=>t.push({kind:`defaultables`,node:e,default:n})),e.optionals?.forEach(e=>t.push({kind:`optionals`,node:e})),e.variadic&&t.push({kind:`variadic`,node:e.variadic}),e.postfix?.forEach(e=>t.push({kind:`postfix`,node:e})),t},Xs=e=>e.reduce((e,t)=>(t.kind===`variadic`?e.variadic=t.node:t.kind===`defaultables`?e.defaultables=b(e.defaultables,[[t.node,t.default]]):e[t.kind]=b(e[t.kind],t.node),e),{}),Zs=`A postfix required element cannot follow an optional or defaultable element`,Qs=`A postfix element requires a variadic element`,$s=e=>{let[t,...n]=e.l,[r,...i]=e.r;if(!t||!r)return e;let a=n.at(-1)?.kind===`postfix`,o=i.at(-1)?.kind===`postfix`,s=t.kind===`prefix`||r.kind===`prefix`?`prefix`:t.kind===`postfix`||r.kind===`postfix`?`postfix`:t.kind===`variadic`&&r.kind===`variadic`?`variadic`:a||o?`prefix`:t.kind===`defaultables`||r.kind===`defaultables`?`defaultables`:`optionals`;if(t.kind===`prefix`&&r.kind===`variadic`&&o){let t=$s({...e,fixedVariants:[],r:i.map(e=>({...e,kind:`prefix`}))});t.disjoint.length===0&&e.fixedVariants.push(t)}else if(r.kind===`prefix`&&t.kind===`variadic`&&a){let t=$s({...e,fixedVariants:[],l:n.map(e=>({...e,kind:`prefix`}))});t.disjoint.length===0&&e.fixedVariants.push(t)}let c=V(t.node,r.node,e.ctx);if(c instanceof z)if(s===`prefix`||s===`postfix`)e.disjoint.push(...c.withPrefixKey(s===`prefix`?e.result.length:`-${n.length+1}`,`required`)),e.result=[...e.result,{kind:s,node:j.intrinsic.never.internal}];else if(s===`optionals`||s===`defaultables`)return e;else return $s({...e,fixedVariants:[],l:n.map(e=>({...e,kind:`prefix`})),r:n.map(e=>({...e,kind:`prefix`}))});else s===`defaultables`?(t.kind===`defaultables`&&r.kind===`defaultables`&&t.default!==r.default&&C(To(t.default,r.default)),e.result=[...e.result,{kind:s,node:c,default:t.kind===`defaultables`?t.default:r.kind===`defaultables`?r.default:S(`Unexpected defaultable intersection from ${t.kind} and ${r.kind} elements.`)}]):e.result=[...e.result,{kind:s,node:c}];let l=e.l.length,u=e.r.length;return(t.kind!==`variadic`||l>=u&&(r.kind===`variadic`||u===1))&&(e.l=n),(r.kind!==`variadic`||u>=l&&(t.kind===`variadic`||l===1))&&(e.r=i),$s(e)},ec=e=>t=>{if(t.props.length||t.index){let n=t.index?.map(t=>t[e])??[];t.props.forEach(t=>n.push(t[e])),t.undeclared&&n.push(`+ (undeclared): ${t.undeclared}`);let r=`{ ${n.join(`, `)} }`;return t.sequence?`${r} & ${t.sequence.description}`:r}return t.sequence?.description??`{}`},tc=ec(`description`),nc=ec(`expression`),rc=I({kind:`structure`,hasAssociatedError:!1,normalize:e=>e,applyConfig:(e,t)=>!e.undeclared&&t.onUndeclaredKey!==`ignore`?{...e,undeclared:t.onUndeclaredKey}:e,keys:{required:{child:!0,parse:H(`required`),reduceIo:(e,t,n)=>{t.required=b(t.required,n.map(t=>t[e]))}},optional:{child:!0,parse:H(`optional`),reduceIo:(e,t,n)=>{if(e===`in`){t.optional=n.map(e=>e.in);return}n.forEach(e=>t[e.outProp.kind]=b(t[e.outProp.kind],e.outProp.out))}},index:{child:!0,parse:H(`index`)},sequence:{child:!0,parse:H(`sequence`)},undeclared:{parse:e=>e===`ignore`?void 0:e,reduceIo:(e,t,n)=>{n===`delete`&&(e===`in`?delete t.undeclared:t.undeclared=`reject`)}}},defaults:{description:tc},intersections:{structure:(e,t,n)=>{let r={...e.inner},i={...t.inner},a=new z;if(e.undeclared){let r=e.keyof();t.requiredKeys.forEach(e=>{r.allows(e)||a.add(`presence`,j.intrinsic.never.internal,t.propsByKey[e].value,{path:[e]})}),i.optional&&(i.optional=i.optional.filter(e=>r.allows(e.key))),i.index&&(i.index=i.index.flatMap(e=>{if(e.signature.extends(r))return e;let t=B(r,e.signature,n.$);if(t instanceof z)return[];let a=fc(t,e.value,n.$);return a.required&&(i.required=wn(i.required,a.required)),a.optional&&(i.optional=wn(i.optional,a.optional)),a.index??[]}))}if(t.undeclared){let i=t.keyof();e.requiredKeys.forEach(t=>{i.allows(t)||a.add(`presence`,e.propsByKey[t].value,j.intrinsic.never.internal,{path:[t]})}),r.optional&&(r.optional=r.optional.filter(e=>i.allows(e.key))),r.index&&(r.index=r.index.flatMap(e=>{if(e.signature.extends(i))return e;let t=B(i,e.signature,n.$);if(t instanceof z)return[];let a=fc(t,e.value,n.$);return a.required&&(r.required=wn(r.required,a.required)),a.optional&&(r.optional=wn(r.optional,a.optional)),a.index??[]}))}let o={};(e.undeclared||t.undeclared)&&(o.undeclared=e.undeclared===`reject`||t.undeclared===`reject`?`reject`:`delete`);let s=ca({kind:`structure`,baseInner:o,l:la(r),r:la(i),roots:[],ctx:n});return s instanceof z&&a.push(...s),a.length?a:s}}});var ic=class extends oa{impliedBasis=j.intrinsic.object.internal;impliedSiblings=this.children.flatMap(e=>e.impliedSiblings??[]);props=wn(this.required,this.optional);propsByKey=w(this.props,(e,t)=>[t.key,t]);propsByKeyReference=M(this.propsByKey);expression=nc(this);requiredKeys=this.required?.map(e=>e.key)??[];optionalKeys=this.optional?.map(e=>e.key)??[];literalKeys=[...this.requiredKeys,...this.optionalKeys];_keyof;keyof(){if(this._keyof)return this._keyof;let e=this.$.units(this.literalKeys).branches;return this.index?.forEach(({signature:t})=>{e=e.concat(t.branches)}),this._keyof=this.$.node(`union`,e)}map(e){return this.$.node(`structure`,this.props.flatMap(e).reduce((e,t)=>{let n=this.propsByKey[t.key];if(F(t))return t.kind!==`required`&&t.kind!==`optional`?C(`Map result must have kind "required" or "optional" (was ${t.kind})`):(e[t.kind]=b(e[t.kind],t),e);let r=t.kind??n?.kind??`required`,i=w(t,(e,t)=>e in Oo.implementation.keys?[e,t]:[]);return e[r]=b(e[r],this.$.node(r,i)),e},{}))}assertHasKeys(e){let t=e.filter(e=>!Lo(e,this.keyof()));if(t.length)return C(mc(this.expression,t))}get(e,...t){let n,r=!1,i=uc(e);if((typeof i==`string`||typeof i==`symbol`)&&this.propsByKey[i]&&(n=this.propsByKey[i].value,r=this.propsByKey[i].required),this.index?.forEach(e=>{Lo(i,e.signature)&&(n=n?.and(e.value)??e.value)}),this.sequence&&Lo(i,j.intrinsic.nonNegativeIntegerString))if(P(i,`root`))this.sequence.variadic&&(n=n?.and(this.sequence.element)??this.sequence.element);else{let e=Number.parseInt(i);if(e<this.sequence.prevariadic.length){let t=this.sequence.prevariadic[e].node;n=n?.and(t)??t,r||=e<this.sequence.prefixLength}else if(this.sequence.variadic){let e=this.$.node(`union`,this.sequence.variadicOrPostfix);n=n?.and(e)??e}}if(!n)return this.sequence?.variadic&&P(i,`root`)&&i.extends(j.intrinsic.number)?C(dc(i.expression,this.sequence.expression)):C(mc(this.expression,[i]));let a=n.get(...t);return r?a:a.or(j.intrinsic.undefined)}pick(...e){return this.assertHasKeys(e),this.$.node(`structure`,this.filterKeys(`pick`,e))}omit(...e){return this.assertHasKeys(e),this.$.node(`structure`,this.filterKeys(`omit`,e))}optionalize(){let{required:e,...t}=this.inner;return this.$.node(`structure`,{...t,optional:this.props.map(e=>e.hasKind(`required`)?this.$.node(`optional`,e.inner):e)})}require(){let{optional:e,...t}=this.inner;return this.$.node(`structure`,{...t,required:this.props.map(e=>e.hasKind(`optional`)?{key:e.key,value:e.value}:e)})}merge(e){let t=this.filterKeys(`omit`,[e.keyof()]);return e.required&&(t.required=b(t.required,e.required)),e.optional&&(t.optional=b(t.optional,e.optional)),e.index&&(t.index=b(t.index,e.index)),e.sequence&&(t.sequence=e.sequence),e.undeclared?t.undeclared=e.undeclared:delete t.undeclared,this.$.node(`structure`,t)}filterKeys(e,t){let n=Ci(this.inner),r=n=>{let r=t.some(e=>Lo(n,e));return e===`pick`?r:!r};return n.required&&(n.required=n.required.filter(e=>r(e.key))),n.optional&&(n.optional=n.optional.filter(e=>r(e.key))),n.index&&(n.index=n.index.filter(e=>r(e.signature))),n}traverseAllows=(e,t)=>this._traverse(`Allows`,e,t);traverseApply=(e,t)=>this._traverse(`Apply`,e,t);_traverse=(e,t,n)=>{let r=n?.currentErrorCount??0;for(let i=0;i<this.props.length;i++)if(e===`Allows`){if(!this.props[i].traverseAllows(t,n))return!1}else if(this.props[i].traverseApply(t,n),n.failFast&&n.currentErrorCount>r)return!1;if(this.sequence){if(e===`Allows`){if(!this.sequence.traverseAllows(t,n))return!1}else if(this.sequence.traverseApply(t,n),n.failFast&&n.currentErrorCount>r)return!1}if(this.index||this.undeclared===`reject`){let i=Object.keys(t);i.push(...Object.getOwnPropertySymbols(t));for(let a=0;a<i.length;a++){let o=i[a];if(this.index){for(let i of this.index)if(i.signature.traverseAllows(o,n)){if(e===`Allows`){let e=L(o,()=>i.value.traverseAllows(t[o],n),n);if(!e)return!1}else if(L(o,()=>i.value.traverseApply(t[o],n),n),n.failFast&&n.currentErrorCount>r)return!1}}if(this.undeclared===`reject`&&!this.declaresKey(o)&&(e===`Allows`||(n.errorFromNodeContext({code:`predicate`,expected:`removed`,actual:``,relativePath:[o],meta:this.meta}),n.failFast)))return!1}}return this.structuralMorph&&n&&!n.hasError()&&n.queueMorphs([this.structuralMorph]),!0};get defaultable(){return this.cacheGetter(`defaultable`,this.optional?.filter(e=>e.hasDefault())??[])}declaresKey=e=>e in this.propsByKey||this.index?.some(t=>t.signature.allows(e))||this.sequence!==void 0&&j.intrinsic.nonNegativeIntegerString.allows(e);_compileDeclaresKey(e){let t=[];return this.props.length&&t.push(`k in ${this.propsByKeyReference}`),this.index?.forEach(n=>t.push(e.invoke(n.signature,{kind:`Allows`,arg:`k`}))),this.sequence&&t.push(`$ark.intrinsic.nonNegativeIntegerString.allows(k)`),t.join(` || `)||`false`}get structuralMorph(){return this.cacheGetter(`structuralMorph`,sc(this))}structuralMorphRef=this.structuralMorph&&M(this.structuralMorph);compile(e){if(e.traversalKind===`Apply`&&e.initializeErrorCount(),this.props.forEach(t=>{e.check(t),e.traversalKind===`Apply`&&e.returnIfFailFast()}),this.sequence&&(e.check(this.sequence),e.traversalKind===`Apply`&&e.returnIfFailFast()),(this.index||this.undeclared===`reject`)&&(e.const(`keys`,`Object.keys(data)`),e.line(`keys.push(...Object.getOwnPropertySymbols(data))`),e.for(`i < keys.length`,()=>this.compileExhaustiveEntry(e))),e.traversalKind===`Allows`)return e.return(!0);this.structuralMorphRef&&e.if(`ctx && !ctx.hasError()`,()=>(e.line(`ctx.queueMorphs([`),cc(e,this),e.line(`])`)))}compileExhaustiveEntry(e){return e.const(`k`,`keys[i]`),this.index?.forEach(t=>{e.if(`${e.invoke(t.signature,{arg:`k`,kind:`Allows`})}`,()=>e.traverseKey(`k`,`data[k]`,t.value))}),this.undeclared===`reject`&&e.if(`!(${this._compileDeclaresKey(e)})`,()=>e.traversalKind===`Allows`?e.return(!1):e.line(`ctx.errorFromNodeContext({ code: "predicate", expected: "removed", actual: "", relativePath: [k], meta: ${this.compiledMeta} })`).if(`ctx.failFast`,()=>e.return())),e}reduceJsonSchema(e){switch(e.type){case`object`:return this.reduceObjectJsonSchema(e);case`array`:return this.props.length||this.index?U.throwUnjsonifiableError(`Additional properties on array ${this.expression}`):this.sequence?.reduceJsonSchema(e)??e;default:return U.throwInternalOperandError(`structure`,e)}}reduceObjectJsonSchema(e){return this.props.length&&(e.properties={},this.props.forEach(t=>{if(typeof t.key==`symbol`)return U.throwUnjsonifiableError(`Symbolic key ${t.serializedKey}`);e.properties[t.key]=t.value.toJsonSchema()}),this.requiredKeys.length&&(e.required=this.requiredKeys)),this.index?.forEach(t=>{if(t.signature.equals(j.intrinsic.string))return e.additionalProperties=t.value.toJsonSchema();if(!t.signature.extends(j.intrinsic.string))return U.throwUnjsonifiableError(`Symbolic index signature ${t.signature.exclude(j.intrinsic.string)}`);t.signature.branches.forEach(n=>{if(!n.hasKind(`intersection`)||n.inner.pattern?.length!==1)return U.throwUnjsonifiableError(`Index signature ${n}`);e.patternProperties??={},e.patternProperties[n.inner.pattern[0].rule]=t.value.toJsonSchema()})}),this.undeclared&&!e.additionalProperties&&(e.additionalProperties=!1),e}};const ac={},oc=e=>{let t=``;for(let n=0;n<e.defaultable.length;n++)t+=e.defaultable[n].defaultValueMorphRef;return e.sequence?.defaultValueMorphsReference&&(t+=e.sequence?.defaultValueMorphsReference),e.undeclared===`delete`&&(t+=`delete !(`,e.required?.forEach(e=>t+=e.compiledKey+` | `),e.optional?.forEach(e=>t+=e.compiledKey+` | `),e.index?.forEach(e=>t+=e.signature.id+` | `),e.sequence&&(e.sequence.maxLength===null?t+=q.nonNegativeIntegerString.id:t+=e.sequence.tuple.forEach((e,n)=>t+=n+` | `)),t+=`)`),t},sc=e=>{let t=oc(e);if(!t)return;if(ac[t])return ac[t];let n=(t,n)=>{for(let r=0;r<e.defaultable.length;r++)e.defaultable[r].key in t||e.defaultable[r].defaultValueMorph(t,n);if(e.sequence?.defaultables)for(let r=t.length-e.sequence.prefixLength;r<e.sequence.defaultables.length;r++)e.sequence.defaultValueMorphs[r](t,n);if(e.undeclared===`delete`)for(let n in t)e.declaresKey(n)||delete t[n];return t};return ac[t]=n},cc=(e,t)=>{let n=t.defaultable.some(e=>e.defaultValueMorph.length===2)||t.sequence?.defaultValueMorphs.some(e=>e.length===2),r=`(data${n?`, ctx`:``})`;return e.block(`${r} => `,e=>{for(let n=0;n<t.defaultable.length;n++){let{serializedKey:i,defaultValueMorphRef:a}=t.defaultable[n];e.if(`!(${i} in data)`,e=>e.line(`${a}${r}`))}return t.sequence?.defaultables&&e.for(`i < ${t.sequence.defaultables.length}`,e=>e.set(`data[i]`,5),`data.length - ${t.sequence.prefixLength}`),t.undeclared===`delete`&&e.forIn(`data`,e=>e.if(`!(${t._compileDeclaresKey(e)})`,e=>e.line(`delete data[k]`))),e.return(`data`)})},lc={implementation:rc,Node:ic},uc=e=>(P(e,`root`)&&e.hasKind(`unit`)&&(e=e.unit),typeof e==`number`&&(e=`${e}`),e),dc=(e,t)=>`${e} is not allowed as an array index on ${t}. Use the 'nonNegativeIntegerString' keyword instead.`,fc=(e,t,n)=>{let[r,i]=bn(e.branches,e=>e.hasKind(`unit`));if(!r.length)return{index:n.node(`index`,{signature:e,value:t})};let a={};return r.forEach(e=>{let r=n.node(`required`,{key:e.unit,value:t});a[r.kind]=b(a[r.kind],r)}),i.length&&(a.index=n.node(`index`,{signature:i,value:t})),a},pc=e=>P(e,`root`)?e.expression:A(e),mc=(e,t)=>`Key${t.length===1?``:`s`} ${t.map(pc).join(`, `)} ${t.length===1?`does`:`do`} not exist on ${e}`,hc={...oo,alias:qo.implementation,domain:Zo.implementation,unit:Ps.implementation,proto:ds.implementation,union:xs.implementation,morph:ss.implementation,intersection:es.implementation,divisor:wa.implementation,pattern:uo.implementation,predicate:xa.implementation,required:Us.implementation,optional:Oo.implementation,index:Rs.implementation,sequence:Js.implementation,structure:lc.implementation};j.defaultConfig=Kn(Object.assign(w(hc,(e,t)=>[e,t.defaults]),{jitless:hr(),clone:cr,onUndeclaredKey:`ignore`,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{}})),j.resolvedConfig=Ri(j.defaultConfig,j.config);const gc={...so,alias:qo.Node,domain:Zo.Node,unit:Ps.Node,proto:ds.Node,union:xs.Node,morph:ss.Node,intersection:es.Node,divisor:wa.Node,pattern:uo.Node,predicate:xa.Node,required:Us.Node,optional:Oo.Node,index:Rs.Node,sequence:Js.Node,structure:lc.Node};var _c=class extends Rn{get[N](){return`module`}};const vc=(e,t)=>new _c(w(e,(e,n)=>[e,P(n,`module`)?vc(n,t):t.bindReference(n)])),yc=e=>D(e)?e:`branches`in e&&D(e.branches)?e.branches:void 0,bc=(e,t)=>C(`Node of kind ${t} is not valid as a ${e} definition`),xc=e=>`#${e} duplicates public alias ${e}`,Sc={};j.ambient??={};let Cc;const wc=e=>Tc(e,Dc(e)),Tc=(e,t)=>{let n=Ec(t);for(let r of e){if(r.precompilation)continue;r.traverseAllows=n[`${r.id}Allows`].bind(n),r.isRoot()&&!r.allowsRequiresContext&&(r.allows=r.traverseAllows),r.traverseApply=n[`${r.id}Apply`].bind(n),n[`${r.id}Optimistic`]&&(r.traverseOptimistic=n[`${r.id}Optimistic`].bind(n)),r.precompilation=t}},Ec=e=>new _i().return(e).compile()(),Dc=e=>e.reduce((e,t)=>{let n=new Si({kind:`Allows`}).indent();t.compile(n);let r=n.write(`${t.id}Allows`),i=new Si({kind:`Apply`}).indent();t.compile(i);let a=i.write(`${t.id}Apply`),o=`${e}${r},\n${a},\n`;if(!t.hasKind(`union`))return o;let s=new Si({kind:`Allows`,optimistic:!0}).indent();t.compile(s);let c=s.write(`${t.id}Optimistic`);return`${o}${c},\n`},`{
30
- `)+`}`;var Oc=class{config;resolvedConfig;name;get[N](){return`scope`}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};constructor(e,t){this.config=Ri(j.config,t),this.resolvedConfig=Ri(j.resolvedConfig,t),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(Sc).length}`,this.name in Sc&&C(`A Scope already named ${this.name} already exists`),Sc[this.name]=this;let n=Object.entries(e).map(e=>this.preparseOwnAliasEntry(...e));n.forEach(([e,t])=>{let n=e;if(e[0]===`#`?(n=e.slice(1),n in this.aliases&&C(xc(n)),this.aliases[n]=t):(n in this.aliases&&C(xc(e)),this.aliases[n]=t,this.exportedNames.push(n)),!P(t,`module`)&&!P(t,`generic`)&&!dr(t)){let e=this.preparseOwnDefinitionFormat(t,{alias:n});P(e,`root`)?this.resolutions[n]=this.bindReference(e):this.resolutions[n]=this.createParseContext(e).id}}),Cc??=this.node(`union`,{branches:[`string`,`number`,`object`,`bigint`,`symbol`,{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[Cc.hash]=this.node(`intersection`,{},{prereduced:!0})}cacheGetter(e,t){return Object.defineProperty(this,e,{value:t}),t}get internal(){return this}_json;get json(){return this._json||this.export(),this._json}defineSchema(e){return e}generic=(...e)=>{let t=this;return(n,r)=>new ha(e,r?new ma(n):n,t,t,r??null)};units=(e,t)=>{let n=[];for(let t of e)n.includes(t)||n.push(t);let r=n.map(e=>this.node(`unit`,{unit:e},t));return this.node(`union`,r,{...t,prereduced:!0})};lazyResolutions=[];lazilyResolve(e,t){let n=this.node(`alias`,{reference:t??`synthetic`,resolve:e},{prereduced:!0});return this.resolved||this.lazyResolutions.push(n),n}schema=(e,t)=>this.finalize(this.parseSchema(e,t));parseSchema=(e,t)=>this.node(fo(e),e,t);preparseNode(e,t,n){let r=typeof e==`string`?e:fo(t,e);if(F(t)&&t.kind===r)return t;if(r===`alias`&&!n?.prereduced){let{reference:e}=qo.implementation.normalize(t,this);if(e.startsWith(`$`)){let n=this.resolveRoot(e.slice(1));t=n,r=n.kind}}else if(r===`union`&&kn(t,`object`)){let e=yc(t);e?.length===1&&(t=e[0],r=fo(t))}if(F(t)&&t.kind===r)return t;let i=hc[r],a=i.normalize?.(t,this)??t;return F(a)?a.kind===r?a:bc(r,a.kind):{...n,$:this,kind:r,def:a,prefix:n.alias??r}}bindReference(e){let t;return t=F(e)?e.$===this?e:new e.constructor(e.attachments,this):e.$===this?e:new ha(e.params,e.bodyDef,e.$,this,e.hkt),this.resolved||Object.assign(this.referencesById,t.referencesById),t}resolveRoot(e){return this.maybeResolveRoot(e)??C(Ic(e))}maybeResolveRoot(e){let t=this.maybeResolve(e);if(!P(t,`generic`))return t}maybeResolveSubalias(e){return Mc(this.aliases,e)??Mc(this.ambient,e)}get ambient(){return j.ambient}maybeResolve(e){let t=this.resolutions[e];if(t){if(typeof t!=`string`)return this.bindReference(t);let n=W[t];if(P(n,`root`))return this.resolutions[e]=n;if(P(n,`context`)){if(n.phase===`resolving`)return this.node(`alias`,{reference:`$${e}`},{prereduced:!0});if(n.phase===`resolved`)return S(`Unexpected resolved context for was uncached by its scope: ${A(n)}`);n.phase=`resolving`;let t=this.bindReference(this.parseOwnDefinitionFormat(n.def,n));return n.phase=`resolved`,W[t.id]=t,W[n.id]=t,this.resolutions[e]=t}return S(`Unexpected nodesById entry for ${t}: ${A(n)}`)}let n=this.aliases[e]??this.ambient?.[e];return n?(n=this.normalizeRootScopeValue(n),P(n,`generic`)?this.resolutions[e]=this.bindReference(n):P(n,`module`)?n.root?this.resolutions[e]=this.bindReference(n.root):C(Rc(e)):this.resolutions[e]=this.parse(n,{alias:e})):this.maybeResolveSubalias(e)}createParseContext(e){let t=e.id??_o(e.prefix);return W[t]=Object.assign(e,{[N]:`context`,$:this,id:t,phase:`unresolved`})}traversal(e){return new Ui(e,this.resolvedConfig)}import(...e){return new _c(w(this.export(...e),(e,t)=>[`#${e}`,t]))}precompilation;_exportedResolutions;_exports;export(...e){if(!this._exports){this._exports={};for(let e of this.exportedNames){let t=this.aliases[e];this._exports[e]=P(t,`module`)?vc(t,this):Ac(this.maybeResolve(e))}this.lazyResolutions.forEach(e=>e.resolution),this._exportedResolutions=Fc(this,this._exports),this._json=jc(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),this.resolvedConfig.jitless||(this.precompilation=Dc(this.references),Tc(this.references,this.precompilation)),this.resolved=!0}let t=e.length?e:this.exportedNames;return new _c(w(t,(e,t)=>[t,this._exports[t]]))}resolve(e){return this.export()[e]}node=(e,t,n={})=>{let r=this.preparseNode(e,t,n);if(F(r))return this.bindReference(r);let i=this.createParseContext(r),a=vo(i),o=this.bindReference(a);return W[i.id]=o};parse=(e,t={})=>this.finalize(this.parseDefinition(e,t));parseDefinition(e,t={}){if(P(e,`root`))return this.bindReference(e);let n=this.preparseOwnDefinitionFormat(e,t);if(P(n,`root`))return this.bindReference(n);let r=this.createParseContext(n);W[r.id]=r;let i=this.bindReference(this.parseOwnDefinitionFormat(e,r));return i.isCyclic&&(i=bo(i,r.id)),W[r.id]=i,i}finalize(e){return Ac(e),!e.precompilation&&!this.resolvedConfig.jitless&&wc(e.references),e}},kc=class extends Oc{parseOwnDefinitionFormat(e,t){return vo(t)}preparseOwnDefinitionFormat(e,t){return this.preparseNode(fo(e),e,t)}preparseOwnAliasEntry(e,t){return[e,t]}normalizeRootScopeValue(e){return e}};const Ac=e=>(e.references.filter(e=>e.hasKind(`alias`)).forEach(t=>{Object.assign(t.referencesById,t.resolution.referencesById),e.references.forEach(e=>{t.id in e.referencesById&&Object.assign(e.referencesById,t.referencesById)})}),e),jc=e=>w(e,(e,t)=>[e,P(t,`root`)||P(t,`generic`)?t.json:P(t,`module`)?jc(t):S(`Unexpected resolution ${A(t)}`)]),Mc=(e,t)=>{let n=t.indexOf(`.`);if(n===-1)return;let r=t.slice(0,n),i=e[r];if(i===void 0)return;if(!P(i,`module`))return C(Lc(r));let a=t.slice(n+1),o=i[a];if(o===void 0)return Mc(i,a);if(P(o,`root`)||P(o,`generic`))return o;if(P(o,`module`))return o.root??C(Rc(t));S(`Unexpected resolution for alias '${t}': ${A(o)}`)},Nc=(e,t)=>new kc(e,t),Pc=new kc({}),Fc=(e,t)=>{let n={};for(let r in t){let i=t[r];if(P(i,`module`)){let t=Fc(e,i),a=w(t,(e,t)=>[`${r}.${e}`,t]);Object.assign(n,a)}else P(i,`root`)||P(i,`generic`)?n[r]=i:S(`Unexpected scope resolution ${A(i)}`)}return n},Ic=e=>`'${e}' is unresolvable`,Lc=e=>`'${e}' must reference a module to be accessed using dot syntax`,Rc=e=>`Reference to submodule '${e}' must specify an alias`;Pc.export();const G=Pc.schema,zc=Pc.node;Pc.defineSchema;const K=Pc.generic,Bc=`^(?:0|[1-9]\\d*)$`,Vc=new RegExp(Bc);M(Vc);const Hc=Nc({bigint:`bigint`,boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:`number`,object:`object`,string:`string`,symbol:`symbol`,true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();j.intrinsic={...Hc};const Uc=Nc({integer:{domain:`number`,divisor:1},lengthBoundable:[`string`,Array],key:[`string`,`symbol`],nonNegativeIntegerString:{domain:`string`,pattern:Bc}},{prereducedAliases:!0}).export();Object.assign(j.intrinsic,Uc);const Wc=Nc({jsonPrimitive:[`string`,`number`,{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:`object`,index:{signature:`string`,value:`$jsonData`}},jsonData:[`$jsonPrimitive`,`$jsonObject`]},{prereducedAliases:!0}).export(),q={...Hc,...Uc,...Wc,emptyStructure:zc(`structure`,{},{prereduced:!0})};j.intrinsic={...q};const Gc=e=>typeof e==`string`&&e[0]===`d`&&(e[1]===`'`||e[1]===`"`)&&e.at(-1)===e[1],Kc=e=>e.toString()!==`Invalid Date`,qc=e=>e.slice(2,-1),Jc=e=>`'${e}' could not be parsed by the Date constructor`,Yc=(e,t)=>Xc(e,t),Xc=(e,t)=>{let n=new Date(e);if(Kc(n))return n;let r=Br(e);if(r!==void 0){let e=new Date(r);if(Kc(e))return e}return t?C(t===!0?Jc(e):t):void 0},Zc=(e,t)=>{let n=e.scanner.shiftUntil(tl[el[t]]);if(e.scanner.lookahead===``)return e.error(rl(n,t));if(e.scanner.shift(),t===`/`){try{new RegExp(n)}catch(e){C(String(e))}e.root=e.ctx.$.node(`intersection`,{domain:`string`,pattern:n},{prereduced:!0})}else if(T(t,Qc))e.root=e.ctx.$.node(`unit`,{unit:n});else{let t=Yc(n,Jc(n));e.root=e.ctx.$.node(`unit`,{meta:n,unit:t})}},Qc={"'":1,'"':1},$c={"/":1,"'":1,'"':1},el={"d'":`'`,'d"':`"`,"'":`'`,'"':`"`,"/":`/`},tl={"'":e=>e.lookahead===`'`,'"':e=>e.lookahead===`"`,"/":e=>e.lookahead===`/`},nl={'"':`double-quote`,"'":`single-quote`,"/":`forward slash`},rl=(e,t)=>`${t}${e} requires a closing ${nl[el[t]]}`,il=e=>`Private type references should not include '#'. Use '${e}' instead.`,al=`Optional definitions like 'string?' are only valid as properties in an object or tuple`,ol=`Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple`,sl={">":!0,">=":!0},cl={"<":!0,"<=":!0},ll={"<":`>`,">":`<`,"<=":`>=`,">=":`<=`,"==":`==`},ul=e=>`Unmatched )${e===``?``:` before ${e}`}`,dl=e=>`Missing ${e}`,fl=(e,t)=>`Left bounds are only valid when paired with right bounds (try ...${t}${e})`,pl=e=>`Left-bounded expressions must specify their limits using < or <= (was ${e})`,ml=(e,t,n,r)=>`An expression may have at most one left bound (parsed ${e}${ll[t]}, ${n}${ll[r]})`,hl=(e,t,n)=>gl(e,t,n,[]),gl=(e,t,n,r)=>{let i=n.parseUntilFinalizer();return r.push(i.root),i.finalizer===`>`?r.length===t.params.length?r:n.error(_l(e,t.names,r.map(e=>e.expression))):i.finalizer===`,`?gl(e,t,n,r):i.error(dl(`>`))},_l=(e,t,n)=>`${e}<${t.join(`, `)}> requires exactly ${t.length} args (got ${n.length}${n.length===0?``:`: ${n.join(`, `)}`})`,vl=e=>{let t=e.scanner.shiftUntilNextTerminator();t===`keyof`?e.addPrefix(`keyof`):e.root=bl(e,t)},yl=(e,t,n)=>{n.scanner.shiftUntilNonWhitespace();let r=n.scanner.shift();if(r!==`<`)return n.error(_l(e,t.names,[]));let i=hl(e,t,n);return t(...i)},bl=(e,t)=>xl(e,t)??Sl(e,t)??e.error(t===``?e.scanner.lookahead===`#`?il(e.shiftedByOne().scanner.shiftUntilNextTerminator()):Cl(e):Ic(t)),xl=(e,t)=>{if(e.ctx.args?.[t]){let n=e.ctx.args[t];return typeof n==`string`?e.ctx.$.node(`alias`,{reference:n},{prereduced:!0}):n}let n=e.ctx.$.maybeResolve(t);if(P(n,`root`))return n;if(n!==void 0)return P(n,`generic`)?yl(t,n,e):C(`Unexpected resolution ${A(n)}`)},Sl=(e,t)=>{let n=Vr(t);if(n!==void 0)return e.ctx.$.node(`unit`,{unit:n});let r=Wr(t);if(r!==void 0)return e.ctx.$.node(`unit`,{unit:r})},Cl=e=>{let t=e.previousOperator();return t?wl(t,e.scanner.unscanned):Tl(e.scanner.unscanned)},wl=(e,t=``)=>`Token '${e}' requires a right operand${t?` before '${t}'`:``}`,Tl=e=>`Expected an expression${e?` before '${e}'`:``}`,El=e=>e.scanner.lookahead===``?e.error(Cl(e)):e.scanner.lookahead===`(`?e.shiftedByOne().reduceGroupOpen():e.scanner.lookaheadIsIn($c)?Zc(e,e.scanner.shift()):e.scanner.lookaheadIsIn(br)?El(e.shiftedByOne()):e.scanner.lookahead===`d`&&e.scanner.nextLookahead in Qc?Zc(e,`${e.scanner.shift()}${e.scanner.shift()}`):vl(e);var Dl=class e extends ui{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>this.lookahead in e.terminatingChars)}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...br};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(t,n)=>t===`>`?n[0]===`=`?n[1]===`=`:n.trimStart()===``||T(n.trimStart()[0],e.terminatingChars):t===`=`?n[0]!==`=`:t===`,`||t===`?`};const Ol=(e,t)=>{let n=Al(e,t);if(e.root.hasKind(`unit`)){if(typeof e.root.unit==`number`){e.reduceLeftBound(e.root.unit,n),e.unsetRoot();return}if(e.root.unit instanceof Date){let t=`d'${e.root.description??e.root.unit.toISOString()}'`;e.unsetRoot(),e.reduceLeftBound(t,n);return}}return Nl(e,n)},kl={"<":1,">":1,"=":1},Al=(e,t)=>e.scanner.lookaheadIs(`=`)?`${t}${e.scanner.shift()}`:t,jl=(e,t,n,r)=>n.extends(j.intrinsic.number)?typeof t==`number`?e===`==`?[`min`,`max`]:e[0]===`>`?[`min`]:[`max`]:C(Pl(e,t,r)):n.extends(j.intrinsic.lengthBoundable)?typeof t==`number`?e===`==`?[`exactLength`]:e[0]===`>`?[`minLength`]:[`maxLength`]:C(Pl(e,t,r)):n.extends(j.intrinsic.Date)?e===`==`?[`after`,`before`]:e[0]===`>`?[`after`]:[`before`]:C(Ra(n.expression)),Ml=e=>({rule:Gc(e.limit)?qc(e.limit):e.limit,exclusive:e.comparator.length===1}),Nl=(e,t)=>{let n=e.unsetRoot(),r=e.scanner.location;e.parseOperand();let i=e.unsetRoot(),a=e.scanner.sliceChars(r,e.scanner.location);if(e.root=n,!i.hasKind(`unit`)||typeof i.unit!=`number`&&!(i.unit instanceof Date))return e.error(Pl(t,a,`right`));let o=i.unit,s=t.length===1,c=jl(t,typeof o==`number`?o:a,n,`right`);for(let n of c)e.constrainRoot(n,t===`==`?{rule:o}:{rule:o,exclusive:s});if(!e.branches.leftBound)return;if(!T(t,cl))return e.error(pl(t));let l=jl(e.branches.leftBound.comparator,e.branches.leftBound.limit,n,`left`);e.constrainRoot(l[0],Ml(e.branches.leftBound)),e.branches.leftBound=null},Pl=(e,t,n)=>`Comparator ${n===`left`?ll[e]:e} must be ${n===`left`?`preceded`:`followed`} by a corresponding literal (was ${t})`,Fl=e=>{e.scanner.shiftUntilNonWhitespace();let t=e.scanner.shiftUntilNextTerminator();e.root=e.root.brand(t)},Il=e=>{let t=e.scanner.shiftUntilNextTerminator(),n=Hr(t,{errorOnFail:Ll(t)});n===0&&e.error(Ll(0)),e.root=e.root.constrain(`divisor`,n)},Ll=e=>`% operator must be followed by a non-zero integer literal (was ${e})`,Rl=e=>{let t=e.scanner.shift();return t===``?e.finalize(``):t===`[`?e.scanner.shift()===`]`?e.setRoot(e.root.array()):e.error(Bl):t===`|`?e.scanner.lookahead===`>`?e.shiftedByOne().pushRootToBranch(`|>`):e.pushRootToBranch(t):t===`&`?e.pushRootToBranch(t):t===`)`?e.finalizeGroup():Dl.lookaheadIsFinalizing(t,e.scanner.unscanned)?e.finalize(t):T(t,kl)?Ol(e,t):t===`%`?Il(e):t===`#`?Fl(e):t in br?Rl(e):e.error(zl(t))},zl=(e,t=``)=>`'${e}' is not allowed here${t&&` (should be ${t})`}`,Bl=`Missing expected ']'`,Vl=e=>{let t=e.unsetRoot();e.parseOperand();let n=e.unsetRoot();if(!n.hasKind(`unit`))return e.error(Hl(n.expression));let r=n.unit instanceof Date?()=>new Date(n.unit):n.unit;return[t,`=`,r]},Hl=e=>`Default value '${e}' must a literal value`,Ul=(e,t)=>{let n=t.$.maybeResolveRoot(e);if(n)return n;if(e.endsWith(`[]`)){let n=t.$.maybeResolveRoot(e.slice(0,-2));if(n)return n.array()}let r=new ql(new Dl(e),t),i=Wl(r);return r.finalizer===`>`&&C(zl(`>`)),i},Wl=e=>{e.parseOperand();let t=Gl(e).root;return t?(e.finalizer===`=`?t=Vl(e):e.finalizer===`?`&&(t=[t,`?`]),e.scanner.shiftUntilNonWhitespace(),e.scanner.lookahead&&C(zl(e.scanner.lookahead)),t):S(`Root was unexpectedly unset after parsing string '${e.scanner.scanned}'`)},Gl=e=>{for(;e.finalizer===void 0;)Kl(e);return e},Kl=e=>e.hasRoot()?e.parseOperator():e.parseOperand();var ql=class e{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(e,t){this.scanner=e,this.ctx=t}error(e){return C(e)}hasRoot(){return this.root!==void 0}setRoot(e){this.root=e}unsetRoot(){let e=this.root;return this.root=void 0,e}constrainRoot(...e){this.root=this.root.constrain(e[0],e[1])}finalize(e){if(this.groups.length)return this.error(dl(`)`));this.finalizeBranches(),this.finalizer=e}reduceLeftBound(e,t){let n=ll[t];if(!T(n,sl))return this.error(pl(t));if(this.branches.leftBound)return this.error(ml(this.branches.leftBound.limit,this.branches.leftBound.comparator,e,n));this.branches.leftBound={comparator:n,limit:e}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch(`|>`),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch(`|`),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch(`&`),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let e=this.groups.pop();if(!e)return this.error(ul(this.scanner.unscanned));this.branches=e}addPrefix(e){this.branches.prefixes.push(e)}applyPrefixes(){for(;this.branches.prefixes.length;){let e=this.branches.prefixes.pop();this.root=e===`keyof`?this.root.keyof():S(`Unexpected prefix '${e}'`)}}pushRootToBranch(e){this.assertRangeUnset(),this.applyPrefixes();let t=this.root;this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(t)??t,e!==`&`&&(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,e!==`|`&&(this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null))}parseUntilFinalizer(){return Gl(new e(this.scanner,this.ctx))}parseOperator(){return Rl(this)}parseOperand(){return El(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(fl(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?`&`:this.branches.union?`|`:this.branches.pipe?`|>`:void 0)}shiftedByOne(){return this.scanner.shift(),this}};const Jl=`An empty string is not a valid generic parameter name`,Yl=(e,t,n)=>{e.shiftUntilNonWhitespace();let r=e.shiftUntilNextTerminator();return r===``?e.lookahead===``&&t.length?t:C(Jl):(e.shiftUntilNonWhitespace(),Zl(e,r,t,n))},Xl=`extends `,Zl=(e,t,n,r)=>{if(e.shiftUntilNonWhitespace(),e.unscanned.startsWith(Xl))e.jumpForward(8);else return e.lookahead===`,`&&e.shift(),n.push(t),Yl(e,n,r);let i=Gl(new ql(e,r));return n.push([t,i.root]),Yl(e,n,r)};var Ql=class extends mr{$;constructor(e){super((...t)=>new $l(e)(...t),{bind:e}),this.$=e}in(e){return new $l(this.$,e===void 0?void 0:this.$.parse(e))}at(e,t){return new $l(this.$).at(e,t)}case(e,t){return new $l(this.$).case(e,t)}},$l=class extends mr{$;in;key;branches=[];constructor(e,t){super(e=>this.caseEntries(Object.entries(e).map(([e,t])=>e===`default`?[e,t]:[this.$.parse(e),t]))),this.$=e,this.in=t}at(e,t){return this.key&&C(nu),this.branches.length&&C(tu),this.key=e,t?this.match(t):this}case(e,t){return this.caseEntry(this.$.parse(e),t)}caseEntry(e,t){let n=this.key?this.$.parse({[this.key]:e}):e,r=n.pipe(t);return this.branches.push(r),this}match(e){return this(e)}strings(e){return this.caseEntries(Object.entries(e).map(([e,t])=>e===`default`?[e,t]:[this.$.node(`unit`,{unit:e}),t]))}caseEntries(e){for(let t=0;t<e.length;t++){let[n,r]=e[t];if(n===`default`)return t!==e.length-1&&C(`default may only be specified as the last key of a switch definition`),this.default(r);if(typeof r!=`function`)return C(`Value for case "${n}" must be a function (was ${x(r)})`);this.caseEntry(n,r)}return this}default(e){typeof e==`function`&&this.case(q.unknown,e);let t={branches:this.branches,ordered:!0};(e===`never`||e===`assert`)&&(t.meta={onFail:eu});let n=this.$.node(`union`,t);if(!this.in)return this.$.finalize(n);let r=this.in.pipe(n);return(e===`never`||e===`assert`)&&(r=r.withMeta({onFail:eu})),this.$.finalize(r)}};const eu=e=>e.throw(),tu=`A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')`,nu=`At most one key matcher may be specified per expression`,ru=(e,t)=>{if(D(e)){if(e[1]===`=`)return[t.$.parseOwnDefinitionFormat(e[0],t),`=`,e[2]];if(e[1]===`?`)return[t.$.parseOwnDefinitionFormat(e[0],t),`?`]}return Vu(e,t)},iu=`Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }`,au=`Only required keys may specify default values, e.g. { value: 'number = 0' }`,ou=(e,t)=>{let n,r={},i=Wn(e);for(let[e,a]of i){let i=uu(e);if(i.kind===`spread`){if(!Un(r))return C(lu);let e=t.$.parseOwnDefinitionFormat(a,t);if(e.equals(q.object))continue;if(!e.hasKind(`intersection`)||!e.basis?.equals(q.object))return C(du(e.expression));n=e.structure;continue}if(i.kind===`undeclared`){a!==`reject`&&a!==`delete`&&a!==`ignore`&&C(cu(a)),r.undeclared=a;continue}let o=ru(a,t),s=i;if(i.kind===`required`){D(o)?su(r,`optional`,o[1]===`=`?{key:i.normalized,value:o[0],default:o[2]}:{key:i.normalized,value:o[0]},t):su(r,`required`,{key:i.normalized,value:o},t);continue}if(D(o)&&(o[1]===`?`&&C(iu),o[1]===`=`&&C(au)),i.kind===`optional`){su(r,`optional`,{key:i.normalized,value:o},t);continue}let c=t.$.parseOwnDefinitionFormat(s.normalized,t),l=fc(c,o,t.$);l.index&&(r.index=b(r.index,l.index)),l.required&&(r.required=b(r.required,l.required))}let a=t.$.node(`structure`,r);return t.$.parseSchema({domain:`object`,structure:n?.merge(a)??a})},su=(e,t,n,r)=>{e[t]=b(e[t],r.$.node(t,n))},cu=e=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${A(e)})`,lu=`Spread operator may only be used as the first key in an object`,uu=e=>typeof e==`symbol`?{kind:`required`,normalized:e}:e.at(-1)===`?`?e.at(-2)===yr?{kind:`required`,normalized:`${e.slice(0,-2)}?`}:{kind:`optional`,normalized:e.slice(0,-1)}:e[0]===`[`&&e.at(-1)===`]`?{kind:`index`,normalized:e.slice(1,-1)}:e[0]===yr&&e[1]===`[`&&e.at(-1)===`]`?{kind:`required`,normalized:e.slice(1)}:e===`...`?{kind:`spread`}:e===`+`?{kind:`undeclared`}:{kind:`required`,normalized:e===`\\...`?`...`:e===`\\+`?`+`:e},du=e=>`Spread operand must resolve to an object literal type (was ${e})`,fu=(e,t)=>Du(e)?Eu[e[0]](e,t):wu(e)?Cu[e[1]](e,t):null,pu=(e,t)=>t.$.parseOwnDefinitionFormat(e[1],t).keyof(),mu=(e,t)=>{if(e[2]===void 0)return C(wl(e[1],``));let n=t.$.parseOwnDefinitionFormat(e[0],t),r=t.$.parseOwnDefinitionFormat(e[2],t);if(e[1]===`|`)return t.$.node(`union`,{branches:[n,r]});let i=e[1]===`&`?B(n,r,t.$):ta(n,r,t.$);return i instanceof z?i.throw():i},hu=(e,t)=>t.$.parseOwnDefinitionFormat(e[0],t).array(),gu=(e,t)=>typeof e[2]==`function`?t.$.parseOwnDefinitionFormat(e[0],t).pipe(e[2]):C(_u(`=>`,e[2])),_u=(e,t)=>`${e===`:`?`Narrow`:`Morph`} expression requires a function following '${e}' (was ${typeof t})`,vu=(e,t)=>typeof e[2]==`function`?t.$.parseOwnDefinitionFormat(e[0],t).constrain(`predicate`,e[2]):C(_u(`:`,e[2])),yu=(e,t)=>t.$.parseOwnDefinitionFormat(e[0],t).configureDescendants(e[2],`shallow`),bu=e=>e,xu=bu({"[]":hu,"?":()=>C(al)}),Su=bu({"|":mu,"&":mu,":":vu,"=>":gu,"|>":mu,"@":yu,"=":()=>C(ol)}),Cu={...xu,...Su},wu=e=>Cu[e[1]]!==void 0,Tu=e=>e,Eu=Tu({keyof:pu,instanceof:(e,t)=>{if(typeof e[1]!=`function`)return C(Ou(er(e[1])));let n=e.slice(1).map(e=>typeof e==`function`?t.$.node(`proto`,{proto:e}):C(Ou(er(e))));return n.length===1?n[0]:t.$.node(`union`,{branches:n})},"===":(e,t)=>t.$.units(e.slice(1))}),Du=e=>Eu[e[0]]!==void 0,Ou=e=>`Expected a constructor following 'instanceof' operator (was ${e})`,ku=(e,t)=>{let n=[{}],r=0;for(;r<e.length;){let i=!1;e[r]===`...`&&r<e.length-1&&(i=!0,r++);let a=ru(e[r],t),[o,s,c]=D(a)?a:[a];if(r++,i){if(!o.extends(j.intrinsic.Array))return C(Fu(o.expression));n=n.flatMap(e=>o.distribute(t=>Pu(Ci(e),t)))}else n=n.map(e=>s===`?`?ju(e,o):s===`=`?Mu(e,o,c):Au(e,o))}return t.$.parseSchema(n.map(e=>Un(e)?{proto:Array,exactLength:0}:{proto:Array,sequence:e}))},Au=(e,t)=>e.defaultables||e.optionals?C(e.variadic?Zs:Lu):(e.variadic?e.postfix=b(e.postfix,t):e.prefix=b(e.prefix,t),e),ju=(e,t)=>e.variadic?C(Ru):(e.optionals=b(e.optionals,t),e),Mu=(e,t,n)=>e.variadic?C(Ru):e.optionals?C(zu):(e.defaultables=b(e.defaultables,[[t,n]]),e),Nu=(e,t)=>(e.postfix&&C(Iu),e.variadic?e.variadic.equals(t)||C(Iu):e.variadic=t.internal,e),Pu=(e,t)=>{let n=t.select({method:`find`,kind:`sequence`});return n?(n.prefix?.forEach(t=>Au(e,t)),n.optionals?.forEach(t=>ju(e,t)),n.variadic&&Nu(e,n.variadic),n.postfix?.forEach(t=>Au(e,t)),e):Nu(e,j.intrinsic.unknown)},Fu=e=>`Spread element must be an array (was ${e})`,Iu=`A tuple may have at most one variadic element`,Lu=`A required element may not follow an optional element`,Ru=`An optional element may not follow a variadic element`,zu=`A defaultable element may not follow an optional element without a default`,Bu={},Vu=(e,t)=>{if(typeof e==`string`){if(t.args&&Object.keys(t.args).some(t=>e.includes(t)))return Ul(e,t);let n=Bu[t.$.name]??={};return n[e]??=Ul(e,t)}return kn(e,`object`)?Hu(e,t):C(Wu(x(e)))},Hu=(e,t)=>{let n=$n(e);switch(n){case void 0:return P(e,`root`)?e:ou(e,t);case`Array`:return Uu(e,t);case`RegExp`:return t.$.node(`intersection`,{domain:`string`,pattern:e},{prereduced:!0});case`Function`:{let t=dr(e)?e():e;return P(t,`root`)?t:C(Wu(`Function`))}default:return C(Wu(n??A(e)))}},Uu=(e,t)=>fu(e,t)??ku(e,t),Wu=e=>`Type definitions must be strings or objects (was ${e})`;var Gu=class extends mr{constructor(e){let t=Object.assign({errors:Bi,hkt:O,$:e,raw:e.parse,module:e.constructor.module,scope:e.constructor.scope,define:e.define,match:e.match,generic:e.generic,schema:e.schema,keywords:e.ambient,unit:e.unit,enumerated:e.enumerated,instanceOf:e.instanceOf,valueOf:e.valueOf},e.ambientAttachments);super((...t)=>{if(t.length===1)return e.parse(t[0]);if(t.length===2&&typeof t[0]==`string`&&t[0][0]===`<`&&t[0].at(-1)===`>`){let n=t[0].slice(1,-1),r=e.parseGenericParams(n,{});return new ha(r,t[1],e,e,null)}return e.parse(t)},{bind:e,attach:t})}};const Ku=j;var qu=class e extends Oc{get ambientAttachments(){if(Ku.typeAttachments)return this.cacheGetter(`ambientAttachments`,w(Ku.typeAttachments,(e,t)=>[e,this.bindReference(t)]))}preparseOwnAliasEntry(e,t){let n=e.indexOf(`<`);if(n===-1){if(P(t,`module`)||P(t,`generic`))return[e,t];let n=this.name===`ark`?e:e===`root`?this.name:`${this.name}.${e}`,r=this.resolvedConfig.keywords?.[n];return r&&(t=[t,`@`,r]),[e,t]}e.at(-1)!==`>`&&C(`'>' must be the last character of a generic declaration in a scope`);let r=e.slice(0,n),i=e.slice(n+1,-1);return[r,()=>{let e=this.parseGenericParams(i,{alias:r}),n=pa(e,t,this);return n}]}parseGenericParams(e,t){return Yl(new Dl(e),[],this.createParseContext({...t,def:e,prefix:`generic`}))}normalizeRootScopeValue(e){return dr(e)&&!P(e,`generic`)?e():e}preparseOwnDefinitionFormat(e,t){return{...t,def:e,prefix:t.alias??`type`}}parseOwnDefinitionFormat(e,t){let n=t.alias&&t.alias in this.aliases;!n&&!t.args&&(t.args={this:t.id});let r=Vu(e,t);if(D(r)){if(r[1]===`=`)return C(ol);if(r[1]===`?`)return C(al)}return r}unit=e=>this.units([e]);valueOf=e=>this.units(qn(e));enumerated=(...e)=>this.units(e);instanceOf=e=>this.node(`proto`,{proto:e},{prereduced:!0});match=new Ql(this);declare=()=>({type:this.type});define(e){return e}type=new Gu(this);static scope=(t,n={})=>new e(t,n);static module=(e,t={})=>this.scope(e,t).export()};const Ju=Object.assign(qu.scope,{define:e=>e}),J=qu;var Yu=class extends O{};const Xu=K([`base`,q.object],[`props`,q.object])(e=>e.base.merge(e.props),Yu),Zu=J.module({Key:q.key,Merge:Xu});var Qu=class extends O{};const $u=K(`element`)(e=>{let t=e.element.exclude(q.Array),n=t.array();return t.rawOr(n).pipe(yn).distribute(e=>e.assertHasKind(`morph`).declareOut(n),G)},Qu),ed=J.module({root:q.Array,readonly:`root`,index:q.nonNegativeIntegerString,liftFrom:$u},{name:`Array`}),td=G([`string`,qr.FileConstructor]),nd=td.rawOr(td.array()),rd=G({meta:`an object representing parsed form data`,domain:`object`,index:{signature:`string`,value:nd}}),id=J.module({root:[`instanceof`,FormData],value:td,parsed:rd,parse:G({in:FormData,morphs:e=>{let t={};for(let[n,r]of e)if(n in t){let e=t[n];typeof e==`string`||e instanceof qr.FileConstructor?t[n]=[e,r]:e.push(r)}else t[n]=r;return t},declaredOut:rd})},{name:`FormData`}),ad=J.module({Int8:[`instanceof`,Int8Array],Uint8:[`instanceof`,Uint8Array],Uint8Clamped:[`instanceof`,Uint8ClampedArray],Int16:[`instanceof`,Int16Array],Uint16:[`instanceof`,Uint16Array],Int32:[`instanceof`,Int32Array],Uint32:[`instanceof`,Uint32Array],Float32:[`instanceof`,Float32Array],Float64:[`instanceof`,Float64Array],BigInt64:[`instanceof`,BigInt64Array],BigUint64:[`instanceof`,BigUint64Array]},{name:`TypedArray`}),od={Boolean:1,Number:1,String:1},sd=J.module({...w({...Jn,...Xn},(e,t)=>e in od?[]:[e,[`instanceof`,t]]),Array:ed,TypedArray:ad,FormData:id}),cd=G({domain:{domain:`number`,meta:`a number representing a Unix timestamp`},divisor:{rule:1,meta:`an integer representing a Unix timestamp`},min:{rule:-864e13,meta:`a Unix timestamp after -8640000000000000`},max:{rule:864e13,meta:`a Unix timestamp before 8640000000000000`},meta:`an integer representing a safe Unix timestamp`}),ld=G({domain:`number`,divisor:1}),ud=J.module({root:q.number,integer:ld,epoch:cd,safe:G({domain:{domain:`number`,numberAllowsNaN:!1},min:-9007199254740991,max:9007199254740991}),NaN:[`===`,NaN],Infinity:[`===`,1/0],NegativeInfinity:[`===`,-1/0]},{name:`number`}),Y=(e,t)=>zc(`intersection`,{domain:`string`,pattern:{rule:e.source,flags:e.flags,meta:t}}),dd=Y(jr,`a well-formed integer string`),fd=J.module({root:dd,parse:G({in:dd,morphs:(e,t)=>{let n=Number.parseInt(e);return Number.isSafeInteger(n)?n:t.error(`an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER`)},declaredOut:q.integer})},{name:`string.integer`}),pd=Y(/^[0-9a-fA-F]+$/,`hex characters only`),md=J.module({root:Y(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,`base64-encoded`),url:Y(/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2}(?:==|%3D%3D)?|[A-Za-z0-9_-]{3}(?:=|%3D)?)?$/,`base64url-encoded`)},{name:`string.base64`}),hd=Y(/^[A-Z].*$/,`capitalized`),gd=J.module({root:G({in:`string`,morphs:e=>e.charAt(0).toUpperCase()+e.slice(1),declaredOut:hd}),preformatted:hd},{name:`string.capitalize`}),_d=e=>{let t=e.replace(/[- ]+/g,``),n=0,r,i,a=!1;for(let e=t.length-1;e>=0;e--)r=t.substring(e,e+1),i=Number.parseInt(r,10),a?(i*=2,i>=10?n+=i%10+1:n+=i):n+=i,a=!a;return!!(n%10==0&&t)},vd=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,yd=G({domain:`string`,pattern:{meta:`a credit card number`,rule:vd.source},predicate:{meta:`a credit card number`,predicate:_d}}),bd=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,xd=e=>!Number.isNaN(new Date(e).valueOf()),Sd=G({domain:`string`,predicate:{meta:`a parsable date`,predicate:xd}}).assertHasKind(`intersection`),Cd=fd.root.internal.narrow((e,t)=>{let n=Number.parseInt(e),r=ud.epoch(n);return r instanceof Bi?(t.errors.merge(r),!1):!0}).withMeta({description:`an integer string representing a safe Unix timestamp`}).assertHasKind(`intersection`),wd=J.module({root:Cd,parse:G({in:Cd,morphs:e=>new Date(e),declaredOut:q.Date})},{name:`string.date.epoch`}),Td=Y(bd,`an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date`).internal.assertHasKind(`intersection`),Ed=J.module({root:Td,parse:G({in:Td,morphs:e=>new Date(e),declaredOut:q.Date})},{name:`string.date.iso`}),Dd=J.module({root:Sd,parse:G({declaredIn:Sd,in:`string`,morphs:(e,t)=>{let n=new Date(e);return Number.isNaN(n.valueOf())?t.error(`a parsable date`):n},declaredOut:q.Date}),iso:Ed,epoch:wd},{name:`string.date`}),Od=Y(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,`an email address`),kd=`(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])`,Ad=`(${kd}[.]){3}${kd}`,jd=RegExp(`^${Ad}$`),X=`(?:[0-9a-fA-F]{1,4})`,Md=RegExp(`^((?:${X}:){7}(?:${X}|:)|(?:${X}:){6}(?:${Ad}|:${X}|:)|(?:${X}:){5}(?::${Ad}|(:${X}){1,2}|:)|(?:${X}:){4}(?:(:${X}){0,1}:${Ad}|(:${X}){1,3}|:)|(?:${X}:){3}(?:(:${X}){0,2}:${Ad}|(:${X}){1,4}|:)|(?:${X}:){2}(?:(:${X}){0,3}:${Ad}|(:${X}){1,5}|:)|(?:${X}:){1}(?:(:${X}){0,4}:${Ad}|(:${X}){1,6}|:)|(?::((?::${X}){0,5}:${Ad}|(?::${X}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?\$`),Nd=J.module({root:[`v4 | v6`,`@`,`an IP address`],v4:Y(jd,`an IPv4 address`),v6:Y(Md,`an IPv6 address`)},{name:`string.ip`}),Pd=`a JSON string`,Fd=e=>{if(!(e instanceof SyntaxError))throw e;return`must be ${Pd} (${e})`},Id=G({meta:Pd,domain:`string`,predicate:{meta:Pd,predicate:(e,t)=>{try{return JSON.parse(e),!0}catch(e){return t.reject({code:`predicate`,expected:Pd,problem:Fd(e)})}}}}),Ld=(e,t)=>{if(e.length===0)return t.error({code:`predicate`,expected:Pd,actual:`empty`});try{return JSON.parse(e)}catch(e){return t.error({code:`predicate`,expected:Pd,problem:Fd(e)})}},Rd=J.module({root:Id,parse:G({meta:`safe JSON string parser`,in:`string`,morphs:Ld,declaredOut:q.jsonObject})},{name:`string.json`}),zd=Y(/^[a-z]*$/,`only lowercase letters`),Bd=J.module({root:G({in:`string`,morphs:e=>e.toLowerCase(),declaredOut:zd}),preformatted:zd},{name:`string.lower`}),Vd=[`NFC`,`NFD`,`NFKC`,`NFKD`],Hd=w(Vd,(e,t)=>[t,G({domain:`string`,predicate:e=>e.normalize(t)===e,meta:`${t}-normalized unicode`})]),Ud=w(Vd,(e,t)=>[t,G({in:`string`,morphs:e=>e.normalize(t),declaredOut:Hd[t]})]),Wd=J.module({root:Ud.NFC,preformatted:Hd.NFC},{name:`string.normalize.NFC`}),Gd=J.module({root:Ud.NFD,preformatted:Hd.NFD},{name:`string.normalize.NFD`}),Kd=J.module({root:Ud.NFKC,preformatted:Hd.NFKC},{name:`string.normalize.NFKC`}),qd=J.module({root:Ud.NFKD,preformatted:Hd.NFKD},{name:`string.normalize.NFKD`}),Jd=J.module({root:`NFC`,NFC:Wd,NFD:Gd,NFKC:Kd,NFKD:qd},{name:`string.normalize`}),Yd=Y(Or,`a well-formed numeric string`),Xd=J.module({root:Yd,parse:G({in:Yd,morphs:e=>Number.parseFloat(e),declaredOut:q.number})},{name:`string.numeric`}),Zd=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Qd=Y(Zd,`a semantic version (see https://semver.org/)`),$d=Y(/^\S.*\S$|^\S?$/,`trimmed`),ef=J.module({root:G({in:`string`,morphs:e=>e.trim(),declaredOut:$d}),preformatted:$d},{name:`string.trim`}),tf=Y(/^[A-Z]*$/,`only uppercase letters`),nf=J.module({root:G({in:`string`,morphs:e=>e.toUpperCase(),declaredOut:tf}),preformatted:tf},{name:`string.upper`}),rf=e=>{if(URL.canParse)return URL.canParse(e);try{return new URL(e),!0}catch{return!1}},af=G({domain:`string`,predicate:{meta:`a URL string`,predicate:rf}}),sf=J.module({root:af,parse:G({declaredIn:af,in:`string`,morphs:(e,t)=>{try{return new URL(e)}catch{return t.error(`a URL string`)}},declaredOut:G(URL)})},{name:`string.url`}),cf=J.module({root:[`versioned | nil | max`,`@`,`a UUID`],"#nil":`'00000000-0000-0000-0000-000000000000'`,"#max":`'ffffffff-ffff-ffff-ffff-ffffffffffff'`,"#versioned":/[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i,v1:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv1`),v2:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-2[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv2`),v3:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv3`),v4:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv4`),v5:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv5`),v6:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv6`),v7:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv7`),v8:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-8[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv8`)},{name:`string.uuid`}),lf=J.module({root:q.string,alpha:Y(/^[A-Za-z]*$/,`only letters`),alphanumeric:Y(/^[A-Za-z\d]*$/,`only letters and digits 0-9`),hex:pd,base64:md,capitalize:gd,creditCard:yd,date:Dd,digits:Y(/^\d*$/,`only digits 0-9`),email:Od,integer:fd,ip:Nd,json:Rd,lower:Bd,normalize:Jd,numeric:Xd,semver:Qd,trim:ef,upper:nf,url:sf,uuid:cf},{name:`string`}),uf=J.module({bigint:q.bigint,boolean:q.boolean,false:q.false,never:q.never,null:q.null,number:q.number,object:q.object,string:q.string,symbol:q.symbol,true:q.true,unknown:q.unknown,undefined:q.undefined}),df=J.module({root:q.unknown,any:q.unknown},{name:`unknown`}),ff=J.module({root:q.jsonObject,stringify:zc(`morph`,{in:q.jsonObject,morphs:e=>JSON.stringify(e),declaredOut:q.string})},{name:`object.json`}),pf=J.module({root:q.object,json:ff},{name:`object`});var mf=class extends O{description=`a generic type that instantiates an object from a single index signature and corresponding value type`};const hf=K([`K`,q.key],`V`)(e=>({domain:`object`,index:{signature:e.K,value:e.V}}),mf);var gf=class extends O{};const _f=K([`T`,q.object],[`K`,q.key])(e=>e.T.pick(e.K),gf);var vf=class extends O{};const yf=K([`T`,q.object],[`K`,q.key])(e=>e.T.omit(e.K),vf);var bf=class extends O{};const xf=K([`T`,q.object])(e=>e.T.partial(),bf);var Sf=class extends O{};const Cf=K([`T`,q.object])(e=>e.T.required(),Sf);var wf=class extends O{};const Tf=K(`T`,`U`)(e=>e.T.exclude(e.U),wf);var Ef=class extends O{};const Df=K(`T`,`U`)(e=>e.T.extract(e.U),Ef),Of=J.module({Exclude:Tf,Extract:Df,Omit:yf,Partial:xf,Pick:_f,Record:hf,Required:Cf}),kf=Ju({...uf,...Of,...sd,...Zu,string:lf,number:ud,object:pf,unknown:df},{prereducedAliases:!0,name:`ark`}),Z=kf.export();Object.assign(Ku.ambient,Z),Ku.typeAttachments={string:Z.string.root,number:Z.number.root,bigint:Z.bigint,boolean:Z.boolean,symbol:Z.symbol,undefined:Z.undefined,null:Z.null,object:Z.object.root,unknown:Z.unknown.root,false:Z.false,true:Z.true,never:Z.never,arrayIndex:Z.Array.index,Key:Z.Key,Record:Z.Record,Array:Z.Array.root,Date:Z.Date},Object.assign(kf.type,Ku.typeAttachments),kf.match,kf.generic,kf.schema,kf.define,kf.declare;function Af(e){return e}function jf(e){return e?t=>(e(t),t):Af}const Mf=jf();function Nf(e,t){return pn.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Pf(e,t){return pn.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Ff(e,t){let n=new FormData;return n.append(`file`,t.chunk),pn.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}function If(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Lf(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Rf;function zf(e){Rf=e}var Bf=class extends et{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=u.join(Ke(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await h.mkdir(this.targetDir,{recursive:!0}),await this.checkForUpdates(e),clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.checkForUpdates(e),this.UPDATE_CHECK_INTERVAL_MS)}destroy(){this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=void 0),super.destroy()}async getCurrentVersion(e){try{let t=u.join(this.targetDir,e,`version.txt`);return await h.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return u.join(this.targetDir,e)}getTargetVersionPath(e,t){return u.join(this.getTargetPath(e),t)}async checkForUpdates(e){let t=global.OVERLAYED.APP_BUILD_CHANNEL;if(this.logger.log(`Checking for updates`),!t){this.logger.error(`Invalid VITE_BUILD_CHANNEL`);return}await Rf?.();for(let n of e)try{let{data:e}=await hn(n,t),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r;this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t,i),this.logger.log(`${n} > Downloaded and extracted`),i&&(this.logger.log(`${n} > Cleaning up versions older than ${e}`),await this.cleanupOldVersions(n,e)),this.emit(`dllUpdated`,{identifier:n,version:e})}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n,r){let{data:i}=await gn(e,n),a=this.getTargetPath(e),o=this.getTargetVersionPath(e,t);await h.mkdir(o,{recursive:!0});let s=new ae;await s.loadAsync(i);let c=Object.keys(s.files).map(async t=>{let n=s.files[t];if(n&&!n.dir){let i=u.join(o,t);if(!r)try{await h.access(i,h.constants.F_OK);return}catch{this.logger.warn(`${e} > File missing, re-downloading: ${i}`)}let a=await n.async(`nodebuffer`);await h.writeFile(i,a)}});await Promise.all(c);let l=u.join(a,`version.txt`);this.logger.log(`Saving version file`,l),await h.writeFile(l,t)}async cleanupOldVersions(e,t){let n=u.join(this.targetDir,e),r=await h.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await h.rm(u.join(n,e.name),{recursive:!0,force:!0})}};const Vf=g(Bf);var Hf=class extends et{REFETCH_INTERVAL=1e3*60*5;FAILED_REFETCH_INTERVAL=1e3*30;_ravenConfig;_executableToGameMap=new Map;_executablesArray=[];_refetchIntervalHandler=null;_failedRefetchTimeoutHandler=null;constructor(){super(`RavenManager`)}init(){super.init(),this.fetchRavenConfig(),this._refetchIntervalHandler=setInterval(()=>{this._failedRefetchTimeoutHandler&&(clearTimeout(this._failedRefetchTimeoutHandler),this._failedRefetchTimeoutHandler=null),this.fetchRavenConfig()},this.REFETCH_INTERVAL)}getExecutableData(e){return this._executableToGameMap.get(e.toLowerCase())??null}get executables(){return this._executablesArray}get executablesMap(){return this._executableToGameMap}destroy(){this._refetchIntervalHandler&&clearInterval(this._refetchIntervalHandler),this._failedRefetchTimeoutHandler&&clearTimeout(this._failedRefetchTimeoutHandler),Vf.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{let e=await vn(),t={games:[...e.data.games,{name:`Valorant`,identifier:Mf(`valorant`),executables:[`VALORANT-Win64-Shipping.exe`],modules:[]}]};this._ravenConfig=t,this.resetState();let n=new Set;for(let e of this._ravenConfig.games){for(let t of e.executables){let n=t.toLowerCase();this._executableToGameMap.set(n,e),this._executablesArray.push(n)}e.modules.forEach(e=>n.add(e))}await Vf.getInstance().initWithDlls(Array.from(n)),this.logger.log(`Raven updated`,this._ravenConfig),this.emit(`executablesUpdated`,{executables:this.executables,map:this._executableToGameMap})}catch(e){this.logger.error(`Failed to fetch Raven config`,e),this._failedRefetchTimeoutHandler=setTimeout(()=>this.fetchRavenConfig(),this.FAILED_REFETCH_INTERVAL)}}resetState(){this._executableToGameMap.clear(),this._executablesArray=[]}};const Uf=g(Hf),Wf=e(import.meta.url),{PipeEventServer:Gf,PipeEventClient:Kf,PipeEventBase:qf,ProcessMonitor:Jf,Process:Yf,InjectionMethod:Xf,AccessLevel:Zf,HardwareInterface:Qf}=Wf(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var $f=class extends et{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new Jf}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),Uf.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(){Uf.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){let t=this._processes.get(e);return t?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){e.executables.forEach(e=>{this.logger.log(`Monitoring process`,e),this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name),n=t?.filter(t=>t.id!==e.id)??[];n.length===0?this._processes.delete(e.name):this._processes.set(e.name,n)}};const ep=g($f),tp=e(import.meta.url),{RenderInterface:np,renderHookPath:rp}=tp(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);var ip=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}}},ap=class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new ip(new np(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}};const op=g(ap);var sp=class{_clientId=null;_userId=null;options;eventQueue;set clientId(e){this._clientId=e}set userId(e){this._userId=e}constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new Be,this.setupFlushInterval()}track(e,t){this.eventQueue.add({name:e,data:t,createdAt:new Date().toISOString()})}flush(){let e=Array.from(this.eventQueue.flush()),t=e.concat({name:`ping`,data:{},createdAt:new Date().toISOString()});return t}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}};const cp=g(sp),lp=e(import.meta.url),up=lp.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`);var dp=class extends tt{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}init(){super.init(),op.getInstance().createInterface(`OGG_SIEGE`),ep.getInstance().on(`create`,this.boundOnProcessCreate),ep.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){ep.getInstance().off(`create`,this.boundOnProcessCreate),ep.getInstance().off(`destroy`,this.boundOnProcessDestroy),super.destroy()}async onProcessCreate({process:e}){let t=this.getRavenGame(e);if(!t)return;if(this.subscribedGames.size===0){this.logger.warn(`No subscribed games, skipping`);return}if(!this.subscribedGames.has(t.identifier)&&!this.subscribedGames.has(`*`))return;let n=new AbortController;if(await this.emit(`gameLaunch`,{game:t.identifier,reject:()=>n.abort}),n.signal.aborted)return;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,Yf.currentProcess.isElevated),e.isElevated&&!Yf.currentProcess.isElevated){_.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!Yf.currentProcess.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:Yf.currentProcess.isElevated,gameElevated:e.isElevated});return}let r=this.copyDll(up);if(r)try{await e.injectDll(r),this.logger.log(`Render Interface Injection Successful`,r)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:r})}let i=t?.modules.map(async t=>{let n=await Vf.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=Vf.getInstance().getTargetVersionPath(t,n);this.logger.log(`DLL Path`,r);let i=await this.getDllFiles(r);return this.logger.log(`DLL Files`,i),Promise.all(i.map(async t=>{let n=u.basename(t),i=u.join(r,n);if(!i)return Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(i),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,{game:t.identifier}),cp.getInstance().track(`game_launch`,{game:t.identifier})}copyDll(e){let t=u.basename(e),n=d(e),r=u.join(Ke(),`resources`),i=u.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{m(r)||te(r,{recursive:!0});let e=ne(n);ie(i,e),f(n,i)}catch(e){return e.code===`EBUSY`?i:(this.logger.error(`Failed to copy`,e),this.logger.error(`Failed to copy`,{originalPath:n,targetPath:i}),!1)}return i}async getDllFiles(e){try{let t=await h.readdir(e);return t.filter(e=>e.endsWith(`.dll`)).map(t=>u.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this.emit(`gameCloseInternal`,{ravenGame:t,process:e}),this.emit(`gameClose`,{game:t.identifier}),cp.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=Uf.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}};const fp=g(dp);var pp=class extends $e{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),fp.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){fp.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=ne(n.path),i=oe(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{let e=await Nf(t.identifier,i);a=e.data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new 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 Ze(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Pf(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 Ff(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){If(e)?Lf(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}};const mp=g(pp);function hp(e=[]){return u.normalize(u.join(Je(global.OVERLAYED.APPLICATION_ID),...e))}const gp=t({game:`string`,type:`string`,creation_time:`number`});var Q=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}(Q||{});const _p=new Map([[Q.LeftButton,`LeftButton`],[Q.RightButton,`RightButton`],[Q.Cancel,`Cancel`],[Q.MiddleButton,`MiddleButton`],[Q.ExtraButton1,`ExtraButton1`],[Q.ExtraButton2,`ExtraButton2`],[Q.Back,`Backspace`],[Q.Tab,`Tab`],[Q.Clear,`Clear`],[Q.Return,`Enter`],[Q.Shift,`ShiftLeft`],[Q.Control,`ControlLeft`],[Q.Menu,`AltLeft`],[Q.Pause,`Pause`],[Q.CapsLock,`CapsLock`],[Q.Kana,`KanaMode`],[Q.Junja,`JunjaMode`],[Q.Final,`Finalize`],[Q.Hanja,`HanjaMode`],[Q.Escape,`Escape`],[Q.Convert,`Convert`],[Q.NonConvert,`NonConvert`],[Q.Accept,`Accept`],[Q.ModeChange,`ModeChange`],[Q.Space,`Space`],[Q.Prior,`PageUp`],[Q.Next,`PageDown`],[Q.End,`End`],[Q.Home,`Home`],[Q.Left,`ArrowLeft`],[Q.Up,`ArrowUp`],[Q.Right,`ArrowRight`],[Q.Down,`ArrowDown`],[Q.Select,`Select`],[Q.Print,`PrintScreen`],[Q.Execute,`Execute`],[Q.Snapshot,`Snapshot`],[Q.Insert,`Insert`],[Q.Delete,`Delete`],[Q.Help,`Help`],[Q.N0,`Digit0`],[Q.N1,`Digit1`],[Q.N2,`Digit2`],[Q.N3,`Digit3`],[Q.N4,`Digit4`],[Q.N5,`Digit5`],[Q.N6,`Digit6`],[Q.N7,`Digit7`],[Q.N8,`Digit8`],[Q.N9,`Digit9`],[Q.A,`KeyA`],[Q.B,`KeyB`],[Q.C,`KeyC`],[Q.D,`KeyD`],[Q.E,`KeyE`],[Q.F,`KeyF`],[Q.G,`KeyG`],[Q.H,`KeyH`],[Q.I,`KeyI`],[Q.J,`KeyJ`],[Q.K,`KeyK`],[Q.L,`KeyL`],[Q.M,`KeyM`],[Q.N,`KeyN`],[Q.O,`KeyO`],[Q.P,`KeyP`],[Q.Q,`KeyQ`],[Q.R,`KeyR`],[Q.S,`KeyS`],[Q.T,`KeyT`],[Q.U,`KeyU`],[Q.V,`KeyV`],[Q.W,`KeyW`],[Q.X,`KeyX`],[Q.Y,`KeyY`],[Q.Z,`KeyZ`],[Q.LeftWindows,`MetaLeft`],[Q.RightWindows,`MetaRight`],[Q.Application,`ContextMenu`],[Q.Sleep,`Sleep`],[Q.Numpad0,`Numpad0`],[Q.Numpad1,`Numpad1`],[Q.Numpad2,`Numpad2`],[Q.Numpad3,`Numpad3`],[Q.Numpad4,`Numpad4`],[Q.Numpad5,`Numpad5`],[Q.Numpad6,`Numpad6`],[Q.Numpad7,`Numpad7`],[Q.Numpad8,`Numpad8`],[Q.Numpad9,`Numpad9`],[Q.Multiply,`NumpadMultiply`],[Q.Add,`NumpadAdd`],[Q.Separator,`NumpadSeparator`],[Q.Subtract,`NumpadSubtract`],[Q.Decimal,`NumpadDecimal`],[Q.Divide,`NumpadDivide`],[Q.F1,`F1`],[Q.F2,`F2`],[Q.F3,`F3`],[Q.F4,`F4`],[Q.F5,`F5`],[Q.F6,`F6`],[Q.F7,`F7`],[Q.F8,`F8`],[Q.F9,`F9`],[Q.F10,`F10`],[Q.F11,`F11`],[Q.F12,`F12`],[Q.F13,`F13`],[Q.F14,`F14`],[Q.F15,`F15`],[Q.F16,`F16`],[Q.F17,`F17`],[Q.F18,`F18`],[Q.F19,`F19`],[Q.F20,`F20`],[Q.F21,`F21`],[Q.F22,`F22`],[Q.F23,`F23`],[Q.F24,`F24`],[Q.NumLock,`NumLock`],[Q.ScrollLock,`ScrollLock`],[Q.NEC_Equal,`NEC_Equal`],[Q.Fujitsu_Masshou,`Fujitsu_Masshou`],[Q.Fujitsu_Touroku,`Fujitsu_Touroku`],[Q.Fujitsu_Loya,`Fujitsu_Loya`],[Q.Fujitsu_Roya,`Fujitsu_Roya`],[Q.LeftShift,`ShiftLeft`],[Q.RightShift,`ShiftRight`],[Q.LeftControl,`ControlLeft`],[Q.RightControl,`ControlRight`],[Q.LeftMenu,`AltLeft`],[Q.RightMenu,`AltRight`],[Q.BrowserBack,`BrowserBack`],[Q.BrowserForward,`BrowserForward`],[Q.BrowserRefresh,`BrowserRefresh`],[Q.BrowserStop,`BrowserStop`],[Q.BrowserSearch,`BrowserSearch`],[Q.BrowserFavorites,`BrowserFavorites`],[Q.BrowserHome,`BrowserHome`],[Q.VolumeMute,`VolumeMute`],[Q.VolumeDown,`VolumeDown`],[Q.VolumeUp,`VolumeUp`],[Q.MediaNextTrack,`MediaTrackNext`],[Q.MediaPrevTrack,`MediaTrackPrevious`],[Q.MediaStop,`MediaStop`],[Q.MediaPlayPause,`MediaPlayPause`],[Q.LaunchMail,`LaunchMail`],[Q.LaunchMediaSelect,`LaunchMediaSelect`],[Q.LaunchApplication1,`LaunchApplication1`],[Q.LaunchApplication2,`LaunchApplication2`],[Q.OEM1,`OEM_1`],[Q.OEMPlus,`Equal`],[Q.OEMComma,`Comma`],[Q.OEMMinus,`Minus`],[Q.OEMPeriod,`Period`],[Q.OEM2,`Slash`],[Q.OEM3,`Backquote`],[Q.OEM4,`BracketLeft`],[Q.OEM5,`Backslash`],[Q.OEM6,`BracketRight`],[Q.OEM7,`Quote`],[Q.OEM8,`IntlRo`],[Q.OEMAX,`OEM_AX`],[Q.OEM102,`IntlBackslash`],[Q.ICOHelp,`ICO_HELP`],[Q.ICO00,`ICO_00`],[Q.ProcessKey,`Process`],[Q.ICOClear,`ICO_CLEAR`],[Q.Packet,`Packet`],[Q.OEMReset,`OEM_Reset`],[Q.OEMJump,`OEM_Jump`],[Q.OEMPA1,`OEM_PA1`],[Q.OEMPA2,`OEM_PA2`],[Q.OEMPA3,`OEM_PA3`],[Q.OEMWSCtrl,`OEM_WS_Ctrl`],[Q.OEMCUSel,`OEM_CU_Sel`],[Q.OEMATTN,`OEM_ATTN`],[Q.OEMFinish,`OEM_Finish`],[Q.OEMCopy,`OEM_Copy`],[Q.OEMAuto,`OEM_Auto`],[Q.OEMENLW,`OEM_ENLW`],[Q.OEMBackTab,`BackTab`],[Q.ATTN,`ATTN`],[Q.CRSel,`CRSel`],[Q.EXSel,`EXSel`],[Q.EREOF,`EREOF`],[Q.Play,`MediaPlay`],[Q.Zoom,`Zoom`],[Q.Noname,`Noname`],[Q.PA1,`PA1`],[Q.OEMClear,`OEM_Clear`]]),vp=new Map(_p.entries().map(([e,t])=>[t,e])),yp=t({"[string]":{keys:`string[]`,mode:t(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var bp=class extends et{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 We({path:hp([`keybinds.json`]),schema:yp,default:e})}init(){super.init();let e=op.getInstance().getInterface(`OGG_SIEGE`);e.instance.on(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.on(`keyDown`,this.boundHandleKeyDown),e.instance.on(`keyUp`,this.boundHandleKeyUp)}async onKeybindToggled(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.toggle=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.down=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.up=t,this.preferencesKeybindToCallbacks.set(e,n)}async updateKeybind(e,t){this.keybindsFile.set({[e]:t})}async updateKeybinds(e){let t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0));this.keybindsFile.set({...this.keybindsFile.get(),...t})}getConfig(){return this.keybindsFile.get()}destroy(){let e=op.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=_p.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=_p.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries()){let r=n[e];r.keys.includes(t)&&this.triggeredToggleKeybinds.delete(e)}this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up)continue;let r=e[t];this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))&&(this.activeKeybinds.delete(t),n.up(),this.logger.log(`Keybind up triggered`,this.getKeybindToString(r)))}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.length===this.pressedKeys.size&&r.keys.every(e=>vp.has(e)?this.pressedKeys.has(e):!1);if(i){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.every(e=>vp.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1));i&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&!this.triggeredToggleKeybinds.has(n)){let r=t.toggle();this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&!this.activeKeybinds.has(n)){let r=t.down();r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}},xp=class extends $e{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=op.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}};const Sp=g(xp,`OGG_SIEGE`);var Cp=he((exports,t)=>{var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e,t)=>{var n=new Set([`mouseDown`,`mouseUp`,`pointerDown`,`pointerUp`]),r=new WeakSet;function i(e,t,{allowHosts:i}={}){let{shell:a}=t;if(r.has(e))return;r.add(e);let o=e.webContents;function s(e){return!!(!c(e)||i?.includes(e.host))}function c(e){return new URL(o.getURL()).origin!==e.origin}let l=0;function u(){l=Date.now()}function d(){let e=Date.now()-l,t=e<150;return t||console.warn(`was not recently active`,e),t}if(process.platform===`win32`){let t={KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576};for(let n of Object.values(t))e.hookWindowMessage(n,u)}o.on(`input-event`,(e,t)=>{n.has(t.type)&&u()}),o.on(`will-navigate`,(e,t)=>{let n=e.url||t;if(console.log(`will-navigate`,n),!n)return;let r=new URL(n);if(!s(r)){if(!d()){console.log(`blocked navigation`,n),e.preventDefault();return}c(r)&&(console.log(`external navigation`,n),e.preventDefault(),a.openExternal(n))}}),o.session.on(`will-download`,(e,t)=>{let n=t.getURL();/^blob:/.test(n)||e.preventDefault()}),o.setWindowOpenHandler(e=>{console.log(`window-open`,e.url);let{url:t}=e,n=new URL(t);if(!s(n))return d()?(c(n)&&a.openExternal(e.url),{action:`deny`}):(console.log(`blocked navigation`,t),{action:`deny`})})}t.exports=i}),i=n((e,t)=>{var n=new Set([`Mozilla`,`AppleWebKit`,`Chrome`,`Safari`,`Gecko`,`Firefox`,`OPR`,`Edg`,`Version`,`Mobile`,`curl`,`PostmanRuntime`]);async function r(e,t,r){let{webContents:i}=e,a=await i.executeJavaScript(`navigator.userAgent`);a=a.match(/[^\/]+\/[^\s]+( \([^\)]+\))?/g).map(e=>e.trim()).filter(e=>{let[t]=e.split(`/`,1);return n.has(t)}).join(` `),i.setUserAgent(a),t.app.userAgentFallback=a}t.exports=r}),a=r(),o=i();function s(e,t,n={}){a(e,t,n.linkHandler),o(e,t,n.userAgent)}t.exports={setupRevUtils:s,setupLinkHandler:a,setUserAgent:o}}),wp=_e(Cp());let Tp=!1,Ep;function Dp(e){let{init:t=!0}=e;if(Op(e),v.getInstance().init(e.applicationId),Tp)return Ep;function n(){Up(e);let t=new Map,r=jp(e.modules,t),i=Mp(),a=Fp(e.keybinds),o=Ip(),s=Lp(),c=zp(),l=Rp(),u=Bp();kp(e),Pp(e,t),Tp=!0,Ep={...r,...i,ads:c,keybinds:a,windows:o,input:s,cortex:l,hasAnyActiveProcesses:()=>ep.getInstance().hasAnyActiveProcesses,init:n,log:u,initialized:Tp}}return t?(n(),Ep):new Proxy({init:n},{get:(e,t)=>{if(t!==`init`&&!Tp)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Ep[t]}})}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Op(e){global.OVERLAYED={APPLICATION_ID:e.applicationId,APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??ce.getVersion(),electron:e.electron}}function kp(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);fp.getInstance().setSubscribedGames(t),mp.getInstance().init(),fp.getInstance().init(),ep.getInstance().init(),Uf.getInstance().init();async function n(){let e=mn(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=Qf.generateUniqueIdentifier();v.getInstance().log(`userId`,t);let n={...await e,userId:t};return v.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r=r??n(),r)),ce.on(`quit`,()=>{Ap()})}function Ap(){Uf.getInstance().destroy(),fp.getInstance().destroy(),mp.getInstance().destroy(),ep.getInstance().destroy(),op.getInstance().getInterface(`OGG_SIEGE`).destroy(),Re.getInstance().destroy(),_.getInstance().destroy()}function jp(e,t){return e.reduce((e,n)=>{let r=n.key;return e[r]={on(e,n){let i=Np(r,e),a=t.get(i)??new Set;a.add(n),t.set(i,a)},onAny(e){let n=Np(r,`*`),i=t.get(n)??new Set;i.add(e),t.set(n,i)},off(e,n){let i=Np(r,e),a=t.get(i)??new Set;a.delete(n),t.set(i,a)},offAny(e){let n=Np(r,`*`),i=t.get(n)??new Set;i.delete(e),t.set(n,i)}},e},{})}function Mp(){let e=_.getInstance(),t=fp.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]})}}}}function Np(e,t){return`${e}:${t}`}function Pp(e,n){let r=Re.getInstance();function i(r){let i=gp(r);if(i instanceof t.errors){_.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let a=e.modules.find(e=>e.key===i.game),o=a?.events.event;if(!o)return;let s=o(r);if(s instanceof t.errors){_.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:s.summary});return}let c=Np(a.key,s.type),l=Np(a.key,`*`),u=n.get(c),d=n.get(l),ee=[...Array.from(u??[]),...Array.from(d??[])];ee.length!==0&&ee.forEach(e=>{e(s)})}return r.on(`data`,e=>e.forEach(i)),r.on(`error`,e=>{_.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),r}function Fp(e){let t=new bp(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(),ce.on(`quit`,()=>{t.destroy()}),r}function Ip(){return{createWindow:e=>$().instance.newWindowInternal(se.BrowserWindow,e),on:(e,t)=>$().instance.on(e,t),off:(e,t)=>$().instance.off(e,t),once:(e,t)=>$().instance.once(e,t),addListener:(e,t)=>$().instance.addListener(e,t),removeListener:(e,t)=>$().instance.removeListener(e,t),removeAllListeners:()=>$().instance.removeAllListeners(),prependListener:(e,t)=>$().instance.prependListener(e,t),prependOnceListener:(e,t)=>$().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=$(),t=Re.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}function Lp(){return{scope:e=>Sp.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>$().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>$().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>$().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>$().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>$().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>$().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>$().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>$().instance.getKeyInputBlock(e)}}}function Rp(){return{track:(e,t)=>cp.getInstance().track(`custom__${e}`,t)}}function zp(){return{registerWindow:e=>{(0,wp.setupRevUtils)(e,global.OVERLAYED.electron)}}}function Bp(){let e=new Xe(`app.log`);return e.init(global.OVERLAYED.APPLICATION_ID),{scope:t=>e.scope(t),info:t=>e.info(t),warn:t=>e.warn(t),error:t=>e.error(t),submitBugReport:async(e,t)=>{try{let n=Vp(t),r=await n.generateAsync({type:`base64`}),i=await Hp(e,r);return i?[void 0,{message:`Failed to submit bug report`,error:i}]:[!0,void 0]}catch(e){return[void 0,{message:`Failed to generate logs zip`,error:e}]}}}}function Vp(e){let t=Ye(global.OVERLAYED.APPLICATION_ID),n=Qe(t),r=qe(),i=Qe(r);v.getInstance().info(`Logs path: `,t),v.getInstance().info(`Overlayed logs path: `,r);let a=new ae;return[...n,...i].forEach(([e,t])=>{v.getInstance().info(`Zipping: `,e,t);let n=`${e}/${t}`,r=p(n);a.file(t,r,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{v.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function Hp(e,t){let n={...e,version:`${global.OVERLAYED.APP_VERSION}@${global.OVERLAYED.APP_BUILD_CHANNEL}`,log_zip:`data:application/zip;base64,${t}`},r;return await fetch(`https://api.stats.cc/v1/overlay/contact`,{method:`POST`,body:JSON.stringify(n),redirect:`follow`,headers:{"Content-Type":`application/json`}}).then(async e=>{e.status>=300&&(r=await e.text())}).catch(e=>{r=e.message}),r}function Up(e){cp.getInstance().clientId=e.applicationId,cp.getInstance().userId=Qf.generateUniqueIdentifier(),_.getInstance().on(`fatal`,e=>{cp.getInstance().track(`fatal`,{message:e.message,code:e.code,data:e.data})}),_.getInstance().on(`error`,e=>{cp.getInstance().track(`error`,{message:e.message,code:e.code,data:e.data})}),_.getInstance().on(`warning`,e=>{cp.getInstance().track(`warning`,{message:e.message,code:e.code,data:e.data})})}function $(){return op.getInstance().getInterface(`OGG_SIEGE`)}export{Dp as overlayed,zf as setFetchLatestTokenCallback,fn as setUpdaterTokenResolver};
30
+ `)+`}`;var Oc=class{config;resolvedConfig;name;get[N](){return`scope`}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};constructor(e,t){this.config=Ri(j.config,t),this.resolvedConfig=Ri(j.resolvedConfig,t),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(Sc).length}`,this.name in Sc&&C(`A Scope already named ${this.name} already exists`),Sc[this.name]=this;let n=Object.entries(e).map(e=>this.preparseOwnAliasEntry(...e));n.forEach(([e,t])=>{let n=e;if(e[0]===`#`?(n=e.slice(1),n in this.aliases&&C(xc(n)),this.aliases[n]=t):(n in this.aliases&&C(xc(e)),this.aliases[n]=t,this.exportedNames.push(n)),!P(t,`module`)&&!P(t,`generic`)&&!dr(t)){let e=this.preparseOwnDefinitionFormat(t,{alias:n});P(e,`root`)?this.resolutions[n]=this.bindReference(e):this.resolutions[n]=this.createParseContext(e).id}}),Cc??=this.node(`union`,{branches:[`string`,`number`,`object`,`bigint`,`symbol`,{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[Cc.hash]=this.node(`intersection`,{},{prereduced:!0})}cacheGetter(e,t){return Object.defineProperty(this,e,{value:t}),t}get internal(){return this}_json;get json(){return this._json||this.export(),this._json}defineSchema(e){return e}generic=(...e)=>{let t=this;return(n,r)=>new ha(e,r?new ma(n):n,t,t,r??null)};units=(e,t)=>{let n=[];for(let t of e)n.includes(t)||n.push(t);let r=n.map(e=>this.node(`unit`,{unit:e},t));return this.node(`union`,r,{...t,prereduced:!0})};lazyResolutions=[];lazilyResolve(e,t){let n=this.node(`alias`,{reference:t??`synthetic`,resolve:e},{prereduced:!0});return this.resolved||this.lazyResolutions.push(n),n}schema=(e,t)=>this.finalize(this.parseSchema(e,t));parseSchema=(e,t)=>this.node(fo(e),e,t);preparseNode(e,t,n){let r=typeof e==`string`?e:fo(t,e);if(F(t)&&t.kind===r)return t;if(r===`alias`&&!n?.prereduced){let{reference:e}=qo.implementation.normalize(t,this);if(e.startsWith(`$`)){let n=this.resolveRoot(e.slice(1));t=n,r=n.kind}}else if(r===`union`&&kn(t,`object`)){let e=yc(t);e?.length===1&&(t=e[0],r=fo(t))}if(F(t)&&t.kind===r)return t;let i=hc[r],a=i.normalize?.(t,this)??t;return F(a)?a.kind===r?a:bc(r,a.kind):{...n,$:this,kind:r,def:a,prefix:n.alias??r}}bindReference(e){let t;return t=F(e)?e.$===this?e:new e.constructor(e.attachments,this):e.$===this?e:new ha(e.params,e.bodyDef,e.$,this,e.hkt),this.resolved||Object.assign(this.referencesById,t.referencesById),t}resolveRoot(e){return this.maybeResolveRoot(e)??C(Ic(e))}maybeResolveRoot(e){let t=this.maybeResolve(e);if(!P(t,`generic`))return t}maybeResolveSubalias(e){return Mc(this.aliases,e)??Mc(this.ambient,e)}get ambient(){return j.ambient}maybeResolve(e){let t=this.resolutions[e];if(t){if(typeof t!=`string`)return this.bindReference(t);let n=W[t];if(P(n,`root`))return this.resolutions[e]=n;if(P(n,`context`)){if(n.phase===`resolving`)return this.node(`alias`,{reference:`$${e}`},{prereduced:!0});if(n.phase===`resolved`)return S(`Unexpected resolved context for was uncached by its scope: ${A(n)}`);n.phase=`resolving`;let t=this.bindReference(this.parseOwnDefinitionFormat(n.def,n));return n.phase=`resolved`,W[t.id]=t,W[n.id]=t,this.resolutions[e]=t}return S(`Unexpected nodesById entry for ${t}: ${A(n)}`)}let n=this.aliases[e]??this.ambient?.[e];return n?(n=this.normalizeRootScopeValue(n),P(n,`generic`)?this.resolutions[e]=this.bindReference(n):P(n,`module`)?n.root?this.resolutions[e]=this.bindReference(n.root):C(Rc(e)):this.resolutions[e]=this.parse(n,{alias:e})):this.maybeResolveSubalias(e)}createParseContext(e){let t=e.id??_o(e.prefix);return W[t]=Object.assign(e,{[N]:`context`,$:this,id:t,phase:`unresolved`})}traversal(e){return new Ui(e,this.resolvedConfig)}import(...e){return new _c(w(this.export(...e),(e,t)=>[`#${e}`,t]))}precompilation;_exportedResolutions;_exports;export(...e){if(!this._exports){this._exports={};for(let e of this.exportedNames){let t=this.aliases[e];this._exports[e]=P(t,`module`)?vc(t,this):Ac(this.maybeResolve(e))}this.lazyResolutions.forEach(e=>e.resolution),this._exportedResolutions=Fc(this,this._exports),this._json=jc(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),this.resolvedConfig.jitless||(this.precompilation=Dc(this.references),Tc(this.references,this.precompilation)),this.resolved=!0}let t=e.length?e:this.exportedNames;return new _c(w(t,(e,t)=>[t,this._exports[t]]))}resolve(e){return this.export()[e]}node=(e,t,n={})=>{let r=this.preparseNode(e,t,n);if(F(r))return this.bindReference(r);let i=this.createParseContext(r),a=vo(i),o=this.bindReference(a);return W[i.id]=o};parse=(e,t={})=>this.finalize(this.parseDefinition(e,t));parseDefinition(e,t={}){if(P(e,`root`))return this.bindReference(e);let n=this.preparseOwnDefinitionFormat(e,t);if(P(n,`root`))return this.bindReference(n);let r=this.createParseContext(n);W[r.id]=r;let i=this.bindReference(this.parseOwnDefinitionFormat(e,r));return i.isCyclic&&(i=bo(i,r.id)),W[r.id]=i,i}finalize(e){return Ac(e),!e.precompilation&&!this.resolvedConfig.jitless&&wc(e.references),e}},kc=class extends Oc{parseOwnDefinitionFormat(e,t){return vo(t)}preparseOwnDefinitionFormat(e,t){return this.preparseNode(fo(e),e,t)}preparseOwnAliasEntry(e,t){return[e,t]}normalizeRootScopeValue(e){return e}};const Ac=e=>(e.references.filter(e=>e.hasKind(`alias`)).forEach(t=>{Object.assign(t.referencesById,t.resolution.referencesById),e.references.forEach(e=>{t.id in e.referencesById&&Object.assign(e.referencesById,t.referencesById)})}),e),jc=e=>w(e,(e,t)=>[e,P(t,`root`)||P(t,`generic`)?t.json:P(t,`module`)?jc(t):S(`Unexpected resolution ${A(t)}`)]),Mc=(e,t)=>{let n=t.indexOf(`.`);if(n===-1)return;let r=t.slice(0,n),i=e[r];if(i===void 0)return;if(!P(i,`module`))return C(Lc(r));let a=t.slice(n+1),o=i[a];if(o===void 0)return Mc(i,a);if(P(o,`root`)||P(o,`generic`))return o;if(P(o,`module`))return o.root??C(Rc(t));S(`Unexpected resolution for alias '${t}': ${A(o)}`)},Nc=(e,t)=>new kc(e,t),Pc=new kc({}),Fc=(e,t)=>{let n={};for(let r in t){let i=t[r];if(P(i,`module`)){let t=Fc(e,i),a=w(t,(e,t)=>[`${r}.${e}`,t]);Object.assign(n,a)}else P(i,`root`)||P(i,`generic`)?n[r]=i:S(`Unexpected scope resolution ${A(i)}`)}return n},Ic=e=>`'${e}' is unresolvable`,Lc=e=>`'${e}' must reference a module to be accessed using dot syntax`,Rc=e=>`Reference to submodule '${e}' must specify an alias`;Pc.export();const G=Pc.schema,zc=Pc.node;Pc.defineSchema;const K=Pc.generic,Bc=`^(?:0|[1-9]\\d*)$`,Vc=new RegExp(Bc);M(Vc);const Hc=Nc({bigint:`bigint`,boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:`number`,object:`object`,string:`string`,symbol:`symbol`,true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();j.intrinsic={...Hc};const Uc=Nc({integer:{domain:`number`,divisor:1},lengthBoundable:[`string`,Array],key:[`string`,`symbol`],nonNegativeIntegerString:{domain:`string`,pattern:Bc}},{prereducedAliases:!0}).export();Object.assign(j.intrinsic,Uc);const Wc=Nc({jsonPrimitive:[`string`,`number`,{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:`object`,index:{signature:`string`,value:`$jsonData`}},jsonData:[`$jsonPrimitive`,`$jsonObject`]},{prereducedAliases:!0}).export(),q={...Hc,...Uc,...Wc,emptyStructure:zc(`structure`,{},{prereduced:!0})};j.intrinsic={...q};const Gc=e=>typeof e==`string`&&e[0]===`d`&&(e[1]===`'`||e[1]===`"`)&&e.at(-1)===e[1],Kc=e=>e.toString()!==`Invalid Date`,qc=e=>e.slice(2,-1),Jc=e=>`'${e}' could not be parsed by the Date constructor`,Yc=(e,t)=>Xc(e,t),Xc=(e,t)=>{let n=new Date(e);if(Kc(n))return n;let r=Br(e);if(r!==void 0){let e=new Date(r);if(Kc(e))return e}return t?C(t===!0?Jc(e):t):void 0},Zc=(e,t)=>{let n=e.scanner.shiftUntil(tl[el[t]]);if(e.scanner.lookahead===``)return e.error(rl(n,t));if(e.scanner.shift(),t===`/`){try{new RegExp(n)}catch(e){C(String(e))}e.root=e.ctx.$.node(`intersection`,{domain:`string`,pattern:n},{prereduced:!0})}else if(T(t,Qc))e.root=e.ctx.$.node(`unit`,{unit:n});else{let t=Yc(n,Jc(n));e.root=e.ctx.$.node(`unit`,{meta:n,unit:t})}},Qc={"'":1,'"':1},$c={"/":1,"'":1,'"':1},el={"d'":`'`,'d"':`"`,"'":`'`,'"':`"`,"/":`/`},tl={"'":e=>e.lookahead===`'`,'"':e=>e.lookahead===`"`,"/":e=>e.lookahead===`/`},nl={'"':`double-quote`,"'":`single-quote`,"/":`forward slash`},rl=(e,t)=>`${t}${e} requires a closing ${nl[el[t]]}`,il=e=>`Private type references should not include '#'. Use '${e}' instead.`,al=`Optional definitions like 'string?' are only valid as properties in an object or tuple`,ol=`Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple`,sl={">":!0,">=":!0},cl={"<":!0,"<=":!0},ll={"<":`>`,">":`<`,"<=":`>=`,">=":`<=`,"==":`==`},ul=e=>`Unmatched )${e===``?``:` before ${e}`}`,dl=e=>`Missing ${e}`,fl=(e,t)=>`Left bounds are only valid when paired with right bounds (try ...${t}${e})`,pl=e=>`Left-bounded expressions must specify their limits using < or <= (was ${e})`,ml=(e,t,n,r)=>`An expression may have at most one left bound (parsed ${e}${ll[t]}, ${n}${ll[r]})`,hl=(e,t,n)=>gl(e,t,n,[]),gl=(e,t,n,r)=>{let i=n.parseUntilFinalizer();return r.push(i.root),i.finalizer===`>`?r.length===t.params.length?r:n.error(_l(e,t.names,r.map(e=>e.expression))):i.finalizer===`,`?gl(e,t,n,r):i.error(dl(`>`))},_l=(e,t,n)=>`${e}<${t.join(`, `)}> requires exactly ${t.length} args (got ${n.length}${n.length===0?``:`: ${n.join(`, `)}`})`,vl=e=>{let t=e.scanner.shiftUntilNextTerminator();t===`keyof`?e.addPrefix(`keyof`):e.root=bl(e,t)},yl=(e,t,n)=>{n.scanner.shiftUntilNonWhitespace();let r=n.scanner.shift();if(r!==`<`)return n.error(_l(e,t.names,[]));let i=hl(e,t,n);return t(...i)},bl=(e,t)=>xl(e,t)??Sl(e,t)??e.error(t===``?e.scanner.lookahead===`#`?il(e.shiftedByOne().scanner.shiftUntilNextTerminator()):Cl(e):Ic(t)),xl=(e,t)=>{if(e.ctx.args?.[t]){let n=e.ctx.args[t];return typeof n==`string`?e.ctx.$.node(`alias`,{reference:n},{prereduced:!0}):n}let n=e.ctx.$.maybeResolve(t);if(P(n,`root`))return n;if(n!==void 0)return P(n,`generic`)?yl(t,n,e):C(`Unexpected resolution ${A(n)}`)},Sl=(e,t)=>{let n=Vr(t);if(n!==void 0)return e.ctx.$.node(`unit`,{unit:n});let r=Wr(t);if(r!==void 0)return e.ctx.$.node(`unit`,{unit:r})},Cl=e=>{let t=e.previousOperator();return t?wl(t,e.scanner.unscanned):Tl(e.scanner.unscanned)},wl=(e,t=``)=>`Token '${e}' requires a right operand${t?` before '${t}'`:``}`,Tl=e=>`Expected an expression${e?` before '${e}'`:``}`,El=e=>e.scanner.lookahead===``?e.error(Cl(e)):e.scanner.lookahead===`(`?e.shiftedByOne().reduceGroupOpen():e.scanner.lookaheadIsIn($c)?Zc(e,e.scanner.shift()):e.scanner.lookaheadIsIn(br)?El(e.shiftedByOne()):e.scanner.lookahead===`d`&&e.scanner.nextLookahead in Qc?Zc(e,`${e.scanner.shift()}${e.scanner.shift()}`):vl(e);var Dl=class e extends ui{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>this.lookahead in e.terminatingChars)}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...br};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(t,n)=>t===`>`?n[0]===`=`?n[1]===`=`:n.trimStart()===``||T(n.trimStart()[0],e.terminatingChars):t===`=`?n[0]!==`=`:t===`,`||t===`?`};const Ol=(e,t)=>{let n=Al(e,t);if(e.root.hasKind(`unit`)){if(typeof e.root.unit==`number`){e.reduceLeftBound(e.root.unit,n),e.unsetRoot();return}if(e.root.unit instanceof Date){let t=`d'${e.root.description??e.root.unit.toISOString()}'`;e.unsetRoot(),e.reduceLeftBound(t,n);return}}return Nl(e,n)},kl={"<":1,">":1,"=":1},Al=(e,t)=>e.scanner.lookaheadIs(`=`)?`${t}${e.scanner.shift()}`:t,jl=(e,t,n,r)=>n.extends(j.intrinsic.number)?typeof t==`number`?e===`==`?[`min`,`max`]:e[0]===`>`?[`min`]:[`max`]:C(Pl(e,t,r)):n.extends(j.intrinsic.lengthBoundable)?typeof t==`number`?e===`==`?[`exactLength`]:e[0]===`>`?[`minLength`]:[`maxLength`]:C(Pl(e,t,r)):n.extends(j.intrinsic.Date)?e===`==`?[`after`,`before`]:e[0]===`>`?[`after`]:[`before`]:C(Ra(n.expression)),Ml=e=>({rule:Gc(e.limit)?qc(e.limit):e.limit,exclusive:e.comparator.length===1}),Nl=(e,t)=>{let n=e.unsetRoot(),r=e.scanner.location;e.parseOperand();let i=e.unsetRoot(),a=e.scanner.sliceChars(r,e.scanner.location);if(e.root=n,!i.hasKind(`unit`)||typeof i.unit!=`number`&&!(i.unit instanceof Date))return e.error(Pl(t,a,`right`));let o=i.unit,s=t.length===1,c=jl(t,typeof o==`number`?o:a,n,`right`);for(let n of c)e.constrainRoot(n,t===`==`?{rule:o}:{rule:o,exclusive:s});if(!e.branches.leftBound)return;if(!T(t,cl))return e.error(pl(t));let l=jl(e.branches.leftBound.comparator,e.branches.leftBound.limit,n,`left`);e.constrainRoot(l[0],Ml(e.branches.leftBound)),e.branches.leftBound=null},Pl=(e,t,n)=>`Comparator ${n===`left`?ll[e]:e} must be ${n===`left`?`preceded`:`followed`} by a corresponding literal (was ${t})`,Fl=e=>{e.scanner.shiftUntilNonWhitespace();let t=e.scanner.shiftUntilNextTerminator();e.root=e.root.brand(t)},Il=e=>{let t=e.scanner.shiftUntilNextTerminator(),n=Hr(t,{errorOnFail:Ll(t)});n===0&&e.error(Ll(0)),e.root=e.root.constrain(`divisor`,n)},Ll=e=>`% operator must be followed by a non-zero integer literal (was ${e})`,Rl=e=>{let t=e.scanner.shift();return t===``?e.finalize(``):t===`[`?e.scanner.shift()===`]`?e.setRoot(e.root.array()):e.error(Bl):t===`|`?e.scanner.lookahead===`>`?e.shiftedByOne().pushRootToBranch(`|>`):e.pushRootToBranch(t):t===`&`?e.pushRootToBranch(t):t===`)`?e.finalizeGroup():Dl.lookaheadIsFinalizing(t,e.scanner.unscanned)?e.finalize(t):T(t,kl)?Ol(e,t):t===`%`?Il(e):t===`#`?Fl(e):t in br?Rl(e):e.error(zl(t))},zl=(e,t=``)=>`'${e}' is not allowed here${t&&` (should be ${t})`}`,Bl=`Missing expected ']'`,Vl=e=>{let t=e.unsetRoot();e.parseOperand();let n=e.unsetRoot();if(!n.hasKind(`unit`))return e.error(Hl(n.expression));let r=n.unit instanceof Date?()=>new Date(n.unit):n.unit;return[t,`=`,r]},Hl=e=>`Default value '${e}' must a literal value`,Ul=(e,t)=>{let n=t.$.maybeResolveRoot(e);if(n)return n;if(e.endsWith(`[]`)){let n=t.$.maybeResolveRoot(e.slice(0,-2));if(n)return n.array()}let r=new ql(new Dl(e),t),i=Wl(r);return r.finalizer===`>`&&C(zl(`>`)),i},Wl=e=>{e.parseOperand();let t=Gl(e).root;return t?(e.finalizer===`=`?t=Vl(e):e.finalizer===`?`&&(t=[t,`?`]),e.scanner.shiftUntilNonWhitespace(),e.scanner.lookahead&&C(zl(e.scanner.lookahead)),t):S(`Root was unexpectedly unset after parsing string '${e.scanner.scanned}'`)},Gl=e=>{for(;e.finalizer===void 0;)Kl(e);return e},Kl=e=>e.hasRoot()?e.parseOperator():e.parseOperand();var ql=class e{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(e,t){this.scanner=e,this.ctx=t}error(e){return C(e)}hasRoot(){return this.root!==void 0}setRoot(e){this.root=e}unsetRoot(){let e=this.root;return this.root=void 0,e}constrainRoot(...e){this.root=this.root.constrain(e[0],e[1])}finalize(e){if(this.groups.length)return this.error(dl(`)`));this.finalizeBranches(),this.finalizer=e}reduceLeftBound(e,t){let n=ll[t];if(!T(n,sl))return this.error(pl(t));if(this.branches.leftBound)return this.error(ml(this.branches.leftBound.limit,this.branches.leftBound.comparator,e,n));this.branches.leftBound={comparator:n,limit:e}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch(`|>`),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch(`|`),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch(`&`),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let e=this.groups.pop();if(!e)return this.error(ul(this.scanner.unscanned));this.branches=e}addPrefix(e){this.branches.prefixes.push(e)}applyPrefixes(){for(;this.branches.prefixes.length;){let e=this.branches.prefixes.pop();this.root=e===`keyof`?this.root.keyof():S(`Unexpected prefix '${e}'`)}}pushRootToBranch(e){this.assertRangeUnset(),this.applyPrefixes();let t=this.root;this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(t)??t,e!==`&`&&(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,e!==`|`&&(this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null))}parseUntilFinalizer(){return Gl(new e(this.scanner,this.ctx))}parseOperator(){return Rl(this)}parseOperand(){return El(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(fl(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?`&`:this.branches.union?`|`:this.branches.pipe?`|>`:void 0)}shiftedByOne(){return this.scanner.shift(),this}};const Jl=`An empty string is not a valid generic parameter name`,Yl=(e,t,n)=>{e.shiftUntilNonWhitespace();let r=e.shiftUntilNextTerminator();return r===``?e.lookahead===``&&t.length?t:C(Jl):(e.shiftUntilNonWhitespace(),Zl(e,r,t,n))},Xl=`extends `,Zl=(e,t,n,r)=>{if(e.shiftUntilNonWhitespace(),e.unscanned.startsWith(Xl))e.jumpForward(8);else return e.lookahead===`,`&&e.shift(),n.push(t),Yl(e,n,r);let i=Gl(new ql(e,r));return n.push([t,i.root]),Yl(e,n,r)};var Ql=class extends mr{$;constructor(e){super((...t)=>new $l(e)(...t),{bind:e}),this.$=e}in(e){return new $l(this.$,e===void 0?void 0:this.$.parse(e))}at(e,t){return new $l(this.$).at(e,t)}case(e,t){return new $l(this.$).case(e,t)}},$l=class extends mr{$;in;key;branches=[];constructor(e,t){super(e=>this.caseEntries(Object.entries(e).map(([e,t])=>e===`default`?[e,t]:[this.$.parse(e),t]))),this.$=e,this.in=t}at(e,t){return this.key&&C(nu),this.branches.length&&C(tu),this.key=e,t?this.match(t):this}case(e,t){return this.caseEntry(this.$.parse(e),t)}caseEntry(e,t){let n=this.key?this.$.parse({[this.key]:e}):e,r=n.pipe(t);return this.branches.push(r),this}match(e){return this(e)}strings(e){return this.caseEntries(Object.entries(e).map(([e,t])=>e===`default`?[e,t]:[this.$.node(`unit`,{unit:e}),t]))}caseEntries(e){for(let t=0;t<e.length;t++){let[n,r]=e[t];if(n===`default`)return t!==e.length-1&&C(`default may only be specified as the last key of a switch definition`),this.default(r);if(typeof r!=`function`)return C(`Value for case "${n}" must be a function (was ${x(r)})`);this.caseEntry(n,r)}return this}default(e){typeof e==`function`&&this.case(q.unknown,e);let t={branches:this.branches,ordered:!0};(e===`never`||e===`assert`)&&(t.meta={onFail:eu});let n=this.$.node(`union`,t);if(!this.in)return this.$.finalize(n);let r=this.in.pipe(n);return(e===`never`||e===`assert`)&&(r=r.withMeta({onFail:eu})),this.$.finalize(r)}};const eu=e=>e.throw(),tu=`A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')`,nu=`At most one key matcher may be specified per expression`,ru=(e,t)=>{if(D(e)){if(e[1]===`=`)return[t.$.parseOwnDefinitionFormat(e[0],t),`=`,e[2]];if(e[1]===`?`)return[t.$.parseOwnDefinitionFormat(e[0],t),`?`]}return Vu(e,t)},iu=`Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }`,au=`Only required keys may specify default values, e.g. { value: 'number = 0' }`,ou=(e,t)=>{let n,r={},i=Wn(e);for(let[e,a]of i){let i=uu(e);if(i.kind===`spread`){if(!Un(r))return C(lu);let e=t.$.parseOwnDefinitionFormat(a,t);if(e.equals(q.object))continue;if(!e.hasKind(`intersection`)||!e.basis?.equals(q.object))return C(du(e.expression));n=e.structure;continue}if(i.kind===`undeclared`){a!==`reject`&&a!==`delete`&&a!==`ignore`&&C(cu(a)),r.undeclared=a;continue}let o=ru(a,t),s=i;if(i.kind===`required`){D(o)?su(r,`optional`,o[1]===`=`?{key:i.normalized,value:o[0],default:o[2]}:{key:i.normalized,value:o[0]},t):su(r,`required`,{key:i.normalized,value:o},t);continue}if(D(o)&&(o[1]===`?`&&C(iu),o[1]===`=`&&C(au)),i.kind===`optional`){su(r,`optional`,{key:i.normalized,value:o},t);continue}let c=t.$.parseOwnDefinitionFormat(s.normalized,t),l=fc(c,o,t.$);l.index&&(r.index=b(r.index,l.index)),l.required&&(r.required=b(r.required,l.required))}let a=t.$.node(`structure`,r);return t.$.parseSchema({domain:`object`,structure:n?.merge(a)??a})},su=(e,t,n,r)=>{e[t]=b(e[t],r.$.node(t,n))},cu=e=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${A(e)})`,lu=`Spread operator may only be used as the first key in an object`,uu=e=>typeof e==`symbol`?{kind:`required`,normalized:e}:e.at(-1)===`?`?e.at(-2)===yr?{kind:`required`,normalized:`${e.slice(0,-2)}?`}:{kind:`optional`,normalized:e.slice(0,-1)}:e[0]===`[`&&e.at(-1)===`]`?{kind:`index`,normalized:e.slice(1,-1)}:e[0]===yr&&e[1]===`[`&&e.at(-1)===`]`?{kind:`required`,normalized:e.slice(1)}:e===`...`?{kind:`spread`}:e===`+`?{kind:`undeclared`}:{kind:`required`,normalized:e===`\\...`?`...`:e===`\\+`?`+`:e},du=e=>`Spread operand must resolve to an object literal type (was ${e})`,fu=(e,t)=>Du(e)?Eu[e[0]](e,t):wu(e)?Cu[e[1]](e,t):null,pu=(e,t)=>t.$.parseOwnDefinitionFormat(e[1],t).keyof(),mu=(e,t)=>{if(e[2]===void 0)return C(wl(e[1],``));let n=t.$.parseOwnDefinitionFormat(e[0],t),r=t.$.parseOwnDefinitionFormat(e[2],t);if(e[1]===`|`)return t.$.node(`union`,{branches:[n,r]});let i=e[1]===`&`?B(n,r,t.$):ta(n,r,t.$);return i instanceof z?i.throw():i},hu=(e,t)=>t.$.parseOwnDefinitionFormat(e[0],t).array(),gu=(e,t)=>typeof e[2]==`function`?t.$.parseOwnDefinitionFormat(e[0],t).pipe(e[2]):C(_u(`=>`,e[2])),_u=(e,t)=>`${e===`:`?`Narrow`:`Morph`} expression requires a function following '${e}' (was ${typeof t})`,vu=(e,t)=>typeof e[2]==`function`?t.$.parseOwnDefinitionFormat(e[0],t).constrain(`predicate`,e[2]):C(_u(`:`,e[2])),yu=(e,t)=>t.$.parseOwnDefinitionFormat(e[0],t).configureDescendants(e[2],`shallow`),bu=e=>e,xu=bu({"[]":hu,"?":()=>C(al)}),Su=bu({"|":mu,"&":mu,":":vu,"=>":gu,"|>":mu,"@":yu,"=":()=>C(ol)}),Cu={...xu,...Su},wu=e=>Cu[e[1]]!==void 0,Tu=e=>e,Eu=Tu({keyof:pu,instanceof:(e,t)=>{if(typeof e[1]!=`function`)return C(Ou(er(e[1])));let n=e.slice(1).map(e=>typeof e==`function`?t.$.node(`proto`,{proto:e}):C(Ou(er(e))));return n.length===1?n[0]:t.$.node(`union`,{branches:n})},"===":(e,t)=>t.$.units(e.slice(1))}),Du=e=>Eu[e[0]]!==void 0,Ou=e=>`Expected a constructor following 'instanceof' operator (was ${e})`,ku=(e,t)=>{let n=[{}],r=0;for(;r<e.length;){let i=!1;e[r]===`...`&&r<e.length-1&&(i=!0,r++);let a=ru(e[r],t),[o,s,c]=D(a)?a:[a];if(r++,i){if(!o.extends(j.intrinsic.Array))return C(Fu(o.expression));n=n.flatMap(e=>o.distribute(t=>Pu(Ci(e),t)))}else n=n.map(e=>s===`?`?ju(e,o):s===`=`?Mu(e,o,c):Au(e,o))}return t.$.parseSchema(n.map(e=>Un(e)?{proto:Array,exactLength:0}:{proto:Array,sequence:e}))},Au=(e,t)=>e.defaultables||e.optionals?C(e.variadic?Zs:Lu):(e.variadic?e.postfix=b(e.postfix,t):e.prefix=b(e.prefix,t),e),ju=(e,t)=>e.variadic?C(Ru):(e.optionals=b(e.optionals,t),e),Mu=(e,t,n)=>e.variadic?C(Ru):e.optionals?C(zu):(e.defaultables=b(e.defaultables,[[t,n]]),e),Nu=(e,t)=>(e.postfix&&C(Iu),e.variadic?e.variadic.equals(t)||C(Iu):e.variadic=t.internal,e),Pu=(e,t)=>{let n=t.select({method:`find`,kind:`sequence`});return n?(n.prefix?.forEach(t=>Au(e,t)),n.optionals?.forEach(t=>ju(e,t)),n.variadic&&Nu(e,n.variadic),n.postfix?.forEach(t=>Au(e,t)),e):Nu(e,j.intrinsic.unknown)},Fu=e=>`Spread element must be an array (was ${e})`,Iu=`A tuple may have at most one variadic element`,Lu=`A required element may not follow an optional element`,Ru=`An optional element may not follow a variadic element`,zu=`A defaultable element may not follow an optional element without a default`,Bu={},Vu=(e,t)=>{if(typeof e==`string`){if(t.args&&Object.keys(t.args).some(t=>e.includes(t)))return Ul(e,t);let n=Bu[t.$.name]??={};return n[e]??=Ul(e,t)}return kn(e,`object`)?Hu(e,t):C(Wu(x(e)))},Hu=(e,t)=>{let n=$n(e);switch(n){case void 0:return P(e,`root`)?e:ou(e,t);case`Array`:return Uu(e,t);case`RegExp`:return t.$.node(`intersection`,{domain:`string`,pattern:e},{prereduced:!0});case`Function`:{let t=dr(e)?e():e;return P(t,`root`)?t:C(Wu(`Function`))}default:return C(Wu(n??A(e)))}},Uu=(e,t)=>fu(e,t)??ku(e,t),Wu=e=>`Type definitions must be strings or objects (was ${e})`;var Gu=class extends mr{constructor(e){let t=Object.assign({errors:Bi,hkt:O,$:e,raw:e.parse,module:e.constructor.module,scope:e.constructor.scope,define:e.define,match:e.match,generic:e.generic,schema:e.schema,keywords:e.ambient,unit:e.unit,enumerated:e.enumerated,instanceOf:e.instanceOf,valueOf:e.valueOf},e.ambientAttachments);super((...t)=>{if(t.length===1)return e.parse(t[0]);if(t.length===2&&typeof t[0]==`string`&&t[0][0]===`<`&&t[0].at(-1)===`>`){let n=t[0].slice(1,-1),r=e.parseGenericParams(n,{});return new ha(r,t[1],e,e,null)}return e.parse(t)},{bind:e,attach:t})}};const Ku=j;var qu=class e extends Oc{get ambientAttachments(){if(Ku.typeAttachments)return this.cacheGetter(`ambientAttachments`,w(Ku.typeAttachments,(e,t)=>[e,this.bindReference(t)]))}preparseOwnAliasEntry(e,t){let n=e.indexOf(`<`);if(n===-1){if(P(t,`module`)||P(t,`generic`))return[e,t];let n=this.name===`ark`?e:e===`root`?this.name:`${this.name}.${e}`,r=this.resolvedConfig.keywords?.[n];return r&&(t=[t,`@`,r]),[e,t]}e.at(-1)!==`>`&&C(`'>' must be the last character of a generic declaration in a scope`);let r=e.slice(0,n),i=e.slice(n+1,-1);return[r,()=>{let e=this.parseGenericParams(i,{alias:r}),n=pa(e,t,this);return n}]}parseGenericParams(e,t){return Yl(new Dl(e),[],this.createParseContext({...t,def:e,prefix:`generic`}))}normalizeRootScopeValue(e){return dr(e)&&!P(e,`generic`)?e():e}preparseOwnDefinitionFormat(e,t){return{...t,def:e,prefix:t.alias??`type`}}parseOwnDefinitionFormat(e,t){let n=t.alias&&t.alias in this.aliases;!n&&!t.args&&(t.args={this:t.id});let r=Vu(e,t);if(D(r)){if(r[1]===`=`)return C(ol);if(r[1]===`?`)return C(al)}return r}unit=e=>this.units([e]);valueOf=e=>this.units(qn(e));enumerated=(...e)=>this.units(e);instanceOf=e=>this.node(`proto`,{proto:e},{prereduced:!0});match=new Ql(this);declare=()=>({type:this.type});define(e){return e}type=new Gu(this);static scope=(t,n={})=>new e(t,n);static module=(e,t={})=>this.scope(e,t).export()};const Ju=Object.assign(qu.scope,{define:e=>e}),J=qu;var Yu=class extends O{};const Xu=K([`base`,q.object],[`props`,q.object])(e=>e.base.merge(e.props),Yu),Zu=J.module({Key:q.key,Merge:Xu});var Qu=class extends O{};const $u=K(`element`)(e=>{let t=e.element.exclude(q.Array),n=t.array();return t.rawOr(n).pipe(yn).distribute(e=>e.assertHasKind(`morph`).declareOut(n),G)},Qu),ed=J.module({root:q.Array,readonly:`root`,index:q.nonNegativeIntegerString,liftFrom:$u},{name:`Array`}),td=G([`string`,qr.FileConstructor]),nd=td.rawOr(td.array()),rd=G({meta:`an object representing parsed form data`,domain:`object`,index:{signature:`string`,value:nd}}),id=J.module({root:[`instanceof`,FormData],value:td,parsed:rd,parse:G({in:FormData,morphs:e=>{let t={};for(let[n,r]of e)if(n in t){let e=t[n];typeof e==`string`||e instanceof qr.FileConstructor?t[n]=[e,r]:e.push(r)}else t[n]=r;return t},declaredOut:rd})},{name:`FormData`}),ad=J.module({Int8:[`instanceof`,Int8Array],Uint8:[`instanceof`,Uint8Array],Uint8Clamped:[`instanceof`,Uint8ClampedArray],Int16:[`instanceof`,Int16Array],Uint16:[`instanceof`,Uint16Array],Int32:[`instanceof`,Int32Array],Uint32:[`instanceof`,Uint32Array],Float32:[`instanceof`,Float32Array],Float64:[`instanceof`,Float64Array],BigInt64:[`instanceof`,BigInt64Array],BigUint64:[`instanceof`,BigUint64Array]},{name:`TypedArray`}),od={Boolean:1,Number:1,String:1},sd=J.module({...w({...Jn,...Xn},(e,t)=>e in od?[]:[e,[`instanceof`,t]]),Array:ed,TypedArray:ad,FormData:id}),cd=G({domain:{domain:`number`,meta:`a number representing a Unix timestamp`},divisor:{rule:1,meta:`an integer representing a Unix timestamp`},min:{rule:-864e13,meta:`a Unix timestamp after -8640000000000000`},max:{rule:864e13,meta:`a Unix timestamp before 8640000000000000`},meta:`an integer representing a safe Unix timestamp`}),ld=G({domain:`number`,divisor:1}),ud=J.module({root:q.number,integer:ld,epoch:cd,safe:G({domain:{domain:`number`,numberAllowsNaN:!1},min:-9007199254740991,max:9007199254740991}),NaN:[`===`,NaN],Infinity:[`===`,1/0],NegativeInfinity:[`===`,-1/0]},{name:`number`}),Y=(e,t)=>zc(`intersection`,{domain:`string`,pattern:{rule:e.source,flags:e.flags,meta:t}}),dd=Y(jr,`a well-formed integer string`),fd=J.module({root:dd,parse:G({in:dd,morphs:(e,t)=>{let n=Number.parseInt(e);return Number.isSafeInteger(n)?n:t.error(`an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER`)},declaredOut:q.integer})},{name:`string.integer`}),pd=Y(/^[0-9a-fA-F]+$/,`hex characters only`),md=J.module({root:Y(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,`base64-encoded`),url:Y(/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2}(?:==|%3D%3D)?|[A-Za-z0-9_-]{3}(?:=|%3D)?)?$/,`base64url-encoded`)},{name:`string.base64`}),hd=Y(/^[A-Z].*$/,`capitalized`),gd=J.module({root:G({in:`string`,morphs:e=>e.charAt(0).toUpperCase()+e.slice(1),declaredOut:hd}),preformatted:hd},{name:`string.capitalize`}),_d=e=>{let t=e.replace(/[- ]+/g,``),n=0,r,i,a=!1;for(let e=t.length-1;e>=0;e--)r=t.substring(e,e+1),i=Number.parseInt(r,10),a?(i*=2,i>=10?n+=i%10+1:n+=i):n+=i,a=!a;return!!(n%10==0&&t)},vd=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,yd=G({domain:`string`,pattern:{meta:`a credit card number`,rule:vd.source},predicate:{meta:`a credit card number`,predicate:_d}}),bd=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,xd=e=>!Number.isNaN(new Date(e).valueOf()),Sd=G({domain:`string`,predicate:{meta:`a parsable date`,predicate:xd}}).assertHasKind(`intersection`),Cd=fd.root.internal.narrow((e,t)=>{let n=Number.parseInt(e),r=ud.epoch(n);return r instanceof Bi?(t.errors.merge(r),!1):!0}).withMeta({description:`an integer string representing a safe Unix timestamp`}).assertHasKind(`intersection`),wd=J.module({root:Cd,parse:G({in:Cd,morphs:e=>new Date(e),declaredOut:q.Date})},{name:`string.date.epoch`}),Td=Y(bd,`an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date`).internal.assertHasKind(`intersection`),Ed=J.module({root:Td,parse:G({in:Td,morphs:e=>new Date(e),declaredOut:q.Date})},{name:`string.date.iso`}),Dd=J.module({root:Sd,parse:G({declaredIn:Sd,in:`string`,morphs:(e,t)=>{let n=new Date(e);return Number.isNaN(n.valueOf())?t.error(`a parsable date`):n},declaredOut:q.Date}),iso:Ed,epoch:wd},{name:`string.date`}),Od=Y(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,`an email address`),kd=`(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])`,Ad=`(${kd}[.]){3}${kd}`,jd=RegExp(`^${Ad}$`),X=`(?:[0-9a-fA-F]{1,4})`,Md=RegExp(`^((?:${X}:){7}(?:${X}|:)|(?:${X}:){6}(?:${Ad}|:${X}|:)|(?:${X}:){5}(?::${Ad}|(:${X}){1,2}|:)|(?:${X}:){4}(?:(:${X}){0,1}:${Ad}|(:${X}){1,3}|:)|(?:${X}:){3}(?:(:${X}){0,2}:${Ad}|(:${X}){1,4}|:)|(?:${X}:){2}(?:(:${X}){0,3}:${Ad}|(:${X}){1,5}|:)|(?:${X}:){1}(?:(:${X}){0,4}:${Ad}|(:${X}){1,6}|:)|(?::((?::${X}){0,5}:${Ad}|(?::${X}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?\$`),Nd=J.module({root:[`v4 | v6`,`@`,`an IP address`],v4:Y(jd,`an IPv4 address`),v6:Y(Md,`an IPv6 address`)},{name:`string.ip`}),Pd=`a JSON string`,Fd=e=>{if(!(e instanceof SyntaxError))throw e;return`must be ${Pd} (${e})`},Id=G({meta:Pd,domain:`string`,predicate:{meta:Pd,predicate:(e,t)=>{try{return JSON.parse(e),!0}catch(e){return t.reject({code:`predicate`,expected:Pd,problem:Fd(e)})}}}}),Ld=(e,t)=>{if(e.length===0)return t.error({code:`predicate`,expected:Pd,actual:`empty`});try{return JSON.parse(e)}catch(e){return t.error({code:`predicate`,expected:Pd,problem:Fd(e)})}},Rd=J.module({root:Id,parse:G({meta:`safe JSON string parser`,in:`string`,morphs:Ld,declaredOut:q.jsonObject})},{name:`string.json`}),zd=Y(/^[a-z]*$/,`only lowercase letters`),Bd=J.module({root:G({in:`string`,morphs:e=>e.toLowerCase(),declaredOut:zd}),preformatted:zd},{name:`string.lower`}),Vd=[`NFC`,`NFD`,`NFKC`,`NFKD`],Hd=w(Vd,(e,t)=>[t,G({domain:`string`,predicate:e=>e.normalize(t)===e,meta:`${t}-normalized unicode`})]),Ud=w(Vd,(e,t)=>[t,G({in:`string`,morphs:e=>e.normalize(t),declaredOut:Hd[t]})]),Wd=J.module({root:Ud.NFC,preformatted:Hd.NFC},{name:`string.normalize.NFC`}),Gd=J.module({root:Ud.NFD,preformatted:Hd.NFD},{name:`string.normalize.NFD`}),Kd=J.module({root:Ud.NFKC,preformatted:Hd.NFKC},{name:`string.normalize.NFKC`}),qd=J.module({root:Ud.NFKD,preformatted:Hd.NFKD},{name:`string.normalize.NFKD`}),Jd=J.module({root:`NFC`,NFC:Wd,NFD:Gd,NFKC:Kd,NFKD:qd},{name:`string.normalize`}),Yd=Y(Or,`a well-formed numeric string`),Xd=J.module({root:Yd,parse:G({in:Yd,morphs:e=>Number.parseFloat(e),declaredOut:q.number})},{name:`string.numeric`}),Zd=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Qd=Y(Zd,`a semantic version (see https://semver.org/)`),$d=Y(/^\S.*\S$|^\S?$/,`trimmed`),ef=J.module({root:G({in:`string`,morphs:e=>e.trim(),declaredOut:$d}),preformatted:$d},{name:`string.trim`}),tf=Y(/^[A-Z]*$/,`only uppercase letters`),nf=J.module({root:G({in:`string`,morphs:e=>e.toUpperCase(),declaredOut:tf}),preformatted:tf},{name:`string.upper`}),rf=e=>{if(URL.canParse)return URL.canParse(e);try{return new URL(e),!0}catch{return!1}},af=G({domain:`string`,predicate:{meta:`a URL string`,predicate:rf}}),sf=J.module({root:af,parse:G({declaredIn:af,in:`string`,morphs:(e,t)=>{try{return new URL(e)}catch{return t.error(`a URL string`)}},declaredOut:G(URL)})},{name:`string.url`}),cf=J.module({root:[`versioned | nil | max`,`@`,`a UUID`],"#nil":`'00000000-0000-0000-0000-000000000000'`,"#max":`'ffffffff-ffff-ffff-ffff-ffffffffffff'`,"#versioned":/[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i,v1:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv1`),v2:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-2[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv2`),v3:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv3`),v4:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv4`),v5:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv5`),v6:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv6`),v7:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv7`),v8:Y(/^[0-9a-f]{8}-[0-9a-f]{4}-8[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,`a UUIDv8`)},{name:`string.uuid`}),lf=J.module({root:q.string,alpha:Y(/^[A-Za-z]*$/,`only letters`),alphanumeric:Y(/^[A-Za-z\d]*$/,`only letters and digits 0-9`),hex:pd,base64:md,capitalize:gd,creditCard:yd,date:Dd,digits:Y(/^\d*$/,`only digits 0-9`),email:Od,integer:fd,ip:Nd,json:Rd,lower:Bd,normalize:Jd,numeric:Xd,semver:Qd,trim:ef,upper:nf,url:sf,uuid:cf},{name:`string`}),uf=J.module({bigint:q.bigint,boolean:q.boolean,false:q.false,never:q.never,null:q.null,number:q.number,object:q.object,string:q.string,symbol:q.symbol,true:q.true,unknown:q.unknown,undefined:q.undefined}),df=J.module({root:q.unknown,any:q.unknown},{name:`unknown`}),ff=J.module({root:q.jsonObject,stringify:zc(`morph`,{in:q.jsonObject,morphs:e=>JSON.stringify(e),declaredOut:q.string})},{name:`object.json`}),pf=J.module({root:q.object,json:ff},{name:`object`});var mf=class extends O{description=`a generic type that instantiates an object from a single index signature and corresponding value type`};const hf=K([`K`,q.key],`V`)(e=>({domain:`object`,index:{signature:e.K,value:e.V}}),mf);var gf=class extends O{};const _f=K([`T`,q.object],[`K`,q.key])(e=>e.T.pick(e.K),gf);var vf=class extends O{};const yf=K([`T`,q.object],[`K`,q.key])(e=>e.T.omit(e.K),vf);var bf=class extends O{};const xf=K([`T`,q.object])(e=>e.T.partial(),bf);var Sf=class extends O{};const Cf=K([`T`,q.object])(e=>e.T.required(),Sf);var wf=class extends O{};const Tf=K(`T`,`U`)(e=>e.T.exclude(e.U),wf);var Ef=class extends O{};const Df=K(`T`,`U`)(e=>e.T.extract(e.U),Ef),Of=J.module({Exclude:Tf,Extract:Df,Omit:yf,Partial:xf,Pick:_f,Record:hf,Required:Cf}),kf=Ju({...uf,...Of,...sd,...Zu,string:lf,number:ud,object:pf,unknown:df},{prereducedAliases:!0,name:`ark`}),Z=kf.export();Object.assign(Ku.ambient,Z),Ku.typeAttachments={string:Z.string.root,number:Z.number.root,bigint:Z.bigint,boolean:Z.boolean,symbol:Z.symbol,undefined:Z.undefined,null:Z.null,object:Z.object.root,unknown:Z.unknown.root,false:Z.false,true:Z.true,never:Z.never,arrayIndex:Z.Array.index,Key:Z.Key,Record:Z.Record,Array:Z.Array.root,Date:Z.Date},Object.assign(kf.type,Ku.typeAttachments),kf.match,kf.generic,kf.schema,kf.define,kf.declare;function Af(e){return e}function jf(e){return e?t=>(e(t),t):Af}const Mf=jf();function Nf(e,t){return pn.get(`/v1/public/raven/games/${e}/builds/${t}`)}function Pf(e,t){return pn.post(`/v1/public/raven/games/${e}/builds/upload`,null,{params:t})}function Ff(e,t){let n=new FormData;return n.append(`file`,t.chunk),pn.patch(`/v1/public/raven/games/${e}/builds/upload`,n,{params:t})}function If(e){return e instanceof Error&&(e.name===`XiorError`||e.name===`XiorTimeoutError`)}function Lf(e){return!!(e&&`kind`in e.data&&`message`in e.data)}let Rf;function zf(e){Rf=e}var Bf=class extends et{UPDATE_CHECK_INTERVAL_MS=1e3*60*5;targetDir;updateInterval;constructor(){super(`NativeModuleManager`),this.targetDir=u.join(Ke(),`resources`),this.logger.log(`Target directory`,this.targetDir)}async initWithDlls(e){super.init(),await h.mkdir(this.targetDir,{recursive:!0}),await this.checkForUpdates(e),clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.checkForUpdates(e),this.UPDATE_CHECK_INTERVAL_MS)}destroy(){this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=void 0),super.destroy()}async getCurrentVersion(e){try{let t=u.join(this.targetDir,e,`version.txt`);return await h.readFile(t,`utf-8`)}catch{return null}}getTargetPath(e){return u.join(this.targetDir,e)}getTargetVersionPath(e,t){return u.join(this.getTargetPath(e),t)}async checkForUpdates(e){let t=global.OVERLAYED.APP_BUILD_CHANNEL;if(this.logger.log(`Checking for updates`),!t){this.logger.error(`Invalid VITE_BUILD_CHANNEL`);return}await Rf?.();for(let n of e)try{let{data:e}=await hn(n,t),r=await this.getCurrentVersion(n);this.logger.log(`${n} > Update Check. current: ${r}, latest: ${e}`);let i=e!==r;this.logger.log(`${n} > Update found: ${r} -> ${e}`),await this.downloadAndExtractDll(n,e,t,i),this.logger.log(`${n} > Downloaded and extracted`),i&&(this.logger.log(`${n} > Cleaning up versions older than ${e}`),await this.cleanupOldVersions(n,e)),this.emit(`dllUpdated`,{identifier:n,version:e})}catch(e){this.logger.error(`${n} > Error checking/updating`,e)}}async downloadAndExtractDll(e,t,n,r){let{data:i}=await gn(e,n),a=this.getTargetPath(e),o=this.getTargetVersionPath(e,t);await h.mkdir(o,{recursive:!0});let s=new ae;await s.loadAsync(i);let c=Object.keys(s.files).map(async t=>{let n=s.files[t];if(n&&!n.dir){let i=u.join(o,t);if(!r)try{await h.access(i,h.constants.F_OK);return}catch{this.logger.warn(`${e} > File missing, re-downloading: ${i}`)}let a=await n.async(`nodebuffer`);await h.writeFile(i,a)}});await Promise.all(c);let l=u.join(a,`version.txt`);this.logger.log(`Saving version file`,l),await h.writeFile(l,t)}async cleanupOldVersions(e,t){let n=u.join(this.targetDir,e),r=await h.readdir(n,{withFileTypes:!0});for(let e of r)e.isDirectory()&&e.name!==t&&await h.rm(u.join(n,e.name),{recursive:!0,force:!0})}};const Vf=g(Bf);var Hf=class extends et{REFETCH_INTERVAL=1e3*60*5;FAILED_REFETCH_INTERVAL=1e3*30;_ravenConfig;_executableToGameMap=new Map;_executablesArray=[];_refetchIntervalHandler=null;_failedRefetchTimeoutHandler=null;constructor(){super(`RavenManager`)}init(){super.init(),this.fetchRavenConfig(),this._refetchIntervalHandler=setInterval(()=>{this._failedRefetchTimeoutHandler&&(clearTimeout(this._failedRefetchTimeoutHandler),this._failedRefetchTimeoutHandler=null),this.fetchRavenConfig()},this.REFETCH_INTERVAL)}getExecutableData(e){return this._executableToGameMap.get(e.toLowerCase())??null}get executables(){return this._executablesArray}get executablesMap(){return this._executableToGameMap}destroy(){this._refetchIntervalHandler&&clearInterval(this._refetchIntervalHandler),this._failedRefetchTimeoutHandler&&clearTimeout(this._failedRefetchTimeoutHandler),Vf.getInstance().destroy(),super.destroy()}async fetchRavenConfig(){try{let e=await vn(),t={games:[...e.data.games,{name:`Valorant`,identifier:Mf(`valorant`),executables:[`VALORANT-Win64-Shipping.exe`],modules:[]}]};this._ravenConfig=t,this.resetState();let n=new Set;for(let e of this._ravenConfig.games){for(let t of e.executables){let n=t.toLowerCase();this._executableToGameMap.set(n,e),this._executablesArray.push(n)}e.modules.forEach(e=>n.add(e))}await Vf.getInstance().initWithDlls(Array.from(n)),this.logger.log(`Raven updated`,this._ravenConfig),this.emit(`executablesUpdated`,{executables:this.executables,map:this._executableToGameMap})}catch(e){this.logger.error(`Failed to fetch Raven config`,e),this._failedRefetchTimeoutHandler=setTimeout(()=>this.fetchRavenConfig(),this.FAILED_REFETCH_INTERVAL)}}resetState(){this._executableToGameMap.clear(),this._executablesArray=[]}};const Uf=g(Hf),Wf=e(import.meta.url),{PipeEventServer:Gf,PipeEventClient:Kf,PipeEventBase:qf,ProcessMonitor:Jf,Process:Yf,InjectionMethod:Xf,AccessLevel:Zf,HardwareInterface:Qf}=Wf(`@overlayed/app/dist/native-interface/build/overlayed_native_interface_x64.node`);var $f=class extends et{_processMonitor;_processes=new Map;boundOnRavenManagerExecutablesUpdated=this.onRavenManagerExecutablesUpdated.bind(this);constructor(){super(`ProcessManager`),this._processMonitor=new Jf}get hasAnyActiveProcesses(){return this.activeProcesses.length>0}get activeProcesses(){return Array.from(this._processes.values()).flat().filter(e=>!e.destroyedAt)}init(){super.init(),Uf.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(){Uf.getInstance().off(`executablesUpdated`,this.boundOnRavenManagerExecutablesUpdated),this._processes.clear(),this._processMonitor.removeAllListeners(),super.destroy()}isProcessRunning(e){let t=this._processes.get(e);return t?.some(e=>!e.destroyedAt)??!1}onRavenManagerExecutablesUpdated(e){e.executables.forEach(e=>{this.logger.log(`Monitoring process`,e),this._processMonitor.registerProcess(e)})}addProcess(e){if(!e.name)return;let t=this._processes.get(e.name);if(!t){this._processes.set(e.name,[e]);return}this._processes.set(e.name,t.concat(e))}deleteProcess(e){if(!e.name)return;let t=this._processes.get(e.name),n=t?.filter(t=>t.id!==e.id)??[];n.length===0?this._processes.delete(e.name):this._processes.set(e.name,n)}};const ep=g($f),tp=e(import.meta.url),{RenderInterface:np,renderHookPath:rp}=tp(`@overlayed/app/dist/render-interface/build/overlayed_render_interface_x64.node`);var ip=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}}},ap=class{interfaces={};constructor(){}createInterface(e){return this.interfaces[e]||(this.interfaces[e]=new ip(new np(e,{access:1}))),this.interfaces[e]}getInterface(e){return this.interfaces[e]?this.interfaces[e]:this.createInterface(e)}};const op=g(ap);var sp=class{_clientId=null;_userId=null;options;eventQueue;set clientId(e){this._clientId=e}set userId(e){this._userId=e}constructor(e){this.options=this.resolveOptions(e),this.eventQueue=new Be,this.setupFlushInterval()}track(e,t){this.eventQueue.add({name:e,data:t,createdAt:new Date().toISOString()})}flush(){let e=Array.from(this.eventQueue.flush()),t=e.concat({name:`ping`,data:{},createdAt:new Date().toISOString()});return t}setupFlushInterval(){setInterval(()=>{this.flush()},this.options.batchIntervalSeconds*1e3)}resolveOptions(e){return{batchIntervalSeconds:e?.batchIntervalSeconds??15}}};const cp=g(sp),lp=e(import.meta.url),up=lp.resolve(`@overlayed/app/dist/render-interface/build/overlayed_render_hook_x64.dll`);var dp=class extends tt{boundOnProcessCreate=this.onProcessCreate.bind(this);boundOnProcessDestroy=this.onProcessDestroy.bind(this);subscribedGames=new Set;constructor(){super(`GameLaunchManager`)}setSubscribedGames(e){this.subscribedGames=new Set(e)}init(){super.init(),op.getInstance().createInterface(`OGG_SIEGE`),ep.getInstance().on(`create`,this.boundOnProcessCreate),ep.getInstance().on(`destroy`,this.boundOnProcessDestroy)}destroy(){ep.getInstance().off(`create`,this.boundOnProcessCreate),ep.getInstance().off(`destroy`,this.boundOnProcessDestroy),super.destroy()}async onProcessCreate({process:e}){let t=this.getRavenGame(e);if(!t)return;if(this.subscribedGames.size===0){this.logger.warn(`No subscribed games, skipping`);return}if(!this.subscribedGames.has(t.identifier)&&!this.subscribedGames.has(`*`))return;let n=new AbortController;if(await this.emit(`gameLaunch`,{game:t.identifier,reject:()=>n.abort}),n.signal.aborted)return;if(this.logger.log(`Game Launched`,t),this.logger.log(`Process is elevated: `,e.isElevated),this.logger.log(`Current process is elevated: `,Yf.currentProcess.isElevated),e.isElevated&&!Yf.currentProcess.isElevated){_.getInstance().fatal(`Game is elevated but the App is not`,`ELEVATION_MISMATCH`,{appElevated:!!Yf.currentProcess.isElevated,gameElevated:!!e.isElevated}),this.logger.log(`Game elevated but App is not`,{appElevated:Yf.currentProcess.isElevated,gameElevated:e.isElevated});return}let r=this.copyDll(up);if(r)try{await e.injectDll(r),this.logger.log(`Render Interface Injection Successful`,r)}catch(e){this.logger.error(`Render Interface Injection Failed`,e),this.logger.error(`Render Interface Injection Failed`,{renderInterfacePath:r})}let i=t?.modules.map(async t=>{let n=await Vf.getInstance().getCurrentVersion(t);if(!n)return this.logger.error(`No version found for DLL`,{identifier:t}),Promise.resolve();let r=Vf.getInstance().getTargetVersionPath(t,n);this.logger.log(`DLL Path`,r);let i=await this.getDllFiles(r);return this.logger.log(`DLL Files`,i),Promise.all(i.map(async t=>{let n=u.basename(t),i=u.join(r,n);if(!i)return Promise.resolve();this.logger.log(`Injecting: `,i);try{return e.injectDll(i).then(()=>{this.logger.log(`Injection Successful`,i)}).catch(e=>{this.logger.error(`Injection Failed [1]`,{targetPath:i},e)})}catch(e){return this.logger.error(`Injection Failed [2]`,{targetPath:i},e),Promise.reject(e)}}))});await Promise.allSettled(i),this.emit(`gameReadyInternal`,{ravenGame:t,process:e}),this.emit(`gameReady`,{game:t.identifier}),cp.getInstance().track(`game_launch`,{game:t.identifier})}copyDll(e){let t=u.basename(e),n=d(e),r=u.join(Ke(),`resources`),i=u.join(r,t);this.logger.info(`Copying`,n,`to`,i);try{m(r)||te(r,{recursive:!0});let e=ne(n);ie(i,e),f(n,i)}catch(e){return e.code===`EBUSY`?i:(this.logger.error(`Failed to copy`,e),this.logger.error(`Failed to copy`,{originalPath:n,targetPath:i}),!1)}return i}async getDllFiles(e){try{let t=await h.readdir(e);return t.filter(e=>e.endsWith(`.dll`)).map(t=>u.join(e,t))}catch(t){return this.logger.error(`Failed to read DLL directory`,t),this.logger.error(`Failed to read DLL directory`,{dllPath:e}),[]}}onProcessDestroy({process:e}){let t=this.getRavenGame(e);t&&(this.emit(`gameCloseInternal`,{ravenGame:t,process:e}),this.emit(`gameClose`,{game:t.identifier}),cp.getInstance().track(`game_close`,{game:t.identifier}))}getRavenGame(e){if(!e.name)return;let t=Uf.getInstance().getExecutableData(e.name);if(!t){this.logger.error(`No raven game found for process`,{process:e});return}return t}};const fp=g(dp);var pp=class extends $e{boundOnGameLaunch=this.onGameLaunch.bind(this);constructor(){super(`GameBuildManager`)}init(){super.init(),fp.getInstance().on(`gameReadyInternal`,this.boundOnGameLaunch)}destroy(){fp.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=ne(n.path),i=oe(`sha256`).update(r).digest(`hex`);this.logger.log(`Process Path`,n.path),this.logger.log(`Process Name`,n.name),this.logger.log(`Build Hash`,i);let a=!1;try{let e=await Nf(t.identifier,i);a=e.data.upload}catch(e){this.logger.error(`Error checking game build hash`,e);return}if(!a){this.logger.log(`Build hash already exists, skipping upload`);return}let o=new 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 Ze(s,{chunkSizeMb:25,maxConcurrent:1}),n=await Pf(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 Ff(t.identifier,{chunk:e,build_hash:i,chunk_index:r,upload_token:n.data.upload_token})}),this.logger.log(`Build uploaded successfully`)}catch(e){If(e)?Lf(e.response)?this.logger.error(`Error uploading build hash, api error`,e):this.logger.error(`Error uploading build hash, request error`,e):this.logger.error(`Error uploading build hash, unknown error`,e)}}};const mp=g(pp);function hp(e=[]){return u.normalize(u.join(Je(global.OVERLAYED.APPLICATION_ID),...e))}const gp=t({game:`string`,type:`string`,creation_time:`number`});var Q=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}(Q||{});const _p=new Map([[Q.LeftButton,`LeftButton`],[Q.RightButton,`RightButton`],[Q.Cancel,`Cancel`],[Q.MiddleButton,`MiddleButton`],[Q.ExtraButton1,`ExtraButton1`],[Q.ExtraButton2,`ExtraButton2`],[Q.Back,`Backspace`],[Q.Tab,`Tab`],[Q.Clear,`Clear`],[Q.Return,`Enter`],[Q.Shift,`ShiftLeft`],[Q.Control,`ControlLeft`],[Q.Menu,`AltLeft`],[Q.Pause,`Pause`],[Q.CapsLock,`CapsLock`],[Q.Kana,`KanaMode`],[Q.Junja,`JunjaMode`],[Q.Final,`Finalize`],[Q.Hanja,`HanjaMode`],[Q.Escape,`Escape`],[Q.Convert,`Convert`],[Q.NonConvert,`NonConvert`],[Q.Accept,`Accept`],[Q.ModeChange,`ModeChange`],[Q.Space,`Space`],[Q.Prior,`PageUp`],[Q.Next,`PageDown`],[Q.End,`End`],[Q.Home,`Home`],[Q.Left,`ArrowLeft`],[Q.Up,`ArrowUp`],[Q.Right,`ArrowRight`],[Q.Down,`ArrowDown`],[Q.Select,`Select`],[Q.Print,`PrintScreen`],[Q.Execute,`Execute`],[Q.Snapshot,`Snapshot`],[Q.Insert,`Insert`],[Q.Delete,`Delete`],[Q.Help,`Help`],[Q.N0,`Digit0`],[Q.N1,`Digit1`],[Q.N2,`Digit2`],[Q.N3,`Digit3`],[Q.N4,`Digit4`],[Q.N5,`Digit5`],[Q.N6,`Digit6`],[Q.N7,`Digit7`],[Q.N8,`Digit8`],[Q.N9,`Digit9`],[Q.A,`KeyA`],[Q.B,`KeyB`],[Q.C,`KeyC`],[Q.D,`KeyD`],[Q.E,`KeyE`],[Q.F,`KeyF`],[Q.G,`KeyG`],[Q.H,`KeyH`],[Q.I,`KeyI`],[Q.J,`KeyJ`],[Q.K,`KeyK`],[Q.L,`KeyL`],[Q.M,`KeyM`],[Q.N,`KeyN`],[Q.O,`KeyO`],[Q.P,`KeyP`],[Q.Q,`KeyQ`],[Q.R,`KeyR`],[Q.S,`KeyS`],[Q.T,`KeyT`],[Q.U,`KeyU`],[Q.V,`KeyV`],[Q.W,`KeyW`],[Q.X,`KeyX`],[Q.Y,`KeyY`],[Q.Z,`KeyZ`],[Q.LeftWindows,`MetaLeft`],[Q.RightWindows,`MetaRight`],[Q.Application,`ContextMenu`],[Q.Sleep,`Sleep`],[Q.Numpad0,`Numpad0`],[Q.Numpad1,`Numpad1`],[Q.Numpad2,`Numpad2`],[Q.Numpad3,`Numpad3`],[Q.Numpad4,`Numpad4`],[Q.Numpad5,`Numpad5`],[Q.Numpad6,`Numpad6`],[Q.Numpad7,`Numpad7`],[Q.Numpad8,`Numpad8`],[Q.Numpad9,`Numpad9`],[Q.Multiply,`NumpadMultiply`],[Q.Add,`NumpadAdd`],[Q.Separator,`NumpadSeparator`],[Q.Subtract,`NumpadSubtract`],[Q.Decimal,`NumpadDecimal`],[Q.Divide,`NumpadDivide`],[Q.F1,`F1`],[Q.F2,`F2`],[Q.F3,`F3`],[Q.F4,`F4`],[Q.F5,`F5`],[Q.F6,`F6`],[Q.F7,`F7`],[Q.F8,`F8`],[Q.F9,`F9`],[Q.F10,`F10`],[Q.F11,`F11`],[Q.F12,`F12`],[Q.F13,`F13`],[Q.F14,`F14`],[Q.F15,`F15`],[Q.F16,`F16`],[Q.F17,`F17`],[Q.F18,`F18`],[Q.F19,`F19`],[Q.F20,`F20`],[Q.F21,`F21`],[Q.F22,`F22`],[Q.F23,`F23`],[Q.F24,`F24`],[Q.NumLock,`NumLock`],[Q.ScrollLock,`ScrollLock`],[Q.NEC_Equal,`NEC_Equal`],[Q.Fujitsu_Masshou,`Fujitsu_Masshou`],[Q.Fujitsu_Touroku,`Fujitsu_Touroku`],[Q.Fujitsu_Loya,`Fujitsu_Loya`],[Q.Fujitsu_Roya,`Fujitsu_Roya`],[Q.LeftShift,`ShiftLeft`],[Q.RightShift,`ShiftRight`],[Q.LeftControl,`ControlLeft`],[Q.RightControl,`ControlRight`],[Q.LeftMenu,`AltLeft`],[Q.RightMenu,`AltRight`],[Q.BrowserBack,`BrowserBack`],[Q.BrowserForward,`BrowserForward`],[Q.BrowserRefresh,`BrowserRefresh`],[Q.BrowserStop,`BrowserStop`],[Q.BrowserSearch,`BrowserSearch`],[Q.BrowserFavorites,`BrowserFavorites`],[Q.BrowserHome,`BrowserHome`],[Q.VolumeMute,`VolumeMute`],[Q.VolumeDown,`VolumeDown`],[Q.VolumeUp,`VolumeUp`],[Q.MediaNextTrack,`MediaTrackNext`],[Q.MediaPrevTrack,`MediaTrackPrevious`],[Q.MediaStop,`MediaStop`],[Q.MediaPlayPause,`MediaPlayPause`],[Q.LaunchMail,`LaunchMail`],[Q.LaunchMediaSelect,`LaunchMediaSelect`],[Q.LaunchApplication1,`LaunchApplication1`],[Q.LaunchApplication2,`LaunchApplication2`],[Q.OEM1,`OEM_1`],[Q.OEMPlus,`Equal`],[Q.OEMComma,`Comma`],[Q.OEMMinus,`Minus`],[Q.OEMPeriod,`Period`],[Q.OEM2,`Slash`],[Q.OEM3,`Backquote`],[Q.OEM4,`BracketLeft`],[Q.OEM5,`Backslash`],[Q.OEM6,`BracketRight`],[Q.OEM7,`Quote`],[Q.OEM8,`IntlRo`],[Q.OEMAX,`OEM_AX`],[Q.OEM102,`IntlBackslash`],[Q.ICOHelp,`ICO_HELP`],[Q.ICO00,`ICO_00`],[Q.ProcessKey,`Process`],[Q.ICOClear,`ICO_CLEAR`],[Q.Packet,`Packet`],[Q.OEMReset,`OEM_Reset`],[Q.OEMJump,`OEM_Jump`],[Q.OEMPA1,`OEM_PA1`],[Q.OEMPA2,`OEM_PA2`],[Q.OEMPA3,`OEM_PA3`],[Q.OEMWSCtrl,`OEM_WS_Ctrl`],[Q.OEMCUSel,`OEM_CU_Sel`],[Q.OEMATTN,`OEM_ATTN`],[Q.OEMFinish,`OEM_Finish`],[Q.OEMCopy,`OEM_Copy`],[Q.OEMAuto,`OEM_Auto`],[Q.OEMENLW,`OEM_ENLW`],[Q.OEMBackTab,`BackTab`],[Q.ATTN,`ATTN`],[Q.CRSel,`CRSel`],[Q.EXSel,`EXSel`],[Q.EREOF,`EREOF`],[Q.Play,`MediaPlay`],[Q.Zoom,`Zoom`],[Q.Noname,`Noname`],[Q.PA1,`PA1`],[Q.OEMClear,`OEM_Clear`]]),vp=new Map(_p.entries().map(([e,t])=>[t,e])),yp=t({"[string]":{keys:`string[]`,mode:t(`'toggle' | 'hold'`).pipe(e=>e??`toggle`)}});var bp=class extends et{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 We({path:hp([`keybinds.json`]),schema:yp,default:e})}init(){super.init();let e=op.getInstance().getInterface(`OGG_SIEGE`);e.instance.on(`keyboardFocus`,this.boundHandleKeyboardFocus),e.instance.on(`keyDown`,this.boundHandleKeyDown),e.instance.on(`keyUp`,this.boundHandleKeyUp)}async onKeybindToggled(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.toggle=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindDown(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.down=t,this.preferencesKeybindToCallbacks.set(e,n)}async onKeybindUp(e,t){let n=this.preferencesKeybindToCallbacks.get(e)||{};n.up=t,this.preferencesKeybindToCallbacks.set(e,n)}async updateKeybind(e,t){this.keybindsFile.set({[e]:t})}async updateKeybinds(e){let t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0));this.keybindsFile.set({...this.keybindsFile.get(),...t})}getConfig(){return this.keybindsFile.get()}destroy(){let e=op.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=_p.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=_p.get(e.key);if(!t)return;this.pressedKeys.delete(t);let n=this.keybindsFile.get();for(let[e]of this.preferencesKeybindToCallbacks.entries()){let r=n[e];r.keys.includes(t)&&this.triggeredToggleKeybinds.delete(e)}this.checkKeybindUps()}async checkKeybindUps(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){if(!n.up)continue;let r=e[t];this.activeKeybinds.has(t)&&r.keys.some(e=>!this.pressedKeys.has(e))&&(this.activeKeybinds.delete(t),n.up(),this.logger.log(`Keybind up triggered`,this.getKeybindToString(r)))}}async checkKeybindings(){let e=this.keybindsFile.get();for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.length===this.pressedKeys.size&&r.keys.every(e=>vp.has(e)?this.pressedKeys.has(e):!1);if(i){this.triggerKeybind(r,n,t);return}}for(let[t,n]of this.preferencesKeybindToCallbacks.entries()){let r=e[t],i=r.keys.every(e=>vp.has(e)?this.pressedKeys.has(e):(this.logger.error(`Unknown key`,e,r),!1));i&&this.triggerKeybind(r,n,t)}}triggerKeybind(e,t,n){let r=e.mode;if(r===`toggle`&&t.toggle&&!this.triggeredToggleKeybinds.has(n)){let r=t.toggle();this.triggeredToggleKeybinds.add(n),this.logger.log(r?`Keybind pressed rejected: ${r}`:`Keybind pressed accepted`,this.getKeybindToString(e))}if(r===`hold`&&t.down&&!this.activeKeybinds.has(n)){let r=t.down();r?this.logger.log(`Keybind down rejected: ${r}`,this.getKeybindToString(e)):(this.activeKeybinds.add(n),this.logger.log(`Keybind down accepted`,this.getKeybindToString(e)))}}getKeybindToString(e){return`(${e.keys.join(`+`)}${e.mode?` ${e.mode}`:``})`}},xp=class extends $e{renderInterface;globalCursorOverrideCount=new Set;globalMouseBlockCount=new Set;globalKeyboardBlockCount=new Set;keyInputBlocks={};constructor(e){super(`OverridesManager`),this.renderInterface=op.getInstance().getInterface(e)}scope(e){return{setGlobalCursorOverride:t=>this.setGlobalCursorOverride(e,t),setGlobalMouseBlock:t=>this.setGlobalMouseBlock(e,t),setGlobalKeyboardBlock:t=>this.setGlobalKeyboardBlock(e,t),setKeyInputBlock:(t,n)=>this.setKeyInputBlock(e,t,n)}}setGlobalCursorOverride(e,t){t?this.globalCursorOverrideCount.add(e):this.globalCursorOverrideCount.delete(e),t&&this.globalCursorOverrideCount.size===1?this.renderInterface.instance.setGlobalCursorOverride(!0):!t&&this.globalCursorOverrideCount.size===0&&this.renderInterface.instance.setGlobalCursorOverride(!1)}setGlobalMouseBlock(e,t){t?this.globalMouseBlockCount.add(e):this.globalMouseBlockCount.delete(e),t&&this.globalMouseBlockCount.size===1?this.renderInterface.instance.setGlobalMouseBlock(!0):!t&&this.globalMouseBlockCount.size===0&&this.renderInterface.instance.setGlobalMouseBlock(!1)}setGlobalKeyboardBlock(e,t){t?this.globalKeyboardBlockCount.add(e):this.globalKeyboardBlockCount.delete(e),t&&this.globalKeyboardBlockCount.size===1?this.renderInterface.instance.setGlobalKeyboardBlock(!0):!t&&this.globalKeyboardBlockCount.size===0&&this.renderInterface.instance.setGlobalKeyboardBlock(!1)}setKeyInputBlock(e,t,n){this.keyInputBlocks[t]||(this.keyInputBlocks[t]=new Set),n?this.keyInputBlocks[t].add(e):this.keyInputBlocks[t].delete(e),n&&this.keyInputBlocks[t].size===1?this.renderInterface.instance.setKeyInputBlock(t,!0):!n&&this.keyInputBlocks[t].size===0&&this.renderInterface.instance.setKeyInputBlock(t,!1)}};const Sp=g(xp,`OGG_SIEGE`);var Cp=he((exports,t)=>{var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e,t)=>{var n=new Set([`mouseDown`,`mouseUp`,`pointerDown`,`pointerUp`]),r=new WeakSet;function i(e,t,{allowHosts:i}={}){let{shell:a}=t;if(r.has(e))return;r.add(e);let o=e.webContents;function s(e){return!!(!c(e)||i?.includes(e.host))}function c(e){return new URL(o.getURL()).origin!==e.origin}let l=0;function u(){l=Date.now()}function d(){let e=Date.now()-l,t=e<150;return t||console.warn(`was not recently active`,e),t}if(process.platform===`win32`){let t={KEYDOWN:256,LBUTTONUP:514,MBUTTONUP:520,RBUTTONUP:517,XBUTTONUP:524,TOUCH:576};for(let n of Object.values(t))e.hookWindowMessage(n,u)}o.on(`input-event`,(e,t)=>{n.has(t.type)&&u()}),o.on(`will-navigate`,(e,t)=>{let n=e.url||t;if(console.log(`will-navigate`,n),!n)return;let r=new URL(n);if(!s(r)){if(!d()){console.log(`blocked navigation`,n),e.preventDefault();return}c(r)&&(console.log(`external navigation`,n),e.preventDefault(),a.openExternal(n))}}),o.session.on(`will-download`,(e,t)=>{let n=t.getURL();/^blob:/.test(n)||e.preventDefault()}),o.setWindowOpenHandler(e=>{console.log(`window-open`,e.url);let{url:t}=e,n=new URL(t);if(!s(n))return d()?(c(n)&&a.openExternal(e.url),{action:`deny`}):(console.log(`blocked navigation`,t),{action:`deny`})})}t.exports=i}),i=n((e,t)=>{var n=new Set([`Mozilla`,`AppleWebKit`,`Chrome`,`Safari`,`Gecko`,`Firefox`,`OPR`,`Edg`,`Version`,`Mobile`,`curl`,`PostmanRuntime`]);async function r(e,t,r){let{webContents:i}=e,a=await i.executeJavaScript(`navigator.userAgent`);a=a.match(/[^\/]+\/[^\s]+( \([^\)]+\))?/g).map(e=>e.trim()).filter(e=>{let[t]=e.split(`/`,1);return n.has(t)}).join(` `),i.setUserAgent(a),t.app.userAgentFallback=a}t.exports=r}),a=r(),o=i();function s(e,t,n={}){a(e,t,n.linkHandler),o(e,t,n.userAgent)}t.exports={setupRevUtils:s,setupLinkHandler:a,setUserAgent:o}}),wp=_e(Cp(),1);let Tp=!1,Ep;function Dp(e){let{init:t=!0}=e;if(Op(e),v.getInstance().init(e.applicationId),Tp)return Ep;function n(){Up(e);let t=new Map,r=jp(e.modules,t),i=Mp(),a=Fp(e.keybinds),o=Ip(),s=Lp(),c=zp(),l=Rp(),u=Bp();kp(e),Pp(e,t),Tp=!0,Ep={...r,...i,ads:c,keybinds:a,windows:o,input:s,cortex:l,hasAnyActiveProcesses:()=>ep.getInstance().hasAnyActiveProcesses,init:n,log:u,initialized:Tp}}return t?(n(),Ep):new Proxy({init:n},{get:(e,t)=>{if(t!==`init`&&!Tp)throw Error(`overlayed was called before initialized: ${t}`);return t===`init`?e[t]:Ep[t]}})}global.OVERLAYED=new Proxy({},{get:()=>{throw Error(`function overlayed was not called`)}});function Op(e){global.OVERLAYED={APPLICATION_ID:e.applicationId,APP_BUILD_CHANNEL:e.channel??`alpha`,APP_VERSION:e.version??ce.getVersion(),electron:e.electron}}function kp(e){let t=e.universal?[`*`]:e.modules.map(e=>e.key);fp.getInstance().setSubscribedGames(t),mp.getInstance().init(),fp.getInstance().init(),ep.getInstance().init(),Uf.getInstance().init();async function n(){let e=mn(global.OVERLAYED.APPLICATION_ID).then(e=>e.data),t=Qf.generateUniqueIdentifier();v.getInstance().log(`userId`,t);let n={...await e,userId:t};return v.getInstance().log(`appInfo`,n),n}let r;global.OVERLAYED.electron.ipcMain.handle(`getAppInfo`,async()=>(r=r??n(),r)),ce.on(`quit`,()=>{Ap()})}function Ap(){Uf.getInstance().destroy(),fp.getInstance().destroy(),mp.getInstance().destroy(),ep.getInstance().destroy(),op.getInstance().getInterface(`OGG_SIEGE`).destroy(),Re.getInstance().destroy(),_.getInstance().destroy()}function jp(e,t){return e.reduce((e,n)=>{let r=n.key;return e[r]={on(e,n){let i=Np(r,e),a=t.get(i)??new Set;a.add(n),t.set(i,a)},onAny(e){let n=Np(r,`*`),i=t.get(n)??new Set;i.add(e),t.set(n,i)},off(e,n){let i=Np(r,e),a=t.get(i)??new Set;a.delete(n),t.set(i,a)},offAny(e){let n=Np(r,`*`),i=t.get(n)??new Set;i.delete(e),t.set(n,i)}},e},{})}function Mp(){let e=_.getInstance(),t=fp.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]})}}}}function Np(e,t){return`${e}:${t}`}function Pp(e,n){let r=Re.getInstance();function i(r){let i=gp(r);if(i instanceof t.errors){_.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:i.summary});return}let a=e.modules.find(e=>e.key===i.game),o=a?.events.event;if(!o)return;let s=o(r);if(s instanceof t.errors){_.getInstance().warn(`Invalid event`,`INVALID_EVENT`,{summary:s.summary});return}let c=Np(a.key,s.type),l=Np(a.key,`*`),u=n.get(c),d=n.get(l),ee=[...Array.from(u??[]),...Array.from(d??[])];ee.length!==0&&ee.forEach(e=>{e(s)})}return r.on(`data`,e=>e.forEach(i)),r.on(`error`,e=>{_.getInstance().error(`Pipe server error`,`PIPE_SERVER_ERROR`,{error:e})}),r}function Fp(e){let t=new bp(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(),ce.on(`quit`,()=>{t.destroy()}),r}function Ip(){return{createWindow:e=>$().instance.newWindowInternal(se.BrowserWindow,e),on:(e,t)=>$().instance.on(e,t),off:(e,t)=>$().instance.off(e,t),once:(e,t)=>$().instance.once(e,t),addListener:(e,t)=>$().instance.addListener(e,t),removeListener:(e,t)=>$().instance.removeListener(e,t),removeAllListeners:()=>$().instance.removeAllListeners(),prependListener:(e,t)=>$().instance.prependListener(e,t),prependOnceListener:(e,t)=>$().instance.prependOnceListener(e,t),getActiveGameInfo:()=>{let e=$(),t=Re.getInstance();return{resolution:e.resolution,isConnected:t.hasConnection}}}}function Lp(){return{scope:e=>Sp.getInstance().scope(e),raw:{setGlobalMouseBlock:e=>$().instance.setGlobalMouseBlock(e),setGlobalKeyboardBlock:e=>$().instance.setGlobalKeyboardBlock(e),setGlobalCursorOverride:e=>$().instance.setGlobalCursorOverride(e),setKeyInputBlock:(e,t)=>$().instance.setKeyInputBlock(e,t),getGlobalMouseBlock:()=>$().instance.getGlobalMouseBlock(),getGlobalKeyboardBlock:()=>$().instance.getGlobalKeyboardBlock(),getGlobalCursorOverride:()=>$().instance.getGlobalCursorOverride(),getKeyInputBlock:e=>$().instance.getKeyInputBlock(e)}}}function Rp(){return{track:(e,t)=>cp.getInstance().track(`custom__${e}`,t)}}function zp(){return{registerWindow:e=>{(0,wp.setupRevUtils)(e,global.OVERLAYED.electron)}}}function Bp(){let e=new Xe(`app.log`);return e.init(global.OVERLAYED.APPLICATION_ID),{scope:t=>e.scope(t),info:t=>e.info(t),warn:t=>e.warn(t),error:t=>e.error(t),submitBugReport:async(e,t)=>{try{let n=Vp(t),r=await n.generateAsync({type:`base64`}),i=await Hp(e,r);return i?[void 0,{message:`Failed to submit bug report`,error:i}]:[!0,void 0]}catch(e){return[void 0,{message:`Failed to generate logs zip`,error:e}]}}}}function Vp(e){let t=Ye(global.OVERLAYED.APPLICATION_ID),n=Qe(t),r=qe(),i=Qe(r);v.getInstance().info(`Logs path: `,t),v.getInstance().info(`Overlayed logs path: `,r);let a=new ae;return[...n,...i].forEach(([e,t])=>{v.getInstance().info(`Zipping: `,e,t);let n=`${e}/${t}`,r=p(n);a.file(t,r,{compression:`DEFLATE`})}),Object.entries(e?.additionalFiles??{}).forEach(([e,t])=>{v.getInstance().info(`Zipping extra file: `,e),a.file(e,t,{compression:`DEFLATE`})}),a}async function Hp(e,t){let n={...e,version:`${global.OVERLAYED.APP_VERSION}@${global.OVERLAYED.APP_BUILD_CHANNEL}`,log_zip:`data:application/zip;base64,${t}`},r;return await fetch(`https://api.stats.cc/v1/overlay/contact`,{method:`POST`,body:JSON.stringify(n),redirect:`follow`,headers:{"Content-Type":`application/json`}}).then(async e=>{e.status>=300&&(r=await e.text())}).catch(e=>{r=e.message}),r}function Up(e){cp.getInstance().clientId=e.applicationId,cp.getInstance().userId=Qf.generateUniqueIdentifier(),_.getInstance().on(`fatal`,e=>{cp.getInstance().track(`fatal`,{message:e.message,code:e.code,data:e.data})}),_.getInstance().on(`error`,e=>{cp.getInstance().track(`error`,{message:e.message,code:e.code,data:e.data})}),_.getInstance().on(`warning`,e=>{cp.getInstance().track(`warning`,{message:e.message,code:e.code,data:e.data})})}function $(){return op.getInstance().getInterface(`OGG_SIEGE`)}export{Dp as overlayed,zf as setFetchLatestTokenCallback,fn as setUpdaterTokenResolver};
package/dist/siege.js CHANGED
@@ -1 +1 @@
1
- import{Type as e,scope as t,type as n}from"arktype";function r(e){return e}function i(e){return e}function a(e){return e?t=>(e(t),t):i}const o=a(),s=a(),c=a(),l=a(),ee=a(),u=a(),d=a(),f=a(),p=`00000000-0000-0000-0000-000000000000`,m=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`],h=n(`===`,...m),g=[0,1],_=n(`===`,...g),v=[`attacker`,`defender`,`both`,`invalid`],y=n(`===`,...v),b=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],x=n(`===`,...b),S=`bullet.melee.explosive.falling.regeneration.unknown.debris.projectile.downed.gas.thermal_explosion.melee_gadget.barbed_wire.electric.reinforcement.frag.paralyzed.emp.break.cleanup.interrogation.melee-finisher.toxic.toxic-explosion.pneumatic.body-contact.contact-explosion.flash.parasite-spike.laser.concussion.blowtorch.taser-shield.reverse-friendly-fire.self-destroyed.area-control.fire.breach-kick.break-wall.blade-mine.invalid`.split(`.`),C=n(`===`,...S),w=[`unknown`,`enemy`,`friendly`,`invalid`],T=n(`===`,...w),E=Object.freeze({ranked:o(205379),quickMatch:o(138115),customGame:o(62008),versusAi:o(397300),standard:o(393930),arcade:o(320109),siegeCup:o(414089),dualFront:o(420611),showdown:o(305544),trainingGrounds:o(-1)}),D=Object.freeze({[E.quickMatch]:`Quick Match`,[E.ranked]:`Ranked`,[E.customGame]:`Custom Game`,[E.versusAi]:`Versus AI`,[E.standard]:`Standard`,[E.arcade]:`Arcade`,[E.siegeCup]:`Siege Cup`,[E.dualFront]:`Dual Front`,[E.showdown]:`Showdown`,[E.trainingGrounds]:`Training Grounds`}),O=Object.freeze({glaz:s(62242),blitz:s(62243),buck:s(62244),sledge:s(62245),ash:s(62246),thermite:s(62247),castle:s(62248),rook:s(62249),pulse:s(62250),doc:s(62251),mute:s(62252),smoke:s(62253),recruit:s(62555),thatcher:s(65143),twitch:s(65156),montagne:s(65159),bandit:s(65165),fuze:s(65168),kapkan:s(65171),tachanka:s(65174),jager:s(113049),iq:s(113052),frost:s(186159),blackbeard:s(187249),valkyrie:s(187252),caveira:s(207671),capitao:s(207674),echo:s(209180),hibana:s(209183),mira:s(222172),jackal:s(222182),ying:s(239334),lesion:s(239337),ela:s(254595),zofia:s(254606),dokkaebi:s(273652),vigil:s(273663),finka:s(281457),lion:s(281463),alibi:s(282399),maestro:s(285888),maverick:s(288504),clash:s(288526),nomad:s(293435),kaid:s(293436),gridlock:s(298589),mozzie:s(298616),nokk:s(299657),warden:s(299668),goyo:s(304196),amaru:s(308469),kali:s(310757),wamai:s(310768),oryx:s(317965),iana:s(317976),melusi:s(320062),ace:s(320073),zero:s(328927),aruni:s(328940),flores:s(334086),thunderbird:s(336466),osa:s(344493),thorn:s(349405),azami:s(354314),sens:s(357386),grim:s(365404),solis:s(376836),brava:s(382419),fenrir:s(386388),ram:s(392904),tubarao:s(395594),deimos:s(400504),striker:s(404278),sentry:s(404290),skopos:s(408405),rauora:s(421052)}),k=Object.freeze({[O.glaz]:`glaz`,[O.blitz]:`blitz`,[O.buck]:`buck`,[O.sledge]:`sledge`,[O.ash]:`ash`,[O.thermite]:`thermite`,[O.castle]:`castle`,[O.rook]:`rook`,[O.pulse]:`pulse`,[O.doc]:`doc`,[O.mute]:`mute`,[O.smoke]:`smoke`,[O.recruit]:`recruit`,[O.thatcher]:`thatcher`,[O.twitch]:`twitch`,[O.montagne]:`montagne`,[O.bandit]:`bandit`,[O.fuze]:`fuze`,[O.kapkan]:`kapkan`,[O.tachanka]:`tachanka`,[O.jager]:`jager`,[O.iq]:`iq`,[O.frost]:`frost`,[O.blackbeard]:`blackbeard`,[O.valkyrie]:`valkyrie`,[O.caveira]:`caveira`,[O.capitao]:`capitao`,[O.echo]:`echo`,[O.hibana]:`hibana`,[O.mira]:`mira`,[O.jackal]:`jackal`,[O.ying]:`ying`,[O.lesion]:`lesion`,[O.ela]:`ela`,[O.zofia]:`zofia`,[O.dokkaebi]:`dokkaebi`,[O.vigil]:`vigil`,[O.finka]:`finka`,[O.lion]:`lion`,[O.alibi]:`alibi`,[O.maestro]:`maestro`,[O.maverick]:`maverick`,[O.clash]:`clash`,[O.nomad]:`nomad`,[O.kaid]:`kaid`,[O.gridlock]:`gridlock`,[O.mozzie]:`mozzie`,[O.nokk]:`nokk`,[O.warden]:`warden`,[O.goyo]:`goyo`,[O.amaru]:`amaru`,[O.kali]:`kali`,[O.wamai]:`wamai`,[O.oryx]:`oryx`,[O.iana]:`iana`,[O.melusi]:`melusi`,[O.ace]:`ace`,[O.zero]:`zero`,[O.aruni]:`aruni`,[O.flores]:`flores`,[O.thunderbird]:`thunderbird`,[O.osa]:`osa`,[O.thorn]:`thorn`,[O.azami]:`azami`,[O.sens]:`sens`,[O.grim]:`grim`,[O.solis]:`solis`,[O.brava]:`brava`,[O.fenrir]:`fenrir`,[O.ram]:`ram`,[O.tubarao]:`tubarao`,[O.deimos]:`deimos`,[O.striker]:`striker`,[O.sentry]:`sentry`,[O.skopos]:`skopos`,[O.rauora]:`rauora`}),A=Object.freeze({[O.striker]:{name:`Striker`,role:`attacker`},[O.sledge]:{name:`Sledge`,role:`attacker`},[O.thatcher]:{name:`Thatcher`,role:`attacker`},[O.ash]:{name:`Ash`,role:`attacker`},[O.thermite]:{name:`Thermite`,role:`attacker`},[O.twitch]:{name:`Twitch`,role:`attacker`},[O.montagne]:{name:`Montagne`,role:`attacker`},[O.glaz]:{name:`Glaz`,role:`attacker`},[O.fuze]:{name:`Fuze`,role:`attacker`},[O.blitz]:{name:`Blitz`,role:`attacker`},[O.iq]:{name:`IQ`,role:`attacker`},[O.buck]:{name:`Buck`,role:`attacker`},[O.blackbeard]:{name:`Blackbeard`,role:`attacker`},[O.capitao]:{name:`Capitão`,role:`attacker`},[O.hibana]:{name:`Hibana`,role:`attacker`},[O.jackal]:{name:`Jackal`,role:`attacker`},[O.ying]:{name:`Ying`,role:`attacker`},[O.zofia]:{name:`Zofia`,role:`attacker`},[O.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[O.lion]:{name:`Lion`,role:`attacker`},[O.finka]:{name:`Finka`,role:`attacker`},[O.maverick]:{name:`Maverick`,role:`attacker`},[O.nomad]:{name:`Nomad`,role:`attacker`},[O.gridlock]:{name:`Gridlock`,role:`attacker`},[O.nokk]:{name:`Nøkk`,role:`attacker`},[O.amaru]:{name:`Amaru`,role:`attacker`},[O.kali]:{name:`Kali`,role:`attacker`},[O.iana]:{name:`Iana`,role:`attacker`},[O.ace]:{name:`Ace`,role:`attacker`},[O.zero]:{name:`Zero`,role:`attacker`},[O.flores]:{name:`Flores`,role:`attacker`},[O.osa]:{name:`Osa`,role:`attacker`},[O.sens]:{name:`Sens`,role:`attacker`},[O.grim]:{name:`Grim`,role:`attacker`},[O.brava]:{name:`Brava`,role:`attacker`},[O.ram]:{name:`Ram`,role:`attacker`},[O.deimos]:{name:`Deimos`,role:`attacker`},[O.rauora]:{name:`Rauora`,role:`attacker`},[O.sentry]:{name:`Sentry`,role:`defender`},[O.smoke]:{name:`Smoke`,role:`defender`},[O.mute]:{name:`Mute`,role:`defender`},[O.castle]:{name:`Castle`,role:`defender`},[O.pulse]:{name:`Pulse`,role:`defender`},[O.doc]:{name:`Doc`,role:`defender`},[O.rook]:{name:`Rook`,role:`defender`},[O.kapkan]:{name:`Kapkan`,role:`defender`},[O.tachanka]:{name:`Tachanka`,role:`defender`},[O.jager]:{name:`Jäger`,role:`defender`},[O.bandit]:{name:`Bandit`,role:`defender`},[O.frost]:{name:`Frost`,role:`defender`},[O.valkyrie]:{name:`Valkyrie`,role:`defender`},[O.caveira]:{name:`Caveira`,role:`defender`},[O.echo]:{name:`Echo`,role:`defender`},[O.mira]:{name:`Mira`,role:`defender`},[O.lesion]:{name:`Lesion`,role:`defender`},[O.ela]:{name:`Ela`,role:`defender`},[O.vigil]:{name:`Vigil`,role:`defender`},[O.alibi]:{name:`Alibi`,role:`defender`},[O.maestro]:{name:`Maestro`,role:`defender`},[O.clash]:{name:`Clash`,role:`defender`},[O.kaid]:{name:`Kaid`,role:`defender`},[O.mozzie]:{name:`Mozzie`,role:`defender`},[O.warden]:{name:`Warden`,role:`defender`},[O.goyo]:{name:`Goyo`,role:`defender`},[O.wamai]:{name:`Wamai`,role:`defender`},[O.oryx]:{name:`Oryx`,role:`defender`},[O.melusi]:{name:`Melusi`,role:`defender`},[O.aruni]:{name:`Aruni`,role:`defender`},[O.thunderbird]:{name:`Thunderbird`,role:`defender`},[O.thorn]:{name:`Thorn`,role:`defender`},[O.azami]:{name:`Azami`,role:`defender`},[O.solis]:{name:`Solis`,role:`defender`},[O.fenrir]:{name:`Fenrir`,role:`defender`},[O.tubarao]:{name:`Tubarao`,role:`defender`},[O.skopos]:{name:`Skopós`,role:`defender`}}),te=Object.freeze({attacker:Object.entries(A).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...A[s(Number(e))],id:s(Number(e))})),defender:Object.entries(A).filter(([e,t])=>t.role===`defender`).map(([e])=>({...A[s(Number(e))],id:s(Number(e))}))}),j=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),article5:c(196214),themePark:c(229325),stadium:c(338641),outback:c(299162),yacht:c(62226),emeraldPlains:c(358871),chalet:c(62230),coastline:c(217482),bank:c(62228),consulate:c(62227),tower:c(255669),nighthavenLabs:c(375492),presidentialPlane:c(62225),house:c(62221),kafeDostoyevsky:c(62232),border:c(201746),closeQuarter:c(365400),bartlettU:c(62231),lair:c(396234),herefordBase:c(62223),skyscraper:c(208094),cqbBasics:c(196157),oregon:c(62222),fortTruth:c(307723),kanal:c(62229),stadium2020:c(357300),clubhouse:c(62224),district:c(1193341205)}),M=Object.freeze({202283:`Favela`,293334:`Fortress`,286407:`Villa`,333785:`Neighborhood`,196214:`Article 5`,229325:`Theme Park`,338641:`Stadium`,299162:`Outback`,62226:`Yacht`,358871:`Emerald Plains`,62230:`Chalet`,217482:`Coastline`,62228:`Bank`,62227:`Consulate`,255669:`Tower`,375492:`Nighthaven Labs`,62225:`Presidential Plane`,187984:`Article 5`,62221:`House`,62232:`Kafe Dostoyevsky`,201746:`Border`,365400:`Close Quarter`,299161:`Outback`,62231:`Bartlett U.`,396234:`Lair`,62223:`Hereford Base`,208094:`Skyscraper`,196157:`CQB Basics`,62222:`Oregon`,299534:`Outback`,318512:`Stadium`,307723:`Fort Truth`,195681:`Article 5`,62229:`Kanal`,177763:`CQB Basics`,357300:`Stadium 2020`,62224:`Clubhouse`,1193341205:`District`}),N=Object.freeze({notPlayed:l(0),inProgress:l(1),lost:l(2),enemiesEliminated:l(3),objectiveComplete:l(4),timeRanOut:l(5),enemiesSurrendered:l(6),unknownReason:l(7),matchCancelled:l(8)}),P=Object.freeze({[N.notPlayed]:`Not Played`,[N.inProgress]:`In Progress`,[N.lost]:`Lost`,[N.enemiesEliminated]:`Enemies Eliminated`,[N.objectiveComplete]:`Objective Complete`,[N.timeRanOut]:`Time ran out`,[N.enemiesSurrendered]:`Enemies Surrendered`,[N.unknownReason]:`Unknown Reason`,[N.matchCancelled]:`Match Cancelled`}),F=n({game:`string`,type:`string`,creation_time:`number`}),I=[N.enemiesEliminated,N.objectiveComplete,N.timeRanOut,N.enemiesSurrendered,N.unknownReason];function L(e){return I.includes(e)}const R=[N.notPlayed,N.inProgress];function z(e){return!R.includes(e)}const B=F.and({game:`'siege'`}),V=B.and({type:`'local_player'`,content:{profile_id:r(n.string)}}),H=()=>n({id:`number`,value:`string`}),U=n({kills:`number`,deaths:`number`,assists:`number`,plants:`number`,score:`number`}),W=n({instigator_player_id:r(n.number),receiver_player_id:r(n.number),damage_amount:`number`,remaining_health:`number`,pre_damage_health:`number`,max_health:`number`,damage_type:C,damage_team_type:T,damage_item_id:r(n.number).or(`null`),damage_time:`number`}),G=n({index:`number`,rounds_until_next_segment:`number`,segment_size:`number`,segment_index:`number`,team_0:{role:y,state:r(n.number)},team_1:{role:y,state:r(n.number)}}),K=n({id:`number`,name:H(),time_of_day:H()}),q=n({player_id:r(n.number),final_health:`number`,final_life_state:x,operator_name:H().or(`null`)}),J=n({round_data:G,damage_events:W.array(),players:q.array()}),Y=B.and({type:`'match_started'`,content:{game_mode:`string`,game_type:H(),match_type:`string`,match_id:r(n.number),map:K,is_round_based:`boolean`,current_round_index:`number`,rounds:G.array()}}),X=B.and({type:`'module_loaded'`}),Z=B.and({type:`'module_unloaded'`}),Q=B.and({type:`'started_queuing'`,content:{game_mode:`string`,game_type:H(),match_type:`string`}}),ne=B.and({type:`'stopped_queuing'`}),re=B.and({type:`'unsupported_game_version'`,content:{hash:`string | null`,version:`string | null`}}),ie=B.and({type:`'match_ended'`}),ae=B.and({type:`'map_changed'`,content:{map:K}}),oe=B.and({type:`'operator_banned'`,content:{index:`number`,team:_,side:y,operator_name:H().or(`null`)}}),se=B.and({type:`'round_ended'`,content:J}),ce=B.and({type:`'phase_changed'`,content:{phase:h}}),le=B.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:`string.uuid`,is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:y,team:_,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:U,life_state:x,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),ue=B.and({type:`'player_left'`,content:{player_id:r(n.number)}}),de=B.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:H().or(`null`)}}),fe=B.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),pe=B.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:y}}),me=B.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:U}}),$=B.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),he=B.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),ge=B.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),_e=B.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),ve=B.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),ye=B.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:x}}),be=B.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),xe=B.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Se=B.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Ce=B.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:_}}),we=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | local_player | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_banned | round_ended | phase_changed | player_joined | player_left | player_operator_changed | player_location_changed | player_side_changed | player_stats_changed`,"#event2":`player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated`,event:`event1 | event2`,module_loaded:X,module_unloaded:Z,unsupported_game_version:re,local_player:V,started_queuing:Q,stopped_queuing:ne,match_started:Y,match_ended:ie,map_changed:ae,operator_banned:oe,round_ended:se,phase_changed:ce,player_joined:le,player_left:ue,player_operator_changed:de,player_location_changed:fe,player_side_changed:pe,player_stats_changed:me,defuser_planted:he,defuser_sabotaged:ge,defuser_picked_up:_e,defuser_dropped:ve,player_ping_updated:$,player_life_state_changed:ye,player_died:be,player_downed:xe,player_ping_id_changed:Se,player_team_changed:Ce}).export();function Te(){return{key:`siege`,events:we}}export{F as BaseEvent,p as SIEGE_BOT_ID,w as SIEGE_DAMAGE_TEAM_TYPES,S as SIEGE_DAMAGE_TYPES,m as SIEGE_GAME_MODE_PHASES,E as SIEGE_GAME_MODE_TYPES_TO_ID,D as SIEGE_GAME_MODE_TYPE_LABELS,M as SIEGE_MAP_LABELS,j as SIEGE_MAP_TO_ID,k as SIEGE_OPERATOR_LABELS,A as SIEGE_OPERATOR_META,O as SIEGE_OPERATOR_TO_ID,b as SIEGE_PLAYER_LIFE_STATES,N as SIEGE_ROUND_STATES_TO_ID,P as SIEGE_ROUND_STATE_LABELS,v as SIEGE_SIDES,te as SIEGE_SIDE_OPERATORS,g as SIEGE_TEAMS,T as SiegeDamageTeamTypeSchema,C as SiegeDamageTypeSchema,h as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,f as SiegeItemObjectId,c as SiegeMapNameId,ee as SiegeMatchId,s as SiegeOperatorNameId,u as SiegePlayerId,x as SiegePlayerLifeStateSchema,d as SiegeProfileId,l as SiegeRoundState,y as SiegeSideSchema,_ as SiegeTeamSchema,z as isSiegeRoundStateCompleted,L as isSiegeRoundStateVictory,Te as module};
1
+ import{Type as e,scope as t,type as n}from"arktype";function r(e){return e}function i(e){return e}function a(e){return e?t=>(e(t),t):i}const o=a(),s=a(),c=a(),l=a(),ee=a(),u=a(),d=a(),f=a(),p=`00000000-0000-0000-0000-000000000000`,m=[`intro`,`planning`,`prep`,`action`,`results`,`invalid`],h=n(`===`,...m),g=[0,1],_=n(`===`,...g),v=[`attacker`,`defender`,`both`,`invalid`],y=n(`===`,...v),b=[`normal`,`overhealed`,`low_health`,`downed`,`dead`,`respawning`],x=n(`===`,...b),S=`bullet.melee.explosive.falling.regeneration.unknown.debris.projectile.downed.gas.thermal_explosion.melee_gadget.barbed_wire.electric.reinforcement.frag.paralyzed.emp.break.cleanup.interrogation.melee-finisher.toxic.toxic-explosion.pneumatic.body-contact.contact-explosion.flash.parasite-spike.laser.concussion.blowtorch.taser-shield.reverse-friendly-fire.self-destroyed.area-control.fire.breach-kick.break-wall.blade-mine.invalid`.split(`.`),C=n(`===`,...S),w=[`unknown`,`enemy`,`friendly`,`invalid`],T=n(`===`,...w),E=Object.freeze({ranked:o(205379),quickMatch:o(138115),customGame:o(62008),versusAi:o(397300),standard:o(393930),arcade:o(320109),siegeCup:o(414089),dualFront:o(420611),showdown:o(305544),trainingGrounds:o(-1)}),D=Object.freeze({[E.quickMatch]:`Quick Match`,[E.ranked]:`Ranked`,[E.customGame]:`Custom Game`,[E.versusAi]:`Versus AI`,[E.standard]:`Standard`,[E.arcade]:`Arcade`,[E.siegeCup]:`Siege Cup`,[E.dualFront]:`Dual Front`,[E.showdown]:`Showdown`,[E.trainingGrounds]:`Training Grounds`}),O=Object.freeze({glaz:s(62242),blitz:s(62243),buck:s(62244),sledge:s(62245),ash:s(62246),thermite:s(62247),castle:s(62248),rook:s(62249),pulse:s(62250),doc:s(62251),mute:s(62252),smoke:s(62253),recruit:s(62555),thatcher:s(65143),twitch:s(65156),montagne:s(65159),bandit:s(65165),fuze:s(65168),kapkan:s(65171),tachanka:s(65174),jager:s(113049),iq:s(113052),frost:s(186159),blackbeard:s(187249),valkyrie:s(187252),caveira:s(207671),capitao:s(207674),echo:s(209180),hibana:s(209183),mira:s(222172),jackal:s(222182),ying:s(239334),lesion:s(239337),ela:s(254595),zofia:s(254606),dokkaebi:s(273652),vigil:s(273663),finka:s(281457),lion:s(281463),alibi:s(282399),maestro:s(285888),maverick:s(288504),clash:s(288526),nomad:s(293435),kaid:s(293436),gridlock:s(298589),mozzie:s(298616),nokk:s(299657),warden:s(299668),goyo:s(304196),amaru:s(308469),kali:s(310757),wamai:s(310768),oryx:s(317965),iana:s(317976),melusi:s(320062),ace:s(320073),zero:s(328927),aruni:s(328940),flores:s(334086),thunderbird:s(336466),osa:s(344493),thorn:s(349405),azami:s(354314),sens:s(357386),grim:s(365404),solis:s(376836),brava:s(382419),fenrir:s(386388),ram:s(392904),tubarao:s(395594),deimos:s(400504),striker:s(404278),sentry:s(404290),skopos:s(408405),rauora:s(421052)}),k=Object.freeze({[O.glaz]:`glaz`,[O.blitz]:`blitz`,[O.buck]:`buck`,[O.sledge]:`sledge`,[O.ash]:`ash`,[O.thermite]:`thermite`,[O.castle]:`castle`,[O.rook]:`rook`,[O.pulse]:`pulse`,[O.doc]:`doc`,[O.mute]:`mute`,[O.smoke]:`smoke`,[O.recruit]:`recruit`,[O.thatcher]:`thatcher`,[O.twitch]:`twitch`,[O.montagne]:`montagne`,[O.bandit]:`bandit`,[O.fuze]:`fuze`,[O.kapkan]:`kapkan`,[O.tachanka]:`tachanka`,[O.jager]:`jager`,[O.iq]:`iq`,[O.frost]:`frost`,[O.blackbeard]:`blackbeard`,[O.valkyrie]:`valkyrie`,[O.caveira]:`caveira`,[O.capitao]:`capitao`,[O.echo]:`echo`,[O.hibana]:`hibana`,[O.mira]:`mira`,[O.jackal]:`jackal`,[O.ying]:`ying`,[O.lesion]:`lesion`,[O.ela]:`ela`,[O.zofia]:`zofia`,[O.dokkaebi]:`dokkaebi`,[O.vigil]:`vigil`,[O.finka]:`finka`,[O.lion]:`lion`,[O.alibi]:`alibi`,[O.maestro]:`maestro`,[O.maverick]:`maverick`,[O.clash]:`clash`,[O.nomad]:`nomad`,[O.kaid]:`kaid`,[O.gridlock]:`gridlock`,[O.mozzie]:`mozzie`,[O.nokk]:`nokk`,[O.warden]:`warden`,[O.goyo]:`goyo`,[O.amaru]:`amaru`,[O.kali]:`kali`,[O.wamai]:`wamai`,[O.oryx]:`oryx`,[O.iana]:`iana`,[O.melusi]:`melusi`,[O.ace]:`ace`,[O.zero]:`zero`,[O.aruni]:`aruni`,[O.flores]:`flores`,[O.thunderbird]:`thunderbird`,[O.osa]:`osa`,[O.thorn]:`thorn`,[O.azami]:`azami`,[O.sens]:`sens`,[O.grim]:`grim`,[O.solis]:`solis`,[O.brava]:`brava`,[O.fenrir]:`fenrir`,[O.ram]:`ram`,[O.tubarao]:`tubarao`,[O.deimos]:`deimos`,[O.striker]:`striker`,[O.sentry]:`sentry`,[O.skopos]:`skopos`,[O.rauora]:`rauora`}),A=Object.freeze({[O.striker]:{name:`Striker`,role:`attacker`},[O.sledge]:{name:`Sledge`,role:`attacker`},[O.thatcher]:{name:`Thatcher`,role:`attacker`},[O.ash]:{name:`Ash`,role:`attacker`},[O.thermite]:{name:`Thermite`,role:`attacker`},[O.twitch]:{name:`Twitch`,role:`attacker`},[O.montagne]:{name:`Montagne`,role:`attacker`},[O.glaz]:{name:`Glaz`,role:`attacker`},[O.fuze]:{name:`Fuze`,role:`attacker`},[O.blitz]:{name:`Blitz`,role:`attacker`},[O.iq]:{name:`IQ`,role:`attacker`},[O.buck]:{name:`Buck`,role:`attacker`},[O.blackbeard]:{name:`Blackbeard`,role:`attacker`},[O.capitao]:{name:`Capitão`,role:`attacker`},[O.hibana]:{name:`Hibana`,role:`attacker`},[O.jackal]:{name:`Jackal`,role:`attacker`},[O.ying]:{name:`Ying`,role:`attacker`},[O.zofia]:{name:`Zofia`,role:`attacker`},[O.dokkaebi]:{name:`Dokkaebi`,role:`attacker`},[O.lion]:{name:`Lion`,role:`attacker`},[O.finka]:{name:`Finka`,role:`attacker`},[O.maverick]:{name:`Maverick`,role:`attacker`},[O.nomad]:{name:`Nomad`,role:`attacker`},[O.gridlock]:{name:`Gridlock`,role:`attacker`},[O.nokk]:{name:`Nøkk`,role:`attacker`},[O.amaru]:{name:`Amaru`,role:`attacker`},[O.kali]:{name:`Kali`,role:`attacker`},[O.iana]:{name:`Iana`,role:`attacker`},[O.ace]:{name:`Ace`,role:`attacker`},[O.zero]:{name:`Zero`,role:`attacker`},[O.flores]:{name:`Flores`,role:`attacker`},[O.osa]:{name:`Osa`,role:`attacker`},[O.sens]:{name:`Sens`,role:`attacker`},[O.grim]:{name:`Grim`,role:`attacker`},[O.brava]:{name:`Brava`,role:`attacker`},[O.ram]:{name:`Ram`,role:`attacker`},[O.deimos]:{name:`Deimos`,role:`attacker`},[O.rauora]:{name:`Rauora`,role:`attacker`},[O.sentry]:{name:`Sentry`,role:`defender`},[O.smoke]:{name:`Smoke`,role:`defender`},[O.mute]:{name:`Mute`,role:`defender`},[O.castle]:{name:`Castle`,role:`defender`},[O.pulse]:{name:`Pulse`,role:`defender`},[O.doc]:{name:`Doc`,role:`defender`},[O.rook]:{name:`Rook`,role:`defender`},[O.kapkan]:{name:`Kapkan`,role:`defender`},[O.tachanka]:{name:`Tachanka`,role:`defender`},[O.jager]:{name:`Jäger`,role:`defender`},[O.bandit]:{name:`Bandit`,role:`defender`},[O.frost]:{name:`Frost`,role:`defender`},[O.valkyrie]:{name:`Valkyrie`,role:`defender`},[O.caveira]:{name:`Caveira`,role:`defender`},[O.echo]:{name:`Echo`,role:`defender`},[O.mira]:{name:`Mira`,role:`defender`},[O.lesion]:{name:`Lesion`,role:`defender`},[O.ela]:{name:`Ela`,role:`defender`},[O.vigil]:{name:`Vigil`,role:`defender`},[O.alibi]:{name:`Alibi`,role:`defender`},[O.maestro]:{name:`Maestro`,role:`defender`},[O.clash]:{name:`Clash`,role:`defender`},[O.kaid]:{name:`Kaid`,role:`defender`},[O.mozzie]:{name:`Mozzie`,role:`defender`},[O.warden]:{name:`Warden`,role:`defender`},[O.goyo]:{name:`Goyo`,role:`defender`},[O.wamai]:{name:`Wamai`,role:`defender`},[O.oryx]:{name:`Oryx`,role:`defender`},[O.melusi]:{name:`Melusi`,role:`defender`},[O.aruni]:{name:`Aruni`,role:`defender`},[O.thunderbird]:{name:`Thunderbird`,role:`defender`},[O.thorn]:{name:`Thorn`,role:`defender`},[O.azami]:{name:`Azami`,role:`defender`},[O.solis]:{name:`Solis`,role:`defender`},[O.fenrir]:{name:`Fenrir`,role:`defender`},[O.tubarao]:{name:`Tubarao`,role:`defender`},[O.skopos]:{name:`Skopós`,role:`defender`}}),te=Object.freeze({attacker:Object.entries(A).filter(([e,t])=>t.role===`attacker`).map(([e])=>({...A[s(Number(e))],id:s(Number(e))})),defender:Object.entries(A).filter(([e,t])=>t.role===`defender`).map(([e])=>({...A[s(Number(e))],id:s(Number(e))}))}),j=Object.freeze({favela:c(202283),fortress:c(293334),villa:c(286407),neighborhood:c(333785),article5:c(196214),themePark:c(229325),stadium:c(338641),outback:c(299162),yacht:c(62226),emeraldPlains:c(358871),chalet:c(62230),coastline:c(217482),bank:c(62228),consulate:c(62227),tower:c(255669),nighthavenLabs:c(375492),presidentialPlane:c(62225),house:c(62221),kafeDostoyevsky:c(62232),border:c(201746),closeQuarter:c(365400),bartlettU:c(62231),lair:c(396234),herefordBase:c(62223),skyscraper:c(208094),cqbBasics:c(196157),oregon:c(62222),fortTruth:c(307723),kanal:c(62229),stadium2020:c(357300),clubhouse:c(62224),district:c(1193341205)}),M=Object.freeze({202283:`Favela`,293334:`Fortress`,286407:`Villa`,333785:`Neighborhood`,196214:`Article 5`,229325:`Theme Park`,338641:`Stadium`,299162:`Outback`,62226:`Yacht`,358871:`Emerald Plains`,62230:`Chalet`,217482:`Coastline`,62228:`Bank`,62227:`Consulate`,255669:`Tower`,375492:`Nighthaven Labs`,62225:`Presidential Plane`,187984:`Article 5`,62221:`House`,62232:`Kafe Dostoyevsky`,201746:`Border`,365400:`Close Quarter`,299161:`Outback`,62231:`Bartlett U.`,396234:`Lair`,62223:`Hereford Base`,208094:`Skyscraper`,196157:`CQB Basics`,62222:`Oregon`,299534:`Outback`,318512:`Stadium`,307723:`Fort Truth`,195681:`Article 5`,62229:`Kanal`,177763:`CQB Basics`,357300:`Stadium 2020`,62224:`Clubhouse`,1193341205:`District`}),N=Object.freeze({notPlayed:l(0),inProgress:l(1),lost:l(2),enemiesEliminated:l(3),objectiveComplete:l(4),timeRanOut:l(5),enemiesSurrendered:l(6),unknownReason:l(7),matchCancelled:l(8)}),P=Object.freeze({[N.notPlayed]:`Not Played`,[N.inProgress]:`In Progress`,[N.lost]:`Lost`,[N.enemiesEliminated]:`Enemies Eliminated`,[N.objectiveComplete]:`Objective Complete`,[N.timeRanOut]:`Time ran out`,[N.enemiesSurrendered]:`Enemies Surrendered`,[N.unknownReason]:`Unknown Reason`,[N.matchCancelled]:`Match Cancelled`}),F=n({game:`string`,type:`string`,creation_time:`number`}),I=[N.enemiesEliminated,N.objectiveComplete,N.timeRanOut,N.enemiesSurrendered,N.unknownReason];function L(e){return I.includes(e)}const R=[N.notPlayed,N.inProgress];function z(e){return!R.includes(e)}const B=F.and({game:`'siege'`}),V=B.and({type:`'local_player'`,content:{profile_id:r(n.string)}}),H=()=>n({id:`number`,value:`string`}),U=n({kills:`number`,deaths:`number`,assists:`number`,plants:`number`,score:`number`}),W=n({instigator_player_id:r(n.number),receiver_player_id:r(n.number),damage_amount:`number`,remaining_health:`number`,pre_damage_health:`number`,max_health:`number`,damage_type:C,damage_team_type:T,damage_item_id:r(n.number).or(`null`),damage_time:`number`}),G=n({index:`number`,rounds_until_next_segment:`number`,segment_size:`number`,segment_index:`number`,team_0:{role:y,state:r(n.number)},team_1:{role:y,state:r(n.number)}}),K=n({id:`number`,name:H(),time_of_day:H()}),q=n({player_id:r(n.number),final_health:`number`,final_life_state:x,operator_name:H().or(`null`)}),J=n({round_data:G,damage_events:W.array(),players:q.array()}),Y=B.and({type:`'match_started'`,content:{game_mode:`string`,game_type:H(),match_type:`string`,match_id:r(n.string),map:K,is_round_based:`boolean`,current_round_index:`number`,rounds:G.array()}}),X=B.and({type:`'module_loaded'`}),Z=B.and({type:`'module_unloaded'`}),Q=B.and({type:`'started_queuing'`,content:{game_mode:`string`,game_type:H(),match_type:`string`}}),ne=B.and({type:`'stopped_queuing'`}),re=B.and({type:`'unsupported_game_version'`,content:{hash:`string | null`,version:`string | null`}}),ie=B.and({type:`'match_ended'`}),ae=B.and({type:`'map_changed'`,content:{map:K}}),oe=B.and({type:`'operator_banned'`,content:{index:`number`,team:_,side:y,operator_name:H().or(`null`)}}),se=B.and({type:`'round_ended'`,content:J}),ce=B.and({type:`'phase_changed'`,content:{phase:h}}),le=B.and({type:`'player_joined'`,content:{player_id:r(n.number),profile_id:`string.uuid`,is_bot:`boolean`,is_enemy:`boolean`,is_squad_member:`boolean`,is_local_player:`boolean`,username:`string`,side:y,team:_,is_privacy_username:`boolean`,has_avatar_hidden:`boolean`,has_commend_streak:`boolean`,ping_id:`number`,match_stats:U,life_state:x,ping:`number`}}).pipe(e=>({...e,content:{...e.content,starting_side:e.content.side}})),ue=B.and({type:`'player_left'`,content:{player_id:r(n.number)}}),de=B.and({type:`'player_operator_changed'`,content:{player_id:r(n.number),operator_name:H().or(`null`)}}),fe=B.and({type:`'player_location_changed'`,content:{player_id:r(n.number),location_name:`string`}}),pe=B.and({type:`'player_side_changed'`,content:{player_id:r(n.number),side:y}}),me=B.and({type:`'player_stats_changed'`,content:{player_id:r(n.number),match_stats:U}}),$=B.and({type:`'player_ping_updated'`,content:{player_id:r(n.number),ping:`number`}}),he=B.and({type:`'defuser_planted'`,content:{player_id:r(n.number)}}),ge=B.and({type:`'defuser_sabotaged'`,content:{player_id:r(n.number)}}),_e=B.and({type:`'defuser_picked_up'`,content:{player_id:r(n.number),initial:`boolean`}}),ve=B.and({type:`'defuser_dropped'`,content:{player_id:r(n.number)}}),ye=B.and({type:`'player_life_state_changed'`,content:{player_id:r(n.number),life_state:x}}),be=B.and({type:`'player_died'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),xe=B.and({type:`'player_downed'`,content:{player_id:r(n.number),instigator_player_id:r(n.number)}}),Se=B.and({type:`'player_ping_id_changed'`,content:{player_id:r(n.number),ping_id:`number`}}),Ce=B.and({type:`'player_team_changed'`,content:{player_id:r(n.number),team:_}}),we=t({"#event1":`module_loaded | module_unloaded | unsupported_game_version | local_player | started_queuing | stopped_queuing | match_started | match_ended | map_changed | operator_banned | round_ended | phase_changed | player_joined | player_left | player_operator_changed | player_location_changed | player_side_changed | player_stats_changed`,"#event2":`player_life_state_changed | player_died | player_downed | player_ping_id_changed | player_team_changed | defuser_planted | defuser_sabotaged | defuser_picked_up | defuser_dropped | player_ping_updated`,event:`event1 | event2`,module_loaded:X,module_unloaded:Z,unsupported_game_version:re,local_player:V,started_queuing:Q,stopped_queuing:ne,match_started:Y,match_ended:ie,map_changed:ae,operator_banned:oe,round_ended:se,phase_changed:ce,player_joined:le,player_left:ue,player_operator_changed:de,player_location_changed:fe,player_side_changed:pe,player_stats_changed:me,defuser_planted:he,defuser_sabotaged:ge,defuser_picked_up:_e,defuser_dropped:ve,player_ping_updated:$,player_life_state_changed:ye,player_died:be,player_downed:xe,player_ping_id_changed:Se,player_team_changed:Ce}).export();function Te(){return{key:`siege`,events:we}}export{F as BaseEvent,p as SIEGE_BOT_ID,w as SIEGE_DAMAGE_TEAM_TYPES,S as SIEGE_DAMAGE_TYPES,m as SIEGE_GAME_MODE_PHASES,E as SIEGE_GAME_MODE_TYPES_TO_ID,D as SIEGE_GAME_MODE_TYPE_LABELS,M as SIEGE_MAP_LABELS,j as SIEGE_MAP_TO_ID,k as SIEGE_OPERATOR_LABELS,A as SIEGE_OPERATOR_META,O as SIEGE_OPERATOR_TO_ID,b as SIEGE_PLAYER_LIFE_STATES,N as SIEGE_ROUND_STATES_TO_ID,P as SIEGE_ROUND_STATE_LABELS,v as SIEGE_SIDES,te as SIEGE_SIDE_OPERATORS,g as SIEGE_TEAMS,T as SiegeDamageTeamTypeSchema,C as SiegeDamageTypeSchema,h as SiegeGameModePhaseSchema,o as SiegeGameModeTypeNameId,f as SiegeItemObjectId,c as SiegeMapNameId,ee as SiegeMatchId,s as SiegeOperatorNameId,u as SiegePlayerId,x as SiegePlayerLifeStateSchema,d as SiegeProfileId,l as SiegeRoundState,y as SiegeSideSchema,_ as SiegeTeamSchema,z as isSiegeRoundStateCompleted,L as isSiegeRoundStateVictory,Te as module};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@overlayed/app",
3
3
  "author": "overlayed.gg",
4
4
  "homepage": "https://overlayed.gg",
5
- "version": "0.13.0",
5
+ "version": "0.13.1",
6
6
  "description": "Overlayed app",
7
7
  "license": "BSD-3-Clause",
8
8
  "repository": {