narrat 3.6.0 → 3.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/narrat.es.js CHANGED
@@ -41721,7 +41721,7 @@ const hB = D.Type.Object({
41721
41721
  function Zme(e) {
41722
41722
  return e === Bg || e === b2 || e === Xme || e === zg;
41723
41723
  }
41724
- const ege = "3.6.0", tge = /* @__PURE__ */ new Date("2023-10-28T17:31:23.549Z"), nge = 400, Vg = 20, w2 = "@empty", vI = {
41724
+ const ege = "3.6.1", tge = /* @__PURE__ */ new Date("2023-11-07T09:11:33.221Z"), nge = 400, Vg = 20, w2 = "@empty", vI = {
41725
41725
  background: w2
41726
41726
  }, pB = D.Type.Optional(
41727
41727
  D.Type.Object({
@@ -171,7 +171,7 @@ See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.
171
171
  This will fail in production.`);s=Qh,s._s.has(r)||(i?d_(r,t,o,s):j7(r,o,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=i?d_(u,t,o,s,!0):j7(u,ua({},o),s,!0);l._hotUpdate(d),delete s.state.value[u],s._s.delete(u)}if(process.env.NODE_ENV!=="production"&&Qg){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 t0(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 o=e(this.$pinia),i=t[r];return typeof i=="function"?i.call(this,o):o[i]},n),{})}const S7=["music","ambiant","sound"],C7=o_(S7),xo=oo("audio",{state:()=>{const e=new Map;for(const t in C7)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)return;const{fadeOutTime:r}=R0(n.audio);if(this.setAudioChannel(e,t,null),ha().options.musicFadeOutTime){const o=sl(n.audio);o&&o.fade(o.volume(n.howlerId),0,r,n.howlerId),await _i(r)}this.actuallyStopChannel(n)},async pauseChannel(e,t){const n=this.getAudioChannel(e,t);if(!n)return;const r=sl(n.audio);if(!r){At(`Could not find audio ${n.audio}`);return}r.pause(n.howlerId)},async playChannel(e,t,n){Cs.Howler.ctx.state==="suspended"&&(console.warn("Audio context is suspended :o"),Cs.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=sl(n.audio);if(!r){At(`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){_me(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=sl(n);if(!r){At(`Could not find audio ${n}`);return}const{fadeInTime:o,fadeInDelay:i}=R0(n),a=this.audioVolume(e,n);if(e!=="sound"){const s=r.play();r.volume(0,s),r.pause(s),this.setAudioChannel(e,t,{audio:n,howlerId:s}),await _i(i);const l=this.getAudioChannel(e,t);l!==null&&l.audio===n&&(r.play(s),r.fade(0,a,o,s))}else if(e==="sound"){const s=r.play();r.volume(a,s),this.setAudioChannel(e,t,{audio:n,howlerId:s})}},reloadAudio(e){for(const t in e.modes){if(t==="sound")continue;const n=t;this.modes.get(n).options=Zn(e.modes[n].options);for(const r in e.modes[n].channels){const o=e.modes[n].channels[r];o&&o.audio&&this.actuallyPlayChannel(n,Number(r),o.audio)}}},stopSound(e){const t=sl(e);t&&t.stop()},generateSaveData(){const e={};for(const t in C7){const n=this.modes.get(t);e[t]={options:Zn(n.options),channels:Zn(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 o=n.channels[r];if(o){const i=sl(o.audio);i&&i.volume(this.modeVolume(e),o.howlerId)}}},setMasterVolume(e){this.masterVolume=e,Cs.Howler.volume(e)},modeVolume(e){return this.masterVolume*this.modes.get(e).options.volume},audioVolume(e,t){var n;return this.modeVolume(e)*(((n=XV(t))==null?void 0:n.volume)??1)}}}),$7={};Cs.Howler.volume(.5);let h_={};async function kme(e){zi.log("Loading audio");const t=[];Cs.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(xme(n,e.files[n]))}return e.audioTriggers&&(h_=e.audioTriggers),Promise.all(t)}function lu(e){h_[e]&&xo().playChannel("sound",h_[e],0)}async function xme(e,t){return new Promise((n,r)=>{zi.log(`Loading audio ${t.src}`);const o=new Cs.Howl({...t,src:ui(t.src)});o.load(),$7[e]=o,n()})}function _me(e,t){const n=sl(e);if(!n){du(`Could not find music ${e}`);return}n.stop(t)}function sl(e){return $7[e]}function jme(e){const t=sl(e),{fadeInTime:n}=R0(e),r=t.play(),i=xo().audioVolume("music",e);return t.fade(0,i,n,r),r}async function Sme(e,t){const n=sl(e),{fadeOutTime:r}=R0(e);n.fade(n.volume(t),0,r,t),await _i(r),n.stop(t)}const qf={};async function Cme(e){return qf[e]?qf[e]:T7(e,e)}async function $me(e){zi.log("Loading images");const t=[],n=async(o,i)=>await T7(o,i),r=(o,i)=>{t.push(n(o,i))};for(const o in e.common.images){const i=e.common.images[o];r(o,i)}for(const o in e.screens.screens){const i=e.screens.screens[o];if(i.background&&!e.common.images[i.background]&&!i.video&&r(i.background,i.background),i.buttons)for(const a in i.buttons){const s=i.buttons[a];typeof s=="object"&&s.background&&!e.common.images[s.background]&&r(s.background,s.background)}}return Promise.all(t)}async function T7(e,t){if(qf[e])return qf[e];const n=new Promise((r,o)=>{const i=new Image;i.onload=()=>{qf[e]=i,r(i)},i.onerror=a=>{At(`Failed to load image ${e} at ${t}`,a),o(a)},i.src=ui(t)});return qf[e]=n,n}function cu(){return`${Date.now()}-${Math.floor(Math.random()*1e11)}-${Math.floor(Math.random()*1e11)}`}const O7="3.3.9";function p_(){return`NARRAT_SAVE_${Mt().saveFileName}`}const Tme="gameSave";let io;function ll(){if(io)return io;if(!io){let e=null;try{let t=localStorage.getItem(p_());t||(t=localStorage.getItem(Tme)),t&&(localStorage.setItem(`${p_()}_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){du(`Save file deleted because it was either broken or an outdated format: ${t}`)}e?io=e:io=A7()}return Eme(io),M7(io),Zh(),io}function Ome(){io=A7(),Zh()}function E7(){return{achievements:{achievements:{}},data:{}}}function Eme(e){e.version==="1.4.0"&&(e.globalSave=E7(),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"),e.version==="3.2.3"&&(e.slots.forEach(t=>{t&&t.saveData&&(t.saveData.choices={choices:{}})}),e.version="3.3.8"),e.version==="3.3.8"&&(e.slots.forEach(t=>{t&&t.saveData&&(t.saveData.rendering={dialogPanelMode:"auto"})}),e.version="3.3.9")}function A7(){const e={version:O7,slots:[],globalSave:E7()};return M7(e),e}function M7(e){const t=Mt().saves.slots??10;e.slots.length<1&&(e.slots[0]={slotType:"auto",id:cu(),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:Mt().saves.mode==="manual"?"manual":"auto",id:cu(),saveData:null})}function P7(e,t,n){const r=Pme(n);if(io.slots[r])io.slots[r].saveData=e;else{At(`Tried to save to slot ${n} but it doesn't exist`);return}io.globalSave=t,Zh()}function Ame(e){io.lastSaveSlot=e}function Zh(){localStorage.setItem(p_(),JSON.stringify(io))}function Mme(){const e=io.slots.find(t=>!t.saveData);return e?e.id:!1}function Pme(e){return io.slots.findIndex(t=>t.id===e)}function ep(e){return io.slots.find(t=>t.id===e)}function m_(){return io.slots.find(e=>e.slotType==="auto")}function Nme(e){const t=io.slots.findIndex(n=>n.id===e);io.slots[t].saveData=null,Zh()}function Ime(e,t){const n=ep(e);n&&n.saveData&&(n.saveData.metadata.name=t),Zh()}function Dme(){return{saveDate:new Date().toISOString(),name:"New Save"}}const tp=oo("tooltips",{state:()=>({tooltip:null}),actions:{addCustomTooltip(e){e.title&&(e.title=Ts(e.title)),e.text=Ts(e.text),this.tooltip=e},addTooltip(e,t){const n=z0(e);n&&this.addCustomTooltip({keyword:e,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:hc().options.width})},deleteTooltip(){this.tooltip=null}}});function n0(){return window}function Lme(e){const t=hc().options.keywordsPrefix,n=new RegExp(`${t}(\\w*)`,"gi");return e=e.replace(n,Rme),e}n0().onTooltipEnter=(e,t)=>{const n={x:e.clientX,y:e.clientY-20};tp().addTooltip(t,n)},n0().onTooltipLeave=()=>{tp().deleteTooltip()};function Rme(e,t){const n=t.toLowerCase();return z0(n)?`<span class='highlighted-tooltip-keyword'
172
172
  onmouseenter="onTooltipEnter(event, '${n}')"
173
173
  onmouseleave="onTooltipLeave()">${t}</span>`:n}function N7(e,t,n="$"){return t.replace(/%{[^}]*}/g,r=>{const o=r.substr(2,r.length-3);return v_(e,o,n)})}function Ts(e){const t=cd(),n=N7(t,e,"$");return Lme(n)}function v_(e,t,n){const[r,o]=W0(e,t,n);return r[o]}const I7=/\$\$"/,Bme=e=>typeof e=="string"&&e.search(I7)===0;function Fme(e){let t=null;const n=[],r=/<[^>]*>/g;do t=r.exec(e),t&&n.push(t);while(t);return n}const Yn=oo("dialog",{state:()=>({dialog:[],playMode:"normal"}),actions:{generateSaveData(){return{dialog:Zn(this.dialog)}},loadSaveData(e){this.dialog=e.dialog},addDialog(e){this.dialog.push({...e,interactive:e.interactive??!1,id:cu(),text:Ts(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 Vme(e,t){return e-t*Cp().options.extraPointsPerLevel}function D7(e,t){const{options:n}=Cp();let r=e;n.showDifficultyWithoutModifiers||(r=Vme(e,t));const o=Cp().options;let i=!1,a=0,s=o.difficultyText[0][1];for(;!i;)o.difficultyText.length>a&&r>=o.difficultyText[a][0]?s=o.difficultyText[a][1]:i=!0,a++;let l="";return n.showDifficultyText&&n.showDifficultyNumber?l=`${s} (${r})`:n.showDifficultyText?l=s:n.showDifficultyNumber&&(l=r.toString()),l}function zme({skill:e,skillCheckId:t,value:n}){const r=Cr(),o=r.getSkillCheck(t),i=q0(e),a=r.skills[e].level,s=D7(n,a);let l=!0,c=`<span class='skill-check'>[<span class='skill-check-name'>${i.name}</span> - `;return o.happened?o.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 qme(e,t){const n=Cr(),r=q0(t.skill),o=D7(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'>${o}</span> - ${e?'<span class="skill-check-success">Success</span>':'<span class="skill-check-failed">Failure</span>'}]</span>`}function Ume(e){const{options:t}=Cp(),n=Hme(t,e),i=Cr().skills[e].level*t.extraPointsPerLevel;let a=n.reduce((s,l)=>s+l.unmodified,i);return t.finalRollIsHighest?(a=n.reduce((s,l)=>l.modified>s?l.modified:s,0),zi.log(`[SKILL CHECK] Keeping only highest roll: ${a}`)):t.finalRollIsLowest&&(a=n.reduce((s,l)=>l.modified<s?l.modified:s,n[0].modified),zi.log(`[SKILL CHECK] Keeping only lowest roll: ${a}`)),{roll:a,rolls:n}}function Hme(e,t){const r=Cr().skills[t],o=r.level*e.extraPointsPerLevel;let{diceRange:i,diceCount:a}=e;e.extraDicePerLevel&&(a+=e.extraDicePerLevel*r.level);const s=[];for(let l=0;l<a;l++){const c=Wme(i),f=c+o;zi.log(`[SKILL CHECK] Roll ${l+1}/${a}: ${f}. (Base roll: ${c}, modifier: ${o} - Skill level: ${r.level})`),s.push({unmodified:c,modified:f})}return s}function Wme(e){return Math.floor(Math.random()*e[1])+e[0]}function Kme(e){const{skills:t}=Ga(),{roll:n,rolls:r}=Ume(e.skill),o=t[e.skill];let i=!1;if(typeof e.winsNeeded=="number"){const a=r.reduce((s,l)=>(L7(l.modified,e.difficulty)&&s++,s),0);a>=e.winsNeeded&&(i=!0),zi.log(`[SKILL CHECK ${o.name}] - Dice pool mode. ${e.winsNeeded} wins needed. Got ${a} successes.
174
- (${e.id} - ${a}/${e.winsNeeded} - rolls: ${JSON.stringify(r.map(s=>s.modified))})`)}else i=L7(n,e.difficulty),zi.log(`[SKILL CHECK ${o.name}]: ${i?"✅":"❌"}`,`(${e.id}) - ${n}/${e.difficulty}`);return lu(i?"onSkillCheckSuccess":"onSkillCheckFailure"),i}function L7(e,t){const{options:n}=Cp();let r=e>=t;return n.successOnRollsBelowThreshold&&(r=e<=t),n.failOnRollsEqualToThreshold&&e===t&&(r=!1),r}var B={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Type=e.JsonType=e.JavaScriptTypeBuilder=e.JsonTypeBuilder=e.TypeBuilder=e.TypeBuilderError=e.TransformEncodeBuilder=e.TransformDecodeBuilder=e.TemplateLiteralDslParser=e.TemplateLiteralGenerator=e.TemplateLiteralGeneratorError=e.TemplateLiteralFinite=e.TemplateLiteralFiniteError=e.TemplateLiteralParser=e.TemplateLiteralParserError=e.TemplateLiteralResolver=e.TemplateLiteralPattern=e.TemplateLiteralPatternError=e.UnionResolver=e.KeyArrayResolver=e.KeyArrayResolverError=e.KeyResolver=e.ObjectMap=e.Intrinsic=e.IndexedAccessor=e.TypeClone=e.TypeExtends=e.TypeExtendsResult=e.TypeExtendsError=e.ExtendsUndefined=e.TypeGuard=e.TypeGuardUnknownTypeError=e.ValueGuard=e.FormatRegistry=e.TypeBoxError=e.TypeRegistry=e.PatternStringExact=e.PatternNumberExact=e.PatternBooleanExact=e.PatternString=e.PatternNumber=e.PatternBoolean=e.Kind=e.Hint=e.Optional=e.Readonly=e.Transform=void 0,e.Transform=Symbol.for("TypeBox.Transform"),e.Readonly=Symbol.for("TypeBox.Readonly"),e.Optional=Symbol.for("TypeBox.Optional"),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(T){const x=new Map;function O(){return new Map(x)}T.Entries=O;function S(){return x.clear()}T.Clear=S;function C(pe){return x.delete(pe)}T.Delete=C;function _(pe){return x.has(pe)}T.Has=_;function R(pe,_e){x.set(pe,_e)}T.Set=R;function Z(pe){return x.get(pe)}T.Get=Z})(t||(e.TypeRegistry=t={}));class n extends Error{constructor(x){super(x)}}e.TypeBoxError=n;var r;(function(T){const x=new Map;function O(){return new Map(x)}T.Entries=O;function S(){return x.clear()}T.Clear=S;function C(pe){return x.delete(pe)}T.Delete=C;function _(pe){return x.has(pe)}T.Has=_;function R(pe,_e){x.set(pe,_e)}T.Set=R;function Z(pe){return x.get(pe)}T.Get=Z})(r||(e.FormatRegistry=r={}));var o;(function(T){function x(_e){return Array.isArray(_e)}T.IsArray=x;function O(_e){return typeof _e=="bigint"}T.IsBigInt=O;function S(_e){return typeof _e=="boolean"}T.IsBoolean=S;function C(_e){return _e===null}T.IsNull=C;function _(_e){return typeof _e=="number"}T.IsNumber=_;function R(_e){return typeof _e=="object"&&_e!==null}T.IsObject=R;function Z(_e){return typeof _e=="string"}T.IsString=Z;function pe(_e){return _e===void 0}T.IsUndefined=pe})(o||(e.ValueGuard=o={}));class i extends n{}e.TypeGuardUnknownTypeError=i;var a;(function(T){function x(z){try{return new RegExp(z),!0}catch{return!1}}function O(z){if(!o.IsString(z))return!1;for(let q=0;q<z.length;q++){const X=z.charCodeAt(q);if(X>=7&&X<=13||X===27||X===127)return!1}return!0}function S(z){return R(z)||he(z)}function C(z){return o.IsUndefined(z)||o.IsBigInt(z)}function _(z){return o.IsUndefined(z)||o.IsNumber(z)}function R(z){return o.IsUndefined(z)||o.IsBoolean(z)}function Z(z){return o.IsUndefined(z)||o.IsString(z)}function pe(z){return o.IsUndefined(z)||o.IsString(z)&&O(z)&&x(z)}function _e(z){return o.IsUndefined(z)||o.IsString(z)&&O(z)}function ke(z){return o.IsUndefined(z)||he(z)}function ue(z){return Ve(z,"Any")&&Z(z.$id)}T.TAny=ue;function Ne(z){return Ve(z,"Array")&&z.type==="array"&&Z(z.$id)&&he(z.items)&&_(z.minItems)&&_(z.maxItems)&&R(z.uniqueItems)&&ke(z.contains)&&_(z.minContains)&&_(z.maxContains)}T.TArray=Ne;function oe(z){return Ve(z,"AsyncIterator")&&z.type==="AsyncIterator"&&Z(z.$id)&&he(z.items)}T.TAsyncIterator=oe;function ye(z){return Ve(z,"BigInt")&&z.type==="bigint"&&Z(z.$id)&&C(z.exclusiveMaximum)&&C(z.exclusiveMinimum)&&C(z.maximum)&&C(z.minimum)&&C(z.multipleOf)}T.TBigInt=ye;function fe(z){return Ve(z,"Boolean")&&z.type==="boolean"&&Z(z.$id)}T.TBoolean=fe;function Fe(z){return Ve(z,"Constructor")&&z.type==="Constructor"&&Z(z.$id)&&o.IsArray(z.parameters)&&z.parameters.every(q=>he(q))&&he(z.returns)}T.TConstructor=Fe;function Y(z){return Ve(z,"Date")&&z.type==="Date"&&Z(z.$id)&&_(z.exclusiveMaximumTimestamp)&&_(z.exclusiveMinimumTimestamp)&&_(z.maximumTimestamp)&&_(z.minimumTimestamp)&&_(z.multipleOfTimestamp)}T.TDate=Y;function Q(z){return Ve(z,"Function")&&z.type==="Function"&&Z(z.$id)&&o.IsArray(z.parameters)&&z.parameters.every(q=>he(q))&&he(z.returns)}T.TFunction=Q;function ve(z){return Ve(z,"Integer")&&z.type==="integer"&&Z(z.$id)&&_(z.exclusiveMaximum)&&_(z.exclusiveMinimum)&&_(z.maximum)&&_(z.minimum)&&_(z.multipleOf)}T.TInteger=ve;function Ae(z){return Ve(z,"Intersect")&&!(o.IsString(z.type)&&z.type!=="object")&&o.IsArray(z.allOf)&&z.allOf.every(q=>he(q)&&!wn(q))&&Z(z.type)&&(R(z.unevaluatedProperties)||ke(z.unevaluatedProperties))&&Z(z.$id)}T.TIntersect=Ae;function Me(z){return Ve(z,"Iterator")&&z.type==="Iterator"&&Z(z.$id)&&he(z.items)}T.TIterator=Me;function Ve(z,q){return xe(z)&&z[e.Kind]===q}T.TKindOf=Ve;function xe(z){return o.IsObject(z)&&e.Kind in z&&o.IsString(z[e.Kind])}T.TKind=xe;function Ie(z){return We(z)&&o.IsString(z.const)}T.TLiteralString=Ie;function qe(z){return We(z)&&o.IsNumber(z.const)}T.TLiteralNumber=qe;function tt(z){return We(z)&&o.IsBoolean(z.const)}T.TLiteralBoolean=tt;function We(z){return Ve(z,"Literal")&&Z(z.$id)&&(o.IsBoolean(z.const)||o.IsNumber(z.const)||o.IsString(z.const))}T.TLiteral=We;function ut(z){return Ve(z,"Never")&&o.IsObject(z.not)&&Object.getOwnPropertyNames(z.not).length===0}T.TNever=ut;function gt(z){return Ve(z,"Not")&&he(z.not)}T.TNot=gt;function Dt(z){return Ve(z,"Null")&&z.type==="null"&&Z(z.$id)}T.TNull=Dt;function jt(z){return Ve(z,"Number")&&z.type==="number"&&Z(z.$id)&&_(z.exclusiveMaximum)&&_(z.exclusiveMinimum)&&_(z.maximum)&&_(z.minimum)&&_(z.multipleOf)}T.TNumber=jt;function En(z){return Ve(z,"Object")&&z.type==="object"&&Z(z.$id)&&o.IsObject(z.properties)&&S(z.additionalProperties)&&_(z.minProperties)&&_(z.maxProperties)&&Object.entries(z.properties).every(([q,X])=>O(q)&&he(X))}T.TObject=En;function Lt(z){return Ve(z,"Promise")&&z.type==="Promise"&&Z(z.$id)&&he(z.item)}T.TPromise=Lt;function jn(z){return Ve(z,"Record")&&z.type==="object"&&Z(z.$id)&&S(z.additionalProperties)&&o.IsObject(z.patternProperties)&&(q=>{const X=Object.getOwnPropertyNames(q.patternProperties);return X.length===1&&x(X[0])&&o.IsObject(q.patternProperties)&&he(q.patternProperties[X[0]])})(z)}T.TRecord=jn;function fn(z){return o.IsObject(z)&&e.Hint in z&&z[e.Hint]==="Recursive"}T.TRecursive=fn;function Kn(z){return Ve(z,"Ref")&&Z(z.$id)&&o.IsString(z.$ref)}T.TRef=Kn;function bn(z){return Ve(z,"String")&&z.type==="string"&&Z(z.$id)&&_(z.minLength)&&_(z.maxLength)&&pe(z.pattern)&&_e(z.format)}T.TString=bn;function Hn(z){return Ve(z,"Symbol")&&z.type==="symbol"&&Z(z.$id)}T.TSymbol=Hn;function Ln(z){return Ve(z,"TemplateLiteral")&&z.type==="string"&&o.IsString(z.pattern)&&z.pattern[0]==="^"&&z.pattern[z.pattern.length-1]==="$"}T.TTemplateLiteral=Ln;function Sn(z){return Ve(z,"This")&&Z(z.$id)&&o.IsString(z.$ref)}T.TThis=Sn;function wn(z){return o.IsObject(z)&&e.Transform in z}T.TTransform=wn;function ln(z){return Ve(z,"Tuple")&&z.type==="array"&&Z(z.$id)&&o.IsNumber(z.minItems)&&o.IsNumber(z.maxItems)&&z.minItems===z.maxItems&&(o.IsUndefined(z.items)&&o.IsUndefined(z.additionalItems)&&z.minItems===0||o.IsArray(z.items)&&z.items.every(q=>he(q)))}T.TTuple=ln;function er(z){return Ve(z,"Undefined")&&z.type==="undefined"&&Z(z.$id)}T.TUndefined=er;function Gn(z){return Pe(z)&&z.anyOf.every(q=>Ie(q)||qe(q))}T.TUnionLiteral=Gn;function Pe(z){return Ve(z,"Union")&&Z(z.$id)&&o.IsObject(z)&&o.IsArray(z.anyOf)&&z.anyOf.every(q=>he(q))}T.TUnion=Pe;function dt(z){return Ve(z,"Uint8Array")&&z.type==="Uint8Array"&&Z(z.$id)&&_(z.minByteLength)&&_(z.maxByteLength)}T.TUint8Array=dt;function Ct(z){return Ve(z,"Unknown")&&Z(z.$id)}T.TUnknown=Ct;function rn(z){return Ve(z,"Unsafe")}T.TUnsafe=rn;function Oe(z){return Ve(z,"Void")&&z.type==="void"&&Z(z.$id)}T.TVoid=Oe;function lt(z){return o.IsObject(z)&&z[e.Readonly]==="Readonly"}T.TReadonly=lt;function re(z){return o.IsObject(z)&&z[e.Optional]==="Optional"}T.TOptional=re;function he(z){return o.IsObject(z)&&(ue(z)||Ne(z)||fe(z)||ye(z)||oe(z)||Fe(z)||Y(z)||Q(z)||ve(z)||Ae(z)||Me(z)||We(z)||ut(z)||gt(z)||Dt(z)||jt(z)||En(z)||Lt(z)||jn(z)||Kn(z)||bn(z)||Hn(z)||Ln(z)||Sn(z)||ln(z)||er(z)||Pe(z)||dt(z)||Ct(z)||rn(z)||Oe(z)||xe(z)&&t.Has(z[e.Kind]))}T.TSchema=he})(a||(e.TypeGuard=a={}));var s;(function(T){function x(O){return O[e.Kind]==="Intersect"?O.allOf.every(S=>x(S)):O[e.Kind]==="Union"?O.anyOf.some(S=>x(S)):O[e.Kind]==="Undefined"?!0:O[e.Kind]==="Not"?!x(O.not):!1}T.Check=x})(s||(e.ExtendsUndefined=s={}));class l extends n{}e.TypeExtendsError=l;var c;(function(T){T[T.Union=0]="Union",T[T.True=1]="True",T[T.False=2]="False"})(c||(e.TypeExtendsResult=c={}));var f;(function(T){function x(P){return P===c.False?P:c.True}function O(P){throw new l(P)}function S(P){return a.TNever(P)||a.TIntersect(P)||a.TUnion(P)||a.TUnknown(P)||a.TAny(P)}function C(P,J){return a.TNever(J)?Ve():a.TIntersect(J)?Q(P,J):a.TUnion(J)?Te(P,J):a.TUnknown(J)?ht():a.TAny(J)?_():O("StructuralRight")}function _(P,J){return c.True}function R(P,J){return a.TIntersect(J)?Q(P,J):a.TUnion(J)&&J.anyOf.some(ze=>a.TAny(ze)||a.TUnknown(ze))?c.True:a.TUnion(J)?c.Union:a.TUnknown(J)||a.TAny(J)?c.True:c.Union}function Z(P,J){return a.TUnknown(P)?c.False:a.TAny(P)?c.Union:a.TNever(P)?c.True:c.False}function pe(P,J){return a.TObject(J)&&Ln(J)?c.True:S(J)?C(P,J):a.TArray(J)?x(ct(P.items,J.items)):c.False}function _e(P,J){return S(J)?C(P,J):a.TAsyncIterator(J)?x(ct(P.items,J.items)):c.False}function ke(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TBigInt(J)?c.True:c.False}function ue(P,J){return a.TLiteral(P)&&o.IsBoolean(P.const)||a.TBoolean(P)?c.True:c.False}function Ne(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TBoolean(J)?c.True:c.False}function oe(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TConstructor(J)?P.parameters.length>J.parameters.length?c.False:P.parameters.every((ze,nt)=>x(ct(J.parameters[nt],ze))===c.True)?x(ct(P.returns,J.returns)):c.False:c.False}function ye(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TDate(J)?c.True:c.False}function fe(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TFunction(J)?P.parameters.length>J.parameters.length?c.False:P.parameters.every((ze,nt)=>x(ct(J.parameters[nt],ze))===c.True)?x(ct(P.returns,J.returns)):c.False:c.False}function Fe(P,J){return a.TLiteral(P)&&o.IsNumber(P.const)||a.TNumber(P)||a.TInteger(P)?c.True:c.False}function Y(P,J){return a.TInteger(J)||a.TNumber(J)?c.True:S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):c.False}function Q(P,J){return J.allOf.every(ze=>ct(P,ze)===c.True)?c.True:c.False}function ve(P,J){return P.allOf.some(ze=>ct(ze,J)===c.True)?c.True:c.False}function Ae(P,J){return S(J)?C(P,J):a.TIterator(J)?x(ct(P.items,J.items)):c.False}function Me(P,J){return a.TLiteral(J)&&J.const===P.const?c.True:S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TString(J)?Oe(P):a.TNumber(J)?We(P):a.TInteger(J)?Fe(P):a.TBoolean(J)?ue(P):c.False}function Ve(P,J){return c.False}function xe(P,J){return c.True}function Ie(P){let[J,ze]=[P,0];for(;a.TNot(J);)J=J.not,ze+=1;return ze%2===0?J:e.Type.Unknown()}function qe(P,J){return a.TNot(P)?ct(Ie(P),J):a.TNot(J)?ct(P,Ie(J)):O("Invalid fallthrough for Not")}function tt(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TNull(J)?c.True:c.False}function We(P,J){return a.TLiteralNumber(P)||a.TNumber(P)||a.TInteger(P)?c.True:c.False}function ut(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TInteger(J)||a.TNumber(J)?c.True:c.False}function gt(P,J){return Object.getOwnPropertyNames(P.properties).length===J}function Dt(P){return Ln(P)}function jt(P){return gt(P,0)||gt(P,1)&&"description"in P.properties&&a.TUnion(P.properties.description)&&P.properties.description.anyOf.length===2&&(a.TString(P.properties.description.anyOf[0])&&a.TUndefined(P.properties.description.anyOf[1])||a.TString(P.properties.description.anyOf[1])&&a.TUndefined(P.properties.description.anyOf[0]))}function En(P){return gt(P,0)}function Lt(P){return gt(P,0)}function jn(P){return gt(P,0)}function fn(P){return gt(P,0)}function Kn(P){return Ln(P)}function bn(P){const J=e.Type.Number();return gt(P,0)||gt(P,1)&&"length"in P.properties&&x(ct(P.properties.length,J))===c.True}function Hn(P){return gt(P,0)}function Ln(P){const J=e.Type.Number();return gt(P,0)||gt(P,1)&&"length"in P.properties&&x(ct(P.properties.length,J))===c.True}function Sn(P){const J=e.Type.Function([e.Type.Any()],e.Type.Any());return gt(P,0)||gt(P,1)&&"then"in P.properties&&x(ct(P.properties.then,J))===c.True}function wn(P,J){return ct(P,J)===c.False||a.TOptional(P)&&!a.TOptional(J)?c.False:c.True}function ln(P,J){return a.TUnknown(P)?c.False:a.TAny(P)?c.Union:a.TNever(P)||a.TLiteralString(P)&&Dt(J)||a.TLiteralNumber(P)&&En(J)||a.TLiteralBoolean(P)&&Lt(J)||a.TSymbol(P)&&jt(J)||a.TBigInt(P)&&jn(J)||a.TString(P)&&Dt(J)||a.TSymbol(P)&&jt(J)||a.TNumber(P)&&En(J)||a.TInteger(P)&&En(J)||a.TBoolean(P)&&Lt(J)||a.TUint8Array(P)&&Kn(J)||a.TDate(P)&&fn(J)||a.TConstructor(P)&&Hn(J)||a.TFunction(P)&&bn(J)?c.True:a.TRecord(P)&&a.TString(Pe(P))?(()=>J[e.Hint]==="Record"?c.True:c.False)():a.TRecord(P)&&a.TNumber(Pe(P))?(()=>gt(J,0)?c.True:c.False)():c.False}function er(P,J){return S(J)?C(P,J):a.TRecord(J)?Ct(P,J):a.TObject(J)?(()=>{for(const ze of Object.getOwnPropertyNames(J.properties))if(!(ze in P.properties)||wn(P.properties[ze],J.properties[ze])===c.False)return c.False;return c.True})():c.False}function Gn(P,J){return S(J)?C(P,J):a.TObject(J)&&Sn(J)?c.True:a.TPromise(J)?x(ct(P.item,J.item)):c.False}function Pe(P){return e.PatternNumberExact in P.patternProperties?e.Type.Number():e.PatternStringExact in P.patternProperties?e.Type.String():O("Unknown record key pattern")}function dt(P){return e.PatternNumberExact in P.patternProperties?P.patternProperties[e.PatternNumberExact]:e.PatternStringExact in P.patternProperties?P.patternProperties[e.PatternStringExact]:O("Unable to get record value schema")}function Ct(P,J){const[ze,nt]=[Pe(J),dt(J)];return a.TLiteralString(P)&&a.TNumber(ze)&&x(ct(P,nt))===c.True?c.True:a.TUint8Array(P)&&a.TNumber(ze)||a.TString(P)&&a.TNumber(ze)||a.TArray(P)&&a.TNumber(ze)?ct(P,nt):a.TObject(P)?(()=>{for(const at of Object.getOwnPropertyNames(P.properties))if(wn(nt,P.properties[at])===c.False)return c.False;return c.True})():c.False}function rn(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?ct(dt(P),dt(J)):c.False}function Oe(P,J){return a.TLiteral(P)&&o.IsString(P.const)||a.TString(P)?c.True:c.False}function lt(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TString(J)?c.True:c.False}function re(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TSymbol(J)?c.True:c.False}function he(P,J){return a.TTemplateLiteral(P)?ct($.Resolve(P),J):a.TTemplateLiteral(J)?ct(P,$.Resolve(J)):O("Invalid fallthrough for TemplateLiteral")}function z(P,J){return a.TArray(J)&&P.items!==void 0&&P.items.every(ze=>ct(ze,J.items)===c.True)}function q(P,J){return a.TNever(P)?c.True:a.TUnknown(P)?c.False:a.TAny(P)?c.Union:c.False}function X(P,J){return S(J)?C(P,J):a.TObject(J)&&Ln(J)||a.TArray(J)&&z(P,J)?c.True:a.TTuple(J)?o.IsUndefined(P.items)&&!o.IsUndefined(J.items)||!o.IsUndefined(P.items)&&o.IsUndefined(J.items)?c.False:o.IsUndefined(P.items)&&!o.IsUndefined(J.items)||P.items.every((ze,nt)=>ct(ze,J.items[nt])===c.True)?c.True:c.False:c.False}function de(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TUint8Array(J)?c.True:c.False}function je(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TVoid(J)?bt(P):a.TUndefined(J)?c.True:c.False}function Te(P,J){return J.anyOf.some(ze=>ct(P,ze)===c.True)?c.True:c.False}function it(P,J){return P.anyOf.every(ze=>ct(ze,J)===c.True)?c.True:c.False}function ht(P,J){return c.True}function $t(P,J){return a.TNever(J)?Ve():a.TIntersect(J)?Q(P,J):a.TUnion(J)?Te(P,J):a.TAny(J)?_():a.TString(J)?Oe(P):a.TNumber(J)?We(P):a.TInteger(J)?Fe(P):a.TBoolean(J)?ue(P):a.TArray(J)?Z(P):a.TTuple(J)?q(P):a.TObject(J)?ln(P,J):a.TUnknown(J)?c.True:c.False}function bt(P,J){return a.TUndefined(P)||a.TUndefined(P)?c.True:c.False}function Ht(P,J){return a.TIntersect(J)?Q(P,J):a.TUnion(J)?Te(P,J):a.TUnknown(J)?ht():a.TAny(J)?_():a.TObject(J)?ln(P,J):a.TVoid(J)?c.True:c.False}function ct(P,J){return a.TTemplateLiteral(P)||a.TTemplateLiteral(J)?he(P,J):a.TNot(P)||a.TNot(J)?qe(P,J):a.TAny(P)?R(P,J):a.TArray(P)?pe(P,J):a.TBigInt(P)?ke(P,J):a.TBoolean(P)?Ne(P,J):a.TAsyncIterator(P)?_e(P,J):a.TConstructor(P)?oe(P,J):a.TDate(P)?ye(P,J):a.TFunction(P)?fe(P,J):a.TInteger(P)?Y(P,J):a.TIntersect(P)?ve(P,J):a.TIterator(P)?Ae(P,J):a.TLiteral(P)?Me(P,J):a.TNever(P)?xe():a.TNull(P)?tt(P,J):a.TNumber(P)?ut(P,J):a.TObject(P)?er(P,J):a.TRecord(P)?rn(P,J):a.TString(P)?lt(P,J):a.TSymbol(P)?re(P,J):a.TTuple(P)?X(P,J):a.TPromise(P)?Gn(P,J):a.TUint8Array(P)?de(P,J):a.TUndefined(P)?je(P,J):a.TUnion(P)?it(P,J):a.TUnknown(P)?$t(P,J):a.TVoid(P)?Ht(P,J):O(`Unknown left type operand '${P[e.Kind]}'`)}function on(P,J){return ct(P,J)}T.Extends=on})(f||(e.TypeExtends=f={}));var u;(function(T){function x(R){const Z=Object.getOwnPropertyNames(R).reduce((_e,ke)=>({..._e,[ke]:S(R[ke])}),{}),pe=Object.getOwnPropertySymbols(R).reduce((_e,ke)=>({..._e,[ke]:S(R[ke])}),{});return{...Z,...pe}}function O(R){return R.map(Z=>S(Z))}function S(R){return o.IsArray(R)?O(R):o.IsObject(R)?x(R):R}function C(R){return R.map(Z=>_(Z))}T.Rest=C;function _(R,Z={}){return{...S(R),...Z}}T.Type=_})(u||(e.TypeClone=u={}));var d;(function(T){function x(oe){return oe.map(ye=>{const{[e.Optional]:fe,...Fe}=u.Type(ye);return Fe})}function O(oe){return oe.every(ye=>a.TOptional(ye))}function S(oe){return oe.some(ye=>a.TOptional(ye))}function C(oe){return O(oe.allOf)?e.Type.Optional(e.Type.Intersect(x(oe.allOf))):oe}function _(oe){return S(oe.anyOf)?e.Type.Optional(e.Type.Union(x(oe.anyOf))):oe}function R(oe){return oe[e.Kind]==="Intersect"?C(oe):oe[e.Kind]==="Union"?_(oe):oe}function Z(oe,ye){const fe=oe.allOf.reduce((Fe,Y)=>{const Q=ue(Y,ye);return Q[e.Kind]==="Never"?Fe:[...Fe,Q]},[]);return R(e.Type.Intersect(fe))}function pe(oe,ye){const fe=oe.anyOf.map(Fe=>ue(Fe,ye));return R(e.Type.Union(fe))}function _e(oe,ye){const fe=oe.properties[ye];return o.IsUndefined(fe)?e.Type.Never():e.Type.Union([fe])}function ke(oe,ye){const fe=oe.items;if(o.IsUndefined(fe))return e.Type.Never();const Fe=fe[ye];return o.IsUndefined(Fe)?e.Type.Never():Fe}function ue(oe,ye){return oe[e.Kind]==="Intersect"?Z(oe,ye):oe[e.Kind]==="Union"?pe(oe,ye):oe[e.Kind]==="Object"?_e(oe,ye):oe[e.Kind]==="Tuple"?ke(oe,ye):e.Type.Never()}function Ne(oe,ye,fe={}){const Fe=ye.map(Y=>ue(oe,Y.toString()));return R(e.Type.Union(Fe,fe))}T.Resolve=Ne})(d||(e.IndexedAccessor=d={}));var h;(function(T){function x(ke){const[ue,Ne]=[ke.slice(0,1),ke.slice(1)];return`${ue.toLowerCase()}${Ne}`}function O(ke){const[ue,Ne]=[ke.slice(0,1),ke.slice(1)];return`${ue.toUpperCase()}${Ne}`}function S(ke){return ke.toUpperCase()}function C(ke){return ke.toLowerCase()}function _(ke,ue){const Ne=E.ParseExact(ke.pattern);if(!D.Check(Ne))return{...ke,pattern:R(ke.pattern,ue)};const fe=[...M.Generate(Ne)].map(Q=>e.Type.Literal(Q)),Fe=Z(fe,ue),Y=e.Type.Union(Fe);return e.Type.TemplateLiteral([Y])}function R(ke,ue){return typeof ke=="string"?ue==="Uncapitalize"?x(ke):ue==="Capitalize"?O(ke):ue==="Uppercase"?S(ke):ue==="Lowercase"?C(ke):ke:ke.toString()}function Z(ke,ue){if(ke.length===0)return[];const[Ne,...oe]=ke;return[_e(Ne,ue),...Z(oe,ue)]}function pe(ke,ue){return a.TTemplateLiteral(ke)?_(ke,ue):a.TUnion(ke)?e.Type.Union(Z(ke.anyOf,ue)):a.TLiteral(ke)?e.Type.Literal(R(ke.const,ue)):ke}function _e(ke,ue){return pe(ke,ue)}T.Map=_e})(h||(e.Intrinsic=h={}));var p;(function(T){function x(R,Z){return e.Type.Intersect(R.allOf.map(pe=>C(pe,Z)),{...R})}function O(R,Z){return e.Type.Union(R.anyOf.map(pe=>C(pe,Z)),{...R})}function S(R,Z){return Z(R)}function C(R,Z){return R[e.Kind]==="Intersect"?x(R,Z):R[e.Kind]==="Union"?O(R,Z):R[e.Kind]==="Object"?S(R,Z):R}function _(R,Z,pe){return{...C(u.Type(R),Z),...pe}}T.Map=_})(p||(e.ObjectMap=p={}));var m;(function(T){function x(_e){return _e[0]==="^"&&_e[_e.length-1]==="$"?_e.slice(1,_e.length-1):_e}function O(_e,ke){return _e.allOf.reduce((ue,Ne)=>[...ue,...R(Ne,ke)],[])}function S(_e,ke){const ue=_e.anyOf.map(Ne=>R(Ne,ke));return[...ue.reduce((Ne,oe)=>oe.map(ye=>ue.every(fe=>fe.includes(ye))?Ne.add(ye):Ne)[0],new Set)]}function C(_e,ke){return Object.getOwnPropertyNames(_e.properties)}function _(_e,ke){return ke.includePatterns?Object.getOwnPropertyNames(_e.patternProperties):[]}function R(_e,ke){return a.TIntersect(_e)?O(_e,ke):a.TUnion(_e)?S(_e,ke):a.TObject(_e)?C(_e):a.TRecord(_e)?_(_e,ke):[]}function Z(_e,ke){return[...new Set(R(_e,ke))]}T.ResolveKeys=Z;function pe(_e){return`^(${Z(_e,{includePatterns:!0}).map(Ne=>`(${x(Ne)})`).join("|")})$`}T.ResolvePattern=pe})(m||(e.KeyResolver=m={}));class v extends n{}e.KeyArrayResolverError=v;var g;(function(T){function x(O){return Array.isArray(O)?O:a.TUnionLiteral(O)?O.anyOf.map(S=>S.const.toString()):a.TLiteral(O)?[O.const]:a.TTemplateLiteral(O)?(()=>{const S=E.ParseExact(O.pattern);if(!D.Check(S))throw new v("Cannot resolve keys from infinite template expression");return[...M.Generate(S)]})():[]}T.Resolve=x})(g||(e.KeyArrayResolver=g={}));var y;(function(T){function*x(S){for(const C of S.anyOf)C[e.Kind]==="Union"?yield*x(C):yield C}function O(S){return e.Type.Union([...x(S)],{...S})}T.Resolve=O})(y||(e.UnionResolver=y={}));class w extends n{}e.TemplateLiteralPatternError=w;var k;(function(T){function x(_){throw new w(_)}function O(_){return _.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function S(_,R){return a.TTemplateLiteral(_)?_.pattern.slice(1,_.pattern.length-1):a.TUnion(_)?`(${_.anyOf.map(Z=>S(Z,R)).join("|")})`:a.TNumber(_)?`${R}${e.PatternNumber}`:a.TInteger(_)?`${R}${e.PatternNumber}`:a.TBigInt(_)?`${R}${e.PatternNumber}`:a.TString(_)?`${R}${e.PatternString}`:a.TLiteral(_)?`${R}${O(_.const.toString())}`:a.TBoolean(_)?`${R}${e.PatternBoolean}`:x(`Unexpected Kind '${_[e.Kind]}'`)}function C(_){return`^${_.map(R=>S(R,"")).join("")}$`}T.Create=C})(k||(e.TemplateLiteralPattern=k={}));var $;(function(T){function x(O){const S=E.ParseExact(O.pattern);if(!D.Check(S))return e.Type.String();const C=[...M.Generate(S)].map(_=>e.Type.Literal(_));return e.Type.Union(C)}T.Resolve=x})($||(e.TemplateLiteralResolver=$={}));class j extends n{}e.TemplateLiteralParserError=j;var E;(function(T){function x(oe,ye,fe){return oe[ye]===fe&&oe.charCodeAt(ye-1)!==92}function O(oe,ye){return x(oe,ye,"(")}function S(oe,ye){return x(oe,ye,")")}function C(oe,ye){return x(oe,ye,"|")}function _(oe){if(!(O(oe,0)&&S(oe,oe.length-1)))return!1;let ye=0;for(let fe=0;fe<oe.length;fe++)if(O(oe,fe)&&(ye+=1),S(oe,fe)&&(ye-=1),ye===0&&fe!==oe.length-1)return!1;return!0}function R(oe){return oe.slice(1,oe.length-1)}function Z(oe){let ye=0;for(let fe=0;fe<oe.length;fe++)if(O(oe,fe)&&(ye+=1),S(oe,fe)&&(ye-=1),C(oe,fe)&&ye===0)return!0;return!1}function pe(oe){for(let ye=0;ye<oe.length;ye++)if(O(oe,ye))return!0;return!1}function _e(oe){let[ye,fe]=[0,0];const Fe=[];for(let Q=0;Q<oe.length;Q++)if(O(oe,Q)&&(ye+=1),S(oe,Q)&&(ye-=1),C(oe,Q)&&ye===0){const ve=oe.slice(fe,Q);ve.length>0&&Fe.push(ue(ve)),fe=Q+1}const Y=oe.slice(fe);return Y.length>0&&Fe.push(ue(Y)),Fe.length===0?{type:"const",const:""}:Fe.length===1?Fe[0]:{type:"or",expr:Fe}}function ke(oe){function ye(Y,Q){if(!O(Y,Q))throw new j("TemplateLiteralParser: Index must point to open parens");let ve=0;for(let Ae=Q;Ae<Y.length;Ae++)if(O(Y,Ae)&&(ve+=1),S(Y,Ae)&&(ve-=1),ve===0)return[Q,Ae];throw new j("TemplateLiteralParser: Unclosed group parens in expression")}function fe(Y,Q){for(let ve=Q;ve<Y.length;ve++)if(O(Y,ve))return[Q,ve];return[Q,Y.length]}const Fe=[];for(let Y=0;Y<oe.length;Y++)if(O(oe,Y)){const[Q,ve]=ye(oe,Y),Ae=oe.slice(Q,ve+1);Fe.push(ue(Ae)),Y=ve}else{const[Q,ve]=fe(oe,Y),Ae=oe.slice(Q,ve);Ae.length>0&&Fe.push(ue(Ae)),Y=ve-1}return Fe.length===0?{type:"const",const:""}:Fe.length===1?Fe[0]:{type:"and",expr:Fe}}function ue(oe){return _(oe)?ue(R(oe)):Z(oe)?_e(oe):pe(oe)?ke(oe):{type:"const",const:oe}}T.Parse=ue;function Ne(oe){return ue(oe.slice(1,oe.length-1))}T.ParseExact=Ne})(E||(e.TemplateLiteralParser=E={}));class I extends n{}e.TemplateLiteralFiniteError=I;var D;(function(T){function x(R){throw new I(R)}function O(R){return R.type==="or"&&R.expr.length===2&&R.expr[0].type==="const"&&R.expr[0].const==="0"&&R.expr[1].type==="const"&&R.expr[1].const==="[1-9][0-9]*"}function S(R){return R.type==="or"&&R.expr.length===2&&R.expr[0].type==="const"&&R.expr[0].const==="true"&&R.expr[1].type==="const"&&R.expr[1].const==="false"}function C(R){return R.type==="const"&&R.const===".*"}function _(R){return S(R)?!0:O(R)||C(R)?!1:R.type==="and"?R.expr.every(Z=>_(Z)):R.type==="or"?R.expr.every(Z=>_(Z)):R.type==="const"?!0:x("Unknown expression type")}T.Check=_})(D||(e.TemplateLiteralFinite=D={}));class L extends n{}e.TemplateLiteralGeneratorError=L;var M;(function(T){function*x(R){if(R.length===1)return yield*R[0];for(const Z of R[0])for(const pe of x(R.slice(1)))yield`${Z}${pe}`}function*O(R){return yield*x(R.expr.map(Z=>[..._(Z)]))}function*S(R){for(const Z of R.expr)yield*_(Z)}function*C(R){return yield R.const}function*_(R){return R.type==="and"?yield*O(R):R.type==="or"?yield*S(R):R.type==="const"?yield*C(R):(()=>{throw new L("Unknown expression")})()}T.Generate=_})(M||(e.TemplateLiteralGenerator=M={}));var F;(function(T){function*x(_){const R=_.trim().replace(/"|'/g,"");return R==="boolean"?yield e.Type.Boolean():R==="number"?yield e.Type.Number():R==="bigint"?yield e.Type.BigInt():R==="string"?yield e.Type.String():yield(()=>{const Z=R.split("|").map(pe=>e.Type.Literal(pe.trim()));return Z.length===0?e.Type.Never():Z.length===1?Z[0]:e.Type.Union(Z)})()}function*O(_){if(_[1]!=="{"){const R=e.Type.Literal("$"),Z=S(_.slice(1));return yield*[R,...Z]}for(let R=2;R<_.length;R++)if(_[R]==="}"){const Z=x(_.slice(2,R)),pe=S(_.slice(R+1));return yield*[...Z,...pe]}yield e.Type.Literal(_)}function*S(_){for(let R=0;R<_.length;R++)if(_[R]==="$"){const Z=e.Type.Literal(_.slice(0,R)),pe=O(_.slice(R));return yield*[Z,...pe]}yield e.Type.Literal(_)}function C(_){return[...S(_)]}T.Parse=C})(F||(e.TemplateLiteralDslParser=F={}));class H{constructor(x){this.schema=x}Decode(x){return new N(this.schema,x)}}e.TransformDecodeBuilder=H;class N{constructor(x,O){this.schema=x,this.decode=O}Encode(x){const O=u.Type(this.schema);return a.TTransform(O)?(()=>{const _={Encode:R=>O[e.Transform].Encode(x(R)),Decode:R=>this.decode(O[e.Transform].Decode(R))};return{...O,[e.Transform]:_}})():(()=>{const S={Decode:this.decode,Encode:x};return{...O,[e.Transform]:S}})()}}e.TransformEncodeBuilder=N;let W=0;class ee extends n{}e.TypeBuilderError=ee;class U{Create(x){return x}Throw(x){throw new ee(x)}Discard(x,O){return O.reduce((S,C)=>{const{[C]:_,...R}=S;return R},x)}Strict(x){return JSON.parse(JSON.stringify(x))}}e.TypeBuilder=U;class K extends U{ReadonlyOptional(x){return this.Readonly(this.Optional(x))}Readonly(x){return{...u.Type(x),[e.Readonly]:"Readonly"}}Optional(x){return{...u.Type(x),[e.Optional]:"Optional"}}Any(x={}){return this.Create({...x,[e.Kind]:"Any"})}Array(x,O={}){return this.Create({...O,[e.Kind]:"Array",type:"array",items:u.Type(x)})}Boolean(x={}){return this.Create({...x,[e.Kind]:"Boolean",type:"boolean"})}Capitalize(x,O={}){return{...h.Map(u.Type(x),"Capitalize"),...O}}Composite(x,O){const S=e.Type.Intersect(x,{}),_=m.ResolveKeys(S,{includePatterns:!1}).reduce((R,Z)=>({...R,[Z]:e.Type.Index(S,[Z])}),{});return e.Type.Object(_,O)}Enum(x,O={}){const S=Object.getOwnPropertyNames(x).filter(R=>isNaN(R)).map(R=>x[R]),_=[...new Set(S)].map(R=>e.Type.Literal(R));return this.Union(_,{...O,[e.Hint]:"Enum"})}Extends(x,O,S,C,_={}){switch(f.Extends(x,O)){case c.Union:return this.Union([u.Type(S,_),u.Type(C,_)]);case c.True:return u.Type(S,_);case c.False:return u.Type(C,_)}}Exclude(x,O,S={}){return a.TTemplateLiteral(x)?this.Exclude($.Resolve(x),O,S):a.TTemplateLiteral(O)?this.Exclude(x,$.Resolve(O),S):a.TUnion(x)?(()=>{const C=x.anyOf.filter(_=>f.Extends(_,O)===c.False);return C.length===1?u.Type(C[0],S):this.Union(C,S)})():f.Extends(x,O)!==c.False?this.Never(S):u.Type(x,S)}Extract(x,O,S={}){return a.TTemplateLiteral(x)?this.Extract($.Resolve(x),O,S):a.TTemplateLiteral(O)?this.Extract(x,$.Resolve(O),S):a.TUnion(x)?(()=>{const C=x.anyOf.filter(_=>f.Extends(_,O)!==c.False);return C.length===1?u.Type(C[0],S):this.Union(C,S)})():f.Extends(x,O)!==c.False?u.Type(x,S):this.Never(S)}Index(x,O,S={}){return a.TArray(x)&&a.TNumber(O)?(()=>u.Type(x.items,S))():a.TTuple(x)&&a.TNumber(O)?(()=>{const _=(o.IsUndefined(x.items)?[]:x.items).map(R=>u.Type(R));return this.Union(_,S)})():(()=>{const C=g.Resolve(O),_=u.Type(x);return d.Resolve(_,C,S)})()}Integer(x={}){return this.Create({...x,[e.Kind]:"Integer",type:"integer"})}Intersect(x,O={}){if(x.length===0)return e.Type.Never();if(x.length===1)return u.Type(x[0],O);x.some(R=>a.TTransform(R))&&this.Throw("Cannot intersect transform types");const S=x.every(R=>a.TObject(R)),C=u.Rest(x),_=a.TSchema(O.unevaluatedProperties)?{unevaluatedProperties:u.Type(O.unevaluatedProperties)}:{};return O.unevaluatedProperties===!1||a.TSchema(O.unevaluatedProperties)||S?this.Create({...O,..._,[e.Kind]:"Intersect",type:"object",allOf:C}):this.Create({...O,..._,[e.Kind]:"Intersect",allOf:C})}KeyOf(x,O={}){return a.TRecord(x)?(()=>{const S=Object.getOwnPropertyNames(x.patternProperties)[0];return S===e.PatternNumberExact?this.Number(O):S===e.PatternStringExact?this.String(O):this.Throw("Unable to resolve key type from Record key pattern")})():a.TTuple(x)?(()=>{const C=(o.IsUndefined(x.items)?[]:x.items).map((_,R)=>e.Type.Literal(R.toString()));return this.Union(C,O)})():a.TArray(x)?(()=>this.Number(O))():(()=>{const S=m.ResolveKeys(x,{includePatterns:!1});if(S.length===0)return this.Never(O);const C=S.map(_=>this.Literal(_));return this.Union(C,O)})()}Literal(x,O={}){return this.Create({...O,[e.Kind]:"Literal",const:x,type:typeof x})}Lowercase(x,O={}){return{...h.Map(u.Type(x),"Lowercase"),...O}}Never(x={}){return this.Create({...x,[e.Kind]:"Never",not:{}})}Not(x,O){return this.Create({...O,[e.Kind]:"Not",not:u.Type(x)})}Null(x={}){return this.Create({...x,[e.Kind]:"Null",type:"null"})}Number(x={}){return this.Create({...x,[e.Kind]:"Number",type:"number"})}Object(x,O={}){const S=Object.getOwnPropertyNames(x),C=S.filter(pe=>a.TOptional(x[pe])),_=S.filter(pe=>!C.includes(pe)),R=a.TSchema(O.additionalProperties)?{additionalProperties:u.Type(O.additionalProperties)}:{},Z=S.reduce((pe,_e)=>({...pe,[_e]:u.Type(x[_e])}),{});return _.length>0?this.Create({...O,...R,[e.Kind]:"Object",type:"object",properties:Z,required:_}):this.Create({...O,...R,[e.Kind]:"Object",type:"object",properties:Z})}Omit(x,O,S={}){const C=g.Resolve(O);return p.Map(this.Discard(u.Type(x),["$id",e.Transform]),_=>{o.IsArray(_.required)&&(_.required=_.required.filter(R=>!C.includes(R)),_.required.length===0&&delete _.required);for(const R of Object.getOwnPropertyNames(_.properties))C.includes(R)&&delete _.properties[R];return this.Create(_)},S)}Partial(x,O={}){return p.Map(this.Discard(u.Type(x),["$id",e.Transform]),S=>{const C=Object.getOwnPropertyNames(S.properties).reduce((_,R)=>({..._,[R]:this.Optional(S.properties[R])}),{});return this.Object(C,this.Discard(S,["required"]))},O)}Pick(x,O,S={}){const C=g.Resolve(O);return p.Map(this.Discard(u.Type(x),["$id",e.Transform]),_=>{o.IsArray(_.required)&&(_.required=_.required.filter(R=>C.includes(R)),_.required.length===0&&delete _.required);for(const R of Object.getOwnPropertyNames(_.properties))C.includes(R)||delete _.properties[R];return this.Create(_)},S)}Record(x,O,S={}){return a.TTemplateLiteral(x)?(()=>{const C=E.ParseExact(x.pattern);return D.Check(C)?this.Object([...M.Generate(C)].reduce((_,R)=>({..._,[R]:u.Type(O)}),{}),S):this.Create({...S,[e.Kind]:"Record",type:"object",patternProperties:{[x.pattern]:u.Type(O)}})})():a.TUnion(x)?(()=>{const C=y.Resolve(x);if(a.TUnionLiteral(C)){const _=C.anyOf.reduce((R,Z)=>({...R,[Z.const]:u.Type(O)}),{});return this.Object(_,{...S,[e.Hint]:"Record"})}else this.Throw("Record key of type union contains non-literal types")})():a.TLiteral(x)?(()=>o.IsString(x.const)||o.IsNumber(x.const)?this.Object({[x.const]:u.Type(O)},S):this.Throw("Record key of type literal is not of type string or number"))():a.TInteger(x)||a.TNumber(x)?(()=>this.Create({...S,[e.Kind]:"Record",type:"object",patternProperties:{[e.PatternNumberExact]:u.Type(O)}}))():a.TString(x)?(()=>{const C=o.IsUndefined(x.pattern)?e.PatternStringExact:x.pattern;return this.Create({...S,[e.Kind]:"Record",type:"object",patternProperties:{[C]:u.Type(O)}})})():this.Never()}Recursive(x,O={}){o.IsUndefined(O.$id)&&(O.$id=`T${W++}`);const S=x({[e.Kind]:"This",$ref:`${O.$id}`});return S.$id=O.$id,this.Create({...O,[e.Hint]:"Recursive",...S})}Ref(x,O={}){return o.IsString(x)?this.Create({...O,[e.Kind]:"Ref",$ref:x}):(o.IsUndefined(x.$id)&&this.Throw("Reference target type must specify an $id"),this.Create({...O,[e.Kind]:"Ref",$ref:x.$id}))}Required(x,O={}){return p.Map(this.Discard(u.Type(x),["$id",e.Transform]),S=>{const C=Object.getOwnPropertyNames(S.properties).reduce((_,R)=>({..._,[R]:this.Discard(S.properties[R],[e.Optional])}),{});return this.Object(C,S)},O)}Rest(x){return a.TTuple(x)&&!o.IsUndefined(x.items)?u.Rest(x.items):a.TIntersect(x)?u.Rest(x.allOf):a.TUnion(x)?u.Rest(x.anyOf):[]}String(x={}){return this.Create({...x,[e.Kind]:"String",type:"string"})}TemplateLiteral(x,O={}){const S=o.IsString(x)?k.Create(F.Parse(x)):k.Create(x);return this.Create({...O,[e.Kind]:"TemplateLiteral",type:"string",pattern:S})}Transform(x){return new H(x)}Tuple(x,O={}){const[S,C,_]=[!1,x.length,x.length],R=u.Rest(x),Z=x.length>0?{...O,[e.Kind]:"Tuple",type:"array",items:R,additionalItems:S,minItems:C,maxItems:_}:{...O,[e.Kind]:"Tuple",type:"array",minItems:C,maxItems:_};return this.Create(Z)}Uncapitalize(x,O={}){return{...h.Map(u.Type(x),"Uncapitalize"),...O}}Union(x,O={}){return a.TTemplateLiteral(x)?$.Resolve(x):(()=>{const S=x;if(S.length===0)return this.Never(O);if(S.length===1)return this.Create(u.Type(S[0],O));const C=u.Rest(S);return this.Create({...O,[e.Kind]:"Union",anyOf:C})})()}Unknown(x={}){return this.Create({...x,[e.Kind]:"Unknown"})}Unsafe(x={}){return this.Create({...x,[e.Kind]:x[e.Kind]||"Unsafe"})}Uppercase(x,O={}){return{...h.Map(u.Type(x),"Uppercase"),...O}}}e.JsonTypeBuilder=K;class A extends K{AsyncIterator(x,O={}){return this.Create({...O,[e.Kind]:"AsyncIterator",type:"AsyncIterator",items:u.Type(x)})}Awaited(x,O={}){const S=C=>C.length>0?(()=>{const[_,...R]=C;return[this.Awaited(_),...S(R)]})():C;return a.TIntersect(x)?e.Type.Intersect(S(x.allOf)):a.TUnion(x)?e.Type.Union(S(x.anyOf)):a.TPromise(x)?this.Awaited(x.item):u.Type(x,O)}BigInt(x={}){return this.Create({...x,[e.Kind]:"BigInt",type:"bigint"})}ConstructorParameters(x,O={}){return this.Tuple([...x.parameters],{...O})}Constructor(x,O,S){const[C,_]=[u.Rest(x),u.Type(O)];return this.Create({...S,[e.Kind]:"Constructor",type:"Constructor",parameters:C,returns:_})}Date(x={}){return this.Create({...x,[e.Kind]:"Date",type:"Date"})}Function(x,O,S){const[C,_]=[u.Rest(x),u.Type(O)];return this.Create({...S,[e.Kind]:"Function",type:"Function",parameters:C,returns:_})}InstanceType(x,O={}){return u.Type(x.returns,O)}Iterator(x,O={}){return this.Create({...O,[e.Kind]:"Iterator",type:"Iterator",items:u.Type(x)})}Parameters(x,O={}){return this.Tuple(x.parameters,{...O})}Promise(x,O={}){return this.Create({...O,[e.Kind]:"Promise",type:"Promise",item:u.Type(x)})}RegExp(x,O={}){const S=o.IsString(x)?x:x.source;return this.Create({...O,[e.Kind]:"String",type:"string",pattern:S})}RegEx(x,O={}){return this.RegExp(x,O)}ReturnType(x,O={}){return u.Type(x.returns,O)}Symbol(x){return this.Create({...x,[e.Kind]:"Symbol",type:"symbol"})}Undefined(x={}){return this.Create({...x,[e.Kind]:"Undefined",type:"undefined"})}Uint8Array(x={}){return this.Create({...x,[e.Kind]:"Uint8Array",type:"Uint8Array"})}Void(x={}){return this.Create({...x,[e.Kind]:"Void",type:"void"})}}e.JavaScriptTypeBuilder=A,e.JsonType=new K,e.Type=new A})(B);const Gme=B.Type.Object({src:B.Type.String(),path:B.Type.Optional(B.Type.String()),volume:B.Type.Optional(B.Type.Number()),rate:B.Type.Optional(B.Type.Number()),html5:B.Type.Optional(B.Type.Boolean()),fadeInTime:B.Type.Optional(B.Type.Number()),fadeInDelay:B.Type.Optional(B.Type.Number()),fadeOutTime:B.Type.Optional(B.Type.Number()),loop:B.Type.Optional(B.Type.Boolean())}),Jme=B.Type.Record(B.Type.String(),Gme),Qme=B.Type.Object({volume:B.Type.Optional(B.Type.Number()),defaultMusic:B.Type.Optional(B.Type.String()),musicFadeInTime:B.Type.Optional(B.Type.Number()),musicFadeOutTime:B.Type.Optional(B.Type.Number()),musicFadeInDelay:B.Type.Optional(B.Type.Number())}),Yme=B.Type.Record(B.Type.String(),B.Type.String()),R7=B.Type.Object({files:Jme,audioTriggers:Yme,options:Qme}),B7={files:{},audioTriggers:{},options:{volume:1,musicFadeInTime:.5,musicFadeInDelay:.5,musicFadeOutTime:.5}},F7=B.Type.Object({backgrounds:B.Type.Object({width:B.Type.Number(),height:B.Type.Number()}),dialogBottomPadding:B.Type.Union([B.Type.Number(),B.Type.String()]),minTextWidth:B.Type.Optional(B.Type.Number()),verticalLayoutThreshold:B.Type.Number(),defaultFontSize:B.Type.Optional(B.Type.Number()),portraits:B.Type.Object({width:B.Type.Number(),height:B.Type.Number(),offset:B.Type.Optional(B.Type.Object({landscape:B.Type.Optional(B.Type.Object({right:B.Type.Number(),bottom:B.Type.Number()})),portrait:B.Type.Optional(B.Type.Object({right:B.Type.Number(),bottom:B.Type.Number()}))}))})}),Xme={backgrounds:{width:880,height:720},dialogBottomPadding:70,verticalLayoutThreshold:600,defaultFontSize:16,portraits:{width:100,height:100}},r0=B.Type.Object({name:B.Type.String(),description:B.Type.Optional(B.Type.String())}),Zme=B.Type.Intersect([r0,B.Type.Object({type:B.Type.Literal("number"),defaultValue:B.Type.Number(),step:B.Type.Number(),minValue:B.Type.Number(),maxValue:B.Type.Number()})]),eve=B.Type.Intersect([r0,B.Type.Object({type:B.Type.Literal("integer"),defaultValue:B.Type.Number(),step:B.Type.Number(),minValue:B.Type.Number(),maxValue:B.Type.Number()})]),tve=B.Type.Intersect([r0,B.Type.Object({type:B.Type.Literal("boolean"),defaultValue:B.Type.Boolean()})]),nve=B.Type.Intersect([r0,B.Type.Object({type:B.Type.Literal("string"),defaultValue:B.Type.String()})]),rve=B.Type.Union([Zme,eve,tve,nve]);function ove(e){return e.type==="number"}function V7(e){return e.type==="integer"}function ive(e){return e.type==="boolean"}function ave(e){return e.type==="string"}const z7=B.Type.Object({customSettings:B.Type.Optional(B.Type.Record(B.Type.String(),rve))}),o0="###_--_~=:;_JUMP",g_="###_--_~=:;_RETURN",sve="###_--_~=:;_OK",i0="###_--_~=:;_STOP";function lve(e){return e===o0||e===g_||e===sve||e===i0}const cve="3.6.0",uve=new Date("2023-10-28T17:31:23.549Z"),fve=400,a0=20,y_="@empty",q7={background:y_},U7=B.Type.Optional(B.Type.Object({animateText:B.Type.Optional(B.Type.Boolean()),textSpeed:B.Type.Optional(B.Type.Number()),timeBetweenLines:B.Type.Optional(B.Type.Number()),overlayMode:B.Type.Optional(B.Type.Boolean()),rightOffset:B.Type.Optional(B.Type.Number()),bottomOffset:B.Type.Optional(B.Type.Number()),width:B.Type.Optional(B.Type.Number()),height:B.Type.Optional(B.Type.Number()),hideDuringTransition:B.Type.Optional(B.Type.Boolean()),showAfterScriptEnd:B.Type.Optional(B.Type.Boolean())})),H7=B.Type.Object({engineSplashScreen:B.Type.Optional(B.Type.Object({skip:B.Type.Optional(B.Type.Boolean()),fadeDuration:B.Type.Optional(B.Type.Number()),timeBeforeFadeout:B.Type.Optional(B.Type.Number()),overrideText:B.Type.Optional(B.Type.String()),overrideLogo:B.Type.Optional(B.Type.String())})),gameSplashScreen:B.Type.Optional(B.Type.Object({startButtonText:B.Type.Optional(B.Type.String())}))}),W7=B.Type.Object({timeOnScreen:B.Type.Number(),alsoPrintInDialogue:B.Type.Optional(B.Type.Boolean())}),dve=B.Type.Object({name:B.Type.String(),icon:B.Type.String(),startingValue:B.Type.Number(),maxValue:B.Type.Optional(B.Type.Number()),minValue:B.Type.Optional(B.Type.Number())}),K7=B.Type.Record(B.Type.String(),dve),G7=B.Type.Record(B.Type.String(),B.Type.Object({onlyInteractOutsideOfScripts:B.Type.Optional(B.Type.Boolean())})),hve=B.Type.Object({delay:B.Type.Optional(B.Type.Number()),duration:B.Type.Optional(B.Type.Number())}),J7=B.Type.Record(B.Type.String(),hve),pve=B.Type.Object({text:B.Type.String(),cssClass:B.Type.Optional(B.Type.String())}),Q7=B.Type.Record(B.Type.String(),pve),Y7=B.Type.Object({showScriptFinishedMessage:B.Type.Optional(B.Type.Boolean())}),X7=B.Type.Object({mode:B.Type.String(),slots:B.Type.Number(),runOnReload:B.Type.Optional(B.Type.String())}),Z7=B.Type.Array(B.Type.String()),mve=[],e9=B.Type.Object({baseAssetsPath:B.Type.Optional(B.Type.String()),baseDataPath:B.Type.Optional(B.Type.String()),gameTitle:B.Type.String(),saveFileName:B.Type.String(),images:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.String())),layout:F7,settings:B.Type.Optional(z7),gameFlow:B.Type.Optional(B.Type.Object({labelToJumpOnScriptEnd:B.Type.Optional(B.Type.String())})),dialogPanel:B.Type.Optional(U7),splashScreens:B.Type.Optional(H7),notifications:B.Type.Optional(W7),hudStats:K7,interactionTags:B.Type.Optional(G7),transitions:B.Type.Optional(J7),menuButtons:B.Type.Optional(Q7),debugging:B.Type.Optional(Y7),saves:B.Type.Optional(X7)}),b_={baseAssetsPath:"",baseDataPath:"",gameTitle:"Narrat Game",saveFileName:"narrat save",images:{},layout:Xme,settings:{},gameFlow:{},dialogPanel:{overlayMode:!0,rightOffset:100,bottomOffset:50,width:475,height:680,textSpeed:a0,animateText:!0,timeBetweenLines:100,hideDuringTransition:!1,showAfterScriptEnd:!1},splashScreens:{},notifications:{timeOnScreen:2.5,alsoPrintInDialogue:!1},hudStats:{},interactionTags:{default:{onlyInteractOutsideOfScripts:!0}},transitions:{},menuButtons:{},debugging:{showScriptFinishedMessage:!1},saves:{mode:"manual",slots:10}},vve=B.Type.Object({name:B.Type.String(),description:B.Type.String(),icon:B.Type.String(),onUse:B.Type.Optional(B.Type.Object({action:B.Type.String(),label:B.Type.String()})),tag:B.Type.Optional(B.Type.String()),category:B.Type.Optional(B.Type.String()),showIfEmpty:B.Type.Optional(B.Type.Boolean())}),t9=B.Type.Object({id:B.Type.String(),title:B.Type.String()}),n9=B.Type.Record(B.Type.String(),vve);B.Type.Object({categories:B.Type.Array(t9),items:n9});const r9=B.Type.Object({categories:B.Type.Optional(B.Type.Array(t9)),items:B.Type.Optional(n9)}),o9={categories:[{id:"default",title:"Items"}],items:{}},gve=B.Type.Object({description:B.Type.String(),succeededDescription:B.Type.Optional(B.Type.String()),failedDescription:B.Type.Optional(B.Type.String()),hidden:B.Type.Optional(B.Type.Boolean())}),yve=B.Type.Object({title:B.Type.String(),description:B.Type.String(),succeededDescription:B.Type.Optional(B.Type.String()),failedDescription:B.Type.Optional(B.Type.String()),endings:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.Object({success:B.Type.Boolean(),description:B.Type.String()}))),objectives:B.Type.Record(B.Type.String(),gve),category:B.Type.Optional(B.Type.String())}),bve=B.Type.Object({id:B.Type.String(),title:B.Type.String()}),wve=B.Type.Record(B.Type.String(),yve),i9=B.Type.Object({quests:wve,categories:B.Type.Array(bve)}),a9={quests:{},categories:[{id:"default",title:"Quests"}]},s9=B.Type.Object({enabled:B.Type.Boolean(),background:B.Type.Optional(B.Type.String()),text:B.Type.Optional(B.Type.String()),cssClass:B.Type.Optional(B.Type.String()),position:B.Type.Object({left:B.Type.Number(),top:B.Type.Number(),width:B.Type.Optional(B.Type.Number()),height:B.Type.Optional(B.Type.Number())}),anchor:B.Type.Optional(B.Type.Object({x:B.Type.Number(),y:B.Type.Number()})),action:B.Type.Optional(B.Type.String()),actionType:B.Type.Optional(B.Type.String()),scriptClickable:B.Type.Optional(B.Type.Boolean()),tag:B.Type.Optional(B.Type.String())}),kve=B.Type.Record(B.Type.String(),s9),l9=B.Type.Object({buttons:kve,clickableDuringScriptsByDefault:B.Type.Optional(B.Type.Boolean())}),c9={buttons:{},clickableDuringScriptsByDefault:!1},xve=B.Type.Intersect([s9,B.Type.Object({id:B.Type.String()})]),_ve=B.Type.Object({muted:B.Type.Optional(B.Type.Boolean()),loop:B.Type.Optional(B.Type.Boolean())}),jve=B.Type.Object({background:B.Type.String(),video:B.Type.Optional(_ve),buttons:B.Type.Optional(B.Type.Array(B.Type.Union([B.Type.String(),xve])))}),u9=B.Type.Record(B.Type.String(),jve);B.Type.Object({screens:u9});const f9=B.Type.Object({screens:B.Type.Optional(u9)}),d9={screens:{}},Sve=B.Type.Object({name:B.Type.String(),description:B.Type.String(),startingLevel:B.Type.Number(),hidden:B.Type.Optional(B.Type.Boolean()),icon:B.Type.String()}),h9=B.Type.Record(B.Type.String(),Sve),p9=B.Type.Object({xpPerLevel:B.Type.Number(),notifyLevelUp:B.Type.Boolean()});B.Type.Object({skills:h9,skillOptions:p9});const m9=B.Type.Object({skills:B.Type.Optional(h9),skillOptions:B.Type.Optional(p9)}),v9={skills:{},skillOptions:{xpPerLevel:10,notifyLevelUp:!0}},Cve=B.Type.Object({portraitCssClass:B.Type.Optional(B.Type.String()),color:B.Type.Optional(B.Type.String()),boxCss:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.Any())),nameCss:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.Any())),textCss:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.Any()))}),$ve=B.Type.Object({video:B.Type.String(),autoplay:B.Type.Optional(B.Type.Boolean()),loop:B.Type.Optional(B.Type.Boolean()),muted:B.Type.Optional(B.Type.Boolean()),width:B.Type.Optional(B.Type.Number()),height:B.Type.Optional(B.Type.Number())}),Tve=B.Type.Object({image:B.Type.String(),width:B.Type.Optional(B.Type.Number()),height:B.Type.Optional(B.Type.Number())}),Ove=B.Type.Union([B.Type.String(),$ve,Tve]),Eve=B.Type.Object({sprites:B.Type.Optional(B.Type.Record(B.Type.String(),Ove)),name:B.Type.String(),style:B.Type.Optional(Cve)}),g9=B.Type.Object({config:B.Type.Object({imagesPath:B.Type.String(),playerCharacter:B.Type.Optional(B.Type.String()),gameCharacter:B.Type.Optional(B.Type.String())}),characters:B.Type.Record(B.Type.String(),Eve)}),y9={config:{imagesPath:"",playerCharacter:"player",gameCharacter:"game"},characters:{}},b9=B.Type.Object({cssClass:B.Type.Optional(B.Type.String()),textCssClass:B.Type.Optional(B.Type.String()),titleCssClass:B.Type.Optional(B.Type.String())}),w9=B.Type.Object({options:B.Type.Object({delay:B.Type.Optional(B.Type.Number()),width:B.Type.Number(),keywordsPrefix:B.Type.String(),screenEdgesMinimumMargin:B.Type.Optional(B.Type.Number()),styling:B.Type.Optional(b9)}),tooltips:B.Type.Array(B.Type.Object({keywords:B.Type.Array(B.Type.String()),title:B.Type.String(),description:B.Type.String(),styling:B.Type.Optional(b9)}))}),k9={options:{delay:0,width:350,keywordsPrefix:"@@"},tooltips:[]},Ave=B.Type.Object({name:B.Type.String(),description:B.Type.String(),icon:B.Type.Optional(B.Type.String()),lockedIcon:B.Type.Optional(B.Type.String()),secret:B.Type.Optional(B.Type.Boolean()),category:B.Type.Optional(B.Type.String())}),x9=B.Type.Object({id:B.Type.String(),title:B.Type.String()}),_9=B.Type.Record(B.Type.String(),Ave);B.Type.Object({defaultAchievementIcon:B.Type.String(),categories:B.Type.Array(x9),achievements:_9,notifyNewAchievements:B.Type.Boolean(),secretAchievements:B.Type.Optional(B.Type.Object({censorDescription:B.Type.Optional(B.Type.Boolean()),censorName:B.Type.Optional(B.Type.Boolean()),hideUntilObtained:B.Type.Optional(B.Type.Boolean())}))});const j9=B.Type.Object({categories:B.Type.Optional(B.Type.Array(x9)),achievements:B.Type.Optional(_9)}),S9={categories:[{id:"default",title:"Achievements"}],achievements:{},notifyNewAchievements:!0,defaultAchievementIcon:"img/achievements/trophy.png"},Mve=B.Type.Object({diceRange:B.Type.Tuple([B.Type.Number(),B.Type.Number()]),diceCount:B.Type.Number(),difficultyText:B.Type.Array(B.Type.Tuple([B.Type.Number(),B.Type.String()])),extraPointsPerLevel:B.Type.Number(),extraDicePerLevel:B.Type.Optional(B.Type.Number()),successOnRollsBelowThreshold:B.Type.Boolean(),showDifficultyText:B.Type.Boolean(),showDifficultyNumber:B.Type.Boolean(),showDifficultyWithoutModifiers:B.Type.Boolean(),finalRollIsHighest:B.Type.Optional(B.Type.Boolean()),finalRollIsLowest:B.Type.Optional(B.Type.Boolean()),failOnRollsEqualToThreshold:B.Type.Optional(B.Type.Boolean())}),Pve=B.Type.Object({skill:B.Type.String(),difficulty:B.Type.Number(),winsNeeded:B.Type.Optional(B.Type.Number()),hideAfterRoll:B.Type.Optional(B.Type.Boolean()),repeatable:B.Type.Optional(B.Type.Boolean())}),C9=B.Type.Object({options:Mve,skillChecks:B.Type.Record(B.Type.String(),Pve)}),$9={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:{}},Nve=B.Type.Object({cssClass:B.Type.Optional(B.Type.String()),textTemplate:B.Type.Optional(B.Type.String())}),T9=B.Type.Record(B.Type.String(),Nve);B.Type.Object({choiceTextTemplate:B.Type.String(),choicePrompts:T9});const O9=B.Type.Object({choiceTextTemplate:B.Type.Optional(B.Type.String()),choicePrompts:B.Type.Optional(T9)}),E9={choicePrompts:{},choiceTextTemplate:'<span class="choice-index">%{$index}. </span> <span class="choice-text">%{$choice}</span>'},A9=B.Type.Object({delay:B.Type.Optional(B.Type.Number()),direction:B.Type.Optional(B.Type.String()),duration:B.Type.Optional(B.Type.Number()),easing:B.Type.Optional(B.Type.String()),endDelay:B.Type.Optional(B.Type.Number()),fill:B.Type.Optional(B.Type.String()),iterationStart:B.Type.Optional(B.Type.Number()),iterations:B.Type.Optional(B.Type.Number()),keyframes:B.Type.Optional(B.Type.Any())}),w_=B.Type.Array(B.Type.Any()),Ive=B.Type.Object({keyframes:B.Type.Union([B.Type.String(),w_]),options:B.Type.Optional(A9)});B.Type.Object({keyframes:w_,options:B.Type.Optional(A9)});const M9=B.Type.Object({animations:B.Type.Record(B.Type.String(),Ive),keyframes:B.Type.Record(B.Type.String(),w_)}),P9={animations:{},keyframes:{}},Uf={common:b_,screens:d9,buttons:c9,skills:v9,skillChecks:$9,scripts:[],audio:B7,tooltips:k9,achievements:S9,items:o9,quests:a9,characters:y9,choices:E9,animations:P9};var Dve=function(t){return Lve(t)&&!Rve(t)};function Lve(e){return!!e&&typeof e=="object"}function Rve(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Vve(e)}var Bve=typeof Symbol=="function"&&Symbol.for,Fve=Bve?Symbol.for("react.element"):60103;function Vve(e){return e.$$typeof===Fve}function zve(e){return Array.isArray(e)?[]:{}}function np(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Hf(zve(e),e,t):e}function qve(e,t,n){return e.concat(t).map(function(r){return np(r,n)})}function Uve(e,t){if(!t.customMerge)return Hf;var n=t.customMerge(e);return typeof n=="function"?n:Hf}function Hve(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function N9(e){return Object.keys(e).concat(Hve(e))}function I9(e,t){try{return t in e}catch{return!1}}function Wve(e,t){return I9(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Kve(e,t,n){var r={};return n.isMergeableObject(e)&&N9(e).forEach(function(o){r[o]=np(e[o],n)}),N9(t).forEach(function(o){Wve(e,o)||(I9(e,o)&&n.isMergeableObject(t[o])?r[o]=Uve(o,n)(e[o],t[o],n):r[o]=np(t[o],n))}),r}function Hf(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||qve,n.isMergeableObject=n.isMergeableObject||Dve,n.cloneUnlessOtherwiseSpecified=np;var r=Array.isArray(t),o=Array.isArray(e),i=r===o;return i?r?n.arrayMerge(e,t,n):Kve(e,t,n):np(t,n)}Hf.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,o){return Hf(r,o,n)},{})};var Gve=Hf,Jve=Gve;const uu=Z0(Jve),_o=oo("config",{state:()=>({config:Uf,configModules:{}}),actions:{async setConfig(e){this.config=e},extendConfig(e){this.config=uu(this.config,e)},generateSaveData(){return{playerCharacter:this.playerCharacter,gameCharacter:this.gameCharacter}},addConfigModule(e,t){this.configModules[e]=t},reloadConfigModule(e){const t=Object.keys(this.configModules).find(r=>this.configModules[r].id===e.id);if(!t)return;this.configModules[t]=e;const n=this.config[t];n&&(this.config[t]=uu(n,e.code))},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 D9(e){const t=Cr(),n=t.getSkillCheck(e.id);if(n&&n.happened&&(n.succeeded||!e.repeatable))return n;const r=Kme(e);return B9(qme(r,e)),r?t.passSkillCheck(e.id,e.hideAfterRoll):t.failSkillCheck(e.id,e.hideAfterRoll),t.getSkillCheck(e.id)}function Qve(e,t=[]){const n=e.options,r=e.staticOptions,o=!!n.condition;if(o)return r.success;if(!o){for(const[i,a]of r.elseifs.entries())if(t[i]===!0)return a.branch}if(!o&&r.failure)return r.failure}function L9(e){return typeof e=="object"}function R9(e){return typeof e=="string"&&e.search(/\$/)===0}function B9(e){const t={speaker:_o().gameCharacter,text:e,interactive:!1};Yn().addDialog(t)}async function k_(e){Yn().addDialog(e)}function Yve(e,t){if(t<e.length)return e[t]}/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function F9(e){return typeof e>"u"||e===null}function Xve(e){return typeof e=="object"&&e!==null}function Zve(e){return Array.isArray(e)?e:F9(e)?[]:[e]}function ege(e,t){var n,r,o,i;if(t)for(i=Object.keys(t),n=0,r=i.length;n<r;n+=1)o=i[n],e[o]=t[o];return e}function tge(e,t){var n="",r;for(r=0;r<t;r+=1)n+=e;return n}function nge(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var rge=F9,oge=Xve,ige=Zve,age=tge,sge=nge,lge=ege,po={isNothing:rge,isObject:oge,toArray:ige,repeat:age,isNegativeZero:sge,extend:lge};function V9(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+=`
174
+ (${e.id} - ${a}/${e.winsNeeded} - rolls: ${JSON.stringify(r.map(s=>s.modified))})`)}else i=L7(n,e.difficulty),zi.log(`[SKILL CHECK ${o.name}]: ${i?"✅":"❌"}`,`(${e.id}) - ${n}/${e.difficulty}`);return lu(i?"onSkillCheckSuccess":"onSkillCheckFailure"),i}function L7(e,t){const{options:n}=Cp();let r=e>=t;return n.successOnRollsBelowThreshold&&(r=e<=t),n.failOnRollsEqualToThreshold&&e===t&&(r=!1),r}var B={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Type=e.JsonType=e.JavaScriptTypeBuilder=e.JsonTypeBuilder=e.TypeBuilder=e.TypeBuilderError=e.TransformEncodeBuilder=e.TransformDecodeBuilder=e.TemplateLiteralDslParser=e.TemplateLiteralGenerator=e.TemplateLiteralGeneratorError=e.TemplateLiteralFinite=e.TemplateLiteralFiniteError=e.TemplateLiteralParser=e.TemplateLiteralParserError=e.TemplateLiteralResolver=e.TemplateLiteralPattern=e.TemplateLiteralPatternError=e.UnionResolver=e.KeyArrayResolver=e.KeyArrayResolverError=e.KeyResolver=e.ObjectMap=e.Intrinsic=e.IndexedAccessor=e.TypeClone=e.TypeExtends=e.TypeExtendsResult=e.TypeExtendsError=e.ExtendsUndefined=e.TypeGuard=e.TypeGuardUnknownTypeError=e.ValueGuard=e.FormatRegistry=e.TypeBoxError=e.TypeRegistry=e.PatternStringExact=e.PatternNumberExact=e.PatternBooleanExact=e.PatternString=e.PatternNumber=e.PatternBoolean=e.Kind=e.Hint=e.Optional=e.Readonly=e.Transform=void 0,e.Transform=Symbol.for("TypeBox.Transform"),e.Readonly=Symbol.for("TypeBox.Readonly"),e.Optional=Symbol.for("TypeBox.Optional"),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(T){const x=new Map;function O(){return new Map(x)}T.Entries=O;function S(){return x.clear()}T.Clear=S;function C(pe){return x.delete(pe)}T.Delete=C;function _(pe){return x.has(pe)}T.Has=_;function R(pe,_e){x.set(pe,_e)}T.Set=R;function Z(pe){return x.get(pe)}T.Get=Z})(t||(e.TypeRegistry=t={}));class n extends Error{constructor(x){super(x)}}e.TypeBoxError=n;var r;(function(T){const x=new Map;function O(){return new Map(x)}T.Entries=O;function S(){return x.clear()}T.Clear=S;function C(pe){return x.delete(pe)}T.Delete=C;function _(pe){return x.has(pe)}T.Has=_;function R(pe,_e){x.set(pe,_e)}T.Set=R;function Z(pe){return x.get(pe)}T.Get=Z})(r||(e.FormatRegistry=r={}));var o;(function(T){function x(_e){return Array.isArray(_e)}T.IsArray=x;function O(_e){return typeof _e=="bigint"}T.IsBigInt=O;function S(_e){return typeof _e=="boolean"}T.IsBoolean=S;function C(_e){return _e===null}T.IsNull=C;function _(_e){return typeof _e=="number"}T.IsNumber=_;function R(_e){return typeof _e=="object"&&_e!==null}T.IsObject=R;function Z(_e){return typeof _e=="string"}T.IsString=Z;function pe(_e){return _e===void 0}T.IsUndefined=pe})(o||(e.ValueGuard=o={}));class i extends n{}e.TypeGuardUnknownTypeError=i;var a;(function(T){function x(z){try{return new RegExp(z),!0}catch{return!1}}function O(z){if(!o.IsString(z))return!1;for(let q=0;q<z.length;q++){const X=z.charCodeAt(q);if(X>=7&&X<=13||X===27||X===127)return!1}return!0}function S(z){return R(z)||he(z)}function C(z){return o.IsUndefined(z)||o.IsBigInt(z)}function _(z){return o.IsUndefined(z)||o.IsNumber(z)}function R(z){return o.IsUndefined(z)||o.IsBoolean(z)}function Z(z){return o.IsUndefined(z)||o.IsString(z)}function pe(z){return o.IsUndefined(z)||o.IsString(z)&&O(z)&&x(z)}function _e(z){return o.IsUndefined(z)||o.IsString(z)&&O(z)}function ke(z){return o.IsUndefined(z)||he(z)}function ue(z){return Ve(z,"Any")&&Z(z.$id)}T.TAny=ue;function Ne(z){return Ve(z,"Array")&&z.type==="array"&&Z(z.$id)&&he(z.items)&&_(z.minItems)&&_(z.maxItems)&&R(z.uniqueItems)&&ke(z.contains)&&_(z.minContains)&&_(z.maxContains)}T.TArray=Ne;function oe(z){return Ve(z,"AsyncIterator")&&z.type==="AsyncIterator"&&Z(z.$id)&&he(z.items)}T.TAsyncIterator=oe;function ye(z){return Ve(z,"BigInt")&&z.type==="bigint"&&Z(z.$id)&&C(z.exclusiveMaximum)&&C(z.exclusiveMinimum)&&C(z.maximum)&&C(z.minimum)&&C(z.multipleOf)}T.TBigInt=ye;function fe(z){return Ve(z,"Boolean")&&z.type==="boolean"&&Z(z.$id)}T.TBoolean=fe;function Fe(z){return Ve(z,"Constructor")&&z.type==="Constructor"&&Z(z.$id)&&o.IsArray(z.parameters)&&z.parameters.every(q=>he(q))&&he(z.returns)}T.TConstructor=Fe;function Y(z){return Ve(z,"Date")&&z.type==="Date"&&Z(z.$id)&&_(z.exclusiveMaximumTimestamp)&&_(z.exclusiveMinimumTimestamp)&&_(z.maximumTimestamp)&&_(z.minimumTimestamp)&&_(z.multipleOfTimestamp)}T.TDate=Y;function Q(z){return Ve(z,"Function")&&z.type==="Function"&&Z(z.$id)&&o.IsArray(z.parameters)&&z.parameters.every(q=>he(q))&&he(z.returns)}T.TFunction=Q;function ve(z){return Ve(z,"Integer")&&z.type==="integer"&&Z(z.$id)&&_(z.exclusiveMaximum)&&_(z.exclusiveMinimum)&&_(z.maximum)&&_(z.minimum)&&_(z.multipleOf)}T.TInteger=ve;function Ae(z){return Ve(z,"Intersect")&&!(o.IsString(z.type)&&z.type!=="object")&&o.IsArray(z.allOf)&&z.allOf.every(q=>he(q)&&!wn(q))&&Z(z.type)&&(R(z.unevaluatedProperties)||ke(z.unevaluatedProperties))&&Z(z.$id)}T.TIntersect=Ae;function Me(z){return Ve(z,"Iterator")&&z.type==="Iterator"&&Z(z.$id)&&he(z.items)}T.TIterator=Me;function Ve(z,q){return xe(z)&&z[e.Kind]===q}T.TKindOf=Ve;function xe(z){return o.IsObject(z)&&e.Kind in z&&o.IsString(z[e.Kind])}T.TKind=xe;function Ie(z){return We(z)&&o.IsString(z.const)}T.TLiteralString=Ie;function qe(z){return We(z)&&o.IsNumber(z.const)}T.TLiteralNumber=qe;function tt(z){return We(z)&&o.IsBoolean(z.const)}T.TLiteralBoolean=tt;function We(z){return Ve(z,"Literal")&&Z(z.$id)&&(o.IsBoolean(z.const)||o.IsNumber(z.const)||o.IsString(z.const))}T.TLiteral=We;function ut(z){return Ve(z,"Never")&&o.IsObject(z.not)&&Object.getOwnPropertyNames(z.not).length===0}T.TNever=ut;function gt(z){return Ve(z,"Not")&&he(z.not)}T.TNot=gt;function Dt(z){return Ve(z,"Null")&&z.type==="null"&&Z(z.$id)}T.TNull=Dt;function jt(z){return Ve(z,"Number")&&z.type==="number"&&Z(z.$id)&&_(z.exclusiveMaximum)&&_(z.exclusiveMinimum)&&_(z.maximum)&&_(z.minimum)&&_(z.multipleOf)}T.TNumber=jt;function En(z){return Ve(z,"Object")&&z.type==="object"&&Z(z.$id)&&o.IsObject(z.properties)&&S(z.additionalProperties)&&_(z.minProperties)&&_(z.maxProperties)&&Object.entries(z.properties).every(([q,X])=>O(q)&&he(X))}T.TObject=En;function Lt(z){return Ve(z,"Promise")&&z.type==="Promise"&&Z(z.$id)&&he(z.item)}T.TPromise=Lt;function jn(z){return Ve(z,"Record")&&z.type==="object"&&Z(z.$id)&&S(z.additionalProperties)&&o.IsObject(z.patternProperties)&&(q=>{const X=Object.getOwnPropertyNames(q.patternProperties);return X.length===1&&x(X[0])&&o.IsObject(q.patternProperties)&&he(q.patternProperties[X[0]])})(z)}T.TRecord=jn;function fn(z){return o.IsObject(z)&&e.Hint in z&&z[e.Hint]==="Recursive"}T.TRecursive=fn;function Kn(z){return Ve(z,"Ref")&&Z(z.$id)&&o.IsString(z.$ref)}T.TRef=Kn;function bn(z){return Ve(z,"String")&&z.type==="string"&&Z(z.$id)&&_(z.minLength)&&_(z.maxLength)&&pe(z.pattern)&&_e(z.format)}T.TString=bn;function Hn(z){return Ve(z,"Symbol")&&z.type==="symbol"&&Z(z.$id)}T.TSymbol=Hn;function Ln(z){return Ve(z,"TemplateLiteral")&&z.type==="string"&&o.IsString(z.pattern)&&z.pattern[0]==="^"&&z.pattern[z.pattern.length-1]==="$"}T.TTemplateLiteral=Ln;function Sn(z){return Ve(z,"This")&&Z(z.$id)&&o.IsString(z.$ref)}T.TThis=Sn;function wn(z){return o.IsObject(z)&&e.Transform in z}T.TTransform=wn;function ln(z){return Ve(z,"Tuple")&&z.type==="array"&&Z(z.$id)&&o.IsNumber(z.minItems)&&o.IsNumber(z.maxItems)&&z.minItems===z.maxItems&&(o.IsUndefined(z.items)&&o.IsUndefined(z.additionalItems)&&z.minItems===0||o.IsArray(z.items)&&z.items.every(q=>he(q)))}T.TTuple=ln;function er(z){return Ve(z,"Undefined")&&z.type==="undefined"&&Z(z.$id)}T.TUndefined=er;function Gn(z){return Pe(z)&&z.anyOf.every(q=>Ie(q)||qe(q))}T.TUnionLiteral=Gn;function Pe(z){return Ve(z,"Union")&&Z(z.$id)&&o.IsObject(z)&&o.IsArray(z.anyOf)&&z.anyOf.every(q=>he(q))}T.TUnion=Pe;function dt(z){return Ve(z,"Uint8Array")&&z.type==="Uint8Array"&&Z(z.$id)&&_(z.minByteLength)&&_(z.maxByteLength)}T.TUint8Array=dt;function Ct(z){return Ve(z,"Unknown")&&Z(z.$id)}T.TUnknown=Ct;function rn(z){return Ve(z,"Unsafe")}T.TUnsafe=rn;function Oe(z){return Ve(z,"Void")&&z.type==="void"&&Z(z.$id)}T.TVoid=Oe;function lt(z){return o.IsObject(z)&&z[e.Readonly]==="Readonly"}T.TReadonly=lt;function re(z){return o.IsObject(z)&&z[e.Optional]==="Optional"}T.TOptional=re;function he(z){return o.IsObject(z)&&(ue(z)||Ne(z)||fe(z)||ye(z)||oe(z)||Fe(z)||Y(z)||Q(z)||ve(z)||Ae(z)||Me(z)||We(z)||ut(z)||gt(z)||Dt(z)||jt(z)||En(z)||Lt(z)||jn(z)||Kn(z)||bn(z)||Hn(z)||Ln(z)||Sn(z)||ln(z)||er(z)||Pe(z)||dt(z)||Ct(z)||rn(z)||Oe(z)||xe(z)&&t.Has(z[e.Kind]))}T.TSchema=he})(a||(e.TypeGuard=a={}));var s;(function(T){function x(O){return O[e.Kind]==="Intersect"?O.allOf.every(S=>x(S)):O[e.Kind]==="Union"?O.anyOf.some(S=>x(S)):O[e.Kind]==="Undefined"?!0:O[e.Kind]==="Not"?!x(O.not):!1}T.Check=x})(s||(e.ExtendsUndefined=s={}));class l extends n{}e.TypeExtendsError=l;var c;(function(T){T[T.Union=0]="Union",T[T.True=1]="True",T[T.False=2]="False"})(c||(e.TypeExtendsResult=c={}));var f;(function(T){function x(P){return P===c.False?P:c.True}function O(P){throw new l(P)}function S(P){return a.TNever(P)||a.TIntersect(P)||a.TUnion(P)||a.TUnknown(P)||a.TAny(P)}function C(P,J){return a.TNever(J)?Ve():a.TIntersect(J)?Q(P,J):a.TUnion(J)?Te(P,J):a.TUnknown(J)?ht():a.TAny(J)?_():O("StructuralRight")}function _(P,J){return c.True}function R(P,J){return a.TIntersect(J)?Q(P,J):a.TUnion(J)&&J.anyOf.some(ze=>a.TAny(ze)||a.TUnknown(ze))?c.True:a.TUnion(J)?c.Union:a.TUnknown(J)||a.TAny(J)?c.True:c.Union}function Z(P,J){return a.TUnknown(P)?c.False:a.TAny(P)?c.Union:a.TNever(P)?c.True:c.False}function pe(P,J){return a.TObject(J)&&Ln(J)?c.True:S(J)?C(P,J):a.TArray(J)?x(ct(P.items,J.items)):c.False}function _e(P,J){return S(J)?C(P,J):a.TAsyncIterator(J)?x(ct(P.items,J.items)):c.False}function ke(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TBigInt(J)?c.True:c.False}function ue(P,J){return a.TLiteral(P)&&o.IsBoolean(P.const)||a.TBoolean(P)?c.True:c.False}function Ne(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TBoolean(J)?c.True:c.False}function oe(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TConstructor(J)?P.parameters.length>J.parameters.length?c.False:P.parameters.every((ze,nt)=>x(ct(J.parameters[nt],ze))===c.True)?x(ct(P.returns,J.returns)):c.False:c.False}function ye(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TDate(J)?c.True:c.False}function fe(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TFunction(J)?P.parameters.length>J.parameters.length?c.False:P.parameters.every((ze,nt)=>x(ct(J.parameters[nt],ze))===c.True)?x(ct(P.returns,J.returns)):c.False:c.False}function Fe(P,J){return a.TLiteral(P)&&o.IsNumber(P.const)||a.TNumber(P)||a.TInteger(P)?c.True:c.False}function Y(P,J){return a.TInteger(J)||a.TNumber(J)?c.True:S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):c.False}function Q(P,J){return J.allOf.every(ze=>ct(P,ze)===c.True)?c.True:c.False}function ve(P,J){return P.allOf.some(ze=>ct(ze,J)===c.True)?c.True:c.False}function Ae(P,J){return S(J)?C(P,J):a.TIterator(J)?x(ct(P.items,J.items)):c.False}function Me(P,J){return a.TLiteral(J)&&J.const===P.const?c.True:S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TString(J)?Oe(P):a.TNumber(J)?We(P):a.TInteger(J)?Fe(P):a.TBoolean(J)?ue(P):c.False}function Ve(P,J){return c.False}function xe(P,J){return c.True}function Ie(P){let[J,ze]=[P,0];for(;a.TNot(J);)J=J.not,ze+=1;return ze%2===0?J:e.Type.Unknown()}function qe(P,J){return a.TNot(P)?ct(Ie(P),J):a.TNot(J)?ct(P,Ie(J)):O("Invalid fallthrough for Not")}function tt(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TNull(J)?c.True:c.False}function We(P,J){return a.TLiteralNumber(P)||a.TNumber(P)||a.TInteger(P)?c.True:c.False}function ut(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TInteger(J)||a.TNumber(J)?c.True:c.False}function gt(P,J){return Object.getOwnPropertyNames(P.properties).length===J}function Dt(P){return Ln(P)}function jt(P){return gt(P,0)||gt(P,1)&&"description"in P.properties&&a.TUnion(P.properties.description)&&P.properties.description.anyOf.length===2&&(a.TString(P.properties.description.anyOf[0])&&a.TUndefined(P.properties.description.anyOf[1])||a.TString(P.properties.description.anyOf[1])&&a.TUndefined(P.properties.description.anyOf[0]))}function En(P){return gt(P,0)}function Lt(P){return gt(P,0)}function jn(P){return gt(P,0)}function fn(P){return gt(P,0)}function Kn(P){return Ln(P)}function bn(P){const J=e.Type.Number();return gt(P,0)||gt(P,1)&&"length"in P.properties&&x(ct(P.properties.length,J))===c.True}function Hn(P){return gt(P,0)}function Ln(P){const J=e.Type.Number();return gt(P,0)||gt(P,1)&&"length"in P.properties&&x(ct(P.properties.length,J))===c.True}function Sn(P){const J=e.Type.Function([e.Type.Any()],e.Type.Any());return gt(P,0)||gt(P,1)&&"then"in P.properties&&x(ct(P.properties.then,J))===c.True}function wn(P,J){return ct(P,J)===c.False||a.TOptional(P)&&!a.TOptional(J)?c.False:c.True}function ln(P,J){return a.TUnknown(P)?c.False:a.TAny(P)?c.Union:a.TNever(P)||a.TLiteralString(P)&&Dt(J)||a.TLiteralNumber(P)&&En(J)||a.TLiteralBoolean(P)&&Lt(J)||a.TSymbol(P)&&jt(J)||a.TBigInt(P)&&jn(J)||a.TString(P)&&Dt(J)||a.TSymbol(P)&&jt(J)||a.TNumber(P)&&En(J)||a.TInteger(P)&&En(J)||a.TBoolean(P)&&Lt(J)||a.TUint8Array(P)&&Kn(J)||a.TDate(P)&&fn(J)||a.TConstructor(P)&&Hn(J)||a.TFunction(P)&&bn(J)?c.True:a.TRecord(P)&&a.TString(Pe(P))?(()=>J[e.Hint]==="Record"?c.True:c.False)():a.TRecord(P)&&a.TNumber(Pe(P))?(()=>gt(J,0)?c.True:c.False)():c.False}function er(P,J){return S(J)?C(P,J):a.TRecord(J)?Ct(P,J):a.TObject(J)?(()=>{for(const ze of Object.getOwnPropertyNames(J.properties))if(!(ze in P.properties)||wn(P.properties[ze],J.properties[ze])===c.False)return c.False;return c.True})():c.False}function Gn(P,J){return S(J)?C(P,J):a.TObject(J)&&Sn(J)?c.True:a.TPromise(J)?x(ct(P.item,J.item)):c.False}function Pe(P){return e.PatternNumberExact in P.patternProperties?e.Type.Number():e.PatternStringExact in P.patternProperties?e.Type.String():O("Unknown record key pattern")}function dt(P){return e.PatternNumberExact in P.patternProperties?P.patternProperties[e.PatternNumberExact]:e.PatternStringExact in P.patternProperties?P.patternProperties[e.PatternStringExact]:O("Unable to get record value schema")}function Ct(P,J){const[ze,nt]=[Pe(J),dt(J)];return a.TLiteralString(P)&&a.TNumber(ze)&&x(ct(P,nt))===c.True?c.True:a.TUint8Array(P)&&a.TNumber(ze)||a.TString(P)&&a.TNumber(ze)||a.TArray(P)&&a.TNumber(ze)?ct(P,nt):a.TObject(P)?(()=>{for(const at of Object.getOwnPropertyNames(P.properties))if(wn(nt,P.properties[at])===c.False)return c.False;return c.True})():c.False}function rn(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?ct(dt(P),dt(J)):c.False}function Oe(P,J){return a.TLiteral(P)&&o.IsString(P.const)||a.TString(P)?c.True:c.False}function lt(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TString(J)?c.True:c.False}function re(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TSymbol(J)?c.True:c.False}function he(P,J){return a.TTemplateLiteral(P)?ct($.Resolve(P),J):a.TTemplateLiteral(J)?ct(P,$.Resolve(J)):O("Invalid fallthrough for TemplateLiteral")}function z(P,J){return a.TArray(J)&&P.items!==void 0&&P.items.every(ze=>ct(ze,J.items)===c.True)}function q(P,J){return a.TNever(P)?c.True:a.TUnknown(P)?c.False:a.TAny(P)?c.Union:c.False}function X(P,J){return S(J)?C(P,J):a.TObject(J)&&Ln(J)||a.TArray(J)&&z(P,J)?c.True:a.TTuple(J)?o.IsUndefined(P.items)&&!o.IsUndefined(J.items)||!o.IsUndefined(P.items)&&o.IsUndefined(J.items)?c.False:o.IsUndefined(P.items)&&!o.IsUndefined(J.items)||P.items.every((ze,nt)=>ct(ze,J.items[nt])===c.True)?c.True:c.False:c.False}function de(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TUint8Array(J)?c.True:c.False}function je(P,J){return S(J)?C(P,J):a.TObject(J)?ln(P,J):a.TRecord(J)?Ct(P,J):a.TVoid(J)?bt(P):a.TUndefined(J)?c.True:c.False}function Te(P,J){return J.anyOf.some(ze=>ct(P,ze)===c.True)?c.True:c.False}function it(P,J){return P.anyOf.every(ze=>ct(ze,J)===c.True)?c.True:c.False}function ht(P,J){return c.True}function $t(P,J){return a.TNever(J)?Ve():a.TIntersect(J)?Q(P,J):a.TUnion(J)?Te(P,J):a.TAny(J)?_():a.TString(J)?Oe(P):a.TNumber(J)?We(P):a.TInteger(J)?Fe(P):a.TBoolean(J)?ue(P):a.TArray(J)?Z(P):a.TTuple(J)?q(P):a.TObject(J)?ln(P,J):a.TUnknown(J)?c.True:c.False}function bt(P,J){return a.TUndefined(P)||a.TUndefined(P)?c.True:c.False}function Ht(P,J){return a.TIntersect(J)?Q(P,J):a.TUnion(J)?Te(P,J):a.TUnknown(J)?ht():a.TAny(J)?_():a.TObject(J)?ln(P,J):a.TVoid(J)?c.True:c.False}function ct(P,J){return a.TTemplateLiteral(P)||a.TTemplateLiteral(J)?he(P,J):a.TNot(P)||a.TNot(J)?qe(P,J):a.TAny(P)?R(P,J):a.TArray(P)?pe(P,J):a.TBigInt(P)?ke(P,J):a.TBoolean(P)?Ne(P,J):a.TAsyncIterator(P)?_e(P,J):a.TConstructor(P)?oe(P,J):a.TDate(P)?ye(P,J):a.TFunction(P)?fe(P,J):a.TInteger(P)?Y(P,J):a.TIntersect(P)?ve(P,J):a.TIterator(P)?Ae(P,J):a.TLiteral(P)?Me(P,J):a.TNever(P)?xe():a.TNull(P)?tt(P,J):a.TNumber(P)?ut(P,J):a.TObject(P)?er(P,J):a.TRecord(P)?rn(P,J):a.TString(P)?lt(P,J):a.TSymbol(P)?re(P,J):a.TTuple(P)?X(P,J):a.TPromise(P)?Gn(P,J):a.TUint8Array(P)?de(P,J):a.TUndefined(P)?je(P,J):a.TUnion(P)?it(P,J):a.TUnknown(P)?$t(P,J):a.TVoid(P)?Ht(P,J):O(`Unknown left type operand '${P[e.Kind]}'`)}function on(P,J){return ct(P,J)}T.Extends=on})(f||(e.TypeExtends=f={}));var u;(function(T){function x(R){const Z=Object.getOwnPropertyNames(R).reduce((_e,ke)=>({..._e,[ke]:S(R[ke])}),{}),pe=Object.getOwnPropertySymbols(R).reduce((_e,ke)=>({..._e,[ke]:S(R[ke])}),{});return{...Z,...pe}}function O(R){return R.map(Z=>S(Z))}function S(R){return o.IsArray(R)?O(R):o.IsObject(R)?x(R):R}function C(R){return R.map(Z=>_(Z))}T.Rest=C;function _(R,Z={}){return{...S(R),...Z}}T.Type=_})(u||(e.TypeClone=u={}));var d;(function(T){function x(oe){return oe.map(ye=>{const{[e.Optional]:fe,...Fe}=u.Type(ye);return Fe})}function O(oe){return oe.every(ye=>a.TOptional(ye))}function S(oe){return oe.some(ye=>a.TOptional(ye))}function C(oe){return O(oe.allOf)?e.Type.Optional(e.Type.Intersect(x(oe.allOf))):oe}function _(oe){return S(oe.anyOf)?e.Type.Optional(e.Type.Union(x(oe.anyOf))):oe}function R(oe){return oe[e.Kind]==="Intersect"?C(oe):oe[e.Kind]==="Union"?_(oe):oe}function Z(oe,ye){const fe=oe.allOf.reduce((Fe,Y)=>{const Q=ue(Y,ye);return Q[e.Kind]==="Never"?Fe:[...Fe,Q]},[]);return R(e.Type.Intersect(fe))}function pe(oe,ye){const fe=oe.anyOf.map(Fe=>ue(Fe,ye));return R(e.Type.Union(fe))}function _e(oe,ye){const fe=oe.properties[ye];return o.IsUndefined(fe)?e.Type.Never():e.Type.Union([fe])}function ke(oe,ye){const fe=oe.items;if(o.IsUndefined(fe))return e.Type.Never();const Fe=fe[ye];return o.IsUndefined(Fe)?e.Type.Never():Fe}function ue(oe,ye){return oe[e.Kind]==="Intersect"?Z(oe,ye):oe[e.Kind]==="Union"?pe(oe,ye):oe[e.Kind]==="Object"?_e(oe,ye):oe[e.Kind]==="Tuple"?ke(oe,ye):e.Type.Never()}function Ne(oe,ye,fe={}){const Fe=ye.map(Y=>ue(oe,Y.toString()));return R(e.Type.Union(Fe,fe))}T.Resolve=Ne})(d||(e.IndexedAccessor=d={}));var h;(function(T){function x(ke){const[ue,Ne]=[ke.slice(0,1),ke.slice(1)];return`${ue.toLowerCase()}${Ne}`}function O(ke){const[ue,Ne]=[ke.slice(0,1),ke.slice(1)];return`${ue.toUpperCase()}${Ne}`}function S(ke){return ke.toUpperCase()}function C(ke){return ke.toLowerCase()}function _(ke,ue){const Ne=E.ParseExact(ke.pattern);if(!D.Check(Ne))return{...ke,pattern:R(ke.pattern,ue)};const fe=[...M.Generate(Ne)].map(Q=>e.Type.Literal(Q)),Fe=Z(fe,ue),Y=e.Type.Union(Fe);return e.Type.TemplateLiteral([Y])}function R(ke,ue){return typeof ke=="string"?ue==="Uncapitalize"?x(ke):ue==="Capitalize"?O(ke):ue==="Uppercase"?S(ke):ue==="Lowercase"?C(ke):ke:ke.toString()}function Z(ke,ue){if(ke.length===0)return[];const[Ne,...oe]=ke;return[_e(Ne,ue),...Z(oe,ue)]}function pe(ke,ue){return a.TTemplateLiteral(ke)?_(ke,ue):a.TUnion(ke)?e.Type.Union(Z(ke.anyOf,ue)):a.TLiteral(ke)?e.Type.Literal(R(ke.const,ue)):ke}function _e(ke,ue){return pe(ke,ue)}T.Map=_e})(h||(e.Intrinsic=h={}));var p;(function(T){function x(R,Z){return e.Type.Intersect(R.allOf.map(pe=>C(pe,Z)),{...R})}function O(R,Z){return e.Type.Union(R.anyOf.map(pe=>C(pe,Z)),{...R})}function S(R,Z){return Z(R)}function C(R,Z){return R[e.Kind]==="Intersect"?x(R,Z):R[e.Kind]==="Union"?O(R,Z):R[e.Kind]==="Object"?S(R,Z):R}function _(R,Z,pe){return{...C(u.Type(R),Z),...pe}}T.Map=_})(p||(e.ObjectMap=p={}));var m;(function(T){function x(_e){return _e[0]==="^"&&_e[_e.length-1]==="$"?_e.slice(1,_e.length-1):_e}function O(_e,ke){return _e.allOf.reduce((ue,Ne)=>[...ue,...R(Ne,ke)],[])}function S(_e,ke){const ue=_e.anyOf.map(Ne=>R(Ne,ke));return[...ue.reduce((Ne,oe)=>oe.map(ye=>ue.every(fe=>fe.includes(ye))?Ne.add(ye):Ne)[0],new Set)]}function C(_e,ke){return Object.getOwnPropertyNames(_e.properties)}function _(_e,ke){return ke.includePatterns?Object.getOwnPropertyNames(_e.patternProperties):[]}function R(_e,ke){return a.TIntersect(_e)?O(_e,ke):a.TUnion(_e)?S(_e,ke):a.TObject(_e)?C(_e):a.TRecord(_e)?_(_e,ke):[]}function Z(_e,ke){return[...new Set(R(_e,ke))]}T.ResolveKeys=Z;function pe(_e){return`^(${Z(_e,{includePatterns:!0}).map(Ne=>`(${x(Ne)})`).join("|")})$`}T.ResolvePattern=pe})(m||(e.KeyResolver=m={}));class v extends n{}e.KeyArrayResolverError=v;var g;(function(T){function x(O){return Array.isArray(O)?O:a.TUnionLiteral(O)?O.anyOf.map(S=>S.const.toString()):a.TLiteral(O)?[O.const]:a.TTemplateLiteral(O)?(()=>{const S=E.ParseExact(O.pattern);if(!D.Check(S))throw new v("Cannot resolve keys from infinite template expression");return[...M.Generate(S)]})():[]}T.Resolve=x})(g||(e.KeyArrayResolver=g={}));var y;(function(T){function*x(S){for(const C of S.anyOf)C[e.Kind]==="Union"?yield*x(C):yield C}function O(S){return e.Type.Union([...x(S)],{...S})}T.Resolve=O})(y||(e.UnionResolver=y={}));class w extends n{}e.TemplateLiteralPatternError=w;var k;(function(T){function x(_){throw new w(_)}function O(_){return _.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function S(_,R){return a.TTemplateLiteral(_)?_.pattern.slice(1,_.pattern.length-1):a.TUnion(_)?`(${_.anyOf.map(Z=>S(Z,R)).join("|")})`:a.TNumber(_)?`${R}${e.PatternNumber}`:a.TInteger(_)?`${R}${e.PatternNumber}`:a.TBigInt(_)?`${R}${e.PatternNumber}`:a.TString(_)?`${R}${e.PatternString}`:a.TLiteral(_)?`${R}${O(_.const.toString())}`:a.TBoolean(_)?`${R}${e.PatternBoolean}`:x(`Unexpected Kind '${_[e.Kind]}'`)}function C(_){return`^${_.map(R=>S(R,"")).join("")}$`}T.Create=C})(k||(e.TemplateLiteralPattern=k={}));var $;(function(T){function x(O){const S=E.ParseExact(O.pattern);if(!D.Check(S))return e.Type.String();const C=[...M.Generate(S)].map(_=>e.Type.Literal(_));return e.Type.Union(C)}T.Resolve=x})($||(e.TemplateLiteralResolver=$={}));class j extends n{}e.TemplateLiteralParserError=j;var E;(function(T){function x(oe,ye,fe){return oe[ye]===fe&&oe.charCodeAt(ye-1)!==92}function O(oe,ye){return x(oe,ye,"(")}function S(oe,ye){return x(oe,ye,")")}function C(oe,ye){return x(oe,ye,"|")}function _(oe){if(!(O(oe,0)&&S(oe,oe.length-1)))return!1;let ye=0;for(let fe=0;fe<oe.length;fe++)if(O(oe,fe)&&(ye+=1),S(oe,fe)&&(ye-=1),ye===0&&fe!==oe.length-1)return!1;return!0}function R(oe){return oe.slice(1,oe.length-1)}function Z(oe){let ye=0;for(let fe=0;fe<oe.length;fe++)if(O(oe,fe)&&(ye+=1),S(oe,fe)&&(ye-=1),C(oe,fe)&&ye===0)return!0;return!1}function pe(oe){for(let ye=0;ye<oe.length;ye++)if(O(oe,ye))return!0;return!1}function _e(oe){let[ye,fe]=[0,0];const Fe=[];for(let Q=0;Q<oe.length;Q++)if(O(oe,Q)&&(ye+=1),S(oe,Q)&&(ye-=1),C(oe,Q)&&ye===0){const ve=oe.slice(fe,Q);ve.length>0&&Fe.push(ue(ve)),fe=Q+1}const Y=oe.slice(fe);return Y.length>0&&Fe.push(ue(Y)),Fe.length===0?{type:"const",const:""}:Fe.length===1?Fe[0]:{type:"or",expr:Fe}}function ke(oe){function ye(Y,Q){if(!O(Y,Q))throw new j("TemplateLiteralParser: Index must point to open parens");let ve=0;for(let Ae=Q;Ae<Y.length;Ae++)if(O(Y,Ae)&&(ve+=1),S(Y,Ae)&&(ve-=1),ve===0)return[Q,Ae];throw new j("TemplateLiteralParser: Unclosed group parens in expression")}function fe(Y,Q){for(let ve=Q;ve<Y.length;ve++)if(O(Y,ve))return[Q,ve];return[Q,Y.length]}const Fe=[];for(let Y=0;Y<oe.length;Y++)if(O(oe,Y)){const[Q,ve]=ye(oe,Y),Ae=oe.slice(Q,ve+1);Fe.push(ue(Ae)),Y=ve}else{const[Q,ve]=fe(oe,Y),Ae=oe.slice(Q,ve);Ae.length>0&&Fe.push(ue(Ae)),Y=ve-1}return Fe.length===0?{type:"const",const:""}:Fe.length===1?Fe[0]:{type:"and",expr:Fe}}function ue(oe){return _(oe)?ue(R(oe)):Z(oe)?_e(oe):pe(oe)?ke(oe):{type:"const",const:oe}}T.Parse=ue;function Ne(oe){return ue(oe.slice(1,oe.length-1))}T.ParseExact=Ne})(E||(e.TemplateLiteralParser=E={}));class I extends n{}e.TemplateLiteralFiniteError=I;var D;(function(T){function x(R){throw new I(R)}function O(R){return R.type==="or"&&R.expr.length===2&&R.expr[0].type==="const"&&R.expr[0].const==="0"&&R.expr[1].type==="const"&&R.expr[1].const==="[1-9][0-9]*"}function S(R){return R.type==="or"&&R.expr.length===2&&R.expr[0].type==="const"&&R.expr[0].const==="true"&&R.expr[1].type==="const"&&R.expr[1].const==="false"}function C(R){return R.type==="const"&&R.const===".*"}function _(R){return S(R)?!0:O(R)||C(R)?!1:R.type==="and"?R.expr.every(Z=>_(Z)):R.type==="or"?R.expr.every(Z=>_(Z)):R.type==="const"?!0:x("Unknown expression type")}T.Check=_})(D||(e.TemplateLiteralFinite=D={}));class L extends n{}e.TemplateLiteralGeneratorError=L;var M;(function(T){function*x(R){if(R.length===1)return yield*R[0];for(const Z of R[0])for(const pe of x(R.slice(1)))yield`${Z}${pe}`}function*O(R){return yield*x(R.expr.map(Z=>[..._(Z)]))}function*S(R){for(const Z of R.expr)yield*_(Z)}function*C(R){return yield R.const}function*_(R){return R.type==="and"?yield*O(R):R.type==="or"?yield*S(R):R.type==="const"?yield*C(R):(()=>{throw new L("Unknown expression")})()}T.Generate=_})(M||(e.TemplateLiteralGenerator=M={}));var F;(function(T){function*x(_){const R=_.trim().replace(/"|'/g,"");return R==="boolean"?yield e.Type.Boolean():R==="number"?yield e.Type.Number():R==="bigint"?yield e.Type.BigInt():R==="string"?yield e.Type.String():yield(()=>{const Z=R.split("|").map(pe=>e.Type.Literal(pe.trim()));return Z.length===0?e.Type.Never():Z.length===1?Z[0]:e.Type.Union(Z)})()}function*O(_){if(_[1]!=="{"){const R=e.Type.Literal("$"),Z=S(_.slice(1));return yield*[R,...Z]}for(let R=2;R<_.length;R++)if(_[R]==="}"){const Z=x(_.slice(2,R)),pe=S(_.slice(R+1));return yield*[...Z,...pe]}yield e.Type.Literal(_)}function*S(_){for(let R=0;R<_.length;R++)if(_[R]==="$"){const Z=e.Type.Literal(_.slice(0,R)),pe=O(_.slice(R));return yield*[Z,...pe]}yield e.Type.Literal(_)}function C(_){return[...S(_)]}T.Parse=C})(F||(e.TemplateLiteralDslParser=F={}));class H{constructor(x){this.schema=x}Decode(x){return new N(this.schema,x)}}e.TransformDecodeBuilder=H;class N{constructor(x,O){this.schema=x,this.decode=O}Encode(x){const O=u.Type(this.schema);return a.TTransform(O)?(()=>{const _={Encode:R=>O[e.Transform].Encode(x(R)),Decode:R=>this.decode(O[e.Transform].Decode(R))};return{...O,[e.Transform]:_}})():(()=>{const S={Decode:this.decode,Encode:x};return{...O,[e.Transform]:S}})()}}e.TransformEncodeBuilder=N;let W=0;class ee extends n{}e.TypeBuilderError=ee;class U{Create(x){return x}Throw(x){throw new ee(x)}Discard(x,O){return O.reduce((S,C)=>{const{[C]:_,...R}=S;return R},x)}Strict(x){return JSON.parse(JSON.stringify(x))}}e.TypeBuilder=U;class K extends U{ReadonlyOptional(x){return this.Readonly(this.Optional(x))}Readonly(x){return{...u.Type(x),[e.Readonly]:"Readonly"}}Optional(x){return{...u.Type(x),[e.Optional]:"Optional"}}Any(x={}){return this.Create({...x,[e.Kind]:"Any"})}Array(x,O={}){return this.Create({...O,[e.Kind]:"Array",type:"array",items:u.Type(x)})}Boolean(x={}){return this.Create({...x,[e.Kind]:"Boolean",type:"boolean"})}Capitalize(x,O={}){return{...h.Map(u.Type(x),"Capitalize"),...O}}Composite(x,O){const S=e.Type.Intersect(x,{}),_=m.ResolveKeys(S,{includePatterns:!1}).reduce((R,Z)=>({...R,[Z]:e.Type.Index(S,[Z])}),{});return e.Type.Object(_,O)}Enum(x,O={}){const S=Object.getOwnPropertyNames(x).filter(R=>isNaN(R)).map(R=>x[R]),_=[...new Set(S)].map(R=>e.Type.Literal(R));return this.Union(_,{...O,[e.Hint]:"Enum"})}Extends(x,O,S,C,_={}){switch(f.Extends(x,O)){case c.Union:return this.Union([u.Type(S,_),u.Type(C,_)]);case c.True:return u.Type(S,_);case c.False:return u.Type(C,_)}}Exclude(x,O,S={}){return a.TTemplateLiteral(x)?this.Exclude($.Resolve(x),O,S):a.TTemplateLiteral(O)?this.Exclude(x,$.Resolve(O),S):a.TUnion(x)?(()=>{const C=x.anyOf.filter(_=>f.Extends(_,O)===c.False);return C.length===1?u.Type(C[0],S):this.Union(C,S)})():f.Extends(x,O)!==c.False?this.Never(S):u.Type(x,S)}Extract(x,O,S={}){return a.TTemplateLiteral(x)?this.Extract($.Resolve(x),O,S):a.TTemplateLiteral(O)?this.Extract(x,$.Resolve(O),S):a.TUnion(x)?(()=>{const C=x.anyOf.filter(_=>f.Extends(_,O)!==c.False);return C.length===1?u.Type(C[0],S):this.Union(C,S)})():f.Extends(x,O)!==c.False?u.Type(x,S):this.Never(S)}Index(x,O,S={}){return a.TArray(x)&&a.TNumber(O)?(()=>u.Type(x.items,S))():a.TTuple(x)&&a.TNumber(O)?(()=>{const _=(o.IsUndefined(x.items)?[]:x.items).map(R=>u.Type(R));return this.Union(_,S)})():(()=>{const C=g.Resolve(O),_=u.Type(x);return d.Resolve(_,C,S)})()}Integer(x={}){return this.Create({...x,[e.Kind]:"Integer",type:"integer"})}Intersect(x,O={}){if(x.length===0)return e.Type.Never();if(x.length===1)return u.Type(x[0],O);x.some(R=>a.TTransform(R))&&this.Throw("Cannot intersect transform types");const S=x.every(R=>a.TObject(R)),C=u.Rest(x),_=a.TSchema(O.unevaluatedProperties)?{unevaluatedProperties:u.Type(O.unevaluatedProperties)}:{};return O.unevaluatedProperties===!1||a.TSchema(O.unevaluatedProperties)||S?this.Create({...O,..._,[e.Kind]:"Intersect",type:"object",allOf:C}):this.Create({...O,..._,[e.Kind]:"Intersect",allOf:C})}KeyOf(x,O={}){return a.TRecord(x)?(()=>{const S=Object.getOwnPropertyNames(x.patternProperties)[0];return S===e.PatternNumberExact?this.Number(O):S===e.PatternStringExact?this.String(O):this.Throw("Unable to resolve key type from Record key pattern")})():a.TTuple(x)?(()=>{const C=(o.IsUndefined(x.items)?[]:x.items).map((_,R)=>e.Type.Literal(R.toString()));return this.Union(C,O)})():a.TArray(x)?(()=>this.Number(O))():(()=>{const S=m.ResolveKeys(x,{includePatterns:!1});if(S.length===0)return this.Never(O);const C=S.map(_=>this.Literal(_));return this.Union(C,O)})()}Literal(x,O={}){return this.Create({...O,[e.Kind]:"Literal",const:x,type:typeof x})}Lowercase(x,O={}){return{...h.Map(u.Type(x),"Lowercase"),...O}}Never(x={}){return this.Create({...x,[e.Kind]:"Never",not:{}})}Not(x,O){return this.Create({...O,[e.Kind]:"Not",not:u.Type(x)})}Null(x={}){return this.Create({...x,[e.Kind]:"Null",type:"null"})}Number(x={}){return this.Create({...x,[e.Kind]:"Number",type:"number"})}Object(x,O={}){const S=Object.getOwnPropertyNames(x),C=S.filter(pe=>a.TOptional(x[pe])),_=S.filter(pe=>!C.includes(pe)),R=a.TSchema(O.additionalProperties)?{additionalProperties:u.Type(O.additionalProperties)}:{},Z=S.reduce((pe,_e)=>({...pe,[_e]:u.Type(x[_e])}),{});return _.length>0?this.Create({...O,...R,[e.Kind]:"Object",type:"object",properties:Z,required:_}):this.Create({...O,...R,[e.Kind]:"Object",type:"object",properties:Z})}Omit(x,O,S={}){const C=g.Resolve(O);return p.Map(this.Discard(u.Type(x),["$id",e.Transform]),_=>{o.IsArray(_.required)&&(_.required=_.required.filter(R=>!C.includes(R)),_.required.length===0&&delete _.required);for(const R of Object.getOwnPropertyNames(_.properties))C.includes(R)&&delete _.properties[R];return this.Create(_)},S)}Partial(x,O={}){return p.Map(this.Discard(u.Type(x),["$id",e.Transform]),S=>{const C=Object.getOwnPropertyNames(S.properties).reduce((_,R)=>({..._,[R]:this.Optional(S.properties[R])}),{});return this.Object(C,this.Discard(S,["required"]))},O)}Pick(x,O,S={}){const C=g.Resolve(O);return p.Map(this.Discard(u.Type(x),["$id",e.Transform]),_=>{o.IsArray(_.required)&&(_.required=_.required.filter(R=>C.includes(R)),_.required.length===0&&delete _.required);for(const R of Object.getOwnPropertyNames(_.properties))C.includes(R)||delete _.properties[R];return this.Create(_)},S)}Record(x,O,S={}){return a.TTemplateLiteral(x)?(()=>{const C=E.ParseExact(x.pattern);return D.Check(C)?this.Object([...M.Generate(C)].reduce((_,R)=>({..._,[R]:u.Type(O)}),{}),S):this.Create({...S,[e.Kind]:"Record",type:"object",patternProperties:{[x.pattern]:u.Type(O)}})})():a.TUnion(x)?(()=>{const C=y.Resolve(x);if(a.TUnionLiteral(C)){const _=C.anyOf.reduce((R,Z)=>({...R,[Z.const]:u.Type(O)}),{});return this.Object(_,{...S,[e.Hint]:"Record"})}else this.Throw("Record key of type union contains non-literal types")})():a.TLiteral(x)?(()=>o.IsString(x.const)||o.IsNumber(x.const)?this.Object({[x.const]:u.Type(O)},S):this.Throw("Record key of type literal is not of type string or number"))():a.TInteger(x)||a.TNumber(x)?(()=>this.Create({...S,[e.Kind]:"Record",type:"object",patternProperties:{[e.PatternNumberExact]:u.Type(O)}}))():a.TString(x)?(()=>{const C=o.IsUndefined(x.pattern)?e.PatternStringExact:x.pattern;return this.Create({...S,[e.Kind]:"Record",type:"object",patternProperties:{[C]:u.Type(O)}})})():this.Never()}Recursive(x,O={}){o.IsUndefined(O.$id)&&(O.$id=`T${W++}`);const S=x({[e.Kind]:"This",$ref:`${O.$id}`});return S.$id=O.$id,this.Create({...O,[e.Hint]:"Recursive",...S})}Ref(x,O={}){return o.IsString(x)?this.Create({...O,[e.Kind]:"Ref",$ref:x}):(o.IsUndefined(x.$id)&&this.Throw("Reference target type must specify an $id"),this.Create({...O,[e.Kind]:"Ref",$ref:x.$id}))}Required(x,O={}){return p.Map(this.Discard(u.Type(x),["$id",e.Transform]),S=>{const C=Object.getOwnPropertyNames(S.properties).reduce((_,R)=>({..._,[R]:this.Discard(S.properties[R],[e.Optional])}),{});return this.Object(C,S)},O)}Rest(x){return a.TTuple(x)&&!o.IsUndefined(x.items)?u.Rest(x.items):a.TIntersect(x)?u.Rest(x.allOf):a.TUnion(x)?u.Rest(x.anyOf):[]}String(x={}){return this.Create({...x,[e.Kind]:"String",type:"string"})}TemplateLiteral(x,O={}){const S=o.IsString(x)?k.Create(F.Parse(x)):k.Create(x);return this.Create({...O,[e.Kind]:"TemplateLiteral",type:"string",pattern:S})}Transform(x){return new H(x)}Tuple(x,O={}){const[S,C,_]=[!1,x.length,x.length],R=u.Rest(x),Z=x.length>0?{...O,[e.Kind]:"Tuple",type:"array",items:R,additionalItems:S,minItems:C,maxItems:_}:{...O,[e.Kind]:"Tuple",type:"array",minItems:C,maxItems:_};return this.Create(Z)}Uncapitalize(x,O={}){return{...h.Map(u.Type(x),"Uncapitalize"),...O}}Union(x,O={}){return a.TTemplateLiteral(x)?$.Resolve(x):(()=>{const S=x;if(S.length===0)return this.Never(O);if(S.length===1)return this.Create(u.Type(S[0],O));const C=u.Rest(S);return this.Create({...O,[e.Kind]:"Union",anyOf:C})})()}Unknown(x={}){return this.Create({...x,[e.Kind]:"Unknown"})}Unsafe(x={}){return this.Create({...x,[e.Kind]:x[e.Kind]||"Unsafe"})}Uppercase(x,O={}){return{...h.Map(u.Type(x),"Uppercase"),...O}}}e.JsonTypeBuilder=K;class A extends K{AsyncIterator(x,O={}){return this.Create({...O,[e.Kind]:"AsyncIterator",type:"AsyncIterator",items:u.Type(x)})}Awaited(x,O={}){const S=C=>C.length>0?(()=>{const[_,...R]=C;return[this.Awaited(_),...S(R)]})():C;return a.TIntersect(x)?e.Type.Intersect(S(x.allOf)):a.TUnion(x)?e.Type.Union(S(x.anyOf)):a.TPromise(x)?this.Awaited(x.item):u.Type(x,O)}BigInt(x={}){return this.Create({...x,[e.Kind]:"BigInt",type:"bigint"})}ConstructorParameters(x,O={}){return this.Tuple([...x.parameters],{...O})}Constructor(x,O,S){const[C,_]=[u.Rest(x),u.Type(O)];return this.Create({...S,[e.Kind]:"Constructor",type:"Constructor",parameters:C,returns:_})}Date(x={}){return this.Create({...x,[e.Kind]:"Date",type:"Date"})}Function(x,O,S){const[C,_]=[u.Rest(x),u.Type(O)];return this.Create({...S,[e.Kind]:"Function",type:"Function",parameters:C,returns:_})}InstanceType(x,O={}){return u.Type(x.returns,O)}Iterator(x,O={}){return this.Create({...O,[e.Kind]:"Iterator",type:"Iterator",items:u.Type(x)})}Parameters(x,O={}){return this.Tuple(x.parameters,{...O})}Promise(x,O={}){return this.Create({...O,[e.Kind]:"Promise",type:"Promise",item:u.Type(x)})}RegExp(x,O={}){const S=o.IsString(x)?x:x.source;return this.Create({...O,[e.Kind]:"String",type:"string",pattern:S})}RegEx(x,O={}){return this.RegExp(x,O)}ReturnType(x,O={}){return u.Type(x.returns,O)}Symbol(x){return this.Create({...x,[e.Kind]:"Symbol",type:"symbol"})}Undefined(x={}){return this.Create({...x,[e.Kind]:"Undefined",type:"undefined"})}Uint8Array(x={}){return this.Create({...x,[e.Kind]:"Uint8Array",type:"Uint8Array"})}Void(x={}){return this.Create({...x,[e.Kind]:"Void",type:"void"})}}e.JavaScriptTypeBuilder=A,e.JsonType=new K,e.Type=new A})(B);const Gme=B.Type.Object({src:B.Type.String(),path:B.Type.Optional(B.Type.String()),volume:B.Type.Optional(B.Type.Number()),rate:B.Type.Optional(B.Type.Number()),html5:B.Type.Optional(B.Type.Boolean()),fadeInTime:B.Type.Optional(B.Type.Number()),fadeInDelay:B.Type.Optional(B.Type.Number()),fadeOutTime:B.Type.Optional(B.Type.Number()),loop:B.Type.Optional(B.Type.Boolean())}),Jme=B.Type.Record(B.Type.String(),Gme),Qme=B.Type.Object({volume:B.Type.Optional(B.Type.Number()),defaultMusic:B.Type.Optional(B.Type.String()),musicFadeInTime:B.Type.Optional(B.Type.Number()),musicFadeOutTime:B.Type.Optional(B.Type.Number()),musicFadeInDelay:B.Type.Optional(B.Type.Number())}),Yme=B.Type.Record(B.Type.String(),B.Type.String()),R7=B.Type.Object({files:Jme,audioTriggers:Yme,options:Qme}),B7={files:{},audioTriggers:{},options:{volume:1,musicFadeInTime:.5,musicFadeInDelay:.5,musicFadeOutTime:.5}},F7=B.Type.Object({backgrounds:B.Type.Object({width:B.Type.Number(),height:B.Type.Number()}),dialogBottomPadding:B.Type.Union([B.Type.Number(),B.Type.String()]),minTextWidth:B.Type.Optional(B.Type.Number()),verticalLayoutThreshold:B.Type.Number(),defaultFontSize:B.Type.Optional(B.Type.Number()),portraits:B.Type.Object({width:B.Type.Number(),height:B.Type.Number(),offset:B.Type.Optional(B.Type.Object({landscape:B.Type.Optional(B.Type.Object({right:B.Type.Number(),bottom:B.Type.Number()})),portrait:B.Type.Optional(B.Type.Object({right:B.Type.Number(),bottom:B.Type.Number()}))}))})}),Xme={backgrounds:{width:880,height:720},dialogBottomPadding:70,verticalLayoutThreshold:600,defaultFontSize:16,portraits:{width:100,height:100}},r0=B.Type.Object({name:B.Type.String(),description:B.Type.Optional(B.Type.String())}),Zme=B.Type.Intersect([r0,B.Type.Object({type:B.Type.Literal("number"),defaultValue:B.Type.Number(),step:B.Type.Number(),minValue:B.Type.Number(),maxValue:B.Type.Number()})]),eve=B.Type.Intersect([r0,B.Type.Object({type:B.Type.Literal("integer"),defaultValue:B.Type.Number(),step:B.Type.Number(),minValue:B.Type.Number(),maxValue:B.Type.Number()})]),tve=B.Type.Intersect([r0,B.Type.Object({type:B.Type.Literal("boolean"),defaultValue:B.Type.Boolean()})]),nve=B.Type.Intersect([r0,B.Type.Object({type:B.Type.Literal("string"),defaultValue:B.Type.String()})]),rve=B.Type.Union([Zme,eve,tve,nve]);function ove(e){return e.type==="number"}function V7(e){return e.type==="integer"}function ive(e){return e.type==="boolean"}function ave(e){return e.type==="string"}const z7=B.Type.Object({customSettings:B.Type.Optional(B.Type.Record(B.Type.String(),rve))}),o0="###_--_~=:;_JUMP",g_="###_--_~=:;_RETURN",sve="###_--_~=:;_OK",i0="###_--_~=:;_STOP";function lve(e){return e===o0||e===g_||e===sve||e===i0}const cve="3.6.1",uve=new Date("2023-11-07T09:11:33.221Z"),fve=400,a0=20,y_="@empty",q7={background:y_},U7=B.Type.Optional(B.Type.Object({animateText:B.Type.Optional(B.Type.Boolean()),textSpeed:B.Type.Optional(B.Type.Number()),timeBetweenLines:B.Type.Optional(B.Type.Number()),overlayMode:B.Type.Optional(B.Type.Boolean()),rightOffset:B.Type.Optional(B.Type.Number()),bottomOffset:B.Type.Optional(B.Type.Number()),width:B.Type.Optional(B.Type.Number()),height:B.Type.Optional(B.Type.Number()),hideDuringTransition:B.Type.Optional(B.Type.Boolean()),showAfterScriptEnd:B.Type.Optional(B.Type.Boolean())})),H7=B.Type.Object({engineSplashScreen:B.Type.Optional(B.Type.Object({skip:B.Type.Optional(B.Type.Boolean()),fadeDuration:B.Type.Optional(B.Type.Number()),timeBeforeFadeout:B.Type.Optional(B.Type.Number()),overrideText:B.Type.Optional(B.Type.String()),overrideLogo:B.Type.Optional(B.Type.String())})),gameSplashScreen:B.Type.Optional(B.Type.Object({startButtonText:B.Type.Optional(B.Type.String())}))}),W7=B.Type.Object({timeOnScreen:B.Type.Number(),alsoPrintInDialogue:B.Type.Optional(B.Type.Boolean())}),dve=B.Type.Object({name:B.Type.String(),icon:B.Type.String(),startingValue:B.Type.Number(),maxValue:B.Type.Optional(B.Type.Number()),minValue:B.Type.Optional(B.Type.Number())}),K7=B.Type.Record(B.Type.String(),dve),G7=B.Type.Record(B.Type.String(),B.Type.Object({onlyInteractOutsideOfScripts:B.Type.Optional(B.Type.Boolean())})),hve=B.Type.Object({delay:B.Type.Optional(B.Type.Number()),duration:B.Type.Optional(B.Type.Number())}),J7=B.Type.Record(B.Type.String(),hve),pve=B.Type.Object({text:B.Type.String(),cssClass:B.Type.Optional(B.Type.String())}),Q7=B.Type.Record(B.Type.String(),pve),Y7=B.Type.Object({showScriptFinishedMessage:B.Type.Optional(B.Type.Boolean())}),X7=B.Type.Object({mode:B.Type.String(),slots:B.Type.Number(),runOnReload:B.Type.Optional(B.Type.String())}),Z7=B.Type.Array(B.Type.String()),mve=[],e9=B.Type.Object({baseAssetsPath:B.Type.Optional(B.Type.String()),baseDataPath:B.Type.Optional(B.Type.String()),gameTitle:B.Type.String(),saveFileName:B.Type.String(),images:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.String())),layout:F7,settings:B.Type.Optional(z7),gameFlow:B.Type.Optional(B.Type.Object({labelToJumpOnScriptEnd:B.Type.Optional(B.Type.String())})),dialogPanel:B.Type.Optional(U7),splashScreens:B.Type.Optional(H7),notifications:B.Type.Optional(W7),hudStats:K7,interactionTags:B.Type.Optional(G7),transitions:B.Type.Optional(J7),menuButtons:B.Type.Optional(Q7),debugging:B.Type.Optional(Y7),saves:B.Type.Optional(X7)}),b_={baseAssetsPath:"",baseDataPath:"",gameTitle:"Narrat Game",saveFileName:"narrat save",images:{},layout:Xme,settings:{},gameFlow:{},dialogPanel:{overlayMode:!0,rightOffset:100,bottomOffset:50,width:475,height:680,textSpeed:a0,animateText:!0,timeBetweenLines:100,hideDuringTransition:!1,showAfterScriptEnd:!1},splashScreens:{},notifications:{timeOnScreen:2.5,alsoPrintInDialogue:!1},hudStats:{},interactionTags:{default:{onlyInteractOutsideOfScripts:!0}},transitions:{},menuButtons:{},debugging:{showScriptFinishedMessage:!1},saves:{mode:"manual",slots:10}},vve=B.Type.Object({name:B.Type.String(),description:B.Type.String(),icon:B.Type.String(),onUse:B.Type.Optional(B.Type.Object({action:B.Type.String(),label:B.Type.String()})),tag:B.Type.Optional(B.Type.String()),category:B.Type.Optional(B.Type.String()),showIfEmpty:B.Type.Optional(B.Type.Boolean())}),t9=B.Type.Object({id:B.Type.String(),title:B.Type.String()}),n9=B.Type.Record(B.Type.String(),vve);B.Type.Object({categories:B.Type.Array(t9),items:n9});const r9=B.Type.Object({categories:B.Type.Optional(B.Type.Array(t9)),items:B.Type.Optional(n9)}),o9={categories:[{id:"default",title:"Items"}],items:{}},gve=B.Type.Object({description:B.Type.String(),succeededDescription:B.Type.Optional(B.Type.String()),failedDescription:B.Type.Optional(B.Type.String()),hidden:B.Type.Optional(B.Type.Boolean())}),yve=B.Type.Object({title:B.Type.String(),description:B.Type.String(),succeededDescription:B.Type.Optional(B.Type.String()),failedDescription:B.Type.Optional(B.Type.String()),endings:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.Object({success:B.Type.Boolean(),description:B.Type.String()}))),objectives:B.Type.Record(B.Type.String(),gve),category:B.Type.Optional(B.Type.String())}),bve=B.Type.Object({id:B.Type.String(),title:B.Type.String()}),wve=B.Type.Record(B.Type.String(),yve),i9=B.Type.Object({quests:wve,categories:B.Type.Array(bve)}),a9={quests:{},categories:[{id:"default",title:"Quests"}]},s9=B.Type.Object({enabled:B.Type.Boolean(),background:B.Type.Optional(B.Type.String()),text:B.Type.Optional(B.Type.String()),cssClass:B.Type.Optional(B.Type.String()),position:B.Type.Object({left:B.Type.Number(),top:B.Type.Number(),width:B.Type.Optional(B.Type.Number()),height:B.Type.Optional(B.Type.Number())}),anchor:B.Type.Optional(B.Type.Object({x:B.Type.Number(),y:B.Type.Number()})),action:B.Type.Optional(B.Type.String()),actionType:B.Type.Optional(B.Type.String()),scriptClickable:B.Type.Optional(B.Type.Boolean()),tag:B.Type.Optional(B.Type.String())}),kve=B.Type.Record(B.Type.String(),s9),l9=B.Type.Object({buttons:kve,clickableDuringScriptsByDefault:B.Type.Optional(B.Type.Boolean())}),c9={buttons:{},clickableDuringScriptsByDefault:!1},xve=B.Type.Intersect([s9,B.Type.Object({id:B.Type.String()})]),_ve=B.Type.Object({muted:B.Type.Optional(B.Type.Boolean()),loop:B.Type.Optional(B.Type.Boolean())}),jve=B.Type.Object({background:B.Type.String(),video:B.Type.Optional(_ve),buttons:B.Type.Optional(B.Type.Array(B.Type.Union([B.Type.String(),xve])))}),u9=B.Type.Record(B.Type.String(),jve);B.Type.Object({screens:u9});const f9=B.Type.Object({screens:B.Type.Optional(u9)}),d9={screens:{}},Sve=B.Type.Object({name:B.Type.String(),description:B.Type.String(),startingLevel:B.Type.Number(),hidden:B.Type.Optional(B.Type.Boolean()),icon:B.Type.String()}),h9=B.Type.Record(B.Type.String(),Sve),p9=B.Type.Object({xpPerLevel:B.Type.Number(),notifyLevelUp:B.Type.Boolean()});B.Type.Object({skills:h9,skillOptions:p9});const m9=B.Type.Object({skills:B.Type.Optional(h9),skillOptions:B.Type.Optional(p9)}),v9={skills:{},skillOptions:{xpPerLevel:10,notifyLevelUp:!0}},Cve=B.Type.Object({portraitCssClass:B.Type.Optional(B.Type.String()),color:B.Type.Optional(B.Type.String()),boxCss:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.Any())),nameCss:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.Any())),textCss:B.Type.Optional(B.Type.Record(B.Type.String(),B.Type.Any()))}),$ve=B.Type.Object({video:B.Type.String(),autoplay:B.Type.Optional(B.Type.Boolean()),loop:B.Type.Optional(B.Type.Boolean()),muted:B.Type.Optional(B.Type.Boolean()),width:B.Type.Optional(B.Type.Number()),height:B.Type.Optional(B.Type.Number())}),Tve=B.Type.Object({image:B.Type.String(),width:B.Type.Optional(B.Type.Number()),height:B.Type.Optional(B.Type.Number())}),Ove=B.Type.Union([B.Type.String(),$ve,Tve]),Eve=B.Type.Object({sprites:B.Type.Optional(B.Type.Record(B.Type.String(),Ove)),name:B.Type.String(),style:B.Type.Optional(Cve)}),g9=B.Type.Object({config:B.Type.Object({imagesPath:B.Type.String(),playerCharacter:B.Type.Optional(B.Type.String()),gameCharacter:B.Type.Optional(B.Type.String())}),characters:B.Type.Record(B.Type.String(),Eve)}),y9={config:{imagesPath:"",playerCharacter:"player",gameCharacter:"game"},characters:{}},b9=B.Type.Object({cssClass:B.Type.Optional(B.Type.String()),textCssClass:B.Type.Optional(B.Type.String()),titleCssClass:B.Type.Optional(B.Type.String())}),w9=B.Type.Object({options:B.Type.Object({delay:B.Type.Optional(B.Type.Number()),width:B.Type.Number(),keywordsPrefix:B.Type.String(),screenEdgesMinimumMargin:B.Type.Optional(B.Type.Number()),styling:B.Type.Optional(b9)}),tooltips:B.Type.Array(B.Type.Object({keywords:B.Type.Array(B.Type.String()),title:B.Type.String(),description:B.Type.String(),styling:B.Type.Optional(b9)}))}),k9={options:{delay:0,width:350,keywordsPrefix:"@@"},tooltips:[]},Ave=B.Type.Object({name:B.Type.String(),description:B.Type.String(),icon:B.Type.Optional(B.Type.String()),lockedIcon:B.Type.Optional(B.Type.String()),secret:B.Type.Optional(B.Type.Boolean()),category:B.Type.Optional(B.Type.String())}),x9=B.Type.Object({id:B.Type.String(),title:B.Type.String()}),_9=B.Type.Record(B.Type.String(),Ave);B.Type.Object({defaultAchievementIcon:B.Type.String(),categories:B.Type.Array(x9),achievements:_9,notifyNewAchievements:B.Type.Boolean(),secretAchievements:B.Type.Optional(B.Type.Object({censorDescription:B.Type.Optional(B.Type.Boolean()),censorName:B.Type.Optional(B.Type.Boolean()),hideUntilObtained:B.Type.Optional(B.Type.Boolean())}))});const j9=B.Type.Object({categories:B.Type.Optional(B.Type.Array(x9)),achievements:B.Type.Optional(_9)}),S9={categories:[{id:"default",title:"Achievements"}],achievements:{},notifyNewAchievements:!0,defaultAchievementIcon:"img/achievements/trophy.png"},Mve=B.Type.Object({diceRange:B.Type.Tuple([B.Type.Number(),B.Type.Number()]),diceCount:B.Type.Number(),difficultyText:B.Type.Array(B.Type.Tuple([B.Type.Number(),B.Type.String()])),extraPointsPerLevel:B.Type.Number(),extraDicePerLevel:B.Type.Optional(B.Type.Number()),successOnRollsBelowThreshold:B.Type.Boolean(),showDifficultyText:B.Type.Boolean(),showDifficultyNumber:B.Type.Boolean(),showDifficultyWithoutModifiers:B.Type.Boolean(),finalRollIsHighest:B.Type.Optional(B.Type.Boolean()),finalRollIsLowest:B.Type.Optional(B.Type.Boolean()),failOnRollsEqualToThreshold:B.Type.Optional(B.Type.Boolean())}),Pve=B.Type.Object({skill:B.Type.String(),difficulty:B.Type.Number(),winsNeeded:B.Type.Optional(B.Type.Number()),hideAfterRoll:B.Type.Optional(B.Type.Boolean()),repeatable:B.Type.Optional(B.Type.Boolean())}),C9=B.Type.Object({options:Mve,skillChecks:B.Type.Record(B.Type.String(),Pve)}),$9={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:{}},Nve=B.Type.Object({cssClass:B.Type.Optional(B.Type.String()),textTemplate:B.Type.Optional(B.Type.String())}),T9=B.Type.Record(B.Type.String(),Nve);B.Type.Object({choiceTextTemplate:B.Type.String(),choicePrompts:T9});const O9=B.Type.Object({choiceTextTemplate:B.Type.Optional(B.Type.String()),choicePrompts:B.Type.Optional(T9)}),E9={choicePrompts:{},choiceTextTemplate:'<span class="choice-index">%{$index}. </span> <span class="choice-text">%{$choice}</span>'},A9=B.Type.Object({delay:B.Type.Optional(B.Type.Number()),direction:B.Type.Optional(B.Type.String()),duration:B.Type.Optional(B.Type.Number()),easing:B.Type.Optional(B.Type.String()),endDelay:B.Type.Optional(B.Type.Number()),fill:B.Type.Optional(B.Type.String()),iterationStart:B.Type.Optional(B.Type.Number()),iterations:B.Type.Optional(B.Type.Number()),keyframes:B.Type.Optional(B.Type.Any())}),w_=B.Type.Array(B.Type.Any()),Ive=B.Type.Object({keyframes:B.Type.Union([B.Type.String(),w_]),options:B.Type.Optional(A9)});B.Type.Object({keyframes:w_,options:B.Type.Optional(A9)});const M9=B.Type.Object({animations:B.Type.Record(B.Type.String(),Ive),keyframes:B.Type.Record(B.Type.String(),w_)}),P9={animations:{},keyframes:{}},Uf={common:b_,screens:d9,buttons:c9,skills:v9,skillChecks:$9,scripts:[],audio:B7,tooltips:k9,achievements:S9,items:o9,quests:a9,characters:y9,choices:E9,animations:P9};var Dve=function(t){return Lve(t)&&!Rve(t)};function Lve(e){return!!e&&typeof e=="object"}function Rve(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Vve(e)}var Bve=typeof Symbol=="function"&&Symbol.for,Fve=Bve?Symbol.for("react.element"):60103;function Vve(e){return e.$$typeof===Fve}function zve(e){return Array.isArray(e)?[]:{}}function np(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Hf(zve(e),e,t):e}function qve(e,t,n){return e.concat(t).map(function(r){return np(r,n)})}function Uve(e,t){if(!t.customMerge)return Hf;var n=t.customMerge(e);return typeof n=="function"?n:Hf}function Hve(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function N9(e){return Object.keys(e).concat(Hve(e))}function I9(e,t){try{return t in e}catch{return!1}}function Wve(e,t){return I9(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Kve(e,t,n){var r={};return n.isMergeableObject(e)&&N9(e).forEach(function(o){r[o]=np(e[o],n)}),N9(t).forEach(function(o){Wve(e,o)||(I9(e,o)&&n.isMergeableObject(t[o])?r[o]=Uve(o,n)(e[o],t[o],n):r[o]=np(t[o],n))}),r}function Hf(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||qve,n.isMergeableObject=n.isMergeableObject||Dve,n.cloneUnlessOtherwiseSpecified=np;var r=Array.isArray(t),o=Array.isArray(e),i=r===o;return i?r?n.arrayMerge(e,t,n):Kve(e,t,n):np(t,n)}Hf.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,o){return Hf(r,o,n)},{})};var Gve=Hf,Jve=Gve;const uu=Z0(Jve),_o=oo("config",{state:()=>({config:Uf,configModules:{}}),actions:{async setConfig(e){this.config=e},extendConfig(e){this.config=uu(this.config,e)},generateSaveData(){return{playerCharacter:this.playerCharacter,gameCharacter:this.gameCharacter}},addConfigModule(e,t){this.configModules[e]=t},reloadConfigModule(e){const t=Object.keys(this.configModules).find(r=>this.configModules[r].id===e.id);if(!t)return;this.configModules[t]=e;const n=this.config[t];n&&(this.config[t]=uu(n,e.code))},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 D9(e){const t=Cr(),n=t.getSkillCheck(e.id);if(n&&n.happened&&(n.succeeded||!e.repeatable))return n;const r=Kme(e);return B9(qme(r,e)),r?t.passSkillCheck(e.id,e.hideAfterRoll):t.failSkillCheck(e.id,e.hideAfterRoll),t.getSkillCheck(e.id)}function Qve(e,t=[]){const n=e.options,r=e.staticOptions,o=!!n.condition;if(o)return r.success;if(!o){for(const[i,a]of r.elseifs.entries())if(t[i]===!0)return a.branch}if(!o&&r.failure)return r.failure}function L9(e){return typeof e=="object"}function R9(e){return typeof e=="string"&&e.search(/\$/)===0}function B9(e){const t={speaker:_o().gameCharacter,text:e,interactive:!1};Yn().addDialog(t)}async function k_(e){Yn().addDialog(e)}function Yve(e,t){if(t<e.length)return e[t]}/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function F9(e){return typeof e>"u"||e===null}function Xve(e){return typeof e=="object"&&e!==null}function Zve(e){return Array.isArray(e)?e:F9(e)?[]:[e]}function ege(e,t){var n,r,o,i;if(t)for(i=Object.keys(t),n=0,r=i.length;n<r;n+=1)o=i[n],e[o]=t[o];return e}function tge(e,t){var n="",r;for(r=0;r<t;r+=1)n+=e;return n}function nge(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var rge=F9,oge=Xve,ige=Zve,age=tge,sge=nge,lge=ege,po={isNothing:rge,isObject:oge,toArray:ige,repeat:age,isNegativeZero:sge,extend:lge};function V9(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
175
 
176
176
  `+e.mark.snippet),r+" "+n):r}function rp(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=V9(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}rp.prototype=Object.create(Error.prototype),rp.prototype.constructor=rp,rp.prototype.toString=function(t){return this.name+": "+V9(this,t)};var si=rp;function x_(e,t,n,r,o){var i="",a="",s=Math.floor(o/2)-1;return r-t>s&&(i=" ... ",t=r-s+i.length),n-r>s&&(a=" ...",n=r+s-a.length),{str:i+e.slice(t,n).replace(/\t/g,"→")+a,pos:r-t+i.length}}function __(e,t){return po.repeat(" ",t-e.length)+e}function cge(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],o=[],i,a=-1;i=n.exec(e.buffer);)o.push(i.index),r.push(i.index+i[0].length),e.position<=i.index&&a<0&&(a=r.length-2);a<0&&(a=r.length-1);var s="",l,c,f=Math.min(e.line+t.linesAfter,o.length).toString().length,u=t.maxLength-(t.indent+f+3);for(l=1;l<=t.linesBefore&&!(a-l<0);l++)c=x_(e.buffer,r[a-l],o[a-l],e.position-(r[a]-r[a-l]),u),s=po.repeat(" ",t.indent)+__((e.line-l+1).toString(),f)+" | "+c.str+`
177
177
  `+s;for(c=x_(e.buffer,r[a],o[a],e.position,u),s+=po.repeat(" ",t.indent)+__((e.line+1).toString(),f)+" | "+c.str+`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "narrat",
3
- "version": "3.6.0",
3
+ "version": "3.6.1",
4
4
  "description": "narrat narrative engine",
5
5
  "main": "dist/narrat.umd.js",
6
6
  "module": "dist/narrat.es.js",
@@ -82,13 +82,13 @@
82
82
  "@types/jsdom": "^21.1.1",
83
83
  "@types/testing-library__jest-dom": "^5.14.5",
84
84
  "@typescript-eslint/eslint-plugin": "^5.30.0",
85
- "@typescript-eslint/parser": "^5.30.0",
85
+ "@typescript-eslint/parser": "^6.9.0",
86
86
  "@vitejs/plugin-vue": "^4.2.3",
87
87
  "chai-style": "^1.0.3",
88
88
  "cross-env": "^7.0.3",
89
89
  "es6-promise": "^4.2.8",
90
90
  "eslint": "^8.18.0",
91
- "eslint-config-prettier": "^8.5.0",
91
+ "eslint-config-prettier": "^9.0.0",
92
92
  "eslint-config-standard": "^17.0.0",
93
93
  "eslint-import-resolver-typescript": "^3.1.1",
94
94
  "eslint-plugin-import": "^2.26.0",