narrat 3.2.9 → 3.2.10
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/narrat.es.js +1 -1
- package/dist/narrat.es.js.map +1 -1
- package/dist/narrat.umd.js +1 -1
- package/dist/narrat.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/narrat.umd.js
CHANGED
|
@@ -172,7 +172,7 @@ Found in store "${E.$id}".`),p&&o&&n.hydrate&&n.hydrate(E.$state,p),c=!0,f=!0,E}
|
|
|
172
172
|
This will fail in production.`);s=Ih,s._s.has(r)||(o?Fx(r,t,i,s):q7(r,i,s),process.env.NODE_ENV!=="production"&&(a._pinia=s));const f=s._s.get(r);if(process.env.NODE_ENV!=="production"&&l){const u="__hot:"+r,d=o?Fx(u,t,i,s,!0):q7(u,ta({},i),s,!0);l._hotUpdate(d),delete s.state.value[u],s._s.delete(u)}if(process.env.NODE_ENV!=="production"&&Ng){const u=b.getCurrentInstance();if(u&&u.proxy&&!l){const d=u.proxy,h="_pStores"in d?d._pStores:d._pStores={};h[r]=f}}return f}return a.$id=r,a}function Kc(e,t){return Array.isArray(t)?t.reduce((n,r)=>(n[r]=function(){return e(this.$pinia)[r]},n),{}):Object.keys(t).reduce((n,r)=>(n[r]=function(){const i=e(this.$pinia),o=t[r];return typeof o=="function"?o.call(this,i):i[o]},n),{})}const H7=["music","ambiant","sound"],W7=$he(H7),gi=ai("audio",{state:()=>{const e=new Map;for(const t in W7)e.set(t,{channels:[],options:{volume:1}});return{modes:e,masterVolume:1}},actions:{stopAll(){this.modes.forEach(e=>{e.channels.forEach((t,n)=>{t&&(this.actuallyStopChannel(t),e.channels[n]=null)})})},async stopChannel(e,t){const n=this.getAudioChannel(e,t);if(n){if(this.setAudioChannel(e,t,null),$s().options.musicFadeOutTime){const r=Jc(n.audio);r&&r.fade(r.volume(n.howlerId),0,$s().options.musicFadeOutTime*1e3,n.howlerId),await ea($s().options.musicFadeOutTime*1e3)}this.actuallyStopChannel(n)}},async pauseChannel(e,t){const n=this.getAudioChannel(e,t);if(!n)return;const r=Jc(n.audio);if(!r){Wt(`Could not find audio ${n.audio}`);return}r.pause(n.howlerId)},async playChannel(e,t,n){ws.Howler.ctx.state==="suspended"&&(console.warn("Audio context is suspended :o"),ws.Howler.ctx.resume());const r=this.getAudioChannel(e,n);if(e==="sound")return this.actuallyPlayChannel(e,n,t);r&&r.audio!==t?await this.changeChannel(e,t,n):r&&r.audio===t?await this.resumeChannel(e,n):await this.actuallyPlayChannel(e,n,t)},async resumeChannel(e,t){const n=this.getAudioChannel(e,t);if(!n)return;const r=Jc(n.audio);if(!r){Wt(`Could not find audio ${n.audio}`);return}r.play(n.howlerId)},async changeChannel(e,t,n){this.getAudioChannel(e,n)&&e!=="sound"&&await this.stopChannel(e,n),await this.actuallyPlayChannel(e,n,t)},actuallyStopChannel(e){ope(e.audio,e.howlerId)},getAudioChannel(e,t){return this.modes.get(e).channels[t]||null},setAudioChannel(e,t,n){this.modes.get(e).channels[t]=n},async actuallyPlayChannel(e,t,n){const r=Jc(n);if(!r){Wt(`Could not find audio ${n}`);return}if(e!=="sound"){const i=r.play();r.volume(0,i),r.pause(i),this.setAudioChannel(e,t,{audio:n,howlerId:i}),await ea($s().options.musicFadeInDelay*1e3);const o=this.getAudioChannel(e,t);o!==null&&o.audio===n&&(r.play(i),r.fade(0,this.modeVolume(e)*r.volume(),$s().options.musicFadeInTime*1e3,i))}else if(e==="sound"){const i=r.play();r.volume(this.modeVolume(e)*r.volume(),i),this.setAudioChannel(e,t,{audio:n,howlerId:i})}},reloadAudio(e){for(const t in e.modes){if(t==="sound")continue;const n=t;this.modes.get(n).options=ir(e.modes[n].options);for(const r in e.modes[n].channels){const i=e.modes[n].channels[r];i&&i.audio&&this.actuallyPlayChannel(n,Number(r),i.audio)}}},stopSound(e){const t=Jc(e);t&&t.stop()},generateSaveData(){const e={};for(const t in W7){const n=this.modes.get(t);e[t]={options:ir(n.options),channels:ir(n.channels).map(r=>r?{audio:r.audio}:{audio:null})}}return{modes:e,masterVolume:this.masterVolume}},loadSaveData(e){this.masterVolume=e.masterVolume},reset(){this.stopAll()},setModeVolume(e,t){const n=this.modes.get(e);n.options.volume=t;for(const r in n.channels){const i=n.channels[r];if(i){const o=Jc(i.audio);o&&o.volume(this.modeVolume(e),i.howlerId)}}},setMasterVolume(e){this.masterVolume=e,ws.Howler.volume(e)},modeVolume(e){return this.masterVolume*this.modes.get(e).options.volume}}}),K7={};ws.Howler.volume(.5);let Vx={};async function rpe(e){ko.log("Loading audio");const t=[];ws.Howler.volume(e.options.volume);for(const n in e.files){const r=e.files[n];r.src||(r.src=r.path,r.path||console.error(`Audio config for ${n} doesn't have any \`src\` value to find the file`),console.warn("Using `path` for audio and musics is deprecated. Please replace `path` with `src` in your config file!")),t.push(ipe(n,e.files[n]))}return e.audioTriggers&&(Vx=e.audioTriggers),Promise.all(t)}function Gc(e){Vx[e]&&gi().playChannel("sound",Vx[e],0)}async function ipe(e,t){return new Promise((n,r)=>{ko.log(`Loading audio ${t.src}`);const i=new ws.Howl({...t,src:ia(t.src)});i.load(),K7[e]=i,n()})}function ope(e,t){const n=Jc(e);if(!n){Kh(`Could not find music ${e}`);return}n.stop(t)}function Jc(e){return K7[e]}const Mf={};async function ape(e){return Mf[e]?Mf[e]:G7(e,e)}async function spe(e){ko.log("Loading images");let t=0,n=0;const r=[],i=async(a,s)=>{n++;const l=await G7(a,s);return t++,console.log(`Loaded ${t} / ${n} images`),l},o=(a,s)=>{r.push(i(a,s))};for(const a in e.images){const s=e.images[a];o(a,s)}for(const a in e.screens.screens){const s=e.screens.screens[a];if(s.background&&!e.images[s.background]&&o(s.background,s.background),s.buttons)for(const l in s.buttons){const c=s.buttons[l];typeof c=="object"&&c.background&&!e.images[c.background]&&o(c.background,c.background)}}return Promise.all(r)}async function G7(e,t){if(Mf[e])return Mf[e];const n=new Promise((r,i)=>{ko.log(`Loading image ${e} at ${t}`);const o=new Image;o.onload=()=>{Mf[e]=o,ko.log(`Loaded image ${e} successfully`),r(o)},o.onerror=a=>{Wt(`Failed to load image ${e} at ${t}`,a),i(a)},o.src=ia(t)});return Mf[e]=n,n}function Pf(){return`${Date.now()}-${Math.floor(Math.random()*1e11)}-${Math.floor(Math.random()*1e11)}`}const J7="3.2.3";function zx(){return`NARRAT_SAVE_${wt().saveFileName}`}const lpe="gameSave";let Zr;function Xs(){if(Zr)return Zr;if(!Zr){let e=null;try{let t=localStorage.getItem(zx());t||(t=localStorage.getItem(lpe)),t&&(localStorage.setItem(`${zx()}_BACKUP`,t),e=JSON.parse(t)),e&&typeof e=="object"&&e.slots&&e.slots[0]&&e.slots[0].id||(e=null,localStorage.clear())}catch(t){Kh(`Save file deleted because it was either broken or an outdated format: ${t}`)}e?Zr=e:Zr=Y7()}return upe(Zr),X7(Zr),Lh(),Zr}function cpe(){Zr=Y7(),Lh()}function Q7(){return{achievements:{achievements:{}},data:{}}}function upe(e){e.version==="1.4.0"&&(e.globalSave=Q7(),e.version="1.5.0"),e.version==="1.5.0"&&(e.version="2.16.0"),e.version==="2.16.0"&&(e.slots.forEach(t=>{t&&t.saveData&&(t.saveData.settings={baseSettings:{textSpeed:30,animateText:!0,fontSize:16},customSettings:{}})}),e.version="2.17.0"),e.version==="2.17.0"&&(e.slots.forEach(t=>{t&&t.saveData&&(t.saveData.config={gameCharacter:"game",playerCharacter:"player"})}),e.version="3.2.3")}function Y7(){const e={version:J7,slots:[],globalSave:Q7()};return X7(e),e}function X7(e){const t=wt().saves.slots??10;e.slots.length<1&&(e.slots[0]={slotType:"auto",id:Pf(),saveData:null,slotNumber:0}),e.slots[0].slotType="auto";for(let n=1;n<t+1;n++)e.slots.length<=n&&(e.slots[n]={slotNumber:n,slotType:wt().saves.mode==="manual"?"manual":"auto",id:Pf(),saveData:null})}function Z7(e,t,n){const r=hpe(n);if(Zr.slots[r])Zr.slots[r].saveData=e;else{Wt(`Tried to save to slot ${n} but it doesn't exist`);return}Zr.globalSave=t,Lh()}function fpe(e){Zr.lastSaveSlot=e}function Lh(){localStorage.setItem(zx(),JSON.stringify(Zr))}function dpe(){const e=Zr.slots.find(t=>!t.saveData);return e?e.id:!1}function hpe(e){return Zr.slots.findIndex(t=>t.id===e)}function Bh(e){return Zr.slots.find(t=>t.id===e)}function Ux(){return Zr.slots.find(e=>e.slotType==="auto")}function ppe(e){const t=Zr.slots.findIndex(n=>n.id===e);Zr.slots[t].saveData=null,Lh()}function mpe(e,t){const n=Bh(e);n&&n.saveData&&(n.saveData.metadata.name=t),Lh()}function vpe(){return{saveDate:new Date().toISOString(),name:"New Save"}}const Bg=ai("tooltips",{state:()=>({tooltip:null}),actions:{addCustomTooltip(e){e.title&&(e.title=Zs(e.title)),e.text=Zs(e.text),this.tooltip=e},addTooltip(e,t){const n=eV(e);n&&this.addCustomTooltip({title:n.title,text:n.description,x:(t==null?void 0:t.x)??window.screenX,y:(t==null?void 0:t.y)??window.screenY,width:fp().options.width})},deleteTooltip(){this.tooltip=null}}});function qx(){return window}function gpe(e){const t=fp().options.keywordsPrefix,n=new RegExp(`${t}(\\w*)`,"gi");return e=e.replace(n,ype),e}qx().onTooltipEnter=(e,t)=>{const n={x:e.clientX,y:e.clientY-20};Bg().addTooltip(t,n)},qx().onTooltipLeave=()=>{Bg().deleteTooltip()};function ype(e,t){const n=t.toLowerCase();return eV(n)?`<span class='highlighted-tooltip-keyword'
|
|
173
173
|
onmouseenter="onTooltipEnter(event, '${n}')"
|
|
174
174
|
onmouseleave="onTooltipLeave()">${t}</span>`:n}function Zs(e){const t=e.replace(/%{[^}]*}/g,n=>{const r=n.substr(2,n.length-3);return e9(r)});return gpe(t)}function e9(e){const t=Yf(),[n,r]=w0(t,e);return n[r]}const t9=/\$\$"/,bpe=e=>typeof e=="string"&&e.search(t9)===0;function wpe(e){let t=null;const n=[],r=/<[^>]*>/g;do t=r.exec(e),t&&n.push(t);while(t);return n}const qn=ai("dialog",{state:()=>({dialog:[],playMode:"normal"}),actions:{generateSaveData(){return{dialog:ir(this.dialog)}},loadSaveData(e){this.dialog=e.dialog},addDialog(e){this.dialog.push({...e,interactive:e.interactive??!1,id:Pf(),text:Zs(e.text)}),this.dialog.length>200&&this.dialog.shift()},toggleAutoPlay(){this.playMode=this.playMode==="auto"?"normal":"auto"},toggleSkip(){this.playMode=this.playMode==="skip"?"normal":"skip"},clearDialog(){this.dialog.splice(0,this.dialog.length)},reset(){this.dialog=[],this.playMode="normal"}},getters:{currentDialog(){return this.dialog[this.dialog.length-1]}}});function kpe(e,t){return e-t*cp().options.extraPointsPerLevel}function n9(e,t){const{options:n}=cp();let r=e;n.showDifficultyWithoutModifiers||(r=kpe(e,t));const i=cp().options;let o=!1,a=0,s=i.difficultyText[0][1];for(;!o;)i.difficultyText.length>a&&r>=i.difficultyText[a][0]?s=i.difficultyText[a][1]:o=!0,a++;let l="";return n.showDifficultyText&&n.showDifficultyNumber?l=`${s} (${r})`:n.showDifficultyText?l=s:n.showDifficultyNumber&&(l=r.toString()),l}function xpe({skill:e,skillCheckId:t,value:n}){const r=Dr(),i=r.getSkillCheck(t),o=d_(e),a=r.skills[e].level,s=n9(n,a);let l=!0,c=`<span class='skill-check'>[<span class='skill-check-name'>${o.name}</span> - `;return i.happened?i.succeeded?c="":(l=!1,c+=` <span class='skill-check-difficulty'>${s}</span> - <span class='skill-check-failed'>FAILED</span>]</span>`):c+=` <span class='skill-check-difficulty'>${s}</span>]</span>`,{difficultyText:c,allowed:l}}function _pe(e,t){const n=Dr(),r=d_(t.skill),i=n9(t.difficulty,n.skills[t.skill].level);return`<span class='passive-skill-check skill-check'>[<span class='skill-check-name'>${r.name}</span> - <span class='skill-check-difficulty'>${i}</span> - ${e?'<span class="skill-check-success">Success</span>':'<span class="skill-check-failed">Failure</span>'}]</span>`}function jpe(e){const{options:t}=cp(),n=Spe(t,e),o=Dr().skills[e].level*t.extraPointsPerLevel;let a=n.reduce((s,l)=>s+l.unmodified,o);return t.finalRollIsHighest?(a=n.reduce((s,l)=>l.modified>s?l.modified:s,0),ko.log(`[SKILL CHECK] Keeping only highest roll: ${a}`)):t.finalRollIsLowest&&(a=n.reduce((s,l)=>l.modified<s?l.modified:s,n[0].modified),ko.log(`[SKILL CHECK] Keeping only lowest roll: ${a}`)),{roll:a,rolls:n}}function Spe(e,t){const r=Dr().skills[t],i=r.level*e.extraPointsPerLevel;let{diceRange:o,diceCount:a}=e;e.extraDicePerLevel&&(a+=e.extraDicePerLevel*r.level);const s=[];for(let l=0;l<a;l++){const c=Cpe(o),f=c+i;ko.log(`[SKILL CHECK] Roll ${l+1}/${a}: ${f}. (Base roll: ${c}, modifier: ${i} - Skill level: ${r.level})`),s.push({unmodified:c,modified:f})}return s}function Cpe(e){return Math.floor(Math.random()*e[1])+e[0]}function $pe(e){const{skills:t}=rl(),{roll:n,rolls:r}=jpe(e.skill),i=t[e.skill];let o=!1;if(typeof e.winsNeeded=="number"){const a=r.reduce((s,l)=>(r9(l.modified,e.difficulty)&&s++,s),0);a>=e.winsNeeded&&(o=!0),ko.log(`[SKILL CHECK ${i.name}] - Dice pool mode. ${e.winsNeeded} wins needed. Got ${a} successes.
|
|
175
|
-
(${e.id} - ${a}/${e.winsNeeded} - rolls: ${JSON.stringify(r.map(s=>s.modified))})`)}else o=r9(n,e.difficulty),ko.log(`[SKILL CHECK ${i.name}]: ${o?"✅":"❌"}`,`(${e.id}) - ${n}/${e.difficulty}`);return Gc(o?"onSkillCheckSuccess":"onSkillCheckFailure"),o}function r9(e,t){const{options:n}=cp();let r=e>=t;return n.successOnRollsBelowThreshold&&(r=e<=t),n.failOnRollsEqualToThreshold&&e===t&&(r=!1),r}var J={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Type=e.StandardType=e.ExtendedTypeBuilder=e.StandardTypeBuilder=e.TypeBuilder=e.TemplateLiteralDslParser=e.TemplateLiteralGenerator=e.TemplateLiteralFinite=e.TemplateLiteralParser=e.TemplateLiteralParserError=e.TemplateLiteralResolver=e.TemplateLiteralPattern=e.UnionResolver=e.KeyArrayResolver=e.KeyResolver=e.ObjectMap=e.IndexedAccessor=e.TypeClone=e.TypeExtends=e.TypeExtendsResult=e.ExtendsUndefined=e.TypeGuard=e.TypeGuardUnknownTypeError=e.FormatRegistry=e.TypeRegistry=e.PatternStringExact=e.PatternNumberExact=e.PatternBooleanExact=e.PatternString=e.PatternNumber=e.PatternBoolean=e.Kind=e.Hint=e.Modifier=void 0,e.Modifier=Symbol.for("TypeBox.Modifier"),e.Hint=Symbol.for("TypeBox.Hint"),e.Kind=Symbol.for("TypeBox.Kind"),e.PatternBoolean="(true|false)",e.PatternNumber="(0|[1-9][0-9]*)",e.PatternString="(.*)",e.PatternBooleanExact=`^${e.PatternBoolean}$`,e.PatternNumberExact=`^${e.PatternNumber}$`,e.PatternStringExact=`^${e.PatternString}$`;var t;(function(M){const j=new Map;function C(){return new Map(j)}M.Entries=C;function O(){return j.clear()}M.Clear=O;function F(H){return j.has(H)}M.Has=F;function T(H,z){j.set(H,z)}M.Set=T;function L(H){return j.get(H)}M.Get=L})(t||(e.TypeRegistry=t={}));var n;(function(M){const j=new Map;function C(){return new Map(j)}M.Entries=C;function O(){return j.clear()}M.Clear=O;function F(H){return j.has(H)}M.Has=F;function T(H,z){j.set(H,z)}M.Set=T;function L(H){return j.get(H)}M.Get=L})(n||(e.FormatRegistry=n={}));class r extends Error{constructor(j){super("TypeGuard: Unknown type"),this.schema=j}}e.TypeGuardUnknownTypeError=r;var i;(function(M){function j(W){return typeof W=="object"&&W!==null&&!Array.isArray(W)}function C(W){return typeof W=="object"&&W!==null&&Array.isArray(W)}function O(W){try{return new RegExp(W),!0}catch{return!1}}function F(W){if(typeof W!="string")return!1;for(let Ue=0;Ue<W.length;Ue++){const st=W.charCodeAt(Ue);if(st>=7&&st<=13||st===27||st===127)return!1}return!0}function T(W){return N(W)||Ot(W)}function L(W){return typeof W=="bigint"}function H(W){return typeof W=="string"}function z(W){return typeof W=="number"&&globalThis.Number.isFinite(W)}function V(W){return typeof W=="boolean"}function I(W){return W===void 0||W!==void 0&&L(W)}function P(W){return W===void 0||W!==void 0&&z(W)}function N(W){return W===void 0||W!==void 0&&V(W)}function D(W){return W===void 0||W!==void 0&&H(W)}function S(W){return W===void 0||W!==void 0&&H(W)&&F(W)&&O(W)}function A(W){return W===void 0||W!==void 0&&H(W)&&F(W)}function B(W){return W===void 0||Ot(W)}function Q(W){return Le(W)&&W[e.Kind]==="Any"&&D(W.$id)}M.TAny=Q;function te(W){return Le(W)&&W[e.Kind]==="Array"&&W.type==="array"&&D(W.$id)&&Ot(W.items)&&P(W.minItems)&&P(W.maxItems)&&N(W.uniqueItems)}M.TArray=te;function he(W){return Le(W)&&W[e.Kind]==="BigInt"&&W.type==="null"&&W.typeOf==="BigInt"&&D(W.$id)&&I(W.multipleOf)&&I(W.minimum)&&I(W.maximum)&&I(W.exclusiveMinimum)&&I(W.exclusiveMaximum)}M.TBigInt=he;function ke(W){return Le(W)&&W[e.Kind]==="Boolean"&&W.type==="boolean"&&D(W.$id)}M.TBoolean=ke;function be(W){if(!(Le(W)&&W[e.Kind]==="Constructor"&&W.type==="object"&&W.instanceOf==="Constructor"&&D(W.$id)&&C(W.parameters)&&Ot(W.returns)))return!1;for(const Ue of W.parameters)if(!Ot(Ue))return!1;return!0}M.TConstructor=be;function de(W){return Le(W)&&W[e.Kind]==="Date"&&W.type==="object"&&W.instanceOf==="Date"&&D(W.$id)&&P(W.minimumTimestamp)&&P(W.maximumTimestamp)&&P(W.exclusiveMinimumTimestamp)&&P(W.exclusiveMaximumTimestamp)}M.TDate=de;function Be(W){if(!(Le(W)&&W[e.Kind]==="Function"&&W.type==="object"&&W.instanceOf==="Function"&&D(W.$id)&&C(W.parameters)&&Ot(W.returns)))return!1;for(const Ue of W.parameters)if(!Ot(Ue))return!1;return!0}M.TFunction=Be;function ee(W){return Le(W)&&W[e.Kind]==="Integer"&&W.type==="integer"&&D(W.$id)&&P(W.multipleOf)&&P(W.minimum)&&P(W.maximum)&&P(W.exclusiveMinimum)&&P(W.exclusiveMaximum)}M.TInteger=ee;function Oe(W){if(!(Le(W)&&W[e.Kind]==="Intersect"&&C(W.allOf)&&D(W.type)&&(N(W.unevaluatedProperties)||B(W.unevaluatedProperties))&&D(W.$id))||"type"in W&&W.type!=="object")return!1;for(const Ue of W.allOf)if(!Ot(Ue))return!1;return!0}M.TIntersect=Oe;function Le(W){return j(W)&&e.Kind in W&&typeof W[e.Kind]=="string"}M.TKind=Le;function Ce(W){return Le(W)&&W[e.Kind]==="Literal"&&D(W.$id)&&typeof W.const=="string"}M.TLiteralString=Ce;function X(W){return Le(W)&&W[e.Kind]==="Literal"&&D(W.$id)&&typeof W.const=="number"}M.TLiteralNumber=X;function re(W){return Le(W)&&W[e.Kind]==="Literal"&&D(W.$id)&&typeof W.const=="boolean"}M.TLiteralBoolean=re;function we(W){return Ce(W)||X(W)||re(W)}M.TLiteral=we;function Me(W){return Le(W)&&W[e.Kind]==="Never"&&j(W.not)&&globalThis.Object.getOwnPropertyNames(W.not).length===0}M.TNever=Me;function Ee(W){return Le(W)&&W[e.Kind]==="Not"&&Ot(W.not)}M.TNot=Ee;function Ze(W){return Le(W)&&W[e.Kind]==="Null"&&W.type==="null"&&D(W.$id)}M.TNull=Ze;function ve(W){return Le(W)&&W[e.Kind]==="Number"&&W.type==="number"&&D(W.$id)&&P(W.multipleOf)&&P(W.minimum)&&P(W.maximum)&&P(W.exclusiveMinimum)&&P(W.exclusiveMaximum)}M.TNumber=ve;function Ne(W){if(!(Le(W)&&W[e.Kind]==="Object"&&W.type==="object"&&D(W.$id)&&j(W.properties)&&T(W.additionalProperties)&&P(W.minProperties)&&P(W.maxProperties)))return!1;for(const[Ue,st]of Object.entries(W.properties))if(!F(Ue)||!Ot(st))return!1;return!0}M.TObject=Ne;function ze(W){return Le(W)&&W[e.Kind]==="Promise"&&W.type==="object"&&W.instanceOf==="Promise"&&D(W.$id)&&Ot(W.item)}M.TPromise=ze;function Qe(W){if(!(Le(W)&&W[e.Kind]==="Record"&&W.type==="object"&&D(W.$id)&&T(W.additionalProperties)&&j(W.patternProperties)))return!1;const Ue=Object.keys(W.patternProperties);return!(Ue.length!==1||!O(Ue[0])||!Ot(W.patternProperties[Ue[0]]))}M.TRecord=Qe;function He(W){return Le(W)&&W[e.Kind]==="Ref"&&D(W.$id)&&H(W.$ref)}M.TRef=He;function at(W){return Le(W)&&W[e.Kind]==="String"&&W.type==="string"&&D(W.$id)&&P(W.minLength)&&P(W.maxLength)&&S(W.pattern)&&A(W.format)}M.TString=at;function dt(W){return Le(W)&&W[e.Kind]==="Symbol"&&W.type==="null"&&W.typeOf==="Symbol"&&D(W.$id)}M.TSymbol=dt;function sn(W){return Le(W)&&W[e.Kind]==="TemplateLiteral"&&W.type==="string"&&H(W.pattern)&&W.pattern[0]==="^"&&W.pattern[W.pattern.length-1]==="$"}M.TTemplateLiteral=sn;function yt(W){return Le(W)&&W[e.Kind]==="This"&&D(W.$id)&&H(W.$ref)}M.TThis=yt;function mn(W){if(!(Le(W)&&W[e.Kind]==="Tuple"&&W.type==="array"&&D(W.$id)&&z(W.minItems)&&z(W.maxItems)&&W.minItems===W.maxItems))return!1;if(W.items===void 0&&W.additionalItems===void 0&&W.minItems===0)return!0;if(!C(W.items))return!1;for(const Ue of W.items)if(!Ot(Ue))return!1;return!0}M.TTuple=mn;function Kt(W){return Le(W)&&W[e.Kind]==="Undefined"&&W.type==="null"&&W.typeOf==="Undefined"&&D(W.$id)}M.TUndefined=Kt;function nn(W){return ln(W)&&W.anyOf.every(Ue=>Ce(Ue)||X(Ue))}M.TUnionLiteral=nn;function ln(W){if(!(Le(W)&&W[e.Kind]==="Union"&&C(W.anyOf)&&D(W.$id)))return!1;for(const Ue of W.anyOf)if(!Ot(Ue))return!1;return!0}M.TUnion=ln;function Qn(W){return Le(W)&&W[e.Kind]==="Uint8Array"&&W.type==="object"&&D(W.$id)&&W.instanceOf==="Uint8Array"&&P(W.minByteLength)&&P(W.maxByteLength)}M.TUint8Array=Qn;function En(W){return Le(W)&&W[e.Kind]==="Unknown"&&D(W.$id)}M.TUnknown=En;function Xn(W){return Le(W)&&W[e.Kind]==="Unsafe"}M.TUnsafe=Xn;function zn(W){return Le(W)&&W[e.Kind]==="Void"&&W.type==="null"&&W.typeOf==="Void"&&D(W.$id)}M.TVoid=zn;function fn(W){return j(W)&&W[e.Modifier]==="ReadonlyOptional"}M.TReadonlyOptional=fn;function Ae(W){return j(W)&&W[e.Modifier]==="Readonly"}M.TReadonly=Ae;function bt(W){return j(W)&&W[e.Modifier]==="Optional"}M.TOptional=bt;function Ot(W){return typeof W=="object"&&(Q(W)||te(W)||ke(W)||he(W)||be(W)||de(W)||Be(W)||ee(W)||Oe(W)||we(W)||Me(W)||Ee(W)||Ze(W)||ve(W)||Ne(W)||ze(W)||Qe(W)||He(W)||at(W)||dt(W)||sn(W)||yt(W)||mn(W)||Kt(W)||ln(W)||Qn(W)||En(W)||Xn(W)||zn(W)||Le(W)&&t.Has(W[e.Kind]))}M.TSchema=Ot})(i||(e.TypeGuard=i={}));var o;(function(M){function j(C){return C[e.Kind]==="Undefined"?!0:C[e.Kind]==="Not"?!j(C.not):C[e.Kind]==="Intersect"?C.allOf.every(F=>j(F)):C[e.Kind]==="Union"?C.anyOf.some(F=>j(F)):!1}M.Check=j})(o||(e.ExtendsUndefined=o={}));var a;(function(M){M[M.Union=0]="Union",M[M.True=1]="True",M[M.False=2]="False"})(a||(e.TypeExtendsResult=a={}));var s;(function(M){function j(q){return q===a.False?a.False:a.True}function C(q,_){return a.True}function O(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)&&_.anyOf.some(G=>i.TAny(G)||i.TUnknown(G))?a.True:i.TUnion(_)?a.Union:i.TUnknown(_)||i.TAny(_)?a.True:a.Union}function F(q,_){return i.TUnknown(q)?a.False:i.TAny(q)?a.Union:i.TNever(q)?a.True:a.False}function T(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)&&Qe(_)?a.True:i.TArray(_)?j(ie(q.items,_.items)):a.False}function L(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TBigInt(_)?a.True:a.False}function H(q,_){return i.TLiteral(q)&&typeof q.const=="boolean"||i.TBoolean(q)?a.True:a.False}function z(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TBoolean(_)?a.True:a.False}function V(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):!i.TConstructor(_)||q.parameters.length>_.parameters.length||!q.parameters.every((G,le)=>j(ie(_.parameters[le],G))===a.True)?a.False:j(ie(q.returns,_.returns))}function I(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TDate(_)?a.True:a.False}function P(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):!i.TFunction(_)||q.parameters.length>_.parameters.length||!q.parameters.every((G,le)=>j(ie(_.parameters[le],G))===a.True)?a.False:j(ie(q.returns,_.returns))}function N(q,_){return i.TLiteral(q)&&typeof q.const=="number"||i.TNumber(q)||i.TInteger(q)?a.True:a.False}function D(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TInteger(_)||i.TNumber(_)?a.True:a.False}function S(q,_){return _.allOf.every(G=>ie(q,G)===a.True)?a.True:a.False}function A(q,_){return q.allOf.some(G=>ie(G,_)===a.True)?a.True:a.False}function B(q){return typeof q.const=="string"}function Q(q){return typeof q.const=="number"}function te(q){return typeof q.const=="boolean"}function he(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TString(_)?Qn(q):i.TNumber(_)?Oe(q):i.TInteger(_)?N(q):i.TBoolean(_)?H(q):i.TLiteral(_)&&_.const===q.const?a.True:a.False}function ke(q,_){return a.False}function be(q,_){return a.True}function de(q){let[_,G]=[q,0];for(;i.TNot(_);)_=_.not,G+=1;return G%2===0?_:e.Type.Unknown()}function Be(q,_){if(i.TNot(q))return ie(de(q),_);if(i.TNot(_))return ie(q,de(_));throw new Error("TypeExtends: Invalid fallthrough for Not")}function ee(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TNull(_)?a.True:a.False}function Oe(q,_){return i.TLiteral(q)&&Q(q)||i.TNumber(q)||i.TInteger(q)?a.True:a.False}function Le(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TInteger(_)||i.TNumber(_)?a.True:a.False}function Ce(q,_){return globalThis.Object.keys(q.properties).length===_}function X(q){return Qe(q)}function re(q){return Ce(q,0)||Ce(q,1)&&"description"in q.properties&&i.TUnion(q.properties.description)&&q.properties.description.anyOf.length===2&&(i.TString(q.properties.description.anyOf[0])&&i.TUndefined(q.properties.description.anyOf[1])||i.TString(q.properties.description.anyOf[1])&&i.TUndefined(q.properties.description.anyOf[0]))}function we(q){return Ce(q,0)}function Me(q){return Ce(q,0)}function Ee(q){return Ce(q,0)}function Ze(q){return Ce(q,0)}function ve(q){return Qe(q)}function Ne(q){const _=e.Type.Number();return Ce(q,0)||Ce(q,1)&&"length"in q.properties&&j(ie(q.properties.length,_))===a.True}function ze(q){return Ce(q,0)}function Qe(q){const _=e.Type.Number();return Ce(q,0)||Ce(q,1)&&"length"in q.properties&&j(ie(q.properties.length,_))===a.True}function He(q){const _=e.Type.Function([e.Type.Any()],e.Type.Any());return Ce(q,0)||Ce(q,1)&&"then"in q.properties&&j(ie(q.properties.then,_))===a.True}function at(q,_){return ie(q,_)===a.False||i.TOptional(q)&&!i.TOptional(_)?a.False:a.True}function dt(q,_){return i.TUnknown(q)?a.False:i.TAny(q)?a.Union:i.TNever(q)||i.TLiteral(q)&&B(q)&&X(_)||i.TLiteral(q)&&Q(q)&&we(_)||i.TLiteral(q)&&te(q)&&Me(_)||i.TSymbol(q)&&re(_)||i.TBigInt(q)&&Ee(_)||i.TString(q)&&X(_)||i.TSymbol(q)&&re(_)||i.TNumber(q)&&we(_)||i.TInteger(q)&&we(_)||i.TBoolean(q)&&Me(_)||i.TUint8Array(q)&&ve(_)||i.TDate(q)&&Ze(_)||i.TConstructor(q)&&ze(_)||i.TFunction(q)&&Ne(_)?a.True:i.TRecord(q)&&i.TString(mn(q))?_[e.Hint]==="Record"?a.True:a.False:i.TRecord(q)&&i.TNumber(mn(q))&&Ce(_,0)?a.True:a.False}function sn(q,_){if(i.TIntersect(_))return S(q,_);if(i.TUnion(_))return Ue(q,_);if(i.TUnknown(_))return ht();if(i.TAny(_))return C();if(i.TRecord(_))return nn(q,_);if(!i.TObject(_))return a.False;for(const G of globalThis.Object.keys(_.properties))if(!(G in q.properties)||at(q.properties[G],_.properties[G])===a.False)return a.False;return a.True}function yt(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)&&He(_)?a.True:i.TPromise(_)?j(ie(q.item,_.item)):a.False}function mn(q){if(e.PatternNumberExact in q.patternProperties)return e.Type.Number();if(e.PatternStringExact in q.patternProperties)return e.Type.String();throw Error("TypeExtends: Cannot get record key")}function Kt(q){if(e.PatternNumberExact in q.patternProperties)return q.patternProperties[e.PatternNumberExact];if(e.PatternStringExact in q.patternProperties)return q.patternProperties[e.PatternStringExact];throw Error("TypeExtends: Cannot get record value")}function nn(q,_){const G=mn(_),le=Kt(_);if(i.TLiteral(q)&&B(q)&&i.TNumber(G)&&j(ie(q,le))===a.True)return a.True;if(i.TUint8Array(q)&&i.TNumber(G)||i.TString(q)&&i.TNumber(G)||i.TArray(q)&&i.TNumber(G))return ie(q,le);if(i.TObject(q)){for(const xe of globalThis.Object.keys(q.properties))if(at(le,q.properties[xe])===a.False)return a.False;return a.True}return a.False}function ln(q,_){const G=Kt(q);return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?ie(G,Kt(_)):a.False}function Qn(q,_){return i.TLiteral(q)&&typeof q.const=="string"||i.TString(q)?a.True:a.False}function En(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TString(_)?a.True:a.False}function Xn(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TSymbol(_)?a.True:a.False}function zn(q,_){if(i.TTemplateLiteral(q))return ie(m.Resolve(q),_);if(i.TTemplateLiteral(_))return ie(q,m.Resolve(_));throw new Error("TypeExtends: Invalid fallthrough for TemplateLiteral")}function fn(q,_){return i.TUnknown(q)?a.False:i.TAny(q)?a.Union:i.TNever(q)?a.True:a.False}function Ae(q,_){return i.TArray(_)&&q.items!==void 0&&q.items.every(G=>ie(G,_.items)===a.True)}function bt(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)&&Qe(_)||i.TArray(_)&&Ae(q,_)?a.True:!i.TTuple(_)||q.items===void 0&&_.items!==void 0||q.items!==void 0&&_.items===void 0?a.False:q.items===void 0&&_.items===void 0||q.items.every((G,le)=>ie(G,_.items[le])===a.True)?a.True:a.False}function Ot(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TUint8Array(_)?a.True:a.False}function W(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TVoid(_)?dn(q):i.TUndefined(_)?a.True:a.False}function Ue(q,_){return _.anyOf.some(G=>ie(q,G)===a.True)?a.True:a.False}function st(q,_){return q.anyOf.every(G=>ie(G,_)===a.True)?a.True:a.False}function ht(q,_){return a.True}function Un(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TAny(_)?C():i.TString(_)?Qn(q):i.TNumber(_)?Oe(q):i.TInteger(_)?N(q):i.TBoolean(_)?H(q):i.TArray(_)?F(q):i.TTuple(_)?fn(q):i.TObject(_)?dt(q,_):i.TUnknown(_)?a.True:a.False}function dn(q,_){return i.TUndefined(q)||i.TUndefined(q)?a.True:a.False}function Rr(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TVoid(_)?a.True:a.False}function ie(q,_){if(i.TTemplateLiteral(q)||i.TTemplateLiteral(_))return zn(q,_);if(i.TNot(q)||i.TNot(_))return Be(q,_);if(i.TAny(q))return O(q,_);if(i.TArray(q))return T(q,_);if(i.TBigInt(q))return L(q,_);if(i.TBoolean(q))return z(q,_);if(i.TConstructor(q))return V(q,_);if(i.TDate(q))return I(q,_);if(i.TFunction(q))return P(q,_);if(i.TInteger(q))return D(q,_);if(i.TIntersect(q))return A(q,_);if(i.TLiteral(q))return he(q,_);if(i.TNever(q))return be();if(i.TNull(q))return ee(q,_);if(i.TNumber(q))return Le(q,_);if(i.TObject(q))return sn(q,_);if(i.TRecord(q))return ln(q,_);if(i.TString(q))return En(q,_);if(i.TSymbol(q))return Xn(q,_);if(i.TTuple(q))return bt(q,_);if(i.TPromise(q))return yt(q,_);if(i.TUint8Array(q))return Ot(q,_);if(i.TUndefined(q))return W(q,_);if(i.TUnion(q))return st(q,_);if(i.TUnknown(q))return Un(q,_);if(i.TVoid(q))return Rr(q,_);throw Error(`TypeExtends: Unknown left type operand '${q[e.Kind]}'`)}function ye(q,_){return ie(q,_)}M.Extends=ye})(s||(e.TypeExtends=s={}));var l;(function(M){function j(H){return typeof H=="object"&&H!==null}function C(H){return globalThis.Array.isArray(H)}function O(H){return H.map(z=>T(z))}function F(H){const z=globalThis.Object.getOwnPropertyNames(H).reduce((I,P)=>({...I,[P]:T(H[P])}),{}),V=globalThis.Object.getOwnPropertySymbols(H).reduce((I,P)=>({...I,[P]:T(H[P])}),{});return{...z,...V}}function T(H){return C(H)?O(H):j(H)?F(H):H}function L(H,z){return{...T(H),...z}}M.Clone=L})(l||(e.TypeClone=l={}));var c;(function(M){function j(H,z){const V=H.allOf.reduce((I,P)=>{const N=T(P,z);return N[e.Kind]==="Never"?I:[...I,N]},[]);return e.Type.Intersect(V)}function C(H,z){const V=H.anyOf.map(I=>T(I,z));return e.Type.Union(V)}function O(H,z){const V=H.properties[z];return V===void 0?e.Type.Never():e.Type.Union([V])}function F(H,z){const V=H.items;if(V===void 0)return e.Type.Never();const I=V[z];return I===void 0?e.Type.Never():I}function T(H,z){return H[e.Kind]==="Intersect"?j(H,z):H[e.Kind]==="Union"?C(H,z):H[e.Kind]==="Object"?O(H,z):H[e.Kind]==="Tuple"?F(H,z):e.Type.Never()}function L(H,z,V={}){return e.Type.Union(z.map(I=>T(H,I.toString())),V)}M.Resolve=L})(c||(e.IndexedAccessor=c={}));var f;(function(M){function j(L,H){return e.Type.Intersect(L.allOf.map(z=>F(z,H)),{...L})}function C(L,H){return e.Type.Union(L.anyOf.map(z=>F(z,H)),{...L})}function O(L,H){return H(L)}function F(L,H){return L[e.Kind]==="Intersect"?j(L,H):L[e.Kind]==="Union"?C(L,H):L[e.Kind]==="Object"?O(L,H):L}function T(L,H,z){return{...F(l.Clone(L,{}),H),...z}}M.Map=T})(f||(e.ObjectMap=f={}));var u;(function(M){function j(V){return V[0]==="^"&&V[V.length-1]==="$"?V.slice(1,V.length-1):V}function C(V,I){return V.allOf.reduce((P,N)=>[...P,...L(N,I)],[])}function O(V,I){const P=V.anyOf.map(N=>L(N,I));return[...P.reduce((N,D)=>D.map(S=>P.every(A=>A.includes(S))?N.add(S):N)[0],new Set)]}function F(V,I){return globalThis.Object.keys(V.properties)}function T(V,I){return I.includePatterns?globalThis.Object.keys(V.patternProperties):[]}function L(V,I){return i.TIntersect(V)?C(V,I):i.TUnion(V)?O(V,I):i.TObject(V)?F(V):i.TRecord(V)?T(V,I):[]}function H(V,I){return[...new Set(L(V,I))]}M.ResolveKeys=H;function z(V){return`^(${H(V,{includePatterns:!0}).map(N=>`(${j(N)})`).join("|")})$`}M.ResolvePattern=z})(u||(e.KeyResolver=u={}));var d;(function(M){function j(C){if(globalThis.Array.isArray(C))return C;if(i.TUnionLiteral(C))return C.anyOf.map(O=>O.const.toString());if(i.TLiteral(C))return[C.const];if(i.TTemplateLiteral(C)){const O=g.ParseExact(C.pattern);if(!y.Check(O))throw Error("KeyArrayResolver: Cannot resolve keys from infinite template expression");return[...w.Generate(O)]}return[]}M.Resolve=j})(d||(e.KeyArrayResolver=d={}));var h;(function(M){function*j(O){for(const F of O.anyOf)F[e.Kind]==="Union"?yield*j(F):yield F}function C(O){return e.Type.Union([...j(O)],{...O})}M.Resolve=C})(h||(e.UnionResolver=h={}));var p;(function(M){function j(F){return F.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function C(F,T){if(i.TTemplateLiteral(F))return F.pattern.slice(1,F.pattern.length-1);if(i.TUnion(F))return`(${F.anyOf.map(H=>C(H,T)).join("|")})`;if(i.TNumber(F))return`${T}${e.PatternNumber}`;if(i.TInteger(F))return`${T}${e.PatternNumber}`;if(i.TBigInt(F))return`${T}${e.PatternNumber}`;if(i.TString(F))return`${T}${e.PatternString}`;if(i.TLiteral(F))return`${T}${j(F.const.toString())}`;if(i.TBoolean(F))return`${T}${e.PatternBoolean}`;throw i.TNever(F)?Error("TemplateLiteralPattern: TemplateLiteral cannot operate on types of TNever"):Error(`TemplateLiteralPattern: Unexpected Kind '${F[e.Kind]}'`)}function O(F){return`^${F.map(T=>C(T,"")).join("")}$`}M.Create=O})(p||(e.TemplateLiteralPattern=p={}));var m;(function(M){function j(C){const O=g.ParseExact(C.pattern);if(!y.Check(O))return e.Type.String();const F=[...w.Generate(O)].map(T=>e.Type.Literal(T));return e.Type.Union(F)}M.Resolve=j})(m||(e.TemplateLiteralResolver=m={}));class v extends Error{constructor(j){super(j)}}e.TemplateLiteralParserError=v;var g;(function(M){function j(D,S,A){return D[S]===A&&D.charCodeAt(S-1)!==92}function C(D,S){return j(D,S,"(")}function O(D,S){return j(D,S,")")}function F(D,S){return j(D,S,"|")}function T(D){if(!(C(D,0)&&O(D,D.length-1)))return!1;let S=0;for(let A=0;A<D.length;A++)if(C(D,A)&&(S+=1),O(D,A)&&(S-=1),S===0&&A!==D.length-1)return!1;return!0}function L(D){return D.slice(1,D.length-1)}function H(D){let S=0;for(let A=0;A<D.length;A++)if(C(D,A)&&(S+=1),O(D,A)&&(S-=1),F(D,A)&&S===0)return!0;return!1}function z(D){for(let S=0;S<D.length;S++)if(C(D,S))return!0;return!1}function V(D){let[S,A]=[0,0];const B=[];for(let te=0;te<D.length;te++)if(C(D,te)&&(S+=1),O(D,te)&&(S-=1),F(D,te)&&S===0){const he=D.slice(A,te);he.length>0&&B.push(P(he)),A=te+1}const Q=D.slice(A);return Q.length>0&&B.push(P(Q)),B.length===0?{type:"const",const:""}:B.length===1?B[0]:{type:"or",expr:B}}function I(D){function S(Q,te){if(!C(Q,te))throw new v("TemplateLiteralParser: Index must point to open parens");let he=0;for(let ke=te;ke<Q.length;ke++)if(C(Q,ke)&&(he+=1),O(Q,ke)&&(he-=1),he===0)return[te,ke];throw new v("TemplateLiteralParser: Unclosed group parens in expression")}function A(Q,te){for(let he=te;he<Q.length;he++)if(C(Q,he))return[te,he];return[te,Q.length]}const B=[];for(let Q=0;Q<D.length;Q++)if(C(D,Q)){const[te,he]=S(D,Q),ke=D.slice(te,he+1);B.push(P(ke)),Q=he}else{const[te,he]=A(D,Q),ke=D.slice(te,he);ke.length>0&&B.push(P(ke)),Q=he-1}return B.length===0?{type:"const",const:""}:B.length===1?B[0]:{type:"and",expr:B}}function P(D){return T(D)?P(L(D)):H(D)?V(D):z(D)?I(D):{type:"const",const:D}}M.Parse=P;function N(D){return P(D.slice(1,D.length-1))}M.ParseExact=N})(g||(e.TemplateLiteralParser=g={}));var y;(function(M){function j(T){return T.type==="or"&&T.expr.length===2&&T.expr[0].type==="const"&&T.expr[0].const==="0"&&T.expr[1].type==="const"&&T.expr[1].const==="[1-9][0-9]*"}function C(T){return T.type==="or"&&T.expr.length===2&&T.expr[0].type==="const"&&T.expr[0].const==="true"&&T.expr[1].type==="const"&&T.expr[1].const==="false"}function O(T){return T.type==="const"&&T.const===".*"}function F(T){if(C(T))return!0;if(j(T)||O(T))return!1;if(T.type==="and")return T.expr.every(L=>F(L));if(T.type==="or")return T.expr.every(L=>F(L));if(T.type==="const")return!0;throw Error("TemplateLiteralFinite: Unknown expression type")}M.Check=F})(y||(e.TemplateLiteralFinite=y={}));var w;(function(M){function*j(L){if(L.length===1)return yield*L[0];for(const H of L[0])for(const z of j(L.slice(1)))yield`${H}${z}`}function*C(L){return yield*j(L.expr.map(H=>[...T(H)]))}function*O(L){for(const H of L.expr)yield*T(H)}function*F(L){return yield L.const}function*T(L){if(L.type==="and")return yield*C(L);if(L.type==="or")return yield*O(L);if(L.type==="const")return yield*F(L);throw Error("TemplateLiteralGenerator: Unknown expression")}M.Generate=T})(w||(e.TemplateLiteralGenerator=w={}));var k;(function(M){function*j(T){const L=T.trim().replace(/"|'/g,"");if(L==="boolean")return yield e.Type.Boolean();if(L==="number")return yield e.Type.Number();if(L==="bigint")return yield e.Type.BigInt();if(L==="string")return yield e.Type.String();const H=L.split("|").map(z=>e.Type.Literal(z.trim()));return yield H.length===0?e.Type.Never():H.length===1?H[0]:e.Type.Union(H)}function*C(T){if(T[1]!=="{"){const L=e.Type.Literal("$"),H=O(T.slice(1));return yield*[L,...H]}for(let L=2;L<T.length;L++)if(T[L]==="}"){const H=j(T.slice(2,L)),z=O(T.slice(L+1));return yield*[...H,...z]}yield e.Type.Literal(T)}function*O(T){for(let L=0;L<T.length;L++)if(T[L]==="$"){const H=e.Type.Literal(T.slice(0,L)),z=C(T.slice(L));return yield*[H,...z]}yield e.Type.Literal(T)}function F(T){return[...O(T)]}M.Parse=F})(k||(e.TemplateLiteralDslParser=k={}));let $=0;class x{Create(j){return j}Strict(j){return JSON.parse(JSON.stringify(j))}}e.TypeBuilder=x;class E extends x{Optional(j){return{[e.Modifier]:"Optional",...l.Clone(j,{})}}ReadonlyOptional(j){return{[e.Modifier]:"ReadonlyOptional",...l.Clone(j,{})}}Readonly(j){return{[e.Modifier]:"Readonly",...j}}Any(j={}){return this.Create({...j,[e.Kind]:"Any"})}Array(j,C={}){return this.Create({...C,[e.Kind]:"Array",type:"array",items:l.Clone(j,{})})}Boolean(j={}){return this.Create({...j,[e.Kind]:"Boolean",type:"boolean"})}Composite(j,C){const O=e.Type.Intersect(j,{}),T=u.ResolveKeys(O,{includePatterns:!1}).reduce((L,H)=>({...L,[H]:e.Type.Index(O,[H])}),{});return e.Type.Object(T,C)}Enum(j,C={}){const F=globalThis.Object.keys(j).filter(T=>isNaN(T)).map(T=>j[T]).map(T=>typeof T=="string"?{[e.Kind]:"Literal",type:"string",const:T}:{[e.Kind]:"Literal",type:"number",const:T});return this.Create({...C,[e.Kind]:"Union",anyOf:F})}Extends(j,C,O,F,T={}){switch(s.Extends(j,C)){case a.Union:return this.Union([l.Clone(O,T),l.Clone(F,T)]);case a.True:return l.Clone(O,T);case a.False:return l.Clone(F,T)}}Exclude(j,C,O={}){if(i.TTemplateLiteral(j))return this.Exclude(m.Resolve(j),C,O);if(i.TTemplateLiteral(C))return this.Exclude(j,m.Resolve(C),O);if(i.TUnion(j)){const F=j.anyOf.filter(T=>s.Extends(T,C)===a.False);return F.length===1?l.Clone(F[0],O):this.Union(F,O)}else return s.Extends(j,C)!==a.False?this.Never(O):l.Clone(j,O)}Extract(j,C,O={}){if(i.TTemplateLiteral(j))return this.Extract(m.Resolve(j),C,O);if(i.TTemplateLiteral(C))return this.Extract(j,m.Resolve(C),O);if(i.TUnion(j)){const F=j.anyOf.filter(T=>s.Extends(T,C)!==a.False);return F.length===1?l.Clone(F[0],O):this.Union(F,O)}else return s.Extends(j,C)!==a.False?l.Clone(j,O):this.Never(O)}Index(j,C,O={}){if(i.TArray(j)&&i.TNumber(C))return l.Clone(j.items,O);if(i.TTuple(j)&&i.TNumber(C)){const T=(j.items===void 0?[]:j.items).map(L=>l.Clone(L,{}));return this.Union(T,O)}else{const F=d.Resolve(C),T=l.Clone(j,{});return c.Resolve(T,F,O)}}Integer(j={}){return this.Create({...j,[e.Kind]:"Integer",type:"integer"})}Intersect(j,C={}){if(j.length===0)return e.Type.Never();if(j.length===1)return l.Clone(j[0],C);const O=j.every(L=>i.TObject(L)),F=j.map(L=>l.Clone(L,{})),T=i.TSchema(C.unevaluatedProperties)?{unevaluatedProperties:l.Clone(C.unevaluatedProperties,{})}:{};return C.unevaluatedProperties===!1||i.TSchema(C.unevaluatedProperties)||O?this.Create({...C,...T,[e.Kind]:"Intersect",type:"object",allOf:F}):this.Create({...C,...T,[e.Kind]:"Intersect",allOf:F})}KeyOf(j,C={}){if(i.TRecord(j)){const O=Object.getOwnPropertyNames(j.patternProperties)[0];if(O===e.PatternNumberExact)return this.Number(C);if(O===e.PatternStringExact)return this.String(C);throw Error("StandardTypeBuilder: Unable to resolve key type from Record key pattern")}else if(i.TTuple(j)){const F=(j.items===void 0?[]:j.items).map((T,L)=>e.Type.Literal(L));return this.Union(F,C)}else{if(i.TArray(j))return this.Number(C);{const O=u.ResolveKeys(j,{includePatterns:!1});if(O.length===0)return this.Never(C);const F=O.map(T=>this.Literal(T));return this.Union(F,C)}}}Literal(j,C={}){return this.Create({...C,[e.Kind]:"Literal",const:j,type:typeof j})}Never(j={}){return this.Create({...j,[e.Kind]:"Never",not:{}})}Not(j,C){return this.Create({...C,[e.Kind]:"Not",not:j})}Null(j={}){return this.Create({...j,[e.Kind]:"Null",type:"null"})}Number(j={}){return this.Create({...j,[e.Kind]:"Number",type:"number"})}Object(j,C={}){const O=globalThis.Object.getOwnPropertyNames(j),F=O.filter(z=>i.TOptional(j[z])||i.TReadonlyOptional(j[z])),T=O.filter(z=>!F.includes(z)),L=i.TSchema(C.additionalProperties)?{additionalProperties:l.Clone(C.additionalProperties,{})}:{},H=O.reduce((z,V)=>({...z,[V]:l.Clone(j[V],{})}),{});return T.length>0?this.Create({...C,...L,[e.Kind]:"Object",type:"object",properties:H,required:T}):this.Create({...C,...L,[e.Kind]:"Object",type:"object",properties:H})}Omit(j,C,O={}){const F=d.Resolve(C);return f.Map(l.Clone(j,{}),T=>{T.required&&(T.required=T.required.filter(L=>!F.includes(L)),T.required.length===0&&delete T.required);for(const L of globalThis.Object.keys(T.properties))F.includes(L)&&delete T.properties[L];return this.Create(T)},O)}Partial(j,C={}){function O(F){switch(F[e.Modifier]){case"ReadonlyOptional":F[e.Modifier]="ReadonlyOptional";break;case"Readonly":F[e.Modifier]="ReadonlyOptional";break;case"Optional":F[e.Modifier]="Optional";break;default:F[e.Modifier]="Optional";break}}return f.Map(l.Clone(j,{}),F=>(delete F.required,globalThis.Object.keys(F.properties).forEach(T=>O(F.properties[T])),F),C)}Pick(j,C,O={}){const F=d.Resolve(C);return f.Map(l.Clone(j,{}),T=>{T.required&&(T.required=T.required.filter(L=>F.includes(L)),T.required.length===0&&delete T.required);for(const L of globalThis.Object.keys(T.properties))F.includes(L)||delete T.properties[L];return this.Create(T)},O)}Record(j,C,O={}){if(i.TTemplateLiteral(j)){const F=g.ParseExact(j.pattern);return y.Check(F)?this.Object([...w.Generate(F)].reduce((T,L)=>({...T,[L]:l.Clone(C,{})}),{}),O):this.Create({...O,[e.Kind]:"Record",type:"object",patternProperties:{[j.pattern]:l.Clone(C,{})}})}else if(i.TUnion(j)){const F=h.Resolve(j);if(i.TUnionLiteral(F)){const T=F.anyOf.reduce((L,H)=>({...L,[H.const]:l.Clone(C,{})}),{});return this.Object(T,{...O,[e.Hint]:"Record"})}else throw Error("TypeBuilder: Record key of type union contains non-literal types")}else if(i.TLiteral(j)){if(typeof j.const=="string"||typeof j.const=="number")return this.Object({[j.const]:l.Clone(C,{})},O);throw Error("TypeBuilder: Record key of type literal is not of type string or number")}else if(i.TInteger(j)||i.TNumber(j)){const F=e.PatternNumberExact;return this.Create({...O,[e.Kind]:"Record",type:"object",patternProperties:{[F]:l.Clone(C,{})}})}else if(i.TString(j)){const F=j.pattern===void 0?e.PatternStringExact:j.pattern;return this.Create({...O,[e.Kind]:"Record",type:"object",patternProperties:{[F]:l.Clone(C,{})}})}else throw Error("StandardTypeBuilder: Record key is an invalid type")}Recursive(j,C={}){C.$id===void 0&&(C.$id=`T${$++}`);const O=j({[e.Kind]:"This",$ref:`${C.$id}`});return O.$id=C.$id,this.Create({...C,[e.Hint]:"Recursive",...O})}Ref(j,C={}){if(j.$id===void 0)throw Error("StandardTypeBuilder.Ref: Target type must specify an $id");return this.Create({...C,[e.Kind]:"Ref",$ref:j.$id})}Required(j,C={}){function O(F){switch(F[e.Modifier]){case"ReadonlyOptional":F[e.Modifier]="Readonly";break;case"Readonly":F[e.Modifier]="Readonly";break;case"Optional":delete F[e.Modifier];break;default:delete F[e.Modifier];break}}return f.Map(l.Clone(j,{}),F=>(F.required=globalThis.Object.keys(F.properties),globalThis.Object.keys(F.properties).forEach(T=>O(F.properties[T])),F),C)}Rest(j){return i.TTuple(j)?j.items===void 0?[]:j.items.map(C=>l.Clone(C,{})):[l.Clone(j,{})]}String(j={}){return this.Create({...j,[e.Kind]:"String",type:"string"})}TemplateLiteral(j,C={}){const O=typeof j=="string"?p.Create(k.Parse(j)):p.Create(j);return this.Create({...C,[e.Kind]:"TemplateLiteral",type:"string",pattern:O})}Tuple(j,C={}){const[O,F,T]=[!1,j.length,j.length],L=j.map(z=>l.Clone(z,{})),H=j.length>0?{...C,[e.Kind]:"Tuple",type:"array",items:L,additionalItems:O,minItems:F,maxItems:T}:{...C,[e.Kind]:"Tuple",type:"array",minItems:F,maxItems:T};return this.Create(H)}Union(j,C={}){if(i.TTemplateLiteral(j))return m.Resolve(j);{const O=j;if(O.length===0)return this.Never(C);if(O.length===1)return this.Create(l.Clone(O[0],C));const F=O.map(T=>l.Clone(T,{}));return this.Create({...C,[e.Kind]:"Union",anyOf:F})}}Unknown(j={}){return this.Create({...j,[e.Kind]:"Unknown"})}Unsafe(j={}){return this.Create({...j,[e.Kind]:j[e.Kind]||"Unsafe"})}}e.StandardTypeBuilder=E;class R extends E{BigInt(j={}){return this.Create({...j,[e.Kind]:"BigInt",type:"null",typeOf:"BigInt"})}ConstructorParameters(j,C={}){return this.Tuple([...j.parameters],{...C})}Constructor(j,C,O){const F=l.Clone(C,{}),T=j.map(L=>l.Clone(L,{}));return this.Create({...O,[e.Kind]:"Constructor",type:"object",instanceOf:"Constructor",parameters:T,returns:F})}Date(j={}){return this.Create({...j,[e.Kind]:"Date",type:"object",instanceOf:"Date"})}Function(j,C,O){const F=l.Clone(C,{}),T=j.map(L=>l.Clone(L,{}));return this.Create({...O,[e.Kind]:"Function",type:"object",instanceOf:"Function",parameters:T,returns:F})}InstanceType(j,C={}){return l.Clone(j.returns,C)}Parameters(j,C={}){return this.Tuple(j.parameters,{...C})}Promise(j,C={}){return this.Create({...C,[e.Kind]:"Promise",type:"object",instanceOf:"Promise",item:l.Clone(j,{})})}RegEx(j,C={}){return this.Create({...C,[e.Kind]:"String",type:"string",pattern:j.source})}ReturnType(j,C={}){return l.Clone(j.returns,C)}Symbol(j){return this.Create({...j,[e.Kind]:"Symbol",type:"null",typeOf:"Symbol"})}Undefined(j={}){return this.Create({...j,[e.Kind]:"Undefined",type:"null",typeOf:"Undefined"})}Uint8Array(j={}){return this.Create({...j,[e.Kind]:"Uint8Array",type:"object",instanceOf:"Uint8Array"})}Void(j={}){return this.Create({...j,[e.Kind]:"Void",type:"null",typeOf:"Void"})}}e.ExtendedTypeBuilder=R,e.StandardType=new E,e.Type=new R})(J);const Tpe=J.Type.Object({src:J.Type.String(),path:J.Type.Optional(J.Type.String()),volume:J.Type.Optional(J.Type.Number()),rate:J.Type.Optional(J.Type.Number()),html5:J.Type.Optional(J.Type.Boolean())}),Epe=J.Type.Record(J.Type.String(),Tpe),Ope=J.Type.Object({volume:J.Type.Optional(J.Type.Number()),defaultMusic:J.Type.Optional(J.Type.String()),musicFadeInTime:J.Type.Optional(J.Type.Number()),musicFadeOutTime:J.Type.Optional(J.Type.Number()),musicFadeInDelay:J.Type.Optional(J.Type.Number())}),Ape=J.Type.Record(J.Type.String(),J.Type.String()),i9=J.Type.Object({files:Epe,audioTriggers:Ape,options:Ope}),o9={files:{},audioTriggers:{},options:{volume:1,musicFadeInTime:.5,musicFadeInDelay:.5,musicFadeOutTime:.5}},Mpe=J.Type.Object({name:J.Type.String(),description:J.Type.String(),icon:J.Type.String(),onUse:J.Type.Optional(J.Type.Object({action:J.Type.String(),label:J.Type.String()})),tag:J.Type.Optional(J.Type.String()),category:J.Type.Optional(J.Type.String()),showIfEmpty:J.Type.Optional(J.Type.Boolean())}),a9=J.Type.Object({id:J.Type.String(),title:J.Type.String()}),s9=J.Type.Record(J.Type.String(),Mpe);J.Type.Object({categories:J.Type.Array(a9),items:s9});const l9=J.Type.Object({categories:J.Type.Optional(J.Type.Array(a9)),items:J.Type.Optional(s9)}),c9={categories:[{id:"default",title:"Items"}],items:{}},Ppe=J.Type.Object({description:J.Type.String(),hidden:J.Type.Optional(J.Type.Boolean())}),Npe=J.Type.Object({title:J.Type.String(),description:J.Type.String(),objectives:J.Type.Record(J.Type.String(),Ppe),category:J.Type.Optional(J.Type.String())}),Ipe=J.Type.Object({id:J.Type.String(),title:J.Type.String()}),Dpe=J.Type.Record(J.Type.String(),Npe),u9=J.Type.Object({quests:Dpe,categories:J.Type.Array(Ipe)}),f9={quests:{},categories:[{id:"default",title:"Quests"}]},d9=J.Type.Object({enabled:J.Type.Boolean(),background:J.Type.Optional(J.Type.String()),text:J.Type.Optional(J.Type.String()),cssClass:J.Type.Optional(J.Type.String()),position:J.Type.Object({left:J.Type.Number(),top:J.Type.Number(),width:J.Type.Optional(J.Type.Number()),height:J.Type.Optional(J.Type.Number())}),anchor:J.Type.Optional(J.Type.Object({x:J.Type.Number(),y:J.Type.Number()})),action:J.Type.Optional(J.Type.String()),actionType:J.Type.Optional(J.Type.String()),scriptClickable:J.Type.Optional(J.Type.Boolean()),tag:J.Type.Optional(J.Type.String())}),Rpe=J.Type.Record(J.Type.String(),d9),h9=J.Type.Object({buttons:Rpe,clickableDuringScriptsByDefault:J.Type.Optional(J.Type.Boolean())}),p9={buttons:{},clickableDuringScriptsByDefault:!1},Lpe=J.Type.Intersect([d9,J.Type.Object({id:J.Type.String()})]),Bpe=J.Type.Object({background:J.Type.String(),buttons:J.Type.Optional(J.Type.Array(J.Type.Union([J.Type.String(),Lpe])))}),m9=J.Type.Record(J.Type.String(),Bpe);J.Type.Object({screens:m9});const v9=J.Type.Object({screens:J.Type.Optional(m9)}),g9={screens:{}},Fpe=J.Type.Object({name:J.Type.String(),description:J.Type.String(),startingLevel:J.Type.Number(),hidden:J.Type.Optional(J.Type.Boolean()),icon:J.Type.String()}),y9=J.Type.Record(J.Type.String(),Fpe),b9=J.Type.Object({xpPerLevel:J.Type.Number(),notifyLevelUp:J.Type.Boolean()});J.Type.Object({skills:y9,skillOptions:b9});const w9=J.Type.Object({skills:J.Type.Optional(y9),skillOptions:J.Type.Optional(b9)}),k9={skills:{},skillOptions:{xpPerLevel:10,notifyLevelUp:!0}},Fg="###_--_~=:;_JUMP",Hx="###_--_~=:;_RETURN",Vpe="###_--_~=:;_OK",Vg="###_--_~=:;_STOP";function zpe(e){return e===Fg||e===Hx||e===Vpe||e===Vg}const Upe="3.2.9",qpe=new Date("2023-07-09T15:31:50.646Z"),Hpe=400,zg=20,Wx="@empty",x9={background:Wx},Wpe=J.Type.Object({color:J.Type.Optional(J.Type.String()),boxCss:J.Type.Optional(J.Type.Record(J.Type.String(),J.Type.Any())),nameCss:J.Type.Optional(J.Type.Record(J.Type.String(),J.Type.Any())),textCss:J.Type.Optional(J.Type.Record(J.Type.String(),J.Type.Any()))}),Kpe=J.Type.Object({sprites:J.Type.Optional(J.Type.Record(J.Type.String(),J.Type.String())),name:J.Type.String(),style:J.Type.Optional(Wpe)}),_9=J.Type.Object({config:J.Type.Object({imagesPath:J.Type.String(),playerCharacter:J.Type.Optional(J.Type.String()),gameCharacter:J.Type.Optional(J.Type.String())}),characters:J.Type.Record(J.Type.String(),Kpe)}),j9={config:{imagesPath:"",playerCharacter:"player",gameCharacter:"game"},characters:{}},Gpe=J.Type.Object({backgrounds:J.Type.Object({width:J.Type.Number(),height:J.Type.Number()}),dialogBottomPadding:J.Type.Union([J.Type.Number(),J.Type.String()]),minTextWidth:J.Type.Optional(J.Type.Number()),verticalLayoutThreshold:J.Type.Number(),defaultFontSize:J.Type.Optional(J.Type.Number()),portraits:J.Type.Object({width:J.Type.Number(),height:J.Type.Number(),offset:J.Type.Optional(J.Type.Object({landscape:J.Type.Optional(J.Type.Object({right:J.Type.Number(),bottom:J.Type.Number()})),portrait:J.Type.Optional(J.Type.Object({right:J.Type.Number(),bottom:J.Type.Number()}))}))})}),Jpe={backgrounds:{width:880,height:720},dialogBottomPadding:70,verticalLayoutThreshold:600,defaultFontSize:16,portraits:{width:100,height:100}},S9=J.Type.Object({options:J.Type.Object({delay:J.Type.Optional(J.Type.Number()),width:J.Type.Number(),keywordsPrefix:J.Type.String(),screenEdgesMinimumMargin:J.Type.Optional(J.Type.Number())}),tooltips:J.Type.Array(J.Type.Object({keywords:J.Type.Array(J.Type.String()),title:J.Type.String(),description:J.Type.String()}))}),C9={options:{delay:0,width:350,keywordsPrefix:"@@"},tooltips:[]},Qpe=J.Type.Object({name:J.Type.String(),description:J.Type.String(),icon:J.Type.String(),secret:J.Type.Optional(J.Type.Boolean()),category:J.Type.Optional(J.Type.String())}),$9=J.Type.Object({id:J.Type.String(),title:J.Type.String()}),T9=J.Type.Record(J.Type.String(),Qpe);J.Type.Object({defaultAchievementIcon:J.Type.String(),categories:J.Type.Array($9),achievements:T9,notifyNewAchievements:J.Type.Boolean(),secretAchievements:J.Type.Optional(J.Type.Object({censorDescription:J.Type.Optional(J.Type.Boolean()),censorName:J.Type.Optional(J.Type.Boolean()),hideUntilObtained:J.Type.Optional(J.Type.Boolean())}))});const Ype=J.Type.Object({categories:J.Type.Optional(J.Type.Array($9)),achievements:J.Type.Optional(T9)}),E9={categories:[{id:"default",title:"Achievements"}],achievements:{},notifyNewAchievements:!0,defaultAchievementIcon:"img/achievements/trophy.png"},Xpe=J.Type.Object({diceRange:J.Type.Tuple([J.Type.Number(),J.Type.Number()]),diceCount:J.Type.Number(),difficultyText:J.Type.Array(J.Type.Tuple([J.Type.Number(),J.Type.String()])),extraPointsPerLevel:J.Type.Number(),extraDicePerLevel:J.Type.Optional(J.Type.Number()),successOnRollsBelowThreshold:J.Type.Boolean(),showDifficultyText:J.Type.Boolean(),showDifficultyNumber:J.Type.Boolean(),showDifficultyWithoutModifiers:J.Type.Boolean(),finalRollIsHighest:J.Type.Optional(J.Type.Boolean()),finalRollIsLowest:J.Type.Optional(J.Type.Boolean()),failOnRollsEqualToThreshold:J.Type.Optional(J.Type.Boolean())}),Zpe=J.Type.Object({skill:J.Type.String(),difficulty:J.Type.Number(),winsNeeded:J.Type.Optional(J.Type.Number()),hideAfterRoll:J.Type.Optional(J.Type.Boolean()),repeatable:J.Type.Optional(J.Type.Boolean())}),O9=J.Type.Object({options:Xpe,skillChecks:J.Type.Record(J.Type.String(),Zpe)}),A9={options:{diceRange:[1,6],extraPointsPerLevel:1,extraDicePerLevel:0,diceCount:2,successOnRollsBelowThreshold:!1,showDifficultyText:!0,showDifficultyNumber:!1,showDifficultyWithoutModifiers:!1,finalRollIsHighest:!1,finalRollIsLowest:!1,difficultyText:[[2,"Very Easy"],[4,"Easy"],[6,"Medium"],[8,"Hard"],[10,"Very Hard"],[11,"Extremely Hard"],[12,"Near Impossible"]]},skillChecks:{}},Qc={baseAssetsPath:"",baseDataPath:"",gameTitle:"Narrat Game",saveFileName:"narrat save",images:{},layout:Jpe,settings:{},gameFlow:{},dialogPanel:{overlayMode:!0,rightOffset:100,bottomOffset:50,width:475,height:680,textSpeed:zg,animateText:!0,timeBetweenLines:100},splashScreens:{},screens:g9,buttons:p9,skills:k9,skillChecks:A9,scripts:[],audio:o9,notifications:{timeOnScreen:2.5,alsoPrintInDialogue:!1},tooltips:C9,hudStats:{},achievements:E9,items:c9,interactionTags:{default:{onlyInteractOutsideOfScripts:!0}},quests:f9,transitions:{},menuButtons:{},debugging:{showScriptFinishedMessage:!1},saves:{mode:"manual",slots:10},characters:j9};var eme=function(t){return tme(t)&&!nme(t)};function tme(e){return!!e&&typeof e=="object"}function nme(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||ome(e)}var rme=typeof Symbol=="function"&&Symbol.for,ime=rme?Symbol.for("react.element"):60103;function ome(e){return e.$$typeof===ime}function ame(e){return Array.isArray(e)?[]:{}}function Fh(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Nf(ame(e),e,t):e}function sme(e,t,n){return e.concat(t).map(function(r){return Fh(r,n)})}function lme(e,t){if(!t.customMerge)return Nf;var n=t.customMerge(e);return typeof n=="function"?n:Nf}function cme(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function M9(e){return Object.keys(e).concat(cme(e))}function P9(e,t){try{return t in e}catch{return!1}}function ume(e,t){return P9(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function fme(e,t,n){var r={};return n.isMergeableObject(e)&&M9(e).forEach(function(i){r[i]=Fh(e[i],n)}),M9(t).forEach(function(i){ume(e,i)||(P9(e,i)&&n.isMergeableObject(t[i])?r[i]=lme(i,n)(e[i],t[i],n):r[i]=Fh(t[i],n))}),r}function Nf(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||sme,n.isMergeableObject=n.isMergeableObject||eme,n.cloneUnlessOtherwiseSpecified=Fh;var r=Array.isArray(t),i=Array.isArray(e),o=r===i;return o?r?n.arrayMerge(e,t,n):fme(e,t,n):Fh(t,n)}Nf.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return Nf(r,i,n)},{})};var dme=Nf,hme=dme;const Vh=$_(hme),po=ai("config",{state:()=>({config:Qc}),actions:{async setConfig(e){this.config=e},extendConfig(e){this.config=Vh(this.config,e)},generateSaveData(){return{playerCharacter:this.playerCharacter,gameCharacter:this.gameCharacter}},loadSaveData(e){this.config.characters.config.playerCharacter=e.playerCharacter,this.config.characters.config.gameCharacter=e.gameCharacter}},getters:{playerCharacter(){return this.config.characters.config.playerCharacter??"player"},gameCharacter(){return this.config.characters.config.gameCharacter??"game"}}});function N9(e){const t=Dr(),n=t.getSkillCheck(e.id);if(n&&n.happened&&(n.succeeded||!e.repeatable))return n;const r=$pe(e);return R9(_pe(r,e)),r?t.passSkillCheck(e.id,e.hideAfterRoll):t.failSkillCheck(e.id,e.hideAfterRoll),t.getSkillCheck(e.id)}function pme(e,t=[]){const n=e.options,r=e.staticOptions,i=!!n.condition;if(i)return r.success;if(!i){for(const[o,a]of r.elseifs.entries())if(t[o]===!0)return a.branch}if(!i&&r.failure)return r.failure}function I9(e){return typeof e=="object"}function D9(e){return typeof e=="string"&&e.search(/\$/)===0}function R9(e){const t={speaker:po().gameCharacter,text:e,interactive:!1};qn().addDialog(t)}async function Kx(e){qn().addDialog(e)}function mme(e,t){if(t<e.length)return e[t]}/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function L9(e){return typeof e>"u"||e===null}function vme(e){return typeof e=="object"&&e!==null}function gme(e){return Array.isArray(e)?e:L9(e)?[]:[e]}function yme(e,t){var n,r,i,o;if(t)for(o=Object.keys(t),n=0,r=o.length;n<r;n+=1)i=o[n],e[i]=t[i];return e}function bme(e,t){var n="",r;for(r=0;r<t;r+=1)n+=e;return n}function wme(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var kme=L9,xme=vme,_me=gme,jme=bme,Sme=wme,Cme=yme,si={isNothing:kme,isObject:xme,toArray:_me,repeat:jme,isNegativeZero:Sme,extend:Cme};function B9(e,t){var n="",r=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(n+='in "'+e.mark.name+'" '),n+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(n+=`
|
|
175
|
+
(${e.id} - ${a}/${e.winsNeeded} - rolls: ${JSON.stringify(r.map(s=>s.modified))})`)}else o=r9(n,e.difficulty),ko.log(`[SKILL CHECK ${i.name}]: ${o?"✅":"❌"}`,`(${e.id}) - ${n}/${e.difficulty}`);return Gc(o?"onSkillCheckSuccess":"onSkillCheckFailure"),o}function r9(e,t){const{options:n}=cp();let r=e>=t;return n.successOnRollsBelowThreshold&&(r=e<=t),n.failOnRollsEqualToThreshold&&e===t&&(r=!1),r}var J={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Type=e.StandardType=e.ExtendedTypeBuilder=e.StandardTypeBuilder=e.TypeBuilder=e.TemplateLiteralDslParser=e.TemplateLiteralGenerator=e.TemplateLiteralFinite=e.TemplateLiteralParser=e.TemplateLiteralParserError=e.TemplateLiteralResolver=e.TemplateLiteralPattern=e.UnionResolver=e.KeyArrayResolver=e.KeyResolver=e.ObjectMap=e.IndexedAccessor=e.TypeClone=e.TypeExtends=e.TypeExtendsResult=e.ExtendsUndefined=e.TypeGuard=e.TypeGuardUnknownTypeError=e.FormatRegistry=e.TypeRegistry=e.PatternStringExact=e.PatternNumberExact=e.PatternBooleanExact=e.PatternString=e.PatternNumber=e.PatternBoolean=e.Kind=e.Hint=e.Modifier=void 0,e.Modifier=Symbol.for("TypeBox.Modifier"),e.Hint=Symbol.for("TypeBox.Hint"),e.Kind=Symbol.for("TypeBox.Kind"),e.PatternBoolean="(true|false)",e.PatternNumber="(0|[1-9][0-9]*)",e.PatternString="(.*)",e.PatternBooleanExact=`^${e.PatternBoolean}$`,e.PatternNumberExact=`^${e.PatternNumber}$`,e.PatternStringExact=`^${e.PatternString}$`;var t;(function(M){const j=new Map;function C(){return new Map(j)}M.Entries=C;function O(){return j.clear()}M.Clear=O;function F(H){return j.has(H)}M.Has=F;function T(H,z){j.set(H,z)}M.Set=T;function L(H){return j.get(H)}M.Get=L})(t||(e.TypeRegistry=t={}));var n;(function(M){const j=new Map;function C(){return new Map(j)}M.Entries=C;function O(){return j.clear()}M.Clear=O;function F(H){return j.has(H)}M.Has=F;function T(H,z){j.set(H,z)}M.Set=T;function L(H){return j.get(H)}M.Get=L})(n||(e.FormatRegistry=n={}));class r extends Error{constructor(j){super("TypeGuard: Unknown type"),this.schema=j}}e.TypeGuardUnknownTypeError=r;var i;(function(M){function j(W){return typeof W=="object"&&W!==null&&!Array.isArray(W)}function C(W){return typeof W=="object"&&W!==null&&Array.isArray(W)}function O(W){try{return new RegExp(W),!0}catch{return!1}}function F(W){if(typeof W!="string")return!1;for(let Ue=0;Ue<W.length;Ue++){const st=W.charCodeAt(Ue);if(st>=7&&st<=13||st===27||st===127)return!1}return!0}function T(W){return N(W)||Ot(W)}function L(W){return typeof W=="bigint"}function H(W){return typeof W=="string"}function z(W){return typeof W=="number"&&globalThis.Number.isFinite(W)}function V(W){return typeof W=="boolean"}function I(W){return W===void 0||W!==void 0&&L(W)}function P(W){return W===void 0||W!==void 0&&z(W)}function N(W){return W===void 0||W!==void 0&&V(W)}function D(W){return W===void 0||W!==void 0&&H(W)}function S(W){return W===void 0||W!==void 0&&H(W)&&F(W)&&O(W)}function A(W){return W===void 0||W!==void 0&&H(W)&&F(W)}function B(W){return W===void 0||Ot(W)}function Q(W){return Le(W)&&W[e.Kind]==="Any"&&D(W.$id)}M.TAny=Q;function te(W){return Le(W)&&W[e.Kind]==="Array"&&W.type==="array"&&D(W.$id)&&Ot(W.items)&&P(W.minItems)&&P(W.maxItems)&&N(W.uniqueItems)}M.TArray=te;function he(W){return Le(W)&&W[e.Kind]==="BigInt"&&W.type==="null"&&W.typeOf==="BigInt"&&D(W.$id)&&I(W.multipleOf)&&I(W.minimum)&&I(W.maximum)&&I(W.exclusiveMinimum)&&I(W.exclusiveMaximum)}M.TBigInt=he;function ke(W){return Le(W)&&W[e.Kind]==="Boolean"&&W.type==="boolean"&&D(W.$id)}M.TBoolean=ke;function be(W){if(!(Le(W)&&W[e.Kind]==="Constructor"&&W.type==="object"&&W.instanceOf==="Constructor"&&D(W.$id)&&C(W.parameters)&&Ot(W.returns)))return!1;for(const Ue of W.parameters)if(!Ot(Ue))return!1;return!0}M.TConstructor=be;function de(W){return Le(W)&&W[e.Kind]==="Date"&&W.type==="object"&&W.instanceOf==="Date"&&D(W.$id)&&P(W.minimumTimestamp)&&P(W.maximumTimestamp)&&P(W.exclusiveMinimumTimestamp)&&P(W.exclusiveMaximumTimestamp)}M.TDate=de;function Be(W){if(!(Le(W)&&W[e.Kind]==="Function"&&W.type==="object"&&W.instanceOf==="Function"&&D(W.$id)&&C(W.parameters)&&Ot(W.returns)))return!1;for(const Ue of W.parameters)if(!Ot(Ue))return!1;return!0}M.TFunction=Be;function ee(W){return Le(W)&&W[e.Kind]==="Integer"&&W.type==="integer"&&D(W.$id)&&P(W.multipleOf)&&P(W.minimum)&&P(W.maximum)&&P(W.exclusiveMinimum)&&P(W.exclusiveMaximum)}M.TInteger=ee;function Oe(W){if(!(Le(W)&&W[e.Kind]==="Intersect"&&C(W.allOf)&&D(W.type)&&(N(W.unevaluatedProperties)||B(W.unevaluatedProperties))&&D(W.$id))||"type"in W&&W.type!=="object")return!1;for(const Ue of W.allOf)if(!Ot(Ue))return!1;return!0}M.TIntersect=Oe;function Le(W){return j(W)&&e.Kind in W&&typeof W[e.Kind]=="string"}M.TKind=Le;function Ce(W){return Le(W)&&W[e.Kind]==="Literal"&&D(W.$id)&&typeof W.const=="string"}M.TLiteralString=Ce;function X(W){return Le(W)&&W[e.Kind]==="Literal"&&D(W.$id)&&typeof W.const=="number"}M.TLiteralNumber=X;function re(W){return Le(W)&&W[e.Kind]==="Literal"&&D(W.$id)&&typeof W.const=="boolean"}M.TLiteralBoolean=re;function we(W){return Ce(W)||X(W)||re(W)}M.TLiteral=we;function Me(W){return Le(W)&&W[e.Kind]==="Never"&&j(W.not)&&globalThis.Object.getOwnPropertyNames(W.not).length===0}M.TNever=Me;function Ee(W){return Le(W)&&W[e.Kind]==="Not"&&Ot(W.not)}M.TNot=Ee;function Ze(W){return Le(W)&&W[e.Kind]==="Null"&&W.type==="null"&&D(W.$id)}M.TNull=Ze;function ve(W){return Le(W)&&W[e.Kind]==="Number"&&W.type==="number"&&D(W.$id)&&P(W.multipleOf)&&P(W.minimum)&&P(W.maximum)&&P(W.exclusiveMinimum)&&P(W.exclusiveMaximum)}M.TNumber=ve;function Ne(W){if(!(Le(W)&&W[e.Kind]==="Object"&&W.type==="object"&&D(W.$id)&&j(W.properties)&&T(W.additionalProperties)&&P(W.minProperties)&&P(W.maxProperties)))return!1;for(const[Ue,st]of Object.entries(W.properties))if(!F(Ue)||!Ot(st))return!1;return!0}M.TObject=Ne;function ze(W){return Le(W)&&W[e.Kind]==="Promise"&&W.type==="object"&&W.instanceOf==="Promise"&&D(W.$id)&&Ot(W.item)}M.TPromise=ze;function Qe(W){if(!(Le(W)&&W[e.Kind]==="Record"&&W.type==="object"&&D(W.$id)&&T(W.additionalProperties)&&j(W.patternProperties)))return!1;const Ue=Object.keys(W.patternProperties);return!(Ue.length!==1||!O(Ue[0])||!Ot(W.patternProperties[Ue[0]]))}M.TRecord=Qe;function He(W){return Le(W)&&W[e.Kind]==="Ref"&&D(W.$id)&&H(W.$ref)}M.TRef=He;function at(W){return Le(W)&&W[e.Kind]==="String"&&W.type==="string"&&D(W.$id)&&P(W.minLength)&&P(W.maxLength)&&S(W.pattern)&&A(W.format)}M.TString=at;function dt(W){return Le(W)&&W[e.Kind]==="Symbol"&&W.type==="null"&&W.typeOf==="Symbol"&&D(W.$id)}M.TSymbol=dt;function sn(W){return Le(W)&&W[e.Kind]==="TemplateLiteral"&&W.type==="string"&&H(W.pattern)&&W.pattern[0]==="^"&&W.pattern[W.pattern.length-1]==="$"}M.TTemplateLiteral=sn;function yt(W){return Le(W)&&W[e.Kind]==="This"&&D(W.$id)&&H(W.$ref)}M.TThis=yt;function mn(W){if(!(Le(W)&&W[e.Kind]==="Tuple"&&W.type==="array"&&D(W.$id)&&z(W.minItems)&&z(W.maxItems)&&W.minItems===W.maxItems))return!1;if(W.items===void 0&&W.additionalItems===void 0&&W.minItems===0)return!0;if(!C(W.items))return!1;for(const Ue of W.items)if(!Ot(Ue))return!1;return!0}M.TTuple=mn;function Kt(W){return Le(W)&&W[e.Kind]==="Undefined"&&W.type==="null"&&W.typeOf==="Undefined"&&D(W.$id)}M.TUndefined=Kt;function nn(W){return ln(W)&&W.anyOf.every(Ue=>Ce(Ue)||X(Ue))}M.TUnionLiteral=nn;function ln(W){if(!(Le(W)&&W[e.Kind]==="Union"&&C(W.anyOf)&&D(W.$id)))return!1;for(const Ue of W.anyOf)if(!Ot(Ue))return!1;return!0}M.TUnion=ln;function Qn(W){return Le(W)&&W[e.Kind]==="Uint8Array"&&W.type==="object"&&D(W.$id)&&W.instanceOf==="Uint8Array"&&P(W.minByteLength)&&P(W.maxByteLength)}M.TUint8Array=Qn;function En(W){return Le(W)&&W[e.Kind]==="Unknown"&&D(W.$id)}M.TUnknown=En;function Xn(W){return Le(W)&&W[e.Kind]==="Unsafe"}M.TUnsafe=Xn;function zn(W){return Le(W)&&W[e.Kind]==="Void"&&W.type==="null"&&W.typeOf==="Void"&&D(W.$id)}M.TVoid=zn;function fn(W){return j(W)&&W[e.Modifier]==="ReadonlyOptional"}M.TReadonlyOptional=fn;function Ae(W){return j(W)&&W[e.Modifier]==="Readonly"}M.TReadonly=Ae;function bt(W){return j(W)&&W[e.Modifier]==="Optional"}M.TOptional=bt;function Ot(W){return typeof W=="object"&&(Q(W)||te(W)||ke(W)||he(W)||be(W)||de(W)||Be(W)||ee(W)||Oe(W)||we(W)||Me(W)||Ee(W)||Ze(W)||ve(W)||Ne(W)||ze(W)||Qe(W)||He(W)||at(W)||dt(W)||sn(W)||yt(W)||mn(W)||Kt(W)||ln(W)||Qn(W)||En(W)||Xn(W)||zn(W)||Le(W)&&t.Has(W[e.Kind]))}M.TSchema=Ot})(i||(e.TypeGuard=i={}));var o;(function(M){function j(C){return C[e.Kind]==="Undefined"?!0:C[e.Kind]==="Not"?!j(C.not):C[e.Kind]==="Intersect"?C.allOf.every(F=>j(F)):C[e.Kind]==="Union"?C.anyOf.some(F=>j(F)):!1}M.Check=j})(o||(e.ExtendsUndefined=o={}));var a;(function(M){M[M.Union=0]="Union",M[M.True=1]="True",M[M.False=2]="False"})(a||(e.TypeExtendsResult=a={}));var s;(function(M){function j(q){return q===a.False?a.False:a.True}function C(q,_){return a.True}function O(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)&&_.anyOf.some(G=>i.TAny(G)||i.TUnknown(G))?a.True:i.TUnion(_)?a.Union:i.TUnknown(_)||i.TAny(_)?a.True:a.Union}function F(q,_){return i.TUnknown(q)?a.False:i.TAny(q)?a.Union:i.TNever(q)?a.True:a.False}function T(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)&&Qe(_)?a.True:i.TArray(_)?j(ie(q.items,_.items)):a.False}function L(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TBigInt(_)?a.True:a.False}function H(q,_){return i.TLiteral(q)&&typeof q.const=="boolean"||i.TBoolean(q)?a.True:a.False}function z(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TBoolean(_)?a.True:a.False}function V(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):!i.TConstructor(_)||q.parameters.length>_.parameters.length||!q.parameters.every((G,le)=>j(ie(_.parameters[le],G))===a.True)?a.False:j(ie(q.returns,_.returns))}function I(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TDate(_)?a.True:a.False}function P(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):!i.TFunction(_)||q.parameters.length>_.parameters.length||!q.parameters.every((G,le)=>j(ie(_.parameters[le],G))===a.True)?a.False:j(ie(q.returns,_.returns))}function N(q,_){return i.TLiteral(q)&&typeof q.const=="number"||i.TNumber(q)||i.TInteger(q)?a.True:a.False}function D(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TInteger(_)||i.TNumber(_)?a.True:a.False}function S(q,_){return _.allOf.every(G=>ie(q,G)===a.True)?a.True:a.False}function A(q,_){return q.allOf.some(G=>ie(G,_)===a.True)?a.True:a.False}function B(q){return typeof q.const=="string"}function Q(q){return typeof q.const=="number"}function te(q){return typeof q.const=="boolean"}function he(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TString(_)?Qn(q):i.TNumber(_)?Oe(q):i.TInteger(_)?N(q):i.TBoolean(_)?H(q):i.TLiteral(_)&&_.const===q.const?a.True:a.False}function ke(q,_){return a.False}function be(q,_){return a.True}function de(q){let[_,G]=[q,0];for(;i.TNot(_);)_=_.not,G+=1;return G%2===0?_:e.Type.Unknown()}function Be(q,_){if(i.TNot(q))return ie(de(q),_);if(i.TNot(_))return ie(q,de(_));throw new Error("TypeExtends: Invalid fallthrough for Not")}function ee(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TNull(_)?a.True:a.False}function Oe(q,_){return i.TLiteral(q)&&Q(q)||i.TNumber(q)||i.TInteger(q)?a.True:a.False}function Le(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TInteger(_)||i.TNumber(_)?a.True:a.False}function Ce(q,_){return globalThis.Object.keys(q.properties).length===_}function X(q){return Qe(q)}function re(q){return Ce(q,0)||Ce(q,1)&&"description"in q.properties&&i.TUnion(q.properties.description)&&q.properties.description.anyOf.length===2&&(i.TString(q.properties.description.anyOf[0])&&i.TUndefined(q.properties.description.anyOf[1])||i.TString(q.properties.description.anyOf[1])&&i.TUndefined(q.properties.description.anyOf[0]))}function we(q){return Ce(q,0)}function Me(q){return Ce(q,0)}function Ee(q){return Ce(q,0)}function Ze(q){return Ce(q,0)}function ve(q){return Qe(q)}function Ne(q){const _=e.Type.Number();return Ce(q,0)||Ce(q,1)&&"length"in q.properties&&j(ie(q.properties.length,_))===a.True}function ze(q){return Ce(q,0)}function Qe(q){const _=e.Type.Number();return Ce(q,0)||Ce(q,1)&&"length"in q.properties&&j(ie(q.properties.length,_))===a.True}function He(q){const _=e.Type.Function([e.Type.Any()],e.Type.Any());return Ce(q,0)||Ce(q,1)&&"then"in q.properties&&j(ie(q.properties.then,_))===a.True}function at(q,_){return ie(q,_)===a.False||i.TOptional(q)&&!i.TOptional(_)?a.False:a.True}function dt(q,_){return i.TUnknown(q)?a.False:i.TAny(q)?a.Union:i.TNever(q)||i.TLiteral(q)&&B(q)&&X(_)||i.TLiteral(q)&&Q(q)&&we(_)||i.TLiteral(q)&&te(q)&&Me(_)||i.TSymbol(q)&&re(_)||i.TBigInt(q)&&Ee(_)||i.TString(q)&&X(_)||i.TSymbol(q)&&re(_)||i.TNumber(q)&&we(_)||i.TInteger(q)&&we(_)||i.TBoolean(q)&&Me(_)||i.TUint8Array(q)&&ve(_)||i.TDate(q)&&Ze(_)||i.TConstructor(q)&&ze(_)||i.TFunction(q)&&Ne(_)?a.True:i.TRecord(q)&&i.TString(mn(q))?_[e.Hint]==="Record"?a.True:a.False:i.TRecord(q)&&i.TNumber(mn(q))&&Ce(_,0)?a.True:a.False}function sn(q,_){if(i.TIntersect(_))return S(q,_);if(i.TUnion(_))return Ue(q,_);if(i.TUnknown(_))return ht();if(i.TAny(_))return C();if(i.TRecord(_))return nn(q,_);if(!i.TObject(_))return a.False;for(const G of globalThis.Object.keys(_.properties))if(!(G in q.properties)||at(q.properties[G],_.properties[G])===a.False)return a.False;return a.True}function yt(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)&&He(_)?a.True:i.TPromise(_)?j(ie(q.item,_.item)):a.False}function mn(q){if(e.PatternNumberExact in q.patternProperties)return e.Type.Number();if(e.PatternStringExact in q.patternProperties)return e.Type.String();throw Error("TypeExtends: Cannot get record key")}function Kt(q){if(e.PatternNumberExact in q.patternProperties)return q.patternProperties[e.PatternNumberExact];if(e.PatternStringExact in q.patternProperties)return q.patternProperties[e.PatternStringExact];throw Error("TypeExtends: Cannot get record value")}function nn(q,_){const G=mn(_),le=Kt(_);if(i.TLiteral(q)&&B(q)&&i.TNumber(G)&&j(ie(q,le))===a.True)return a.True;if(i.TUint8Array(q)&&i.TNumber(G)||i.TString(q)&&i.TNumber(G)||i.TArray(q)&&i.TNumber(G))return ie(q,le);if(i.TObject(q)){for(const xe of globalThis.Object.keys(q.properties))if(at(le,q.properties[xe])===a.False)return a.False;return a.True}return a.False}function ln(q,_){const G=Kt(q);return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?ie(G,Kt(_)):a.False}function Qn(q,_){return i.TLiteral(q)&&typeof q.const=="string"||i.TString(q)?a.True:a.False}function En(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TString(_)?a.True:a.False}function Xn(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TSymbol(_)?a.True:a.False}function zn(q,_){if(i.TTemplateLiteral(q))return ie(m.Resolve(q),_);if(i.TTemplateLiteral(_))return ie(q,m.Resolve(_));throw new Error("TypeExtends: Invalid fallthrough for TemplateLiteral")}function fn(q,_){return i.TUnknown(q)?a.False:i.TAny(q)?a.Union:i.TNever(q)?a.True:a.False}function Ae(q,_){return i.TArray(_)&&q.items!==void 0&&q.items.every(G=>ie(G,_.items)===a.True)}function bt(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)&&Qe(_)||i.TArray(_)&&Ae(q,_)?a.True:!i.TTuple(_)||q.items===void 0&&_.items!==void 0||q.items!==void 0&&_.items===void 0?a.False:q.items===void 0&&_.items===void 0||q.items.every((G,le)=>ie(G,_.items[le])===a.True)?a.True:a.False}function Ot(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TUint8Array(_)?a.True:a.False}function W(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TNever(_)?ke():i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TRecord(_)?nn(q,_):i.TVoid(_)?dn(q):i.TUndefined(_)?a.True:a.False}function Ue(q,_){return _.anyOf.some(G=>ie(q,G)===a.True)?a.True:a.False}function st(q,_){return q.anyOf.every(G=>ie(G,_)===a.True)?a.True:a.False}function ht(q,_){return a.True}function Un(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TAny(_)?C():i.TString(_)?Qn(q):i.TNumber(_)?Oe(q):i.TInteger(_)?N(q):i.TBoolean(_)?H(q):i.TArray(_)?F(q):i.TTuple(_)?fn(q):i.TObject(_)?dt(q,_):i.TUnknown(_)?a.True:a.False}function dn(q,_){return i.TUndefined(q)||i.TUndefined(q)?a.True:a.False}function Rr(q,_){return i.TIntersect(_)?S(q,_):i.TUnion(_)?Ue(q,_):i.TUnknown(_)?ht():i.TAny(_)?C():i.TObject(_)?dt(q,_):i.TVoid(_)?a.True:a.False}function ie(q,_){if(i.TTemplateLiteral(q)||i.TTemplateLiteral(_))return zn(q,_);if(i.TNot(q)||i.TNot(_))return Be(q,_);if(i.TAny(q))return O(q,_);if(i.TArray(q))return T(q,_);if(i.TBigInt(q))return L(q,_);if(i.TBoolean(q))return z(q,_);if(i.TConstructor(q))return V(q,_);if(i.TDate(q))return I(q,_);if(i.TFunction(q))return P(q,_);if(i.TInteger(q))return D(q,_);if(i.TIntersect(q))return A(q,_);if(i.TLiteral(q))return he(q,_);if(i.TNever(q))return be();if(i.TNull(q))return ee(q,_);if(i.TNumber(q))return Le(q,_);if(i.TObject(q))return sn(q,_);if(i.TRecord(q))return ln(q,_);if(i.TString(q))return En(q,_);if(i.TSymbol(q))return Xn(q,_);if(i.TTuple(q))return bt(q,_);if(i.TPromise(q))return yt(q,_);if(i.TUint8Array(q))return Ot(q,_);if(i.TUndefined(q))return W(q,_);if(i.TUnion(q))return st(q,_);if(i.TUnknown(q))return Un(q,_);if(i.TVoid(q))return Rr(q,_);throw Error(`TypeExtends: Unknown left type operand '${q[e.Kind]}'`)}function ye(q,_){return ie(q,_)}M.Extends=ye})(s||(e.TypeExtends=s={}));var l;(function(M){function j(H){return typeof H=="object"&&H!==null}function C(H){return globalThis.Array.isArray(H)}function O(H){return H.map(z=>T(z))}function F(H){const z=globalThis.Object.getOwnPropertyNames(H).reduce((I,P)=>({...I,[P]:T(H[P])}),{}),V=globalThis.Object.getOwnPropertySymbols(H).reduce((I,P)=>({...I,[P]:T(H[P])}),{});return{...z,...V}}function T(H){return C(H)?O(H):j(H)?F(H):H}function L(H,z){return{...T(H),...z}}M.Clone=L})(l||(e.TypeClone=l={}));var c;(function(M){function j(H,z){const V=H.allOf.reduce((I,P)=>{const N=T(P,z);return N[e.Kind]==="Never"?I:[...I,N]},[]);return e.Type.Intersect(V)}function C(H,z){const V=H.anyOf.map(I=>T(I,z));return e.Type.Union(V)}function O(H,z){const V=H.properties[z];return V===void 0?e.Type.Never():e.Type.Union([V])}function F(H,z){const V=H.items;if(V===void 0)return e.Type.Never();const I=V[z];return I===void 0?e.Type.Never():I}function T(H,z){return H[e.Kind]==="Intersect"?j(H,z):H[e.Kind]==="Union"?C(H,z):H[e.Kind]==="Object"?O(H,z):H[e.Kind]==="Tuple"?F(H,z):e.Type.Never()}function L(H,z,V={}){return e.Type.Union(z.map(I=>T(H,I.toString())),V)}M.Resolve=L})(c||(e.IndexedAccessor=c={}));var f;(function(M){function j(L,H){return e.Type.Intersect(L.allOf.map(z=>F(z,H)),{...L})}function C(L,H){return e.Type.Union(L.anyOf.map(z=>F(z,H)),{...L})}function O(L,H){return H(L)}function F(L,H){return L[e.Kind]==="Intersect"?j(L,H):L[e.Kind]==="Union"?C(L,H):L[e.Kind]==="Object"?O(L,H):L}function T(L,H,z){return{...F(l.Clone(L,{}),H),...z}}M.Map=T})(f||(e.ObjectMap=f={}));var u;(function(M){function j(V){return V[0]==="^"&&V[V.length-1]==="$"?V.slice(1,V.length-1):V}function C(V,I){return V.allOf.reduce((P,N)=>[...P,...L(N,I)],[])}function O(V,I){const P=V.anyOf.map(N=>L(N,I));return[...P.reduce((N,D)=>D.map(S=>P.every(A=>A.includes(S))?N.add(S):N)[0],new Set)]}function F(V,I){return globalThis.Object.keys(V.properties)}function T(V,I){return I.includePatterns?globalThis.Object.keys(V.patternProperties):[]}function L(V,I){return i.TIntersect(V)?C(V,I):i.TUnion(V)?O(V,I):i.TObject(V)?F(V):i.TRecord(V)?T(V,I):[]}function H(V,I){return[...new Set(L(V,I))]}M.ResolveKeys=H;function z(V){return`^(${H(V,{includePatterns:!0}).map(N=>`(${j(N)})`).join("|")})$`}M.ResolvePattern=z})(u||(e.KeyResolver=u={}));var d;(function(M){function j(C){if(globalThis.Array.isArray(C))return C;if(i.TUnionLiteral(C))return C.anyOf.map(O=>O.const.toString());if(i.TLiteral(C))return[C.const];if(i.TTemplateLiteral(C)){const O=g.ParseExact(C.pattern);if(!y.Check(O))throw Error("KeyArrayResolver: Cannot resolve keys from infinite template expression");return[...w.Generate(O)]}return[]}M.Resolve=j})(d||(e.KeyArrayResolver=d={}));var h;(function(M){function*j(O){for(const F of O.anyOf)F[e.Kind]==="Union"?yield*j(F):yield F}function C(O){return e.Type.Union([...j(O)],{...O})}M.Resolve=C})(h||(e.UnionResolver=h={}));var p;(function(M){function j(F){return F.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function C(F,T){if(i.TTemplateLiteral(F))return F.pattern.slice(1,F.pattern.length-1);if(i.TUnion(F))return`(${F.anyOf.map(H=>C(H,T)).join("|")})`;if(i.TNumber(F))return`${T}${e.PatternNumber}`;if(i.TInteger(F))return`${T}${e.PatternNumber}`;if(i.TBigInt(F))return`${T}${e.PatternNumber}`;if(i.TString(F))return`${T}${e.PatternString}`;if(i.TLiteral(F))return`${T}${j(F.const.toString())}`;if(i.TBoolean(F))return`${T}${e.PatternBoolean}`;throw i.TNever(F)?Error("TemplateLiteralPattern: TemplateLiteral cannot operate on types of TNever"):Error(`TemplateLiteralPattern: Unexpected Kind '${F[e.Kind]}'`)}function O(F){return`^${F.map(T=>C(T,"")).join("")}$`}M.Create=O})(p||(e.TemplateLiteralPattern=p={}));var m;(function(M){function j(C){const O=g.ParseExact(C.pattern);if(!y.Check(O))return e.Type.String();const F=[...w.Generate(O)].map(T=>e.Type.Literal(T));return e.Type.Union(F)}M.Resolve=j})(m||(e.TemplateLiteralResolver=m={}));class v extends Error{constructor(j){super(j)}}e.TemplateLiteralParserError=v;var g;(function(M){function j(D,S,A){return D[S]===A&&D.charCodeAt(S-1)!==92}function C(D,S){return j(D,S,"(")}function O(D,S){return j(D,S,")")}function F(D,S){return j(D,S,"|")}function T(D){if(!(C(D,0)&&O(D,D.length-1)))return!1;let S=0;for(let A=0;A<D.length;A++)if(C(D,A)&&(S+=1),O(D,A)&&(S-=1),S===0&&A!==D.length-1)return!1;return!0}function L(D){return D.slice(1,D.length-1)}function H(D){let S=0;for(let A=0;A<D.length;A++)if(C(D,A)&&(S+=1),O(D,A)&&(S-=1),F(D,A)&&S===0)return!0;return!1}function z(D){for(let S=0;S<D.length;S++)if(C(D,S))return!0;return!1}function V(D){let[S,A]=[0,0];const B=[];for(let te=0;te<D.length;te++)if(C(D,te)&&(S+=1),O(D,te)&&(S-=1),F(D,te)&&S===0){const he=D.slice(A,te);he.length>0&&B.push(P(he)),A=te+1}const Q=D.slice(A);return Q.length>0&&B.push(P(Q)),B.length===0?{type:"const",const:""}:B.length===1?B[0]:{type:"or",expr:B}}function I(D){function S(Q,te){if(!C(Q,te))throw new v("TemplateLiteralParser: Index must point to open parens");let he=0;for(let ke=te;ke<Q.length;ke++)if(C(Q,ke)&&(he+=1),O(Q,ke)&&(he-=1),he===0)return[te,ke];throw new v("TemplateLiteralParser: Unclosed group parens in expression")}function A(Q,te){for(let he=te;he<Q.length;he++)if(C(Q,he))return[te,he];return[te,Q.length]}const B=[];for(let Q=0;Q<D.length;Q++)if(C(D,Q)){const[te,he]=S(D,Q),ke=D.slice(te,he+1);B.push(P(ke)),Q=he}else{const[te,he]=A(D,Q),ke=D.slice(te,he);ke.length>0&&B.push(P(ke)),Q=he-1}return B.length===0?{type:"const",const:""}:B.length===1?B[0]:{type:"and",expr:B}}function P(D){return T(D)?P(L(D)):H(D)?V(D):z(D)?I(D):{type:"const",const:D}}M.Parse=P;function N(D){return P(D.slice(1,D.length-1))}M.ParseExact=N})(g||(e.TemplateLiteralParser=g={}));var y;(function(M){function j(T){return T.type==="or"&&T.expr.length===2&&T.expr[0].type==="const"&&T.expr[0].const==="0"&&T.expr[1].type==="const"&&T.expr[1].const==="[1-9][0-9]*"}function C(T){return T.type==="or"&&T.expr.length===2&&T.expr[0].type==="const"&&T.expr[0].const==="true"&&T.expr[1].type==="const"&&T.expr[1].const==="false"}function O(T){return T.type==="const"&&T.const===".*"}function F(T){if(C(T))return!0;if(j(T)||O(T))return!1;if(T.type==="and")return T.expr.every(L=>F(L));if(T.type==="or")return T.expr.every(L=>F(L));if(T.type==="const")return!0;throw Error("TemplateLiteralFinite: Unknown expression type")}M.Check=F})(y||(e.TemplateLiteralFinite=y={}));var w;(function(M){function*j(L){if(L.length===1)return yield*L[0];for(const H of L[0])for(const z of j(L.slice(1)))yield`${H}${z}`}function*C(L){return yield*j(L.expr.map(H=>[...T(H)]))}function*O(L){for(const H of L.expr)yield*T(H)}function*F(L){return yield L.const}function*T(L){if(L.type==="and")return yield*C(L);if(L.type==="or")return yield*O(L);if(L.type==="const")return yield*F(L);throw Error("TemplateLiteralGenerator: Unknown expression")}M.Generate=T})(w||(e.TemplateLiteralGenerator=w={}));var k;(function(M){function*j(T){const L=T.trim().replace(/"|'/g,"");if(L==="boolean")return yield e.Type.Boolean();if(L==="number")return yield e.Type.Number();if(L==="bigint")return yield e.Type.BigInt();if(L==="string")return yield e.Type.String();const H=L.split("|").map(z=>e.Type.Literal(z.trim()));return yield H.length===0?e.Type.Never():H.length===1?H[0]:e.Type.Union(H)}function*C(T){if(T[1]!=="{"){const L=e.Type.Literal("$"),H=O(T.slice(1));return yield*[L,...H]}for(let L=2;L<T.length;L++)if(T[L]==="}"){const H=j(T.slice(2,L)),z=O(T.slice(L+1));return yield*[...H,...z]}yield e.Type.Literal(T)}function*O(T){for(let L=0;L<T.length;L++)if(T[L]==="$"){const H=e.Type.Literal(T.slice(0,L)),z=C(T.slice(L));return yield*[H,...z]}yield e.Type.Literal(T)}function F(T){return[...O(T)]}M.Parse=F})(k||(e.TemplateLiteralDslParser=k={}));let $=0;class x{Create(j){return j}Strict(j){return JSON.parse(JSON.stringify(j))}}e.TypeBuilder=x;class E extends x{Optional(j){return{[e.Modifier]:"Optional",...l.Clone(j,{})}}ReadonlyOptional(j){return{[e.Modifier]:"ReadonlyOptional",...l.Clone(j,{})}}Readonly(j){return{[e.Modifier]:"Readonly",...j}}Any(j={}){return this.Create({...j,[e.Kind]:"Any"})}Array(j,C={}){return this.Create({...C,[e.Kind]:"Array",type:"array",items:l.Clone(j,{})})}Boolean(j={}){return this.Create({...j,[e.Kind]:"Boolean",type:"boolean"})}Composite(j,C){const O=e.Type.Intersect(j,{}),T=u.ResolveKeys(O,{includePatterns:!1}).reduce((L,H)=>({...L,[H]:e.Type.Index(O,[H])}),{});return e.Type.Object(T,C)}Enum(j,C={}){const F=globalThis.Object.keys(j).filter(T=>isNaN(T)).map(T=>j[T]).map(T=>typeof T=="string"?{[e.Kind]:"Literal",type:"string",const:T}:{[e.Kind]:"Literal",type:"number",const:T});return this.Create({...C,[e.Kind]:"Union",anyOf:F})}Extends(j,C,O,F,T={}){switch(s.Extends(j,C)){case a.Union:return this.Union([l.Clone(O,T),l.Clone(F,T)]);case a.True:return l.Clone(O,T);case a.False:return l.Clone(F,T)}}Exclude(j,C,O={}){if(i.TTemplateLiteral(j))return this.Exclude(m.Resolve(j),C,O);if(i.TTemplateLiteral(C))return this.Exclude(j,m.Resolve(C),O);if(i.TUnion(j)){const F=j.anyOf.filter(T=>s.Extends(T,C)===a.False);return F.length===1?l.Clone(F[0],O):this.Union(F,O)}else return s.Extends(j,C)!==a.False?this.Never(O):l.Clone(j,O)}Extract(j,C,O={}){if(i.TTemplateLiteral(j))return this.Extract(m.Resolve(j),C,O);if(i.TTemplateLiteral(C))return this.Extract(j,m.Resolve(C),O);if(i.TUnion(j)){const F=j.anyOf.filter(T=>s.Extends(T,C)!==a.False);return F.length===1?l.Clone(F[0],O):this.Union(F,O)}else return s.Extends(j,C)!==a.False?l.Clone(j,O):this.Never(O)}Index(j,C,O={}){if(i.TArray(j)&&i.TNumber(C))return l.Clone(j.items,O);if(i.TTuple(j)&&i.TNumber(C)){const T=(j.items===void 0?[]:j.items).map(L=>l.Clone(L,{}));return this.Union(T,O)}else{const F=d.Resolve(C),T=l.Clone(j,{});return c.Resolve(T,F,O)}}Integer(j={}){return this.Create({...j,[e.Kind]:"Integer",type:"integer"})}Intersect(j,C={}){if(j.length===0)return e.Type.Never();if(j.length===1)return l.Clone(j[0],C);const O=j.every(L=>i.TObject(L)),F=j.map(L=>l.Clone(L,{})),T=i.TSchema(C.unevaluatedProperties)?{unevaluatedProperties:l.Clone(C.unevaluatedProperties,{})}:{};return C.unevaluatedProperties===!1||i.TSchema(C.unevaluatedProperties)||O?this.Create({...C,...T,[e.Kind]:"Intersect",type:"object",allOf:F}):this.Create({...C,...T,[e.Kind]:"Intersect",allOf:F})}KeyOf(j,C={}){if(i.TRecord(j)){const O=Object.getOwnPropertyNames(j.patternProperties)[0];if(O===e.PatternNumberExact)return this.Number(C);if(O===e.PatternStringExact)return this.String(C);throw Error("StandardTypeBuilder: Unable to resolve key type from Record key pattern")}else if(i.TTuple(j)){const F=(j.items===void 0?[]:j.items).map((T,L)=>e.Type.Literal(L));return this.Union(F,C)}else{if(i.TArray(j))return this.Number(C);{const O=u.ResolveKeys(j,{includePatterns:!1});if(O.length===0)return this.Never(C);const F=O.map(T=>this.Literal(T));return this.Union(F,C)}}}Literal(j,C={}){return this.Create({...C,[e.Kind]:"Literal",const:j,type:typeof j})}Never(j={}){return this.Create({...j,[e.Kind]:"Never",not:{}})}Not(j,C){return this.Create({...C,[e.Kind]:"Not",not:j})}Null(j={}){return this.Create({...j,[e.Kind]:"Null",type:"null"})}Number(j={}){return this.Create({...j,[e.Kind]:"Number",type:"number"})}Object(j,C={}){const O=globalThis.Object.getOwnPropertyNames(j),F=O.filter(z=>i.TOptional(j[z])||i.TReadonlyOptional(j[z])),T=O.filter(z=>!F.includes(z)),L=i.TSchema(C.additionalProperties)?{additionalProperties:l.Clone(C.additionalProperties,{})}:{},H=O.reduce((z,V)=>({...z,[V]:l.Clone(j[V],{})}),{});return T.length>0?this.Create({...C,...L,[e.Kind]:"Object",type:"object",properties:H,required:T}):this.Create({...C,...L,[e.Kind]:"Object",type:"object",properties:H})}Omit(j,C,O={}){const F=d.Resolve(C);return f.Map(l.Clone(j,{}),T=>{T.required&&(T.required=T.required.filter(L=>!F.includes(L)),T.required.length===0&&delete T.required);for(const L of globalThis.Object.keys(T.properties))F.includes(L)&&delete T.properties[L];return this.Create(T)},O)}Partial(j,C={}){function O(F){switch(F[e.Modifier]){case"ReadonlyOptional":F[e.Modifier]="ReadonlyOptional";break;case"Readonly":F[e.Modifier]="ReadonlyOptional";break;case"Optional":F[e.Modifier]="Optional";break;default:F[e.Modifier]="Optional";break}}return f.Map(l.Clone(j,{}),F=>(delete F.required,globalThis.Object.keys(F.properties).forEach(T=>O(F.properties[T])),F),C)}Pick(j,C,O={}){const F=d.Resolve(C);return f.Map(l.Clone(j,{}),T=>{T.required&&(T.required=T.required.filter(L=>F.includes(L)),T.required.length===0&&delete T.required);for(const L of globalThis.Object.keys(T.properties))F.includes(L)||delete T.properties[L];return this.Create(T)},O)}Record(j,C,O={}){if(i.TTemplateLiteral(j)){const F=g.ParseExact(j.pattern);return y.Check(F)?this.Object([...w.Generate(F)].reduce((T,L)=>({...T,[L]:l.Clone(C,{})}),{}),O):this.Create({...O,[e.Kind]:"Record",type:"object",patternProperties:{[j.pattern]:l.Clone(C,{})}})}else if(i.TUnion(j)){const F=h.Resolve(j);if(i.TUnionLiteral(F)){const T=F.anyOf.reduce((L,H)=>({...L,[H.const]:l.Clone(C,{})}),{});return this.Object(T,{...O,[e.Hint]:"Record"})}else throw Error("TypeBuilder: Record key of type union contains non-literal types")}else if(i.TLiteral(j)){if(typeof j.const=="string"||typeof j.const=="number")return this.Object({[j.const]:l.Clone(C,{})},O);throw Error("TypeBuilder: Record key of type literal is not of type string or number")}else if(i.TInteger(j)||i.TNumber(j)){const F=e.PatternNumberExact;return this.Create({...O,[e.Kind]:"Record",type:"object",patternProperties:{[F]:l.Clone(C,{})}})}else if(i.TString(j)){const F=j.pattern===void 0?e.PatternStringExact:j.pattern;return this.Create({...O,[e.Kind]:"Record",type:"object",patternProperties:{[F]:l.Clone(C,{})}})}else throw Error("StandardTypeBuilder: Record key is an invalid type")}Recursive(j,C={}){C.$id===void 0&&(C.$id=`T${$++}`);const O=j({[e.Kind]:"This",$ref:`${C.$id}`});return O.$id=C.$id,this.Create({...C,[e.Hint]:"Recursive",...O})}Ref(j,C={}){if(j.$id===void 0)throw Error("StandardTypeBuilder.Ref: Target type must specify an $id");return this.Create({...C,[e.Kind]:"Ref",$ref:j.$id})}Required(j,C={}){function O(F){switch(F[e.Modifier]){case"ReadonlyOptional":F[e.Modifier]="Readonly";break;case"Readonly":F[e.Modifier]="Readonly";break;case"Optional":delete F[e.Modifier];break;default:delete F[e.Modifier];break}}return f.Map(l.Clone(j,{}),F=>(F.required=globalThis.Object.keys(F.properties),globalThis.Object.keys(F.properties).forEach(T=>O(F.properties[T])),F),C)}Rest(j){return i.TTuple(j)?j.items===void 0?[]:j.items.map(C=>l.Clone(C,{})):[l.Clone(j,{})]}String(j={}){return this.Create({...j,[e.Kind]:"String",type:"string"})}TemplateLiteral(j,C={}){const O=typeof j=="string"?p.Create(k.Parse(j)):p.Create(j);return this.Create({...C,[e.Kind]:"TemplateLiteral",type:"string",pattern:O})}Tuple(j,C={}){const[O,F,T]=[!1,j.length,j.length],L=j.map(z=>l.Clone(z,{})),H=j.length>0?{...C,[e.Kind]:"Tuple",type:"array",items:L,additionalItems:O,minItems:F,maxItems:T}:{...C,[e.Kind]:"Tuple",type:"array",minItems:F,maxItems:T};return this.Create(H)}Union(j,C={}){if(i.TTemplateLiteral(j))return m.Resolve(j);{const O=j;if(O.length===0)return this.Never(C);if(O.length===1)return this.Create(l.Clone(O[0],C));const F=O.map(T=>l.Clone(T,{}));return this.Create({...C,[e.Kind]:"Union",anyOf:F})}}Unknown(j={}){return this.Create({...j,[e.Kind]:"Unknown"})}Unsafe(j={}){return this.Create({...j,[e.Kind]:j[e.Kind]||"Unsafe"})}}e.StandardTypeBuilder=E;class R extends E{BigInt(j={}){return this.Create({...j,[e.Kind]:"BigInt",type:"null",typeOf:"BigInt"})}ConstructorParameters(j,C={}){return this.Tuple([...j.parameters],{...C})}Constructor(j,C,O){const F=l.Clone(C,{}),T=j.map(L=>l.Clone(L,{}));return this.Create({...O,[e.Kind]:"Constructor",type:"object",instanceOf:"Constructor",parameters:T,returns:F})}Date(j={}){return this.Create({...j,[e.Kind]:"Date",type:"object",instanceOf:"Date"})}Function(j,C,O){const F=l.Clone(C,{}),T=j.map(L=>l.Clone(L,{}));return this.Create({...O,[e.Kind]:"Function",type:"object",instanceOf:"Function",parameters:T,returns:F})}InstanceType(j,C={}){return l.Clone(j.returns,C)}Parameters(j,C={}){return this.Tuple(j.parameters,{...C})}Promise(j,C={}){return this.Create({...C,[e.Kind]:"Promise",type:"object",instanceOf:"Promise",item:l.Clone(j,{})})}RegEx(j,C={}){return this.Create({...C,[e.Kind]:"String",type:"string",pattern:j.source})}ReturnType(j,C={}){return l.Clone(j.returns,C)}Symbol(j){return this.Create({...j,[e.Kind]:"Symbol",type:"null",typeOf:"Symbol"})}Undefined(j={}){return this.Create({...j,[e.Kind]:"Undefined",type:"null",typeOf:"Undefined"})}Uint8Array(j={}){return this.Create({...j,[e.Kind]:"Uint8Array",type:"object",instanceOf:"Uint8Array"})}Void(j={}){return this.Create({...j,[e.Kind]:"Void",type:"null",typeOf:"Void"})}}e.ExtendedTypeBuilder=R,e.StandardType=new E,e.Type=new R})(J);const Tpe=J.Type.Object({src:J.Type.String(),path:J.Type.Optional(J.Type.String()),volume:J.Type.Optional(J.Type.Number()),rate:J.Type.Optional(J.Type.Number()),html5:J.Type.Optional(J.Type.Boolean())}),Epe=J.Type.Record(J.Type.String(),Tpe),Ope=J.Type.Object({volume:J.Type.Optional(J.Type.Number()),defaultMusic:J.Type.Optional(J.Type.String()),musicFadeInTime:J.Type.Optional(J.Type.Number()),musicFadeOutTime:J.Type.Optional(J.Type.Number()),musicFadeInDelay:J.Type.Optional(J.Type.Number())}),Ape=J.Type.Record(J.Type.String(),J.Type.String()),i9=J.Type.Object({files:Epe,audioTriggers:Ape,options:Ope}),o9={files:{},audioTriggers:{},options:{volume:1,musicFadeInTime:.5,musicFadeInDelay:.5,musicFadeOutTime:.5}},Mpe=J.Type.Object({name:J.Type.String(),description:J.Type.String(),icon:J.Type.String(),onUse:J.Type.Optional(J.Type.Object({action:J.Type.String(),label:J.Type.String()})),tag:J.Type.Optional(J.Type.String()),category:J.Type.Optional(J.Type.String()),showIfEmpty:J.Type.Optional(J.Type.Boolean())}),a9=J.Type.Object({id:J.Type.String(),title:J.Type.String()}),s9=J.Type.Record(J.Type.String(),Mpe);J.Type.Object({categories:J.Type.Array(a9),items:s9});const l9=J.Type.Object({categories:J.Type.Optional(J.Type.Array(a9)),items:J.Type.Optional(s9)}),c9={categories:[{id:"default",title:"Items"}],items:{}},Ppe=J.Type.Object({description:J.Type.String(),hidden:J.Type.Optional(J.Type.Boolean())}),Npe=J.Type.Object({title:J.Type.String(),description:J.Type.String(),objectives:J.Type.Record(J.Type.String(),Ppe),category:J.Type.Optional(J.Type.String())}),Ipe=J.Type.Object({id:J.Type.String(),title:J.Type.String()}),Dpe=J.Type.Record(J.Type.String(),Npe),u9=J.Type.Object({quests:Dpe,categories:J.Type.Array(Ipe)}),f9={quests:{},categories:[{id:"default",title:"Quests"}]},d9=J.Type.Object({enabled:J.Type.Boolean(),background:J.Type.Optional(J.Type.String()),text:J.Type.Optional(J.Type.String()),cssClass:J.Type.Optional(J.Type.String()),position:J.Type.Object({left:J.Type.Number(),top:J.Type.Number(),width:J.Type.Optional(J.Type.Number()),height:J.Type.Optional(J.Type.Number())}),anchor:J.Type.Optional(J.Type.Object({x:J.Type.Number(),y:J.Type.Number()})),action:J.Type.Optional(J.Type.String()),actionType:J.Type.Optional(J.Type.String()),scriptClickable:J.Type.Optional(J.Type.Boolean()),tag:J.Type.Optional(J.Type.String())}),Rpe=J.Type.Record(J.Type.String(),d9),h9=J.Type.Object({buttons:Rpe,clickableDuringScriptsByDefault:J.Type.Optional(J.Type.Boolean())}),p9={buttons:{},clickableDuringScriptsByDefault:!1},Lpe=J.Type.Intersect([d9,J.Type.Object({id:J.Type.String()})]),Bpe=J.Type.Object({background:J.Type.String(),buttons:J.Type.Optional(J.Type.Array(J.Type.Union([J.Type.String(),Lpe])))}),m9=J.Type.Record(J.Type.String(),Bpe);J.Type.Object({screens:m9});const v9=J.Type.Object({screens:J.Type.Optional(m9)}),g9={screens:{}},Fpe=J.Type.Object({name:J.Type.String(),description:J.Type.String(),startingLevel:J.Type.Number(),hidden:J.Type.Optional(J.Type.Boolean()),icon:J.Type.String()}),y9=J.Type.Record(J.Type.String(),Fpe),b9=J.Type.Object({xpPerLevel:J.Type.Number(),notifyLevelUp:J.Type.Boolean()});J.Type.Object({skills:y9,skillOptions:b9});const w9=J.Type.Object({skills:J.Type.Optional(y9),skillOptions:J.Type.Optional(b9)}),k9={skills:{},skillOptions:{xpPerLevel:10,notifyLevelUp:!0}},Fg="###_--_~=:;_JUMP",Hx="###_--_~=:;_RETURN",Vpe="###_--_~=:;_OK",Vg="###_--_~=:;_STOP";function zpe(e){return e===Fg||e===Hx||e===Vpe||e===Vg}const Upe="3.2.10",qpe=new Date("2023-07-09T15:49:24.204Z"),Hpe=400,zg=20,Wx="@empty",x9={background:Wx},Wpe=J.Type.Object({color:J.Type.Optional(J.Type.String()),boxCss:J.Type.Optional(J.Type.Record(J.Type.String(),J.Type.Any())),nameCss:J.Type.Optional(J.Type.Record(J.Type.String(),J.Type.Any())),textCss:J.Type.Optional(J.Type.Record(J.Type.String(),J.Type.Any()))}),Kpe=J.Type.Object({sprites:J.Type.Optional(J.Type.Record(J.Type.String(),J.Type.String())),name:J.Type.String(),style:J.Type.Optional(Wpe)}),_9=J.Type.Object({config:J.Type.Object({imagesPath:J.Type.String(),playerCharacter:J.Type.Optional(J.Type.String()),gameCharacter:J.Type.Optional(J.Type.String())}),characters:J.Type.Record(J.Type.String(),Kpe)}),j9={config:{imagesPath:"",playerCharacter:"player",gameCharacter:"game"},characters:{}},Gpe=J.Type.Object({backgrounds:J.Type.Object({width:J.Type.Number(),height:J.Type.Number()}),dialogBottomPadding:J.Type.Union([J.Type.Number(),J.Type.String()]),minTextWidth:J.Type.Optional(J.Type.Number()),verticalLayoutThreshold:J.Type.Number(),defaultFontSize:J.Type.Optional(J.Type.Number()),portraits:J.Type.Object({width:J.Type.Number(),height:J.Type.Number(),offset:J.Type.Optional(J.Type.Object({landscape:J.Type.Optional(J.Type.Object({right:J.Type.Number(),bottom:J.Type.Number()})),portrait:J.Type.Optional(J.Type.Object({right:J.Type.Number(),bottom:J.Type.Number()}))}))})}),Jpe={backgrounds:{width:880,height:720},dialogBottomPadding:70,verticalLayoutThreshold:600,defaultFontSize:16,portraits:{width:100,height:100}},S9=J.Type.Object({options:J.Type.Object({delay:J.Type.Optional(J.Type.Number()),width:J.Type.Number(),keywordsPrefix:J.Type.String(),screenEdgesMinimumMargin:J.Type.Optional(J.Type.Number())}),tooltips:J.Type.Array(J.Type.Object({keywords:J.Type.Array(J.Type.String()),title:J.Type.String(),description:J.Type.String()}))}),C9={options:{delay:0,width:350,keywordsPrefix:"@@"},tooltips:[]},Qpe=J.Type.Object({name:J.Type.String(),description:J.Type.String(),icon:J.Type.String(),secret:J.Type.Optional(J.Type.Boolean()),category:J.Type.Optional(J.Type.String())}),$9=J.Type.Object({id:J.Type.String(),title:J.Type.String()}),T9=J.Type.Record(J.Type.String(),Qpe);J.Type.Object({defaultAchievementIcon:J.Type.String(),categories:J.Type.Array($9),achievements:T9,notifyNewAchievements:J.Type.Boolean(),secretAchievements:J.Type.Optional(J.Type.Object({censorDescription:J.Type.Optional(J.Type.Boolean()),censorName:J.Type.Optional(J.Type.Boolean()),hideUntilObtained:J.Type.Optional(J.Type.Boolean())}))});const Ype=J.Type.Object({categories:J.Type.Optional(J.Type.Array($9)),achievements:J.Type.Optional(T9)}),E9={categories:[{id:"default",title:"Achievements"}],achievements:{},notifyNewAchievements:!0,defaultAchievementIcon:"img/achievements/trophy.png"},Xpe=J.Type.Object({diceRange:J.Type.Tuple([J.Type.Number(),J.Type.Number()]),diceCount:J.Type.Number(),difficultyText:J.Type.Array(J.Type.Tuple([J.Type.Number(),J.Type.String()])),extraPointsPerLevel:J.Type.Number(),extraDicePerLevel:J.Type.Optional(J.Type.Number()),successOnRollsBelowThreshold:J.Type.Boolean(),showDifficultyText:J.Type.Boolean(),showDifficultyNumber:J.Type.Boolean(),showDifficultyWithoutModifiers:J.Type.Boolean(),finalRollIsHighest:J.Type.Optional(J.Type.Boolean()),finalRollIsLowest:J.Type.Optional(J.Type.Boolean()),failOnRollsEqualToThreshold:J.Type.Optional(J.Type.Boolean())}),Zpe=J.Type.Object({skill:J.Type.String(),difficulty:J.Type.Number(),winsNeeded:J.Type.Optional(J.Type.Number()),hideAfterRoll:J.Type.Optional(J.Type.Boolean()),repeatable:J.Type.Optional(J.Type.Boolean())}),O9=J.Type.Object({options:Xpe,skillChecks:J.Type.Record(J.Type.String(),Zpe)}),A9={options:{diceRange:[1,6],extraPointsPerLevel:1,extraDicePerLevel:0,diceCount:2,successOnRollsBelowThreshold:!1,showDifficultyText:!0,showDifficultyNumber:!1,showDifficultyWithoutModifiers:!1,finalRollIsHighest:!1,finalRollIsLowest:!1,difficultyText:[[2,"Very Easy"],[4,"Easy"],[6,"Medium"],[8,"Hard"],[10,"Very Hard"],[11,"Extremely Hard"],[12,"Near Impossible"]]},skillChecks:{}},Qc={baseAssetsPath:"",baseDataPath:"",gameTitle:"Narrat Game",saveFileName:"narrat save",images:{},layout:Jpe,settings:{},gameFlow:{},dialogPanel:{overlayMode:!0,rightOffset:100,bottomOffset:50,width:475,height:680,textSpeed:zg,animateText:!0,timeBetweenLines:100},splashScreens:{},screens:g9,buttons:p9,skills:k9,skillChecks:A9,scripts:[],audio:o9,notifications:{timeOnScreen:2.5,alsoPrintInDialogue:!1},tooltips:C9,hudStats:{},achievements:E9,items:c9,interactionTags:{default:{onlyInteractOutsideOfScripts:!0}},quests:f9,transitions:{},menuButtons:{},debugging:{showScriptFinishedMessage:!1},saves:{mode:"manual",slots:10},characters:j9};var eme=function(t){return tme(t)&&!nme(t)};function tme(e){return!!e&&typeof e=="object"}function nme(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||ome(e)}var rme=typeof Symbol=="function"&&Symbol.for,ime=rme?Symbol.for("react.element"):60103;function ome(e){return e.$$typeof===ime}function ame(e){return Array.isArray(e)?[]:{}}function Fh(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Nf(ame(e),e,t):e}function sme(e,t,n){return e.concat(t).map(function(r){return Fh(r,n)})}function lme(e,t){if(!t.customMerge)return Nf;var n=t.customMerge(e);return typeof n=="function"?n:Nf}function cme(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function M9(e){return Object.keys(e).concat(cme(e))}function P9(e,t){try{return t in e}catch{return!1}}function ume(e,t){return P9(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function fme(e,t,n){var r={};return n.isMergeableObject(e)&&M9(e).forEach(function(i){r[i]=Fh(e[i],n)}),M9(t).forEach(function(i){ume(e,i)||(P9(e,i)&&n.isMergeableObject(t[i])?r[i]=lme(i,n)(e[i],t[i],n):r[i]=Fh(t[i],n))}),r}function Nf(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||sme,n.isMergeableObject=n.isMergeableObject||eme,n.cloneUnlessOtherwiseSpecified=Fh;var r=Array.isArray(t),i=Array.isArray(e),o=r===i;return o?r?n.arrayMerge(e,t,n):fme(e,t,n):Fh(t,n)}Nf.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return Nf(r,i,n)},{})};var dme=Nf,hme=dme;const Vh=$_(hme),po=ai("config",{state:()=>({config:Qc}),actions:{async setConfig(e){this.config=e},extendConfig(e){this.config=Vh(this.config,e)},generateSaveData(){return{playerCharacter:this.playerCharacter,gameCharacter:this.gameCharacter}},loadSaveData(e){this.config.characters.config.playerCharacter=e.playerCharacter,this.config.characters.config.gameCharacter=e.gameCharacter}},getters:{playerCharacter(){return this.config.characters.config.playerCharacter??"player"},gameCharacter(){return this.config.characters.config.gameCharacter??"game"}}});function N9(e){const t=Dr(),n=t.getSkillCheck(e.id);if(n&&n.happened&&(n.succeeded||!e.repeatable))return n;const r=$pe(e);return R9(_pe(r,e)),r?t.passSkillCheck(e.id,e.hideAfterRoll):t.failSkillCheck(e.id,e.hideAfterRoll),t.getSkillCheck(e.id)}function pme(e,t=[]){const n=e.options,r=e.staticOptions,i=!!n.condition;if(i)return r.success;if(!i){for(const[o,a]of r.elseifs.entries())if(t[o]===!0)return a.branch}if(!i&&r.failure)return r.failure}function I9(e){return typeof e=="object"}function D9(e){return typeof e=="string"&&e.search(/\$/)===0}function R9(e){const t={speaker:po().gameCharacter,text:e,interactive:!1};qn().addDialog(t)}async function Kx(e){qn().addDialog(e)}function mme(e,t){if(t<e.length)return e[t]}/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function L9(e){return typeof e>"u"||e===null}function vme(e){return typeof e=="object"&&e!==null}function gme(e){return Array.isArray(e)?e:L9(e)?[]:[e]}function yme(e,t){var n,r,i,o;if(t)for(o=Object.keys(t),n=0,r=o.length;n<r;n+=1)i=o[n],e[i]=t[i];return e}function bme(e,t){var n="",r;for(r=0;r<t;r+=1)n+=e;return n}function wme(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var kme=L9,xme=vme,_me=gme,jme=bme,Sme=wme,Cme=yme,si={isNothing:kme,isObject:xme,toArray:_me,repeat:jme,isNegativeZero:Sme,extend:Cme};function B9(e,t){var n="",r=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(n+='in "'+e.mark.name+'" '),n+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(n+=`
|
|
176
176
|
|
|
177
177
|
`+e.mark.snippet),r+" "+n):r}function zh(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=B9(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}zh.prototype=Object.create(Error.prototype),zh.prototype.constructor=zh,zh.prototype.toString=function(t){return this.name+": "+B9(this,t)};var Xi=zh;function Gx(e,t,n,r,i){var o="",a="",s=Math.floor(i/2)-1;return r-t>s&&(o=" ... ",t=r-s+o.length),n-r>s&&(a=" ...",n=r+s-a.length),{str:o+e.slice(t,n).replace(/\t/g,"→")+a,pos:r-t+o.length}}function Jx(e,t){return si.repeat(" ",t-e.length)+e}function $me(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var n=/\r?\n|\r|\0/g,r=[0],i=[],o,a=-1;o=n.exec(e.buffer);)i.push(o.index),r.push(o.index+o[0].length),e.position<=o.index&&a<0&&(a=r.length-2);a<0&&(a=r.length-1);var s="",l,c,f=Math.min(e.line+t.linesAfter,i.length).toString().length,u=t.maxLength-(t.indent+f+3);for(l=1;l<=t.linesBefore&&!(a-l<0);l++)c=Gx(e.buffer,r[a-l],i[a-l],e.position-(r[a]-r[a-l]),u),s=si.repeat(" ",t.indent)+Jx((e.line-l+1).toString(),f)+" | "+c.str+`
|
|
178
178
|
`+s;for(c=Gx(e.buffer,r[a],i[a],e.position,u),s+=si.repeat(" ",t.indent)+Jx((e.line+1).toString(),f)+" | "+c.str+`
|