narrat 3.6.2-beta.0 → 3.6.2-beta.2

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.
@@ -133,14 +133,14 @@ return query;
133
133
  || `,' === "boolean" || '," === null"])),M,M,M,D)).assign(F,(0,i._)(AS||(AS=me(["[","]"])),D))}}I.else(),d($),I.endIf(),I.if((0,i._)(yS||(yS=me([""," !== undefined"])),F),function(){I.assign(D,F),function(U,K){var A=U.gen,T=U.parentData,x=U.parentDataProperty;A.if((0,i._)(MS||(MS=me([""," !== undefined"])),T),function(){return A.assign((0,i._)(PS||(PS=me(["","[","]"])),T,x),K)})}($,F)})}(h,p,y):d(h)})}return w};var l=new Set(["string","number","integer","boolean","null"]);function c(h,p,m){var v,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:t.Correct,y=g===t.Correct?i.operators.EQ:i.operators.NEQ;switch(h){case"null":return(0,i._)(NS||(NS=me([""," "," null"])),p,y);case"array":v=(0,i._)(IS||(IS=me(["Array.isArray(",")"])),p);break;case"object":v=(0,i._)(DS||(DS=me([""," && typeof ",' == "object" && !Array.isArray(',")"])),p,p,p);break;case"integer":v=w((0,i._)(LS||(LS=me(["!("," % 1) && !isNaN(",")"])),p,p));break;case"number":v=w();break;default:return(0,i._)(RS||(RS=me(["typeof "," "," ",""])),p,y,h)}return g===t.Correct?v:(0,i.not)(v);function w(){var k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:i.nil;return(0,i.and)((0,i._)(BS||(BS=me(["typeof ",' == "number"'])),p),k,m?(0,i._)(FS||(FS=me(["isFinite(",")"])),p):i.nil)}}function f(h,p,m,v){if(h.length===1)return c(h[0],p,m,v);var g,y=(0,a.toHash)(h);if(y.array&&y.object){var w=(0,i._)(VS||(VS=me(["typeof ",' != "object"'])),p);g=y.null?w:(0,i._)(zS||(zS=me(["!"," || ",""])),p,w),delete y.null,delete y.array,delete y.object}else g=i.nil;for(var k in y.number&&delete y.integer,y)g=(0,i.and)(g,c(k,p,m,v));return g}e.checkDataType=c,e.checkDataTypes=f;var u={message:function(h){var p=h.schema;return"must be ".concat(p)},params:function(h){var p=h.schema,m=h.schemaValue;return typeof p=="string"?(0,i._)(qS||(qS=me(["{type: ","}"])),p):(0,i._)(US||(US=me(["{type: ","}"])),m)}};function d(h){var p=function(m){var v=m.gen,g=m.data,y=m.schema,w=(0,a.schemaRefOrVal)(m,y,"type");return{gen:v,keyword:"type",data:g,schema:y.type,schemaCode:w,schemaValue:w,parentSchema:y,params:{},it:m}}(h);(0,o.reportError)(p,u)}e.reportTypeError=d})(Vh);var yB,zh={},bB,wB,La={},fr={};function Ra(){if(bB)return fr;bB=1,Object.defineProperty(fr,"__esModule",{value:!0}),fr.validateUnion=fr.validateArray=fr.usePattern=fr.callValidateCode=fr.schemaProperties=fr.allSchemaProperties=fr.noPropertyInData=fr.propertyInData=fr.isOwnProperty=fr.hasPropFunc=fr.reportMissingProp=fr.checkMissingProp=fr.checkReportMissingProp=void 0;var e=qn(),t=Qn,n=rc(),r=Qn;function o(c){return c.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)(YS||(YS=me(["Object.prototype.hasOwnProperty"])))})}function i(c,f,u){return(0,e._)(XS||(XS=me(["",".call(",", ",")"])),o(c),f,u)}function a(c,f,u,d){var h=(0,e._)(tC||(tC=me(["",""," === undefined"])),f,(0,e.getProperty)(u));return d?(0,e.or)(h,(0,e.not)(i(c,f,u))):h}function s(c){return c?Object.keys(c).filter(function(f){return f!=="__proto__"}):[]}fr.checkReportMissingProp=function(c,f){var u=c.gen,d=c.data,h=c.it;u.if(a(u,d,f,h.opts.ownProperties),function(){c.setParams({missingProperty:(0,e._)(JS||(JS=me(["",""])),f)},!0),c.error()})},fr.checkMissingProp=function(c,f,u){var d=c.gen,h=c.data,p=c.it.opts;return e.or.apply(void 0,Zt(f.map(function(m){return(0,e.and)(a(d,h,m,p.ownProperties),(0,e._)(QS||(QS=me([""," = ",""])),u,m))})))},fr.reportMissingProp=function(c,f){c.setParams({missingProperty:f},!0),c.error()},fr.hasPropFunc=o,fr.isOwnProperty=i,fr.propertyInData=function(c,f,u,d){var h=(0,e._)(ZS||(ZS=me(["",""," !== undefined"])),f,(0,e.getProperty)(u));return d?(0,e._)(eC||(eC=me([""," && ",""])),h,i(c,f,u)):h},fr.noPropertyInData=a,fr.allSchemaProperties=s,fr.schemaProperties=function(c,f){return s(f).filter(function(u){return!(0,t.alwaysValidSchema)(c,f[u])})},fr.callValidateCode=function(c,f,u,d){var h=c.schemaCode,p=c.data,m=c.it,v=m.gen,g=m.topSchemaRef,y=m.schemaPath,w=m.errorPath,k=c.it,$=d?(0,e._)(nC||(nC=me(["",", ",", ","",""])),h,p,g,y):p,j=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,w)],[n.default.parentData,k.parentData],[n.default.parentDataProperty,k.parentDataProperty],[n.default.rootData,n.default.rootData]];k.opts.dynamicRef&&j.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);var E=(0,e._)(rC||(rC=me(["",", ",""])),$,v.object.apply(v,j));return u!==e.nil?(0,e._)(oC||(oC=me(["",".call(",", ",")"])),f,u,E):(0,e._)(iC||(iC=me(["","(",")"])),f,E)};var l=(0,e._)(aC||(aC=me(["new RegExp"])));return fr.usePattern=function(c,f){var u=c.gen,d=c.it.opts,h=d.unicodeRegExp?"u":"",p=d.code.regExp,m=p(f,h);return u.scopeValue("pattern",{key:m.toString(),ref:m,code:(0,e._)(sC||(sC=me(["","(",", ",")"])),p.code==="new RegExp"?l:(0,r.useFunc)(u,p),f,h)})},fr.validateArray=function(c){var f=c.gen,u=c.data,d=c.keyword,h=c.it,p=f.name("valid");if(h.allErrors){var m=f.let("valid",!0);return v(function(){return f.assign(m,!1)}),m}return f.var(p,!0),v(function(){return f.break()}),p;function v(g){var y=f.const("len",(0,e._)(lC||(lC=me(["",".length"])),u));f.forRange("i",0,y,function(w){c.subschema({keyword:d,dataProp:w,dataPropType:t.Type.Num},p),f.if((0,e.not)(p),g)})}},fr.validateUnion=function(c){var f=c.gen,u=c.schema,d=c.keyword,h=c.it;if(!Array.isArray(u))throw new Error("ajv implementation error");if(!u.some(function(v){return(0,t.alwaysValidSchema)(h,v)})||h.opts.unevaluated){var p=f.let("valid",!1),m=f.name("_valid");f.block(function(){return u.forEach(function(v,g){var y=c.subschema({keyword:d,schemaProp:g,compositeRule:!0},m);f.assign(p,(0,e._)(cC||(cC=me([""," || ",""])),p,m)),c.mergeValidEvaluated(y,m)||f.if((0,e.not)(p))})}),c.result(p,function(){return c.reset()},function(){return c.error(!0)})}},fr}function zde(){if(wB)return La;wB=1,Object.defineProperty(La,"__esModule",{value:!0}),La.validateKeywordUsage=La.validSchemaType=La.funcKeywordCode=La.macroKeywordCode=void 0;var e=qn(),t=rc(),n=Ra(),r=$g();function o(a){var s=a.gen,l=a.data,c=a.it;s.if(c.parentData,function(){return s.assign(l,(0,e._)(vC||(vC=me(["","[","]"])),c.parentData,c.parentDataProperty))})}function i(a,s,l){if(l===void 0)throw new Error('keyword "'.concat(s,'" failed to compile'));return a.scopeValue("keyword",typeof l=="function"?{ref:l}:{ref:l,code:(0,e.stringify)(l)})}return La.macroKeywordCode=function(a,s){var l=a.gen,c=a.keyword,f=a.schema,u=a.parentSchema,d=a.it,h=s.macro.call(d.self,f,u,d),p=i(l,c,h);d.opts.validateSchema!==!1&&d.self.validateSchema(h,!0);var m=l.name("valid");a.subschema({schema:h,schemaPath:e.nil,errSchemaPath:"".concat(d.errSchemaPath,"/").concat(c),topSchemaRef:p,compositeRule:!0},m),a.pass(m,function(){return a.error(!0)})},La.funcKeywordCode=function(a,s){var l,c=a.gen,f=a.keyword,u=a.schema,d=a.parentSchema,h=a.$data,p=a.it;(function(k,$){var j=k.schemaEnv;if($.async&&!j.$async)throw new Error("async keyword in sync schema")})(p,s);var m=!h&&s.compile?s.compile.call(p.self,u,d,p):s.validate,v=i(c,f,m),g=c.let("valid");function y(){var k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s.async?(0,e._)(pC||(pC=me(["await "]))):e.nil,$=p.opts.passContext?t.default.this:t.default.self,j=!("compile"in s&&!h||s.schema===!1);c.assign(g,(0,e._)(mC||(mC=me(["","",""])),k,(0,n.callValidateCode)(a,v,$,j)),s.modifying)}function w(k){var $;c.if((0,e.not)(($=s.valid)!==null&&$!==void 0?$:g),k)}a.block$data(g,function(){if(s.errors===!1)y(),s.modifying&&o(a),w(function(){return a.error()});else{var k=s.async?function(){var j=c.let("ruleErrs",null);return c.try(function(){return y((0,e._)(uC||(uC=me(["await "]))))},function(E){return c.assign(g,!1).if((0,e._)(fC||(fC=me([""," instanceof ",""])),E,p.ValidationError),function(){return c.assign(j,(0,e._)(dC||(dC=me(["",".errors"])),E))},function(){return c.throw(E)})}),j}():($=(0,e._)(hC||(hC=me(["",".errors"])),v),c.assign($,null),y(e.nil),$);s.modifying&&o(a),w(function(){return function(j,E){var I=j.gen;I.if((0,e._)(gC||(gC=me(["Array.isArray(",")"])),E),function(){I.assign(t.default.vErrors,(0,e._)(yC||(yC=me([""," === null ? "," : ",".concat(",")"])),t.default.vErrors,E,t.default.vErrors,E)).assign(t.default.errors,(0,e._)(bC||(bC=me(["",".length"])),t.default.vErrors)),(0,r.extendErrors)(j)},function(){return j.error()})}(a,k)})}var $}),a.ok((l=s.valid)!==null&&l!==void 0?l:g)},La.validSchemaType=function(a,s){var l=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return!s.length||s.some(function(c){return c==="array"?Array.isArray(a):c==="object"?a&&yt(a)=="object"&&!Array.isArray(a):yt(a)==c||l&&a===void 0})},La.validateKeywordUsage=function(a,s,l){var c=a.schema,f=a.opts,u=a.self,d=a.errSchemaPath;if(Array.isArray(s.keyword)?!s.keyword.includes(l):s.keyword!==l)throw new Error("ajv implementation error");var h=s.dependencies;if(h!=null&&h.some(function(m){return!Object.prototype.hasOwnProperty.call(c,m)}))throw new Error("parent schema must have dependencies of ".concat(l,": ").concat(h.join(",")));if(s.validateSchema&&!s.validateSchema(c[l])){var p='keyword "'.concat(l,'" value is invalid at path "').concat(d,'": ')+u.errorsText(s.validateSchema.errors);if(f.validateSchema!=="log")throw new Error(p);u.logger.error(p)}},La}var kB,il={},Mo={},xB=function e(t,n){if(t===n)return!0;if(t&&n&&yt(t)=="object"&&yt(n)=="object"){if(t.constructor!==n.constructor)return!1;var r,o,i;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;o--!=0;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;o--!=0;)if(!Object.prototype.hasOwnProperty.call(n,i[o]))return!1;for(o=r;o--!=0;){var a=i[o];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n},_B={exports:{}},oc=_B.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),Tg(t,typeof(n=t.cb||n)=="function"?n:n.pre||function(){},n.post||function(){},e,"",e)};function Tg(e,t,n,r,o,i,a,s,l,c){if(r&&yt(r)=="object"&&!Array.isArray(r)){for(var f in t(r,o,i,a,s,l,c),r){var u=r[f];if(Array.isArray(u)){if(f in oc.arrayKeywords)for(var d=0;d<u.length;d++)Tg(e,t,n,u[d],o+"/"+f+"/"+d,i,o,f,r,d)}else if(f in oc.propsKeywords){if(u&&yt(u)=="object")for(var h in u)Tg(e,t,n,u[h],o+"/"+f+"/"+h.replace(/~/g,"~0").replace(/\//g,"~1"),i,o,f,r,h)}else(f in oc.keywords||e.allKeys&&!(f in oc.skipKeywords))&&Tg(e,t,n,u,o+"/"+f,i,o,f,r)}n(r,o,i,a,s,l,c)}}oc.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},oc.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},oc.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},oc.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};var qde=_B.exports;Object.defineProperty(Mo,"__esModule",{value:!0}),Mo.getSchemaRefs=Mo.resolveUrl=Mo.normalizeId=Mo._getFullPath=Mo.getFullPath=Mo.inlineRef=void 0;var Ude=Qn,Hde=xB,Wde=qde,Kde=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);Mo.inlineRef=function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return typeof e=="boolean"||(t===!0?!ux(e):!!t&&jB(e)<=t)};var Gde=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ux(e){for(var t in e){if(Gde.has(t))return!0;var n=e[t];if(Array.isArray(n)&&n.some(ux)||yt(n)=="object"&&ux(n))return!0}return!1}function jB(e){var t=0;for(var n in e)if(n==="$ref"||(t++,!Kde.has(n)&&(yt(e[n])=="object"&&(0,Ude.eachItem)(e[n],function(r){return t+=jB(r)}),t===1/0)))return 1/0;return t}function SB(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";(arguments.length>2?arguments[2]:void 0)!==!1&&(t=Nf(t));var n=e.parse(t);return CB(e,n)}function CB(e,t){return e.serialize(t).split("#")[0]+"#"}Mo.getFullPath=SB,Mo._getFullPath=CB;var Jde=/#\/?$/;function Nf(e){return e?e.replace(Jde,""):""}Mo.normalizeId=Nf,Mo.resolveUrl=function(e,t,n){return n=Nf(n),e.resolve(t,n)};var $B,Qde=/^[a-z_][-a-z0-9._]*$/i;function Og(){if($B)return rl;$B=1,Object.defineProperty(rl,"__esModule",{value:!0}),rl.getData=rl.KeywordCxt=rl.validateFunctionCode=void 0;var e=function(){if(mB)return eu;mB=1,Object.defineProperty(eu,"__esModule",{value:!0}),eu.boolOrEmptySchema=eu.topBoolOrEmptySchema=void 0;var N=$g(),W=qn(),ee=rc(),U={message:"boolean schema is false"};function K(A,T){var x={gen:A.gen,keyword:"false schema",data:A.data,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:A};(0,N.reportError)(x,U,void 0,T)}return eu.topBoolOrEmptySchema=function(A){var T=A.gen,x=A.schema,O=A.validateName;x===!1?K(A,!1):yt(x)=="object"&&x.$async===!0?T.return(ee.default.data):(T.assign((0,W._)(fS||(fS=me(["",".errors"])),O),null),T.return(!0))},eu.boolOrEmptySchema=function(A,T){var x=A.gen;A.schema===!1?(x.var(T,!1),K(A)):x.var(T,!0)},eu}(),t=Vh,n=gB(),r=Vh,o=function(){if(yB)return zh;yB=1,Object.defineProperty(zh,"__esModule",{value:!0}),zh.assignDefaults=void 0;var N=qn(),W=Qn;function ee(U,K,A){var T=U.gen,x=U.compositeRule,O=U.data,S=U.opts;if(A!==void 0){var C=(0,N._)(HS||(HS=me(["","",""])),O,(0,N.getProperty)(K));if(x)(0,W.checkStrictMode)(U,"default is ignored for: ".concat(C));else{var _=(0,N._)(WS||(WS=me([""," === undefined"])),C);S.useDefaults==="empty"&&(_=(0,N._)(KS||(KS=me([""," || "," === null || ",' === ""'])),_,C,C)),T.if(_,(0,N._)(GS||(GS=me([""," = ",""])),C,(0,N.stringify)(A)))}}}return zh.assignDefaults=function(U,K){var A=U.schema,T=A.properties,x=A.items;if(K==="object"&&T)for(var O in T)ee(U,O,T[O].default);else K==="array"&&Array.isArray(x)&&x.forEach(function(S,C){return ee(U,C,S.default)})},zh}(),i=zde(),a=function(){if(kB)return il;kB=1,Object.defineProperty(il,"__esModule",{value:!0}),il.extendSubschemaMode=il.extendSubschemaData=il.getSubschema=void 0;var N=qn(),W=Qn;return il.getSubschema=function(ee,U){var K=U.keyword,A=U.schemaProp,T=U.schema,x=U.schemaPath,O=U.errSchemaPath,S=U.topSchemaRef;if(K!==void 0&&T!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(K!==void 0){var C=ee.schema[K];return A===void 0?{schema:C,schemaPath:(0,N._)(wC||(wC=me(["","",""])),ee.schemaPath,(0,N.getProperty)(K)),errSchemaPath:"".concat(ee.errSchemaPath,"/").concat(K)}:{schema:C[A],schemaPath:(0,N._)(kC||(kC=me(["","","",""])),ee.schemaPath,(0,N.getProperty)(K),(0,N.getProperty)(A)),errSchemaPath:"".concat(ee.errSchemaPath,"/").concat(K,"/").concat((0,W.escapeFragment)(A))}}if(T!==void 0){if(x===void 0||O===void 0||S===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:T,schemaPath:x,topSchemaRef:S,errSchemaPath:O}}throw new Error('either "keyword" or "schema" must be passed')},il.extendSubschemaData=function(ee,U,K){var A=K.dataProp,T=K.dataPropType,x=K.data,O=K.dataTypes,S=K.propertyName;if(x!==void 0&&A!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');var C=U.gen;if(A!==void 0){var _=U.errorPath,R=U.dataPathArr,Z=U.opts;pe(C.let("data",(0,N._)(xC||(xC=me(["","",""])),U.data,(0,N.getProperty)(A)),!0)),ee.errorPath=(0,N.str)(_C||(_C=me(["","",""])),_,(0,W.getErrorPath)(A,T,Z.jsPropertySyntax)),ee.parentDataProperty=(0,N._)(jC||(jC=me(["",""])),A),ee.dataPathArr=[].concat(Zt(R),[ee.parentDataProperty])}function pe(_e){ee.data=_e,ee.dataLevel=U.dataLevel+1,ee.dataTypes=[],U.definedProperties=new Set,ee.parentData=U.data,ee.dataNames=[].concat(Zt(U.dataNames),[_e])}x!==void 0&&(pe(x instanceof N.Name?x:C.let("data",x,!0)),S!==void 0&&(ee.propertyName=S)),O&&(ee.dataTypes=O)},il.extendSubschemaMode=function(ee,U){var K=U.jtdDiscriminator,A=U.jtdMetadata,T=U.compositeRule,x=U.createErrors,O=U.allErrors;T!==void 0&&(ee.compositeRule=T),x!==void 0&&(ee.createErrors=x),O!==void 0&&(ee.allErrors=O),ee.jtdDiscriminator=K,ee.jtdMetadata=A},il}(),s=qn(),l=rc(),c=Mo,f=Qn,u=$g();function d(N,W){var ee=N.gen,U=N.validateName,K=N.schema,A=N.schemaEnv,T=N.opts;T.code.es5?ee.func(U,(0,s._)(SC||(SC=me(["",", ",""])),l.default.data,l.default.valCxt),A.$async,function(){ee.code((0,s._)(CC||(CC=me(['"use strict"; ',""])),h(K,T))),function(x,O){x.if(l.default.valCxt,function(){x.var(l.default.instancePath,(0,s._)(EC||(EC=me(["",".",""])),l.default.valCxt,l.default.instancePath)),x.var(l.default.parentData,(0,s._)(AC||(AC=me(["",".",""])),l.default.valCxt,l.default.parentData)),x.var(l.default.parentDataProperty,(0,s._)(MC||(MC=me(["",".",""])),l.default.valCxt,l.default.parentDataProperty)),x.var(l.default.rootData,(0,s._)(PC||(PC=me(["",".",""])),l.default.valCxt,l.default.rootData)),O.dynamicRef&&x.var(l.default.dynamicAnchors,(0,s._)(NC||(NC=me(["",".",""])),l.default.valCxt,l.default.dynamicAnchors))},function(){x.var(l.default.instancePath,(0,s._)(IC||(IC=me(['""'])))),x.var(l.default.parentData,(0,s._)(DC||(DC=me(["undefined"])))),x.var(l.default.parentDataProperty,(0,s._)(LC||(LC=me(["undefined"])))),x.var(l.default.rootData,l.default.data),O.dynamicRef&&x.var(l.default.dynamicAnchors,(0,s._)(RC||(RC=me(["{}"]))))})}(ee,T),ee.code(W)}):ee.func(U,(0,s._)($C||($C=me(["",", ",""])),l.default.data,function(x){return(0,s._)(TC||(TC=me(["{",'="", ',", ",", ","=","","}={}"])),l.default.instancePath,l.default.parentData,l.default.parentDataProperty,l.default.rootData,l.default.data,x.dynamicRef?(0,s._)(OC||(OC=me([", ","={}"])),l.default.dynamicAnchors):s.nil)}(T)),A.$async,function(){return ee.code(h(K,T)).code(W)})}function h(N,W){var ee=yt(N)=="object"&&N[W.schemaId];return ee&&(W.code.source||W.code.process)?(0,s._)(WC||(WC=me(["/*# sourceURL="," */"])),ee):s.nil}function p(N,W){v(N)&&(g(N),m(N))?function(ee,U){var K=ee.schema,A=ee.gen,T=ee.opts;T.$comment&&K.$comment&&w(ee),function(O){var S=O.schema[O.opts.schemaId];S&&(O.baseId=(0,c.resolveUrl)(O.opts.uriResolver,O.baseId,S))}(ee),function(O){if(O.schema.$async&&!O.schemaEnv.$async)throw new Error("async schema in sync schema")}(ee);var x=A.const("_errs",l.default.errors);y(ee,x),A.var(U,(0,s._)(KC||(KC=me([""," === ",""])),x,l.default.errors))}(N,W):(0,e.boolOrEmptySchema)(N,W)}function m(N){var W=N.schema,ee=N.self;if(typeof W=="boolean")return!W;for(var U in W)if(ee.RULES.all[U])return!0;return!1}function v(N){return typeof N.schema!="boolean"}function g(N){(0,f.checkUnknownRules)(N),function(W){var ee=W.schema,U=W.errSchemaPath,K=W.opts,A=W.self;ee.$ref&&K.ignoreKeywordsWithRef&&(0,f.schemaHasRulesButRef)(ee,A.RULES)&&A.logger.warn('$ref: keywords ignored in schema at path "'.concat(U,'"'))}(N)}function y(N,W){if(N.opts.jtd)return k(N,[],!1,W);var ee=(0,t.getSchemaTypes)(N.schema);k(N,ee,!(0,t.coerceAndCheckDataType)(N,ee),W)}function w(N){var W=N.gen,ee=N.schemaEnv,U=N.schema,K=N.errSchemaPath,A=N.opts,T=U.$comment;if(A.$comment===!0)W.code((0,s._)(GC||(GC=me(["",".logger.log(",")"])),l.default.self,T));else if(typeof A.$comment=="function"){var x=(0,s.str)(JC||(JC=me(["","/$comment"])),K),O=W.scopeValue("root",{ref:ee.root});W.code((0,s._)(QC||(QC=me(["",".opts.$comment(",", ",", ",".schema)"])),l.default.self,T,x,O))}}function k(N,W,ee,U){var K=N.gen,A=N.schema,T=N.data,x=N.allErrors,O=N.opts,S=N.self.RULES;function C(_){(0,n.shouldUseGroup)(A,_)&&(_.type?(K.if((0,r.checkDataType)(_.type,T,O.strictNumbers)),$(N,_),W.length===1&&W[0]===_.type&&ee&&(K.else(),(0,r.reportTypeError)(N)),K.endIf()):$(N,_),x||K.if((0,s._)(r$||(r$=me([""," === ",""])),l.default.errors,U||0)))}!A.$ref||!O.ignoreKeywordsWithRef&&(0,f.schemaHasRulesButRef)(A,S)?(O.jtd||function(_,R){_.schemaEnv.meta||!_.opts.strictTypes||(function(Z,pe){if(pe.length){if(!Z.dataTypes.length)return void(Z.dataTypes=pe);pe.forEach(function(_e){E(Z.dataTypes,_e)||I(Z,'type "'.concat(_e,'" not allowed by context "').concat(Z.dataTypes.join(","),'"'))}),function(_e,ke){var ue,Ne=[],oe=we(_e.dataTypes);try{for(oe.s();!(ue=oe.n()).done;){var ye=ue.value;E(ke,ye)?Ne.push(ye):ke.includes("integer")&&ye==="number"&&Ne.push("integer")}}catch(fe){oe.e(fe)}finally{oe.f()}_e.dataTypes=Ne}(Z,pe)}}(_,R),_.opts.allowUnionTypes||function(Z,pe){pe.length>1&&(pe.length!==2||!pe.includes("null"))&&I(Z,"use allowUnionTypes to allow union type keyword")}(_,R),function(Z,pe){var _e=Z.self.RULES.all;for(var ke in _e){var ue=_e[ke];if(yt(ue)=="object"&&(0,n.shouldUseRule)(Z.schema,ue)){var Ne=ue.definition.type;Ne.length&&!Ne.some(function(oe){return j(pe,oe)})&&I(Z,'missing type "'.concat(Ne.join(","),'" for keyword "').concat(ke,'"'))}}}(_,_.dataTypes))}(N,W),K.block(function(){var _,R=we(S.rules);try{for(R.s();!(_=R.n()).done;)C(_.value)}catch(Z){R.e(Z)}finally{R.f()}C(S.post)})):K.block(function(){return L(N,"$ref",S.all.$ref.definition)})}function $(N,W){var ee=N.gen,U=N.schema;N.opts.useDefaults&&(0,o.assignDefaults)(N,W.type),ee.block(function(){var K,A=we(W.rules);try{for(A.s();!(K=A.n()).done;){var T=K.value;(0,n.shouldUseRule)(U,T)&&L(N,T.keyword,T.definition,W.type)}}catch(x){A.e(x)}finally{A.f()}})}function j(N,W){return N.includes(W)||W==="number"&&N.includes("integer")}function E(N,W){return N.includes(W)||W==="integer"&&N.includes("number")}function I(N,W){var ee=N.schemaEnv.baseId+N.errSchemaPath;W+=' at "'.concat(ee,'" (strictTypes)'),(0,f.checkStrictMode)(N,W,N.opts.strictTypes)}rl.validateFunctionCode=function(N){v(N)&&(g(N),m(N))?function(W){var ee=W.schema,U=W.opts,K=W.gen;d(W,function(){U.$comment&&ee.$comment&&w(W),function(A){var T=A.schema,x=A.opts;T.default!==void 0&&x.useDefaults&&x.strictSchema&&(0,f.checkStrictMode)(A,"default is ignored in the schema root")}(W),K.let(l.default.vErrors,null),K.let(l.default.errors,0),U.unevaluated&&function(A){var T=A.gen,x=A.validateName;A.evaluated=T.const("evaluated",(0,s._)(BC||(BC=me(["",".evaluated"])),x)),T.if((0,s._)(FC||(FC=me(["",".dynamicProps"])),A.evaluated),function(){return T.assign((0,s._)(VC||(VC=me(["",".props"])),A.evaluated),(0,s._)(zC||(zC=me(["undefined"]))))}),T.if((0,s._)(qC||(qC=me(["",".dynamicItems"])),A.evaluated),function(){return T.assign((0,s._)(UC||(UC=me(["",".items"])),A.evaluated),(0,s._)(HC||(HC=me(["undefined"]))))})}(W),y(W),function(A){var T=A.gen,x=A.schemaEnv,O=A.validateName,S=A.ValidationError,C=A.opts;x.$async?T.if((0,s._)(YC||(YC=me([""," === 0"])),l.default.errors),function(){return T.return(l.default.data)},function(){return T.throw((0,s._)(XC||(XC=me(["new ","(",")"])),S,l.default.vErrors))}):(T.assign((0,s._)(ZC||(ZC=me(["",".errors"])),O),l.default.vErrors),C.unevaluated&&function(_){var R=_.gen,Z=_.evaluated,pe=_.props,_e=_.items;pe instanceof s.Name&&R.assign((0,s._)(t$||(t$=me(["",".props"])),Z),pe),_e instanceof s.Name&&R.assign((0,s._)(n$||(n$=me(["",".items"])),Z),_e)}(A),T.return((0,s._)(e$||(e$=me([""," === 0"])),l.default.errors)))}(W)})}(N):d(N,function(){return(0,e.topBoolOrEmptySchema)(N)})};var D=function(){function N(W,ee,U){if(le(this,N),(0,i.validateKeywordUsage)(W,ee,U),this.gen=W.gen,this.allErrors=W.allErrors,this.keyword=U,this.data=W.data,this.schema=W.schema[U],this.$data=ee.$data&&W.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,f.schemaRefOrVal)(W,this.schema,U,this.$data),this.schemaType=ee.schemaType,this.parentSchema=W.schema,this.params={},this.it=W,this.def=ee,this.$data)this.schemaCode=W.gen.const("vSchema",H(this.$data,W));else if(this.schemaCode=this.schemaValue,!(0,i.validSchemaType)(this.schema,ee.schemaType,ee.allowUndefined))throw new Error("".concat(U," value must be ").concat(JSON.stringify(ee.schemaType)));("code"in ee?ee.trackErrors:ee.errors!==!1)&&(this.errsCount=W.gen.const("_errs",l.default.errors))}return ce(N,[{key:"result",value:function(W,ee,U){this.failResult((0,s.not)(W),ee,U)}},{key:"failResult",value:function(W,ee,U){this.gen.if(W),U?U():this.error(),ee?(this.gen.else(),ee(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}},{key:"pass",value:function(W,ee){this.failResult((0,s.not)(W),void 0,ee)}},{key:"fail",value:function(W){if(W===void 0)return this.error(),void(this.allErrors||this.gen.if(!1));this.gen.if(W),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}},{key:"fail$data",value:function(W){if(!this.$data)return this.fail(W);var ee=this.schemaCode;this.fail((0,s._)(o$||(o$=me([""," !== undefined && (",")"])),ee,(0,s.or)(this.invalid$data(),W)))}},{key:"error",value:function(W,ee,U){if(ee)return this.setParams(ee),this._error(W,U),void this.setParams({});this._error(W,U)}},{key:"_error",value:function(W,ee){(W?u.reportExtraError:u.reportError)(this,this.def.error,ee)}},{key:"$dataError",value:function(){(0,u.reportError)(this,this.def.$dataError||u.keyword$DataError)}},{key:"reset",value:function(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,u.resetErrorsCount)(this.gen,this.errsCount)}},{key:"ok",value:function(W){this.allErrors||this.gen.if(W)}},{key:"setParams",value:function(W,ee){ee?Object.assign(this.params,W):this.params=W}},{key:"block$data",value:function(W,ee){var U=this,K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:s.nil;this.gen.block(function(){U.check$data(W,K),ee()})}},{key:"check$data",value:function(){var W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s.nil,ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s.nil;if(this.$data){var U=this.gen,K=this.schemaCode,A=this.schemaType,T=this.def;U.if((0,s.or)((0,s._)(i$||(i$=me([""," === undefined"])),K),ee)),W!==s.nil&&U.assign(W,!0),(A.length||T.validateSchema)&&(U.elseIf(this.invalid$data()),this.$dataError(),W!==s.nil&&U.assign(W,!1)),U.else()}}},{key:"invalid$data",value:function(){var W=this.gen,ee=this.schemaCode,U=this.schemaType,K=this.def,A=this.it;return(0,s.or)(function(){if(U.length){if(!(ee instanceof s.Name))throw new Error("ajv implementation error");var T=Array.isArray(U)?U:[U];return(0,s._)(a$||(a$=me(["",""])),(0,r.checkDataTypes)(T,ee,A.opts.strictNumbers,r.DataType.Wrong))}return s.nil}(),function(){if(K.validateSchema){var T=W.scopeValue("validate$data",{ref:K.validateSchema});return(0,s._)(s$||(s$=me(["!","(",")"])),T,ee)}return s.nil}())}},{key:"subschema",value:function(W,ee){var U=(0,a.getSubschema)(this.it,W);(0,a.extendSubschemaData)(U,this.it,W),(0,a.extendSubschemaMode)(U,W);var K=Ce(Ce(Ce({},this.it),U),{},{items:void 0,props:void 0});return p(K,ee),K}},{key:"mergeEvaluated",value:function(W,ee){var U=this.it,K=this.gen;U.opts.unevaluated&&(U.props!==!0&&W.props!==void 0&&(U.props=f.mergeEvaluated.props(K,W.props,U.props,ee)),U.items!==!0&&W.items!==void 0&&(U.items=f.mergeEvaluated.items(K,W.items,U.items,ee)))}},{key:"mergeValidEvaluated",value:function(W,ee){var U=this,K=this.it,A=this.gen;if(K.opts.unevaluated&&(K.props!==!0||K.items!==!0))return A.if(ee,function(){return U.mergeEvaluated(W,s.Name)}),!0}}]),N}();function L(N,W,ee,U){var K=new D(N,ee,W);"code"in ee?ee.code(K,U):K.$data&&ee.validate?(0,i.funcKeywordCode)(K,ee):"macro"in ee?(0,i.macroKeywordCode)(K,ee):(ee.compile||ee.validate)&&(0,i.funcKeywordCode)(K,ee)}rl.KeywordCxt=D;var M=/^\/(?:[^~]|~0|~1)*$/,F=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function H(N,W){var ee,U,K=W.dataLevel,A=W.dataNames,T=W.dataPathArr;if(N==="")return l.default.rootData;if(N[0]==="/"){if(!M.test(N))throw new Error("Invalid JSON-pointer: ".concat(N));ee=N,U=l.default.rootData}else{var x=F.exec(N);if(!x)throw new Error("Invalid JSON-pointer: ".concat(N));var O=+x[1];if((ee=x[2])==="#"){if(O>=K)throw new Error(Z("property/index",O));return T[K-O]}if(O>K)throw new Error(Z("data",O));if(U=A[K-O],!ee)return U}var S,C=U,_=we(ee.split("/"));try{for(_.s();!(S=_.n()).done;){var R=S.value;R&&(U=(0,s._)(l$||(l$=me(["","",""])),U,(0,s.getProperty)((0,f.unescapeJsonPointer)(R))),C=(0,s._)(c$||(c$=me([""," && ",""])),C,U))}}catch(pe){_.e(pe)}finally{_.f()}return C;function Z(pe,_e){return"Cannot access ".concat(pe," ").concat(_e," levels up, current level is ").concat(K)}}return rl.getData=H,rl}Mo.getSchemaRefs=function(e,t){var n=this;if(typeof e=="boolean")return{};var r=this.opts,o=r.schemaId,i=r.uriResolver,a=Nf(e[o]||t),s={"":a},l=SB(i,a,!1),c={},f=new Set;return Wde(e,{allKeys:!0},function(h,p,m,v){if(v!==void 0){var g=l+p,y=s[v];typeof h[o]=="string"&&(y=w.call(n,h[o])),k.call(n,h.$anchor),k.call(n,h.$dynamicAnchor),s[p]=y}function w($){var j=this.opts.uriResolver.resolve;if($=Nf(y?j(y,$):$),f.has($))throw d($);f.add($);var E=this.refs[$];return typeof E=="string"&&(E=this.refs[E]),yt(E)=="object"?u(h,E.schema,$):$!==Nf(g)&&($[0]==="#"?(u(h,c[$],$),c[$]=h):this.refs[$]=g),$}function k($){if(typeof $=="string"){if(!Qde.test($))throw new Error('invalid anchor "'.concat($,'"'));w.call(this,"#".concat($))}}}),c;function u(h,p,m){if(p!==void 0&&!Hde(h,p))throw d(m)}function d(h){return new Error('reference "'.concat(h,'" resolves to more than one schema'))}};var TB,Eg={};function fx(){if(TB)return Eg;TB=1,Object.defineProperty(Eg,"__esModule",{value:!0});var e=function(t){Ue(r,xu(Error));var n=He(r);function r(o){var i;return le(this,r),(i=n.call(this,"validation failed")).errors=o,i.ajv=i.validation=!0,i}return ce(r)}();return Eg.default=e,Eg}var OB,Ag={};function dx(){if(OB)return Ag;OB=1,Object.defineProperty(Ag,"__esModule",{value:!0});var e=Mo,t=function(n){Ue(o,xu(Error));var r=He(o);function o(i,a,s,l){var c;return le(this,o),(c=r.call(this,l||"can't resolve reference ".concat(s," from id ").concat(a))).missingRef=(0,e.resolveUrl)(i,a,s),c.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,c.missingRef)),c}return ce(o)}();return Ag.default=t,Ag}var ki={};Object.defineProperty(ki,"__esModule",{value:!0}),ki.resolveSchema=ki.getCompilingSchema=ki.resolveRef=ki.compileSchema=ki.SchemaEnv=void 0;var Ba=qn(),Yde=fx(),nu=rc(),Fa=Mo,EB=Qn,Xde=Og(),Mg=ce(function e(t){var n,r;le(this,e),this.refs={},this.dynamicAnchors={},yt(t.schema)=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,Fa.normalizeId)(r==null?void 0:r[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r==null?void 0:r.$async,this.refs={}});function hx(e){var t=AB.call(this,e);if(t)return t;var n,r=(0,Fa.getFullPath)(this.opts.uriResolver,e.root.baseId),o=this.opts.code,i=o.es5,a=o.lines,s=this.opts.ownProperties,l=new Ba.CodeGen(this.scope,{es5:i,lines:a,ownProperties:s});e.$async&&(n=l.scopeValue("Error",{ref:Yde.default,code:(0,Ba._)(u$||(u$=me(['require("ajv/dist/runtime/validation_error").default'])))}));var c=l.scopeName("validate");e.validateName=c;var f,u={gen:l,allErrors:this.opts.allErrors,data:nu.default.data,parentData:nu.default.parentData,parentDataProperty:nu.default.parentDataProperty,dataNames:[nu.default.data],dataPathArr:[Ba.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:l.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,Ba.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:n,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:Ba.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Ba._)(f$||(f$=me(['""']))),opts:this.opts,self:this};try{this._compilations.add(e),(0,Xde.validateFunctionCode)(u),l.optimize(this.opts.code.optimize);var d=l.toString();f="".concat(l.scopeRefs(nu.default.scope),"return ").concat(d),this.opts.code.process&&(f=this.opts.code.process(f,e));var h=new Function("".concat(nu.default.self),"".concat(nu.default.scope),f)(this,this.scope.get());if(this.scope.value(c,{ref:h}),h.errors=null,h.schema=e.schema,h.schemaEnv=e,e.$async&&(h.$async=!0),this.opts.code.source===!0&&(h.source={validateName:c,validateCode:d,scopeValues:l._values}),this.opts.unevaluated){var p=u.props,m=u.items;h.evaluated={props:p instanceof Ba.Name?void 0:p,items:m instanceof Ba.Name?void 0:m,dynamicProps:p instanceof Ba.Name,dynamicItems:m instanceof Ba.Name},h.source&&(h.source.evaluated=(0,Ba.stringify)(h.evaluated))}return e.validate=h,e}catch(v){throw delete e.validate,delete e.validateName,f&&this.logger.error("Error compiling schema, function code:",f),v}finally{this._compilations.delete(e)}}function Zde(e){return(0,Fa.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:hx.call(this,e)}function AB(e){var t,n,r,o=we(this._compilations);try{for(o.s();!(t=o.n()).done;){var i=t.value;if(r=e,(n=i).schema===r.schema&&n.root===r.root&&n.baseId===r.baseId)return i}}catch(a){o.e(a)}finally{o.f()}}function ehe(e,t){for(var n;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||Pg.call(this,e,t)}function Pg(e,t){var n=this.opts.uriResolver.parse(t),r=(0,Fa._getFullPath)(this.opts.uriResolver,n),o=(0,Fa.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===o)return px.call(this,n,e);var i=(0,Fa.normalizeId)(r),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){var s=Pg.call(this,e,a);return yt(s==null?void 0:s.schema)!=="object"?void 0:px.call(this,n,s)}if(yt(a==null?void 0:a.schema)==="object"){if(a.validate||hx.call(this,a),i===(0,Fa.normalizeId)(t)){var l=a.schema,c=this.opts.schemaId,f=l[c];return f&&(o=(0,Fa.resolveUrl)(this.opts.uriResolver,o,f)),new Mg({schema:l,schemaId:c,root:e,baseId:o})}return px.call(this,n,a)}}ki.SchemaEnv=Mg,ki.compileSchema=hx,ki.resolveRef=function(e,t,n){var r;n=(0,Fa.resolveUrl)(this.opts.uriResolver,t,n);var o=e.refs[n];if(o)return o;var i=ehe.call(this,e,n);if(i===void 0){var a=(r=e.localRefs)===null||r===void 0?void 0:r[n],s=this.opts.schemaId;a&&(i=new Mg({schema:a,schemaId:s,root:e,baseId:t}))}return i!==void 0?e.refs[n]=Zde.call(this,i):void 0},ki.getCompilingSchema=AB,ki.resolveSchema=Pg;var the=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function px(e,t){var n,r=t.baseId,o=t.schema,i=t.root;if(((n=e.fragment)===null||n===void 0?void 0:n[0])==="/"){var a,s,l=we(e.fragment.slice(1).split("/"));try{for(l.s();!(a=l.n()).done;){var c=a.value;if(typeof o=="boolean")return;var f=o[(0,EB.unescapeFragment)(c)];if(f===void 0)return;var u=yt(o=f)==="object"&&o[this.opts.schemaId];!the.has(c)&&u&&(r=(0,Fa.resolveUrl)(this.opts.uriResolver,r,u))}}catch(p){l.e(p)}finally{l.f()}if(typeof o!="boolean"&&o.$ref&&!(0,EB.schemaHasRulesButRef)(o,this.RULES)){var d=(0,Fa.resolveUrl)(this.opts.uriResolver,r,o.$ref);s=Pg.call(this,i,d)}var h=this.opts.schemaId;return(s=s||new Mg({schema:o,schemaId:h,root:i,baseId:r})).schema!==s.root.schema?s:void 0}}var nhe={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1},mx={},MB={exports:{}};(function(e){function t(){for(var re=arguments.length,he=Array(re),z=0;z<re;z++)he[z]=arguments[z];if(he.length>1){he[0]=he[0].slice(0,-1);for(var q=he.length-1,X=1;X<q;++X)he[X]=he[X].slice(1,-1);return he[q]=he[q].slice(1),he.join("")}return he[0]}function n(re){return"(?:"+re+")"}function r(re){return re===void 0?"undefined":re===null?"null":Object.prototype.toString.call(re).split(" ").pop().split("]").shift().toLowerCase()}function o(re){return re.toUpperCase()}function i(re){return re!=null?re instanceof Array?re:typeof re.length!="number"||re.split||re.setInterval||re.call?[re]:Array.prototype.slice.call(re):[]}function a(re,he){var z=re;if(he)for(var q in he)z[q]=he[q];return z}function s(re){var he="[A-Za-z]",z="[0-9]",q=t(z,"[A-Fa-f]"),X=n(n("%[EFef]"+q+"%"+q+q+"%"+q+q)+"|"+n("%[89A-Fa-f]"+q+"%"+q+q)+"|"+n("%"+q+q)),de="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",je=t("[\\:\\/\\?\\#\\[\\]\\@]",de),Te=re?"[\\uE000-\\uF8FF]":"[]",it=t(he,z,"[\\-\\.\\_\\~]",re?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]");n(he+t(he,z,"[\\+\\-\\.]")+"*"),n(n(X+"|"+t(it,de,"[\\:]"))+"*");var ht=n(n("25[0-5]")+"|"+n("2[0-4]"+z)+"|"+n("1"+z+z)+"|"+n("0?[1-9]"+z)+"|0?0?"+z),$t=n(ht+"\\."+ht+"\\."+ht+"\\."+ht),bt=n(q+"{1,4}"),Ht=n(n(bt+"\\:"+bt)+"|"+$t),ct=n(n(bt+"\\:")+"{6}"+Ht),on=n("\\:\\:"+n(bt+"\\:")+"{5}"+Ht),P=n(n(bt)+"?\\:\\:"+n(bt+"\\:")+"{4}"+Ht),J=n(n(n(bt+"\\:")+"{0,1}"+bt)+"?\\:\\:"+n(bt+"\\:")+"{3}"+Ht),ze=n(n(n(bt+"\\:")+"{0,2}"+bt)+"?\\:\\:"+n(bt+"\\:")+"{2}"+Ht),nt=n(n(n(bt+"\\:")+"{0,3}"+bt)+"?\\:\\:"+bt+"\\:"+Ht),at=n(n(n(bt+"\\:")+"{0,4}"+bt)+"?\\:\\:"+Ht),wt=n(n(n(bt+"\\:")+"{0,5}"+bt)+"?\\:\\:"+bt),Xt=n(n(n(bt+"\\:")+"{0,6}"+bt)+"?\\:\\:"),Wt=n([ct,on,P,J,ze,nt,at,wt,Xt].join("|")),Pt=n(n(it+"|"+X)+"+");n("[vV]"+q+"+\\."+t(it,de,"[\\:]")+"+"),n(n(X+"|"+t(it,de))+"*");var Nt=n(X+"|"+t(it,de,"[\\:\\@]"));return n(n(X+"|"+t(it,de,"[\\@]"))+"+"),n(n(Nt+"|"+t("[\\/\\?]",Te))+"*"),{NOT_SCHEME:new RegExp(t("[^]",he,z,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",it,de),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",it,de),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",it,de),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",it,de),"g"),NOT_QUERY:new RegExp(t("[^\\%]",it,de,"[\\:\\@\\/\\?]",Te),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",it,de,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",it,de),"g"),UNRESERVED:new RegExp(it,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",it,je),"g"),PCT_ENCODED:new RegExp(X,"g"),IPV4ADDRESS:new RegExp("^("+$t+")$"),IPV6ADDRESS:new RegExp("^\\[?("+Wt+")"+n(n("\\%25|\\%(?!"+q+"{2})")+"("+Pt+")")+"?\\]?$")}}var l=s(!1),c=s(!0),f=function(){function re(he,z){var q=[],X=!0,de=!1,je=void 0;try{for(var Te,it=he[Symbol.iterator]();!(X=(Te=it.next()).done)&&(q.push(Te.value),!z||q.length!==z);X=!0);}catch(ht){de=!0,je=ht}finally{try{!X&&it.return&&it.return()}finally{if(de)throw je}}return q}return function(he,z){if(Array.isArray(he))return he;if(Symbol.iterator in Object(he))return re(he,z);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),u=function(re){if(Array.isArray(re)){for(var he=0,z=Array(re.length);he<re.length;he++)z[he]=re[he];return z}return Array.from(re)},d=2147483647,h=36,p=1,m=26,v=38,g=700,y=72,w=128,k="-",$=/^xn--/,j=/[^\0-\x7E]/,E=/[\x2E\u3002\uFF0E\uFF61]/g,I={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},D=h-p,L=Math.floor,M=String.fromCharCode;function F(re){throw new RangeError(I[re])}function H(re,he){for(var z=[],q=re.length;q--;)z[q]=he(re[q]);return z}function N(re,he){var z=re.split("@"),q="";return z.length>1&&(q=z[0]+"@",re=z[1]),q+H((re=re.replace(E,".")).split("."),he).join(".")}function W(re){for(var he=[],z=0,q=re.length;z<q;){var X=re.charCodeAt(z++);if(X>=55296&&X<=56319&&z<q){var de=re.charCodeAt(z++);(64512&de)==56320?he.push(((1023&X)<<10)+(1023&de)+65536):(he.push(X),z--)}else he.push(X)}return he}var ee=function(re){return String.fromCodePoint.apply(String,u(re))},U=function(re){return re-48<10?re-22:re-65<26?re-65:re-97<26?re-97:h},K=function(re,he){return re+22+75*(re<26)-((he!=0)<<5)},A=function(re,he,z){var q=0;for(re=z?L(re/g):re>>1,re+=L(re/he);re>D*m>>1;q+=h)re=L(re/D);return L(q+(D+1)*re/(re+v))},T=function(re){var he=[],z=re.length,q=0,X=w,de=y,je=re.lastIndexOf(k);je<0&&(je=0);for(var Te=0;Te<je;++Te)re.charCodeAt(Te)>=128&&F("not-basic"),he.push(re.charCodeAt(Te));for(var it=je>0?je+1:0;it<z;){for(var ht=q,$t=1,bt=h;;bt+=h){it>=z&&F("invalid-input");var Ht=U(re.charCodeAt(it++));(Ht>=h||Ht>L((d-q)/$t))&&F("overflow"),q+=Ht*$t;var ct=bt<=de?p:bt>=de+m?m:bt-de;if(Ht<ct)break;var on=h-ct;$t>L(d/on)&&F("overflow"),$t*=on}var P=he.length+1;de=A(q-ht,P,ht==0),L(q/P)>d-X&&F("overflow"),X+=L(q/P),q%=P,he.splice(q++,0,X)}return String.fromCodePoint.apply(String,he)},x=function(re){var he=[],z=(re=W(re)).length,q=w,X=0,de=y,je=!0,Te=!1,it=void 0;try{for(var ht,$t=re[Symbol.iterator]();!(je=(ht=$t.next()).done);je=!0){var bt=ht.value;bt<128&&he.push(M(bt))}}catch(Ro){Te=!0,it=Ro}finally{try{!je&&$t.return&&$t.return()}finally{if(Te)throw it}}var Ht=he.length,ct=Ht;for(Ht&&he.push(k);ct<z;){var on=d,P=!0,J=!1,ze=void 0;try{for(var nt,at=re[Symbol.iterator]();!(P=(nt=at.next()).done);P=!0){var wt=nt.value;wt>=q&&wt<on&&(on=wt)}}catch(Ro){J=!0,ze=Ro}finally{try{!P&&at.return&&at.return()}finally{if(J)throw ze}}var Xt=ct+1;on-q>L((d-X)/Xt)&&F("overflow"),X+=(on-q)*Xt,q=on;var Wt=!0,Pt=!1,Nt=void 0;try{for(var Cn,Pn=re[Symbol.iterator]();!(Wt=(Cn=Pn.next()).done);Wt=!0){var dr=Cn.value;if(dr<q&&++X>d&&F("overflow"),dr==q){for(var qr=X,Lo=h;;Lo+=h){var Vi=Lo<=de?p:Lo>=de+m?m:Lo-de;if(qr<Vi)break;var fi=qr-Vi,di=h-Vi;he.push(M(K(Vi+fi%di,0))),qr=L(fi/di)}he.push(M(K(qr,0))),de=A(X,Xt,ct==Ht),X=0,++ct}}}catch(Ro){Pt=!0,Nt=Ro}finally{try{!Wt&&Pn.return&&Pn.return()}finally{if(Pt)throw Nt}}++X,++q}return he.join("")},O=function(re){return N(re,function(he){return $.test(he)?T(he.slice(4).toLowerCase()):he})},S=function(re){return N(re,function(he){return j.test(he)?"xn--"+x(he):he})},C={version:"2.1.0",ucs2:{decode:W,encode:ee},decode:T,encode:x,toASCII:S,toUnicode:O},_={};function R(re){var he=re.charCodeAt(0);return he<16?"%0"+he.toString(16).toUpperCase():he<128?"%"+he.toString(16).toUpperCase():he<2048?"%"+(he>>6|192).toString(16).toUpperCase()+"%"+(63&he|128).toString(16).toUpperCase():"%"+(he>>12|224).toString(16).toUpperCase()+"%"+(he>>6&63|128).toString(16).toUpperCase()+"%"+(63&he|128).toString(16).toUpperCase()}function Z(re){for(var he="",z=0,q=re.length;z<q;){var X=parseInt(re.substr(z+1,2),16);if(X<128)he+=String.fromCharCode(X),z+=3;else if(X>=194&&X<224){if(q-z>=6){var de=parseInt(re.substr(z+4,2),16);he+=String.fromCharCode((31&X)<<6|63&de)}else he+=re.substr(z,6);z+=6}else if(X>=224){if(q-z>=9){var je=parseInt(re.substr(z+4,2),16),Te=parseInt(re.substr(z+7,2),16);he+=String.fromCharCode((15&X)<<12|(63&je)<<6|63&Te)}else he+=re.substr(z,9);z+=9}else he+=re.substr(z,3),z+=3}return he}function pe(re,he){function z(q){var X=Z(q);return X.match(he.UNRESERVED)?X:q}return re.scheme&&(re.scheme=String(re.scheme).replace(he.PCT_ENCODED,z).toLowerCase().replace(he.NOT_SCHEME,"")),re.userinfo!==void 0&&(re.userinfo=String(re.userinfo).replace(he.PCT_ENCODED,z).replace(he.NOT_USERINFO,R).replace(he.PCT_ENCODED,o)),re.host!==void 0&&(re.host=String(re.host).replace(he.PCT_ENCODED,z).toLowerCase().replace(he.NOT_HOST,R).replace(he.PCT_ENCODED,o)),re.path!==void 0&&(re.path=String(re.path).replace(he.PCT_ENCODED,z).replace(re.scheme?he.NOT_PATH:he.NOT_PATH_NOSCHEME,R).replace(he.PCT_ENCODED,o)),re.query!==void 0&&(re.query=String(re.query).replace(he.PCT_ENCODED,z).replace(he.NOT_QUERY,R).replace(he.PCT_ENCODED,o)),re.fragment!==void 0&&(re.fragment=String(re.fragment).replace(he.PCT_ENCODED,z).replace(he.NOT_FRAGMENT,R).replace(he.PCT_ENCODED,o)),re}function _e(re){return re.replace(/^0*(.*)/,"$1")||"0"}function ke(re,he){var z=re.match(he.IPV4ADDRESS)||[],q=f(z,2)[1];return q?q.split(".").map(_e).join("."):re}function ue(re,he){var z=re.match(he.IPV6ADDRESS)||[],q=f(z,3),X=q[1],de=q[2];if(X){for(var je=X.toLowerCase().split("::").reverse(),Te=f(je,2),it=Te[0],ht=Te[1],$t=ht?ht.split(":").map(_e):[],bt=it.split(":").map(_e),Ht=he.IPV4ADDRESS.test(bt[bt.length-1]),ct=Ht?7:8,on=bt.length-ct,P=Array(ct),J=0;J<ct;++J)P[J]=$t[J]||bt[on+J]||"";Ht&&(P[ct-1]=ke(P[ct-1],he));var ze=P.reduce(function(Xt,Wt,Pt){if(!Wt||Wt==="0"){var Nt=Xt[Xt.length-1];Nt&&Nt.index+Nt.length===Pt?Nt.length++:Xt.push({index:Pt,length:1})}return Xt},[]).sort(function(Xt,Wt){return Wt.length-Xt.length})[0],nt=void 0;if(ze&&ze.length>1){var at=P.slice(0,ze.index),wt=P.slice(ze.index+ze.length);nt=at.join(":")+"::"+wt.join(":")}else nt=P.join(":");return de&&(nt+="%"+de),nt}return re}var Ne=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,oe="".match(/(){0}/)[1]===void 0;function ye(re){var he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},z={},q=he.iri!==!1?c:l;he.reference==="suffix"&&(re=(he.scheme?he.scheme+":":"")+"//"+re);var X=re.match(Ne);if(X){oe?(z.scheme=X[1],z.userinfo=X[3],z.host=X[4],z.port=parseInt(X[5],10),z.path=X[6]||"",z.query=X[7],z.fragment=X[8],isNaN(z.port)&&(z.port=X[5])):(z.scheme=X[1]||void 0,z.userinfo=re.indexOf("@")!==-1?X[3]:void 0,z.host=re.indexOf("//")!==-1?X[4]:void 0,z.port=parseInt(X[5],10),z.path=X[6]||"",z.query=re.indexOf("?")!==-1?X[7]:void 0,z.fragment=re.indexOf("#")!==-1?X[8]:void 0,isNaN(z.port)&&(z.port=re.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?X[4]:void 0)),z.host&&(z.host=ue(ke(z.host,q),q)),z.scheme!==void 0||z.userinfo!==void 0||z.host!==void 0||z.port!==void 0||z.path||z.query!==void 0?z.scheme===void 0?z.reference="relative":z.fragment===void 0?z.reference="absolute":z.reference="uri":z.reference="same-document",he.reference&&he.reference!=="suffix"&&he.reference!==z.reference&&(z.error=z.error||"URI is not a "+he.reference+" reference.");var de=_[(he.scheme||z.scheme||"").toLowerCase()];if(he.unicodeSupport||de&&de.unicodeSupport)pe(z,q);else{if(z.host&&(he.domainHost||de&&de.domainHost))try{z.host=C.toASCII(z.host.replace(q.PCT_ENCODED,Z).toLowerCase())}catch(je){z.error=z.error||"Host's domain name can not be converted to ASCII via punycode: "+je}pe(z,l)}de&&de.parse&&de.parse(z,he)}else z.error=z.error||"URI can not be parsed.";return z}function fe(re,he){var z=he.iri!==!1?c:l,q=[];return re.userinfo!==void 0&&(q.push(re.userinfo),q.push("@")),re.host!==void 0&&q.push(ue(ke(String(re.host),z),z).replace(z.IPV6ADDRESS,function(X,de,je){return"["+de+(je?"%25"+je:"")+"]"})),typeof re.port!="number"&&typeof re.port!="string"||(q.push(":"),q.push(String(re.port))),q.length?q.join(""):void 0}var Fe=/^\.\.?\//,Y=/^\/\.(\/|$)/,Q=/^\/\.\.(\/|$)/,ve=/^\/?(?:.|\n)*?(?=\/|$)/;function Ae(re){for(var he=[];re.length;)if(re.match(Fe))re=re.replace(Fe,"");else if(re.match(Y))re=re.replace(Y,"/");else if(re.match(Q))re=re.replace(Q,"/"),he.pop();else if(re==="."||re==="..")re="";else{var z=re.match(ve);if(!z)throw new Error("Unexpected dot segment condition");var q=z[0];re=re.slice(q.length),he.push(q)}return he.join("")}function Me(re){var he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},z=he.iri?c:l,q=[],X=_[(he.scheme||re.scheme||"").toLowerCase()];if(X&&X.serialize&&X.serialize(re,he),re.host&&!z.IPV6ADDRESS.test(re.host)){if(he.domainHost||X&&X.domainHost)try{re.host=he.iri?C.toUnicode(re.host):C.toASCII(re.host.replace(z.PCT_ENCODED,Z).toLowerCase())}catch(Te){re.error=re.error||"Host's domain name can not be converted to "+(he.iri?"Unicode":"ASCII")+" via punycode: "+Te}}pe(re,z),he.reference!=="suffix"&&re.scheme&&(q.push(re.scheme),q.push(":"));var de=fe(re,he);if(de!==void 0&&(he.reference!=="suffix"&&q.push("//"),q.push(de),re.path&&re.path.charAt(0)!=="/"&&q.push("/")),re.path!==void 0){var je=re.path;he.absolutePath||X&&X.absolutePath||(je=Ae(je)),de===void 0&&(je=je.replace(/^\/\//,"/%2F")),q.push(je)}return re.query!==void 0&&(q.push("?"),q.push(re.query)),re.fragment!==void 0&&(q.push("#"),q.push(re.fragment)),q.join("")}function Ve(re,he){var z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},q={};return arguments[3]||(re=ye(Me(re,z),z),he=ye(Me(he,z),z)),!(z=z||{}).tolerant&&he.scheme?(q.scheme=he.scheme,q.userinfo=he.userinfo,q.host=he.host,q.port=he.port,q.path=Ae(he.path||""),q.query=he.query):(he.userinfo!==void 0||he.host!==void 0||he.port!==void 0?(q.userinfo=he.userinfo,q.host=he.host,q.port=he.port,q.path=Ae(he.path||""),q.query=he.query):(he.path?(he.path.charAt(0)==="/"?q.path=Ae(he.path):(re.userinfo===void 0&&re.host===void 0&&re.port===void 0||re.path?re.path?q.path=re.path.slice(0,re.path.lastIndexOf("/")+1)+he.path:q.path=he.path:q.path="/"+he.path,q.path=Ae(q.path)),q.query=he.query):(q.path=re.path,he.query!==void 0?q.query=he.query:q.query=re.query),q.userinfo=re.userinfo,q.host=re.host,q.port=re.port),q.scheme=re.scheme),q.fragment=he.fragment,q}function xe(re,he,z){var q=a({scheme:"null"},z);return Me(Ve(ye(re,q),ye(he,q),q,!0),q)}function Ie(re,he){return typeof re=="string"?re=Me(ye(re,he),he):r(re)==="object"&&(re=ye(Me(re,he),he)),re}function qe(re,he,z){return typeof re=="string"?re=Me(ye(re,z),z):r(re)==="object"&&(re=Me(re,z)),typeof he=="string"?he=Me(ye(he,z),z):r(he)==="object"&&(he=Me(he,z)),re===he}function tt(re,he){return re&&re.toString().replace(he&&he.iri?c.ESCAPE:l.ESCAPE,R)}function We(re,he){return re&&re.toString().replace(he&&he.iri?c.PCT_ENCODED:l.PCT_ENCODED,Z)}var ut={scheme:"http",domainHost:!0,parse:function(re,he){return re.host||(re.error=re.error||"HTTP URIs must have a host."),re},serialize:function(re,he){var z=String(re.scheme).toLowerCase()==="https";return re.port!==(z?443:80)&&re.port!==""||(re.port=void 0),re.path||(re.path="/"),re}},gt={scheme:"https",domainHost:ut.domainHost,parse:ut.parse,serialize:ut.serialize};function Dt(re){return typeof re.secure=="boolean"?re.secure:String(re.scheme).toLowerCase()==="wss"}var jt={scheme:"ws",domainHost:!0,parse:function(re,he){var z=re;return z.secure=Dt(z),z.resourceName=(z.path||"/")+(z.query?"?"+z.query:""),z.path=void 0,z.query=void 0,z},serialize:function(re,he){if(re.port!==(Dt(re)?443:80)&&re.port!==""||(re.port=void 0),typeof re.secure=="boolean"&&(re.scheme=re.secure?"wss":"ws",re.secure=void 0),re.resourceName){var z=re.resourceName.split("?"),q=f(z,2),X=q[0],de=q[1];re.path=X&&X!=="/"?X:void 0,re.query=de,re.resourceName=void 0}return re.fragment=void 0,re}},En={scheme:"wss",domainHost:jt.domainHost,parse:jt.parse,serialize:jt.serialize},Lt={},jn="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",fn="[0-9A-Fa-f]",Kn=n(n("%[EFef]"+fn+"%"+fn+fn+"%"+fn+fn)+"|"+n("%[89A-Fa-f]"+fn+"%"+fn+fn)+"|"+n("%"+fn+fn)),bn="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",Hn=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),Ln="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",Sn=new RegExp(jn,"g"),wn=new RegExp(Kn,"g"),ln=new RegExp(t("[^]",bn,"[\\.]",'[\\"]',Hn),"g"),er=new RegExp(t("[^]",jn,Ln),"g"),Gn=er;function Pe(re){var he=Z(re);return he.match(Sn)?he:re}var dt={scheme:"mailto",parse:function(re,he){var z=re,q=z.to=z.path?z.path.split(","):[];if(z.path=void 0,z.query){for(var X=!1,de={},je=z.query.split("&"),Te=0,it=je.length;Te<it;++Te){var ht=je[Te].split("=");switch(ht[0]){case"to":for(var $t=ht[1].split(","),bt=0,Ht=$t.length;bt<Ht;++bt)q.push($t[bt]);break;case"subject":z.subject=We(ht[1],he);break;case"body":z.body=We(ht[1],he);break;default:X=!0,de[We(ht[0],he)]=We(ht[1],he)}}X&&(z.headers=de)}z.query=void 0;for(var ct=0,on=q.length;ct<on;++ct){var P=q[ct].split("@");if(P[0]=We(P[0]),he.unicodeSupport)P[1]=We(P[1],he).toLowerCase();else try{P[1]=C.toASCII(We(P[1],he).toLowerCase())}catch(J){z.error=z.error||"Email address's domain name can not be converted to ASCII via punycode: "+J}q[ct]=P.join("@")}return z},serialize:function(re,he){var z=re,q=i(re.to);if(q){for(var X=0,de=q.length;X<de;++X){var je=String(q[X]),Te=je.lastIndexOf("@"),it=je.slice(0,Te).replace(wn,Pe).replace(wn,o).replace(ln,R),ht=je.slice(Te+1);try{ht=he.iri?C.toUnicode(ht):C.toASCII(We(ht,he).toLowerCase())}catch(ct){z.error=z.error||"Email address's domain name can not be converted to "+(he.iri?"Unicode":"ASCII")+" via punycode: "+ct}q[X]=it+"@"+ht}z.path=q.join(",")}var $t=re.headers=re.headers||{};re.subject&&($t.subject=re.subject),re.body&&($t.body=re.body);var bt=[];for(var Ht in $t)$t[Ht]!==Lt[Ht]&&bt.push(Ht.replace(wn,Pe).replace(wn,o).replace(er,R)+"="+$t[Ht].replace(wn,Pe).replace(wn,o).replace(Gn,R));return bt.length&&(z.query=bt.join("&")),z}},Ct=/^([^\:]+)\:(.*)/,rn={scheme:"urn",parse:function(re,he){var z=re.path&&re.path.match(Ct),q=re;if(z){var X=he.scheme||q.scheme||"urn",de=z[1].toLowerCase(),je=z[2],Te=X+":"+(he.nid||de),it=_[Te];q.nid=de,q.nss=je,q.path=void 0,it&&(q=it.parse(q,he))}else q.error=q.error||"URN can not be parsed.";return q},serialize:function(re,he){var z=he.scheme||re.scheme||"urn",q=re.nid,X=z+":"+(he.nid||q),de=_[X];de&&(re=de.serialize(re,he));var je=re,Te=re.nss;return je.path=(q||he.nid)+":"+Te,je}},Oe=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,lt={scheme:"urn:uuid",parse:function(re,he){var z=re;return z.uuid=z.nss,z.nss=void 0,he.tolerant||z.uuid&&z.uuid.match(Oe)||(z.error=z.error||"UUID is not valid."),z},serialize:function(re,he){var z=re;return z.nss=(re.uuid||"").toLowerCase(),z}};_[ut.scheme]=ut,_[gt.scheme]=gt,_[jt.scheme]=jt,_[En.scheme]=En,_[dt.scheme]=dt,_[rn.scheme]=rn,_[lt.scheme]=lt,e.SCHEMES=_,e.pctEncChar=R,e.pctDecChars=Z,e.parse=ye,e.removeDotSegments=Ae,e.serialize=Me,e.resolveComponents=Ve,e.resolve=xe,e.normalize=Ie,e.equal=qe,e.escapeComponent=tt,e.unescapeComponent=We,Object.defineProperty(e,"__esModule",{value:!0})})(MB.exports);var rhe=MB.exports;Object.defineProperty(mx,"__esModule",{value:!0});var PB=rhe;PB.code='require("ajv/dist/runtime/uri").default',mx.default=PB,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=Og();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=qn();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});var r=fx(),o=dx(),i=tu,a=ki,s=qn(),l=Mo,c=Vh,f=Qn,u=nhe,d=mx,h=function(U,K){return new RegExp(U,K)};h.code="new RegExp";var p=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),v={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},g={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=function(){function U(){var K=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};le(this,U),this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,K=this.opts=Ce(Ce({},K),function(S){var C,_,R,Z,pe,_e,ke,ue,Ne,oe,ye,fe,Fe,Y,Q,ve,Ae,Me,Ve,xe,Ie,qe,tt,We,ut,gt=S.strict,Dt=(C=S.code)===null||C===void 0?void 0:C.optimize,jt=Dt===!0||Dt===void 0?1:Dt||0,En=(R=(_=S.code)===null||_===void 0?void 0:_.regExp)!==null&&R!==void 0?R:h,Lt=(Z=S.uriResolver)!==null&&Z!==void 0?Z:d.default;return{strictSchema:(_e=(pe=S.strictSchema)!==null&&pe!==void 0?pe:gt)===null||_e===void 0||_e,strictNumbers:(ue=(ke=S.strictNumbers)!==null&&ke!==void 0?ke:gt)===null||ue===void 0||ue,strictTypes:(oe=(Ne=S.strictTypes)!==null&&Ne!==void 0?Ne:gt)!==null&&oe!==void 0?oe:"log",strictTuples:(fe=(ye=S.strictTuples)!==null&&ye!==void 0?ye:gt)!==null&&fe!==void 0?fe:"log",strictRequired:(Y=(Fe=S.strictRequired)!==null&&Fe!==void 0?Fe:gt)!==null&&Y!==void 0&&Y,code:S.code?Ce(Ce({},S.code),{},{optimize:jt,regExp:En}):{optimize:jt,regExp:En},loopRequired:(Q=S.loopRequired)!==null&&Q!==void 0?Q:200,loopEnum:(ve=S.loopEnum)!==null&&ve!==void 0?ve:200,meta:(Ae=S.meta)===null||Ae===void 0||Ae,messages:(Me=S.messages)===null||Me===void 0||Me,inlineRefs:(Ve=S.inlineRefs)===null||Ve===void 0||Ve,schemaId:(xe=S.schemaId)!==null&&xe!==void 0?xe:"$id",addUsedSchema:(Ie=S.addUsedSchema)===null||Ie===void 0||Ie,validateSchema:(qe=S.validateSchema)===null||qe===void 0||qe,validateFormats:(tt=S.validateFormats)===null||tt===void 0||tt,unicodeRegExp:(We=S.unicodeRegExp)===null||We===void 0||We,int32range:(ut=S.int32range)===null||ut===void 0||ut,uriResolver:Lt}}(K));var A=this.opts.code,T=A.es5,x=A.lines;this.scope=new s.ValueScope({scope:{},prefixes:m,es5:T,lines:x}),this.logger=function(S){if(S===!1)return D;if(S===void 0)return console;if(S.log&&S.warn&&S.error)return S;throw new Error("logger must implement log, warn and error methods")}(K.logger);var O=K.validateFormats;K.validateFormats=!1,this.RULES=(0,i.getRules)(),w.call(this,v,K,"NOT SUPPORTED"),w.call(this,g,K,"DEPRECATED","warn"),this._metaOpts=I.call(this),K.formats&&j.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),K.keywords&&E.call(this,K.keywords),yt(K.meta)=="object"&&this.addMetaSchema(K.meta),$.call(this),K.validateFormats=O}return ce(U,[{key:"_addVocabularies",value:function(){this.addKeyword("$async")}},{key:"_addDefaultMetaSchema",value:function(){var K=this.opts,A=K.$data,T=K.meta,x=K.schemaId,O=u;x==="id"&&((O=Ce({},u)).id=O.$id,delete O.$id),T&&A&&this.addMetaSchema(O,O[x],!1)}},{key:"defaultMeta",value:function(){var K=this.opts,A=K.meta,T=K.schemaId;return this.opts.defaultMeta=yt(A)=="object"?A[T]||A:void 0}},{key:"validate",value:function(K,A){var T;if(typeof K=="string"){if(!(T=this.getSchema(K)))throw new Error('no schema with key or ref "'.concat(K,'"'))}else T=this.compile(K);var x=T(A);return"$async"in T||(this.errors=T.errors),x}},{key:"compile",value:function(K,A){var T=this._addSchema(K,A);return T.validate||this._compileSchemaEnv(T)}},{key:"compileAsync",value:function(K,A){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");var T=this.opts.loadSchema;return x.call(this,K,A);function x(Ne,oe){return O.apply(this,arguments)}function O(){return(O=en(et().mark(function Ne(oe,ye){var fe;return et().wrap(function(Fe){for(;;)switch(Fe.prev=Fe.next){case 0:return Fe.next=2,S.call(this,oe.$schema);case 2:return fe=this._addSchema(oe,ye),Fe.abrupt("return",fe.validate||_.call(this,fe));case 4:case"end":return Fe.stop()}},Ne,this)}))).apply(this,arguments)}function S(Ne){return C.apply(this,arguments)}function C(){return(C=en(et().mark(function Ne(oe){return et().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:if(!oe||this.getSchema(oe)){ye.next=3;break}return ye.next=3,x.call(this,{$ref:oe},!0);case 3:case"end":return ye.stop()}},Ne,this)}))).apply(this,arguments)}function _(Ne){return R.apply(this,arguments)}function R(){return(R=en(et().mark(function Ne(oe){return et().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.prev=0,ye.abrupt("return",this._compileSchemaEnv(oe));case 4:if(ye.prev=4,ye.t0=ye.catch(0),ye.t0 instanceof o.default){ye.next=8;break}throw ye.t0;case 8:return Z.call(this,ye.t0),ye.next=11,pe.call(this,ye.t0.missingSchema);case 11:return ye.abrupt("return",_.call(this,oe));case 12:case"end":return ye.stop()}},Ne,this,[[0,4]])}))).apply(this,arguments)}function Z(Ne){var oe=Ne.missingSchema,ye=Ne.missingRef;if(this.refs[oe])throw new Error("AnySchema ".concat(oe," is loaded but ").concat(ye," cannot be resolved"))}function pe(Ne){return _e.apply(this,arguments)}function _e(){return _e=en(et().mark(function Ne(oe){var ye;return et().wrap(function(fe){for(;;)switch(fe.prev=fe.next){case 0:return fe.next=2,ke.call(this,oe);case 2:if(ye=fe.sent,this.refs[oe]){fe.next=6;break}return fe.next=6,S.call(this,ye.$schema);case 6:this.refs[oe]||this.addSchema(ye,oe,A);case 7:case"end":return fe.stop()}},Ne,this)})),_e.apply(this,arguments)}function ke(Ne){return ue.apply(this,arguments)}function ue(){return ue=en(et().mark(function Ne(oe){var ye;return et().wrap(function(fe){for(;;)switch(fe.prev=fe.next){case 0:if(!(ye=this._loading[oe])){fe.next=3;break}return fe.abrupt("return",ye);case 3:return fe.prev=3,fe.next=6,this._loading[oe]=T(oe);case 6:return fe.abrupt("return",fe.sent);case 7:return fe.prev=7,delete this._loading[oe],fe.finish(7);case 10:case"end":return fe.stop()}},Ne,this,[[3,,7,10]])})),ue.apply(this,arguments)}}},{key:"addSchema",value:function(K,A,T){var x,O=arguments.length>3&&arguments[3]!==void 0?arguments[3]:this.opts.validateSchema;if(Array.isArray(K)){var S,C=we(K);try{for(C.s();!(S=C.n()).done;){var _=S.value;this.addSchema(_,void 0,T,O)}}catch(Z){C.e(Z)}finally{C.f()}return this}if(yt(K)==="object"){var R=this.opts.schemaId;if((x=K[R])!==void 0&&typeof x!="string")throw new Error("schema ".concat(R," must be string"))}return A=(0,l.normalizeId)(A||x),this._checkUnique(A),this.schemas[A]=this._addSchema(K,T,A,O,!0),this}},{key:"addMetaSchema",value:function(K,A){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.opts.validateSchema;return this.addSchema(K,A,!0,T),this}},{key:"validateSchema",value:function(K,A){if(typeof K=="boolean")return!0;var T;if((T=K.$schema)!==void 0&&typeof T!="string")throw new Error("$schema must be a string");if(!(T=T||this.opts.defaultMeta||this.defaultMeta()))return this.logger.warn("meta-schema not available"),this.errors=null,!0;var x=this.validate(T,K);if(!x&&A){var O="schema is invalid: "+this.errorsText();if(this.opts.validateSchema!=="log")throw new Error(O);this.logger.error(O)}return x}},{key:"getSchema",value:function(K){for(var A;typeof(A=k.call(this,K))=="string";)K=A;if(A===void 0){var T=this.opts.schemaId,x=new a.SchemaEnv({schema:{},schemaId:T});if(!(A=a.resolveSchema.call(this,x,K)))return;this.refs[K]=A}return A.validate||this._compileSchemaEnv(A)}},{key:"removeSchema",value:function(K){if(K instanceof RegExp)return this._removeAllSchemas(this.schemas,K),this._removeAllSchemas(this.refs,K),this;switch(yt(K)){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":var A=k.call(this,K);return yt(A)=="object"&&this._cache.delete(A.schema),delete this.schemas[K],delete this.refs[K],this;case"object":var T=K;this._cache.delete(T);var x=K[this.opts.schemaId];return x&&(x=(0,l.normalizeId)(x),delete this.schemas[x],delete this.refs[x]),this;default:throw new Error("ajv.removeSchema: invalid parameter")}}},{key:"addVocabulary",value:function(K){var A,T=we(K);try{for(T.s();!(A=T.n()).done;){var x=A.value;this.addKeyword(x)}}catch(O){T.e(O)}finally{T.f()}return this}},{key:"addKeyword",value:function(K,A){var T,x=this;if(typeof K=="string")T=K,yt(A)=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),A.keyword=T);else{if(yt(K)!="object"||A!==void 0)throw new Error("invalid addKeywords parameters");if(T=(A=K).keyword,Array.isArray(T)&&!T.length)throw new Error("addKeywords: keyword must be string or non-empty array")}if(M.call(this,T,A),!A)return(0,f.eachItem)(T,function(S){return F.call(x,S)}),this;N.call(this,A);var O=Ce(Ce({},A),{},{type:(0,c.getJSONTypes)(A.type),schemaType:(0,c.getJSONTypes)(A.schemaType)});return(0,f.eachItem)(T,O.type.length===0?function(S){return F.call(x,S,O)}:function(S){return O.type.forEach(function(C){return F.call(x,S,O,C)})}),this}},{key:"getKeyword",value:function(K){var A=this.RULES.all[K];return yt(A)=="object"?A.definition:!!A}},{key:"removeKeyword",value:function(K){var A=this.RULES;delete A.keywords[K],delete A.all[K];var T,x=we(A.rules);try{for(x.s();!(T=x.n()).done;){var O=T.value,S=O.rules.findIndex(function(C){return C.keyword===K});S>=0&&O.rules.splice(S,1)}}catch(C){x.e(C)}finally{x.f()}return this}},{key:"addFormat",value:function(K,A){return typeof A=="string"&&(A=new RegExp(A)),this.formats[K]=A,this}},{key:"errorsText",value:function(){var K=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.errors,A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},T=A.separator,x=T===void 0?", ":T,O=A.dataVar,S=O===void 0?"data":O;return K&&K.length!==0?K.map(function(C){return"".concat(S).concat(C.instancePath," ").concat(C.message)}).reduce(function(C,_){return C+x+_}):"No errors"}},{key:"$dataMetaSchema",value:function(K,A){var T=this.RULES.all;K=JSON.parse(JSON.stringify(K));var x,O=we(A);try{for(O.s();!(x=O.n()).done;){var S,C=x.value.split("/").slice(1),_=K,R=we(C);try{for(R.s();!(S=R.n()).done;)_=_[S.value]}catch(ue){R.e(ue)}finally{R.f()}for(var Z in T){var pe=T[Z];if(yt(pe)=="object"){var _e=pe.definition.$data,ke=_[Z];_e&&ke&&(_[Z]=ee(ke))}}}}catch(ue){O.e(ue)}finally{O.f()}return K}},{key:"_removeAllSchemas",value:function(K,A){for(var T in K){var x=K[T];A&&!A.test(T)||(typeof x=="string"?delete K[T]:x&&!x.meta&&(this._cache.delete(x.schema),delete K[T]))}}},{key:"_addSchema",value:function(K,A,T){var x,O=arguments.length>3&&arguments[3]!==void 0?arguments[3]:this.opts.validateSchema,S=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.opts.addUsedSchema,C=this.opts.schemaId;if(yt(K)=="object")x=K[C];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof K!="boolean")throw new Error("schema must be object or boolean")}var _=this._cache.get(K);if(_!==void 0)return _;T=(0,l.normalizeId)(x||T);var R=l.getSchemaRefs.call(this,K,T);return _=new a.SchemaEnv({schema:K,schemaId:C,meta:A,baseId:T,localRefs:R}),this._cache.set(_.schema,_),S&&!T.startsWith("#")&&(T&&this._checkUnique(T),this.refs[T]=_),O&&this.validateSchema(K,!0),_}},{key:"_checkUnique",value:function(K){if(this.schemas[K]||this.refs[K])throw new Error('schema with key or id "'.concat(K,'" already exists'))}},{key:"_compileSchemaEnv",value:function(K){if(K.meta?this._compileMetaSchema(K):a.compileSchema.call(this,K),!K.validate)throw new Error("ajv implementation error");return K.validate}},{key:"_compileMetaSchema",value:function(K){var A=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,K)}finally{this.opts=A}}}]),U}();function w(U,K,A){var T=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"error";for(var x in U){var O=x;O in K&&this.logger[T]("".concat(A,": option ").concat(x,". ").concat(U[O]))}}function k(U){return U=(0,l.normalizeId)(U),this.schemas[U]||this.refs[U]}function $(){var U=this.opts.schemas;if(U)if(Array.isArray(U))this.addSchema(U);else for(var K in U)this.addSchema(U[K],K)}function j(){for(var U in this.opts.formats){var K=this.opts.formats[U];K&&this.addFormat(U,K)}}function E(U){if(Array.isArray(U))this.addVocabulary(U);else for(var K in this.logger.warn("keywords option as map is deprecated, pass array"),U){var A=U[K];A.keyword||(A.keyword=K),this.addKeyword(A)}}function I(){var U,K=Ce({},this.opts),A=we(p);try{for(A.s();!(U=A.n()).done;)delete K[U.value]}catch(T){A.e(T)}finally{A.f()}return K}e.default=y,y.ValidationError=r.default,y.MissingRefError=o.default;var D={log:function(){},warn:function(){},error:function(){}},L=/^[a-z_$][a-z0-9_$:-]*$/i;function M(U,K){var A=this.RULES;if((0,f.eachItem)(U,function(T){if(A.keywords[T])throw new Error("Keyword ".concat(T," is already defined"));if(!L.test(T))throw new Error("Keyword ".concat(T," has invalid name"))}),K&&K.$data&&!("code"in K)&&!("validate"in K))throw new Error('$data keyword must have "code" or "validate" function')}function F(U,K,A){var T,x=this,O=K==null?void 0:K.post;if(A&&O)throw new Error('keyword with "post" flag cannot have "type"');var S=this.RULES,C=O?S.post:S.rules.find(function(R){return R.type===A});if(C||(C={type:A,rules:[]},S.rules.push(C)),S.keywords[U]=!0,K){var _={keyword:U,definition:Ce(Ce({},K),{},{type:(0,c.getJSONTypes)(K.type),schemaType:(0,c.getJSONTypes)(K.schemaType)})};K.before?H.call(this,C,_,K.before):C.rules.push(_),S.all[U]=_,(T=K.implements)===null||T===void 0||T.forEach(function(R){return x.addKeyword(R)})}}function H(U,K,A){var T=U.rules.findIndex(function(x){return x.keyword===A});T>=0?U.rules.splice(T,0,K):(U.rules.push(K),this.logger.warn("rule ".concat(A," is not defined")))}function N(U){var K=U.metaSchema;K!==void 0&&(U.$data&&this.opts.$data&&(K=ee(K)),U.validateSchema=this.compile(K,!0))}var W={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function ee(U){return{anyOf:[U,W]}}}(iB);var vx={},gx={},yx={};Object.defineProperty(yx,"__esModule",{value:!0});var ohe={keyword:"id",code:function(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};yx.default=ohe;var ru={};Object.defineProperty(ru,"__esModule",{value:!0}),ru.callRef=ru.getValidate=void 0;var ihe=dx(),NB=Ra(),xi=qn(),If=rc(),IB=ki,Ng=Qn,ahe={keyword:"$ref",schemaType:"string",code:function(e){var t=e.gen,n=e.schema,r=e.it,o=r.baseId,i=r.schemaEnv,a=r.validateName,s=r.opts,l=r.self,c=i.root;if((n==="#"||n==="#/")&&o===c.baseId)return function(){if(i===c)return Ig(e,a,i,i.$async);var m=t.scopeValue("root",{ref:c});return Ig(e,(0,xi._)(d$||(d$=me(["",".validate"])),m),c,c.$async)}();var f,u,d,h,p=IB.resolveRef.call(l,c,o,n);if(p===void 0)throw new ihe.default(r.opts.uriResolver,o,n);return p instanceof IB.SchemaEnv?function(m){var v=DB(e,m);Ig(e,v,m,m.$async)}(p):(f=p,u=t.scopeValue("schema",s.code.source===!0?{ref:f,code:(0,xi.stringify)(f)}:{ref:f}),d=t.name("valid"),h=e.subschema({schema:f,dataTypes:[],schemaPath:xi.nil,topSchemaRef:u,errSchemaPath:n},d),e.mergeEvaluated(h),void e.ok(d))}};function DB(e,t){var n=e.gen;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,xi._)(h$||(h$=me(["",".validate"])),n.scopeValue("wrapper",{ref:t}))}function Ig(e,t,n,r){var o=e.gen,i=e.it,a=i.allErrors,s=i.schemaEnv,l=i.opts.passContext?If.default.this:xi.nil;function c(u){var d=(0,xi._)(v$||(v$=me(["",".errors"])),u);o.assign(If.default.vErrors,(0,xi._)(g$||(g$=me([""," === null ? "," : ",".concat(",")"])),If.default.vErrors,d,If.default.vErrors,d)),o.assign(If.default.errors,(0,xi._)(y$||(y$=me(["",".length"])),If.default.vErrors))}function f(u){var d;if(i.opts.unevaluated){var h=(d=n==null?void 0:n.validate)===null||d===void 0?void 0:d.evaluated;if(i.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(i.props=Ng.mergeEvaluated.props(o,h.props,i.props));else{var p=o.var("props",(0,xi._)(b$||(b$=me(["",".evaluated.props"])),u));i.props=Ng.mergeEvaluated.props(o,p,i.props,xi.Name)}if(i.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(i.items=Ng.mergeEvaluated.items(o,h.items,i.items));else{var m=o.var("items",(0,xi._)(w$||(w$=me(["",".evaluated.items"])),u));i.items=Ng.mergeEvaluated.items(o,m,i.items,xi.Name)}}}r?function(){if(!s.$async)throw new Error("async schema referenced by sync schema");var u=o.let("valid");o.try(function(){o.code((0,xi._)(p$||(p$=me(["await ",""])),(0,NB.callValidateCode)(e,t,l))),f(t),a||o.assign(u,!0)},function(d){o.if((0,xi._)(m$||(m$=me(["!("," instanceof ",")"])),d,i.ValidationError),function(){return o.throw(d)}),c(d),a||o.assign(u,!1)}),e.ok(u)}():e.result((0,NB.callValidateCode)(e,t,l),function(){return f(t)},function(){return c(t)})}ru.getValidate=DB,ru.callRef=Ig,ru.default=ahe,Object.defineProperty(gx,"__esModule",{value:!0});var she=ru,lhe=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",yx.default,she.default];gx.default=lhe;var bx={},wx={};Object.defineProperty(wx,"__esModule",{value:!0});var Dg=qn(),ic=Dg.operators,Lg={maximum:{okStr:"<=",ok:ic.LTE,fail:ic.GT},minimum:{okStr:">=",ok:ic.GTE,fail:ic.LT},exclusiveMaximum:{okStr:"<",ok:ic.LT,fail:ic.GTE},exclusiveMinimum:{okStr:">",ok:ic.GT,fail:ic.LTE}},che={message:function(e){var t=e.keyword,n=e.schemaCode;return(0,Dg.str)(k$||(k$=me(["must be "," ",""])),Lg[t].okStr,n)},params:function(e){var t=e.keyword,n=e.schemaCode;return(0,Dg._)(x$||(x$=me(["{comparison: ",", limit: ","}"])),Lg[t].okStr,n)}},uhe={keyword:Object.keys(Lg),type:"number",schemaType:"number",$data:!0,error:che,code:function(e){var t=e.keyword,n=e.data,r=e.schemaCode;e.fail$data((0,Dg._)(_$||(_$=me([""," "," "," || isNaN(",")"])),n,Lg[t].fail,r,n))}};wx.default=uhe;var kx={};Object.defineProperty(kx,"__esModule",{value:!0});var qh=qn(),fhe={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:function(e){var t=e.schemaCode;return(0,qh.str)(j$||(j$=me(["must be multiple of ",""])),t)},params:function(e){var t=e.schemaCode;return(0,qh._)(S$||(S$=me(["{multipleOf: ","}"])),t)}},code:function(e){var t=e.gen,n=e.data,r=e.schemaCode,o=e.it.opts.multipleOfPrecision,i=t.let("res"),a=o?(0,qh._)(C$||(C$=me(["Math.abs(Math.round(",") - ",") > 1e-",""])),i,i,o):(0,qh._)($$||($$=me([""," !== parseInt(",")"])),i,i);e.fail$data((0,qh._)(T$||(T$=me(["("," === 0 || ("," = ","/",", ","))"])),r,i,n,r,a))}};kx.default=fhe;var xx={},_x={};function LB(e){for(var t,n=e.length,r=0,o=0;o<n;)r++,(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<n&&(64512&(t=e.charCodeAt(o)))==56320&&o++;return r}Object.defineProperty(_x,"__esModule",{value:!0}),_x.default=LB,LB.code='require("ajv/dist/runtime/ucs2length").default',Object.defineProperty(xx,"__esModule",{value:!0});var ou=qn(),dhe=Qn,hhe=_x,phe={message:function(e){var t=e.keyword,n=e.schemaCode,r=t==="maxLength"?"more":"fewer";return(0,ou.str)(O$||(O$=me(["must NOT have "," than "," characters"])),r,n)},params:function(e){var t=e.schemaCode;return(0,ou._)(E$||(E$=me(["{limit: ","}"])),t)}},mhe={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:phe,code:function(e){var t=e.keyword,n=e.data,r=e.schemaCode,o=e.it,i=t==="maxLength"?ou.operators.GT:ou.operators.LT,a=o.opts.unicode===!1?(0,ou._)(A$||(A$=me(["",".length"])),n):(0,ou._)(M$||(M$=me(["","(",")"])),(0,dhe.useFunc)(e.gen,hhe.default),n);e.fail$data((0,ou._)(P$||(P$=me([""," "," ",""])),a,i,r))}};xx.default=mhe;var jx={};Object.defineProperty(jx,"__esModule",{value:!0});var vhe=Ra(),Rg=qn(),ghe={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:function(e){var t=e.schemaCode;return(0,Rg.str)(N$||(N$=me(['must match pattern "','"'])),t)},params:function(e){var t=e.schemaCode;return(0,Rg._)(I$||(I$=me(["{pattern: ","}"])),t)}},code:function(e){var t=e.data,n=e.$data,r=e.schema,o=e.schemaCode,i=e.it.opts.unicodeRegExp?"u":"",a=n?(0,Rg._)(D$||(D$=me(["(new RegExp(",", ","))"])),o,i):(0,vhe.usePattern)(e,r);e.fail$data((0,Rg._)(L$||(L$=me(["!",".test(",")"])),a,t))}};jx.default=ghe;var Sx={};Object.defineProperty(Sx,"__esModule",{value:!0});var Uh=qn(),yhe={message:function(e){var t=e.keyword,n=e.schemaCode,r=t==="maxProperties"?"more":"fewer";return(0,Uh.str)(R$||(R$=me(["must NOT have "," than "," properties"])),r,n)},params:function(e){var t=e.schemaCode;return(0,Uh._)(B$||(B$=me(["{limit: ","}"])),t)}},bhe={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:yhe,code:function(e){var t=e.keyword,n=e.data,r=e.schemaCode,o=t==="maxProperties"?Uh.operators.GT:Uh.operators.LT;e.fail$data((0,Uh._)(F$||(F$=me(["Object.keys(",").length "," ",""])),n,o,r))}};Sx.default=bhe;var Cx={};Object.defineProperty(Cx,"__esModule",{value:!0});var Hh=Ra(),Wh=qn(),whe=Qn,khe={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:function(e){var t=e.params.missingProperty;return(0,Wh.str)(V$||(V$=me(["must have required property '","'"])),t)},params:function(e){var t=e.params.missingProperty;return(0,Wh._)(z$||(z$=me(["{missingProperty: ","}"])),t)}},code:function(e){var t=e.gen,n=e.schema,r=e.schemaCode,o=e.data,i=e.$data,a=e.it,s=a.opts;if(i||n.length!==0){var l=n.length>=s.loopRequired;if(a.allErrors?function(){if(l||i)e.block$data(Wh.nil,v);else{var g,y=we(n);try{for(y.s();!(g=y.n()).done;){var w=g.value;(0,Hh.checkReportMissingProp)(e,w)}}catch(k){y.e(k)}finally{y.f()}}}():function(){var g=t.let("missing");if(l||i){var y=t.let("valid",!0);e.block$data(y,function(){return function(w,k){e.setParams({missingProperty:w}),t.forOf(w,r,function(){t.assign(k,(0,Hh.propertyInData)(t,o,w,s.ownProperties)),t.if((0,Wh.not)(k),function(){e.error(),t.break()})},Wh.nil)}(g,y)}),e.ok(y)}else t.if((0,Hh.checkMissingProp)(e,n,g)),(0,Hh.reportMissingProp)(e,g),t.else()}(),s.strictRequired){var c,f=e.parentSchema.properties,u=e.it.definedProperties,d=we(n);try{for(d.s();!(c=d.n()).done;){var h=c.value;if((f==null?void 0:f[h])===void 0&&!u.has(h)){var p=a.schemaEnv.baseId+a.errSchemaPath,m='required property "'.concat(h,'" is not defined at "').concat(p,'" (strictRequired)');(0,whe.checkStrictMode)(a,m,a.opts.strictRequired)}}}catch(g){d.e(g)}finally{d.f()}}}function v(){t.forOf("prop",r,function(g){e.setParams({missingProperty:g}),t.if((0,Hh.noPropertyInData)(t,o,g,s.ownProperties),function(){return e.error()})})}}};Cx.default=khe;var $x={};Object.defineProperty($x,"__esModule",{value:!0});var Kh=qn(),xhe={message:function(e){var t=e.keyword,n=e.schemaCode,r=t==="maxItems"?"more":"fewer";return(0,Kh.str)(q$||(q$=me(["must NOT have "," than "," items"])),r,n)},params:function(e){var t=e.schemaCode;return(0,Kh._)(U$||(U$=me(["{limit: ","}"])),t)}},_he={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:xhe,code:function(e){var t=e.keyword,n=e.data,r=e.schemaCode,o=t==="maxItems"?Kh.operators.GT:Kh.operators.LT;e.fail$data((0,Kh._)(H$||(H$=me(["",".length "," ",""])),n,o,r))}};$x.default=_he;var Tx={},Gh={};Object.defineProperty(Gh,"__esModule",{value:!0});var RB=xB;RB.code='require("ajv/dist/runtime/equal").default',Gh.default=RB,Object.defineProperty(Tx,"__esModule",{value:!0});var Ox=Vh,Po=qn(),jhe=Qn,She=Gh,Che={message:function(e){var t=e.params,n=t.i,r=t.j;return(0,Po.str)(W$||(W$=me(["must NOT have duplicate items (items ## "," and "," are identical)"])),r,n)},params:function(e){var t=e.params,n=t.i,r=t.j;return(0,Po._)(K$||(K$=me(["{i: ",", j: ","}"])),n,r)}},$he={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Che,code:function(e){var t=e.gen,n=e.data,r=e.$data,o=e.schema,i=e.parentSchema,a=e.schemaCode,s=e.it;if(r||o){var l=t.let("valid"),c=i.items?(0,Ox.getSchemaTypes)(i.items):[];e.block$data(l,function(){var d=t.let("i",(0,Po._)(J$||(J$=me(["",".length"])),n)),h=t.let("j");e.setParams({i:d,j:h}),t.assign(l,!0),t.if((0,Po._)(Q$||(Q$=me([""," > 1"])),d),function(){return(c.length>0&&!c.some(function(p){return p==="object"||p==="array"})?f:u)(d,h)})},(0,Po._)(G$||(G$=me([""," === false"])),a)),e.ok(l)}function f(d,h){var p=t.name("item"),m=(0,Ox.checkDataTypes)(c,p,s.opts.strictNumbers,Ox.DataType.Wrong),v=t.const("indices",(0,Po._)(Y$||(Y$=me(["{}"]))));t.for((0,Po._)(X$||(X$=me([";","--;"])),d),function(){t.let(p,(0,Po._)(Z$||(Z$=me(["","[","]"])),n,d)),t.if(m,(0,Po._)(eT||(eT=me(["continue"])))),c.length>1&&t.if((0,Po._)(tT||(tT=me(["typeof ",' == "string"'])),p),(0,Po._)(nT||(nT=me(["",' += "_"'])),p)),t.if((0,Po._)(rT||(rT=me(["typeof ","[",'] == "number"'])),v,p),function(){t.assign(h,(0,Po._)(oT||(oT=me(["","[","]"])),v,p)),e.error(),t.assign(l,!1).break()}).code((0,Po._)(iT||(iT=me(["","[","] = ",""])),v,p,d))})}function u(d,h){var p=(0,jhe.useFunc)(t,She.default),m=t.name("outer");t.label(m).for((0,Po._)(aT||(aT=me([";","--;"])),d),function(){return t.for((0,Po._)(sT||(sT=me([""," = ","; ","--;"])),h,d,h),function(){return t.if((0,Po._)(lT||(lT=me(["","(","[","], ","[","])"])),p,n,d,n,h),function(){e.error(),t.assign(l,!1).break(m)})})})}}};Tx.default=$he;var Ex={};Object.defineProperty(Ex,"__esModule",{value:!0});var Ax=qn(),The=Qn,Ohe=Gh,Ehe={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:function(e){var t=e.schemaCode;return(0,Ax._)(cT||(cT=me(["{allowedValue: ","}"])),t)}},code:function(e){var t=e.gen,n=e.data,r=e.$data,o=e.schemaCode,i=e.schema;r||i&&yt(i)=="object"?e.fail$data((0,Ax._)(uT||(uT=me(["!","(",", ",")"])),(0,The.useFunc)(t,Ohe.default),n,o)):e.fail((0,Ax._)(fT||(fT=me([""," !== ",""])),i,n))}};Ex.default=Ehe;var Mx={};Object.defineProperty(Mx,"__esModule",{value:!0});var Jh=qn(),Ahe=Qn,Mhe=Gh,Phe={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:function(e){var t=e.schemaCode;return(0,Jh._)(dT||(dT=me(["{allowedValues: ","}"])),t)}},code:function(e){var t=e.gen,n=e.data,r=e.$data,o=e.schema,i=e.schemaCode,a=e.it;if(!r&&o.length===0)throw new Error("enum must have non-empty array");var s,l,c=o.length>=a.opts.loopEnum,f=function(){return s??(s=(0,Ahe.useFunc)(t,Mhe.default))};if(c||r)l=t.let("valid"),e.block$data(l,function(){t.assign(l,!1),t.forOf("v",i,function(d){return t.if((0,Jh._)(hT||(hT=me(["","(",", ",")"])),f(),n,d),function(){return t.assign(l,!0).break()})})});else{if(!Array.isArray(o))throw new Error("ajv implementation error");var u=t.const("vSchema",i);l=Jh.or.apply(void 0,Zt(o.map(function(d,h){return function(p,m){var v=o[m];return yt(v)==="object"&&v!==null?(0,Jh._)(pT||(pT=me(["","(",", ","[","])"])),f(),n,p,m):(0,Jh._)(mT||(mT=me([""," === ",""])),n,v)}(u,h)})))}e.pass(l)}};Mx.default=Phe,Object.defineProperty(bx,"__esModule",{value:!0});var Nhe=kx,Ihe=xx,Dhe=jx,Lhe=Sx,Rhe=Cx,Bhe=$x,Fhe=Tx,Vhe=Ex,zhe=Mx,qhe=[wx.default,Nhe.default,Ihe.default,Dhe.default,Lhe.default,Rhe.default,Bhe.default,Fhe.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Vhe.default,zhe.default];bx.default=qhe;var Px={},Df={};Object.defineProperty(Df,"__esModule",{value:!0}),Df.validateAdditionalItems=void 0;var iu=qn(),Nx=Qn,Uhe={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:function(e){var t=e.params.len;return(0,iu.str)(vT||(vT=me(["must NOT have more than "," items"])),t)},params:function(e){var t=e.params.len;return(0,iu._)(gT||(gT=me(["{limit: ","}"])),t)}},code:function(e){var t=e.parentSchema,n=e.it,r=t.items;Array.isArray(r)?BB(e,r):(0,Nx.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas')}};function BB(e,t){var n=e.gen,r=e.schema,o=e.data,i=e.keyword,a=e.it;a.items=!0;var s=n.const("len",(0,iu._)(yT||(yT=me(["",".length"])),o));if(r===!1)e.setParams({len:t.length}),e.pass((0,iu._)(bT||(bT=me([""," <= ",""])),s,t.length));else if(yt(r)=="object"&&!(0,Nx.alwaysValidSchema)(a,r)){var l=n.var("valid",(0,iu._)(wT||(wT=me([""," <= ",""])),s,t.length));n.if((0,iu.not)(l),function(){return function(c){n.forRange("i",t.length,s,function(f){e.subschema({keyword:i,dataProp:f,dataPropType:Nx.Type.Num},c),a.allErrors||n.if((0,iu.not)(c),function(){return n.break()})})}(l)}),e.ok(l)}}Df.validateAdditionalItems=BB,Df.default=Uhe;var Ix={},Lf={};Object.defineProperty(Lf,"__esModule",{value:!0}),Lf.validateTuple=void 0;var FB=qn(),Bg=Qn,Hhe=Ra(),Whe={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code:function(e){var t=e.schema,n=e.it;if(Array.isArray(t))return VB(e,"additionalItems",t);n.items=!0,(0,Bg.alwaysValidSchema)(n,t)||e.ok((0,Hhe.validateArray)(e))}};function VB(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.schema,r=e.gen,o=e.parentSchema,i=e.data,a=e.keyword,s=e.it;(function(f){var u=s.opts,d=s.errSchemaPath,h=n.length,p=h===f.minItems&&(h===f.maxItems||f[t]===!1);if(u.strictTuples&&!p){var m='"'.concat(a,'" is ').concat(h,"-tuple, but minItems or maxItems/").concat(t,' are not specified or different at path "').concat(d,'"');(0,Bg.checkStrictMode)(s,m,u.strictTuples)}})(o),s.opts.unevaluated&&n.length&&s.items!==!0&&(s.items=Bg.mergeEvaluated.items(r,n.length,s.items));var l=r.name("valid"),c=r.const("len",(0,FB._)(kT||(kT=me(["",".length"])),i));n.forEach(function(f,u){(0,Bg.alwaysValidSchema)(s,f)||(r.if((0,FB._)(xT||(xT=me([""," > ",""])),c,u),function(){return e.subschema({keyword:a,schemaProp:u,dataProp:u},l)}),e.ok(l))})}Lf.validateTuple=VB,Lf.default=Whe,Object.defineProperty(Ix,"__esModule",{value:!0});var Khe=Lf,Ghe={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:function(e){return(0,Khe.validateTuple)(e,"items")}};Ix.default=Ghe;var Dx={};Object.defineProperty(Dx,"__esModule",{value:!0});var zB=qn(),Jhe=Qn,Qhe=Ra(),Yhe=Df,Xhe={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:function(e){var t=e.params.len;return(0,zB.str)(_T||(_T=me(["must NOT have more than "," items"])),t)},params:function(e){var t=e.params.len;return(0,zB._)(jT||(jT=me(["{limit: ","}"])),t)}},code:function(e){var t=e.schema,n=e.parentSchema,r=e.it,o=n.prefixItems;r.items=!0,(0,Jhe.alwaysValidSchema)(r,t)||(o?(0,Yhe.validateAdditionalItems)(e,o):e.ok((0,Qhe.validateArray)(e)))}};Dx.default=Xhe;var Lx={};Object.defineProperty(Lx,"__esModule",{value:!0});var ca=qn(),Fg=Qn,Zhe={message:function(e){var t=e.params,n=t.min,r=t.max;return r===void 0?(0,ca.str)(ST||(ST=me(["must contain at least "," valid item(s)"])),n):(0,ca.str)(CT||(CT=me(["must contain at least "," and no more than "," valid item(s)"])),n,r)},params:function(e){var t=e.params,n=t.min,r=t.max;return r===void 0?(0,ca._)($T||($T=me(["{minContains: ","}"])),n):(0,ca._)(TT||(TT=me(["{minContains: ",", maxContains: ","}"])),n,r)}},epe={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Zhe,code:function(e){var t,n,r=e.gen,o=e.schema,i=e.parentSchema,a=e.data,s=e.it,l=i.minContains,c=i.maxContains;s.opts.next?(t=l===void 0?1:l,n=c):t=1;var f=r.const("len",(0,ca._)(OT||(OT=me(["",".length"])),a));if(e.setParams({min:t,max:n}),n!==void 0||t!==0){if(n!==void 0&&t>n)return(0,Fg.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),void e.fail();if((0,Fg.alwaysValidSchema)(s,o)){var u=(0,ca._)(ET||(ET=me([""," >= ",""])),f,t);return n!==void 0&&(u=(0,ca._)(AT||(AT=me([""," && "," <= ",""])),u,f,n)),void e.pass(u)}s.items=!0;var d=r.name("valid");n===void 0&&t===1?p(d,function(){return r.if(d,function(){return r.break()})}):t===0?(r.let(d,!0),n!==void 0&&r.if((0,ca._)(MT||(MT=me(["",".length > 0"])),a),h)):(r.let(d,!1),h()),e.result(d,function(){return e.reset()})}else(0,Fg.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');function h(){var m=r.name("_valid"),v=r.let("count",0);p(m,function(){return r.if(m,function(){return function(g){r.code((0,ca._)(PT||(PT=me(["","++"])),g)),n===void 0?r.if((0,ca._)(NT||(NT=me([""," >= ",""])),g,t),function(){return r.assign(d,!0).break()}):(r.if((0,ca._)(IT||(IT=me([""," > ",""])),g,n),function(){return r.assign(d,!1).break()}),t===1?r.assign(d,!0):r.if((0,ca._)(DT||(DT=me([""," >= ",""])),g,t),function(){return r.assign(d,!0)}))}(v)})})}function p(m,v){r.forRange("i",0,f,function(g){e.subschema({keyword:"contains",dataProp:g,dataPropType:Fg.Type.Num,compositeRule:!0},m),v()})}}};Lx.default=epe;var qB={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=qn(),n=Qn,r=Ra();e.error={message:function(s){var l=s.params,c=l.property,f=l.depsCount,u=l.deps,d=f===1?"property":"properties";return(0,t.str)(LT||(LT=me(["must have "," "," when property "," is present"])),d,u,c)},params:function(s){var l=s.params,c=l.property,f=l.depsCount,u=l.deps,d=l.missingProperty;return(0,t._)(RT||(RT=me(["{property: ",`,
134
134
  missingProperty: `,`,
135
135
  depsCount: `,`,
136
- deps: `,"}"])),c,d,f,u)}};var o={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code:function(s){var l=Vt(function(u){var d=u.schema,h={},p={};for(var m in d)m!=="__proto__"&&((Array.isArray(d[m])?h:p)[m]=d[m]);return[h,p]}(s),2),c=l[0],f=l[1];i(s,c),a(s,f)}};function i(s){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s.schema,c=s.gen,f=s.data,u=s.it;if(Object.keys(l).length!==0){var d=c.let("missing"),h=function(){var m=l[p];if(m.length===0)return"continue";var v=(0,r.propertyInData)(c,f,p,u.opts.ownProperties);s.setParams({property:p,depsCount:m.length,deps:m.join(", ")}),u.allErrors?c.if(v,function(){var g,y=we(m);try{for(y.s();!(g=y.n()).done;){var w=g.value;(0,r.checkReportMissingProp)(s,w)}}catch(k){y.e(k)}finally{y.f()}}):(c.if((0,t._)(BT||(BT=me([""," && (",")"])),v,(0,r.checkMissingProp)(s,m,d))),(0,r.reportMissingProp)(s,d),c.else())};for(var p in l)h()}}function a(s){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s.schema,c=s.gen,f=s.data,u=s.keyword,d=s.it,h=c.name("valid"),p=function(v){if((0,n.alwaysValidSchema)(d,l[v]))return"continue";c.if((0,r.propertyInData)(c,f,v,d.opts.ownProperties),function(){var g=s.subschema({keyword:u,schemaProp:v},h);s.mergeValidEvaluated(g,h)},function(){return c.var(h,!0)}),s.ok(h)};for(var m in l)p(m)}e.validatePropertyDeps=i,e.validateSchemaDeps=a,e.default=o})(qB);var Rx={};Object.defineProperty(Rx,"__esModule",{value:!0});var UB=qn(),tpe=Qn,npe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:function(e){var t=e.params;return(0,UB._)(FT||(FT=me(["{propertyName: ","}"])),t.propertyName)}},code:function(e){var t=e.gen,n=e.schema,r=e.data,o=e.it;if(!(0,tpe.alwaysValidSchema)(o,n)){var i=t.name("valid");t.forIn("key",r,function(a){e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,UB.not)(i),function(){e.error(!0),o.allErrors||t.break()})}),e.ok(i)}}};Rx.default=npe;var Vg={};Object.defineProperty(Vg,"__esModule",{value:!0});var zg=Ra(),Va=qn(),rpe=rc(),qg=Qn,ope={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:function(e){var t=e.params;return(0,Va._)(VT||(VT=me(["{additionalProperty: ","}"])),t.additionalProperty)}},code:function(e){var t=e.gen,n=e.schema,r=e.parentSchema,o=e.data,i=e.errsCount,a=e.it;if(!i)throw new Error("ajv implementation error");var s=a.allErrors,l=a.opts;if(a.props=!0,l.removeAdditional==="all"||!(0,qg.alwaysValidSchema)(a,n)){var c=(0,zg.allSchemaProperties)(r.properties),f=(0,zg.allSchemaProperties)(r.patternProperties);t.forIn("key",o,function(p){c.length||f.length?t.if(function(m){var v;if(c.length>8){var g=(0,qg.schemaRefOrVal)(a,r.properties,"properties");v=(0,zg.isOwnProperty)(t,g,m)}else v=c.length?Va.or.apply(void 0,Zt(c.map(function(y){return(0,Va._)(qT||(qT=me([""," === ",""])),m,y)}))):Va.nil;return f.length&&(v=Va.or.apply(void 0,[v].concat(Zt(f.map(function(y){return(0,Va._)(UT||(UT=me(["",".test(",")"])),(0,zg.usePattern)(e,y),m)}))))),(0,Va.not)(v)}(p),function(){return d(p)}):d(p)}),e.ok((0,Va._)(zT||(zT=me([""," === ",""])),i,rpe.default.errors))}function u(p){t.code((0,Va._)(HT||(HT=me(["delete ","[","]"])),o,p))}function d(p){if(l.removeAdditional==="all"||l.removeAdditional&&n===!1)u(p);else{if(n===!1)return e.setParams({additionalProperty:p}),e.error(),void(s||t.break());if(yt(n)=="object"&&!(0,qg.alwaysValidSchema)(a,n)){var m=t.name("valid");l.removeAdditional==="failing"?(h(p,m,!1),t.if((0,Va.not)(m),function(){e.reset(),u(p)})):(h(p,m),s||t.if((0,Va.not)(m),function(){return t.break()}))}}}function h(p,m,v){var g={keyword:"additionalProperties",dataProp:p,dataPropType:qg.Type.Str};v===!1&&Object.assign(g,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(g,m)}}};Vg.default=ope;var Bx={};Object.defineProperty(Bx,"__esModule",{value:!0});var ipe=Og(),HB=Ra(),Fx=Qn,WB=Vg,ape={keyword:"properties",type:"object",schemaType:"object",code:function(e){var t=e.gen,n=e.schema,r=e.parentSchema,o=e.data,i=e.it;i.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&WB.default.code(new ipe.KeywordCxt(i,WB.default,"additionalProperties"));var a,s=(0,HB.allSchemaProperties)(n),l=we(s);try{for(l.s();!(a=l.n()).done;){var c=a.value;i.definedProperties.add(c)}}catch(g){l.e(g)}finally{l.f()}i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Fx.mergeEvaluated.props(t,(0,Fx.toHash)(s),i.props));var f=s.filter(function(g){return!(0,Fx.alwaysValidSchema)(i,n[g])});if(f.length!==0){var u,d=t.name("valid"),h=we(f);try{for(h.s();!(u=h.n()).done;){var p=u.value;m(p)?v(p):(t.if((0,HB.propertyInData)(t,o,p,i.opts.ownProperties)),v(p),i.allErrors||t.else().var(d,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(d)}}catch(g){h.e(g)}finally{h.f()}}function m(g){return i.opts.useDefaults&&!i.compositeRule&&n[g].default!==void 0}function v(g){e.subschema({keyword:"properties",schemaProp:g,dataProp:g},d)}}};Bx.default=ape;var Vx={};Object.defineProperty(Vx,"__esModule",{value:!0});var KB=Ra(),Ug=qn(),GB=Qn,JB=Qn,spe={keyword:"patternProperties",type:"object",schemaType:"object",code:function(e){var t=e.gen,n=e.schema,r=e.data,o=e.parentSchema,i=e.it,a=i.opts,s=(0,KB.allSchemaProperties)(n),l=s.filter(function(p){return(0,GB.alwaysValidSchema)(i,n[p])});if(s.length!==0&&(l.length!==s.length||i.opts.unevaluated&&i.props!==!0)){var c=a.strictSchema&&!a.allowMatchingProperties&&o.properties,f=t.name("valid");i.props===!0||i.props instanceof Ug.Name||(i.props=(0,JB.evaluatedPropsToName)(t,i.props));var u=i.props;(function(){var p,m=we(s);try{for(m.s();!(p=m.n()).done;){var v=p.value;c&&d(v),i.allErrors?h(v):(t.var(f,!0),h(v),t.if(f))}}catch(g){m.e(g)}finally{m.f()}})()}function d(p){for(var m in c)new RegExp(p).test(m)&&(0,GB.checkStrictMode)(i,"property ".concat(m," matches pattern ").concat(p," (use allowMatchingProperties)"))}function h(p){t.forIn("key",r,function(m){t.if((0,Ug._)(WT||(WT=me(["",".test(",")"])),(0,KB.usePattern)(e,p),m),function(){var v=l.includes(p);v||e.subschema({keyword:"patternProperties",schemaProp:p,dataProp:m,dataPropType:JB.Type.Str},f),i.opts.unevaluated&&u!==!0?t.assign((0,Ug._)(KT||(KT=me(["","[","]"])),u,m),!0):v||i.allErrors||t.if((0,Ug.not)(f),function(){return t.break()})})})}}};Vx.default=spe;var zx={};Object.defineProperty(zx,"__esModule",{value:!0});var lpe=Qn,cpe={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code:function(e){var t=e.gen,n=e.schema,r=e.it;if((0,lpe.alwaysValidSchema)(r,n))e.fail();else{var o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,function(){return e.reset()},function(){return e.error()})}},error:{message:"must NOT be valid"}};zx.default=cpe;var qx={};Object.defineProperty(qx,"__esModule",{value:!0});var upe={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Ra().validateUnion,error:{message:"must match a schema in anyOf"}};qx.default=upe;var Ux={};Object.defineProperty(Ux,"__esModule",{value:!0});var Hg=qn(),fpe=Qn,dpe={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:function(e){var t=e.params;return(0,Hg._)(GT||(GT=me(["{passingSchemas: ","}"])),t.passing)}},code:function(e){var t=e.gen,n=e.schema,r=e.parentSchema,o=e.it;if(!Array.isArray(n))throw new Error("ajv implementation error");if(!o.opts.discriminator||!r.discriminator){var i=n,a=t.let("valid",!1),s=t.let("passing",null),l=t.name("_valid");e.setParams({passing:s}),t.block(function(){i.forEach(function(c,f){var u;(0,fpe.alwaysValidSchema)(o,c)?t.var(l,!0):u=e.subschema({keyword:"oneOf",schemaProp:f,compositeRule:!0},l),f>0&&t.if((0,Hg._)(JT||(JT=me([""," && ",""])),l,a)).assign(a,!1).assign(s,(0,Hg._)(QT||(QT=me(["[",", ","]"])),s,f)).else(),t.if(l,function(){t.assign(a,!0),t.assign(s,f),u&&e.mergeEvaluated(u,Hg.Name)})})}),e.result(a,function(){return e.reset()},function(){return e.error(!0)})}}};Ux.default=dpe;var Hx={};Object.defineProperty(Hx,"__esModule",{value:!0});var hpe=Qn,ppe={keyword:"allOf",schemaType:"array",code:function(e){var t=e.gen,n=e.schema,r=e.it;if(!Array.isArray(n))throw new Error("ajv implementation error");var o=t.name("valid");n.forEach(function(i,a){if(!(0,hpe.alwaysValidSchema)(r,i)){var s=e.subschema({keyword:"allOf",schemaProp:a},o);e.ok(o),e.mergeEvaluated(s)}})}};Hx.default=ppe;var Wx={};Object.defineProperty(Wx,"__esModule",{value:!0});var Wg=qn(),QB=Qn,mpe={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:function(e){var t=e.params;return(0,Wg.str)(YT||(YT=me(['must match "','" schema'])),t.ifClause)},params:function(e){var t=e.params;return(0,Wg._)(XT||(XT=me(["{failingKeyword: ","}"])),t.ifClause)}},code:function(e){var t=e.gen,n=e.parentSchema,r=e.it;n.then===void 0&&n.else===void 0&&(0,QB.checkStrictMode)(r,'"if" without "then" and "else" is ignored');var o=YB(r,"then"),i=YB(r,"else");if(o||i){var a,s=t.let("valid",!0),l=t.name("_valid");if(a=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},l),e.mergeEvaluated(a),e.reset(),o&&i){var c=t.let("ifClause");e.setParams({ifClause:c}),t.if(l,f("then",c),f("else",c))}else o?t.if(l,f("then")):t.if((0,Wg.not)(l),f("else"));e.pass(s,function(){return e.error(!0)})}function f(u,d){return function(){var h=e.subschema({keyword:u},l);t.assign(s,l),e.mergeValidEvaluated(h,s),d?t.assign(d,(0,Wg._)(ZT||(ZT=me(["",""])),u)):e.setParams({ifClause:u})}}}};function YB(e,t){var n=e.schema[t];return n!==void 0&&!(0,QB.alwaysValidSchema)(e,n)}Wx.default=mpe;var Kx={};Object.defineProperty(Kx,"__esModule",{value:!0});var vpe=Qn,gpe={keyword:["then","else"],schemaType:["object","boolean"],code:function(e){var t=e.keyword,n=e.parentSchema,r=e.it;n.if===void 0&&(0,vpe.checkStrictMode)(r,'"'.concat(t,'" without "if" is ignored'))}};Kx.default=gpe,Object.defineProperty(Px,"__esModule",{value:!0});var ype=Df,bpe=Ix,wpe=Lf,kpe=Dx,xpe=Lx,_pe=qB,jpe=Rx,Spe=Vg,Cpe=Bx,$pe=Vx,Tpe=zx,Ope=qx,Epe=Ux,Ape=Hx,Mpe=Wx,Ppe=Kx;Px.default=function(){var e=arguments.length>0&&arguments[0]!==void 0&&arguments[0],t=[Tpe.default,Ope.default,Epe.default,Ape.default,Mpe.default,Ppe.default,jpe.default,Spe.default,_pe.default,Cpe.default,$pe.default];return e?t.push(bpe.default,kpe.default):t.push(ype.default,wpe.default),t.push(xpe.default),t};var Gx={},Jx={};Object.defineProperty(Jx,"__esModule",{value:!0});var Zr=qn(),Npe={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:function(e){var t=e.schemaCode;return(0,Zr.str)(eO||(eO=me(['must match format "','"'])),t)},params:function(e){var t=e.schemaCode;return(0,Zr._)(tO||(tO=me(["{format: ","}"])),t)}},code:function(e,t){var n=e.gen,r=e.data,o=e.$data,i=e.schema,a=e.schemaCode,s=e.it,l=s.opts,c=s.errSchemaPath,f=s.schemaEnv,u=s.self;l.validateFormats&&(o?function(){var d=n.scopeValue("formats",{ref:u.formats,code:l.code.formats}),h=n.const("fDef",(0,Zr._)(nO||(nO=me(["","[","]"])),d,a)),p=n.let("fType"),m=n.let("format");n.if((0,Zr._)(rO||(rO=me(["typeof ",' == "object" && !('," instanceof RegExp)"])),h,h),function(){return n.assign(p,(0,Zr._)(oO||(oO=me(["",'.type || "string"'])),h)).assign(m,(0,Zr._)(iO||(iO=me(["",".validate"])),h))},function(){return n.assign(p,(0,Zr._)(aO||(aO=me(['"string"'])))).assign(m,h)}),e.fail$data((0,Zr.or)(l.strictSchema===!1?Zr.nil:(0,Zr._)(sO||(sO=me([""," && !",""])),a,m),(v=f.$async?(0,Zr._)(lO||(lO=me(["(",".async ? await ","(",") : ","(","))"])),h,m,r,m,r):(0,Zr._)(cO||(cO=me(["","(",")"])),m,r),g=(0,Zr._)(uO||(uO=me(["(typeof ",' == "function" ? '," : ",".test(","))"])),m,v,m,r),(0,Zr._)(fO||(fO=me([""," && "," !== true && "," === "," && !",""])),m,m,p,t,g))));var v,g}():function(){var d=u.formats[i];if(!d)return void function(){if(l.strictSchema===!1)return void u.logger.warn(g());throw new Error(g());function g(){return'unknown format "'.concat(i,'" ignored in schema at path "').concat(c,'"')}}();if(d!==!0){var h=Vt(function(g){var y=g instanceof RegExp?(0,Zr.regexpCode)(g):l.code.formats?(0,Zr._)(dO||(dO=me(["","",""])),l.code.formats,(0,Zr.getProperty)(i)):void 0,w=n.scopeValue("formats",{key:i,ref:g,code:y});return yt(g)=="object"&&!(g instanceof RegExp)?[g.type||"string",g.validate,(0,Zr._)(hO||(hO=me(["",".validate"])),w)]:["string",g,w]}(d),3),p=h[0],m=h[1],v=h[2];p===t&&e.pass(function(){if(yt(d)=="object"&&!(d instanceof RegExp)&&d.async){if(!f.$async)throw new Error("async format in sync schema");return(0,Zr._)(pO||(pO=me(["await ","(",")"])),v,r)}return typeof m=="function"?(0,Zr._)(mO||(mO=me(["","(",")"])),v,r):(0,Zr._)(vO||(vO=me(["",".test(",")"])),v,r)}())}}())}};Jx.default=Npe,Object.defineProperty(Gx,"__esModule",{value:!0});var Ipe=[Jx.default];Gx.default=Ipe;var Rf={};Object.defineProperty(Rf,"__esModule",{value:!0}),Rf.contentVocabulary=Rf.metadataVocabulary=void 0,Rf.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],Rf.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"],Object.defineProperty(vx,"__esModule",{value:!0});var Dpe=bx,Lpe=Px,Rpe=Gx,XB=Rf,Bpe=[gx.default,Dpe.default,(0,Lpe.default)(),Rpe.default,XB.metadataVocabulary,XB.contentVocabulary];vx.default=Bpe;var Qx={},ZB={};(function(e){var t;Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0,(t=e.DiscrError||(e.DiscrError={})).Tag="tag",t.Mapping="mapping"})(ZB),Object.defineProperty(Qx,"__esModule",{value:!0});var Bf=qn(),Yx=ZB,e9=ki,Fpe=Qn,Vpe={keyword:"discriminator",type:"object",schemaType:"object",error:{message:function(e){var t=e.params,n=t.discrError,r=t.tagName;return n===Yx.DiscrError.Tag?'tag "'.concat(r,'" must be string'):'value of tag "'.concat(r,'" must be in oneOf')},params:function(e){var t=e.params,n=t.discrError,r=t.tag,o=t.tagName;return(0,Bf._)(gO||(gO=me(["{error: ",", tag: ",", tagValue: ","}"])),n,o,r)}},code:function(e){var t=e.gen,n=e.data,r=e.schema,o=e.parentSchema,i=e.it,a=o.oneOf;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");var s=r.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");var l=t.let("valid",!1),c=t.const("tag",(0,Bf._)(yO||(yO=me(["","",""])),n,(0,Bf.getProperty)(s)));function f(u){var d=t.name("valid"),h=e.subschema({keyword:"oneOf",schemaProp:u},d);return e.mergeEvaluated(h,Bf.Name),d}t.if((0,Bf._)(bO||(bO=me(["typeof ",' == "string"'])),c),function(){return function(){var u=function(){for(var h,p={},m=k(o),v=!0,g=0;g<a.length;g++){var y=a[g];y!=null&&y.$ref&&!(0,Fpe.schemaHasRulesButRef)(y,i.self.RULES)&&(y=e9.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,y==null?void 0:y.$ref))instanceof e9.SchemaEnv&&(y=y.schema);var w=(h=y==null?void 0:y.properties)===null||h===void 0?void 0:h[s];if(yt(w)!="object")throw new Error('discriminator: oneOf subschemas (or referenced schemas) must have "properties/'.concat(s,'"'));v=v&&(m||k(y)),$(w,g)}if(!v)throw new Error('discriminator: "'.concat(s,'" must be required'));return p;function k(E){var I=E.required;return Array.isArray(I)&&I.includes(s)}function $(E,I){if(E.const)j(E.const,I);else{if(!E.enum)throw new Error('discriminator: "properties/'.concat(s,'" must have "const" or "enum"'));var D,L=we(E.enum);try{for(L.s();!(D=L.n()).done;)j(D.value,I)}catch(M){L.e(M)}finally{L.f()}}}function j(E,I){if(typeof E!="string"||E in p)throw new Error('discriminator: "'.concat(s,'" values must be unique strings'));p[E]=I}}();for(var d in t.if(!1),u)t.elseIf((0,Bf._)(wO||(wO=me([""," === ",""])),c,d)),t.assign(l,f(u[d]));t.else(),e.error(!1,{discrError:Yx.DiscrError.Mapping,tag:c,tagName:s}),t.endIf()}()},function(){return e.error(!1,{discrError:Yx.DiscrError.Tag,tag:c,tagName:s})}),e.ok(l)}};Qx.default=Vpe;var zpe={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var n=vx,r=Qx,o=zpe,i=["/properties"],a="http://json-schema.org/draft-07/schema",s=function(d){Ue(p,d);var h=He(p);function p(){return le(this,p),h.apply(this,arguments)}return ce(p,[{key:"_addVocabularies",value:function(){var m=this;Rn($n(p.prototype),"_addVocabularies",this).call(this),n.default.forEach(function(v){return m.addVocabulary(v)}),this.opts.discriminator&&this.addKeyword(r.default)}},{key:"_addDefaultMetaSchema",value:function(){if(Rn($n(p.prototype),"_addDefaultMetaSchema",this).call(this),this.opts.meta){var m=this.opts.$data?this.$dataMetaSchema(o,i):o;this.addMetaSchema(m,a,!1),this.refs["http://json-schema.org/schema"]=a}}},{key:"defaultMeta",value:function(){return this.opts.defaultMeta=Rn($n(p.prototype),"defaultMeta",this).call(this)||(this.getSchema(a)?a:void 0)}}]),p}(iB.default);e.exports=t=s,Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var l=Og();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var c=qn();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return c._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return c.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return c.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return c.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return c.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return c.CodeGen}});var f=fx();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return f.default}});var u=dx();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return u.default}})})(cx,cx.exports),Oy(cx.exports);var t9={};(function(e){function t(Y){return Y!==null&&Object.prototype.toString.call(Y)==="[object Array]"}function n(Y){return Y!==null&&Object.prototype.toString.call(Y)==="[object Object]"}function r(Y,Q){if(Y===Q)return!0;if(Object.prototype.toString.call(Y)!==Object.prototype.toString.call(Q))return!1;if(t(Y)===!0){if(Y.length!==Q.length)return!1;for(var ve=0;ve<Y.length;ve++)if(r(Y[ve],Q[ve])===!1)return!1;return!0}if(n(Y)===!0){var Ae={};for(var Me in Y)if(hasOwnProperty.call(Y,Me)){if(r(Y[Me],Q[Me])===!1)return!1;Ae[Me]=!0}for(var Ve in Q)if(hasOwnProperty.call(Q,Ve)&&Ae[Ve]!==!0)return!1;return!0}return!1}function o(Y){if(Y===""||Y===!1||Y===null||t(Y)&&Y.length===0)return!0;if(n(Y)){for(var Q in Y)if(Y.hasOwnProperty(Q))return!1;return!0}return!1}var i;i=typeof String.prototype.trimLeft=="function"?function(Y){return Y.trimLeft()}:function(Y){return Y.match(/^\s*(.*)/)[1]};var a=0,s=1,l=2,c=3,f=4,u=6,d=8,h=9,p={0:"number",1:"any",2:"string",3:"array",4:"object",5:"boolean",6:"expression",7:"null",8:"Array<number>",9:"Array<string>"},m="EOF",v="UnquotedIdentifier",g="QuotedIdentifier",y="Rbracket",w="Rparen",k="Comma",$="Colon",j="Rbrace",E="Number",I="Current",D="Expref",L="Pipe",M="Or",F="And",H="EQ",N="GT",W="LT",ee="GTE",U="LTE",K="NE",A="Flatten",T="Star",x="Filter",O="Dot",S="Not",C="Lbrace",_="Lbracket",R="Lparen",Z="Literal",pe={".":O,"*":T,",":k,":":$,"{":C,"}":j,"]":y,"(":R,")":w,"@":I},_e={"<":!0,">":!0,"=":!0,"!":!0},ke={" ":!0," ":!0,"\n":!0};function ue(Y){return Y>="0"&&Y<="9"||Y==="-"}function Ne(){}Ne.prototype={tokenize:function(Y){var Q,ve,Ae,Me,Ve=[];for(this._current=0;this._current<Y.length;)if((Me=Y[this._current])>="a"&&Me<="z"||Me>="A"&&Me<="Z"||Me==="_")Q=this._current,ve=this._consumeUnquotedIdentifier(Y),Ve.push({type:v,value:ve,start:Q});else if(pe[Y[this._current]]!==void 0)Ve.push({type:pe[Y[this._current]],value:Y[this._current],start:this._current}),this._current++;else if(ue(Y[this._current]))Ae=this._consumeNumber(Y),Ve.push(Ae);else if(Y[this._current]==="[")Ae=this._consumeLBracket(Y),Ve.push(Ae);else if(Y[this._current]==='"')Q=this._current,ve=this._consumeQuotedIdentifier(Y),Ve.push({type:g,value:ve,start:Q});else if(Y[this._current]==="'")Q=this._current,ve=this._consumeRawStringLiteral(Y),Ve.push({type:Z,value:ve,start:Q});else if(Y[this._current]==="`"){Q=this._current;var xe=this._consumeLiteral(Y);Ve.push({type:Z,value:xe,start:Q})}else if(_e[Y[this._current]]!==void 0)Ve.push(this._consumeOperator(Y));else if(ke[Y[this._current]]!==void 0)this._current++;else if(Y[this._current]==="&")Q=this._current,this._current++,Y[this._current]==="&"?(this._current++,Ve.push({type:F,value:"&&",start:Q})):Ve.push({type:D,value:"&",start:Q});else{if(Y[this._current]!=="|"){var Ie=new Error("Unknown character:"+Y[this._current]);throw Ie.name="LexerError",Ie}Q=this._current,this._current++,Y[this._current]==="|"?(this._current++,Ve.push({type:M,value:"||",start:Q})):Ve.push({type:L,value:"|",start:Q})}return Ve},_consumeUnquotedIdentifier:function(Y){var Q,ve=this._current;for(this._current++;this._current<Y.length&&((Q=Y[this._current])>="a"&&Q<="z"||Q>="A"&&Q<="Z"||Q>="0"&&Q<="9"||Q==="_");)this._current++;return Y.slice(ve,this._current)},_consumeQuotedIdentifier:function(Y){var Q=this._current;this._current++;for(var ve=Y.length;Y[this._current]!=='"'&&this._current<ve;){var Ae=this._current;Y[Ae]!=="\\"||Y[Ae+1]!=="\\"&&Y[Ae+1]!=='"'?Ae++:Ae+=2,this._current=Ae}return this._current++,JSON.parse(Y.slice(Q,this._current))},_consumeRawStringLiteral:function(Y){var Q=this._current;this._current++;for(var ve=Y.length;Y[this._current]!=="'"&&this._current<ve;){var Ae=this._current;Y[Ae]!=="\\"||Y[Ae+1]!=="\\"&&Y[Ae+1]!=="'"?Ae++:Ae+=2,this._current=Ae}return this._current++,Y.slice(Q+1,this._current-1).replace("\\'","'")},_consumeNumber:function(Y){var Q=this._current;this._current++;for(var ve=Y.length;ue(Y[this._current])&&this._current<ve;)this._current++;var Ae=parseInt(Y.slice(Q,this._current));return{type:E,value:Ae,start:Q}},_consumeLBracket:function(Y){var Q=this._current;return this._current++,Y[this._current]==="?"?(this._current++,{type:x,value:"[?",start:Q}):Y[this._current]==="]"?(this._current++,{type:A,value:"[]",start:Q}):{type:_,value:"[",start:Q}},_consumeOperator:function(Y){var Q=this._current,ve=Y[Q];return this._current++,ve==="!"?Y[this._current]==="="?(this._current++,{type:K,value:"!=",start:Q}):{type:S,value:"!",start:Q}:ve==="<"?Y[this._current]==="="?(this._current++,{type:U,value:"<=",start:Q}):{type:W,value:"<",start:Q}:ve===">"?Y[this._current]==="="?(this._current++,{type:ee,value:">=",start:Q}):{type:N,value:">",start:Q}:ve==="="&&Y[this._current]==="="?(this._current++,{type:H,value:"==",start:Q}):void 0},_consumeLiteral:function(Y){this._current++;for(var Q,ve=this._current,Ae=Y.length;Y[this._current]!=="`"&&this._current<Ae;){var Me=this._current;Y[Me]!=="\\"||Y[Me+1]!=="\\"&&Y[Me+1]!=="`"?Me++:Me+=2,this._current=Me}var Ve=i(Y.slice(ve,this._current));return Ve=Ve.replace("\\`","`"),Q=this._looksLikeJSON(Ve)?JSON.parse(Ve):JSON.parse('"'+Ve+'"'),this._current++,Q},_looksLikeJSON:function(Y){if(Y==="")return!1;if('[{"'.indexOf(Y[0])>=0||["true","false","null"].indexOf(Y)>=0)return!0;if(!("-0123456789".indexOf(Y[0])>=0))return!1;try{return JSON.parse(Y),!0}catch{return!1}}};var oe={};function ye(){}function fe(Y){this.runtime=Y}function Fe(Y){this._interpreter=Y,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[d]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[l,c]},{types:[s]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[l]},{types:[l]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[l,c,f]}]},map:{_func:this._functionMap,_signature:[{types:[u]},{types:[c]}]},max:{_func:this._functionMax,_signature:[{types:[d,h]}]},merge:{_func:this._functionMerge,_signature:[{types:[f],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[c]},{types:[u]}]},sum:{_func:this._functionSum,_signature:[{types:[d]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[l]},{types:[l]}]},min:{_func:this._functionMin,_signature:[{types:[d,h]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[c]},{types:[u]}]},type:{_func:this._functionType,_signature:[{types:[s]}]},keys:{_func:this._functionKeys,_signature:[{types:[f]}]},values:{_func:this._functionValues,_signature:[{types:[f]}]},sort:{_func:this._functionSort,_signature:[{types:[h,d]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[c]},{types:[u]}]},join:{_func:this._functionJoin,_signature:[{types:[l]},{types:[h]}]},reverse:{_func:this._functionReverse,_signature:[{types:[l,c]}]},to_array:{_func:this._functionToArray,_signature:[{types:[s]}]},to_string:{_func:this._functionToString,_signature:[{types:[s]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[s]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[s],variadic:!0}]}}}oe[m]=0,oe[v]=0,oe[g]=0,oe[y]=0,oe[w]=0,oe[k]=0,oe[j]=0,oe[E]=0,oe[I]=0,oe[D]=0,oe[L]=1,oe[M]=2,oe[F]=3,oe[H]=5,oe[N]=5,oe[W]=5,oe[ee]=5,oe[U]=5,oe[K]=5,oe[A]=9,oe[T]=20,oe[x]=21,oe[O]=40,oe[S]=45,oe[C]=50,oe[_]=55,oe[R]=60,ye.prototype={parse:function(Y){this._loadTokens(Y),this.index=0;var Q=this.expression(0);if(this._lookahead(0)!==m){var ve=this._lookaheadToken(0),Ae=new Error("Unexpected token type: "+ve.type+", value: "+ve.value);throw Ae.name="ParserError",Ae}return Q},_loadTokens:function(Y){var Q=new Ne().tokenize(Y);Q.push({type:m,value:"",start:Y.length}),this.tokens=Q},expression:function(Y){var Q=this._lookaheadToken(0);this._advance();for(var ve=this.nud(Q),Ae=this._lookahead(0);Y<oe[Ae];)this._advance(),ve=this.led(Ae,ve),Ae=this._lookahead(0);return ve},_lookahead:function(Y){return this.tokens[this.index+Y].type},_lookaheadToken:function(Y){return this.tokens[this.index+Y]},_advance:function(){this.index++},nud:function(Y){var Q,ve;switch(Y.type){case Z:return{type:"Literal",value:Y.value};case v:return{type:"Field",name:Y.value};case g:var Ae={type:"Field",name:Y.value};if(this._lookahead(0)===R)throw new Error("Quoted identifier not allowed for function names.");return Ae;case S:return{type:"NotExpression",children:[Q=this.expression(oe.Not)]};case T:return Q=null,{type:"ValueProjection",children:[{type:"Identity"},Q=this._lookahead(0)===y?{type:"Identity"}:this._parseProjectionRHS(oe.Star)]};case x:return this.led(Y.type,{type:"Identity"});case C:return this._parseMultiselectHash();case A:return{type:"Projection",children:[{type:A,children:[{type:"Identity"}]},Q=this._parseProjectionRHS(oe.Flatten)]};case _:return this._lookahead(0)===E||this._lookahead(0)===$?(Q=this._parseIndexExpression(),this._projectIfSlice({type:"Identity"},Q)):this._lookahead(0)===T&&this._lookahead(1)===y?(this._advance(),this._advance(),{type:"Projection",children:[{type:"Identity"},Q=this._parseProjectionRHS(oe.Star)]}):this._parseMultiselectList();case I:return{type:I};case D:return{type:"ExpressionReference",children:[ve=this.expression(oe.Expref)]};case R:for(var Me=[];this._lookahead(0)!==w;)this._lookahead(0)===I?(ve={type:I},this._advance()):ve=this.expression(0),Me.push(ve);return this._match(w),Me[0];default:this._errorToken(Y)}},led:function(Y,Q){var ve;switch(Y){case O:var Ae=oe.Dot;return this._lookahead(0)!==T?{type:"Subexpression",children:[Q,ve=this._parseDotRHS(Ae)]}:(this._advance(),{type:"ValueProjection",children:[Q,ve=this._parseProjectionRHS(Ae)]});case L:return ve=this.expression(oe.Pipe),{type:L,children:[Q,ve]};case M:return{type:"OrExpression",children:[Q,ve=this.expression(oe.Or)]};case F:return{type:"AndExpression",children:[Q,ve=this.expression(oe.And)]};case R:for(var Me,Ve=Q.name,xe=[];this._lookahead(0)!==w;)this._lookahead(0)===I?(Me={type:I},this._advance()):Me=this.expression(0),this._lookahead(0)===k&&this._match(k),xe.push(Me);return this._match(w),{type:"Function",name:Ve,children:xe};case x:var Ie=this.expression(0);return this._match(y),{type:"FilterProjection",children:[Q,ve=this._lookahead(0)===A?{type:"Identity"}:this._parseProjectionRHS(oe.Filter),Ie]};case A:return{type:"Projection",children:[{type:A,children:[Q]},this._parseProjectionRHS(oe.Flatten)]};case H:case K:case N:case ee:case W:case U:return this._parseComparator(Q,Y);case _:var qe=this._lookaheadToken(0);return qe.type===E||qe.type===$?(ve=this._parseIndexExpression(),this._projectIfSlice(Q,ve)):(this._match(T),this._match(y),{type:"Projection",children:[Q,ve=this._parseProjectionRHS(oe.Star)]});default:this._errorToken(this._lookaheadToken(0))}},_match:function(Y){if(this._lookahead(0)!==Y){var Q=this._lookaheadToken(0),ve=new Error("Expected "+Y+", got: "+Q.type);throw ve.name="ParserError",ve}this._advance()},_errorToken:function(Y){var Q=new Error("Invalid token ("+Y.type+'): "'+Y.value+'"');throw Q.name="ParserError",Q},_parseIndexExpression:function(){if(this._lookahead(0)===$||this._lookahead(1)===$)return this._parseSliceExpression();var Y={type:"Index",value:this._lookaheadToken(0).value};return this._advance(),this._match(y),Y},_projectIfSlice:function(Y,Q){var ve={type:"IndexExpression",children:[Y,Q]};return Q.type==="Slice"?{type:"Projection",children:[ve,this._parseProjectionRHS(oe.Star)]}:ve},_parseSliceExpression:function(){for(var Y=[null,null,null],Q=0,ve=this._lookahead(0);ve!==y&&Q<3;){if(ve===$)Q++,this._advance();else{if(ve!==E){var Ae=this._lookahead(0),Me=new Error("Syntax error, unexpected token: "+Ae.value+"("+Ae.type+")");throw Me.name="Parsererror",Me}Y[Q]=this._lookaheadToken(0).value,this._advance()}ve=this._lookahead(0)}return this._match(y),{type:"Slice",children:Y}},_parseComparator:function(Y,Q){return{type:"Comparator",name:Q,children:[Y,this.expression(oe[Q])]}},_parseDotRHS:function(Y){var Q=this._lookahead(0);return[v,g,T].indexOf(Q)>=0?this.expression(Y):Q===_?(this._match(_),this._parseMultiselectList()):Q===C?(this._match(C),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(Y){var Q;if(oe[this._lookahead(0)]<10)Q={type:"Identity"};else if(this._lookahead(0)===_)Q=this.expression(Y);else if(this._lookahead(0)===x)Q=this.expression(Y);else{if(this._lookahead(0)!==O){var ve=this._lookaheadToken(0),Ae=new Error("Sytanx error, unexpected token: "+ve.value+"("+ve.type+")");throw Ae.name="ParserError",Ae}this._match(O),Q=this._parseDotRHS(Y)}return Q},_parseMultiselectList:function(){for(var Y=[];this._lookahead(0)!==y;){var Q=this.expression(0);if(Y.push(Q),this._lookahead(0)===k&&(this._match(k),this._lookahead(0)===y))throw new Error("Unexpected token Rbracket")}return this._match(y),{type:"MultiSelectList",children:Y}},_parseMultiselectHash:function(){for(var Y,Q,ve,Ae=[],Me=[v,g];;){if(Y=this._lookaheadToken(0),Me.indexOf(Y.type)<0)throw new Error("Expecting an identifier token, got: "+Y.type);if(Q=Y.value,this._advance(),this._match($),ve={type:"KeyValuePair",name:Q,value:this.expression(0)},Ae.push(ve),this._lookahead(0)===k)this._match(k);else if(this._lookahead(0)===j){this._match(j);break}}return{type:"MultiSelectHash",children:Ae}}},fe.prototype={search:function(Y,Q){return this.visit(Y,Q)},visit:function(Y,Q){var ve,Ae,Me,Ve,xe,Ie,qe,tt,We;switch(Y.type){case"Field":return Q!==null&&n(Q)?(Ie=Q[Y.name])===void 0?null:Ie:null;case"Subexpression":for(Me=this.visit(Y.children[0],Q),We=1;We<Y.children.length;We++)if((Me=this.visit(Y.children[1],Me))===null)return null;return Me;case"IndexExpression":return qe=this.visit(Y.children[0],Q),this.visit(Y.children[1],qe);case"Index":if(!t(Q))return null;var ut=Y.value;return ut<0&&(ut=Q.length+ut),(Me=Q[ut])===void 0&&(Me=null),Me;case"Slice":if(!t(Q))return null;var gt=Y.children.slice(0),Dt=this.computeSliceParams(Q.length,gt),jt=Dt[0],En=Dt[1],Lt=Dt[2];if(Me=[],Lt>0)for(We=jt;We<En;We+=Lt)Me.push(Q[We]);else for(We=jt;We>En;We+=Lt)Me.push(Q[We]);return Me;case"Projection":var jn=this.visit(Y.children[0],Q);if(!t(jn))return null;for(tt=[],We=0;We<jn.length;We++)(Ae=this.visit(Y.children[1],jn[We]))!==null&&tt.push(Ae);return tt;case"ValueProjection":if(!n(jn=this.visit(Y.children[0],Q)))return null;tt=[];var fn=function(Gn){for(var Pe=Object.keys(Gn),dt=[],Ct=0;Ct<Pe.length;Ct++)dt.push(Gn[Pe[Ct]]);return dt}(jn);for(We=0;We<fn.length;We++)(Ae=this.visit(Y.children[1],fn[We]))!==null&&tt.push(Ae);return tt;case"FilterProjection":if(!t(jn=this.visit(Y.children[0],Q)))return null;var Kn=[],bn=[];for(We=0;We<jn.length;We++)o(ve=this.visit(Y.children[2],jn[We]))||Kn.push(jn[We]);for(var Hn=0;Hn<Kn.length;Hn++)(Ae=this.visit(Y.children[1],Kn[Hn]))!==null&&bn.push(Ae);return bn;case"Comparator":switch(Ve=this.visit(Y.children[0],Q),xe=this.visit(Y.children[1],Q),Y.name){case H:Me=r(Ve,xe);break;case K:Me=!r(Ve,xe);break;case N:Me=Ve>xe;break;case ee:Me=Ve>=xe;break;case W:Me=Ve<xe;break;case U:Me=Ve<=xe;break;default:throw new Error("Unknown comparator: "+Y.name)}return Me;case A:var Ln=this.visit(Y.children[0],Q);if(!t(Ln))return null;var Sn=[];for(We=0;We<Ln.length;We++)t(Ae=Ln[We])?Sn.push.apply(Sn,Ae):Sn.push(Ae);return Sn;case"Identity":return Q;case"MultiSelectList":if(Q===null)return null;for(tt=[],We=0;We<Y.children.length;We++)tt.push(this.visit(Y.children[We],Q));return tt;case"MultiSelectHash":if(Q===null)return null;var wn;for(tt={},We=0;We<Y.children.length;We++)tt[(wn=Y.children[We]).name]=this.visit(wn.value,Q);return tt;case"OrExpression":return o(ve=this.visit(Y.children[0],Q))&&(ve=this.visit(Y.children[1],Q)),ve;case"AndExpression":return o(Ve=this.visit(Y.children[0],Q))===!0?Ve:this.visit(Y.children[1],Q);case"NotExpression":return o(Ve=this.visit(Y.children[0],Q));case"Literal":return Y.value;case L:return qe=this.visit(Y.children[0],Q),this.visit(Y.children[1],qe);case I:return Q;case"Function":var ln=[];for(We=0;We<Y.children.length;We++)ln.push(this.visit(Y.children[We],Q));return this.runtime.callFunction(Y.name,ln);case"ExpressionReference":var er=Y.children[0];return er.jmespathType=D,er;default:throw new Error("Unknown node type: "+Y.type)}},computeSliceParams:function(Y,Q){var ve=Q[0],Ae=Q[1],Me=Q[2],Ve=[null,null,null];if(Me===null)Me=1;else if(Me===0){var xe=new Error("Invalid slice, step cannot be 0");throw xe.name="RuntimeError",xe}var Ie=Me<0;return ve=ve===null?Ie?Y-1:0:this.capSliceRange(Y,ve,Me),Ae=Ae===null?Ie?-1:Y:this.capSliceRange(Y,Ae,Me),Ve[0]=ve,Ve[1]=Ae,Ve[2]=Me,Ve},capSliceRange:function(Y,Q,ve){return Q<0?(Q+=Y)<0&&(Q=ve<0?-1:0):Q>=Y&&(Q=ve<0?Y-1:Y),Q}},Fe.prototype={callFunction:function(Y,Q){var ve=this.functionTable[Y];if(ve===void 0)throw new Error("Unknown function: "+Y+"()");return this._validateArgs(Y,Q,ve._signature),ve._func.call(this,Q)},_validateArgs:function(Y,Q,ve){var Ae,Me,Ve,xe;if(ve[ve.length-1].variadic){if(Q.length<ve.length)throw Ae=ve.length===1?" argument":" arguments",new Error("ArgumentError: "+Y+"() takes at least"+ve.length+Ae+" but received "+Q.length)}else if(Q.length!==ve.length)throw Ae=ve.length===1?" argument":" arguments",new Error("ArgumentError: "+Y+"() takes "+ve.length+Ae+" but received "+Q.length);for(var Ie=0;Ie<ve.length;Ie++){xe=!1,Me=ve[Ie].types,Ve=this._getTypeName(Q[Ie]);for(var qe=0;qe<Me.length;qe++)if(this._typeMatches(Ve,Me[qe],Q[Ie])){xe=!0;break}if(!xe){var tt=Me.map(function(We){return p[We]}).join(",");throw new Error("TypeError: "+Y+"() expected argument "+(Ie+1)+" to be type "+tt+" but received type "+p[Ve]+" instead.")}}},_typeMatches:function(Y,Q,ve){if(Q===s)return!0;if(Q!==h&&Q!==d&&Q!==c)return Y===Q;if(Q===c)return Y===c;if(Y===c){var Ae;Q===d?Ae=a:Q===h&&(Ae=l);for(var Me=0;Me<ve.length;Me++)if(!this._typeMatches(this._getTypeName(ve[Me]),Ae,ve[Me]))return!1;return!0}},_getTypeName:function(Y){switch(Object.prototype.toString.call(Y)){case"[object String]":return l;case"[object Number]":return a;case"[object Array]":return c;case"[object Boolean]":return 5;case"[object Null]":return 7;case"[object Object]":return Y.jmespathType===D?u:f}},_functionStartsWith:function(Y){return Y[0].lastIndexOf(Y[1])===0},_functionEndsWith:function(Y){var Q=Y[0],ve=Y[1];return Q.indexOf(ve,Q.length-ve.length)!==-1},_functionReverse:function(Y){if(this._getTypeName(Y[0])===l){for(var Q=Y[0],ve="",Ae=Q.length-1;Ae>=0;Ae--)ve+=Q[Ae];return ve}var Me=Y[0].slice(0);return Me.reverse(),Me},_functionAbs:function(Y){return Math.abs(Y[0])},_functionCeil:function(Y){return Math.ceil(Y[0])},_functionAvg:function(Y){for(var Q=0,ve=Y[0],Ae=0;Ae<ve.length;Ae++)Q+=ve[Ae];return Q/ve.length},_functionContains:function(Y){return Y[0].indexOf(Y[1])>=0},_functionFloor:function(Y){return Math.floor(Y[0])},_functionLength:function(Y){return n(Y[0])?Object.keys(Y[0]).length:Y[0].length},_functionMap:function(Y){for(var Q=[],ve=this._interpreter,Ae=Y[0],Me=Y[1],Ve=0;Ve<Me.length;Ve++)Q.push(ve.visit(Ae,Me[Ve]));return Q},_functionMerge:function(Y){for(var Q={},ve=0;ve<Y.length;ve++){var Ae=Y[ve];for(var Me in Ae)Q[Me]=Ae[Me]}return Q},_functionMax:function(Y){if(Y[0].length>0){if(this._getTypeName(Y[0][0])===a)return Math.max.apply(Math,Y[0]);for(var Q=Y[0],ve=Q[0],Ae=1;Ae<Q.length;Ae++)ve.localeCompare(Q[Ae])<0&&(ve=Q[Ae]);return ve}return null},_functionMin:function(Y){if(Y[0].length>0){if(this._getTypeName(Y[0][0])===a)return Math.min.apply(Math,Y[0]);for(var Q=Y[0],ve=Q[0],Ae=1;Ae<Q.length;Ae++)Q[Ae].localeCompare(ve)<0&&(ve=Q[Ae]);return ve}return null},_functionSum:function(Y){for(var Q=0,ve=Y[0],Ae=0;Ae<ve.length;Ae++)Q+=ve[Ae];return Q},_functionType:function(Y){switch(this._getTypeName(Y[0])){case a:return"number";case l:return"string";case c:return"array";case f:return"object";case 5:return"boolean";case u:return"expref";case 7:return"null"}},_functionKeys:function(Y){return Object.keys(Y[0])},_functionValues:function(Y){for(var Q=Y[0],ve=Object.keys(Q),Ae=[],Me=0;Me<ve.length;Me++)Ae.push(Q[ve[Me]]);return Ae},_functionJoin:function(Y){var Q=Y[0];return Y[1].join(Q)},_functionToArray:function(Y){return this._getTypeName(Y[0])===c?Y[0]:[Y[0]]},_functionToString:function(Y){return this._getTypeName(Y[0])===l?Y[0]:JSON.stringify(Y[0])},_functionToNumber:function(Y){var Q,ve=this._getTypeName(Y[0]);return ve===a?Y[0]:ve!==l||(Q=+Y[0],isNaN(Q))?null:Q},_functionNotNull:function(Y){for(var Q=0;Q<Y.length;Q++)if(this._getTypeName(Y[Q])!==7)return Y[Q];return null},_functionSort:function(Y){var Q=Y[0].slice(0);return Q.sort(),Q},_functionSortBy:function(Y){var Q=Y[0].slice(0);if(Q.length===0)return Q;var ve=this._interpreter,Ae=Y[1],Me=this._getTypeName(ve.visit(Ae,Q[0]));if([a,l].indexOf(Me)<0)throw new Error("TypeError");for(var Ve=this,xe=[],Ie=0;Ie<Q.length;Ie++)xe.push([Ie,Q[Ie]]);xe.sort(function(tt,We){var ut=ve.visit(Ae,tt[1]),gt=ve.visit(Ae,We[1]);if(Ve._getTypeName(ut)!==Me)throw new Error("TypeError: expected "+Me+", received "+Ve._getTypeName(ut));if(Ve._getTypeName(gt)!==Me)throw new Error("TypeError: expected "+Me+", received "+Ve._getTypeName(gt));return ut>gt?1:ut<gt?-1:tt[0]-We[0]});for(var qe=0;qe<xe.length;qe++)Q[qe]=xe[qe][1];return Q},_functionMaxBy:function(Y){for(var Q,ve,Ae=Y[1],Me=Y[0],Ve=this.createKeyFunction(Ae,[a,l]),xe=-1/0,Ie=0;Ie<Me.length;Ie++)(ve=Ve(Me[Ie]))>xe&&(xe=ve,Q=Me[Ie]);return Q},_functionMinBy:function(Y){for(var Q,ve,Ae=Y[1],Me=Y[0],Ve=this.createKeyFunction(Ae,[a,l]),xe=1/0,Ie=0;Ie<Me.length;Ie++)(ve=Ve(Me[Ie]))<xe&&(xe=ve,Q=Me[Ie]);return Q},createKeyFunction:function(Y,Q){var ve=this,Ae=this._interpreter;return function(Me){var Ve=Ae.visit(Y,Me);if(Q.indexOf(ve._getTypeName(Ve))<0){var xe="TypeError: expected one of "+Q+", received "+ve._getTypeName(Ve);throw new Error(xe)}return Ve}}},e.tokenize=function(Y){return new Ne().tokenize(Y)},e.compile=function(Y){return new ye().parse(Y)},e.search=function(Y,Q){var ve=new ye,Ae=new Fe,Me=new fe(Ae);Ae._interpreter=Me;var Ve=ve.parse(Q);return Me.search(Ve,Y)},e.strictDeepEqual=r})(t9),Oy(t9);/*!
136
+ deps: `,"}"])),c,d,f,u)}};var o={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code:function(s){var l=Vt(function(u){var d=u.schema,h={},p={};for(var m in d)m!=="__proto__"&&((Array.isArray(d[m])?h:p)[m]=d[m]);return[h,p]}(s),2),c=l[0],f=l[1];i(s,c),a(s,f)}};function i(s){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s.schema,c=s.gen,f=s.data,u=s.it;if(Object.keys(l).length!==0){var d=c.let("missing"),h=function(){var m=l[p];if(m.length===0)return"continue";var v=(0,r.propertyInData)(c,f,p,u.opts.ownProperties);s.setParams({property:p,depsCount:m.length,deps:m.join(", ")}),u.allErrors?c.if(v,function(){var g,y=we(m);try{for(y.s();!(g=y.n()).done;){var w=g.value;(0,r.checkReportMissingProp)(s,w)}}catch(k){y.e(k)}finally{y.f()}}):(c.if((0,t._)(BT||(BT=me([""," && (",")"])),v,(0,r.checkMissingProp)(s,m,d))),(0,r.reportMissingProp)(s,d),c.else())};for(var p in l)h()}}function a(s){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s.schema,c=s.gen,f=s.data,u=s.keyword,d=s.it,h=c.name("valid"),p=function(v){if((0,n.alwaysValidSchema)(d,l[v]))return"continue";c.if((0,r.propertyInData)(c,f,v,d.opts.ownProperties),function(){var g=s.subschema({keyword:u,schemaProp:v},h);s.mergeValidEvaluated(g,h)},function(){return c.var(h,!0)}),s.ok(h)};for(var m in l)p(m)}e.validatePropertyDeps=i,e.validateSchemaDeps=a,e.default=o})(qB);var Rx={};Object.defineProperty(Rx,"__esModule",{value:!0});var UB=qn(),tpe=Qn,npe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:function(e){var t=e.params;return(0,UB._)(FT||(FT=me(["{propertyName: ","}"])),t.propertyName)}},code:function(e){var t=e.gen,n=e.schema,r=e.data,o=e.it;if(!(0,tpe.alwaysValidSchema)(o,n)){var i=t.name("valid");t.forIn("key",r,function(a){e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,UB.not)(i),function(){e.error(!0),o.allErrors||t.break()})}),e.ok(i)}}};Rx.default=npe;var Vg={};Object.defineProperty(Vg,"__esModule",{value:!0});var zg=Ra(),Va=qn(),rpe=rc(),qg=Qn,ope={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:function(e){var t=e.params;return(0,Va._)(VT||(VT=me(["{additionalProperty: ","}"])),t.additionalProperty)}},code:function(e){var t=e.gen,n=e.schema,r=e.parentSchema,o=e.data,i=e.errsCount,a=e.it;if(!i)throw new Error("ajv implementation error");var s=a.allErrors,l=a.opts;if(a.props=!0,l.removeAdditional==="all"||!(0,qg.alwaysValidSchema)(a,n)){var c=(0,zg.allSchemaProperties)(r.properties),f=(0,zg.allSchemaProperties)(r.patternProperties);t.forIn("key",o,function(p){c.length||f.length?t.if(function(m){var v;if(c.length>8){var g=(0,qg.schemaRefOrVal)(a,r.properties,"properties");v=(0,zg.isOwnProperty)(t,g,m)}else v=c.length?Va.or.apply(void 0,Zt(c.map(function(y){return(0,Va._)(qT||(qT=me([""," === ",""])),m,y)}))):Va.nil;return f.length&&(v=Va.or.apply(void 0,[v].concat(Zt(f.map(function(y){return(0,Va._)(UT||(UT=me(["",".test(",")"])),(0,zg.usePattern)(e,y),m)}))))),(0,Va.not)(v)}(p),function(){return d(p)}):d(p)}),e.ok((0,Va._)(zT||(zT=me([""," === ",""])),i,rpe.default.errors))}function u(p){t.code((0,Va._)(HT||(HT=me(["delete ","[","]"])),o,p))}function d(p){if(l.removeAdditional==="all"||l.removeAdditional&&n===!1)u(p);else{if(n===!1)return e.setParams({additionalProperty:p}),e.error(),void(s||t.break());if(yt(n)=="object"&&!(0,qg.alwaysValidSchema)(a,n)){var m=t.name("valid");l.removeAdditional==="failing"?(h(p,m,!1),t.if((0,Va.not)(m),function(){e.reset(),u(p)})):(h(p,m),s||t.if((0,Va.not)(m),function(){return t.break()}))}}}function h(p,m,v){var g={keyword:"additionalProperties",dataProp:p,dataPropType:qg.Type.Str};v===!1&&Object.assign(g,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(g,m)}}};Vg.default=ope;var Bx={};Object.defineProperty(Bx,"__esModule",{value:!0});var ipe=Og(),HB=Ra(),Fx=Qn,WB=Vg,ape={keyword:"properties",type:"object",schemaType:"object",code:function(e){var t=e.gen,n=e.schema,r=e.parentSchema,o=e.data,i=e.it;i.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&WB.default.code(new ipe.KeywordCxt(i,WB.default,"additionalProperties"));var a,s=(0,HB.allSchemaProperties)(n),l=we(s);try{for(l.s();!(a=l.n()).done;){var c=a.value;i.definedProperties.add(c)}}catch(g){l.e(g)}finally{l.f()}i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Fx.mergeEvaluated.props(t,(0,Fx.toHash)(s),i.props));var f=s.filter(function(g){return!(0,Fx.alwaysValidSchema)(i,n[g])});if(f.length!==0){var u,d=t.name("valid"),h=we(f);try{for(h.s();!(u=h.n()).done;){var p=u.value;m(p)?v(p):(t.if((0,HB.propertyInData)(t,o,p,i.opts.ownProperties)),v(p),i.allErrors||t.else().var(d,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(d)}}catch(g){h.e(g)}finally{h.f()}}function m(g){return i.opts.useDefaults&&!i.compositeRule&&n[g].default!==void 0}function v(g){e.subschema({keyword:"properties",schemaProp:g,dataProp:g},d)}}};Bx.default=ape;var Vx={};Object.defineProperty(Vx,"__esModule",{value:!0});var KB=Ra(),Ug=qn(),GB=Qn,JB=Qn,spe={keyword:"patternProperties",type:"object",schemaType:"object",code:function(e){var t=e.gen,n=e.schema,r=e.data,o=e.parentSchema,i=e.it,a=i.opts,s=(0,KB.allSchemaProperties)(n),l=s.filter(function(p){return(0,GB.alwaysValidSchema)(i,n[p])});if(s.length!==0&&(l.length!==s.length||i.opts.unevaluated&&i.props!==!0)){var c=a.strictSchema&&!a.allowMatchingProperties&&o.properties,f=t.name("valid");i.props===!0||i.props instanceof Ug.Name||(i.props=(0,JB.evaluatedPropsToName)(t,i.props));var u=i.props;(function(){var p,m=we(s);try{for(m.s();!(p=m.n()).done;){var v=p.value;c&&d(v),i.allErrors?h(v):(t.var(f,!0),h(v),t.if(f))}}catch(g){m.e(g)}finally{m.f()}})()}function d(p){for(var m in c)new RegExp(p).test(m)&&(0,GB.checkStrictMode)(i,"property ".concat(m," matches pattern ").concat(p," (use allowMatchingProperties)"))}function h(p){t.forIn("key",r,function(m){t.if((0,Ug._)(WT||(WT=me(["",".test(",")"])),(0,KB.usePattern)(e,p),m),function(){var v=l.includes(p);v||e.subschema({keyword:"patternProperties",schemaProp:p,dataProp:m,dataPropType:JB.Type.Str},f),i.opts.unevaluated&&u!==!0?t.assign((0,Ug._)(KT||(KT=me(["","[","]"])),u,m),!0):v||i.allErrors||t.if((0,Ug.not)(f),function(){return t.break()})})})}}};Vx.default=spe;var zx={};Object.defineProperty(zx,"__esModule",{value:!0});var lpe=Qn,cpe={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code:function(e){var t=e.gen,n=e.schema,r=e.it;if((0,lpe.alwaysValidSchema)(r,n))e.fail();else{var o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,function(){return e.reset()},function(){return e.error()})}},error:{message:"must NOT be valid"}};zx.default=cpe;var qx={};Object.defineProperty(qx,"__esModule",{value:!0});var upe={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Ra().validateUnion,error:{message:"must match a schema in anyOf"}};qx.default=upe;var Ux={};Object.defineProperty(Ux,"__esModule",{value:!0});var Hg=qn(),fpe=Qn,dpe={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:function(e){var t=e.params;return(0,Hg._)(GT||(GT=me(["{passingSchemas: ","}"])),t.passing)}},code:function(e){var t=e.gen,n=e.schema,r=e.parentSchema,o=e.it;if(!Array.isArray(n))throw new Error("ajv implementation error");if(!o.opts.discriminator||!r.discriminator){var i=n,a=t.let("valid",!1),s=t.let("passing",null),l=t.name("_valid");e.setParams({passing:s}),t.block(function(){i.forEach(function(c,f){var u;(0,fpe.alwaysValidSchema)(o,c)?t.var(l,!0):u=e.subschema({keyword:"oneOf",schemaProp:f,compositeRule:!0},l),f>0&&t.if((0,Hg._)(JT||(JT=me([""," && ",""])),l,a)).assign(a,!1).assign(s,(0,Hg._)(QT||(QT=me(["[",", ","]"])),s,f)).else(),t.if(l,function(){t.assign(a,!0),t.assign(s,f),u&&e.mergeEvaluated(u,Hg.Name)})})}),e.result(a,function(){return e.reset()},function(){return e.error(!0)})}}};Ux.default=dpe;var Hx={};Object.defineProperty(Hx,"__esModule",{value:!0});var hpe=Qn,ppe={keyword:"allOf",schemaType:"array",code:function(e){var t=e.gen,n=e.schema,r=e.it;if(!Array.isArray(n))throw new Error("ajv implementation error");var o=t.name("valid");n.forEach(function(i,a){if(!(0,hpe.alwaysValidSchema)(r,i)){var s=e.subschema({keyword:"allOf",schemaProp:a},o);e.ok(o),e.mergeEvaluated(s)}})}};Hx.default=ppe;var Wx={};Object.defineProperty(Wx,"__esModule",{value:!0});var Wg=qn(),QB=Qn,mpe={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:function(e){var t=e.params;return(0,Wg.str)(YT||(YT=me(['must match "','" schema'])),t.ifClause)},params:function(e){var t=e.params;return(0,Wg._)(XT||(XT=me(["{failingKeyword: ","}"])),t.ifClause)}},code:function(e){var t=e.gen,n=e.parentSchema,r=e.it;n.then===void 0&&n.else===void 0&&(0,QB.checkStrictMode)(r,'"if" without "then" and "else" is ignored');var o=YB(r,"then"),i=YB(r,"else");if(o||i){var a,s=t.let("valid",!0),l=t.name("_valid");if(a=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},l),e.mergeEvaluated(a),e.reset(),o&&i){var c=t.let("ifClause");e.setParams({ifClause:c}),t.if(l,f("then",c),f("else",c))}else o?t.if(l,f("then")):t.if((0,Wg.not)(l),f("else"));e.pass(s,function(){return e.error(!0)})}function f(u,d){return function(){var h=e.subschema({keyword:u},l);t.assign(s,l),e.mergeValidEvaluated(h,s),d?t.assign(d,(0,Wg._)(ZT||(ZT=me(["",""])),u)):e.setParams({ifClause:u})}}}};function YB(e,t){var n=e.schema[t];return n!==void 0&&!(0,QB.alwaysValidSchema)(e,n)}Wx.default=mpe;var Kx={};Object.defineProperty(Kx,"__esModule",{value:!0});var vpe=Qn,gpe={keyword:["then","else"],schemaType:["object","boolean"],code:function(e){var t=e.keyword,n=e.parentSchema,r=e.it;n.if===void 0&&(0,vpe.checkStrictMode)(r,'"'.concat(t,'" without "if" is ignored'))}};Kx.default=gpe,Object.defineProperty(Px,"__esModule",{value:!0});var ype=Df,bpe=Ix,wpe=Lf,kpe=Dx,xpe=Lx,_pe=qB,jpe=Rx,Spe=Vg,Cpe=Bx,$pe=Vx,Tpe=zx,Ope=qx,Epe=Ux,Ape=Hx,Mpe=Wx,Ppe=Kx;Px.default=function(){var e=arguments.length>0&&arguments[0]!==void 0&&arguments[0],t=[Tpe.default,Ope.default,Epe.default,Ape.default,Mpe.default,Ppe.default,jpe.default,Spe.default,_pe.default,Cpe.default,$pe.default];return e?t.push(bpe.default,kpe.default):t.push(ype.default,wpe.default),t.push(xpe.default),t};var Gx={},Jx={};Object.defineProperty(Jx,"__esModule",{value:!0});var Zr=qn(),Npe={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:function(e){var t=e.schemaCode;return(0,Zr.str)(eO||(eO=me(['must match format "','"'])),t)},params:function(e){var t=e.schemaCode;return(0,Zr._)(tO||(tO=me(["{format: ","}"])),t)}},code:function(e,t){var n=e.gen,r=e.data,o=e.$data,i=e.schema,a=e.schemaCode,s=e.it,l=s.opts,c=s.errSchemaPath,f=s.schemaEnv,u=s.self;l.validateFormats&&(o?function(){var d=n.scopeValue("formats",{ref:u.formats,code:l.code.formats}),h=n.const("fDef",(0,Zr._)(nO||(nO=me(["","[","]"])),d,a)),p=n.let("fType"),m=n.let("format");n.if((0,Zr._)(rO||(rO=me(["typeof ",' == "object" && !('," instanceof RegExp)"])),h,h),function(){return n.assign(p,(0,Zr._)(oO||(oO=me(["",'.type || "string"'])),h)).assign(m,(0,Zr._)(iO||(iO=me(["",".validate"])),h))},function(){return n.assign(p,(0,Zr._)(aO||(aO=me(['"string"'])))).assign(m,h)}),e.fail$data((0,Zr.or)(l.strictSchema===!1?Zr.nil:(0,Zr._)(sO||(sO=me([""," && !",""])),a,m),(v=f.$async?(0,Zr._)(lO||(lO=me(["(",".async ? await ","(",") : ","(","))"])),h,m,r,m,r):(0,Zr._)(cO||(cO=me(["","(",")"])),m,r),g=(0,Zr._)(uO||(uO=me(["(typeof ",' == "function" ? '," : ",".test(","))"])),m,v,m,r),(0,Zr._)(fO||(fO=me([""," && "," !== true && "," === "," && !",""])),m,m,p,t,g))));var v,g}():function(){var d=u.formats[i];if(!d)return void function(){if(l.strictSchema===!1)return void u.logger.warn(g());throw new Error(g());function g(){return'unknown format "'.concat(i,'" ignored in schema at path "').concat(c,'"')}}();if(d!==!0){var h=Vt(function(g){var y=g instanceof RegExp?(0,Zr.regexpCode)(g):l.code.formats?(0,Zr._)(dO||(dO=me(["","",""])),l.code.formats,(0,Zr.getProperty)(i)):void 0,w=n.scopeValue("formats",{key:i,ref:g,code:y});return yt(g)=="object"&&!(g instanceof RegExp)?[g.type||"string",g.validate,(0,Zr._)(hO||(hO=me(["",".validate"])),w)]:["string",g,w]}(d),3),p=h[0],m=h[1],v=h[2];p===t&&e.pass(function(){if(yt(d)=="object"&&!(d instanceof RegExp)&&d.async){if(!f.$async)throw new Error("async format in sync schema");return(0,Zr._)(pO||(pO=me(["await ","(",")"])),v,r)}return typeof m=="function"?(0,Zr._)(mO||(mO=me(["","(",")"])),v,r):(0,Zr._)(vO||(vO=me(["",".test(",")"])),v,r)}())}}())}};Jx.default=Npe,Object.defineProperty(Gx,"__esModule",{value:!0});var Ipe=[Jx.default];Gx.default=Ipe;var Rf={};Object.defineProperty(Rf,"__esModule",{value:!0}),Rf.contentVocabulary=Rf.metadataVocabulary=void 0,Rf.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],Rf.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"],Object.defineProperty(vx,"__esModule",{value:!0});var Dpe=bx,Lpe=Px,Rpe=Gx,XB=Rf,Bpe=[gx.default,Dpe.default,(0,Lpe.default)(),Rpe.default,XB.metadataVocabulary,XB.contentVocabulary];vx.default=Bpe;var Qx={},ZB={};(function(e){var t;Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0,(t=e.DiscrError||(e.DiscrError={})).Tag="tag",t.Mapping="mapping"})(ZB),Object.defineProperty(Qx,"__esModule",{value:!0});var Bf=qn(),Yx=ZB,e7=ki,Fpe=Qn,Vpe={keyword:"discriminator",type:"object",schemaType:"object",error:{message:function(e){var t=e.params,n=t.discrError,r=t.tagName;return n===Yx.DiscrError.Tag?'tag "'.concat(r,'" must be string'):'value of tag "'.concat(r,'" must be in oneOf')},params:function(e){var t=e.params,n=t.discrError,r=t.tag,o=t.tagName;return(0,Bf._)(gO||(gO=me(["{error: ",", tag: ",", tagValue: ","}"])),n,o,r)}},code:function(e){var t=e.gen,n=e.data,r=e.schema,o=e.parentSchema,i=e.it,a=o.oneOf;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");var s=r.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");var l=t.let("valid",!1),c=t.const("tag",(0,Bf._)(yO||(yO=me(["","",""])),n,(0,Bf.getProperty)(s)));function f(u){var d=t.name("valid"),h=e.subschema({keyword:"oneOf",schemaProp:u},d);return e.mergeEvaluated(h,Bf.Name),d}t.if((0,Bf._)(bO||(bO=me(["typeof ",' == "string"'])),c),function(){return function(){var u=function(){for(var h,p={},m=k(o),v=!0,g=0;g<a.length;g++){var y=a[g];y!=null&&y.$ref&&!(0,Fpe.schemaHasRulesButRef)(y,i.self.RULES)&&(y=e7.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,y==null?void 0:y.$ref))instanceof e7.SchemaEnv&&(y=y.schema);var w=(h=y==null?void 0:y.properties)===null||h===void 0?void 0:h[s];if(yt(w)!="object")throw new Error('discriminator: oneOf subschemas (or referenced schemas) must have "properties/'.concat(s,'"'));v=v&&(m||k(y)),$(w,g)}if(!v)throw new Error('discriminator: "'.concat(s,'" must be required'));return p;function k(E){var I=E.required;return Array.isArray(I)&&I.includes(s)}function $(E,I){if(E.const)j(E.const,I);else{if(!E.enum)throw new Error('discriminator: "properties/'.concat(s,'" must have "const" or "enum"'));var D,L=we(E.enum);try{for(L.s();!(D=L.n()).done;)j(D.value,I)}catch(M){L.e(M)}finally{L.f()}}}function j(E,I){if(typeof E!="string"||E in p)throw new Error('discriminator: "'.concat(s,'" values must be unique strings'));p[E]=I}}();for(var d in t.if(!1),u)t.elseIf((0,Bf._)(wO||(wO=me([""," === ",""])),c,d)),t.assign(l,f(u[d]));t.else(),e.error(!1,{discrError:Yx.DiscrError.Mapping,tag:c,tagName:s}),t.endIf()}()},function(){return e.error(!1,{discrError:Yx.DiscrError.Tag,tag:c,tagName:s})}),e.ok(l)}};Qx.default=Vpe;var zpe={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var n=vx,r=Qx,o=zpe,i=["/properties"],a="http://json-schema.org/draft-07/schema",s=function(d){Ue(p,d);var h=He(p);function p(){return le(this,p),h.apply(this,arguments)}return ce(p,[{key:"_addVocabularies",value:function(){var m=this;Rn($n(p.prototype),"_addVocabularies",this).call(this),n.default.forEach(function(v){return m.addVocabulary(v)}),this.opts.discriminator&&this.addKeyword(r.default)}},{key:"_addDefaultMetaSchema",value:function(){if(Rn($n(p.prototype),"_addDefaultMetaSchema",this).call(this),this.opts.meta){var m=this.opts.$data?this.$dataMetaSchema(o,i):o;this.addMetaSchema(m,a,!1),this.refs["http://json-schema.org/schema"]=a}}},{key:"defaultMeta",value:function(){return this.opts.defaultMeta=Rn($n(p.prototype),"defaultMeta",this).call(this)||(this.getSchema(a)?a:void 0)}}]),p}(iB.default);e.exports=t=s,Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var l=Og();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var c=qn();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return c._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return c.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return c.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return c.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return c.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return c.CodeGen}});var f=fx();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return f.default}});var u=dx();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return u.default}})})(cx,cx.exports),Oy(cx.exports);var t7={};(function(e){function t(Y){return Y!==null&&Object.prototype.toString.call(Y)==="[object Array]"}function n(Y){return Y!==null&&Object.prototype.toString.call(Y)==="[object Object]"}function r(Y,Q){if(Y===Q)return!0;if(Object.prototype.toString.call(Y)!==Object.prototype.toString.call(Q))return!1;if(t(Y)===!0){if(Y.length!==Q.length)return!1;for(var ve=0;ve<Y.length;ve++)if(r(Y[ve],Q[ve])===!1)return!1;return!0}if(n(Y)===!0){var Ae={};for(var Me in Y)if(hasOwnProperty.call(Y,Me)){if(r(Y[Me],Q[Me])===!1)return!1;Ae[Me]=!0}for(var Ve in Q)if(hasOwnProperty.call(Q,Ve)&&Ae[Ve]!==!0)return!1;return!0}return!1}function o(Y){if(Y===""||Y===!1||Y===null||t(Y)&&Y.length===0)return!0;if(n(Y)){for(var Q in Y)if(Y.hasOwnProperty(Q))return!1;return!0}return!1}var i;i=typeof String.prototype.trimLeft=="function"?function(Y){return Y.trimLeft()}:function(Y){return Y.match(/^\s*(.*)/)[1]};var a=0,s=1,l=2,c=3,f=4,u=6,d=8,h=9,p={0:"number",1:"any",2:"string",3:"array",4:"object",5:"boolean",6:"expression",7:"null",8:"Array<number>",9:"Array<string>"},m="EOF",v="UnquotedIdentifier",g="QuotedIdentifier",y="Rbracket",w="Rparen",k="Comma",$="Colon",j="Rbrace",E="Number",I="Current",D="Expref",L="Pipe",M="Or",F="And",H="EQ",N="GT",W="LT",ee="GTE",U="LTE",K="NE",A="Flatten",T="Star",x="Filter",O="Dot",S="Not",C="Lbrace",_="Lbracket",R="Lparen",Z="Literal",pe={".":O,"*":T,",":k,":":$,"{":C,"}":j,"]":y,"(":R,")":w,"@":I},_e={"<":!0,">":!0,"=":!0,"!":!0},ke={" ":!0," ":!0,"\n":!0};function ue(Y){return Y>="0"&&Y<="9"||Y==="-"}function Ne(){}Ne.prototype={tokenize:function(Y){var Q,ve,Ae,Me,Ve=[];for(this._current=0;this._current<Y.length;)if((Me=Y[this._current])>="a"&&Me<="z"||Me>="A"&&Me<="Z"||Me==="_")Q=this._current,ve=this._consumeUnquotedIdentifier(Y),Ve.push({type:v,value:ve,start:Q});else if(pe[Y[this._current]]!==void 0)Ve.push({type:pe[Y[this._current]],value:Y[this._current],start:this._current}),this._current++;else if(ue(Y[this._current]))Ae=this._consumeNumber(Y),Ve.push(Ae);else if(Y[this._current]==="[")Ae=this._consumeLBracket(Y),Ve.push(Ae);else if(Y[this._current]==='"')Q=this._current,ve=this._consumeQuotedIdentifier(Y),Ve.push({type:g,value:ve,start:Q});else if(Y[this._current]==="'")Q=this._current,ve=this._consumeRawStringLiteral(Y),Ve.push({type:Z,value:ve,start:Q});else if(Y[this._current]==="`"){Q=this._current;var xe=this._consumeLiteral(Y);Ve.push({type:Z,value:xe,start:Q})}else if(_e[Y[this._current]]!==void 0)Ve.push(this._consumeOperator(Y));else if(ke[Y[this._current]]!==void 0)this._current++;else if(Y[this._current]==="&")Q=this._current,this._current++,Y[this._current]==="&"?(this._current++,Ve.push({type:F,value:"&&",start:Q})):Ve.push({type:D,value:"&",start:Q});else{if(Y[this._current]!=="|"){var Ie=new Error("Unknown character:"+Y[this._current]);throw Ie.name="LexerError",Ie}Q=this._current,this._current++,Y[this._current]==="|"?(this._current++,Ve.push({type:M,value:"||",start:Q})):Ve.push({type:L,value:"|",start:Q})}return Ve},_consumeUnquotedIdentifier:function(Y){var Q,ve=this._current;for(this._current++;this._current<Y.length&&((Q=Y[this._current])>="a"&&Q<="z"||Q>="A"&&Q<="Z"||Q>="0"&&Q<="9"||Q==="_");)this._current++;return Y.slice(ve,this._current)},_consumeQuotedIdentifier:function(Y){var Q=this._current;this._current++;for(var ve=Y.length;Y[this._current]!=='"'&&this._current<ve;){var Ae=this._current;Y[Ae]!=="\\"||Y[Ae+1]!=="\\"&&Y[Ae+1]!=='"'?Ae++:Ae+=2,this._current=Ae}return this._current++,JSON.parse(Y.slice(Q,this._current))},_consumeRawStringLiteral:function(Y){var Q=this._current;this._current++;for(var ve=Y.length;Y[this._current]!=="'"&&this._current<ve;){var Ae=this._current;Y[Ae]!=="\\"||Y[Ae+1]!=="\\"&&Y[Ae+1]!=="'"?Ae++:Ae+=2,this._current=Ae}return this._current++,Y.slice(Q+1,this._current-1).replace("\\'","'")},_consumeNumber:function(Y){var Q=this._current;this._current++;for(var ve=Y.length;ue(Y[this._current])&&this._current<ve;)this._current++;var Ae=parseInt(Y.slice(Q,this._current));return{type:E,value:Ae,start:Q}},_consumeLBracket:function(Y){var Q=this._current;return this._current++,Y[this._current]==="?"?(this._current++,{type:x,value:"[?",start:Q}):Y[this._current]==="]"?(this._current++,{type:A,value:"[]",start:Q}):{type:_,value:"[",start:Q}},_consumeOperator:function(Y){var Q=this._current,ve=Y[Q];return this._current++,ve==="!"?Y[this._current]==="="?(this._current++,{type:K,value:"!=",start:Q}):{type:S,value:"!",start:Q}:ve==="<"?Y[this._current]==="="?(this._current++,{type:U,value:"<=",start:Q}):{type:W,value:"<",start:Q}:ve===">"?Y[this._current]==="="?(this._current++,{type:ee,value:">=",start:Q}):{type:N,value:">",start:Q}:ve==="="&&Y[this._current]==="="?(this._current++,{type:H,value:"==",start:Q}):void 0},_consumeLiteral:function(Y){this._current++;for(var Q,ve=this._current,Ae=Y.length;Y[this._current]!=="`"&&this._current<Ae;){var Me=this._current;Y[Me]!=="\\"||Y[Me+1]!=="\\"&&Y[Me+1]!=="`"?Me++:Me+=2,this._current=Me}var Ve=i(Y.slice(ve,this._current));return Ve=Ve.replace("\\`","`"),Q=this._looksLikeJSON(Ve)?JSON.parse(Ve):JSON.parse('"'+Ve+'"'),this._current++,Q},_looksLikeJSON:function(Y){if(Y==="")return!1;if('[{"'.indexOf(Y[0])>=0||["true","false","null"].indexOf(Y)>=0)return!0;if(!("-0123456789".indexOf(Y[0])>=0))return!1;try{return JSON.parse(Y),!0}catch{return!1}}};var oe={};function ye(){}function fe(Y){this.runtime=Y}function Fe(Y){this._interpreter=Y,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[d]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[l,c]},{types:[s]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[l]},{types:[l]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[l,c,f]}]},map:{_func:this._functionMap,_signature:[{types:[u]},{types:[c]}]},max:{_func:this._functionMax,_signature:[{types:[d,h]}]},merge:{_func:this._functionMerge,_signature:[{types:[f],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[c]},{types:[u]}]},sum:{_func:this._functionSum,_signature:[{types:[d]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[l]},{types:[l]}]},min:{_func:this._functionMin,_signature:[{types:[d,h]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[c]},{types:[u]}]},type:{_func:this._functionType,_signature:[{types:[s]}]},keys:{_func:this._functionKeys,_signature:[{types:[f]}]},values:{_func:this._functionValues,_signature:[{types:[f]}]},sort:{_func:this._functionSort,_signature:[{types:[h,d]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[c]},{types:[u]}]},join:{_func:this._functionJoin,_signature:[{types:[l]},{types:[h]}]},reverse:{_func:this._functionReverse,_signature:[{types:[l,c]}]},to_array:{_func:this._functionToArray,_signature:[{types:[s]}]},to_string:{_func:this._functionToString,_signature:[{types:[s]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[s]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[s],variadic:!0}]}}}oe[m]=0,oe[v]=0,oe[g]=0,oe[y]=0,oe[w]=0,oe[k]=0,oe[j]=0,oe[E]=0,oe[I]=0,oe[D]=0,oe[L]=1,oe[M]=2,oe[F]=3,oe[H]=5,oe[N]=5,oe[W]=5,oe[ee]=5,oe[U]=5,oe[K]=5,oe[A]=9,oe[T]=20,oe[x]=21,oe[O]=40,oe[S]=45,oe[C]=50,oe[_]=55,oe[R]=60,ye.prototype={parse:function(Y){this._loadTokens(Y),this.index=0;var Q=this.expression(0);if(this._lookahead(0)!==m){var ve=this._lookaheadToken(0),Ae=new Error("Unexpected token type: "+ve.type+", value: "+ve.value);throw Ae.name="ParserError",Ae}return Q},_loadTokens:function(Y){var Q=new Ne().tokenize(Y);Q.push({type:m,value:"",start:Y.length}),this.tokens=Q},expression:function(Y){var Q=this._lookaheadToken(0);this._advance();for(var ve=this.nud(Q),Ae=this._lookahead(0);Y<oe[Ae];)this._advance(),ve=this.led(Ae,ve),Ae=this._lookahead(0);return ve},_lookahead:function(Y){return this.tokens[this.index+Y].type},_lookaheadToken:function(Y){return this.tokens[this.index+Y]},_advance:function(){this.index++},nud:function(Y){var Q,ve;switch(Y.type){case Z:return{type:"Literal",value:Y.value};case v:return{type:"Field",name:Y.value};case g:var Ae={type:"Field",name:Y.value};if(this._lookahead(0)===R)throw new Error("Quoted identifier not allowed for function names.");return Ae;case S:return{type:"NotExpression",children:[Q=this.expression(oe.Not)]};case T:return Q=null,{type:"ValueProjection",children:[{type:"Identity"},Q=this._lookahead(0)===y?{type:"Identity"}:this._parseProjectionRHS(oe.Star)]};case x:return this.led(Y.type,{type:"Identity"});case C:return this._parseMultiselectHash();case A:return{type:"Projection",children:[{type:A,children:[{type:"Identity"}]},Q=this._parseProjectionRHS(oe.Flatten)]};case _:return this._lookahead(0)===E||this._lookahead(0)===$?(Q=this._parseIndexExpression(),this._projectIfSlice({type:"Identity"},Q)):this._lookahead(0)===T&&this._lookahead(1)===y?(this._advance(),this._advance(),{type:"Projection",children:[{type:"Identity"},Q=this._parseProjectionRHS(oe.Star)]}):this._parseMultiselectList();case I:return{type:I};case D:return{type:"ExpressionReference",children:[ve=this.expression(oe.Expref)]};case R:for(var Me=[];this._lookahead(0)!==w;)this._lookahead(0)===I?(ve={type:I},this._advance()):ve=this.expression(0),Me.push(ve);return this._match(w),Me[0];default:this._errorToken(Y)}},led:function(Y,Q){var ve;switch(Y){case O:var Ae=oe.Dot;return this._lookahead(0)!==T?{type:"Subexpression",children:[Q,ve=this._parseDotRHS(Ae)]}:(this._advance(),{type:"ValueProjection",children:[Q,ve=this._parseProjectionRHS(Ae)]});case L:return ve=this.expression(oe.Pipe),{type:L,children:[Q,ve]};case M:return{type:"OrExpression",children:[Q,ve=this.expression(oe.Or)]};case F:return{type:"AndExpression",children:[Q,ve=this.expression(oe.And)]};case R:for(var Me,Ve=Q.name,xe=[];this._lookahead(0)!==w;)this._lookahead(0)===I?(Me={type:I},this._advance()):Me=this.expression(0),this._lookahead(0)===k&&this._match(k),xe.push(Me);return this._match(w),{type:"Function",name:Ve,children:xe};case x:var Ie=this.expression(0);return this._match(y),{type:"FilterProjection",children:[Q,ve=this._lookahead(0)===A?{type:"Identity"}:this._parseProjectionRHS(oe.Filter),Ie]};case A:return{type:"Projection",children:[{type:A,children:[Q]},this._parseProjectionRHS(oe.Flatten)]};case H:case K:case N:case ee:case W:case U:return this._parseComparator(Q,Y);case _:var qe=this._lookaheadToken(0);return qe.type===E||qe.type===$?(ve=this._parseIndexExpression(),this._projectIfSlice(Q,ve)):(this._match(T),this._match(y),{type:"Projection",children:[Q,ve=this._parseProjectionRHS(oe.Star)]});default:this._errorToken(this._lookaheadToken(0))}},_match:function(Y){if(this._lookahead(0)!==Y){var Q=this._lookaheadToken(0),ve=new Error("Expected "+Y+", got: "+Q.type);throw ve.name="ParserError",ve}this._advance()},_errorToken:function(Y){var Q=new Error("Invalid token ("+Y.type+'): "'+Y.value+'"');throw Q.name="ParserError",Q},_parseIndexExpression:function(){if(this._lookahead(0)===$||this._lookahead(1)===$)return this._parseSliceExpression();var Y={type:"Index",value:this._lookaheadToken(0).value};return this._advance(),this._match(y),Y},_projectIfSlice:function(Y,Q){var ve={type:"IndexExpression",children:[Y,Q]};return Q.type==="Slice"?{type:"Projection",children:[ve,this._parseProjectionRHS(oe.Star)]}:ve},_parseSliceExpression:function(){for(var Y=[null,null,null],Q=0,ve=this._lookahead(0);ve!==y&&Q<3;){if(ve===$)Q++,this._advance();else{if(ve!==E){var Ae=this._lookahead(0),Me=new Error("Syntax error, unexpected token: "+Ae.value+"("+Ae.type+")");throw Me.name="Parsererror",Me}Y[Q]=this._lookaheadToken(0).value,this._advance()}ve=this._lookahead(0)}return this._match(y),{type:"Slice",children:Y}},_parseComparator:function(Y,Q){return{type:"Comparator",name:Q,children:[Y,this.expression(oe[Q])]}},_parseDotRHS:function(Y){var Q=this._lookahead(0);return[v,g,T].indexOf(Q)>=0?this.expression(Y):Q===_?(this._match(_),this._parseMultiselectList()):Q===C?(this._match(C),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(Y){var Q;if(oe[this._lookahead(0)]<10)Q={type:"Identity"};else if(this._lookahead(0)===_)Q=this.expression(Y);else if(this._lookahead(0)===x)Q=this.expression(Y);else{if(this._lookahead(0)!==O){var ve=this._lookaheadToken(0),Ae=new Error("Sytanx error, unexpected token: "+ve.value+"("+ve.type+")");throw Ae.name="ParserError",Ae}this._match(O),Q=this._parseDotRHS(Y)}return Q},_parseMultiselectList:function(){for(var Y=[];this._lookahead(0)!==y;){var Q=this.expression(0);if(Y.push(Q),this._lookahead(0)===k&&(this._match(k),this._lookahead(0)===y))throw new Error("Unexpected token Rbracket")}return this._match(y),{type:"MultiSelectList",children:Y}},_parseMultiselectHash:function(){for(var Y,Q,ve,Ae=[],Me=[v,g];;){if(Y=this._lookaheadToken(0),Me.indexOf(Y.type)<0)throw new Error("Expecting an identifier token, got: "+Y.type);if(Q=Y.value,this._advance(),this._match($),ve={type:"KeyValuePair",name:Q,value:this.expression(0)},Ae.push(ve),this._lookahead(0)===k)this._match(k);else if(this._lookahead(0)===j){this._match(j);break}}return{type:"MultiSelectHash",children:Ae}}},fe.prototype={search:function(Y,Q){return this.visit(Y,Q)},visit:function(Y,Q){var ve,Ae,Me,Ve,xe,Ie,qe,tt,We;switch(Y.type){case"Field":return Q!==null&&n(Q)?(Ie=Q[Y.name])===void 0?null:Ie:null;case"Subexpression":for(Me=this.visit(Y.children[0],Q),We=1;We<Y.children.length;We++)if((Me=this.visit(Y.children[1],Me))===null)return null;return Me;case"IndexExpression":return qe=this.visit(Y.children[0],Q),this.visit(Y.children[1],qe);case"Index":if(!t(Q))return null;var ut=Y.value;return ut<0&&(ut=Q.length+ut),(Me=Q[ut])===void 0&&(Me=null),Me;case"Slice":if(!t(Q))return null;var gt=Y.children.slice(0),Dt=this.computeSliceParams(Q.length,gt),jt=Dt[0],En=Dt[1],Lt=Dt[2];if(Me=[],Lt>0)for(We=jt;We<En;We+=Lt)Me.push(Q[We]);else for(We=jt;We>En;We+=Lt)Me.push(Q[We]);return Me;case"Projection":var jn=this.visit(Y.children[0],Q);if(!t(jn))return null;for(tt=[],We=0;We<jn.length;We++)(Ae=this.visit(Y.children[1],jn[We]))!==null&&tt.push(Ae);return tt;case"ValueProjection":if(!n(jn=this.visit(Y.children[0],Q)))return null;tt=[];var fn=function(Gn){for(var Pe=Object.keys(Gn),dt=[],Ct=0;Ct<Pe.length;Ct++)dt.push(Gn[Pe[Ct]]);return dt}(jn);for(We=0;We<fn.length;We++)(Ae=this.visit(Y.children[1],fn[We]))!==null&&tt.push(Ae);return tt;case"FilterProjection":if(!t(jn=this.visit(Y.children[0],Q)))return null;var Kn=[],bn=[];for(We=0;We<jn.length;We++)o(ve=this.visit(Y.children[2],jn[We]))||Kn.push(jn[We]);for(var Hn=0;Hn<Kn.length;Hn++)(Ae=this.visit(Y.children[1],Kn[Hn]))!==null&&bn.push(Ae);return bn;case"Comparator":switch(Ve=this.visit(Y.children[0],Q),xe=this.visit(Y.children[1],Q),Y.name){case H:Me=r(Ve,xe);break;case K:Me=!r(Ve,xe);break;case N:Me=Ve>xe;break;case ee:Me=Ve>=xe;break;case W:Me=Ve<xe;break;case U:Me=Ve<=xe;break;default:throw new Error("Unknown comparator: "+Y.name)}return Me;case A:var Ln=this.visit(Y.children[0],Q);if(!t(Ln))return null;var Sn=[];for(We=0;We<Ln.length;We++)t(Ae=Ln[We])?Sn.push.apply(Sn,Ae):Sn.push(Ae);return Sn;case"Identity":return Q;case"MultiSelectList":if(Q===null)return null;for(tt=[],We=0;We<Y.children.length;We++)tt.push(this.visit(Y.children[We],Q));return tt;case"MultiSelectHash":if(Q===null)return null;var wn;for(tt={},We=0;We<Y.children.length;We++)tt[(wn=Y.children[We]).name]=this.visit(wn.value,Q);return tt;case"OrExpression":return o(ve=this.visit(Y.children[0],Q))&&(ve=this.visit(Y.children[1],Q)),ve;case"AndExpression":return o(Ve=this.visit(Y.children[0],Q))===!0?Ve:this.visit(Y.children[1],Q);case"NotExpression":return o(Ve=this.visit(Y.children[0],Q));case"Literal":return Y.value;case L:return qe=this.visit(Y.children[0],Q),this.visit(Y.children[1],qe);case I:return Q;case"Function":var ln=[];for(We=0;We<Y.children.length;We++)ln.push(this.visit(Y.children[We],Q));return this.runtime.callFunction(Y.name,ln);case"ExpressionReference":var er=Y.children[0];return er.jmespathType=D,er;default:throw new Error("Unknown node type: "+Y.type)}},computeSliceParams:function(Y,Q){var ve=Q[0],Ae=Q[1],Me=Q[2],Ve=[null,null,null];if(Me===null)Me=1;else if(Me===0){var xe=new Error("Invalid slice, step cannot be 0");throw xe.name="RuntimeError",xe}var Ie=Me<0;return ve=ve===null?Ie?Y-1:0:this.capSliceRange(Y,ve,Me),Ae=Ae===null?Ie?-1:Y:this.capSliceRange(Y,Ae,Me),Ve[0]=ve,Ve[1]=Ae,Ve[2]=Me,Ve},capSliceRange:function(Y,Q,ve){return Q<0?(Q+=Y)<0&&(Q=ve<0?-1:0):Q>=Y&&(Q=ve<0?Y-1:Y),Q}},Fe.prototype={callFunction:function(Y,Q){var ve=this.functionTable[Y];if(ve===void 0)throw new Error("Unknown function: "+Y+"()");return this._validateArgs(Y,Q,ve._signature),ve._func.call(this,Q)},_validateArgs:function(Y,Q,ve){var Ae,Me,Ve,xe;if(ve[ve.length-1].variadic){if(Q.length<ve.length)throw Ae=ve.length===1?" argument":" arguments",new Error("ArgumentError: "+Y+"() takes at least"+ve.length+Ae+" but received "+Q.length)}else if(Q.length!==ve.length)throw Ae=ve.length===1?" argument":" arguments",new Error("ArgumentError: "+Y+"() takes "+ve.length+Ae+" but received "+Q.length);for(var Ie=0;Ie<ve.length;Ie++){xe=!1,Me=ve[Ie].types,Ve=this._getTypeName(Q[Ie]);for(var qe=0;qe<Me.length;qe++)if(this._typeMatches(Ve,Me[qe],Q[Ie])){xe=!0;break}if(!xe){var tt=Me.map(function(We){return p[We]}).join(",");throw new Error("TypeError: "+Y+"() expected argument "+(Ie+1)+" to be type "+tt+" but received type "+p[Ve]+" instead.")}}},_typeMatches:function(Y,Q,ve){if(Q===s)return!0;if(Q!==h&&Q!==d&&Q!==c)return Y===Q;if(Q===c)return Y===c;if(Y===c){var Ae;Q===d?Ae=a:Q===h&&(Ae=l);for(var Me=0;Me<ve.length;Me++)if(!this._typeMatches(this._getTypeName(ve[Me]),Ae,ve[Me]))return!1;return!0}},_getTypeName:function(Y){switch(Object.prototype.toString.call(Y)){case"[object String]":return l;case"[object Number]":return a;case"[object Array]":return c;case"[object Boolean]":return 5;case"[object Null]":return 7;case"[object Object]":return Y.jmespathType===D?u:f}},_functionStartsWith:function(Y){return Y[0].lastIndexOf(Y[1])===0},_functionEndsWith:function(Y){var Q=Y[0],ve=Y[1];return Q.indexOf(ve,Q.length-ve.length)!==-1},_functionReverse:function(Y){if(this._getTypeName(Y[0])===l){for(var Q=Y[0],ve="",Ae=Q.length-1;Ae>=0;Ae--)ve+=Q[Ae];return ve}var Me=Y[0].slice(0);return Me.reverse(),Me},_functionAbs:function(Y){return Math.abs(Y[0])},_functionCeil:function(Y){return Math.ceil(Y[0])},_functionAvg:function(Y){for(var Q=0,ve=Y[0],Ae=0;Ae<ve.length;Ae++)Q+=ve[Ae];return Q/ve.length},_functionContains:function(Y){return Y[0].indexOf(Y[1])>=0},_functionFloor:function(Y){return Math.floor(Y[0])},_functionLength:function(Y){return n(Y[0])?Object.keys(Y[0]).length:Y[0].length},_functionMap:function(Y){for(var Q=[],ve=this._interpreter,Ae=Y[0],Me=Y[1],Ve=0;Ve<Me.length;Ve++)Q.push(ve.visit(Ae,Me[Ve]));return Q},_functionMerge:function(Y){for(var Q={},ve=0;ve<Y.length;ve++){var Ae=Y[ve];for(var Me in Ae)Q[Me]=Ae[Me]}return Q},_functionMax:function(Y){if(Y[0].length>0){if(this._getTypeName(Y[0][0])===a)return Math.max.apply(Math,Y[0]);for(var Q=Y[0],ve=Q[0],Ae=1;Ae<Q.length;Ae++)ve.localeCompare(Q[Ae])<0&&(ve=Q[Ae]);return ve}return null},_functionMin:function(Y){if(Y[0].length>0){if(this._getTypeName(Y[0][0])===a)return Math.min.apply(Math,Y[0]);for(var Q=Y[0],ve=Q[0],Ae=1;Ae<Q.length;Ae++)Q[Ae].localeCompare(ve)<0&&(ve=Q[Ae]);return ve}return null},_functionSum:function(Y){for(var Q=0,ve=Y[0],Ae=0;Ae<ve.length;Ae++)Q+=ve[Ae];return Q},_functionType:function(Y){switch(this._getTypeName(Y[0])){case a:return"number";case l:return"string";case c:return"array";case f:return"object";case 5:return"boolean";case u:return"expref";case 7:return"null"}},_functionKeys:function(Y){return Object.keys(Y[0])},_functionValues:function(Y){for(var Q=Y[0],ve=Object.keys(Q),Ae=[],Me=0;Me<ve.length;Me++)Ae.push(Q[ve[Me]]);return Ae},_functionJoin:function(Y){var Q=Y[0];return Y[1].join(Q)},_functionToArray:function(Y){return this._getTypeName(Y[0])===c?Y[0]:[Y[0]]},_functionToString:function(Y){return this._getTypeName(Y[0])===l?Y[0]:JSON.stringify(Y[0])},_functionToNumber:function(Y){var Q,ve=this._getTypeName(Y[0]);return ve===a?Y[0]:ve!==l||(Q=+Y[0],isNaN(Q))?null:Q},_functionNotNull:function(Y){for(var Q=0;Q<Y.length;Q++)if(this._getTypeName(Y[Q])!==7)return Y[Q];return null},_functionSort:function(Y){var Q=Y[0].slice(0);return Q.sort(),Q},_functionSortBy:function(Y){var Q=Y[0].slice(0);if(Q.length===0)return Q;var ve=this._interpreter,Ae=Y[1],Me=this._getTypeName(ve.visit(Ae,Q[0]));if([a,l].indexOf(Me)<0)throw new Error("TypeError");for(var Ve=this,xe=[],Ie=0;Ie<Q.length;Ie++)xe.push([Ie,Q[Ie]]);xe.sort(function(tt,We){var ut=ve.visit(Ae,tt[1]),gt=ve.visit(Ae,We[1]);if(Ve._getTypeName(ut)!==Me)throw new Error("TypeError: expected "+Me+", received "+Ve._getTypeName(ut));if(Ve._getTypeName(gt)!==Me)throw new Error("TypeError: expected "+Me+", received "+Ve._getTypeName(gt));return ut>gt?1:ut<gt?-1:tt[0]-We[0]});for(var qe=0;qe<xe.length;qe++)Q[qe]=xe[qe][1];return Q},_functionMaxBy:function(Y){for(var Q,ve,Ae=Y[1],Me=Y[0],Ve=this.createKeyFunction(Ae,[a,l]),xe=-1/0,Ie=0;Ie<Me.length;Ie++)(ve=Ve(Me[Ie]))>xe&&(xe=ve,Q=Me[Ie]);return Q},_functionMinBy:function(Y){for(var Q,ve,Ae=Y[1],Me=Y[0],Ve=this.createKeyFunction(Ae,[a,l]),xe=1/0,Ie=0;Ie<Me.length;Ie++)(ve=Ve(Me[Ie]))<xe&&(xe=ve,Q=Me[Ie]);return Q},createKeyFunction:function(Y,Q){var ve=this,Ae=this._interpreter;return function(Me){var Ve=Ae.visit(Y,Me);if(Q.indexOf(ve._getTypeName(Ve))<0){var xe="TypeError: expected one of "+Q+", received "+ve._getTypeName(Ve);throw new Error(xe)}return Ve}}},e.tokenize=function(Y){return new Ne().tokenize(Y)},e.compile=function(Y){return new ye().parse(Y)},e.search=function(Y,Q){var ve=new ye,Ae=new Fe,Me=new fe(Ae);Ae._interpreter=Me;var Ve=ve.parse(Q);return Me.search(Ve,Y)},e.strictDeepEqual=r})(t7),Oy(t7);/*!
137
137
  * vanilla-picker v2.12.1
138
138
  * https://vanilla-picker.js.org
139
139
  *
140
140
  * Copyright 2017-2021 Andreas Borgen (https://github.com/Sphinxxxx), Adam Brooks (https://github.com/dissimulate)
141
141
  * Released under the ISC license.
142
- */var Xx=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},Zx=function(){function e(t,n){for(var r=0;r<n.length;r++){var o=n[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),Kg=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(n,r){var o=[],i=!0,a=!1,s=void 0;try{for(var l,c=n[Symbol.iterator]();!(i=(l=c.next()).done)&&(o.push(l.value),!r||o.length!==r);i=!0);}catch(f){a=!0,s=f}finally{try{!i&&c.return&&c.return()}finally{if(a)throw s}}return o}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};String.prototype.startsWith=String.prototype.startsWith||function(e){return this.indexOf(e)===0},String.prototype.padStart=String.prototype.padStart||function(e,t){for(var n=this;n.length<e;)n=t+n;return n};var qpe={cb:"0f8ff",tqw:"aebd7",q:"-ffff",qmrn:"7fffd4",zr:"0ffff",bg:"5f5dc",bsq:"e4c4",bck:"---",nch:"ebcd",b:"--ff",bvt:"8a2be2",brwn:"a52a2a",brw:"deb887",ctb:"5f9ea0",hrt:"7fff-",chcT:"d2691e",cr:"7f50",rnw:"6495ed",crns:"8dc",crms:"dc143c",cn:"-ffff",Db:"--8b",Dcn:"-8b8b",Dgnr:"b8860b",Dgr:"a9a9a9",Dgrn:"-64-",Dkhk:"bdb76b",Dmgn:"8b-8b",Dvgr:"556b2f",Drng:"8c-",Drch:"9932cc",Dr:"8b--",Dsmn:"e9967a",Dsgr:"8fbc8f",DsTb:"483d8b",DsTg:"2f4f4f",Dtrq:"-ced1",Dvt:"94-d3",ppnk:"1493",pskb:"-bfff",mgr:"696969",grb:"1e90ff",rbrc:"b22222",rwht:"af0",stg:"228b22",chs:"-ff",gnsb:"dcdcdc",st:"8f8ff",g:"d7-",gnr:"daa520",gr:"808080",grn:"-8-0",grnw:"adff2f",hnw:"0fff0",htpn:"69b4",nnr:"cd5c5c",ng:"4b-82",vr:"0",khk:"0e68c",vnr:"e6e6fa",nrb:"0f5",wngr:"7cfc-",mnch:"acd",Lb:"add8e6",Lcr:"08080",Lcn:"e0ffff",Lgnr:"afad2",Lgr:"d3d3d3",Lgrn:"90ee90",Lpnk:"b6c1",Lsmn:"a07a",Lsgr:"20b2aa",Lskb:"87cefa",LsTg:"778899",Lstb:"b0c4de",Lw:"e0",m:"-ff-",mgrn:"32cd32",nn:"af0e6",mgnt:"-ff",mrn:"8--0",mqm:"66cdaa",mmb:"--cd",mmrc:"ba55d3",mmpr:"9370db",msg:"3cb371",mmsT:"7b68ee","":"-fa9a",mtr:"48d1cc",mmvt:"c71585",mnLb:"191970",ntc:"5fffa",mstr:"e4e1",mccs:"e4b5",vjw:"dead",nv:"--80",c:"df5e6",v:"808-0",vrb:"6b8e23",rng:"a5-",rngr:"45-",rch:"da70d6",pgnr:"eee8aa",pgrn:"98fb98",ptrq:"afeeee",pvtr:"db7093",ppwh:"efd5",pchp:"dab9",pr:"cd853f",pnk:"c0cb",pm:"dda0dd",pwrb:"b0e0e6",prp:"8-080",cc:"663399",r:"--",sbr:"bc8f8f",rb:"4169e1",sbrw:"8b4513",smn:"a8072",nbr:"4a460",sgrn:"2e8b57",ssh:"5ee",snn:"a0522d",svr:"c0c0c0",skb:"87ceeb",sTb:"6a5acd",sTgr:"708090",snw:"afa",n:"-ff7f",stb:"4682b4",tn:"d2b48c",t:"-8080",thst:"d8bfd8",tmT:"6347",trqs:"40e0d0",vt:"ee82ee",whT:"5deb3",wht:"",hts:"5f5f5",w:"-",wgrn:"9acd32"};function n9(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return(t>0?e.toFixed(t).replace(/0+$/,"").replace(/\.$/,""):e.toString())||"0"}var Upe=function(){function e(t,n,r,o){Xx(this,e);var i=this;if(t!==void 0)if(Array.isArray(t))this.rgba=t;else if(r===void 0){var a=t&&""+t;a&&function(s){if(s.startsWith("hsl")){var l=s.match(/([\-\d\.e]+)/g).map(Number),c=Kg(l,4),f=c[0],u=c[1],d=c[2],h=c[3];h===void 0&&(h=1),f/=360,u/=100,d/=100,i.hsla=[f,u,d,h]}else if(s.startsWith("rgb")){var p=s.match(/([\-\d\.e]+)/g).map(Number),m=Kg(p,4),v=m[0],g=m[1],y=m[2],w=m[3];w===void 0&&(w=1),i.rgba=[v,g,y,w]}else s.startsWith("#")?i.rgba=e.hexToRgb(s):i.rgba=e.nameToRgb(s)||e.hexToRgb(s)}(a.toLowerCase())}else this.rgba=[t,n,r,o===void 0?1:o]}return Zx(e,[{key:"printRGB",value:function(t){var n=(t?this.rgba:this.rgba.slice(0,3)).map(function(r,o){return n9(r,o===3?3:0)});return t?"rgba("+n+")":"rgb("+n+")"}},{key:"printHSL",value:function(t){var n=[360,100,100,1],r=["","%","%",""],o=(t?this.hsla:this.hsla.slice(0,3)).map(function(i,a){return n9(i*n[a],a===3?3:1)+r[a]});return t?"hsla("+o+")":"hsl("+o+")"}},{key:"printHex",value:function(t){var n=this.hex;return t?n:n.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=e.hslToRgb(this._hsla)},set:function(t){t.length===3&&(t[3]=1),this._rgba=t,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=e.rgbToHsl(this._rgba)},set:function(t){t.length===3&&(t[3]=1),this._hsla=t,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var t=this.rgba.map(function(n,r){return r<3?n.toString(16):Math.round(255*n).toString(16)});return"#"+t.map(function(n){return n.padStart(2,"0")}).join("")},set:function(t){this.rgba=e.hexToRgb(t)}}],[{key:"hexToRgb",value:function(t){var n=(t.startsWith("#")?t.slice(1):t).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!n.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+t);var r=n.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(o){return parseInt(o,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(t){var n=t.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),r=qpe[n];return r===void 0?r:e.hexToRgb(r.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(t){var n=Kg(t,4),r=n[0],o=n[1],i=n[2],a=n[3];r/=255,o/=255,i/=255;var s=Math.max(r,o,i),l=Math.min(r,o,i),c=void 0,f=void 0,u=(s+l)/2;if(s===l)c=f=0;else{var d=s-l;switch(f=u>.5?d/(2-s-l):d/(s+l),s){case r:c=(o-i)/d+(o<i?6:0);break;case o:c=(i-r)/d+2;break;case i:c=(r-o)/d+4}c/=6}return[c,f,u,a]}},{key:"hslToRgb",value:function(t){var n=Kg(t,4),r=n[0],o=n[1],i=n[2],a=n[3],s=void 0,l=void 0,c=void 0;if(o===0)s=l=c=i;else{var f=function(p,m,v){return v<0&&(v+=1),v>1&&(v-=1),v<.16666666666666666?p+6*(m-p)*v:v<.5?m:v<.6666666666666666?p+(m-p)*(.6666666666666666-v)*6:p},u=i<.5?i*(1+o):i+o-i*o,d=2*i-u;s=f(d,u,r+1/3),l=f(d,u,r),c=f(d,u,r-1/3)}var h=[255*s,255*l,255*c].map(Math.round);return h[3]=a,h}}]),e}(),Hpe=function(){function e(){Xx(this,e),this._events=[]}return Zx(e,[{key:"add",value:function(t,n,r){t.addEventListener(n,r,!1),this._events.push({target:t,type:n,handler:r})}},{key:"remove",value:function(t,n,r){this._events=this._events.filter(function(o){var i=!0;return t&&t!==o.target&&(i=!1),n&&n!==o.type&&(i=!1),r&&r!==o.handler&&(i=!1),i&&e._doRemove(o.target,o.type,o.handler),!i})}},{key:"destroy",value:function(){this._events.forEach(function(t){return e._doRemove(t.target,t.type,t.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(t,n,r){t.removeEventListener(n,r,!1)}}]),e}();function e_(e,t,n){var r=!1;function o(l,c,f){return Math.max(c,Math.min(l,f))}function i(l,c,f){if(f&&(r=!0),r){l.preventDefault();var u=t.getBoundingClientRect(),d=u.width,h=u.height,p=c.clientX,m=c.clientY,v=o(p-u.left,0,d),g=o(m-u.top,0,h);n(v/d,g/h)}}function a(l,c){(l.buttons===void 0?l.which:l.buttons)===1?i(l,l,c):r=!1}function s(l,c){l.touches.length===1?i(l,l.touches[0],c):r=!1}e.add(t,"mousedown",function(l){a(l,!0)}),e.add(t,"touchstart",function(l){s(l,!0)}),e.add(window,"mousemove",a),e.add(t,"touchmove",s),e.add(window,"mouseup",function(l){r=!1}),e.add(t,"touchend",function(l){r=!1}),e.add(t,"touchcancel",function(l){r=!1})}var r9="keydown",Gg="mousedown",t_="focusin";function Ss(e,t){return(t||document).querySelector(e)}function o9(e){e.preventDefault(),e.stopPropagation()}function n_(e,t,n,r,o){e.add(t,r9,function(i){n.indexOf(i.key)>=0&&(o&&o9(i),r(i))})}var i9=function(){function e(t){Xx(this,e),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new Hpe,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(t)}return Zx(e,[{key:"setOptions",value:function(t){var n=this;if(t){var r=this.settings;if(t instanceof HTMLElement)r.parent=t;else{r.parent&&t.parent&&r.parent!==t.parent&&(this._events.remove(r.parent),this._popupInited=!1),function(s,l,c){for(var f in s)c&&c.indexOf(f)>=0||(l[f]=s[f])}(t,r),t.onChange&&(this.onChange=t.onChange),t.onDone&&(this.onDone=t.onDone),t.onOpen&&(this.onOpen=t.onOpen),t.onClose&&(this.onClose=t.onClose);var o=t.color||t.colour;o&&this._setColor(o)}var i=r.parent;if(i&&r.popup&&!this._popupInited){var a=function(s){return n.openHandler(s)};this._events.add(i,"click",a),n_(this._events,i,[" ","Spacebar","Enter"],a),this._popupInited=!0}else t.parent&&!r.popup&&this.show()}}},{key:"openHandler",value:function(t){if(this.show()){t&&t.preventDefault(),this.settings.parent.style.pointerEvents="none";var n=t&&t.type===r9?this._domEdit:this.domElement;setTimeout(function(){return n.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(t){var n=t&&t.type,r=!1;if(t)if(n===Gg||n===t_){var o=(this.__containedEvent||0)+100;t.timeStamp>o&&(r=!0)}else o9(t),r=!0;else r=!0;r&&this.hide()&&(this.settings.parent.style.pointerEvents="",n!==Gg&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(t,n){this.closeHandler(),this.setOptions(t),n&&this.openHandler()}},{key:"setColor",value:function(t,n){this._setColor(t,{silent:n})}},{key:"_setColor",value:function(t,n){if(typeof t=="string"&&(t=t.trim()),t){n=n||{};var r=void 0;try{r=new Upe(t)}catch(i){if(n.failSilently)return;throw i}if(!this.settings.alpha){var o=r.hsla;o[3]=1,r.hsla=o}this.colour=this.color=r,this._setHSLA(null,null,null,null,n)}}},{key:"setColour",value:function(t,n){this.setColor(t,n)}},{key:"show",value:function(){if(!this.settings.parent)return!1;if(this.domElement){var t=this._toggleDOM(!0);return this._setPosition(),t}var n,r,o=this.settings.template||'<div class="picker_wrapper" tabindex="-1"><div class="picker_arrow"></div><div class="picker_hue picker_slider"><div class="picker_selector"></div></div><div class="picker_sl"><div class="picker_selector"></div></div><div class="picker_alpha picker_slider"><div class="picker_selector"></div></div><div class="picker_editor"><input aria-label="Type a color name or hex value"/></div><div class="picker_sample"></div><div class="picker_done"><button>Ok</button></div><div class="picker_cancel"><button>Cancel</button></div></div>',i=(n=o,(r=document.createElement("div")).innerHTML=n,r.firstElementChild);return this.domElement=i,this._domH=Ss(".picker_hue",i),this._domSL=Ss(".picker_sl",i),this._domA=Ss(".picker_alpha",i),this._domEdit=Ss(".picker_editor input",i),this._domSample=Ss(".picker_sample",i),this._domOkay=Ss(".picker_done button",i),this._domCancel=Ss(".picker_cancel button",i),i.classList.add("layout_"+this.settings.layout),this.settings.alpha||i.classList.add("no_alpha"),this.settings.editor||i.classList.add("no_editor"),this.settings.cancelButton||i.classList.add("no_cancel"),this._ifPopup(function(){return i.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var t=this,n=this,r=this.domElement,o=this._events;function i(l,c,f){o.add(l,c,f)}i(r,"click",function(l){return l.preventDefault()}),e_(o,this._domH,function(l,c){return n._setHSLA(l)}),e_(o,this._domSL,function(l,c){return n._setHSLA(null,l,1-c)}),this.settings.alpha&&e_(o,this._domA,function(l,c){return n._setHSLA(null,null,null,1-c)});var a=this._domEdit;i(a,"input",function(l){n._setColor(this.value,{fromEditor:!0,failSilently:!0})}),i(a,"focus",function(l){var c=this;c.selectionStart===c.selectionEnd&&c.select()}),this._ifPopup(function(){var l=function(f){return t.closeHandler(f)};i(window,Gg,l),i(window,t_,l),n_(o,r,["Esc","Escape"],l);var c=function(f){t.__containedEvent=f.timeStamp};i(r,Gg,c),i(r,t_,c),i(t._domCancel,"click",l)});var s=function(l){t._ifPopup(function(){return t.closeHandler(l)}),t.onDone&&t.onDone(t.colour)};i(this._domOkay,"click",s),n_(o,r,["Enter"],s)}},{key:"_setPosition",value:function(){var t=this.settings.parent,n=this.domElement;t!==n.parentNode&&t.appendChild(n),this._ifPopup(function(r){getComputedStyle(t).position==="static"&&(t.style.position="relative");var o=r===!0?"popup_right":"popup_"+r;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(i){i===o?n.classList.add(i):n.classList.remove(i)}),n.classList.add(o)})}},{key:"_setHSLA",value:function(t,n,r,o,i){i=i||{};var a=this.colour,s=a.hsla;[t,n,r,o].forEach(function(l,c){(l||l===0)&&(s[c]=l)}),a.hsla=s,this._updateUI(i),this.onChange&&!i.silent&&this.onChange(a)}},{key:"_updateUI",value:function(t){if(this.domElement){t=t||{};var n=this.colour,r=n.hsla,o="hsl("+360*r[0]+", 100%, 50%)",i=n.hslString,a=n.hslaString,s=this._domH,l=this._domSL,c=this._domA,f=Ss(".picker_selector",s),u=Ss(".picker_selector",l),d=Ss(".picker_selector",c);w(0,f,r[0]),this._domSL.style.backgroundColor=this._domH.style.color=o,w(0,u,r[1]),k(0,u,1-r[2]),l.style.color=i,k(0,d,1-r[3]);var h=i,p=h.replace("hsl","hsla").replace(")",", 0)"),m="linear-gradient("+[h,p]+")";if(this._domA.style.background=m+`, linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em,
143
- linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,!t.fromEditor){var v=this.settings.editorFormat,g=this.settings.alpha,y=void 0;switch(v){case"rgb":y=n.printRGB(g);break;case"hsl":y=n.printHSL(g);break;default:y=n.printHex(g)}this._domEdit.value=y}this._domSample.style.color=a}function w($,j,E){j.style.left=100*E+"%"}function k($,j,E){j.style.top=100*E+"%"}}},{key:"_ifPopup",value:function(t,n){this.settings.parent&&this.settings.popup?t&&t(this.settings.popup):n&&n()}},{key:"_toggleDOM",value:function(t){var n=this.domElement;if(!n)return!1;var r=t?"":"none",o=n.style.display!==r;return o&&(n.style.display=r),o}}]),e}(),r_=document.createElement("style");r_.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(r_),i9.StyleElement=r_;var Wpe=Object.freeze({__proto__:null,default:i9}),Cs={};/*!
142
+ */var Xx=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},Zx=function(){function e(t,n){for(var r=0;r<n.length;r++){var o=n[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),Kg=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(n,r){var o=[],i=!0,a=!1,s=void 0;try{for(var l,c=n[Symbol.iterator]();!(i=(l=c.next()).done)&&(o.push(l.value),!r||o.length!==r);i=!0);}catch(f){a=!0,s=f}finally{try{!i&&c.return&&c.return()}finally{if(a)throw s}}return o}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};String.prototype.startsWith=String.prototype.startsWith||function(e){return this.indexOf(e)===0},String.prototype.padStart=String.prototype.padStart||function(e,t){for(var n=this;n.length<e;)n=t+n;return n};var qpe={cb:"0f8ff",tqw:"aebd7",q:"-ffff",qmrn:"7fffd4",zr:"0ffff",bg:"5f5dc",bsq:"e4c4",bck:"---",nch:"ebcd",b:"--ff",bvt:"8a2be2",brwn:"a52a2a",brw:"deb887",ctb:"5f9ea0",hrt:"7fff-",chcT:"d2691e",cr:"7f50",rnw:"6495ed",crns:"8dc",crms:"dc143c",cn:"-ffff",Db:"--8b",Dcn:"-8b8b",Dgnr:"b8860b",Dgr:"a9a9a9",Dgrn:"-64-",Dkhk:"bdb76b",Dmgn:"8b-8b",Dvgr:"556b2f",Drng:"8c-",Drch:"9932cc",Dr:"8b--",Dsmn:"e9967a",Dsgr:"8fbc8f",DsTb:"483d8b",DsTg:"2f4f4f",Dtrq:"-ced1",Dvt:"94-d3",ppnk:"1493",pskb:"-bfff",mgr:"696969",grb:"1e90ff",rbrc:"b22222",rwht:"af0",stg:"228b22",chs:"-ff",gnsb:"dcdcdc",st:"8f8ff",g:"d7-",gnr:"daa520",gr:"808080",grn:"-8-0",grnw:"adff2f",hnw:"0fff0",htpn:"69b4",nnr:"cd5c5c",ng:"4b-82",vr:"0",khk:"0e68c",vnr:"e6e6fa",nrb:"0f5",wngr:"7cfc-",mnch:"acd",Lb:"add8e6",Lcr:"08080",Lcn:"e0ffff",Lgnr:"afad2",Lgr:"d3d3d3",Lgrn:"90ee90",Lpnk:"b6c1",Lsmn:"a07a",Lsgr:"20b2aa",Lskb:"87cefa",LsTg:"778899",Lstb:"b0c4de",Lw:"e0",m:"-ff-",mgrn:"32cd32",nn:"af0e6",mgnt:"-ff",mrn:"8--0",mqm:"66cdaa",mmb:"--cd",mmrc:"ba55d3",mmpr:"9370db",msg:"3cb371",mmsT:"7b68ee","":"-fa9a",mtr:"48d1cc",mmvt:"c71585",mnLb:"191970",ntc:"5fffa",mstr:"e4e1",mccs:"e4b5",vjw:"dead",nv:"--80",c:"df5e6",v:"808-0",vrb:"6b8e23",rng:"a5-",rngr:"45-",rch:"da70d6",pgnr:"eee8aa",pgrn:"98fb98",ptrq:"afeeee",pvtr:"db7093",ppwh:"efd5",pchp:"dab9",pr:"cd853f",pnk:"c0cb",pm:"dda0dd",pwrb:"b0e0e6",prp:"8-080",cc:"663399",r:"--",sbr:"bc8f8f",rb:"4169e1",sbrw:"8b4513",smn:"a8072",nbr:"4a460",sgrn:"2e8b57",ssh:"5ee",snn:"a0522d",svr:"c0c0c0",skb:"87ceeb",sTb:"6a5acd",sTgr:"708090",snw:"afa",n:"-ff7f",stb:"4682b4",tn:"d2b48c",t:"-8080",thst:"d8bfd8",tmT:"6347",trqs:"40e0d0",vt:"ee82ee",whT:"5deb3",wht:"",hts:"5f5f5",w:"-",wgrn:"9acd32"};function n7(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return(t>0?e.toFixed(t).replace(/0+$/,"").replace(/\.$/,""):e.toString())||"0"}var Upe=function(){function e(t,n,r,o){Xx(this,e);var i=this;if(t!==void 0)if(Array.isArray(t))this.rgba=t;else if(r===void 0){var a=t&&""+t;a&&function(s){if(s.startsWith("hsl")){var l=s.match(/([\-\d\.e]+)/g).map(Number),c=Kg(l,4),f=c[0],u=c[1],d=c[2],h=c[3];h===void 0&&(h=1),f/=360,u/=100,d/=100,i.hsla=[f,u,d,h]}else if(s.startsWith("rgb")){var p=s.match(/([\-\d\.e]+)/g).map(Number),m=Kg(p,4),v=m[0],g=m[1],y=m[2],w=m[3];w===void 0&&(w=1),i.rgba=[v,g,y,w]}else s.startsWith("#")?i.rgba=e.hexToRgb(s):i.rgba=e.nameToRgb(s)||e.hexToRgb(s)}(a.toLowerCase())}else this.rgba=[t,n,r,o===void 0?1:o]}return Zx(e,[{key:"printRGB",value:function(t){var n=(t?this.rgba:this.rgba.slice(0,3)).map(function(r,o){return n7(r,o===3?3:0)});return t?"rgba("+n+")":"rgb("+n+")"}},{key:"printHSL",value:function(t){var n=[360,100,100,1],r=["","%","%",""],o=(t?this.hsla:this.hsla.slice(0,3)).map(function(i,a){return n7(i*n[a],a===3?3:1)+r[a]});return t?"hsla("+o+")":"hsl("+o+")"}},{key:"printHex",value:function(t){var n=this.hex;return t?n:n.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=e.hslToRgb(this._hsla)},set:function(t){t.length===3&&(t[3]=1),this._rgba=t,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=e.rgbToHsl(this._rgba)},set:function(t){t.length===3&&(t[3]=1),this._hsla=t,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var t=this.rgba.map(function(n,r){return r<3?n.toString(16):Math.round(255*n).toString(16)});return"#"+t.map(function(n){return n.padStart(2,"0")}).join("")},set:function(t){this.rgba=e.hexToRgb(t)}}],[{key:"hexToRgb",value:function(t){var n=(t.startsWith("#")?t.slice(1):t).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!n.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+t);var r=n.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(o){return parseInt(o,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(t){var n=t.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),r=qpe[n];return r===void 0?r:e.hexToRgb(r.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(t){var n=Kg(t,4),r=n[0],o=n[1],i=n[2],a=n[3];r/=255,o/=255,i/=255;var s=Math.max(r,o,i),l=Math.min(r,o,i),c=void 0,f=void 0,u=(s+l)/2;if(s===l)c=f=0;else{var d=s-l;switch(f=u>.5?d/(2-s-l):d/(s+l),s){case r:c=(o-i)/d+(o<i?6:0);break;case o:c=(i-r)/d+2;break;case i:c=(r-o)/d+4}c/=6}return[c,f,u,a]}},{key:"hslToRgb",value:function(t){var n=Kg(t,4),r=n[0],o=n[1],i=n[2],a=n[3],s=void 0,l=void 0,c=void 0;if(o===0)s=l=c=i;else{var f=function(p,m,v){return v<0&&(v+=1),v>1&&(v-=1),v<.16666666666666666?p+6*(m-p)*v:v<.5?m:v<.6666666666666666?p+(m-p)*(.6666666666666666-v)*6:p},u=i<.5?i*(1+o):i+o-i*o,d=2*i-u;s=f(d,u,r+1/3),l=f(d,u,r),c=f(d,u,r-1/3)}var h=[255*s,255*l,255*c].map(Math.round);return h[3]=a,h}}]),e}(),Hpe=function(){function e(){Xx(this,e),this._events=[]}return Zx(e,[{key:"add",value:function(t,n,r){t.addEventListener(n,r,!1),this._events.push({target:t,type:n,handler:r})}},{key:"remove",value:function(t,n,r){this._events=this._events.filter(function(o){var i=!0;return t&&t!==o.target&&(i=!1),n&&n!==o.type&&(i=!1),r&&r!==o.handler&&(i=!1),i&&e._doRemove(o.target,o.type,o.handler),!i})}},{key:"destroy",value:function(){this._events.forEach(function(t){return e._doRemove(t.target,t.type,t.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(t,n,r){t.removeEventListener(n,r,!1)}}]),e}();function e_(e,t,n){var r=!1;function o(l,c,f){return Math.max(c,Math.min(l,f))}function i(l,c,f){if(f&&(r=!0),r){l.preventDefault();var u=t.getBoundingClientRect(),d=u.width,h=u.height,p=c.clientX,m=c.clientY,v=o(p-u.left,0,d),g=o(m-u.top,0,h);n(v/d,g/h)}}function a(l,c){(l.buttons===void 0?l.which:l.buttons)===1?i(l,l,c):r=!1}function s(l,c){l.touches.length===1?i(l,l.touches[0],c):r=!1}e.add(t,"mousedown",function(l){a(l,!0)}),e.add(t,"touchstart",function(l){s(l,!0)}),e.add(window,"mousemove",a),e.add(t,"touchmove",s),e.add(window,"mouseup",function(l){r=!1}),e.add(t,"touchend",function(l){r=!1}),e.add(t,"touchcancel",function(l){r=!1})}var r7="keydown",Gg="mousedown",t_="focusin";function Ss(e,t){return(t||document).querySelector(e)}function o7(e){e.preventDefault(),e.stopPropagation()}function n_(e,t,n,r,o){e.add(t,r7,function(i){n.indexOf(i.key)>=0&&(o&&o7(i),r(i))})}var i7=function(){function e(t){Xx(this,e),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new Hpe,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(t)}return Zx(e,[{key:"setOptions",value:function(t){var n=this;if(t){var r=this.settings;if(t instanceof HTMLElement)r.parent=t;else{r.parent&&t.parent&&r.parent!==t.parent&&(this._events.remove(r.parent),this._popupInited=!1),function(s,l,c){for(var f in s)c&&c.indexOf(f)>=0||(l[f]=s[f])}(t,r),t.onChange&&(this.onChange=t.onChange),t.onDone&&(this.onDone=t.onDone),t.onOpen&&(this.onOpen=t.onOpen),t.onClose&&(this.onClose=t.onClose);var o=t.color||t.colour;o&&this._setColor(o)}var i=r.parent;if(i&&r.popup&&!this._popupInited){var a=function(s){return n.openHandler(s)};this._events.add(i,"click",a),n_(this._events,i,[" ","Spacebar","Enter"],a),this._popupInited=!0}else t.parent&&!r.popup&&this.show()}}},{key:"openHandler",value:function(t){if(this.show()){t&&t.preventDefault(),this.settings.parent.style.pointerEvents="none";var n=t&&t.type===r7?this._domEdit:this.domElement;setTimeout(function(){return n.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(t){var n=t&&t.type,r=!1;if(t)if(n===Gg||n===t_){var o=(this.__containedEvent||0)+100;t.timeStamp>o&&(r=!0)}else o7(t),r=!0;else r=!0;r&&this.hide()&&(this.settings.parent.style.pointerEvents="",n!==Gg&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(t,n){this.closeHandler(),this.setOptions(t),n&&this.openHandler()}},{key:"setColor",value:function(t,n){this._setColor(t,{silent:n})}},{key:"_setColor",value:function(t,n){if(typeof t=="string"&&(t=t.trim()),t){n=n||{};var r=void 0;try{r=new Upe(t)}catch(i){if(n.failSilently)return;throw i}if(!this.settings.alpha){var o=r.hsla;o[3]=1,r.hsla=o}this.colour=this.color=r,this._setHSLA(null,null,null,null,n)}}},{key:"setColour",value:function(t,n){this.setColor(t,n)}},{key:"show",value:function(){if(!this.settings.parent)return!1;if(this.domElement){var t=this._toggleDOM(!0);return this._setPosition(),t}var n,r,o=this.settings.template||'<div class="picker_wrapper" tabindex="-1"><div class="picker_arrow"></div><div class="picker_hue picker_slider"><div class="picker_selector"></div></div><div class="picker_sl"><div class="picker_selector"></div></div><div class="picker_alpha picker_slider"><div class="picker_selector"></div></div><div class="picker_editor"><input aria-label="Type a color name or hex value"/></div><div class="picker_sample"></div><div class="picker_done"><button>Ok</button></div><div class="picker_cancel"><button>Cancel</button></div></div>',i=(n=o,(r=document.createElement("div")).innerHTML=n,r.firstElementChild);return this.domElement=i,this._domH=Ss(".picker_hue",i),this._domSL=Ss(".picker_sl",i),this._domA=Ss(".picker_alpha",i),this._domEdit=Ss(".picker_editor input",i),this._domSample=Ss(".picker_sample",i),this._domOkay=Ss(".picker_done button",i),this._domCancel=Ss(".picker_cancel button",i),i.classList.add("layout_"+this.settings.layout),this.settings.alpha||i.classList.add("no_alpha"),this.settings.editor||i.classList.add("no_editor"),this.settings.cancelButton||i.classList.add("no_cancel"),this._ifPopup(function(){return i.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var t=this,n=this,r=this.domElement,o=this._events;function i(l,c,f){o.add(l,c,f)}i(r,"click",function(l){return l.preventDefault()}),e_(o,this._domH,function(l,c){return n._setHSLA(l)}),e_(o,this._domSL,function(l,c){return n._setHSLA(null,l,1-c)}),this.settings.alpha&&e_(o,this._domA,function(l,c){return n._setHSLA(null,null,null,1-c)});var a=this._domEdit;i(a,"input",function(l){n._setColor(this.value,{fromEditor:!0,failSilently:!0})}),i(a,"focus",function(l){var c=this;c.selectionStart===c.selectionEnd&&c.select()}),this._ifPopup(function(){var l=function(f){return t.closeHandler(f)};i(window,Gg,l),i(window,t_,l),n_(o,r,["Esc","Escape"],l);var c=function(f){t.__containedEvent=f.timeStamp};i(r,Gg,c),i(r,t_,c),i(t._domCancel,"click",l)});var s=function(l){t._ifPopup(function(){return t.closeHandler(l)}),t.onDone&&t.onDone(t.colour)};i(this._domOkay,"click",s),n_(o,r,["Enter"],s)}},{key:"_setPosition",value:function(){var t=this.settings.parent,n=this.domElement;t!==n.parentNode&&t.appendChild(n),this._ifPopup(function(r){getComputedStyle(t).position==="static"&&(t.style.position="relative");var o=r===!0?"popup_right":"popup_"+r;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(i){i===o?n.classList.add(i):n.classList.remove(i)}),n.classList.add(o)})}},{key:"_setHSLA",value:function(t,n,r,o,i){i=i||{};var a=this.colour,s=a.hsla;[t,n,r,o].forEach(function(l,c){(l||l===0)&&(s[c]=l)}),a.hsla=s,this._updateUI(i),this.onChange&&!i.silent&&this.onChange(a)}},{key:"_updateUI",value:function(t){if(this.domElement){t=t||{};var n=this.colour,r=n.hsla,o="hsl("+360*r[0]+", 100%, 50%)",i=n.hslString,a=n.hslaString,s=this._domH,l=this._domSL,c=this._domA,f=Ss(".picker_selector",s),u=Ss(".picker_selector",l),d=Ss(".picker_selector",c);w(0,f,r[0]),this._domSL.style.backgroundColor=this._domH.style.color=o,w(0,u,r[1]),k(0,u,1-r[2]),l.style.color=i,k(0,d,1-r[3]);var h=i,p=h.replace("hsl","hsla").replace(")",", 0)"),m="linear-gradient("+[h,p]+")";if(this._domA.style.background=m+`, linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em,
143
+ linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,!t.fromEditor){var v=this.settings.editorFormat,g=this.settings.alpha,y=void 0;switch(v){case"rgb":y=n.printRGB(g);break;case"hsl":y=n.printHSL(g);break;default:y=n.printHex(g)}this._domEdit.value=y}this._domSample.style.color=a}function w($,j,E){j.style.left=100*E+"%"}function k($,j,E){j.style.top=100*E+"%"}}},{key:"_ifPopup",value:function(t,n){this.settings.parent&&this.settings.popup?t&&t(this.settings.popup):n&&n()}},{key:"_toggleDOM",value:function(t){var n=this.domElement;if(!n)return!1;var r=t?"":"none",o=n.style.display!==r;return o&&(n.style.display=r),o}}]),e}(),r_=document.createElement("style");r_.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(r_),i7.StyleElement=r_;var Wpe=Object.freeze({__proto__:null,default:i7}),Cs={};/*!
144
144
  * howler.js v2.2.4
145
145
  * howlerjs.com
146
146
  *
@@ -158,27 +158,27 @@ return query;
158
158
  * goldfirestudios.com
159
159
  *
160
160
  * MIT License
161
- */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(n){var r=this;if(!r.ctx||!r.ctx.listener)return r;for(var o=r._howls.length-1;o>=0;o--)r._howls[o].stereo(n);return r},HowlerGlobal.prototype.pos=function(n,r,o){var i=this;if(!i.ctx||!i.ctx.listener)return i;if(r=typeof r!="number"?i._pos[1]:r,o=typeof o!="number"?i._pos[2]:o,typeof n=="number")i._pos=[n,r,o],typeof i.ctx.listener.positionX<"u"?(i.ctx.listener.positionX.setTargetAtTime(i._pos[0],Howler.ctx.currentTime,.1),i.ctx.listener.positionY.setTargetAtTime(i._pos[1],Howler.ctx.currentTime,.1),i.ctx.listener.positionZ.setTargetAtTime(i._pos[2],Howler.ctx.currentTime,.1)):i.ctx.listener.setPosition(i._pos[0],i._pos[1],i._pos[2]);else return i._pos;return i},HowlerGlobal.prototype.orientation=function(n,r,o,i,a,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(r=typeof r!="number"?c[1]:r,o=typeof o!="number"?c[2]:o,i=typeof i!="number"?c[3]:i,a=typeof a!="number"?c[4]:a,s=typeof s!="number"?c[5]:s,typeof n=="number")l._orientation=[n,r,o,i,a,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(n,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(a,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(n,r,o,i,a,s);else return c;return l},Howl.prototype.init=function(n){return function(r){var o=this;return o._orientation=r.orientation||[1,0,0],o._stereo=r.stereo||null,o._pos=r.pos||null,o._pannerAttr={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:360,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:360,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:0,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:"inverse",maxDistance:typeof r.maxDistance<"u"?r.maxDistance:1e4,panningModel:typeof r.panningModel<"u"?r.panningModel:"HRTF",refDistance:typeof r.refDistance<"u"?r.refDistance:1,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:1},o._onstereo=r.onstereo?[{fn:r.onstereo}]:[],o._onpos=r.onpos?[{fn:r.onpos}]:[],o._onorientation=r.onorientation?[{fn:r.onorientation}]:[],n.call(this,r)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,r){var o=this;if(!o._webAudio)return o;if(o._state!=="loaded")return o._queue.push({event:"stereo",action:function(){o.stereo(n,r)}}),o;var i=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof r>"u")if(typeof n=="number")o._stereo=n,o._pos=[n,0,0];else return o._stereo;for(var a=o._getSoundIds(r),s=0;s<a.length;s++){var l=o._soundById(a[s]);if(l)if(typeof n=="number")l._stereo=n,l._pos=[n,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&t(l,i),i==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(n,0,0):l._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),o._emit("stereo",l._id);else return l._stereo}return o},Howl.prototype.pos=function(n,r,o,i){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"pos",action:function(){a.pos(n,r,o,i)}}),a;if(r=typeof r!="number"?0:r,o=typeof o!="number"?-.5:o,typeof i>"u")if(typeof n=="number")a._pos=[n,r,o];else return a._pos;for(var s=a._getSoundIds(i),l=0;l<s.length;l++){var c=a._soundById(s[l]);if(c)if(typeof n=="number")c._pos=[n,r,o],c._node&&((!c._panner||c._panner.pan)&&t(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(r,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(o,Howler.ctx.currentTime)):c._panner.setPosition(n,r,o)),a._emit("pos",c._id);else return c._pos}return a},Howl.prototype.orientation=function(n,r,o,i){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"orientation",action:function(){a.orientation(n,r,o,i)}}),a;if(r=typeof r!="number"?a._orientation[1]:r,o=typeof o!="number"?a._orientation[2]:o,typeof i>"u")if(typeof n=="number")a._orientation=[n,r,o];else return a._orientation;for(var s=a._getSoundIds(i),l=0;l<s.length;l++){var c=a._soundById(s[l]);if(c)if(typeof n=="number")c._orientation=[n,r,o],c._node&&(c._panner||(c._pos||(c._pos=a._pos||[0,0,-.5]),t(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(r,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(o,Howler.ctx.currentTime)):c._panner.setOrientation(n,r,o)),a._emit("orientation",c._id);else return c._orientation}return a},Howl.prototype.pannerAttr=function(){var n=this,r=arguments,o,i,a;if(!n._webAudio)return n;if(r.length===0)return n._pannerAttr;if(r.length===1)if(typeof r[0]=="object")o=r[0],typeof i>"u"&&(o.pannerAttr||(o.pannerAttr={coneInnerAngle:o.coneInnerAngle,coneOuterAngle:o.coneOuterAngle,coneOuterGain:o.coneOuterGain,distanceModel:o.distanceModel,maxDistance:o.maxDistance,refDistance:o.refDistance,rolloffFactor:o.rolloffFactor,panningModel:o.panningModel}),n._pannerAttr={coneInnerAngle:typeof o.pannerAttr.coneInnerAngle<"u"?o.pannerAttr.coneInnerAngle:n._coneInnerAngle,coneOuterAngle:typeof o.pannerAttr.coneOuterAngle<"u"?o.pannerAttr.coneOuterAngle:n._coneOuterAngle,coneOuterGain:typeof o.pannerAttr.coneOuterGain<"u"?o.pannerAttr.coneOuterGain:n._coneOuterGain,distanceModel:typeof o.pannerAttr.distanceModel<"u"?o.pannerAttr.distanceModel:n._distanceModel,maxDistance:typeof o.pannerAttr.maxDistance<"u"?o.pannerAttr.maxDistance:n._maxDistance,refDistance:typeof o.pannerAttr.refDistance<"u"?o.pannerAttr.refDistance:n._refDistance,rolloffFactor:typeof o.pannerAttr.rolloffFactor<"u"?o.pannerAttr.rolloffFactor:n._rolloffFactor,panningModel:typeof o.pannerAttr.panningModel<"u"?o.pannerAttr.panningModel:n._panningModel});else return a=n._soundById(parseInt(r[0],10)),a?a._pannerAttr:n._pannerAttr;else r.length===2&&(o=r[0],i=parseInt(r[1],10));for(var s=n._getSoundIds(i),l=0;l<s.length;l++)if(a=n._soundById(s[l]),a){var c=a._pannerAttr;c={coneInnerAngle:typeof o.coneInnerAngle<"u"?o.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof o.coneOuterAngle<"u"?o.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof o.coneOuterGain<"u"?o.coneOuterGain:c.coneOuterGain,distanceModel:typeof o.distanceModel<"u"?o.distanceModel:c.distanceModel,maxDistance:typeof o.maxDistance<"u"?o.maxDistance:c.maxDistance,refDistance:typeof o.refDistance<"u"?o.refDistance:c.refDistance,rolloffFactor:typeof o.rolloffFactor<"u"?o.rolloffFactor:c.rolloffFactor,panningModel:typeof o.panningModel<"u"?o.panningModel:c.panningModel};var f=a._panner;f||(a._pos||(a._pos=n._pos||[0,0,-.5]),t(a,"spatial"),f=a._panner),f.coneInnerAngle=c.coneInnerAngle,f.coneOuterAngle=c.coneOuterAngle,f.coneOuterGain=c.coneOuterGain,f.distanceModel=c.distanceModel,f.maxDistance=c.maxDistance,f.refDistance=c.refDistance,f.rolloffFactor=c.rolloffFactor,f.panningModel=c.panningModel}return n},Sound.prototype.init=function(n){return function(){var r=this,o=r._parent;r._orientation=o._orientation,r._stereo=o._stereo,r._pos=o._pos,r._pannerAttr=o._pannerAttr,n.call(this),r._stereo?o.stereo(r._stereo):r._pos&&o.pos(r._pos[0],r._pos[1],r._pos[2],r._id)}}(Sound.prototype.init),Sound.prototype.reset=function(n){return function(){var r=this,o=r._parent;return r._orientation=o._orientation,r._stereo=o._stereo,r._pos=o._pos,r._pannerAttr=o._pannerAttr,r._stereo?o.stereo(r._stereo):r._pos?o.pos(r._pos[0],r._pos[1],r._pos[2],r._id):r._panner&&(r._panner.disconnect(0),r._panner=void 0,o._refreshBuffer(r)),n.call(this)}}(Sound.prototype.reset);var t=function(n,r){r=r||"spatial",r==="spatial"?(n._panner=Howler.ctx.createPanner(),n._panner.coneInnerAngle=n._pannerAttr.coneInnerAngle,n._panner.coneOuterAngle=n._pannerAttr.coneOuterAngle,n._panner.coneOuterGain=n._pannerAttr.coneOuterGain,n._panner.distanceModel=n._pannerAttr.distanceModel,n._panner.maxDistance=n._pannerAttr.maxDistance,n._panner.refDistance=n._pannerAttr.refDistance,n._panner.rolloffFactor=n._pannerAttr.rolloffFactor,n._panner.panningModel=n._pannerAttr.panningModel,typeof n._panner.positionX<"u"?(n._panner.positionX.setValueAtTime(n._pos[0],Howler.ctx.currentTime),n._panner.positionY.setValueAtTime(n._pos[1],Howler.ctx.currentTime),n._panner.positionZ.setValueAtTime(n._pos[2],Howler.ctx.currentTime)):n._panner.setPosition(n._pos[0],n._pos[1],n._pos[2]),typeof n._panner.orientationX<"u"?(n._panner.orientationX.setValueAtTime(n._orientation[0],Howler.ctx.currentTime),n._panner.orientationY.setValueAtTime(n._orientation[1],Howler.ctx.currentTime),n._panner.orientationZ.setValueAtTime(n._orientation[2],Howler.ctx.currentTime)):n._panner.setOrientation(n._orientation[0],n._orientation[1],n._orientation[2])):(n._panner=Howler.ctx.createStereoPanner(),n._panner.pan.setValueAtTime(n._stereo,Howler.ctx.currentTime)),n._panner.connect(n._node),n._paused||n._parent.pause(n._id,!0).play(n._id,!0)}})()})(Cs);function _i(e){return new Promise((t,n)=>{setTimeout(t,e)})}const o_=e=>e.reduce((t,n)=>({...t,[n]:n}),{}),i_=e=>e!==null&&typeof e=="object"&&typeof e.then=="function"&&typeof e.catch=="function";var a9=!1;function Jg(e,t,n){return Array.isArray(e)?(e.length=Math.max(e.length,t),e.splice(t,1,n),n):(e[t]=n,n)}function a_(e,t){if(Array.isArray(e)){e.splice(t,1);return}delete e[t]}function Kpe(){return s9().__VUE_DEVTOOLS_GLOBAL_HOOK__}function s9(){return typeof navigator<"u"&&typeof window<"u"?window:typeof global<"u"?global:{}}const Gpe=typeof Proxy=="function",Jpe="devtools-plugin:setup",Qpe="plugin:settings:set";let Ff,s_;function Ype(){var e;return Ff!==void 0||(typeof window<"u"&&window.performance?(Ff=!0,s_=window.performance):typeof global<"u"&&(!((e=global.perf_hooks)===null||e===void 0)&&e.performance)?(Ff=!0,s_=global.perf_hooks.performance):Ff=!1),Ff}function Xpe(){return Ype()?s_.now():Date.now()}class Zpe{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const r={};if(t.settings)for(const a in t.settings){const s=t.settings[a];r[a]=s.defaultValue}const o=`__vue-devtools-plugin-settings__${t.id}`;let i=Object.assign({},r);try{const a=localStorage.getItem(o),s=JSON.parse(a);Object.assign(i,s)}catch{}this.fallbacks={getSettings(){return i},setSettings(a){try{localStorage.setItem(o,JSON.stringify(a))}catch{}i=a},now(){return Xpe()}},n&&n.on(Qpe,(a,s)=>{a===this.plugin.id&&this.fallbacks.setSettings(s)}),this.proxiedOn=new Proxy({},{get:(a,s)=>this.target?this.target.on[s]:(...l)=>{this.onQueue.push({method:s,args:l})}}),this.proxiedTarget=new Proxy({},{get:(a,s)=>this.target?this.target[s]:s==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(s)?(...l)=>(this.targetQueue.push({method:s,args:l,resolve:()=>{}}),this.fallbacks[s](...l)):(...l)=>new Promise(c=>{this.targetQueue.push({method:s,args:l,resolve:c})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function l9(e,t){const n=e,r=s9(),o=Kpe(),i=Gpe&&n.enableEarlyProxy;if(o&&(r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!i))o.emit(Jpe,e,t);else{const a=i?new Zpe(n,o):null;(r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:a}),a&&t(a.proxiedTarget)}}/*!
161
+ */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(n){var r=this;if(!r.ctx||!r.ctx.listener)return r;for(var o=r._howls.length-1;o>=0;o--)r._howls[o].stereo(n);return r},HowlerGlobal.prototype.pos=function(n,r,o){var i=this;if(!i.ctx||!i.ctx.listener)return i;if(r=typeof r!="number"?i._pos[1]:r,o=typeof o!="number"?i._pos[2]:o,typeof n=="number")i._pos=[n,r,o],typeof i.ctx.listener.positionX<"u"?(i.ctx.listener.positionX.setTargetAtTime(i._pos[0],Howler.ctx.currentTime,.1),i.ctx.listener.positionY.setTargetAtTime(i._pos[1],Howler.ctx.currentTime,.1),i.ctx.listener.positionZ.setTargetAtTime(i._pos[2],Howler.ctx.currentTime,.1)):i.ctx.listener.setPosition(i._pos[0],i._pos[1],i._pos[2]);else return i._pos;return i},HowlerGlobal.prototype.orientation=function(n,r,o,i,a,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(r=typeof r!="number"?c[1]:r,o=typeof o!="number"?c[2]:o,i=typeof i!="number"?c[3]:i,a=typeof a!="number"?c[4]:a,s=typeof s!="number"?c[5]:s,typeof n=="number")l._orientation=[n,r,o,i,a,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(n,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(a,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(n,r,o,i,a,s);else return c;return l},Howl.prototype.init=function(n){return function(r){var o=this;return o._orientation=r.orientation||[1,0,0],o._stereo=r.stereo||null,o._pos=r.pos||null,o._pannerAttr={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:360,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:360,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:0,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:"inverse",maxDistance:typeof r.maxDistance<"u"?r.maxDistance:1e4,panningModel:typeof r.panningModel<"u"?r.panningModel:"HRTF",refDistance:typeof r.refDistance<"u"?r.refDistance:1,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:1},o._onstereo=r.onstereo?[{fn:r.onstereo}]:[],o._onpos=r.onpos?[{fn:r.onpos}]:[],o._onorientation=r.onorientation?[{fn:r.onorientation}]:[],n.call(this,r)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,r){var o=this;if(!o._webAudio)return o;if(o._state!=="loaded")return o._queue.push({event:"stereo",action:function(){o.stereo(n,r)}}),o;var i=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof r>"u")if(typeof n=="number")o._stereo=n,o._pos=[n,0,0];else return o._stereo;for(var a=o._getSoundIds(r),s=0;s<a.length;s++){var l=o._soundById(a[s]);if(l)if(typeof n=="number")l._stereo=n,l._pos=[n,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&t(l,i),i==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(n,0,0):l._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),o._emit("stereo",l._id);else return l._stereo}return o},Howl.prototype.pos=function(n,r,o,i){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"pos",action:function(){a.pos(n,r,o,i)}}),a;if(r=typeof r!="number"?0:r,o=typeof o!="number"?-.5:o,typeof i>"u")if(typeof n=="number")a._pos=[n,r,o];else return a._pos;for(var s=a._getSoundIds(i),l=0;l<s.length;l++){var c=a._soundById(s[l]);if(c)if(typeof n=="number")c._pos=[n,r,o],c._node&&((!c._panner||c._panner.pan)&&t(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(r,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(o,Howler.ctx.currentTime)):c._panner.setPosition(n,r,o)),a._emit("pos",c._id);else return c._pos}return a},Howl.prototype.orientation=function(n,r,o,i){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"orientation",action:function(){a.orientation(n,r,o,i)}}),a;if(r=typeof r!="number"?a._orientation[1]:r,o=typeof o!="number"?a._orientation[2]:o,typeof i>"u")if(typeof n=="number")a._orientation=[n,r,o];else return a._orientation;for(var s=a._getSoundIds(i),l=0;l<s.length;l++){var c=a._soundById(s[l]);if(c)if(typeof n=="number")c._orientation=[n,r,o],c._node&&(c._panner||(c._pos||(c._pos=a._pos||[0,0,-.5]),t(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(r,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(o,Howler.ctx.currentTime)):c._panner.setOrientation(n,r,o)),a._emit("orientation",c._id);else return c._orientation}return a},Howl.prototype.pannerAttr=function(){var n=this,r=arguments,o,i,a;if(!n._webAudio)return n;if(r.length===0)return n._pannerAttr;if(r.length===1)if(typeof r[0]=="object")o=r[0],typeof i>"u"&&(o.pannerAttr||(o.pannerAttr={coneInnerAngle:o.coneInnerAngle,coneOuterAngle:o.coneOuterAngle,coneOuterGain:o.coneOuterGain,distanceModel:o.distanceModel,maxDistance:o.maxDistance,refDistance:o.refDistance,rolloffFactor:o.rolloffFactor,panningModel:o.panningModel}),n._pannerAttr={coneInnerAngle:typeof o.pannerAttr.coneInnerAngle<"u"?o.pannerAttr.coneInnerAngle:n._coneInnerAngle,coneOuterAngle:typeof o.pannerAttr.coneOuterAngle<"u"?o.pannerAttr.coneOuterAngle:n._coneOuterAngle,coneOuterGain:typeof o.pannerAttr.coneOuterGain<"u"?o.pannerAttr.coneOuterGain:n._coneOuterGain,distanceModel:typeof o.pannerAttr.distanceModel<"u"?o.pannerAttr.distanceModel:n._distanceModel,maxDistance:typeof o.pannerAttr.maxDistance<"u"?o.pannerAttr.maxDistance:n._maxDistance,refDistance:typeof o.pannerAttr.refDistance<"u"?o.pannerAttr.refDistance:n._refDistance,rolloffFactor:typeof o.pannerAttr.rolloffFactor<"u"?o.pannerAttr.rolloffFactor:n._rolloffFactor,panningModel:typeof o.pannerAttr.panningModel<"u"?o.pannerAttr.panningModel:n._panningModel});else return a=n._soundById(parseInt(r[0],10)),a?a._pannerAttr:n._pannerAttr;else r.length===2&&(o=r[0],i=parseInt(r[1],10));for(var s=n._getSoundIds(i),l=0;l<s.length;l++)if(a=n._soundById(s[l]),a){var c=a._pannerAttr;c={coneInnerAngle:typeof o.coneInnerAngle<"u"?o.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof o.coneOuterAngle<"u"?o.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof o.coneOuterGain<"u"?o.coneOuterGain:c.coneOuterGain,distanceModel:typeof o.distanceModel<"u"?o.distanceModel:c.distanceModel,maxDistance:typeof o.maxDistance<"u"?o.maxDistance:c.maxDistance,refDistance:typeof o.refDistance<"u"?o.refDistance:c.refDistance,rolloffFactor:typeof o.rolloffFactor<"u"?o.rolloffFactor:c.rolloffFactor,panningModel:typeof o.panningModel<"u"?o.panningModel:c.panningModel};var f=a._panner;f||(a._pos||(a._pos=n._pos||[0,0,-.5]),t(a,"spatial"),f=a._panner),f.coneInnerAngle=c.coneInnerAngle,f.coneOuterAngle=c.coneOuterAngle,f.coneOuterGain=c.coneOuterGain,f.distanceModel=c.distanceModel,f.maxDistance=c.maxDistance,f.refDistance=c.refDistance,f.rolloffFactor=c.rolloffFactor,f.panningModel=c.panningModel}return n},Sound.prototype.init=function(n){return function(){var r=this,o=r._parent;r._orientation=o._orientation,r._stereo=o._stereo,r._pos=o._pos,r._pannerAttr=o._pannerAttr,n.call(this),r._stereo?o.stereo(r._stereo):r._pos&&o.pos(r._pos[0],r._pos[1],r._pos[2],r._id)}}(Sound.prototype.init),Sound.prototype.reset=function(n){return function(){var r=this,o=r._parent;return r._orientation=o._orientation,r._stereo=o._stereo,r._pos=o._pos,r._pannerAttr=o._pannerAttr,r._stereo?o.stereo(r._stereo):r._pos?o.pos(r._pos[0],r._pos[1],r._pos[2],r._id):r._panner&&(r._panner.disconnect(0),r._panner=void 0,o._refreshBuffer(r)),n.call(this)}}(Sound.prototype.reset);var t=function(n,r){r=r||"spatial",r==="spatial"?(n._panner=Howler.ctx.createPanner(),n._panner.coneInnerAngle=n._pannerAttr.coneInnerAngle,n._panner.coneOuterAngle=n._pannerAttr.coneOuterAngle,n._panner.coneOuterGain=n._pannerAttr.coneOuterGain,n._panner.distanceModel=n._pannerAttr.distanceModel,n._panner.maxDistance=n._pannerAttr.maxDistance,n._panner.refDistance=n._pannerAttr.refDistance,n._panner.rolloffFactor=n._pannerAttr.rolloffFactor,n._panner.panningModel=n._pannerAttr.panningModel,typeof n._panner.positionX<"u"?(n._panner.positionX.setValueAtTime(n._pos[0],Howler.ctx.currentTime),n._panner.positionY.setValueAtTime(n._pos[1],Howler.ctx.currentTime),n._panner.positionZ.setValueAtTime(n._pos[2],Howler.ctx.currentTime)):n._panner.setPosition(n._pos[0],n._pos[1],n._pos[2]),typeof n._panner.orientationX<"u"?(n._panner.orientationX.setValueAtTime(n._orientation[0],Howler.ctx.currentTime),n._panner.orientationY.setValueAtTime(n._orientation[1],Howler.ctx.currentTime),n._panner.orientationZ.setValueAtTime(n._orientation[2],Howler.ctx.currentTime)):n._panner.setOrientation(n._orientation[0],n._orientation[1],n._orientation[2])):(n._panner=Howler.ctx.createStereoPanner(),n._panner.pan.setValueAtTime(n._stereo,Howler.ctx.currentTime)),n._panner.connect(n._node),n._paused||n._parent.pause(n._id,!0).play(n._id,!0)}})()})(Cs);function _i(e){return new Promise((t,n)=>{setTimeout(t,e)})}const o_=e=>e.reduce((t,n)=>({...t,[n]:n}),{}),i_=e=>e!==null&&typeof e=="object"&&typeof e.then=="function"&&typeof e.catch=="function";var a7=!1;function Jg(e,t,n){return Array.isArray(e)?(e.length=Math.max(e.length,t),e.splice(t,1,n),n):(e[t]=n,n)}function a_(e,t){if(Array.isArray(e)){e.splice(t,1);return}delete e[t]}function Kpe(){return s7().__VUE_DEVTOOLS_GLOBAL_HOOK__}function s7(){return typeof navigator<"u"&&typeof window<"u"?window:typeof global<"u"?global:{}}const Gpe=typeof Proxy=="function",Jpe="devtools-plugin:setup",Qpe="plugin:settings:set";let Ff,s_;function Ype(){var e;return Ff!==void 0||(typeof window<"u"&&window.performance?(Ff=!0,s_=window.performance):typeof global<"u"&&(!((e=global.perf_hooks)===null||e===void 0)&&e.performance)?(Ff=!0,s_=global.perf_hooks.performance):Ff=!1),Ff}function Xpe(){return Ype()?s_.now():Date.now()}class Zpe{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const r={};if(t.settings)for(const a in t.settings){const s=t.settings[a];r[a]=s.defaultValue}const o=`__vue-devtools-plugin-settings__${t.id}`;let i=Object.assign({},r);try{const a=localStorage.getItem(o),s=JSON.parse(a);Object.assign(i,s)}catch{}this.fallbacks={getSettings(){return i},setSettings(a){try{localStorage.setItem(o,JSON.stringify(a))}catch{}i=a},now(){return Xpe()}},n&&n.on(Qpe,(a,s)=>{a===this.plugin.id&&this.fallbacks.setSettings(s)}),this.proxiedOn=new Proxy({},{get:(a,s)=>this.target?this.target.on[s]:(...l)=>{this.onQueue.push({method:s,args:l})}}),this.proxiedTarget=new Proxy({},{get:(a,s)=>this.target?this.target[s]:s==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(s)?(...l)=>(this.targetQueue.push({method:s,args:l,resolve:()=>{}}),this.fallbacks[s](...l)):(...l)=>new Promise(c=>{this.targetQueue.push({method:s,args:l,resolve:c})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function l7(e,t){const n=e,r=s7(),o=Kpe(),i=Gpe&&n.enableEarlyProxy;if(o&&(r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!i))o.emit(Jpe,e,t);else{const a=i?new Zpe(n,o):null;(r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:a}),a&&t(a.proxiedTarget)}}/*!
162
162
  * pinia v2.1.7
163
163
  * (c) 2023 Eduardo San Martin Morote
164
164
  * @license MIT
165
- */let Qh;const Yh=e=>Qh=e,c9=process.env.NODE_ENV!=="production"?Symbol("pinia"):Symbol();function au(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var $s;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})($s||($s={}));const Qg=typeof window<"u",Xh=(process.env.NODE_ENV!=="production"||!1)&&process.env.NODE_ENV!=="test"&&Qg,u9=(()=>typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:typeof globalThis=="object"?globalThis:{HTMLElement:null})();function eme(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}function l_(e,t,n){const r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){h9(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function f9(e){const t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Yg(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(n)}}const Xg=typeof navigator=="object"?navigator:{userAgent:""},d9=(()=>/Macintosh/.test(Xg.userAgent)&&/AppleWebKit/.test(Xg.userAgent)&&!/Safari/.test(Xg.userAgent))(),h9=Qg?typeof HTMLAnchorElement<"u"&&"download"in HTMLAnchorElement.prototype&&!d9?tme:"msSaveOrOpenBlob"in Xg?nme:rme:()=>{};function tme(e,t="download",n){const r=document.createElement("a");r.download=t,r.rel="noopener",typeof e=="string"?(r.href=e,r.origin!==location.origin?f9(r.href)?l_(e,t,n):(r.target="_blank",Yg(r)):Yg(r)):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Yg(r)},0))}function nme(e,t="download",n){if(typeof e=="string")if(f9(e))l_(e,t,n);else{const r=document.createElement("a");r.href=e,r.target="_blank",setTimeout(function(){Yg(r)})}else navigator.msSaveOrOpenBlob(eme(e,n),t)}function rme(e,t,n,r){if(r=r||open("","_blank"),r&&(r.document.title=r.document.body.innerText="downloading..."),typeof e=="string")return l_(e,t,n);const o=e.type==="application/octet-stream",i=/constructor/i.test(String(u9.HTMLElement))||"safari"in u9,a=/CriOS\/[\d]+/.test(navigator.userAgent);if((a||o&&i||d9)&&typeof FileReader<"u"){const s=new FileReader;s.onloadend=function(){let l=s.result;if(typeof l!="string")throw r=null,new Error("Wrong reader.result type");l=a?l:l.replace(/^data:[^;]*;/,"data:attachment/file;"),r?r.location.href=l:location.assign(l),r=null},s.readAsDataURL(e)}else{const s=URL.createObjectURL(e);r?r.location.assign(s):location.href=s,r=null,setTimeout(function(){URL.revokeObjectURL(s)},4e4)}}function ko(e,t){const n="🍍 "+e;typeof __VUE_DEVTOOLS_TOAST__=="function"?__VUE_DEVTOOLS_TOAST__(n,t):t==="error"?console.error(n):t==="warn"?console.warn(n):console.log(n)}function c_(e){return"_a"in e&&"install"in e}function p9(){if(!("clipboard"in navigator))return ko("Your browser doesn't support the Clipboard API","error"),!0}function m9(e){return e instanceof Error&&e.message.toLowerCase().includes("document is not focused")?(ko('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.',"warn"),!0):!1}async function ome(e){if(!p9())try{await navigator.clipboard.writeText(JSON.stringify(e.state.value)),ko("Global state copied to clipboard.")}catch(t){if(m9(t))return;ko("Failed to serialize the state. Check the console for more details.","error"),console.error(t)}}async function ime(e){if(!p9())try{v9(e,JSON.parse(await navigator.clipboard.readText())),ko("Global state pasted from clipboard.")}catch(t){if(m9(t))return;ko("Failed to deserialize the state from clipboard. Check the console for more details.","error"),console.error(t)}}async function ame(e){try{h9(new Blob([JSON.stringify(e.state.value)],{type:"text/plain;charset=utf-8"}),"pinia-state.json")}catch(t){ko("Failed to export the state as JSON. Check the console for more details.","error"),console.error(t)}}let al;function sme(){al||(al=document.createElement("input"),al.type="file",al.accept=".json");function e(){return new Promise((t,n)=>{al.onchange=async()=>{const r=al.files;if(!r)return t(null);const o=r.item(0);return t(o?{text:await o.text(),file:o}:null)},al.oncancel=()=>t(null),al.onerror=n,al.click()})}return e}async function lme(e){try{const n=await sme()();if(!n)return;const{text:r,file:o}=n;v9(e,JSON.parse(r)),ko(`Global state imported from "${o.name}".`)}catch(t){ko("Failed to import the state from JSON. Check the console for more details.","error"),console.error(t)}}function v9(e,t){for(const n in t){const r=e.state.value[n];r?Object.assign(r,t[n]):e.state.value[n]=t[n]}}function za(e){return{_custom:{display:e}}}const g9="🍍 Pinia (root)",u_="_root";function cme(e){return c_(e)?{id:u_,label:g9}:{id:e.$id,label:e.$id}}function ume(e){if(c_(e)){const n=Array.from(e._s.keys()),r=e._s;return{state:n.map(i=>({editable:!0,key:i,value:e.state.value[i]})),getters:n.filter(i=>r.get(i)._getters).map(i=>{const a=r.get(i);return{editable:!1,key:i,value:a._getters.reduce((s,l)=>(s[l]=a[l],s),{})}})}}const t={state:Object.keys(e.$state).map(n=>({editable:!0,key:n,value:e.$state[n]}))};return e._getters&&e._getters.length&&(t.getters=e._getters.map(n=>({editable:!1,key:n,value:e[n]}))),e._customProperties.size&&(t.customProperties=Array.from(e._customProperties).map(n=>({editable:!0,key:n,value:e[n]}))),t}function fme(e){return e?Array.isArray(e)?e.reduce((t,n)=>(t.keys.push(n.key),t.operations.push(n.type),t.oldValue[n.key]=n.oldValue,t.newValue[n.key]=n.newValue,t),{oldValue:{},keys:[],operations:[],newValue:{}}):{operation:za(e.type),key:za(e.key),oldValue:e.oldValue,newValue:e.newValue}:{}}function dme(e){switch(e){case $s.direct:return"mutation";case $s.patchFunction:return"$patch";case $s.patchObject:return"$patch";default:return"unknown"}}let Vf=!0;const Zg=[],su="pinia:mutations",Wo="pinia",{assign:hme}=Object,e0=e=>"🍍 "+e;function pme(e,t){l9({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:Zg,app:e},n=>{typeof n.now!="function"&&ko("You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),n.addTimelineLayer({id:su,label:"Pinia 🍍",color:15064968}),n.addInspector({id:Wo,label:"Pinia 🍍",icon:"storage",treeFilterPlaceholder:"Search stores",actions:[{icon:"content_copy",action:()=>{ome(t)},tooltip:"Serialize and copy the state"},{icon:"content_paste",action:async()=>{await ime(t),n.sendInspectorTree(Wo),n.sendInspectorState(Wo)},tooltip:"Replace the state with the content of your clipboard"},{icon:"save",action:()=>{ame(t)},tooltip:"Save the state as a JSON file"},{icon:"folder_open",action:async()=>{await lme(t),n.sendInspectorTree(Wo),n.sendInspectorState(Wo)},tooltip:"Import the state from a JSON file"}],nodeActions:[{icon:"restore",tooltip:'Reset the state (with "$reset")',action:r=>{const o=t._s.get(r);o?typeof o.$reset!="function"?ko(`Cannot reset "${r}" store because it doesn't have a "$reset" method implemented.`,"warn"):(o.$reset(),ko(`Store "${r}" reset.`)):ko(`Cannot reset "${r}" store because it wasn't found.`,"warn")}}]}),n.on.inspectComponent((r,o)=>{const i=r.componentInstance&&r.componentInstance.proxy;if(i&&i._pStores){const a=r.componentInstance.proxy._pStores;Object.values(a).forEach(s=>{r.instanceData.state.push({type:e0(s.$id),key:"state",editable:!0,value:s._isOptionsAPI?{_custom:{value:b.toRaw(s.$state),actions:[{icon:"restore",tooltip:"Reset the state of this store",action:()=>s.$reset()}]}}:Object.keys(s.$state).reduce((l,c)=>(l[c]=s.$state[c],l),{})}),s._getters&&s._getters.length&&r.instanceData.state.push({type:e0(s.$id),key:"getters",editable:!1,value:s._getters.reduce((l,c)=>{try{l[c]=s[c]}catch(f){l[c]=f}return l},{})})})}}),n.on.getInspectorTree(r=>{if(r.app===e&&r.inspectorId===Wo){let o=[t];o=o.concat(Array.from(t._s.values())),r.rootNodes=(r.filter?o.filter(i=>"$id"in i?i.$id.toLowerCase().includes(r.filter.toLowerCase()):g9.toLowerCase().includes(r.filter.toLowerCase())):o).map(cme)}}),n.on.getInspectorState(r=>{if(r.app===e&&r.inspectorId===Wo){const o=r.nodeId===u_?t:t._s.get(r.nodeId);if(!o)return;o&&(r.state=ume(o))}}),n.on.editInspectorState((r,o)=>{if(r.app===e&&r.inspectorId===Wo){const i=r.nodeId===u_?t:t._s.get(r.nodeId);if(!i)return ko(`store "${r.nodeId}" not found`,"error");const{path:a}=r;c_(i)?a.unshift("state"):(a.length!==1||!i._customProperties.has(a[0])||a[0]in i.$state)&&a.unshift("$state"),Vf=!1,r.set(i,a,r.state.value),Vf=!0}}),n.on.editComponentState(r=>{if(r.type.startsWith("🍍")){const o=r.type.replace(/^🍍\s*/,""),i=t._s.get(o);if(!i)return ko(`store "${o}" not found`,"error");const{path:a}=r;if(a[0]!=="state")return ko(`Invalid path for store "${o}":
165
+ */let Qh;const Yh=e=>Qh=e,c7=process.env.NODE_ENV!=="production"?Symbol("pinia"):Symbol();function au(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var $s;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})($s||($s={}));const Qg=typeof window<"u",Xh=(process.env.NODE_ENV!=="production"||!1)&&process.env.NODE_ENV!=="test"&&Qg,u7=(()=>typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:typeof globalThis=="object"?globalThis:{HTMLElement:null})();function eme(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}function l_(e,t,n){const r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){h7(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function f7(e){const t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Yg(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(n)}}const Xg=typeof navigator=="object"?navigator:{userAgent:""},d7=(()=>/Macintosh/.test(Xg.userAgent)&&/AppleWebKit/.test(Xg.userAgent)&&!/Safari/.test(Xg.userAgent))(),h7=Qg?typeof HTMLAnchorElement<"u"&&"download"in HTMLAnchorElement.prototype&&!d7?tme:"msSaveOrOpenBlob"in Xg?nme:rme:()=>{};function tme(e,t="download",n){const r=document.createElement("a");r.download=t,r.rel="noopener",typeof e=="string"?(r.href=e,r.origin!==location.origin?f7(r.href)?l_(e,t,n):(r.target="_blank",Yg(r)):Yg(r)):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Yg(r)},0))}function nme(e,t="download",n){if(typeof e=="string")if(f7(e))l_(e,t,n);else{const r=document.createElement("a");r.href=e,r.target="_blank",setTimeout(function(){Yg(r)})}else navigator.msSaveOrOpenBlob(eme(e,n),t)}function rme(e,t,n,r){if(r=r||open("","_blank"),r&&(r.document.title=r.document.body.innerText="downloading..."),typeof e=="string")return l_(e,t,n);const o=e.type==="application/octet-stream",i=/constructor/i.test(String(u7.HTMLElement))||"safari"in u7,a=/CriOS\/[\d]+/.test(navigator.userAgent);if((a||o&&i||d7)&&typeof FileReader<"u"){const s=new FileReader;s.onloadend=function(){let l=s.result;if(typeof l!="string")throw r=null,new Error("Wrong reader.result type");l=a?l:l.replace(/^data:[^;]*;/,"data:attachment/file;"),r?r.location.href=l:location.assign(l),r=null},s.readAsDataURL(e)}else{const s=URL.createObjectURL(e);r?r.location.assign(s):location.href=s,r=null,setTimeout(function(){URL.revokeObjectURL(s)},4e4)}}function ko(e,t){const n="🍍 "+e;typeof __VUE_DEVTOOLS_TOAST__=="function"?__VUE_DEVTOOLS_TOAST__(n,t):t==="error"?console.error(n):t==="warn"?console.warn(n):console.log(n)}function c_(e){return"_a"in e&&"install"in e}function p7(){if(!("clipboard"in navigator))return ko("Your browser doesn't support the Clipboard API","error"),!0}function m7(e){return e instanceof Error&&e.message.toLowerCase().includes("document is not focused")?(ko('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.',"warn"),!0):!1}async function ome(e){if(!p7())try{await navigator.clipboard.writeText(JSON.stringify(e.state.value)),ko("Global state copied to clipboard.")}catch(t){if(m7(t))return;ko("Failed to serialize the state. Check the console for more details.","error"),console.error(t)}}async function ime(e){if(!p7())try{v7(e,JSON.parse(await navigator.clipboard.readText())),ko("Global state pasted from clipboard.")}catch(t){if(m7(t))return;ko("Failed to deserialize the state from clipboard. Check the console for more details.","error"),console.error(t)}}async function ame(e){try{h7(new Blob([JSON.stringify(e.state.value)],{type:"text/plain;charset=utf-8"}),"pinia-state.json")}catch(t){ko("Failed to export the state as JSON. Check the console for more details.","error"),console.error(t)}}let al;function sme(){al||(al=document.createElement("input"),al.type="file",al.accept=".json");function e(){return new Promise((t,n)=>{al.onchange=async()=>{const r=al.files;if(!r)return t(null);const o=r.item(0);return t(o?{text:await o.text(),file:o}:null)},al.oncancel=()=>t(null),al.onerror=n,al.click()})}return e}async function lme(e){try{const n=await sme()();if(!n)return;const{text:r,file:o}=n;v7(e,JSON.parse(r)),ko(`Global state imported from "${o.name}".`)}catch(t){ko("Failed to import the state from JSON. Check the console for more details.","error"),console.error(t)}}function v7(e,t){for(const n in t){const r=e.state.value[n];r?Object.assign(r,t[n]):e.state.value[n]=t[n]}}function za(e){return{_custom:{display:e}}}const g7="🍍 Pinia (root)",u_="_root";function cme(e){return c_(e)?{id:u_,label:g7}:{id:e.$id,label:e.$id}}function ume(e){if(c_(e)){const n=Array.from(e._s.keys()),r=e._s;return{state:n.map(i=>({editable:!0,key:i,value:e.state.value[i]})),getters:n.filter(i=>r.get(i)._getters).map(i=>{const a=r.get(i);return{editable:!1,key:i,value:a._getters.reduce((s,l)=>(s[l]=a[l],s),{})}})}}const t={state:Object.keys(e.$state).map(n=>({editable:!0,key:n,value:e.$state[n]}))};return e._getters&&e._getters.length&&(t.getters=e._getters.map(n=>({editable:!1,key:n,value:e[n]}))),e._customProperties.size&&(t.customProperties=Array.from(e._customProperties).map(n=>({editable:!0,key:n,value:e[n]}))),t}function fme(e){return e?Array.isArray(e)?e.reduce((t,n)=>(t.keys.push(n.key),t.operations.push(n.type),t.oldValue[n.key]=n.oldValue,t.newValue[n.key]=n.newValue,t),{oldValue:{},keys:[],operations:[],newValue:{}}):{operation:za(e.type),key:za(e.key),oldValue:e.oldValue,newValue:e.newValue}:{}}function dme(e){switch(e){case $s.direct:return"mutation";case $s.patchFunction:return"$patch";case $s.patchObject:return"$patch";default:return"unknown"}}let Vf=!0;const Zg=[],su="pinia:mutations",Wo="pinia",{assign:hme}=Object,e0=e=>"🍍 "+e;function pme(e,t){l7({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:Zg,app:e},n=>{typeof n.now!="function"&&ko("You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),n.addTimelineLayer({id:su,label:"Pinia 🍍",color:15064968}),n.addInspector({id:Wo,label:"Pinia 🍍",icon:"storage",treeFilterPlaceholder:"Search stores",actions:[{icon:"content_copy",action:()=>{ome(t)},tooltip:"Serialize and copy the state"},{icon:"content_paste",action:async()=>{await ime(t),n.sendInspectorTree(Wo),n.sendInspectorState(Wo)},tooltip:"Replace the state with the content of your clipboard"},{icon:"save",action:()=>{ame(t)},tooltip:"Save the state as a JSON file"},{icon:"folder_open",action:async()=>{await lme(t),n.sendInspectorTree(Wo),n.sendInspectorState(Wo)},tooltip:"Import the state from a JSON file"}],nodeActions:[{icon:"restore",tooltip:'Reset the state (with "$reset")',action:r=>{const o=t._s.get(r);o?typeof o.$reset!="function"?ko(`Cannot reset "${r}" store because it doesn't have a "$reset" method implemented.`,"warn"):(o.$reset(),ko(`Store "${r}" reset.`)):ko(`Cannot reset "${r}" store because it wasn't found.`,"warn")}}]}),n.on.inspectComponent((r,o)=>{const i=r.componentInstance&&r.componentInstance.proxy;if(i&&i._pStores){const a=r.componentInstance.proxy._pStores;Object.values(a).forEach(s=>{r.instanceData.state.push({type:e0(s.$id),key:"state",editable:!0,value:s._isOptionsAPI?{_custom:{value:b.toRaw(s.$state),actions:[{icon:"restore",tooltip:"Reset the state of this store",action:()=>s.$reset()}]}}:Object.keys(s.$state).reduce((l,c)=>(l[c]=s.$state[c],l),{})}),s._getters&&s._getters.length&&r.instanceData.state.push({type:e0(s.$id),key:"getters",editable:!1,value:s._getters.reduce((l,c)=>{try{l[c]=s[c]}catch(f){l[c]=f}return l},{})})})}}),n.on.getInspectorTree(r=>{if(r.app===e&&r.inspectorId===Wo){let o=[t];o=o.concat(Array.from(t._s.values())),r.rootNodes=(r.filter?o.filter(i=>"$id"in i?i.$id.toLowerCase().includes(r.filter.toLowerCase()):g7.toLowerCase().includes(r.filter.toLowerCase())):o).map(cme)}}),n.on.getInspectorState(r=>{if(r.app===e&&r.inspectorId===Wo){const o=r.nodeId===u_?t:t._s.get(r.nodeId);if(!o)return;o&&(r.state=ume(o))}}),n.on.editInspectorState((r,o)=>{if(r.app===e&&r.inspectorId===Wo){const i=r.nodeId===u_?t:t._s.get(r.nodeId);if(!i)return ko(`store "${r.nodeId}" not found`,"error");const{path:a}=r;c_(i)?a.unshift("state"):(a.length!==1||!i._customProperties.has(a[0])||a[0]in i.$state)&&a.unshift("$state"),Vf=!1,r.set(i,a,r.state.value),Vf=!0}}),n.on.editComponentState(r=>{if(r.type.startsWith("🍍")){const o=r.type.replace(/^🍍\s*/,""),i=t._s.get(o);if(!i)return ko(`store "${o}" not found`,"error");const{path:a}=r;if(a[0]!=="state")return ko(`Invalid path for store "${o}":
166
166
  ${a}
167
- Only state can be modified.`);a[0]="$state",Vf=!1,r.set(i,a,r.state.value),Vf=!0}})})}function mme(e,t){Zg.includes(e0(t.$id))||Zg.push(e0(t.$id)),l9({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:Zg,app:e,settings:{logStoreChanges:{label:"Notify about new/deleted stores",type:"boolean",defaultValue:!0}}},n=>{const r=typeof n.now=="function"?n.now.bind(n):Date.now;t.$onAction(({after:a,onError:s,name:l,args:c})=>{const f=y9++;n.addTimelineEvent({layerId:su,event:{time:r(),title:"🛫 "+l,subtitle:"start",data:{store:za(t.$id),action:za(l),args:c},groupId:f}}),a(u=>{ac=void 0,n.addTimelineEvent({layerId:su,event:{time:r(),title:"🛬 "+l,subtitle:"end",data:{store:za(t.$id),action:za(l),args:c,result:u},groupId:f}})}),s(u=>{ac=void 0,n.addTimelineEvent({layerId:su,event:{time:r(),logType:"error",title:"💥 "+l,subtitle:"end",data:{store:za(t.$id),action:za(l),args:c,error:u},groupId:f}})})},!0),t._customProperties.forEach(a=>{b.watch(()=>b.unref(t[a]),(s,l)=>{n.notifyComponentUpdate(),n.sendInspectorState(Wo),Vf&&n.addTimelineEvent({layerId:su,event:{time:r(),title:"Change",subtitle:a,data:{newValue:s,oldValue:l},groupId:ac}})},{deep:!0})}),t.$subscribe(({events:a,type:s},l)=>{if(n.notifyComponentUpdate(),n.sendInspectorState(Wo),!Vf)return;const c={time:r(),title:dme(s),data:hme({store:za(t.$id)},fme(a)),groupId:ac};s===$s.patchFunction?c.subtitle="⤵️":s===$s.patchObject?c.subtitle="🧩":a&&!Array.isArray(a)&&(c.subtitle=a.type),a&&(c.data["rawEvent(s)"]={_custom:{display:"DebuggerEvent",type:"object",tooltip:"raw DebuggerEvent[]",value:a}}),n.addTimelineEvent({layerId:su,event:c})},{detached:!0,flush:"sync"});const o=t._hotUpdate;t._hotUpdate=b.markRaw(a=>{o(a),n.addTimelineEvent({layerId:su,event:{time:r(),title:"🔥 "+t.$id,subtitle:"HMR update",data:{store:za(t.$id),info:za("HMR update")}}}),n.notifyComponentUpdate(),n.sendInspectorTree(Wo),n.sendInspectorState(Wo)});const{$dispose:i}=t;t.$dispose=()=>{i(),n.notifyComponentUpdate(),n.sendInspectorTree(Wo),n.sendInspectorState(Wo),n.getSettings().logStoreChanges&&ko(`Disposed "${t.$id}" store 🗑`)},n.notifyComponentUpdate(),n.sendInspectorTree(Wo),n.sendInspectorState(Wo),n.getSettings().logStoreChanges&&ko(`"${t.$id}" store installed 🆕`)})}let y9=0,ac;function b9(e,t,n){const r=t.reduce((o,i)=>(o[i]=b.toRaw(e)[i],o),{});for(const o in r)e[o]=function(){const i=y9,a=n?new Proxy(e,{get(...l){return ac=i,Reflect.get(...l)},set(...l){return ac=i,Reflect.set(...l)}}):e;ac=i;const s=r[o].apply(a,arguments);return ac=void 0,s}}function vme({app:e,store:t,options:n}){if(t.$id.startsWith("__hot:"))return;t._isOptionsAPI=!!n.state,b9(t,Object.keys(n.actions),t._isOptionsAPI);const r=t._hotUpdate;b.toRaw(t)._hotUpdate=function(o){r.apply(this,arguments),b9(t,Object.keys(o._hmrPayload.actions),!!t._isOptionsAPI)},mme(e,t)}function gme(){const e=b.effectScope(!0),t=e.run(()=>b.ref({}));let n=[],r=[];const o=b.markRaw({install(i){Yh(o),o._a=i,i.provide(c9,o),i.config.globalProperties.$pinia=o,Xh&&pme(i,o),r.forEach(a=>n.push(a)),r=[]},use(i){return!this._a&&!a9?r.push(i):n.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return Xh&&typeof Proxy<"u"&&o.use(vme),o}function w9(e,t){for(const n in t){const r=t[n];if(!(n in e))continue;const o=e[n];au(o)&&au(r)&&!b.isRef(r)&&!b.isReactive(r)?e[n]=w9(o,r):e[n]=r}return e}const k9=()=>{};function x9(e,t,n,r=k9){e.push(t);const o=()=>{const i=e.indexOf(t);i>-1&&(e.splice(i,1),r())};return!n&&b.getCurrentScope()&&b.onScopeDispose(o),o}function zf(e,...t){e.slice().forEach(n=>{n(...t)})}const yme=e=>e();function f_(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,r)=>e.set(r,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],o=e[n];au(o)&&au(r)&&e.hasOwnProperty(n)&&!b.isRef(r)&&!b.isReactive(r)?e[n]=f_(o,r):e[n]=r}return e}const bme=process.env.NODE_ENV!=="production"?Symbol("pinia:skipHydration"):Symbol();function wme(e){return!au(e)||!e.hasOwnProperty(bme)}const{assign:ua}=Object;function _9(e){return!!(b.isRef(e)&&e.effect)}function j9(e,t,n,r){const{state:o,actions:i,getters:a}=t,s=n.state.value[e];let l;function c(){!s&&(process.env.NODE_ENV==="production"||!r)&&(n.state.value[e]=o?o():{});const f=process.env.NODE_ENV!=="production"&&r?b.toRefs(b.ref(o?o():{}).value):b.toRefs(n.state.value[e]);return ua(f,i,Object.keys(a||{}).reduce((u,d)=>(process.env.NODE_ENV!=="production"&&d in f&&console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${d}" in store "${e}".`),u[d]=b.markRaw(b.computed(()=>{Yh(n);const h=n._s.get(e);return a[d].call(h,h)})),u),{}))}return l=d_(e,c,t,n,r,!0),l}function d_(e,t,n={},r,o,i){let a;const s=ua({actions:{}},n);if(process.env.NODE_ENV!=="production"&&!r._e.active)throw new Error("Pinia destroyed");const l={deep:!0};process.env.NODE_ENV!=="production"&&!a9&&(l.onTrigger=L=>{c?h=L:c==!1&&!E._hotUpdating&&(Array.isArray(h)?h.push(L):console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."))});let c,f,u=[],d=[],h;const p=r.state.value[e];!i&&!p&&(process.env.NODE_ENV==="production"||!o)&&(r.state.value[e]={});const m=b.ref({});let v;function g(L){let M;c=f=!1,process.env.NODE_ENV!=="production"&&(h=[]),typeof L=="function"?(L(r.state.value[e]),M={type:$s.patchFunction,storeId:e,events:h}):(f_(r.state.value[e],L),M={type:$s.patchObject,payload:L,storeId:e,events:h});const F=v=Symbol();b.nextTick().then(()=>{v===F&&(c=!0)}),f=!0,zf(u,M,r.state.value[e])}const y=i?function(){const{state:M}=n,F=M?M():{};this.$patch(H=>{ua(H,F)})}:process.env.NODE_ENV!=="production"?()=>{throw new Error(`🍍: Store "${e}" is built using the setup syntax and does not implement $reset().`)}:k9;function w(){a.stop(),u=[],d=[],r._s.delete(e)}function k(L,M){return function(){Yh(r);const F=Array.from(arguments),H=[],N=[];function W(K){H.push(K)}function ee(K){N.push(K)}zf(d,{args:F,name:L,store:E,after:W,onError:ee});let U;try{U=M.apply(this&&this.$id===e?this:E,F)}catch(K){throw zf(N,K),K}return U instanceof Promise?U.then(K=>(zf(H,K),K)).catch(K=>(zf(N,K),Promise.reject(K))):(zf(H,U),U)}}const $=b.markRaw({actions:{},getters:{},state:[],hotState:m}),j={_p:r,$id:e,$onAction:x9.bind(null,d),$patch:g,$reset:y,$subscribe(L,M={}){const F=x9(u,L,M.detached,()=>H()),H=a.run(()=>b.watch(()=>r.state.value[e],N=>{(M.flush==="sync"?f:c)&&L({storeId:e,type:$s.direct,events:h},N)},ua({},l,M)));return F},$dispose:w},E=b.reactive(process.env.NODE_ENV!=="production"||Xh?ua({_hmrPayload:$,_customProperties:b.markRaw(new Set)},j):j);r._s.set(e,E);const D=(r._a&&r._a.runWithContext||yme)(()=>r._e.run(()=>(a=b.effectScope()).run(t)));for(const L in D){const M=D[L];if(b.isRef(M)&&!_9(M)||b.isReactive(M))process.env.NODE_ENV!=="production"&&o?Jg(m.value,L,b.toRef(D,L)):i||(p&&wme(M)&&(b.isRef(M)?M.value=p[L]:f_(M,p[L])),r.state.value[e][L]=M),process.env.NODE_ENV!=="production"&&$.state.push(L);else if(typeof M=="function"){const F=process.env.NODE_ENV!=="production"&&o?M:k(L,M);D[L]=F,process.env.NODE_ENV!=="production"&&($.actions[L]=M),s.actions[L]=M}else process.env.NODE_ENV!=="production"&&_9(M)&&($.getters[L]=i?n.getters[L]:M,Qg&&(D._getters||(D._getters=b.markRaw([]))).push(L))}if(ua(E,D),ua(b.toRaw(E),D),Object.defineProperty(E,"$state",{get:()=>process.env.NODE_ENV!=="production"&&o?m.value:r.state.value[e],set:L=>{if(process.env.NODE_ENV!=="production"&&o)throw new Error("cannot set hotState");g(M=>{ua(M,L)})}}),process.env.NODE_ENV!=="production"&&(E._hotUpdate=b.markRaw(L=>{E._hotUpdating=!0,L._hmrPayload.state.forEach(M=>{if(M in E.$state){const F=L.$state[M],H=E.$state[M];typeof F=="object"&&au(F)&&au(H)?w9(F,H):L.$state[M]=H}Jg(E,M,b.toRef(L.$state,M))}),Object.keys(E.$state).forEach(M=>{M in L.$state||a_(E,M)}),c=!1,f=!1,r.state.value[e]=b.toRef(L._hmrPayload,"hotState"),f=!0,b.nextTick().then(()=>{c=!0});for(const M in L._hmrPayload.actions){const F=L[M];Jg(E,M,k(M,F))}for(const M in L._hmrPayload.getters){const F=L._hmrPayload.getters[M],H=i?b.computed(()=>(Yh(r),F.call(E,E))):F;Jg(E,M,H)}Object.keys(E._hmrPayload.getters).forEach(M=>{M in L._hmrPayload.getters||a_(E,M)}),Object.keys(E._hmrPayload.actions).forEach(M=>{M in L._hmrPayload.actions||a_(E,M)}),E._hmrPayload=L._hmrPayload,E._getters=L._getters,E._hotUpdating=!1})),Xh){const L={writable:!0,configurable:!0,enumerable:!1};["_p","_hmrPayload","_getters","_customProperties"].forEach(M=>{Object.defineProperty(E,M,ua({value:E[M]},L))})}return r._p.forEach(L=>{if(Xh){const M=a.run(()=>L({store:E,app:r._a,pinia:r,options:s}));Object.keys(M||{}).forEach(F=>E._customProperties.add(F)),ua(E,M)}else ua(E,a.run(()=>L({store:E,app:r._a,pinia:r,options:s})))}),process.env.NODE_ENV!=="production"&&E.$state&&typeof E.$state=="object"&&typeof E.$state.constructor=="function"&&!E.$state.constructor.toString().includes("[native code]")&&console.warn(`[🍍]: The "state" must be a plain object. It cannot be
167
+ Only state can be modified.`);a[0]="$state",Vf=!1,r.set(i,a,r.state.value),Vf=!0}})})}function mme(e,t){Zg.includes(e0(t.$id))||Zg.push(e0(t.$id)),l7({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:Zg,app:e,settings:{logStoreChanges:{label:"Notify about new/deleted stores",type:"boolean",defaultValue:!0}}},n=>{const r=typeof n.now=="function"?n.now.bind(n):Date.now;t.$onAction(({after:a,onError:s,name:l,args:c})=>{const f=y7++;n.addTimelineEvent({layerId:su,event:{time:r(),title:"🛫 "+l,subtitle:"start",data:{store:za(t.$id),action:za(l),args:c},groupId:f}}),a(u=>{ac=void 0,n.addTimelineEvent({layerId:su,event:{time:r(),title:"🛬 "+l,subtitle:"end",data:{store:za(t.$id),action:za(l),args:c,result:u},groupId:f}})}),s(u=>{ac=void 0,n.addTimelineEvent({layerId:su,event:{time:r(),logType:"error",title:"💥 "+l,subtitle:"end",data:{store:za(t.$id),action:za(l),args:c,error:u},groupId:f}})})},!0),t._customProperties.forEach(a=>{b.watch(()=>b.unref(t[a]),(s,l)=>{n.notifyComponentUpdate(),n.sendInspectorState(Wo),Vf&&n.addTimelineEvent({layerId:su,event:{time:r(),title:"Change",subtitle:a,data:{newValue:s,oldValue:l},groupId:ac}})},{deep:!0})}),t.$subscribe(({events:a,type:s},l)=>{if(n.notifyComponentUpdate(),n.sendInspectorState(Wo),!Vf)return;const c={time:r(),title:dme(s),data:hme({store:za(t.$id)},fme(a)),groupId:ac};s===$s.patchFunction?c.subtitle="⤵️":s===$s.patchObject?c.subtitle="🧩":a&&!Array.isArray(a)&&(c.subtitle=a.type),a&&(c.data["rawEvent(s)"]={_custom:{display:"DebuggerEvent",type:"object",tooltip:"raw DebuggerEvent[]",value:a}}),n.addTimelineEvent({layerId:su,event:c})},{detached:!0,flush:"sync"});const o=t._hotUpdate;t._hotUpdate=b.markRaw(a=>{o(a),n.addTimelineEvent({layerId:su,event:{time:r(),title:"🔥 "+t.$id,subtitle:"HMR update",data:{store:za(t.$id),info:za("HMR update")}}}),n.notifyComponentUpdate(),n.sendInspectorTree(Wo),n.sendInspectorState(Wo)});const{$dispose:i}=t;t.$dispose=()=>{i(),n.notifyComponentUpdate(),n.sendInspectorTree(Wo),n.sendInspectorState(Wo),n.getSettings().logStoreChanges&&ko(`Disposed "${t.$id}" store 🗑`)},n.notifyComponentUpdate(),n.sendInspectorTree(Wo),n.sendInspectorState(Wo),n.getSettings().logStoreChanges&&ko(`"${t.$id}" store installed 🆕`)})}let y7=0,ac;function b7(e,t,n){const r=t.reduce((o,i)=>(o[i]=b.toRaw(e)[i],o),{});for(const o in r)e[o]=function(){const i=y7,a=n?new Proxy(e,{get(...l){return ac=i,Reflect.get(...l)},set(...l){return ac=i,Reflect.set(...l)}}):e;ac=i;const s=r[o].apply(a,arguments);return ac=void 0,s}}function vme({app:e,store:t,options:n}){if(t.$id.startsWith("__hot:"))return;t._isOptionsAPI=!!n.state,b7(t,Object.keys(n.actions),t._isOptionsAPI);const r=t._hotUpdate;b.toRaw(t)._hotUpdate=function(o){r.apply(this,arguments),b7(t,Object.keys(o._hmrPayload.actions),!!t._isOptionsAPI)},mme(e,t)}function gme(){const e=b.effectScope(!0),t=e.run(()=>b.ref({}));let n=[],r=[];const o=b.markRaw({install(i){Yh(o),o._a=i,i.provide(c7,o),i.config.globalProperties.$pinia=o,Xh&&pme(i,o),r.forEach(a=>n.push(a)),r=[]},use(i){return!this._a&&!a7?r.push(i):n.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return Xh&&typeof Proxy<"u"&&o.use(vme),o}function w7(e,t){for(const n in t){const r=t[n];if(!(n in e))continue;const o=e[n];au(o)&&au(r)&&!b.isRef(r)&&!b.isReactive(r)?e[n]=w7(o,r):e[n]=r}return e}const k7=()=>{};function x7(e,t,n,r=k7){e.push(t);const o=()=>{const i=e.indexOf(t);i>-1&&(e.splice(i,1),r())};return!n&&b.getCurrentScope()&&b.onScopeDispose(o),o}function zf(e,...t){e.slice().forEach(n=>{n(...t)})}const yme=e=>e();function f_(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,r)=>e.set(r,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],o=e[n];au(o)&&au(r)&&e.hasOwnProperty(n)&&!b.isRef(r)&&!b.isReactive(r)?e[n]=f_(o,r):e[n]=r}return e}const bme=process.env.NODE_ENV!=="production"?Symbol("pinia:skipHydration"):Symbol();function wme(e){return!au(e)||!e.hasOwnProperty(bme)}const{assign:ua}=Object;function _7(e){return!!(b.isRef(e)&&e.effect)}function j7(e,t,n,r){const{state:o,actions:i,getters:a}=t,s=n.state.value[e];let l;function c(){!s&&(process.env.NODE_ENV==="production"||!r)&&(n.state.value[e]=o?o():{});const f=process.env.NODE_ENV!=="production"&&r?b.toRefs(b.ref(o?o():{}).value):b.toRefs(n.state.value[e]);return ua(f,i,Object.keys(a||{}).reduce((u,d)=>(process.env.NODE_ENV!=="production"&&d in f&&console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${d}" in store "${e}".`),u[d]=b.markRaw(b.computed(()=>{Yh(n);const h=n._s.get(e);return a[d].call(h,h)})),u),{}))}return l=d_(e,c,t,n,r,!0),l}function d_(e,t,n={},r,o,i){let a;const s=ua({actions:{}},n);if(process.env.NODE_ENV!=="production"&&!r._e.active)throw new Error("Pinia destroyed");const l={deep:!0};process.env.NODE_ENV!=="production"&&!a7&&(l.onTrigger=L=>{c?h=L:c==!1&&!E._hotUpdating&&(Array.isArray(h)?h.push(L):console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."))});let c,f,u=[],d=[],h;const p=r.state.value[e];!i&&!p&&(process.env.NODE_ENV==="production"||!o)&&(r.state.value[e]={});const m=b.ref({});let v;function g(L){let M;c=f=!1,process.env.NODE_ENV!=="production"&&(h=[]),typeof L=="function"?(L(r.state.value[e]),M={type:$s.patchFunction,storeId:e,events:h}):(f_(r.state.value[e],L),M={type:$s.patchObject,payload:L,storeId:e,events:h});const F=v=Symbol();b.nextTick().then(()=>{v===F&&(c=!0)}),f=!0,zf(u,M,r.state.value[e])}const y=i?function(){const{state:M}=n,F=M?M():{};this.$patch(H=>{ua(H,F)})}:process.env.NODE_ENV!=="production"?()=>{throw new Error(`🍍: Store "${e}" is built using the setup syntax and does not implement $reset().`)}:k7;function w(){a.stop(),u=[],d=[],r._s.delete(e)}function k(L,M){return function(){Yh(r);const F=Array.from(arguments),H=[],N=[];function W(K){H.push(K)}function ee(K){N.push(K)}zf(d,{args:F,name:L,store:E,after:W,onError:ee});let U;try{U=M.apply(this&&this.$id===e?this:E,F)}catch(K){throw zf(N,K),K}return U instanceof Promise?U.then(K=>(zf(H,K),K)).catch(K=>(zf(N,K),Promise.reject(K))):(zf(H,U),U)}}const $=b.markRaw({actions:{},getters:{},state:[],hotState:m}),j={_p:r,$id:e,$onAction:x7.bind(null,d),$patch:g,$reset:y,$subscribe(L,M={}){const F=x7(u,L,M.detached,()=>H()),H=a.run(()=>b.watch(()=>r.state.value[e],N=>{(M.flush==="sync"?f:c)&&L({storeId:e,type:$s.direct,events:h},N)},ua({},l,M)));return F},$dispose:w},E=b.reactive(process.env.NODE_ENV!=="production"||Xh?ua({_hmrPayload:$,_customProperties:b.markRaw(new Set)},j):j);r._s.set(e,E);const D=(r._a&&r._a.runWithContext||yme)(()=>r._e.run(()=>(a=b.effectScope()).run(t)));for(const L in D){const M=D[L];if(b.isRef(M)&&!_7(M)||b.isReactive(M))process.env.NODE_ENV!=="production"&&o?Jg(m.value,L,b.toRef(D,L)):i||(p&&wme(M)&&(b.isRef(M)?M.value=p[L]:f_(M,p[L])),r.state.value[e][L]=M),process.env.NODE_ENV!=="production"&&$.state.push(L);else if(typeof M=="function"){const F=process.env.NODE_ENV!=="production"&&o?M:k(L,M);D[L]=F,process.env.NODE_ENV!=="production"&&($.actions[L]=M),s.actions[L]=M}else process.env.NODE_ENV!=="production"&&_7(M)&&($.getters[L]=i?n.getters[L]:M,Qg&&(D._getters||(D._getters=b.markRaw([]))).push(L))}if(ua(E,D),ua(b.toRaw(E),D),Object.defineProperty(E,"$state",{get:()=>process.env.NODE_ENV!=="production"&&o?m.value:r.state.value[e],set:L=>{if(process.env.NODE_ENV!=="production"&&o)throw new Error("cannot set hotState");g(M=>{ua(M,L)})}}),process.env.NODE_ENV!=="production"&&(E._hotUpdate=b.markRaw(L=>{E._hotUpdating=!0,L._hmrPayload.state.forEach(M=>{if(M in E.$state){const F=L.$state[M],H=E.$state[M];typeof F=="object"&&au(F)&&au(H)?w7(F,H):L.$state[M]=H}Jg(E,M,b.toRef(L.$state,M))}),Object.keys(E.$state).forEach(M=>{M in L.$state||a_(E,M)}),c=!1,f=!1,r.state.value[e]=b.toRef(L._hmrPayload,"hotState"),f=!0,b.nextTick().then(()=>{c=!0});for(const M in L._hmrPayload.actions){const F=L[M];Jg(E,M,k(M,F))}for(const M in L._hmrPayload.getters){const F=L._hmrPayload.getters[M],H=i?b.computed(()=>(Yh(r),F.call(E,E))):F;Jg(E,M,H)}Object.keys(E._hmrPayload.getters).forEach(M=>{M in L._hmrPayload.getters||a_(E,M)}),Object.keys(E._hmrPayload.actions).forEach(M=>{M in L._hmrPayload.actions||a_(E,M)}),E._hmrPayload=L._hmrPayload,E._getters=L._getters,E._hotUpdating=!1})),Xh){const L={writable:!0,configurable:!0,enumerable:!1};["_p","_hmrPayload","_getters","_customProperties"].forEach(M=>{Object.defineProperty(E,M,ua({value:E[M]},L))})}return r._p.forEach(L=>{if(Xh){const M=a.run(()=>L({store:E,app:r._a,pinia:r,options:s}));Object.keys(M||{}).forEach(F=>E._customProperties.add(F)),ua(E,M)}else ua(E,a.run(()=>L({store:E,app:r._a,pinia:r,options:s})))}),process.env.NODE_ENV!=="production"&&E.$state&&typeof E.$state=="object"&&typeof E.$state.constructor=="function"&&!E.$state.constructor.toString().includes("[native code]")&&console.warn(`[🍍]: The "state" must be a plain object. It cannot be
168
168
  state: () => new MyClass()
169
- Found in store "${E.$id}".`),p&&i&&n.hydrate&&n.hydrate(E.$state,p),c=!0,f=!0,E}function oo(e,t,n){let r,o;const i=typeof t=="function";if(typeof e=="string")r=e,o=i?n:t;else if(o=e,r=e.id,process.env.NODE_ENV!=="production"&&typeof r!="string")throw new Error('[🍍]: "defineStore()" must be passed a store id as its first argument.');function a(s,l){const c=b.hasInjectionContext();if(s=(process.env.NODE_ENV==="test"&&Qh&&Qh._testing?null:s)||(c?b.inject(c9,null):null),s&&Yh(s),process.env.NODE_ENV!=="production"&&!Qh)throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?
169
+ Found in store "${E.$id}".`),p&&i&&n.hydrate&&n.hydrate(E.$state,p),c=!0,f=!0,E}function oo(e,t,n){let r,o;const i=typeof t=="function";if(typeof e=="string")r=e,o=i?n:t;else if(o=e,r=e.id,process.env.NODE_ENV!=="production"&&typeof r!="string")throw new Error('[🍍]: "defineStore()" must be passed a store id as its first argument.');function a(s,l){const c=b.hasInjectionContext();if(s=(process.env.NODE_ENV==="test"&&Qh&&Qh._testing?null:s)||(c?b.inject(c7,null):null),s&&Yh(s),process.env.NODE_ENV!=="production"&&!Qh)throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?
170
170
  See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.
171
- This will fail in production.`);s=Qh,s._s.has(r)||(i?d_(r,t,o,s):j9(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):j9(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 S9=["music","ambiant","sound"],C9=o_(S9),xo=oo("audio",{state:()=>{const e=new Map;for(const t in C9)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 C9){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)}}}),$9={};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(),$9[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 $9[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]:T9(e,e)}async function $me(e){zi.log("Loading images");const t=[],n=async(o,i)=>await T9(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 T9(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 O9="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=A9()}return Eme(io),M9(io),Zh(),io}function Ome(){io=A9(),Zh()}function E9(){return{achievements:{achievements:{}},data:{}}}function Eme(e){e.version==="1.4.0"&&(e.globalSave=E9(),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 A9(){const e={version:O9,slots:[],globalSave:E9()};return M9(e),e}function M9(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 P9(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'
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
- onmouseleave="onTooltipLeave()">${t}</span>`:n}function N9(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=N9(t,e,"$");return Lme(n)}function v_(e,t,n){const[r,o]=W0(e,t,n);return r[o]}const I9=/\$\$"/,Bme=e=>typeof e=="string"&&e.search(I9)===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 D9(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=D9(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=D9(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)=>(L9(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=L9(n,e.difficulty),zi.log(`[SKILL CHECK ${o.name}]: ${i?"✅":"❌"}`,`(${e.id}) - ${n}/${e.difficulty}`);return lu(i?"onSkillCheckSuccess":"onSkillCheckFailure"),i}function L9(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()),R9=B.Type.Object({files:Jme,audioTriggers:Yme,options:Qme}),B9={files:{},audioTriggers:{},options:{volume:1,musicFadeInTime:.5,musicFadeInDelay:.5,musicFadeOutTime:.5}},F9=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 V9(e){return e.type==="integer"}function ive(e){return e.type==="boolean"}function ave(e){return e.type==="string"}const z9=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.2-beta.0",uve=new Date("2023-10-28T16:25:09.230Z"),fve=400,a0=20,y_="@empty",q9={background:y_},U9=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())})),H9=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())}))}),W9=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())}),K9=B.Type.Record(B.Type.String(),dve),G9=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())}),J9=B.Type.Record(B.Type.String(),hve),pve=B.Type.Object({text:B.Type.String(),cssClass:B.Type.Optional(B.Type.String())}),Q9=B.Type.Record(B.Type.String(),pve),Y9=B.Type.Object({showScriptFinishedMessage:B.Type.Optional(B.Type.Boolean())}),X9=B.Type.Object({mode:B.Type.String(),slots:B.Type.Number(),runOnReload:B.Type.Optional(B.Type.String())}),Z9=B.Type.Array(B.Type.String()),mve=[],e7=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:F9,settings:B.Type.Optional(z9),gameFlow:B.Type.Optional(B.Type.Object({labelToJumpOnScriptEnd:B.Type.Optional(B.Type.String())})),dialogPanel:B.Type.Optional(U9),splashScreens:B.Type.Optional(H9),notifications:B.Type.Optional(W9),hudStats:K9,interactionTags:B.Type.Optional(G9),transitions:B.Type.Optional(J9),menuButtons:B.Type.Optional(Q9),debugging:B.Type.Optional(Y9),saves:B.Type.Optional(X9)}),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())}),t7=B.Type.Object({id:B.Type.String(),title:B.Type.String()}),n7=B.Type.Record(B.Type.String(),vve);B.Type.Object({categories:B.Type.Array(t7),items:n7});const r7=B.Type.Object({categories:B.Type.Optional(B.Type.Array(t7)),items:B.Type.Optional(n7)}),o7={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),i7=B.Type.Object({quests:wve,categories:B.Type.Array(bve)}),a7={quests:{},categories:[{id:"default",title:"Quests"}]},s7=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(),s7),l7=B.Type.Object({buttons:kve,clickableDuringScriptsByDefault:B.Type.Optional(B.Type.Boolean())}),c7={buttons:{},clickableDuringScriptsByDefault:!1},xve=B.Type.Intersect([s7,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])))}),u7=B.Type.Record(B.Type.String(),jve);B.Type.Object({screens:u7});const f7=B.Type.Object({screens:B.Type.Optional(u7)}),d7={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()}),h7=B.Type.Record(B.Type.String(),Sve),p7=B.Type.Object({xpPerLevel:B.Type.Number(),notifyLevelUp:B.Type.Boolean()});B.Type.Object({skills:h7,skillOptions:p7});const m7=B.Type.Object({skills:B.Type.Optional(h7),skillOptions:B.Type.Optional(p7)}),v7={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)}),g7=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)}),y7={config:{imagesPath:"",playerCharacter:"player",gameCharacter:"game"},characters:{}},b7=B.Type.Object({cssClass:B.Type.Optional(B.Type.String()),textCssClass:B.Type.Optional(B.Type.String()),titleCssClass:B.Type.Optional(B.Type.String())}),w7=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(b7)}),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(b7)}))}),k7={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())}),x7=B.Type.Object({id:B.Type.String(),title:B.Type.String()}),_7=B.Type.Record(B.Type.String(),Ave);B.Type.Object({defaultAchievementIcon:B.Type.String(),categories:B.Type.Array(x7),achievements:_7,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 j7=B.Type.Object({categories:B.Type.Optional(B.Type.Array(x7)),achievements:B.Type.Optional(_7)}),S7={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())}),C7=B.Type.Object({options:Mve,skillChecks:B.Type.Record(B.Type.String(),Pve)}),$7={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())}),T7=B.Type.Record(B.Type.String(),Nve);B.Type.Object({choiceTextTemplate:B.Type.String(),choicePrompts:T7});const O7=B.Type.Object({choiceTextTemplate:B.Type.Optional(B.Type.String()),choicePrompts:B.Type.Optional(T7)}),E7={choicePrompts:{},choiceTextTemplate:'<span class="choice-index">%{$index}. </span> <span class="choice-text">%{$choice}</span>'},A7=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(A7)});B.Type.Object({keyframes:w_,options:B.Type.Optional(A7)});const M7=B.Type.Object({animations:B.Type.Record(B.Type.String(),Ive),keyframes:B.Type.Record(B.Type.String(),w_)}),P7={animations:{},keyframes:{}},Uf={common:b_,screens:d7,buttons:c7,skills:v7,skillChecks:$7,scripts:[],audio:B9,tooltips:k7,achievements:S7,items:o7,quests:a7,characters:y7,choices:E7,animations:P7};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 N7(e){return Object.keys(e).concat(Hve(e))}function I7(e,t){try{return t in e}catch{return!1}}function Wve(e,t){return I7(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Kve(e,t,n){var r={};return n.isMergeableObject(e)&&N7(e).forEach(function(o){r[o]=np(e[o],n)}),N7(t).forEach(function(o){Wve(e,o)||(I7(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 D7(e){const t=Cr(),n=t.getSkillCheck(e.id);if(n&&n.happened&&(n.succeeded||!e.repeatable))return n;const r=Kme(e);return B7(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 L7(e){return typeof e=="object"}function R7(e){return typeof e=="string"&&e.search(/\$/)===0}function B7(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 F7(e){return typeof e>"u"||e===null}function Xve(e){return typeof e=="object"&&e!==null}function Zve(e){return Array.isArray(e)?e:F7(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=F7,oge=Xve,ige=Zve,age=tge,sge=nge,lge=ege,po={isNothing:rge,isObject:oge,toArray:ige,repeat:age,isNegativeZero:sge,extend:lge};function V7(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+=`
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.2-beta.2",uve=new Date("2023-10-28T16:40:12.764Z"),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
- `+e.mark.snippet),r+" "+n):r}function rp(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=V7(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+": "+V7(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+`
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+`
178
178
  `,s+=po.repeat("-",t.indent+f+3+c.pos)+`^
179
179
  `,l=1;l<=t.linesAfter&&!(a+l>=o.length);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+`
180
- `;return s.replace(/\n$/,"")}var uge=cge,fge=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],dge=["scalar","sequence","mapping"];function hge(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function pge(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(fge.indexOf(n)===-1)throw new si('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=hge(t.styleAliases||null),dge.indexOf(this.kind)===-1)throw new si('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var No=pge;function z7(e,t){var n=[];return e[t].forEach(function(r){var o=n.length;n.forEach(function(i,a){i.tag===r.tag&&i.kind===r.kind&&i.multi===r.multi&&(o=a)}),n[o]=r}),n}function mge(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,n;function r(o){o.multi?(e.multi[o.kind].push(o),e.multi.fallback.push(o)):e[o.kind][o.tag]=e.fallback[o.tag]=o}for(t=0,n=arguments.length;t<n;t+=1)arguments[t].forEach(r);return e}function j_(e){return this.extend(e)}j_.prototype.extend=function(t){var n=[],r=[];if(t instanceof No)r.push(t);else if(Array.isArray(t))r=r.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(n=n.concat(t.implicit)),t.explicit&&(r=r.concat(t.explicit));else throw new si("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");n.forEach(function(i){if(!(i instanceof No))throw new si("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(i.loadKind&&i.loadKind!=="scalar")throw new si("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(i.multi)throw new si("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),r.forEach(function(i){if(!(i instanceof No))throw new si("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var o=Object.create(j_.prototype);return o.implicit=(this.implicit||[]).concat(n),o.explicit=(this.explicit||[]).concat(r),o.compiledImplicit=z7(o,"implicit"),o.compiledExplicit=z7(o,"explicit"),o.compiledTypeMap=mge(o.compiledImplicit,o.compiledExplicit),o};var q7=j_,U7=new No("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),H7=new No("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),W7=new No("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),K7=new q7({explicit:[U7,H7,W7]});function vge(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function gge(){return null}function yge(e){return e===null}var G7=new No("tag:yaml.org,2002:null",{kind:"scalar",resolve:vge,construct:gge,predicate:yge,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function bge(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function wge(e){return e==="true"||e==="True"||e==="TRUE"}function kge(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var J7=new No("tag:yaml.org,2002:bool",{kind:"scalar",resolve:bge,construct:wge,predicate:kge,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function xge(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function _ge(e){return 48<=e&&e<=55}function jge(e){return 48<=e&&e<=57}function Sge(e){if(e===null)return!1;var t=e.length,n=0,r=!1,o;if(!t)return!1;if(o=e[n],(o==="-"||o==="+")&&(o=e[++n]),o==="0"){if(n+1===t)return!0;if(o=e[++n],o==="b"){for(n++;n<t;n++)if(o=e[n],o!=="_"){if(o!=="0"&&o!=="1")return!1;r=!0}return r&&o!=="_"}if(o==="x"){for(n++;n<t;n++)if(o=e[n],o!=="_"){if(!xge(e.charCodeAt(n)))return!1;r=!0}return r&&o!=="_"}if(o==="o"){for(n++;n<t;n++)if(o=e[n],o!=="_"){if(!_ge(e.charCodeAt(n)))return!1;r=!0}return r&&o!=="_"}}if(o==="_")return!1;for(;n<t;n++)if(o=e[n],o!=="_"){if(!jge(e.charCodeAt(n)))return!1;r=!0}return!(!r||o==="_")}function Cge(e){var t=e,n=1,r;if(t.indexOf("_")!==-1&&(t=t.replace(/_/g,"")),r=t[0],(r==="-"||r==="+")&&(r==="-"&&(n=-1),t=t.slice(1),r=t[0]),t==="0")return 0;if(r==="0"){if(t[1]==="b")return n*parseInt(t.slice(2),2);if(t[1]==="x")return n*parseInt(t.slice(2),16);if(t[1]==="o")return n*parseInt(t.slice(2),8)}return n*parseInt(t,10)}function $ge(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!po.isNegativeZero(e)}var Q7=new No("tag:yaml.org,2002:int",{kind:"scalar",resolve:Sge,construct:Cge,predicate:$ge,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Tge=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Oge(e){return!(e===null||!Tge.test(e)||e[e.length-1]==="_")}function Ege(e){var t,n;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:n*parseFloat(t,10)}var Age=/^[-+]?[0-9]+e/;function Mge(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(po.isNegativeZero(e))return"-0.0";return n=e.toString(10),Age.test(n)?n.replace("e",".e"):n}function Pge(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||po.isNegativeZero(e))}var Y7=new No("tag:yaml.org,2002:float",{kind:"scalar",resolve:Oge,construct:Ege,predicate:Pge,represent:Mge,defaultStyle:"lowercase"}),X7=K7.extend({implicit:[G7,J7,Q7,Y7]}),Z7=X7,eF=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),tF=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Nge(e){return e===null?!1:eF.exec(e)!==null||tF.exec(e)!==null}function Ige(e){var t,n,r,o,i,a,s,l=0,c=null,f,u,d;if(t=eF.exec(e),t===null&&(t=tF.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,o=+t[3],!t[4])return new Date(Date.UTC(n,r,o));if(i=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(f=+t[10],u=+(t[11]||0),c=(f*60+u)*6e4,t[9]==="-"&&(c=-c)),d=new Date(Date.UTC(n,r,o,i,a,s,l)),c&&d.setTime(d.getTime()-c),d}function Dge(e){return e.toISOString()}var nF=new No("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Nge,construct:Ige,instanceOf:Date,represent:Dge});function Lge(e){return e==="<<"||e===null}var rF=new No("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Lge}),S_=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
181
- \r`;function Rge(e){if(e===null)return!1;var t,n,r=0,o=e.length,i=S_;for(n=0;n<o;n++)if(t=i.indexOf(e.charAt(n)),!(t>64)){if(t<0)return!1;r+=6}return r%8===0}function Bge(e){var t,n,r=e.replace(/[\r\n=]/g,""),o=r.length,i=S_,a=0,s=[];for(t=0;t<o;t++)t%4===0&&t&&(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)),a=a<<6|i.indexOf(r.charAt(t));return n=o%4*6,n===0?(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)):n===18?(s.push(a>>10&255),s.push(a>>2&255)):n===12&&s.push(a>>4&255),new Uint8Array(s)}function Fge(e){var t="",n=0,r,o,i=e.length,a=S_;for(r=0;r<i;r++)r%3===0&&r&&(t+=a[n>>18&63],t+=a[n>>12&63],t+=a[n>>6&63],t+=a[n&63]),n=(n<<8)+e[r];return o=i%3,o===0?(t+=a[n>>18&63],t+=a[n>>12&63],t+=a[n>>6&63],t+=a[n&63]):o===2?(t+=a[n>>10&63],t+=a[n>>4&63],t+=a[n<<2&63],t+=a[64]):o===1&&(t+=a[n>>2&63],t+=a[n<<4&63],t+=a[64],t+=a[64]),t}function Vge(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var oF=new No("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Rge,construct:Bge,predicate:Vge,represent:Fge}),zge=Object.prototype.hasOwnProperty,qge=Object.prototype.toString;function Uge(e){if(e===null)return!0;var t=[],n,r,o,i,a,s=e;for(n=0,r=s.length;n<r;n+=1){if(o=s[n],a=!1,qge.call(o)!=="[object Object]")return!1;for(i in o)if(zge.call(o,i))if(!a)a=!0;else return!1;if(!a)return!1;if(t.indexOf(i)===-1)t.push(i);else return!1}return!0}function Hge(e){return e!==null?e:[]}var iF=new No("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Uge,construct:Hge}),Wge=Object.prototype.toString;function Kge(e){if(e===null)return!0;var t,n,r,o,i,a=e;for(i=new Array(a.length),t=0,n=a.length;t<n;t+=1){if(r=a[t],Wge.call(r)!=="[object Object]"||(o=Object.keys(r),o.length!==1))return!1;i[t]=[o[0],r[o[0]]]}return!0}function Gge(e){if(e===null)return[];var t,n,r,o,i,a=e;for(i=new Array(a.length),t=0,n=a.length;t<n;t+=1)r=a[t],o=Object.keys(r),i[t]=[o[0],r[o[0]]];return i}var aF=new No("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Kge,construct:Gge}),Jge=Object.prototype.hasOwnProperty;function Qge(e){if(e===null)return!0;var t,n=e;for(t in n)if(Jge.call(n,t)&&n[t]!==null)return!1;return!0}function Yge(e){return e!==null?e:{}}var sF=new No("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qge,construct:Yge}),C_=Z7.extend({implicit:[nF,rF],explicit:[oF,iF,aF,sF]}),sc=Object.prototype.hasOwnProperty,s0=1,lF=2,cF=3,l0=4,$_=1,Xge=2,uF=3,Zge=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,e0e=/[\x85\u2028\u2029]/,t0e=/[,\[\]\{\}]/,fF=/^(?:!|!!|![a-z\-]+!)$/i,dF=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function hF(e){return Object.prototype.toString.call(e)}function Os(e){return e===10||e===13}function fu(e){return e===9||e===32}function ji(e){return e===9||e===32||e===10||e===13}function Wf(e){return e===44||e===91||e===93||e===123||e===125}function n0e(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function r0e(e){return e===120?2:e===117?4:e===85?8:0}function o0e(e){return 48<=e&&e<=57?e-48:-1}function pF(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?`
180
+ `;return s.replace(/\n$/,"")}var uge=cge,fge=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],dge=["scalar","sequence","mapping"];function hge(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function pge(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(fge.indexOf(n)===-1)throw new si('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=hge(t.styleAliases||null),dge.indexOf(this.kind)===-1)throw new si('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var No=pge;function z9(e,t){var n=[];return e[t].forEach(function(r){var o=n.length;n.forEach(function(i,a){i.tag===r.tag&&i.kind===r.kind&&i.multi===r.multi&&(o=a)}),n[o]=r}),n}function mge(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,n;function r(o){o.multi?(e.multi[o.kind].push(o),e.multi.fallback.push(o)):e[o.kind][o.tag]=e.fallback[o.tag]=o}for(t=0,n=arguments.length;t<n;t+=1)arguments[t].forEach(r);return e}function j_(e){return this.extend(e)}j_.prototype.extend=function(t){var n=[],r=[];if(t instanceof No)r.push(t);else if(Array.isArray(t))r=r.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(n=n.concat(t.implicit)),t.explicit&&(r=r.concat(t.explicit));else throw new si("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");n.forEach(function(i){if(!(i instanceof No))throw new si("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(i.loadKind&&i.loadKind!=="scalar")throw new si("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(i.multi)throw new si("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),r.forEach(function(i){if(!(i instanceof No))throw new si("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var o=Object.create(j_.prototype);return o.implicit=(this.implicit||[]).concat(n),o.explicit=(this.explicit||[]).concat(r),o.compiledImplicit=z9(o,"implicit"),o.compiledExplicit=z9(o,"explicit"),o.compiledTypeMap=mge(o.compiledImplicit,o.compiledExplicit),o};var q9=j_,U9=new No("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),H9=new No("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),W9=new No("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),K9=new q9({explicit:[U9,H9,W9]});function vge(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function gge(){return null}function yge(e){return e===null}var G9=new No("tag:yaml.org,2002:null",{kind:"scalar",resolve:vge,construct:gge,predicate:yge,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function bge(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function wge(e){return e==="true"||e==="True"||e==="TRUE"}function kge(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var J9=new No("tag:yaml.org,2002:bool",{kind:"scalar",resolve:bge,construct:wge,predicate:kge,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function xge(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function _ge(e){return 48<=e&&e<=55}function jge(e){return 48<=e&&e<=57}function Sge(e){if(e===null)return!1;var t=e.length,n=0,r=!1,o;if(!t)return!1;if(o=e[n],(o==="-"||o==="+")&&(o=e[++n]),o==="0"){if(n+1===t)return!0;if(o=e[++n],o==="b"){for(n++;n<t;n++)if(o=e[n],o!=="_"){if(o!=="0"&&o!=="1")return!1;r=!0}return r&&o!=="_"}if(o==="x"){for(n++;n<t;n++)if(o=e[n],o!=="_"){if(!xge(e.charCodeAt(n)))return!1;r=!0}return r&&o!=="_"}if(o==="o"){for(n++;n<t;n++)if(o=e[n],o!=="_"){if(!_ge(e.charCodeAt(n)))return!1;r=!0}return r&&o!=="_"}}if(o==="_")return!1;for(;n<t;n++)if(o=e[n],o!=="_"){if(!jge(e.charCodeAt(n)))return!1;r=!0}return!(!r||o==="_")}function Cge(e){var t=e,n=1,r;if(t.indexOf("_")!==-1&&(t=t.replace(/_/g,"")),r=t[0],(r==="-"||r==="+")&&(r==="-"&&(n=-1),t=t.slice(1),r=t[0]),t==="0")return 0;if(r==="0"){if(t[1]==="b")return n*parseInt(t.slice(2),2);if(t[1]==="x")return n*parseInt(t.slice(2),16);if(t[1]==="o")return n*parseInt(t.slice(2),8)}return n*parseInt(t,10)}function $ge(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!po.isNegativeZero(e)}var Q9=new No("tag:yaml.org,2002:int",{kind:"scalar",resolve:Sge,construct:Cge,predicate:$ge,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Tge=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Oge(e){return!(e===null||!Tge.test(e)||e[e.length-1]==="_")}function Ege(e){var t,n;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:n*parseFloat(t,10)}var Age=/^[-+]?[0-9]+e/;function Mge(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(po.isNegativeZero(e))return"-0.0";return n=e.toString(10),Age.test(n)?n.replace("e",".e"):n}function Pge(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||po.isNegativeZero(e))}var Y9=new No("tag:yaml.org,2002:float",{kind:"scalar",resolve:Oge,construct:Ege,predicate:Pge,represent:Mge,defaultStyle:"lowercase"}),X9=K9.extend({implicit:[G9,J9,Q9,Y9]}),Z9=X9,eF=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),tF=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Nge(e){return e===null?!1:eF.exec(e)!==null||tF.exec(e)!==null}function Ige(e){var t,n,r,o,i,a,s,l=0,c=null,f,u,d;if(t=eF.exec(e),t===null&&(t=tF.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,o=+t[3],!t[4])return new Date(Date.UTC(n,r,o));if(i=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(f=+t[10],u=+(t[11]||0),c=(f*60+u)*6e4,t[9]==="-"&&(c=-c)),d=new Date(Date.UTC(n,r,o,i,a,s,l)),c&&d.setTime(d.getTime()-c),d}function Dge(e){return e.toISOString()}var nF=new No("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Nge,construct:Ige,instanceOf:Date,represent:Dge});function Lge(e){return e==="<<"||e===null}var rF=new No("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Lge}),S_=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
181
+ \r`;function Rge(e){if(e===null)return!1;var t,n,r=0,o=e.length,i=S_;for(n=0;n<o;n++)if(t=i.indexOf(e.charAt(n)),!(t>64)){if(t<0)return!1;r+=6}return r%8===0}function Bge(e){var t,n,r=e.replace(/[\r\n=]/g,""),o=r.length,i=S_,a=0,s=[];for(t=0;t<o;t++)t%4===0&&t&&(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)),a=a<<6|i.indexOf(r.charAt(t));return n=o%4*6,n===0?(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)):n===18?(s.push(a>>10&255),s.push(a>>2&255)):n===12&&s.push(a>>4&255),new Uint8Array(s)}function Fge(e){var t="",n=0,r,o,i=e.length,a=S_;for(r=0;r<i;r++)r%3===0&&r&&(t+=a[n>>18&63],t+=a[n>>12&63],t+=a[n>>6&63],t+=a[n&63]),n=(n<<8)+e[r];return o=i%3,o===0?(t+=a[n>>18&63],t+=a[n>>12&63],t+=a[n>>6&63],t+=a[n&63]):o===2?(t+=a[n>>10&63],t+=a[n>>4&63],t+=a[n<<2&63],t+=a[64]):o===1&&(t+=a[n>>2&63],t+=a[n<<4&63],t+=a[64],t+=a[64]),t}function Vge(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var oF=new No("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Rge,construct:Bge,predicate:Vge,represent:Fge}),zge=Object.prototype.hasOwnProperty,qge=Object.prototype.toString;function Uge(e){if(e===null)return!0;var t=[],n,r,o,i,a,s=e;for(n=0,r=s.length;n<r;n+=1){if(o=s[n],a=!1,qge.call(o)!=="[object Object]")return!1;for(i in o)if(zge.call(o,i))if(!a)a=!0;else return!1;if(!a)return!1;if(t.indexOf(i)===-1)t.push(i);else return!1}return!0}function Hge(e){return e!==null?e:[]}var iF=new No("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Uge,construct:Hge}),Wge=Object.prototype.toString;function Kge(e){if(e===null)return!0;var t,n,r,o,i,a=e;for(i=new Array(a.length),t=0,n=a.length;t<n;t+=1){if(r=a[t],Wge.call(r)!=="[object Object]"||(o=Object.keys(r),o.length!==1))return!1;i[t]=[o[0],r[o[0]]]}return!0}function Gge(e){if(e===null)return[];var t,n,r,o,i,a=e;for(i=new Array(a.length),t=0,n=a.length;t<n;t+=1)r=a[t],o=Object.keys(r),i[t]=[o[0],r[o[0]]];return i}var aF=new No("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Kge,construct:Gge}),Jge=Object.prototype.hasOwnProperty;function Qge(e){if(e===null)return!0;var t,n=e;for(t in n)if(Jge.call(n,t)&&n[t]!==null)return!1;return!0}function Yge(e){return e!==null?e:{}}var sF=new No("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qge,construct:Yge}),C_=Z9.extend({implicit:[nF,rF],explicit:[oF,iF,aF,sF]}),sc=Object.prototype.hasOwnProperty,s0=1,lF=2,cF=3,l0=4,$_=1,Xge=2,uF=3,Zge=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,e0e=/[\x85\u2028\u2029]/,t0e=/[,\[\]\{\}]/,fF=/^(?:!|!!|![a-z\-]+!)$/i,dF=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function hF(e){return Object.prototype.toString.call(e)}function Os(e){return e===10||e===13}function fu(e){return e===9||e===32}function ji(e){return e===9||e===32||e===10||e===13}function Wf(e){return e===44||e===91||e===93||e===123||e===125}function n0e(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function r0e(e){return e===120?2:e===117?4:e===85?8:0}function o0e(e){return 48<=e&&e<=57?e-48:-1}function pF(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?`
182
182
  `:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"…":e===95?" ":e===76?"\u2028":e===80?"\u2029":""}function i0e(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}for(var mF=new Array(256),vF=new Array(256),Kf=0;Kf<256;Kf++)mF[Kf]=pF(Kf)?1:0,vF[Kf]=pF(Kf);function a0e(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||C_,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function gF(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=uge(n),new si(t,n)}function tn(e,t){throw gF(e,t)}function c0(e,t){e.onWarning&&e.onWarning.call(null,gF(e,t))}var yF={YAML:function(t,n,r){var o,i,a;t.version!==null&&tn(t,"duplication of %YAML directive"),r.length!==1&&tn(t,"YAML directive accepts exactly one argument"),o=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),o===null&&tn(t,"ill-formed argument of the YAML directive"),i=parseInt(o[1],10),a=parseInt(o[2],10),i!==1&&tn(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=a<2,a!==1&&a!==2&&c0(t,"unsupported YAML version of the document")},TAG:function(t,n,r){var o,i;r.length!==2&&tn(t,"TAG directive accepts exactly two arguments"),o=r[0],i=r[1],fF.test(o)||tn(t,"ill-formed tag handle (first argument) of the TAG directive"),sc.call(t.tagMap,o)&&tn(t,'there is a previously declared suffix for "'+o+'" tag handle'),dF.test(i)||tn(t,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch{tn(t,"tag prefix is malformed: "+i)}t.tagMap[o]=i}};function lc(e,t,n,r){var o,i,a,s;if(t<n){if(s=e.input.slice(t,n),r)for(o=0,i=s.length;o<i;o+=1)a=s.charCodeAt(o),a===9||32<=a&&a<=1114111||tn(e,"expected valid JSON character");else Zge.test(s)&&tn(e,"the stream contains non-printable characters");e.result+=s}}function bF(e,t,n,r){var o,i,a,s;for(po.isObject(n)||tn(e,"cannot merge mappings; the provided source object is unacceptable"),o=Object.keys(n),a=0,s=o.length;a<s;a+=1)i=o[a],sc.call(t,i)||(t[i]=n[i],r[i]=!0)}function Gf(e,t,n,r,o,i,a,s,l){var c,f;if(Array.isArray(o))for(o=Array.prototype.slice.call(o),c=0,f=o.length;c<f;c+=1)Array.isArray(o[c])&&tn(e,"nested arrays are not supported inside keys"),typeof o=="object"&&hF(o[c])==="[object Object]"&&(o[c]="[object Object]");if(typeof o=="object"&&hF(o)==="[object Object]"&&(o="[object Object]"),o=String(o),t===null&&(t={}),r==="tag:yaml.org,2002:merge")if(Array.isArray(i))for(c=0,f=i.length;c<f;c+=1)bF(e,t,i[c],n);else bF(e,t,i,n);else!e.json&&!sc.call(n,o)&&sc.call(t,o)&&(e.line=a||e.line,e.lineStart=s||e.lineStart,e.position=l||e.position,tn(e,"duplicated mapping key")),o==="__proto__"?Object.defineProperty(t,o,{configurable:!0,enumerable:!0,writable:!0,value:i}):t[o]=i,delete n[o];return t}function T_(e){var t;t=e.input.charCodeAt(e.position),t===10?e.position++:t===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):tn(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function ao(e,t,n){for(var r=0,o=e.input.charCodeAt(e.position);o!==0;){for(;fu(o);)o===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),o=e.input.charCodeAt(++e.position);if(t&&o===35)do o=e.input.charCodeAt(++e.position);while(o!==10&&o!==13&&o!==0);if(Os(o))for(T_(e),o=e.input.charCodeAt(e.position),r++,e.lineIndent=0;o===32;)e.lineIndent++,o=e.input.charCodeAt(++e.position);else break}return n!==-1&&r!==0&&e.lineIndent<n&&c0(e,"deficient indentation"),r}function u0(e){var t=e.position,n;return n=e.input.charCodeAt(t),!!((n===45||n===46)&&n===e.input.charCodeAt(t+1)&&n===e.input.charCodeAt(t+2)&&(t+=3,n=e.input.charCodeAt(t),n===0||ji(n)))}function O_(e,t){t===1?e.result+=" ":t>1&&(e.result+=po.repeat(`
183
183
  `,t-1))}function s0e(e,t,n){var r,o,i,a,s,l,c,f,u=e.kind,d=e.result,h;if(h=e.input.charCodeAt(e.position),ji(h)||Wf(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(o=e.input.charCodeAt(e.position+1),ji(o)||n&&Wf(o)))return!1;for(e.kind="scalar",e.result="",i=a=e.position,s=!1;h!==0;){if(h===58){if(o=e.input.charCodeAt(e.position+1),ji(o)||n&&Wf(o))break}else if(h===35){if(r=e.input.charCodeAt(e.position-1),ji(r))break}else{if(e.position===e.lineStart&&u0(e)||n&&Wf(h))break;if(Os(h))if(l=e.line,c=e.lineStart,f=e.lineIndent,ao(e,!1,-1),e.lineIndent>=t){s=!0,h=e.input.charCodeAt(e.position);continue}else{e.position=a,e.line=l,e.lineStart=c,e.lineIndent=f;break}}s&&(lc(e,i,a,!1),O_(e,e.line-l),i=a=e.position,s=!1),fu(h)||(a=e.position+1),h=e.input.charCodeAt(++e.position)}return lc(e,i,a,!1),e.result?!0:(e.kind=u,e.result=d,!1)}function l0e(e,t){var n,r,o;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=o=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(lc(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)r=e.position,e.position++,o=e.position;else return!0;else Os(n)?(lc(e,r,o,!0),O_(e,ao(e,!1,t)),r=o=e.position):e.position===e.lineStart&&u0(e)?tn(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);tn(e,"unexpected end of the stream within a single quoted scalar")}function c0e(e,t){var n,r,o,i,a,s;if(s=e.input.charCodeAt(e.position),s!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(s=e.input.charCodeAt(e.position))!==0;){if(s===34)return lc(e,n,e.position,!0),e.position++,!0;if(s===92){if(lc(e,n,e.position,!0),s=e.input.charCodeAt(++e.position),Os(s))ao(e,!1,t);else if(s<256&&mF[s])e.result+=vF[s],e.position++;else if((a=r0e(s))>0){for(o=a,i=0;o>0;o--)s=e.input.charCodeAt(++e.position),(a=n0e(s))>=0?i=(i<<4)+a:tn(e,"expected hexadecimal character");e.result+=i0e(i),e.position++}else tn(e,"unknown escape sequence");n=r=e.position}else Os(s)?(lc(e,n,r,!0),O_(e,ao(e,!1,t)),n=r=e.position):e.position===e.lineStart&&u0(e)?tn(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}tn(e,"unexpected end of the stream within a double quoted scalar")}function u0e(e,t){var n=!0,r,o,i,a=e.tag,s,l=e.anchor,c,f,u,d,h,p=Object.create(null),m,v,g,y;if(y=e.input.charCodeAt(e.position),y===91)f=93,h=!1,s=[];else if(y===123)f=125,h=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),y=e.input.charCodeAt(++e.position);y!==0;){if(ao(e,!0,t),y=e.input.charCodeAt(e.position),y===f)return e.position++,e.tag=a,e.anchor=l,e.kind=h?"mapping":"sequence",e.result=s,!0;n?y===44&&tn(e,"expected the node content, but found ','"):tn(e,"missed comma between flow collection entries"),v=m=g=null,u=d=!1,y===63&&(c=e.input.charCodeAt(e.position+1),ji(c)&&(u=d=!0,e.position++,ao(e,!0,t))),r=e.line,o=e.lineStart,i=e.position,Jf(e,t,s0,!1,!0),v=e.tag,m=e.result,ao(e,!0,t),y=e.input.charCodeAt(e.position),(d||e.line===r)&&y===58&&(u=!0,y=e.input.charCodeAt(++e.position),ao(e,!0,t),Jf(e,t,s0,!1,!0),g=e.result),h?Gf(e,s,p,v,m,g,r,o,i):u?s.push(Gf(e,null,p,v,m,g,r,o,i)):s.push(m),ao(e,!0,t),y=e.input.charCodeAt(e.position),y===44?(n=!0,y=e.input.charCodeAt(++e.position)):n=!1}tn(e,"unexpected end of the stream within a flow collection")}function f0e(e,t){var n,r,o=$_,i=!1,a=!1,s=t,l=0,c=!1,f,u;if(u=e.input.charCodeAt(e.position),u===124)r=!1;else if(u===62)r=!0;else return!1;for(e.kind="scalar",e.result="";u!==0;)if(u=e.input.charCodeAt(++e.position),u===43||u===45)$_===o?o=u===43?uF:Xge:tn(e,"repeat of a chomping mode identifier");else if((f=o0e(u))>=0)f===0?tn(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):a?tn(e,"repeat of an indentation width identifier"):(s=t+f-1,a=!0);else break;if(fu(u)){do u=e.input.charCodeAt(++e.position);while(fu(u));if(u===35)do u=e.input.charCodeAt(++e.position);while(!Os(u)&&u!==0)}for(;u!==0;){for(T_(e),e.lineIndent=0,u=e.input.charCodeAt(e.position);(!a||e.lineIndent<s)&&u===32;)e.lineIndent++,u=e.input.charCodeAt(++e.position);if(!a&&e.lineIndent>s&&(s=e.lineIndent),Os(u)){l++;continue}if(e.lineIndent<s){o===uF?e.result+=po.repeat(`
184
184
  `,i?1+l:l):o===$_&&i&&(e.result+=`
@@ -202,21 +202,21 @@ This will fail in production.`);s=Qh,s._s.has(r)||(i?d_(r,t,o,s):j9(r,o,s),proce
202
202
  `+e.slice(o,i),o=i+1),a=s;return l+=`
203
203
  `,e.length-o>t&&a>o?l+=e.slice(o,a)+`
204
204
  `+e.slice(a+1):l+=e.slice(o),l.slice(1)}function J0e(e){for(var t="",n=0,r,o=0;o<e.length;n>=65536?o+=2:o++)n=sp(e,o),r=Ko[n],!r&&ap(n)?(t+=e[o],n>=65536&&(t+=e[o+1])):t+=r||F0e(n);return t}function Q0e(e,t,n){var r="",o=e.tag,i,a,s;for(i=0,a=n.length;i<a;i+=1)s=n[i],e.replacer&&(s=e.replacer.call(n,String(i),s)),(cl(e,t,s,!1,!1)||typeof s>"u"&&cl(e,t,null,!1,!1))&&(r!==""&&(r+=","+(e.condenseFlow?"":" ")),r+=e.dump);e.tag=o,e.dump="["+r+"]"}function FF(e,t,n,r){var o="",i=e.tag,a,s,l;for(a=0,s=n.length;a<s;a+=1)l=n[a],e.replacer&&(l=e.replacer.call(n,String(a),l)),(cl(e,t+1,l,!0,!0,!1,!0)||typeof l>"u"&&cl(e,t+1,null,!0,!0,!1,!0))&&((!r||o!=="")&&(o+=M_(e,t)),e.dump&&op===e.dump.charCodeAt(0)?o+="-":o+="- ",o+=e.dump);e.tag=i,e.dump=o||"[]"}function Y0e(e,t,n){var r="",o=e.tag,i=Object.keys(n),a,s,l,c,f;for(a=0,s=i.length;a<s;a+=1)f="",r!==""&&(f+=", "),e.condenseFlow&&(f+='"'),l=i[a],c=n[l],e.replacer&&(c=e.replacer.call(n,l,c)),cl(e,t,l,!1,!1)&&(e.dump.length>1024&&(f+="? "),f+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),cl(e,t,c,!1,!1)&&(f+=e.dump,r+=f));e.tag=o,e.dump="{"+r+"}"}function X0e(e,t,n,r){var o="",i=e.tag,a=Object.keys(n),s,l,c,f,u,d;if(e.sortKeys===!0)a.sort();else if(typeof e.sortKeys=="function")a.sort(e.sortKeys);else if(e.sortKeys)throw new si("sortKeys must be a boolean or a function");for(s=0,l=a.length;s<l;s+=1)d="",(!r||o!=="")&&(d+=M_(e,t)),c=a[s],f=n[c],e.replacer&&(f=e.replacer.call(n,c,f)),cl(e,t+1,c,!0,!0,!0)&&(u=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,u&&(e.dump&&op===e.dump.charCodeAt(0)?d+="?":d+="? "),d+=e.dump,u&&(d+=M_(e,t)),cl(e,t+1,f,!0,u)&&(e.dump&&op===e.dump.charCodeAt(0)?d+=":":d+=": ",d+=e.dump,o+=d));e.tag=i,e.dump=o||"{}"}function VF(e,t,n){var r,o,i,a,s,l;for(o=n?e.explicitTypes:e.implicitTypes,i=0,a=o.length;i<a;i+=1)if(s=o[i],(s.instanceOf||s.predicate)&&(!s.instanceOf||typeof t=="object"&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(n?s.multi&&s.representName?e.tag=s.representName(t):e.tag=s.tag:e.tag="?",s.represent){if(l=e.styleMap[s.tag]||s.defaultStyle,_F.call(s.represent)==="[object Function]")r=s.represent(t,l);else if(jF.call(s.represent,l))r=s.represent[l](t,l);else throw new si("!<"+s.tag+'> tag resolver accepts not "'+l+'" style');e.dump=r}return!0}return!1}function cl(e,t,n,r,o,i,a){e.tag=null,e.dump=n,VF(e,n,!1)||VF(e,n,!0);var s=_F.call(e.dump),l=r,c;r&&(r=e.flowLevel<0||e.flowLevel>t);var f=s==="[object Object]"||s==="[object Array]",u,d;if(f&&(u=e.duplicates.indexOf(n),d=u!==-1),(e.tag!==null&&e.tag!=="?"||d||e.indent!==2&&t>0)&&(o=!1),d&&e.usedDuplicates[u])e.dump="*ref_"+u;else{if(f&&d&&!e.usedDuplicates[u]&&(e.usedDuplicates[u]=!0),s==="[object Object]")r&&Object.keys(e.dump).length!==0?(X0e(e,t,e.dump,o),d&&(e.dump="&ref_"+u+e.dump)):(Y0e(e,t,e.dump),d&&(e.dump="&ref_"+u+" "+e.dump));else if(s==="[object Array]")r&&e.dump.length!==0?(e.noArrayIndent&&!a&&t>0?FF(e,t-1,e.dump,o):FF(e,t,e.dump,o),d&&(e.dump="&ref_"+u+e.dump)):(Q0e(e,t,e.dump),d&&(e.dump="&ref_"+u+" "+e.dump));else if(s==="[object String]")e.tag!=="?"&&K0e(e,e.dump,t,i,l);else{if(s==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new si("unacceptable kind of an object to dump "+s)}e.tag!==null&&e.tag!=="?"&&(c=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?c="!"+c:c.slice(0,18)==="tag:yaml.org,2002:"?c="!!"+c.slice(18):c="!<"+c+">",e.dump=c+" "+e.dump)}return!0}function Z0e(e,t){var n=[],r=[],o,i;for(N_(e,n,r),o=0,i=r.length;o<i;o+=1)t.duplicates.push(n[r[o]]);t.usedDuplicates=new Array(i)}function N_(e,t,n){var r,o,i;if(e!==null&&typeof e=="object")if(o=t.indexOf(e),o!==-1)n.indexOf(o)===-1&&n.push(o);else if(t.push(e),Array.isArray(e))for(o=0,i=e.length;o<i;o+=1)N_(e[o],t,n);else for(r=Object.keys(e),o=0,i=r.length;o<i;o+=1)N_(e[r[o]],t,n)}function eye(e,t){t=t||{};var n=new z0e(t);n.noRefs||Z0e(e,n);var r=e;return n.replacer&&(r=n.replacer.call({"":r},"",r)),cl(n,0,r,!0,!0)?n.dump+`
205
- `:""}var tye=eye,nye={dump:tye};function I_(e,t){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+t+" instead, which is now safe by default.")}}var rye=No,oye=q7,iye=K7,aye=X7,sye=Z7,lye=C_,cye=xF.load,uye=xF.loadAll,fye=nye.dump,dye=si,hye={binary:oF,float:Y7,map:W7,null:G7,pairs:aF,set:sF,timestamp:nF,bool:J7,int:Q7,merge:rF,omap:iF,seq:H7,str:U7},pye=I_("safeLoad","load"),mye=I_("safeLoadAll","loadAll"),vye=I_("safeDump","dump"),gye={Type:rye,Schema:oye,FAILSAFE_SCHEMA:iye,JSON_SCHEMA:aye,CORE_SCHEMA:sye,DEFAULT_SCHEMA:lye,load:cye,loadAll:uye,dump:fye,YAMLException:dye,types:hye,safeLoad:pye,safeLoadAll:mye,safeDump:vye};function h0(e){return new Promise((t,n)=>{const r=new XMLHttpRequest;r.onload=function(){r.status>=200&&r.status<300?t(r.responseText):(At(`Failed to load file ${e}`,r.status),n(r.status))},r.open("GET",e),r.send()})}async function lp(e){try{const t=await h0(e);let n;if(e.endsWith(".json"))n=JSON.parse(t);else if(e.endsWith(".yaml"))n=gye.load(t);else{const r=`Unsupported file type for data file ${e} (must be .json or .yaml)`;throw new Error(r)}if(!n)throw new Error(`Data loaded from ${e} is empty`);return n}catch(t){throw console.error(`Failed to load data file ${e}: ${t}`),t}}const yye=(e,t)=>{const n={};for(const r in e)n[r]=t(e[r]);return n},zF=(e,t)=>{for(const n in e){const r=e[n];t(r,n,e),typeof r=="object"&&r!==null&&zF(r,t)}},p0={};function bye(e){return p0[e]??{}}function qF(e,t,n){const r=bye(e.transition),o=e.duration??r.duration??500,i=e.delay??r.delay??0;return{...e,resolve:n,duration:o,delay:i,oldScreen:t}}const Go=oo("notifications",{state:()=>({notifications:[],enabled:!0}),actions:{async addNotification(e,t,n){if(!this.enabled)return;e=Ts(e);const r=`${Date.now()}-${Math.random()*1e4}`;this.notifications.push({id:r,text:e,description:t,icon:n}),Mt().notifications.alsoPrintInDialogue&&B7(`[NOTIFICATION] ${e}`),await _i(Mt().notifications.timeOnScreen*1e3),this.deleteNotification(r)},deleteNotification(e){const t=this.findNotifications(e);t&&this.notifications.splice(this.notifications.indexOf(t),1)},findNotifications(e){return this.notifications.find(t=>t.id===e)},disableNotifications(){this.enabled=!1;for(const e in this.notifications)this.deleteNotification(e)},enableNotifications(){this.enabled=!0}}}),so=oo("inventory",{state:()=>({items:{},interactionTags:{}}),actions:{generateSaveData(){return{items:Zn(this.items),interactionTags:Zn(this.interactionTags)}},loadSaveData(e){this.items={...this.items,...e.items},this.interactionTags={...e.interactionTags}},setupItems(e){Object.keys(e).forEach(t=>{this.items[t]={amount:0,id:t}})},reset(e){this.$reset(),this.setupItems(e)},hasItem(e,t){var n;return t||(t=1),((n=this.items[e])==null?void 0:n.amount)>=t},getExistingItem(e){return this.items[e]},getItemAmount(e){var t;return((t=this.getExistingItem(e))==null?void 0:t.amount)||0},add(e){const t=this.getExistingItem(e.id);t?t.amount+=e.amount:this.items[e.id]={...e};const n=Ja(e.id).name,r=e.amount>1?`${n} x ${e.amount}`:n;Go().addNotification(`Received item: ${r}`)},enableInteraction(e){e||(e="default"),this.interactionTags[e]={blockedInteraction:!1}},disableInteraction(e){e||(e="default"),this.interactionTags[e]={blockedInteraction:!0}},onScriptStart(){const e=Mt().interactionTags;Object.keys(e).forEach(t=>{e[t].onlyInteractOutsideOfScripts&&this.disableInteraction(t)})},onScriptEnd(){const e=Mt().interactionTags;Object.keys(e).forEach(t=>{e[t].onlyInteractOutsideOfScripts&&this.enableInteraction(t)})},isInteractionTagBlocked(e){return e||(e="default"),this.interactionTags[e]?this.interactionTags[e].blockedInteraction:!1},remove(e){const t=this.getExistingItem(e.id);t&&(t.amount-=e.amount,Go().addNotification(`Lost item: ${Ja(e.id).name} x ${e.amount}`),t.amount<=0&&this.deleteItem(e.id))},deleteItem(e){this.getExistingItem(e)&&(this.items[e].amount=0)},canUseItem(e){var n;const t=Ja(e.id);return!!(t&&t.onUse&&!this.isInteractionTagBlocked(t.tag)&&!((n=Yn().currentDialog)!=null&&n.choices))},useItem(e){const t=Ja(e.id);if(e&&this.canUseItem(e)&&t){const n=t.onUse;close(),lu("onItemUsed"),n.action==="jump"?un().jumpToLabel(n.label):n.action==="run"?un().runThenGoBackToPreviousDialog(n.label,!0):At(`Unknown action ${n.action}`)}}}}),li=oo("screens",{state:()=>({layers:[{screen:"default"}],buttons:{}}),actions:{setScreen(e,t,n){return new Promise(r=>{const o=this.layers[t||0];let i;const a=(o==null?void 0:o.screen)??null;if(a===e){r();return}n&&(i=qF(n,a,r)),this.layers[t||0]={screen:e,transition:i},i||r()})},finishTransition(e){const t=this.layers[e];if(!t)At(`Tried to finish transition on layer ${e} but it doesn't exist`);else if(t.transition){const n=t.transition.resolve;delete t.transition,n()}},transitionScreen(e,t,n){return this.setScreen(e,n??0,t)},emptyLayer(e,t){return new Promise(n=>{const r=this.layers[e];if(!r){du(`Tried to empty layer ${e} but it doesn't exist`);return}if(t){const o=r.screen,i=qF(t,o,n);r.transition=i}r.screen="@empty",t||n()})},setButtons(e){const t=e.screens.screens,n=e.buttons.buttons;for(const r in n)this.buttons[r]={state:n[r].enabled};for(const r in t){const o=t[r];if(o.buttons)for(const[i,a]of o.buttons.entries())typeof a=="object"&&(n[a.id]=a,o.buttons[i]=a.id,this.buttons[a.id]={state:a.enabled})}},reset(e){this.$reset(),this.setButtons(e)},changeButton(e,t){if(!this.buttons[e]){At(`Tried to change button ${e} but it doesn't exist`);return}this.buttons[e].state=t},generateSaveData(){return{layers:Zn(this.layers).filter(e=>e).map(e=>e.screen??null),buttons:Zn(this.buttons)}},loadSaveData(e){this.layers=e.layers.map(t=>(t!==null&&typeof t!="string"&&(t=null),{screen:t})),this.buttons=uu(this.buttons,e.buttons)},isButtonDisabled(e){const t=this.getButtonState(e);return t==="hidden"||t==="greyed"||t===!1},isButtonInteractible(e){const t=this.getButtonState(e);return t?t===!0:!1},isButtonClickable(e){if(!this.isButtonInteractible(e))return!1;const n=pc(e);return!!m0(n)},getButtonState(e){const t=pc(e),n=this.buttons[e],r=t.tag||"default",o=n.state;return o===!0&&so().isInteractionTagBlocked(r)?"greyed":o},clickOnButton(e){if(!this.isButtonClickable(e))return;const t=un(),n=pc(e);lu("onButtonClicked");const r=n.action;r&&(n.actionType==="run"?t.runLabelFunction(r):t.jumpToLabel(r))}},getters:{nonEmptyLayers(e){return e.layers.filter(t=>t)},isTransitioning(e){return e.layers.some(t=>t==null?void 0:t.transition)}}});function m0(e){if(!Gt().inScript)return!0;const t=F0().clickableDuringScriptsByDefault;if(t)return e.scriptClickable!==!1;if(!t)return e.scriptClickable===!0}const wye=["screenObject","sprite"];function UF(e){return typeof e=="object"&&e!==null&&wye.includes(e._entityType)}function kye(e){return typeof e=="object"&&e!==null&&e._entityType==="sprite"}function xye(e){if(e.includes(" ")){const t=e.split(" ");return{label:t[0],args:t.slice(1)}}else return{label:e}}const Jo=oo("screenObjects",{state:()=>({tree:[],objectsList:{}}),actions:{addObject(e){e.parent?e.parent.children.push(e):this.tree.push(e),this.objectsList[e.id]=e},createObject(e){const t={_entityType:"screenObject",id:cu(),name:"Screen Object",tags:[],x:0,y:0,anchor:{x:0,y:0},width:1,height:1,opacity:1,scale:1,layer:0,children:[],...e};return this.addObject(t),t},destroyObject(e){let t=e;typeof t=="string"&&(t=this.getObject(t));for(let n=t.children.length-1;n>=0;n--)this.destroyObject(t.children[n]);if(t.parent){const n=t.parent,r=n.children.indexOf(t);r!==-1?n.children.splice(r,1):console.warn(`Could not find object ${t.id} in parent's children`)}else{const n=this.tree.indexOf(t);n!==-1?this.tree.splice(n,1):console.warn(`Object to destroy not found in store (${t.id})`)}delete this.objectsList[t.id]},createSprite(e){const t=this.createObject(e);return t._entityType="sprite",Cme(e.image).then(n=>{const r=this.getObject(t.id);r.width===1&&r.height===1&&(r.width=n.width,r.height=n.height)}),t},getObject(e){return this.objectsList[e]},isScreenObjectClickable(e){return m0(e)?!!e.onClick:!1},clickObject(e){if(this.isScreenObjectClickable(e)&&e.onClick){lu("onSpriteClicked");let t;if(typeof e.onClick=="string"){const n=xye(e.onClick);t={label:n.label,args:n.args}}else t=e.onClick;t.method=t.method??e.clickMethod??"jump",t.args=t.args??[],t.method==="run"?un().runThenGoBackToPreviousDialog(t.label,...t.args):t.method==="jump"?un().jumpToLabel(t.label,...t.args):At(`Unknown sprite click method ${e.clickMethod}`)}},generateSaveData(){return{tree:Zn(this.tree.map(e=>e.id)),objectsList:Zn(yye(this.objectsList,e=>this.screenObjectToSave(e)))}},loadSaveData(e){this.objectsList=this.loadAllObjects(e.objectsList),this.tree=e.tree.map(t=>this.objectsList[t])},reset(){this.$reset()},screenObjectToSave(e){return{...e,children:e.children.map(t=>t.id),parent:e.parent?e.parent.id:void 0}},loadAllObjects(e){for(const t of Object.values(e)){const n=t;n.parent=n.parent?e[n.parent]:void 0,n.children=n.children.map(r=>e[r])}return e},emptyLayer(e){for(let t=this.tree.length-1;t>=0;t--){const n=this.tree[t];n.layer===e&&this.destroyObject(n)}},emptyAllLayers(){for(let e=this.tree.length-1;e>=0;e--){const t=this.tree[e];this.destroyObject(t)}}}}),un=oo("vm",{state:()=>({stack:[],data:{},globalData:{},lastLabel:"main",script:{},labelStack:["main"],commandsWaitingForPlayerAnswer:[],hasJumped:!1}),actions:{generateSaveData(){return{vmSave:{lastLabel:this.lastLabel,data:W2(this.data,e=>UF(e)?{_entityType:e._entityType,id:e.id}:e)},globalData:Zn(this.globalData)}},loadSaveData(e,t){this.lastLabel=e.lastLabel,this.data=e.data,this.findEntitiesInData(this.data)},findEntitiesInData(e){zF(this.data,(t,n,r)=>{if(UF(t)){const o=Jo().getObject(t.id);o?r[n]=o:du(`Trying to reload sprite ${n} (${JSON.stringify(t)} - ${t.id}) but it does not exist.`)}})},setReturnValue(e){this.currentFrame.returnValue=e},waitForPlayerAnswer(e){this.commandsWaitingForPlayerAnswer.push(e)},popAnswerQueue(){return this.commandsWaitingForPlayerAnswer.pop()},addScopedVariable(e,t){this.currentFrame&&(this.currentFrame.scope[e]=t)},async loadScripts(e){this.readGlobalData();const t=await this.loadConfigScriptFiles(e),n=Gt().options.scripts;this.addAllScripts([...t,...n])},async loadConfigScriptFiles(e){const t=[];for(const r of e)t.push(h0(U0(r)));return(await Promise.all(t)).map((r,o)=>({fileName:e[o],code:r,id:e[o],type:"script"}))},addAllScripts(e){const t=Date.now();for(const r of e)yn.addNarratScript(r);const n=Date.now();zi.log(`scripts parsed in ${n-t} ms`)},start(){this.setStack({currentIndex:0,branchData:{branch:yn.script.main.branch},label:"main"}),this.setStack({currentIndex:0,branchData:{branch:yn.script.main.branch},label:"main"})},setLastLabel(e){this.lastLabel=e},reset(){this.$reset(),this.stack=[],this.data={},this.hasJumped=!0,this.setStack({currentIndex:0,branchData:{branch:yn.script.main.branch},label:"main"})},readGlobalData(){this.globalData=ll().globalSave.data},setScript(e){yn.script=e},overrideData(e){this.data=e},setStack(e){this.stack=[];const t=this.frameOptionsToFrame(e);this.lastLabel=e.label,this.stack.push(t)},frameOptionsToFrame(e){const t=e.branchData,n={...e,blocks:[],scope:{},returnValue:null};if(this.addBlock(n,{branchData:t,currentIndex:e.currentIndex}),e.scope&&(n.scope=e.scope),e.args&&e.branchData.args)for(const[r,o]of e.branchData.args.entries())e.args.length>r&&(n.scope[o]=e.args[r]);return n},addBlock(e,t){e.blocks.push(t)},async addAndRunBlock(e){const t=this.currentFrame;if(!t)throw new Error("No frame to add block to");return this.addBlock(t,e),await this.runBlock()},setData(e,t){const n=cd();iz(n,e,t)},addInstruction(e,t){const n=cd();az(n,e,t)},addFrame(e){if(!e.label)if(this.currentFrame)e.label=this.currentFrame.label;else throw new Error("Tried to add a new frame but no label was passed and there is no current frame label");const t=this.frameOptionsToFrame(e);this.stack.push(t)},async addAndRunFrame(e){return await this.addFrame(e),await this.runFrame()},async runFrame(){if(!this.currentFrame)throw new Error("Tried to run a frame but there is no current frame");let t;for(;this.currentBlock;){const n=await this.runBlock();if(n===o0||n===i0)return this.cleanFrame(),n;if(n===g_)return this.cleanFrame()}return this.cleanFrame(),t},cleanFrame(){const e=this.currentFrame,{returnValue:t}=e;return this.stack.splice(this.stack.length-1,1),t},async runBlock(){const e=this.currentBlock;if(!e)throw new Error("Tried to run a block but there is no current block");let t;for(;this.currentLine;){if(t=await this.runLineOnly(),lve(t))return this.cleanBlock(),t;e.currentIndex++}return this.cleanBlock(),t},cleanBlock(){if(!this.currentFrame){At("Tried to clean a block but there is no current frame");return}if(!this.currentFrame.blocks){At("Tried to clean a block but there is no current block");return}this.currentFrame.blocks.splice(this.currentFrame.blocks.length-1,1)},async runGame(){let e=await this.runFrame();for(;e===o0;){const t=this.jumpTarget;if(!t){At("Tried to jump but no target was set");return}this.hasJumped=!0,this.setStack(t),await Gt().autoSaveGame({}),e=await this.runFrame()}e!==i0&&this.stack.length===0&&this.reachedEndOfScript()},async nextLineOnly(){return this.stack.length===0||this.isBlockFinished()?!1:(this.currentBlock.currentIndex++,!0)},isBlockFinished(){return!this.currentBlock||this.currentBlock&&this.currentBlock.currentIndex>=this.currentBlock.branchData.branch.length},reachedEndOfScript(){if(Mt().gameFlow.labelToJumpOnScriptEnd&&this.lastLabel!==Mt().gameFlow.labelToJumpOnScriptEnd){this.jumpToLabel(Mt().gameFlow.labelToJumpOnScriptEnd);return}Gt().endingScript(),Gt().options.debug&&Mt().debugging.showScriptFinishedMessage},async runLineOnly(){const e=this.currentLine;if(!e){At("There is no line of script to run.");return}return Gt().startingScript(),await QF(e)},async runLabelFunction(e,...t){const n=yn.script[e];if(!n){At(`Tried to run a label that doesn't exist: ${e}`);return}const r={currentIndex:0,branchData:n,label:e,args:t};return this.addAndRunFrame(r)},runCustomFrame(e){this.addAndRunFrame(e)},async jumpToLabel(e,...t){const n=yn.script[e];if(!n){At(`Label ${e} doesn't exist. Is the file with this label added in the list of script files to load in the config?`);return}e!==this.lastLabel&&(this.hasJumped=!0),this.setLastLabel(e),this.setStack({currentIndex:0,branchData:n,args:t,label:e}),this.runGame()},async runThenGoBackToPreviousDialog(e,...t){const n=Yn(),r=n.dialog[n.dialog.length-1],o=Gt().inScript,i=await this.runLabelFunction(e,...t);return o?n.dialog.push(r):Gt().endingScript(),i}},getters:{currentFrame(e){return e.stack[e.stack.length-1]},scope(){var e;return((e=this.currentFrame)==null?void 0:e.scope)??{}},currentBlock(){const e=this.currentFrame;return e?e.blocks[e.blocks.length-1]:void 0},currentLine(){const e=this.currentBlock;if(e&&e.branchData.branch.length>e.currentIndex)return e.branchData.branch[e.currentIndex]},commandWaitingForAnswer(){if(this.commandsWaitingForPlayerAnswer.length>0)return this.commandsWaitingForPlayerAnswer[0]}}}),Bi=oo("settings",{state:()=>({baseSettings:{textSpeed:30,animateText:!0,fontSize:16},settingsSchema:{textSpeed:{type:"number",defaultValue:30,minValue:1,maxValue:100,step:5,name:"Text Speed",description:"The speed at which text plays."},animateText:{type:"boolean",defaultValue:!0,name:"Animate Text",description:"Whether or not text should animate."},fontSize:{type:"integer",defaultValue:16,minValue:8,maxValue:64,step:1,name:"Font Size",description:"The base font size for the game."}},customSettings:{},customSettingsSchema:{}}),actions:{reset(e){this.$reset(),this.setupSettings(e)},getSetting(e){if(typeof this.baseSettings[e]<"u")return this.baseSettings[e];if(typeof this.customSettings[e]<"u")return this.customSettings[e];At(`Setting ${e} does not exist.`)},getSettingSchema(e){if(typeof this.settingsSchema[e]<"u")return this.settingsSchema[e];if(typeof this.customSettingsSchema[e]<"u")return this.customSettingsSchema[e];At(`Setting ${e} does not exist.`)},getAllSettingSchemas(){return{...this.settingsSchema,...this.customSettingsSchema}},setSetting(e,t){typeof this.baseSettings[e]<"u"?this.baseSettings[e]=t:typeof this.customSettings[e]<"u"?this.customSettings[e]=t:At(`Setting ${e} does not exist.`),e==="fontSize"&&document.documentElement.style.setProperty("font-size",`${t}px`),e==="textSpeed"&&(Mt().dialogPanel.textSpeed=t),e==="animateText"&&(Mt().dialogPanel.animateText=t)},setupSettings(e){var t;if(this.setSetting("textSpeed",e.dialogPanel.textSpeed??a0),this.setSetting("animateText",e.dialogPanel.animateText??!0),this.setSetting("fontSize",e.layout.defaultFontSize??16),(t=e.settings)!=null&&t.customSettings)for(const n in e.settings.customSettings)this.addCustomSetting(n,e.settings.customSettings[n])},addCustomSetting(e,t){this.customSettings[e]=t.defaultValue,this.customSettingsSchema[e]=t},generateSaveData(){return{baseSettings:Zn(this.baseSettings),customSettings:Zn(this.customSettings)}},loadSaveData(e){for(const t in e.baseSettings)this.setSetting(t,e.baseSettings[t]);for(const t in e.customSettings)typeof this.customSettings[t]<"u"&&this.setSetting(t,e.customSettings[t])}}}),HF=new Ep;HF.setupDebugger(!1);const fa=HF.logger;function _ye(e){return jye((t,n,r)=>Bye(t,n,r),e.code,e.fileName)}function jye(e,t,n){const r={fileName:n,currentLine:0,error:(a,s)=>e(r,a,s),processCommandsFunction:D_,indentSize:0};r.indentSize=Pye(r,t);const o=Eye(r,t);r.currentLine=0,fa.log(o);const i={};for(const a of o){a.code.search(":")===-1&&r.error(a.line,"First indentation level should only be used to specify labels");const l=a.code.replace(":","").split(/ +/g),c=l[0],f=l.slice(1);a.branch||r.error(a.line,"This line should have a branch but doesn't"),i[c]={branch:D_(r,a.branch,void 0),args:f}}return i}function D_(e,t,n){const r=e.currentLine;if(!t){let a=0;return n&&(a=n.line),e.error(a,"Processing of command failed because the current branch has no lines inside"),[]}const o={processCommandsFunction:D_,parserContext:e,lines:t,currentLine:0,line:t[0]},i=[];for(;o.currentLine<t.length;){const a=t[o.currentLine];o.line=a;const s=L_(e,a,a.expression),l=yn.commands[s.command.operator];let c=l==null?void 0:l.parser;c||(c=yn.commands.text.parser),fa.log(yn.commands.text);const{newLine:f}=c(o,s);o.currentLine=f,e.currentLine=r+f,i.push(s)}return i}function L_(e,t,n){fa.log(n),typeof n[0]!="string"&&e.error(t.line,"Expression operator should be a string");const r={code:t.code,fileName:e.fileName,line:t.line,command:{staticOptions:{},commandType:n[0],operator:n[0],args:n.slice(1).map(a=>Sye(e,t,a)),options:{}}},o=n[0];if(!yn.commands[o]){const a=["else","success","failure"];!Bme(o)&&!a.includes(o)&&e.error(t.line,`Unknown command ${o}`)}return r}function Sye(e,t,n){return Array.isArray(n)?L_(e,t,n):n}function Cye(e){return e==="true"?!0:e==="false"?!1:e==="undefined"?void 0:e===null?null:isNaN(Number(e))?e:Number(e)}function $ye(e,t){t.charAt(t.length-1)===":"&&(t=t.substr(0,t.length-1));const n=Tye(t),[r]=KF(e,n);return r}function Tye(e){const t=/(["'])(?:\\\1|.)*?\1/g,n=[];let r;for(;(r=t.exec(e))!=null;)n.push(r);let o=0,i=[];for(const a of n){const s=a.index;if(s>o){const c=e.substr(o,s-o),f=WF(c);i=[...i,...f]}const l=a[0].replace(/\\/g,"");i.push(`$$"${l.substring(1,l.length-1)}`),o=s+a[0].length}return i=[...i,...WF(e.substr(o))],i.push(")"),i}function WF(e){e=e.replace(/: *$/g,"");let t=e.split(" ").filter(n=>n);return t=t.reduce((n,r)=>[...n,...r.split(/(\(|\))/g)].filter(o=>o&&o),[]),t.map(n=>Cye(n))}function KF(e,t){fa.log("===============");let n=[],r=0,o=GF(t)+r,i=R_(t)+r;for(fa.log(`Parsing expression: ${t}`),fa.log(`Parenthesis start index: ${o} - end: ${i}`);o!==-1&&i>o;){n=[...n,...t.slice(r,o)];const l=t.slice(o+1);fa.log(`Found a sub expression. Before: ${n} - After: ${l}`),r=o;const[c,f]=KF(e,l),u=r+f;n.push(c),r=u+1;const d=t.slice(r);fa.log(`Sub expression came back: ${c} - rest of string: ${d}`),o=GF(d),o!==-1&&(o+=r),i=R_(d),i!==-1&&(i+=r)}i!==-1&&fa.log("Found parenthesis end before new opening parenthesis, close this expression");const a=R_(t.slice(r))+r;if(a===-1)return e.error(e.currentLine,'Expression is not closed (missing ")" closing parenthesis)'),[n,a];const s=t.slice(r,a);return fa.log(`End of expression: ${a} - ${s}`),fa.log("==================="),n=[...n,...s],Oye(e,n),[n,a+1]}function Oye(e,t){t.length<1&&e.error(e.currentLine,"Expression is empty")}function GF(e){return e.findIndex(t=>t==="(")}function R_(e){return e.findIndex(t=>t===")")}function Eye(e,t){const n=t.split(/\r?\n|$/).map(o=>{const i=o.search(/ *\/\//g);return i!==-1?o.substr(0,i):o});return JF(e,n,0,0).lines}function JF(e,t,n,r){let o=!0,i=n;const a=[];for(;o&&!(i>=t.length);){let s=t[i];if(s.search(/^\s*$/)!==-1)i++;else{const l=Mye(e,s);if(s=s.substring(l*e.indentSize),Aye(e,l,i),l<r)o=!1;else if(l>r){(a.length===0||l-r!==1)&&e.error(i,"Wrong double indentation");const c=JF(e,t,i,l);a[a.length-1].branch=c.lines,i=c.endLine}else{const c=$ye(e,s),f={code:s,indentation:l,line:i,expression:c};a.push(f),i++,e.currentLine=i}}}return{lines:a,endLine:i}}function Aye(e,t,n){t%1!==0&&e.error(n,`Indentation level of ${t} incorrect. Expected indentation of ${e.indentSize} spaces for this file.`)}function Mye(e,t){return t.search(/[^ ]/)/e.indentSize}function Pye(e,t){const n=/\n( *)/,r=t.match(n);return!r||r.length<2?(e.error(0,"Can't detect indentation level. Make sure you indent with at least 2 spaces and consistently"),0):(fa.log(r),r[1].length)}class Nye{constructor(){Wn(this,"plugins",[]);Wn(this,"pinia");Wn(this,"script",{});Wn(this,"scripts",[]);Wn(this,"commands",{})}addCommand(t){this.commands[t.keyword]=t}addPlugin(t){if(this.plugins.push(t),t.customCommands)for(const n of t.customCommands)this.addCommand(n)}callHook(t,...n){for(const r of this.plugins)typeof r[t]=="function"&&r[t](...n)}addNarratScript(t){const n=_ye(t);this.script={...this.script,...n},this.scripts.push(t)}customStores(){const t=[];for(const n of this.plugins)if(n.customStores)for(const r in n.customStores)t.push([r,n.customStores[r](this.pinia)]);return t}addCustomSettings(){for(const t of this.plugins)if(t.customSettings)for(const n in t.customSettings)Bi().addCustomSetting(n,t.customSettings[n])}}const yn=new Nye;async function QF(e,t){var r;const n=un();try{return await v0(e,t)}catch(o){console.error(o),console.error(e),At(`Narrat script runtime error at <span class="error-filename">${e.fileName}:${e.line+1}</span>
205
+ `:""}var tye=eye,nye={dump:tye};function I_(e,t){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+t+" instead, which is now safe by default.")}}var rye=No,oye=q9,iye=K9,aye=X9,sye=Z9,lye=C_,cye=xF.load,uye=xF.loadAll,fye=nye.dump,dye=si,hye={binary:oF,float:Y9,map:W9,null:G9,pairs:aF,set:sF,timestamp:nF,bool:J9,int:Q9,merge:rF,omap:iF,seq:H9,str:U9},pye=I_("safeLoad","load"),mye=I_("safeLoadAll","loadAll"),vye=I_("safeDump","dump"),gye={Type:rye,Schema:oye,FAILSAFE_SCHEMA:iye,JSON_SCHEMA:aye,CORE_SCHEMA:sye,DEFAULT_SCHEMA:lye,load:cye,loadAll:uye,dump:fye,YAMLException:dye,types:hye,safeLoad:pye,safeLoadAll:mye,safeDump:vye};function h0(e){return new Promise((t,n)=>{const r=new XMLHttpRequest;r.onload=function(){r.status>=200&&r.status<300?t(r.responseText):(At(`Failed to load file ${e}`,r.status),n(r.status))},r.open("GET",e),r.send()})}async function lp(e){try{const t=await h0(e);let n;if(e.endsWith(".json"))n=JSON.parse(t);else if(e.endsWith(".yaml"))n=gye.load(t);else{const r=`Unsupported file type for data file ${e} (must be .json or .yaml)`;throw new Error(r)}if(!n)throw new Error(`Data loaded from ${e} is empty`);return n}catch(t){throw console.error(`Failed to load data file ${e}: ${t}`),t}}const yye=(e,t)=>{const n={};for(const r in e)n[r]=t(e[r]);return n},zF=(e,t)=>{for(const n in e){const r=e[n];t(r,n,e),typeof r=="object"&&r!==null&&zF(r,t)}},p0={};function bye(e){return p0[e]??{}}function qF(e,t,n){const r=bye(e.transition),o=e.duration??r.duration??500,i=e.delay??r.delay??0;return{...e,resolve:n,duration:o,delay:i,oldScreen:t}}const Go=oo("notifications",{state:()=>({notifications:[],enabled:!0}),actions:{async addNotification(e,t,n){if(!this.enabled)return;e=Ts(e);const r=`${Date.now()}-${Math.random()*1e4}`;this.notifications.push({id:r,text:e,description:t,icon:n}),Mt().notifications.alsoPrintInDialogue&&B9(`[NOTIFICATION] ${e}`),await _i(Mt().notifications.timeOnScreen*1e3),this.deleteNotification(r)},deleteNotification(e){const t=this.findNotifications(e);t&&this.notifications.splice(this.notifications.indexOf(t),1)},findNotifications(e){return this.notifications.find(t=>t.id===e)},disableNotifications(){this.enabled=!1;for(const e in this.notifications)this.deleteNotification(e)},enableNotifications(){this.enabled=!0}}}),so=oo("inventory",{state:()=>({items:{},interactionTags:{}}),actions:{generateSaveData(){return{items:Zn(this.items),interactionTags:Zn(this.interactionTags)}},loadSaveData(e){this.items={...this.items,...e.items},this.interactionTags={...e.interactionTags}},setupItems(e){Object.keys(e).forEach(t=>{this.items[t]={amount:0,id:t}})},reset(e){this.$reset(),this.setupItems(e)},hasItem(e,t){var n;return t||(t=1),((n=this.items[e])==null?void 0:n.amount)>=t},getExistingItem(e){return this.items[e]},getItemAmount(e){var t;return((t=this.getExistingItem(e))==null?void 0:t.amount)||0},add(e){const t=this.getExistingItem(e.id);t?t.amount+=e.amount:this.items[e.id]={...e};const n=Ja(e.id).name,r=e.amount>1?`${n} x ${e.amount}`:n;Go().addNotification(`Received item: ${r}`)},enableInteraction(e){e||(e="default"),this.interactionTags[e]={blockedInteraction:!1}},disableInteraction(e){e||(e="default"),this.interactionTags[e]={blockedInteraction:!0}},onScriptStart(){const e=Mt().interactionTags;Object.keys(e).forEach(t=>{e[t].onlyInteractOutsideOfScripts&&this.disableInteraction(t)})},onScriptEnd(){const e=Mt().interactionTags;Object.keys(e).forEach(t=>{e[t].onlyInteractOutsideOfScripts&&this.enableInteraction(t)})},isInteractionTagBlocked(e){return e||(e="default"),this.interactionTags[e]?this.interactionTags[e].blockedInteraction:!1},remove(e){const t=this.getExistingItem(e.id);t&&(t.amount-=e.amount,Go().addNotification(`Lost item: ${Ja(e.id).name} x ${e.amount}`),t.amount<=0&&this.deleteItem(e.id))},deleteItem(e){this.getExistingItem(e)&&(this.items[e].amount=0)},canUseItem(e){var n;const t=Ja(e.id);return!!(t&&t.onUse&&!this.isInteractionTagBlocked(t.tag)&&!((n=Yn().currentDialog)!=null&&n.choices))},useItem(e){const t=Ja(e.id);if(e&&this.canUseItem(e)&&t){const n=t.onUse;close(),lu("onItemUsed"),n.action==="jump"?un().jumpToLabel(n.label):n.action==="run"?un().runThenGoBackToPreviousDialog(n.label,!0):At(`Unknown action ${n.action}`)}}}}),li=oo("screens",{state:()=>({layers:[{screen:"default"}],buttons:{}}),actions:{setScreen(e,t,n){return new Promise(r=>{const o=this.layers[t||0];let i;const a=(o==null?void 0:o.screen)??null;if(a===e){r();return}n&&(i=qF(n,a,r)),this.layers[t||0]={screen:e,transition:i},i||r()})},finishTransition(e){const t=this.layers[e];if(!t)At(`Tried to finish transition on layer ${e} but it doesn't exist`);else if(t.transition){const n=t.transition.resolve;delete t.transition,n()}},transitionScreen(e,t,n){return this.setScreen(e,n??0,t)},emptyLayer(e,t){return new Promise(n=>{const r=this.layers[e];if(!r){du(`Tried to empty layer ${e} but it doesn't exist`);return}if(t){const o=r.screen,i=qF(t,o,n);r.transition=i}r.screen="@empty",t||n()})},setButtons(e){const t=e.screens.screens,n=e.buttons.buttons;for(const r in n)this.buttons[r]={state:n[r].enabled};for(const r in t){const o=t[r];if(o.buttons)for(const[i,a]of o.buttons.entries())typeof a=="object"&&(n[a.id]=a,o.buttons[i]=a.id,this.buttons[a.id]={state:a.enabled})}},reset(e){this.$reset(),this.setButtons(e)},changeButton(e,t){if(!this.buttons[e]){At(`Tried to change button ${e} but it doesn't exist`);return}this.buttons[e].state=t},generateSaveData(){return{layers:Zn(this.layers).filter(e=>e).map(e=>e.screen??null),buttons:Zn(this.buttons)}},loadSaveData(e){this.layers=e.layers.map(t=>(t!==null&&typeof t!="string"&&(t=null),{screen:t})),this.buttons=uu(this.buttons,e.buttons)},isButtonDisabled(e){const t=this.getButtonState(e);return t==="hidden"||t==="greyed"||t===!1},isButtonInteractible(e){const t=this.getButtonState(e);return t?t===!0:!1},isButtonClickable(e){if(!this.isButtonInteractible(e))return!1;const n=pc(e);return!!m0(n)},getButtonState(e){const t=pc(e),n=this.buttons[e],r=t.tag||"default",o=n.state;return o===!0&&so().isInteractionTagBlocked(r)?"greyed":o},clickOnButton(e){if(!this.isButtonClickable(e))return;const t=un(),n=pc(e);lu("onButtonClicked");const r=n.action;r&&(n.actionType==="run"?t.runLabelFunction(r):t.jumpToLabel(r))}},getters:{nonEmptyLayers(e){return e.layers.filter(t=>t)},isTransitioning(e){return e.layers.some(t=>t==null?void 0:t.transition)}}});function m0(e){if(!Gt().inScript)return!0;const t=F0().clickableDuringScriptsByDefault;if(t)return e.scriptClickable!==!1;if(!t)return e.scriptClickable===!0}const wye=["screenObject","sprite"];function UF(e){return typeof e=="object"&&e!==null&&wye.includes(e._entityType)}function kye(e){return typeof e=="object"&&e!==null&&e._entityType==="sprite"}function xye(e){if(e.includes(" ")){const t=e.split(" ");return{label:t[0],args:t.slice(1)}}else return{label:e}}const Jo=oo("screenObjects",{state:()=>({tree:[],objectsList:{}}),actions:{addObject(e){e.parent?e.parent.children.push(e):this.tree.push(e),this.objectsList[e.id]=e},createObject(e){const t={_entityType:"screenObject",id:cu(),name:"Screen Object",tags:[],x:0,y:0,anchor:{x:0,y:0},width:1,height:1,opacity:1,scale:1,layer:0,children:[],...e};return this.addObject(t),t},destroyObject(e){let t=e;typeof t=="string"&&(t=this.getObject(t));for(let n=t.children.length-1;n>=0;n--)this.destroyObject(t.children[n]);if(t.parent){const n=t.parent,r=n.children.indexOf(t);r!==-1?n.children.splice(r,1):console.warn(`Could not find object ${t.id} in parent's children`)}else{const n=this.tree.indexOf(t);n!==-1?this.tree.splice(n,1):console.warn(`Object to destroy not found in store (${t.id})`)}delete this.objectsList[t.id]},createSprite(e){const t=this.createObject(e);return t._entityType="sprite",Cme(e.image).then(n=>{const r=this.getObject(t.id);r.width===1&&r.height===1&&(r.width=n.width,r.height=n.height)}),t},getObject(e){return this.objectsList[e]},isScreenObjectClickable(e){return m0(e)?!!e.onClick:!1},clickObject(e){if(this.isScreenObjectClickable(e)&&e.onClick){lu("onSpriteClicked");let t;if(typeof e.onClick=="string"){const n=xye(e.onClick);t={label:n.label,args:n.args}}else t=e.onClick;t.method=t.method??e.clickMethod??"jump",t.args=t.args??[],t.method==="run"?un().runThenGoBackToPreviousDialog(t.label,...t.args):t.method==="jump"?un().jumpToLabel(t.label,...t.args):At(`Unknown sprite click method ${e.clickMethod}`)}},generateSaveData(){return{tree:Zn(this.tree.map(e=>e.id)),objectsList:Zn(yye(this.objectsList,e=>this.screenObjectToSave(e)))}},loadSaveData(e){this.objectsList=this.loadAllObjects(e.objectsList),this.tree=e.tree.map(t=>this.objectsList[t])},reset(){this.$reset()},screenObjectToSave(e){return{...e,children:e.children.map(t=>t.id),parent:e.parent?e.parent.id:void 0}},loadAllObjects(e){for(const t of Object.values(e)){const n=t;n.parent=n.parent?e[n.parent]:void 0,n.children=n.children.map(r=>e[r])}return e},emptyLayer(e){for(let t=this.tree.length-1;t>=0;t--){const n=this.tree[t];n.layer===e&&this.destroyObject(n)}},emptyAllLayers(){for(let e=this.tree.length-1;e>=0;e--){const t=this.tree[e];this.destroyObject(t)}}}}),un=oo("vm",{state:()=>({stack:[],data:{},globalData:{},lastLabel:"main",script:{},labelStack:["main"],commandsWaitingForPlayerAnswer:[],hasJumped:!1}),actions:{generateSaveData(){return{vmSave:{lastLabel:this.lastLabel,data:W2(this.data,e=>UF(e)?{_entityType:e._entityType,id:e.id}:e)},globalData:Zn(this.globalData)}},loadSaveData(e,t){this.lastLabel=e.lastLabel,this.data=e.data,this.findEntitiesInData(this.data)},findEntitiesInData(e){zF(this.data,(t,n,r)=>{if(UF(t)){const o=Jo().getObject(t.id);o?r[n]=o:du(`Trying to reload sprite ${n} (${JSON.stringify(t)} - ${t.id}) but it does not exist.`)}})},setReturnValue(e){this.currentFrame.returnValue=e},waitForPlayerAnswer(e){this.commandsWaitingForPlayerAnswer.push(e)},popAnswerQueue(){return this.commandsWaitingForPlayerAnswer.pop()},addScopedVariable(e,t){this.currentFrame&&(this.currentFrame.scope[e]=t)},async loadScripts(e){this.readGlobalData();const t=await this.loadConfigScriptFiles(e),n=Gt().options.scripts;this.addAllScripts([...t,...n])},async loadConfigScriptFiles(e){const t=[];for(const r of e)t.push(h0(U0(r)));return(await Promise.all(t)).map((r,o)=>({fileName:e[o],code:r,id:e[o],type:"script"}))},addAllScripts(e){const t=Date.now();for(const r of e)yn.addNarratScript(r);const n=Date.now();zi.log(`scripts parsed in ${n-t} ms`)},start(){this.setStack({currentIndex:0,branchData:{branch:yn.script.main.branch},label:"main"}),this.setStack({currentIndex:0,branchData:{branch:yn.script.main.branch},label:"main"})},setLastLabel(e){this.lastLabel=e},reset(){this.$reset(),this.stack=[],this.data={},this.hasJumped=!0,this.setStack({currentIndex:0,branchData:{branch:yn.script.main.branch},label:"main"})},readGlobalData(){this.globalData=ll().globalSave.data},setScript(e){yn.script=e},overrideData(e){this.data=e},setStack(e){this.stack=[];const t=this.frameOptionsToFrame(e);this.lastLabel=e.label,this.stack.push(t)},frameOptionsToFrame(e){const t=e.branchData,n={...e,blocks:[],scope:{},returnValue:null};if(this.addBlock(n,{branchData:t,currentIndex:e.currentIndex}),e.scope&&(n.scope=e.scope),e.args&&e.branchData.args)for(const[r,o]of e.branchData.args.entries())e.args.length>r&&(n.scope[o]=e.args[r]);return n},addBlock(e,t){e.blocks.push(t)},async addAndRunBlock(e){const t=this.currentFrame;if(!t)throw new Error("No frame to add block to");return this.addBlock(t,e),await this.runBlock()},setData(e,t){const n=cd();iz(n,e,t)},addInstruction(e,t){const n=cd();az(n,e,t)},addFrame(e){if(!e.label)if(this.currentFrame)e.label=this.currentFrame.label;else throw new Error("Tried to add a new frame but no label was passed and there is no current frame label");const t=this.frameOptionsToFrame(e);this.stack.push(t)},async addAndRunFrame(e){return await this.addFrame(e),await this.runFrame()},async runFrame(){if(!this.currentFrame)throw new Error("Tried to run a frame but there is no current frame");let t;for(;this.currentBlock;){const n=await this.runBlock();if(n===o0||n===i0)return this.cleanFrame(),n;if(n===g_)return this.cleanFrame()}return this.cleanFrame(),t},cleanFrame(){const e=this.currentFrame,{returnValue:t}=e;return this.stack.splice(this.stack.length-1,1),t},async runBlock(){const e=this.currentBlock;if(!e)throw new Error("Tried to run a block but there is no current block");let t;for(;this.currentLine;){if(t=await this.runLineOnly(),lve(t))return this.cleanBlock(),t;e.currentIndex++}return this.cleanBlock(),t},cleanBlock(){if(!this.currentFrame){At("Tried to clean a block but there is no current frame");return}if(!this.currentFrame.blocks){At("Tried to clean a block but there is no current block");return}this.currentFrame.blocks.splice(this.currentFrame.blocks.length-1,1)},async runGame(){let e=await this.runFrame();for(;e===o0;){const t=this.jumpTarget;if(!t){At("Tried to jump but no target was set");return}this.hasJumped=!0,this.setStack(t),await Gt().autoSaveGame({}),e=await this.runFrame()}e!==i0&&this.stack.length===0&&this.reachedEndOfScript()},async nextLineOnly(){return this.stack.length===0||this.isBlockFinished()?!1:(this.currentBlock.currentIndex++,!0)},isBlockFinished(){return!this.currentBlock||this.currentBlock&&this.currentBlock.currentIndex>=this.currentBlock.branchData.branch.length},reachedEndOfScript(){if(Mt().gameFlow.labelToJumpOnScriptEnd&&this.lastLabel!==Mt().gameFlow.labelToJumpOnScriptEnd){this.jumpToLabel(Mt().gameFlow.labelToJumpOnScriptEnd);return}Gt().endingScript(),Gt().options.debug&&Mt().debugging.showScriptFinishedMessage},async runLineOnly(){const e=this.currentLine;if(!e){At("There is no line of script to run.");return}return Gt().startingScript(),await QF(e)},async runLabelFunction(e,...t){const n=yn.script[e];if(!n){At(`Tried to run a label that doesn't exist: ${e}`);return}const r={currentIndex:0,branchData:n,label:e,args:t};return this.addAndRunFrame(r)},runCustomFrame(e){this.addAndRunFrame(e)},async jumpToLabel(e,...t){const n=yn.script[e];if(!n){At(`Label ${e} doesn't exist. Is the file with this label added in the list of script files to load in the config?`);return}e!==this.lastLabel&&(this.hasJumped=!0),this.setLastLabel(e),this.setStack({currentIndex:0,branchData:n,args:t,label:e}),this.runGame()},async runThenGoBackToPreviousDialog(e,...t){const n=Yn(),r=n.dialog[n.dialog.length-1],o=Gt().inScript,i=await this.runLabelFunction(e,...t);return o?n.dialog.push(r):Gt().endingScript(),i}},getters:{currentFrame(e){return e.stack[e.stack.length-1]},scope(){var e;return((e=this.currentFrame)==null?void 0:e.scope)??{}},currentBlock(){const e=this.currentFrame;return e?e.blocks[e.blocks.length-1]:void 0},currentLine(){const e=this.currentBlock;if(e&&e.branchData.branch.length>e.currentIndex)return e.branchData.branch[e.currentIndex]},commandWaitingForAnswer(){if(this.commandsWaitingForPlayerAnswer.length>0)return this.commandsWaitingForPlayerAnswer[0]}}}),Bi=oo("settings",{state:()=>({baseSettings:{textSpeed:30,animateText:!0,fontSize:16},settingsSchema:{textSpeed:{type:"number",defaultValue:30,minValue:1,maxValue:100,step:5,name:"Text Speed",description:"The speed at which text plays."},animateText:{type:"boolean",defaultValue:!0,name:"Animate Text",description:"Whether or not text should animate."},fontSize:{type:"integer",defaultValue:16,minValue:8,maxValue:64,step:1,name:"Font Size",description:"The base font size for the game."}},customSettings:{},customSettingsSchema:{}}),actions:{reset(e){this.$reset(),this.setupSettings(e)},getSetting(e){if(typeof this.baseSettings[e]<"u")return this.baseSettings[e];if(typeof this.customSettings[e]<"u")return this.customSettings[e];At(`Setting ${e} does not exist.`)},getSettingSchema(e){if(typeof this.settingsSchema[e]<"u")return this.settingsSchema[e];if(typeof this.customSettingsSchema[e]<"u")return this.customSettingsSchema[e];At(`Setting ${e} does not exist.`)},getAllSettingSchemas(){return{...this.settingsSchema,...this.customSettingsSchema}},setSetting(e,t){typeof this.baseSettings[e]<"u"?this.baseSettings[e]=t:typeof this.customSettings[e]<"u"?this.customSettings[e]=t:At(`Setting ${e} does not exist.`),e==="fontSize"&&document.documentElement.style.setProperty("font-size",`${t}px`),e==="textSpeed"&&(Mt().dialogPanel.textSpeed=t),e==="animateText"&&(Mt().dialogPanel.animateText=t)},setupSettings(e){var t;if(this.setSetting("textSpeed",e.dialogPanel.textSpeed??a0),this.setSetting("animateText",e.dialogPanel.animateText??!0),this.setSetting("fontSize",e.layout.defaultFontSize??16),(t=e.settings)!=null&&t.customSettings)for(const n in e.settings.customSettings)this.addCustomSetting(n,e.settings.customSettings[n])},addCustomSetting(e,t){this.customSettings[e]=t.defaultValue,this.customSettingsSchema[e]=t},generateSaveData(){return{baseSettings:Zn(this.baseSettings),customSettings:Zn(this.customSettings)}},loadSaveData(e){for(const t in e.baseSettings)this.setSetting(t,e.baseSettings[t]);for(const t in e.customSettings)typeof this.customSettings[t]<"u"&&this.setSetting(t,e.customSettings[t])}}}),HF=new Ep;HF.setupDebugger(!1);const fa=HF.logger;function _ye(e){return jye((t,n,r)=>Bye(t,n,r),e.code,e.fileName)}function jye(e,t,n){const r={fileName:n,currentLine:0,error:(a,s)=>e(r,a,s),processCommandsFunction:D_,indentSize:0};r.indentSize=Pye(r,t);const o=Eye(r,t);r.currentLine=0,fa.log(o);const i={};for(const a of o){a.code.search(":")===-1&&r.error(a.line,"First indentation level should only be used to specify labels");const l=a.code.replace(":","").split(/ +/g),c=l[0],f=l.slice(1);a.branch||r.error(a.line,"This line should have a branch but doesn't"),i[c]={branch:D_(r,a.branch,void 0),args:f}}return i}function D_(e,t,n){const r=e.currentLine;if(!t){let a=0;return n&&(a=n.line),e.error(a,"Processing of command failed because the current branch has no lines inside"),[]}const o={processCommandsFunction:D_,parserContext:e,lines:t,currentLine:0,line:t[0]},i=[];for(;o.currentLine<t.length;){const a=t[o.currentLine];o.line=a;const s=L_(e,a,a.expression),l=yn.commands[s.command.operator];let c=l==null?void 0:l.parser;c||(c=yn.commands.text.parser),fa.log(yn.commands.text);const{newLine:f}=c(o,s);o.currentLine=f,e.currentLine=r+f,i.push(s)}return i}function L_(e,t,n){fa.log(n),typeof n[0]!="string"&&e.error(t.line,"Expression operator should be a string");const r={code:t.code,fileName:e.fileName,line:t.line,command:{staticOptions:{},commandType:n[0],operator:n[0],args:n.slice(1).map(a=>Sye(e,t,a)),options:{}}},o=n[0];if(!yn.commands[o]){const a=["else","success","failure"];!Bme(o)&&!a.includes(o)&&e.error(t.line,`Unknown command ${o}`)}return r}function Sye(e,t,n){return Array.isArray(n)?L_(e,t,n):n}function Cye(e){return e==="true"?!0:e==="false"?!1:e==="undefined"?void 0:e===null?null:isNaN(Number(e))?e:Number(e)}function $ye(e,t){t.charAt(t.length-1)===":"&&(t=t.substr(0,t.length-1));const n=Tye(t),[r]=KF(e,n);return r}function Tye(e){const t=/(["'])(?:\\\1|.)*?\1/g,n=[];let r;for(;(r=t.exec(e))!=null;)n.push(r);let o=0,i=[];for(const a of n){const s=a.index;if(s>o){const c=e.substr(o,s-o),f=WF(c);i=[...i,...f]}const l=a[0].replace(/\\/g,"");i.push(`$$"${l.substring(1,l.length-1)}`),o=s+a[0].length}return i=[...i,...WF(e.substr(o))],i.push(")"),i}function WF(e){e=e.replace(/: *$/g,"");let t=e.split(" ").filter(n=>n);return t=t.reduce((n,r)=>[...n,...r.split(/(\(|\))/g)].filter(o=>o&&o),[]),t.map(n=>Cye(n))}function KF(e,t){fa.log("===============");let n=[],r=0,o=GF(t)+r,i=R_(t)+r;for(fa.log(`Parsing expression: ${t}`),fa.log(`Parenthesis start index: ${o} - end: ${i}`);o!==-1&&i>o;){n=[...n,...t.slice(r,o)];const l=t.slice(o+1);fa.log(`Found a sub expression. Before: ${n} - After: ${l}`),r=o;const[c,f]=KF(e,l),u=r+f;n.push(c),r=u+1;const d=t.slice(r);fa.log(`Sub expression came back: ${c} - rest of string: ${d}`),o=GF(d),o!==-1&&(o+=r),i=R_(d),i!==-1&&(i+=r)}i!==-1&&fa.log("Found parenthesis end before new opening parenthesis, close this expression");const a=R_(t.slice(r))+r;if(a===-1)return e.error(e.currentLine,'Expression is not closed (missing ")" closing parenthesis)'),[n,a];const s=t.slice(r,a);return fa.log(`End of expression: ${a} - ${s}`),fa.log("==================="),n=[...n,...s],Oye(e,n),[n,a+1]}function Oye(e,t){t.length<1&&e.error(e.currentLine,"Expression is empty")}function GF(e){return e.findIndex(t=>t==="(")}function R_(e){return e.findIndex(t=>t===")")}function Eye(e,t){const n=t.split(/\r?\n|$/).map(o=>{const i=o.search(/ *\/\//g);return i!==-1?o.substr(0,i):o});return JF(e,n,0,0).lines}function JF(e,t,n,r){let o=!0,i=n;const a=[];for(;o&&!(i>=t.length);){let s=t[i];if(s.search(/^\s*$/)!==-1)i++;else{const l=Mye(e,s);if(s=s.substring(l*e.indentSize),Aye(e,l,i),l<r)o=!1;else if(l>r){(a.length===0||l-r!==1)&&e.error(i,"Wrong double indentation");const c=JF(e,t,i,l);a[a.length-1].branch=c.lines,i=c.endLine}else{const c=$ye(e,s),f={code:s,indentation:l,line:i,expression:c};a.push(f),i++,e.currentLine=i}}}return{lines:a,endLine:i}}function Aye(e,t,n){t%1!==0&&e.error(n,`Indentation level of ${t} incorrect. Expected indentation of ${e.indentSize} spaces for this file.`)}function Mye(e,t){return t.search(/[^ ]/)/e.indentSize}function Pye(e,t){const n=/\n( *)/,r=t.match(n);return!r||r.length<2?(e.error(0,"Can't detect indentation level. Make sure you indent with at least 2 spaces and consistently"),0):(fa.log(r),r[1].length)}class Nye{constructor(){Wn(this,"plugins",[]);Wn(this,"pinia");Wn(this,"script",{});Wn(this,"scripts",[]);Wn(this,"commands",{})}addCommand(t){this.commands[t.keyword]=t}addPlugin(t){if(this.plugins.push(t),t.customCommands)for(const n of t.customCommands)this.addCommand(n)}callHook(t,...n){for(const r of this.plugins)typeof r[t]=="function"&&r[t](...n)}addNarratScript(t){const n=_ye(t);this.script={...this.script,...n},this.scripts.push(t)}customStores(){const t=[];for(const n of this.plugins)if(n.customStores)for(const r in n.customStores)t.push([r,n.customStores[r](this.pinia)]);return t}addCustomSettings(){for(const t of this.plugins)if(t.customSettings)for(const n in t.customSettings)Bi().addCustomSetting(n,t.customSettings[n])}}const yn=new Nye;async function QF(e,t){var r;const n=un();try{return await v0(e,t)}catch(o){console.error(o),console.error(e),At(`Narrat script runtime error at <span class="error-filename">${e.fileName}:${e.line+1}</span>
206
206
  <b>${o}</b>
207
207
  Script: ${e.code}
208
- Label: ${((r=n.currentFrame)==null?void 0:r.label)||"none"}`)}}async function Iye(e,t){const n=e.command,r=yn.commands[n.commandType];if(r){const o={args:[],options:{},operator:n.operator,staticOptions:n.staticOptions,code:e.code,commandType:n.commandType,fileName:e.fileName,line:e.line},i=r.argTypes;o.options={};for(const[a,s]of n.args.entries()){let l;if(L7(s))l=await v0(s,t);else if(typeof s=="string")if(s.search(I9)===0)l=Ts(s.substring(3));else if(R7(s)){const c=cd(),f=cke(c,s);if(f){const[u,d]=f;l=u[d]}else l=s}else l=s;else l=s;if(o.args.push(l),Array.isArray(i)&&i.length>a){const c=i[a];l!==null&&(o.options[c.name]=l)}}return o}else throw new Error(`${n.commandType} is not a valid command`)}async function v0(e,t){const n=await Iye(e,t),r=yn.commands[n.commandType];if(r)return await r.run(n,t);throw new Error(`${n.commandType} is not a valid command`)}async function Dye(e){lu("onPlayerAnswered");const t=un(),n=t.popAnswerQueue(),r=t.currentLine;try{if(n){const o=yn.commands[n.commandType];if(o)return await o.processPlayerAnswer(n,e)}}catch(o){console.error(o),At(`Error after player answer at ${r.fileName}:${r.line+1} (${r.code}<br /> - Error: ${o}`)}}const qa=oo("hud",{state:()=>({hudStats:{}}),actions:{setupHudStats(e){for(const t in e)this.hudStats[t]={value:e[t].startingValue}},reset(e){this.$reset(),this.setupHudStats(e)},setStat(e,t){this.hudStats[e].value=t},addStat(e,t){this.hudStats[e].value+=t},getStat(e){return this.hudStats[e]},getStatValue(e){return this.hudStats[e].value},generateSaveData(){return{hudStats:Zn(this.hudStats)}},loadSaveData(e){this.hudStats=uu(this.hudStats,e.hudStats)}}}),eo=oo("quests",{state:()=>({quests:{}}),actions:{getQuest(e){const t=this.quests[e];if(t)return t;{const n=`Quest ${e} doesn't exist!`;throw At(n),new Error(n)}},getObjective(e,t){const n=this.getQuest(e);if(!n){const i=`Quest ${e} doesn't exist!`;throw At(i),new Error(i)}const r=n.objectives[t];if(r)return r;const o=`Objective ${t} doesn't exist in quest ${e}!`;throw At(o),new Error(o)},setupQuests(e){const t=e.quests;for(const n of Object.keys(t)){const r=t[n];this.quests[n]={id:n,state:"hidden",objectives:{},extraData:{}};for(const o of Object.keys(r.objectives)){const i=r.objectives[o];this.quests[n].objectives[o]={extraData:{},id:o,state:i.hidden?"hidden":"unlocked"}}}},reset(e){this.$reset(),this.setupQuests(e)},startQuest(e){const t=this.getQuest(e);t?(t.state="unlocked",Go().addNotification(`Started quest: ${pl(e).title}`)):At(`Quest ${e} doesn't exist!`)},startObjective(e,t){const n=this.getObjective(e,t);n?(n.state="unlocked",Go().addNotification(`New quest objective: ${Tp(e,t).description}`)):At(`Objective ${t} doesn't exist in quest ${e}!`)},completeObjective(e,t){const n=this.getObjective(e,t);n?(n.state="completed",Go().addNotification(`Completed quest objective: ${Tp(e,t).description}`)):At(`Objective ${t} doesn't exist in quest ${e}!`)},completeQuest(e,t){const n=this.getQuest(e);if(n){if(n.state="completed",typeof t=="string"){n.ending=t;const r=rz(e,t);n.succeeded=r.success}else typeof t=="boolean"?n.succeeded=t:n.succeeded=!0;Go().addNotification(`Completed quest: ${pl(e).title}`)}else At(`Quest ${e} doesn't exist!`)},isQuestCompleted(e){const t=this.getQuest(e);return t?t.state==="completed":!1},isQuestSucceeded(e){const t=this.getQuest(e);return t?t.state==="completed"&&t.succeeded:!1},isQuestFailed(e){const t=this.getQuest(e);return t?t.state==="completed"&&!t.succeeded:!1},getQuestEnding(e){const t=this.getQuest(e);return t?t.ending:!1},questHasEnding(e,t){return this.getQuestEnding(e)===t},isObjectiveCompleted(e,t){const n=this.getObjective(e,t);return n?n.state==="completed":!1},isQuestStarted(e){const t=this.getQuest(e);return t&&t.state==="unlocked"},isObjectiveStarted(e,t){return this.getObjective(e,t).state==="unlocked"},removeQuest(e){delete this.quests[e]},generateSaveData(){return{quests:Zn(this.quests)}},loadSaveData(e){this.quests=e.quests}}});function B_(e,t,n,r){const o=e/n,i=t/r;return Math.min(o,i)}function cp(e,t=50,n={}){let r;const o=n.isImmediate??!1,i=n.callback??!1,a=n.maxWait;let s=Date.now(),l=[];function c(){if(a!==void 0){const u=Date.now()-s;if(u+t>=a)return a-u}return t}const f=function(...u){const d=this;return new Promise((h,p)=>{const m=function(){if(r=void 0,s=Date.now(),!o){const y=e.apply(d,u);i&&i(y),l.forEach(({resolve:w})=>w(y)),l=[]}},v=o&&r===void 0;r!==void 0&&clearTimeout(r);const g=c();if(r=setTimeout(m,g),v){const y=e.apply(d,u);return i&&i(y),h(y)}l.push({resolve:h,reject:p})})};return f.cancel=function(u){r!==void 0&&clearTimeout(r),l.forEach(({reject:d})=>d(u)),l=[]},f}const Pr=oo("rendering",{state:()=>({screenHeight:window.innerHeight,screenWidth:window.innerWidth,layoutMode:"horizontal",resizeObserver:null,containerElement:null,narratAppElement:null,dialogPanelMode:"auto"}),actions:{generateSaveData(){return{dialogPanelMode:this.dialogPanelMode}},loadSaveData(e){this.dialogPanelMode=e.dialogPanelMode},reset(){this.dialogPanelMode="auto"},updateScreenSize(e,t){this.screenHeight=t,this.screenWidth=e,e<Mt().layout.verticalLayoutThreshold?(this.layoutMode="vertical",document.querySelector("html").style.fontSize=`${Bi().baseSettings.fontSize}px`??"40px"):(this.layoutMode="horizontal",document.querySelector("html").style.fontSize=`${Bi().baseSettings.fontSize}px`??"16px")},setContainer(e){this.containerElement=e,this.resizeObserver&&this.resizeObserver.disconnect(),this.resizeObserver=new ResizeObserver(cp(()=>{this.refreshScreenSize()},100,{maxWait:200})),this.resizeObserver.observe(e),this.refreshScreenSize()},refreshScreenSize(){const e=this.containerElement;e&&this.updateScreenSize(e.clientWidth,e.clientHeight)}},getters:{gameScaleRatio(e){return B_(this.screenWidth,this.screenHeight,this.gameWidth,this.gameHeight)},overlayMode(e){return!!(Mt().dialogPanel.overlayMode&&e.layoutMode==="horizontal")},gameWidth(){const e=Mt();return this.layoutMode==="vertical"||this.overlayMode?e.layout.backgrounds.width:e.layout.backgrounds.width+H0()},gameHeight(){const e=Mt();return this.layoutMode==="vertical",e.layout.backgrounds.height},dialogWidth(){return this.layoutMode==="vertical"?this.viewportWidth:H0()},dialogHeight(){return this.layoutMode==="vertical"?this.actualGameHeight-this.gameHeight:Mt().dialogPanel.height??this.gameHeight},actualGameHeight(){let e=this.gameHeight;return this.layoutMode==="vertical"&&(e=this.screenHeight/this.gameScaleRatio),e},viewportRatio(e){if(this.layoutMode==="vertical"){const t=Mt().layout.backgrounds;return e.screenWidth/t.width}return 1},viewportHeight(e){return Mt().layout.backgrounds.height*this.viewportRatio},viewportWidth(e){return Mt().layout.backgrounds.width*this.viewportRatio},showDialog(e){if(this.dialogPanelMode==="on")return!0;if(this.dialogPanelMode==="off")return!1;if(!this.overlayMode||this.layoutMode==="vertical")return!0;const t=Gt().inScript;let n=!0;return li().isTransitioning&&Mt().dialogPanel.hideDuringTransition&&(n=!1),!Mt().dialogPanel.showAfterScriptEnd&&!t&&(n=!1),n},container(){return this.containerElement?this.containerElement:document.body},inputsContainer(){return Gt().hasCustomContainer?this.container:window},narratApp(){return this.narratAppElement?this.narratAppElement:document.body}}});class F_{constructor(){Wn(this,"listeners",{})}on(t,n){return this.listeners[t]||this.addEventToMap(t),this.listeners[t].add(n),n}off(t,n){return this.listeners[t]&&this.listeners[t].delete(n),n}once(t,n){const r=(...o)=>{this.off(t,r),n(...o)};return this.on(t,r)}emit(t,...n){this.listeners[t]&&this.listeners[t].forEach(r=>r(...n))}clear(){Object.keys(this.listeners).forEach(t=>{delete this.listeners[t]})}addEventToMap(t){this.listeners[t]=new Set}}const Qo=oo("menu",{state:()=>({menus:{},activeMenu:!1}),getters:{showSkills(){return Object.entries(Ga().skills).length>0},showInventory(){return Object.entries($p().items).length>0},showQuests(){return Object.entries(id().quests).length>0},showAchievements(){return Object.entries(ld().achievements).length>0},menuTabsToShow(e){return e.menus.menu.tabs.map(t=>{const n=Mt().menuButtons[t.id]||{};return{...t,...n}}).filter(t=>t.condition?t.condition():!0)},menu(e){return e.activeMenu?e.menus[e.activeMenu]:void 0},tab(){if(this.menu)return this.menu.tabs[this.menu.activeTab]}},actions:{setup(){},addMenu(e,t){this.menus[e]={...t,id:e}},addMenuOption(e,t){this.menus[e]||(this.menus[e]={id:e,label:e,tabs:[],activeTab:0}),this.menus[e].tabs.push(t)},setActiveTab(e){this.menu&&(this.menu.activeTab=e)},openMenu(e){this.activeMenu=e},closeMenu(){this.activeMenu=!1},toggleMenu(){this.activeMenu?this.activeMenu=!1:this.activeMenu="menu"}}}),ul=oo("achievements",{state:()=>({achievements:{}}),actions:{generateSaveData(){return{achievements:Zn(this.achievements)}},loadSaveData(e){this.achievements={...this.achievements,...Zn(e.achievements)}},setupAchievements(e){Object.keys(e).forEach(t=>{this.achievements[t]={id:t,unlocked:!1}})},reset(e){this.$reset(),this.setupAchievements(e)},hasAchievement(e){var t;return((t=this.achievements[e])==null?void 0:t.unlocked)??!1},getExistingAchievement(e){return this.achievements[e]},unlock(e){const t=this.getExistingAchievement(e);if(!t){At(`Tried to unlock achievement ${e} but it doesn't exist`);return}if(!t.unlocked){const n=new Date().toISOString();t.unlocked=!0,t.unlockTime=n}if(ld().notifyNewAchievements){const n=H2(e);Go().addNotification(`New Achievement: ${n.name}`,n.description,n.icon)}}}}),up=oo("choices-tracking-store",{state:()=>({choices:{}}),getters:{},actions:{trackChoice(e,t){this.choices[e]||(this.choices[e]={}),this.choices[e][t]=!0},hasSeenChoice(e,t){var n;return((n=this.choices[e])==null?void 0:n[t])??!1},generateSaveData(){return{choices:Zn(this.choices)}},loadSaveData(e){this.choices=Zn(e.choices)},reset(){this.$reset()}}});function Lye(){return{baseAssetsPath:"",baseDataPath:"",configPath:"data/config.json",logging:!1,debug:!1,scripts:[],container:"#game-holder"}}class Rye extends F_{}const Gt=oo("main",{state:()=>({ready:!1,playing:!1,errors:[],playTime:{start:0,previousPlaytime:0},saveSlot:"",flowState:"engine-splash",paused:!1,debugMode:!0,options:{baseAssetsPath:"",baseDataPath:"",configPath:"data/config.json",logging:!1,debug:!1,scripts:[]},loading:{step:"Loading",percentage:.1,loaded:!1},alerts:[],saving:null,listener:new Rye,inScript:!1}),actions:{async setup(){const t=Jr().scripts;xo().setMasterVolume(ha().options.volume??1),await un().loadScripts(t),Qo().setup();for(const[,n]of yn.customStores())if(n.setup){const r=n.setup();i_(r)&&await r}yn.addCustomSettings(),this.resetAllStores()},async engineLoading(){const e=$me(Jr()),t=kme(ha());if(yn.plugins){const n=[];for(const r of yn.plugins)r.loadingPromises&&n.push(Promise.all(r.loadingPromises));n.length>0&&(this.loading.step="Plugins",this.loading.percentage=.3,await Promise.all(n))}this.loading.step="Images",await e,this.loading.percentage=.7,this.loading.step="Audio",await t,yn.callHook("onAssetsLoaded"),this.loading.percentage=.95,this.loading.step="Starting...",await this.setup(),yn.callHook("onGameSetup"),this.loading.loaded=!0,this.listener.emit("gameLoaded")},async alert(e,t){return new Promise(n=>{this.alerts.push({title:e,text:t,resolver:n,id:cu()})})},closeAlert(e){const t=this.alerts.findIndex(n=>n.id===e);t!==-1&&(this.alerts[t].resolver(),this.alerts.splice(t,1))},startingScript(){so().onScriptStart(),this.inScript=!0},endingScript(){so().onScriptEnd(),this.inScript=!1},startMachine(){xo().stopAll(),lu("onPressStart"),un().start(),this.ready=!0,this.startPlaying(),yn.callHook("onGameStart"),this.setFlowState("playing")},setSaveSlot(e){this.saveSlot=e,Ame(e)},async startGame(e){if(Mt().saves.mode==="manual"){const t=m_();t&&(e=t.id)}this.setSaveSlot(e),this.loadGlobalData(),this.startMachine(),un().runGame()},async loadGame(e,t){if(Mt().saves.mode==="manual"){const n=m_();n&&(t=n.id)}if(this.setSaveSlot(t),this.startMachine(),e.saveData){this.setLoadedData(e.saveData),xo().reloadAudio(e.saveData.audio);const n=un(),r=Mt().saves.runOnReload;typeof r=="string"&&await un().runLabelFunction(r),n.jumpToLabel(e.saveData.vm.lastLabel)}},manualSave({saveName:e,withPrompt:t}){return new Promise(n=>{un().hasJumped?this.saving={name:e,withPrompt:t,resolver:n}:n()})},resetGlobalSave(){un().globalData={},ll().globalSave.data={},this.autoSaveGame({})},finishManualSave(e,t){var n;if(!this.saving){At("Trying to save but there is no saving request!");return}if(!t||!e){this.saving.resolver(),this.saving=null;return}if(this.saveData){const r=this.saveData.saveSlot;P9({...r,main:{...r.main,playTime:ku(this.playTime.start,this.playTime.previousPlaytime)},metadata:{...r.metadata,name:((n=this.saving)==null?void 0:n.name)??"Manual Save",saveDate:new Date().toISOString()}},this.saveData.global,e.slotId),this.alert("Success","Game saved!")}else At("There was no data to save!");this.saving.resolver(),this.saving=null},playerAnswered(e){Dye(e)},menuReturn(){this.reset(),this.setFlowState("menu")},createError(e){this.errors.push({text:e,type:"error"})},createWarning(e){this.errors.push({text:e,type:"warning"})},clearErrors(){this.errors=[]},setFlowState(e){this.flowState=e},pause(){this.paused=!0},unpause(){this.paused=!1},setOptions(e){this.options=e},startPlaying(){this.playing=!0,this.playTime.start=Date.now()},reset(){this.ready=!1,this.errors=[],this.paused=!1,un().reset(),xo().reset(),this.resetAllStores(),this.playing=!1,this.ready=!0,yn.plugins.forEach(e=>{e.reset&&e.reset()})},resetAllStores(){const e=li(),t=Jr();Jo().reset(),e.reset(t),Cr().reset(Ga()),qa().setupHudStats(t.common.hudStats),so().reset($p().items),ul().reset(ld().achievements),eo().reset(id()),Bi().reset(Mt()),Yn().reset(),Pr().reset(),yn.customStores().forEach(([l,c])=>{c.reset&&c.reset()}),up().reset()},generateSaveData(){return{playTime:ku(this.playTime.start,this.playTime.previousPlaytime)}},loadSaveData(e){this.playTime.previousPlaytime=e.playTime},autoSaveGame({slotId:e,name:t}){const n=e??this.saveSlot,r=ep(n),o=Dme();r&&r.saveData?o.name=r.saveData.metadata.name:o.name=t??"Auto Save",Mt().saves.mode==="manual"&&(o.name="Auto Save");const i=li(),a=Cr(),s=Yn(),l=un(),c=Gt(),f=qa(),u=xo(),d=so(),h=l.generateSaveData(),p=ul(),m={version:O9,screen:i.generateSaveData(),skills:a.generateSaveData(),dialog:s.generateSaveData(),vm:h.vmSave,main:c.generateSaveData(),hud:f.generateSaveData(),audio:u.generateSaveData(),inventory:d.generateSaveData(),quests:eo().generateSaveData(),metadata:o,settings:Bi().generateSaveData(),screenObjects:Jo().generateSaveData(),config:_o().generateSaveData(),choices:up().generateSaveData(),rendering:Pr().generateSaveData()};yn.plugins.forEach(g=>{g.save&&(m[g.pluginId]=g.save())}),yn.customStores().forEach(([g,y])=>{if(y.save){const w=y.save();w&&(m[g]=w)}});const v=ll().globalSave;v.data=h.globalData,v.achievements=p.generateSaveData(),this.saveData={saveSlot:m,global:v},P9(m,v,this.saveSlot)},loadGlobalData(){const e=ll().globalSave;ul().loadSaveData(e.achievements)},setLoadedData(e){const t=li(),n=Cr(),r=Yn(),o=un(),i=Gt(),a=qa(),s=xo(),l=so();this.loadGlobalData(),Jo().loadSaveData(e.screenObjects),_o().loadSaveData(e.config),t.loadSaveData(e.screen),n.loadSaveData(e.skills),r.loadSaveData(e.dialog),o.loadSaveData(e.vm,ll().globalSave),i.loadSaveData(e.main),a.loadSaveData(e.hud),s.loadSaveData(e.audio),l.loadSaveData(e.inventory),Pr().loadSaveData(e.rendering),Bi().loadSaveData(e.settings),up().loadSaveData(e.choices),eo().loadSaveData(e.quests),yn.plugins.forEach(c=>{c.load&&e[c.pluginId]&&c.load(e[c.pluginId])}),yn.customStores().forEach(([c,f])=>{f.load&&f.load(e[c])})},getAllStates(){return{main:this,screens:li(),skills:Cr(),dialog:Yn(),vm:un(),hud:qa(),audio:xo(),rendering:Pr(),notifications:Go(),inventory:so(),quests:eo(),sprites:Jo(),settings:Bi()}},overrideStates(e){const t=this.getAllStates();for(const n in e){const r=e[n];Object.assign(t[n],r)}},exitGame(){window.close()}},getters:{isInGame(e){return e.flowState==="playing"},totalPlayTime(e){return ku(e.playTime.start,e.playTime.previousPlaytime)},sessionPlayTime(e){return ku(e.playTime.start,0)},hasCustomContainer(e){return(e.options.container??"")!=="#game-holder"}}});function Bye(e,t,n){console.error(`Parser error: ${e.fileName}:${e.currentLine}`,n);const r=`[Parser Error] in <span class="error-filename">${e.fileName}:${t+1}</span> - <b>${n}</b>`;At(r)}function At(e,...t){const n=Gt();console.error(e,...t),e=e.replace(/[\r\n]/g,`
208
+ Label: ${((r=n.currentFrame)==null?void 0:r.label)||"none"}`)}}async function Iye(e,t){const n=e.command,r=yn.commands[n.commandType];if(r){const o={args:[],options:{},operator:n.operator,staticOptions:n.staticOptions,code:e.code,commandType:n.commandType,fileName:e.fileName,line:e.line},i=r.argTypes;o.options={};for(const[a,s]of n.args.entries()){let l;if(L9(s))l=await v0(s,t);else if(typeof s=="string")if(s.search(I7)===0)l=Ts(s.substring(3));else if(R9(s)){const c=cd(),f=cke(c,s);if(f){const[u,d]=f;l=u[d]}else l=s}else l=s;else l=s;if(o.args.push(l),Array.isArray(i)&&i.length>a){const c=i[a];l!==null&&(o.options[c.name]=l)}}return o}else throw new Error(`${n.commandType} is not a valid command`)}async function v0(e,t){const n=await Iye(e,t),r=yn.commands[n.commandType];if(r)return await r.run(n,t);throw new Error(`${n.commandType} is not a valid command`)}async function Dye(e){lu("onPlayerAnswered");const t=un(),n=t.popAnswerQueue(),r=t.currentLine;try{if(n){const o=yn.commands[n.commandType];if(o)return await o.processPlayerAnswer(n,e)}}catch(o){console.error(o),At(`Error after player answer at ${r.fileName}:${r.line+1} (${r.code}<br /> - Error: ${o}`)}}const qa=oo("hud",{state:()=>({hudStats:{}}),actions:{setupHudStats(e){for(const t in e)this.hudStats[t]={value:e[t].startingValue}},reset(e){this.$reset(),this.setupHudStats(e)},setStat(e,t){this.hudStats[e].value=t},addStat(e,t){this.hudStats[e].value+=t},getStat(e){return this.hudStats[e]},getStatValue(e){return this.hudStats[e].value},generateSaveData(){return{hudStats:Zn(this.hudStats)}},loadSaveData(e){this.hudStats=uu(this.hudStats,e.hudStats)}}}),eo=oo("quests",{state:()=>({quests:{}}),actions:{getQuest(e){const t=this.quests[e];if(t)return t;{const n=`Quest ${e} doesn't exist!`;throw At(n),new Error(n)}},getObjective(e,t){const n=this.getQuest(e);if(!n){const i=`Quest ${e} doesn't exist!`;throw At(i),new Error(i)}const r=n.objectives[t];if(r)return r;const o=`Objective ${t} doesn't exist in quest ${e}!`;throw At(o),new Error(o)},setupQuests(e){const t=e.quests;for(const n of Object.keys(t)){const r=t[n];this.quests[n]={id:n,state:"hidden",objectives:{},extraData:{}};for(const o of Object.keys(r.objectives)){const i=r.objectives[o];this.quests[n].objectives[o]={extraData:{},id:o,state:i.hidden?"hidden":"unlocked"}}}},reset(e){this.$reset(),this.setupQuests(e)},startQuest(e){const t=this.getQuest(e);t?(t.state="unlocked",Go().addNotification(`Started quest: ${pl(e).title}`)):At(`Quest ${e} doesn't exist!`)},startObjective(e,t){const n=this.getObjective(e,t);n?(n.state="unlocked",Go().addNotification(`New quest objective: ${Tp(e,t).description}`)):At(`Objective ${t} doesn't exist in quest ${e}!`)},completeObjective(e,t){const n=this.getObjective(e,t);n?(n.state="completed",Go().addNotification(`Completed quest objective: ${Tp(e,t).description}`)):At(`Objective ${t} doesn't exist in quest ${e}!`)},completeQuest(e,t){const n=this.getQuest(e);if(n){if(n.state="completed",typeof t=="string"){n.ending=t;const r=rz(e,t);n.succeeded=r.success}else typeof t=="boolean"?n.succeeded=t:n.succeeded=!0;Go().addNotification(`Completed quest: ${pl(e).title}`)}else At(`Quest ${e} doesn't exist!`)},isQuestCompleted(e){const t=this.getQuest(e);return t?t.state==="completed":!1},isQuestSucceeded(e){const t=this.getQuest(e);return t?t.state==="completed"&&t.succeeded:!1},isQuestFailed(e){const t=this.getQuest(e);return t?t.state==="completed"&&!t.succeeded:!1},getQuestEnding(e){const t=this.getQuest(e);return t?t.ending:!1},questHasEnding(e,t){return this.getQuestEnding(e)===t},isObjectiveCompleted(e,t){const n=this.getObjective(e,t);return n?n.state==="completed":!1},isQuestStarted(e){const t=this.getQuest(e);return t&&t.state==="unlocked"},isObjectiveStarted(e,t){return this.getObjective(e,t).state==="unlocked"},removeQuest(e){delete this.quests[e]},generateSaveData(){return{quests:Zn(this.quests)}},loadSaveData(e){this.quests=e.quests}}});function B_(e,t,n,r){const o=e/n,i=t/r;return Math.min(o,i)}function cp(e,t=50,n={}){let r;const o=n.isImmediate??!1,i=n.callback??!1,a=n.maxWait;let s=Date.now(),l=[];function c(){if(a!==void 0){const u=Date.now()-s;if(u+t>=a)return a-u}return t}const f=function(...u){const d=this;return new Promise((h,p)=>{const m=function(){if(r=void 0,s=Date.now(),!o){const y=e.apply(d,u);i&&i(y),l.forEach(({resolve:w})=>w(y)),l=[]}},v=o&&r===void 0;r!==void 0&&clearTimeout(r);const g=c();if(r=setTimeout(m,g),v){const y=e.apply(d,u);return i&&i(y),h(y)}l.push({resolve:h,reject:p})})};return f.cancel=function(u){r!==void 0&&clearTimeout(r),l.forEach(({reject:d})=>d(u)),l=[]},f}const Pr=oo("rendering",{state:()=>({screenHeight:window.innerHeight,screenWidth:window.innerWidth,layoutMode:"horizontal",resizeObserver:null,containerElement:null,narratAppElement:null,dialogPanelMode:"auto"}),actions:{generateSaveData(){return{dialogPanelMode:this.dialogPanelMode}},loadSaveData(e){this.dialogPanelMode=e.dialogPanelMode},reset(){this.dialogPanelMode="auto"},updateScreenSize(e,t){this.screenHeight=t,this.screenWidth=e,e<Mt().layout.verticalLayoutThreshold?(this.layoutMode="vertical",document.querySelector("html").style.fontSize=`${Bi().baseSettings.fontSize}px`??"40px"):(this.layoutMode="horizontal",document.querySelector("html").style.fontSize=`${Bi().baseSettings.fontSize}px`??"16px")},setContainer(e){this.containerElement=e,this.resizeObserver&&this.resizeObserver.disconnect(),this.resizeObserver=new ResizeObserver(cp(()=>{this.refreshScreenSize()},100,{maxWait:200})),this.resizeObserver.observe(e),this.refreshScreenSize()},refreshScreenSize(){const e=this.containerElement;e&&this.updateScreenSize(e.clientWidth,e.clientHeight)}},getters:{gameScaleRatio(e){return B_(this.screenWidth,this.screenHeight,this.gameWidth,this.gameHeight)},overlayMode(e){return!!(Mt().dialogPanel.overlayMode&&e.layoutMode==="horizontal")},gameWidth(){const e=Mt();return this.layoutMode==="vertical"||this.overlayMode?e.layout.backgrounds.width:e.layout.backgrounds.width+H0()},gameHeight(){const e=Mt();return this.layoutMode==="vertical",e.layout.backgrounds.height},dialogWidth(){return this.layoutMode==="vertical"?this.viewportWidth:H0()},dialogHeight(){return this.layoutMode==="vertical"?this.actualGameHeight-this.gameHeight:Mt().dialogPanel.height??this.gameHeight},actualGameHeight(){let e=this.gameHeight;return this.layoutMode==="vertical"&&(e=this.screenHeight/this.gameScaleRatio),e},viewportRatio(e){if(this.layoutMode==="vertical"){const t=Mt().layout.backgrounds;return e.screenWidth/t.width}return 1},viewportHeight(e){return Mt().layout.backgrounds.height*this.viewportRatio},viewportWidth(e){return Mt().layout.backgrounds.width*this.viewportRatio},showDialog(e){if(this.dialogPanelMode==="on")return!0;if(this.dialogPanelMode==="off")return!1;if(!this.overlayMode||this.layoutMode==="vertical")return!0;const t=Gt().inScript;let n=!0;return li().isTransitioning&&Mt().dialogPanel.hideDuringTransition&&(n=!1),!Mt().dialogPanel.showAfterScriptEnd&&!t&&(n=!1),n},container(){return this.containerElement?this.containerElement:document.body},inputsContainer(){return Gt().hasCustomContainer?this.container:window},narratApp(){return this.narratAppElement?this.narratAppElement:document.body}}});class F_{constructor(){Wn(this,"listeners",{})}on(t,n){return this.listeners[t]||this.addEventToMap(t),this.listeners[t].add(n),n}off(t,n){return this.listeners[t]&&this.listeners[t].delete(n),n}once(t,n){const r=(...o)=>{this.off(t,r),n(...o)};return this.on(t,r)}emit(t,...n){this.listeners[t]&&this.listeners[t].forEach(r=>r(...n))}clear(){Object.keys(this.listeners).forEach(t=>{delete this.listeners[t]})}addEventToMap(t){this.listeners[t]=new Set}}const Qo=oo("menu",{state:()=>({menus:{},activeMenu:!1}),getters:{showSkills(){return Object.entries(Ga().skills).length>0},showInventory(){return Object.entries($p().items).length>0},showQuests(){return Object.entries(id().quests).length>0},showAchievements(){return Object.entries(ld().achievements).length>0},menuTabsToShow(e){return e.menus.menu.tabs.map(t=>{const n=Mt().menuButtons[t.id]||{};return{...t,...n}}).filter(t=>t.condition?t.condition():!0)},menu(e){return e.activeMenu?e.menus[e.activeMenu]:void 0},tab(){if(this.menu)return this.menu.tabs[this.menu.activeTab]}},actions:{setup(){},addMenu(e,t){this.menus[e]={...t,id:e}},addMenuOption(e,t){this.menus[e]||(this.menus[e]={id:e,label:e,tabs:[],activeTab:0}),this.menus[e].tabs.push(t)},setActiveTab(e){this.menu&&(this.menu.activeTab=e)},openMenu(e){this.activeMenu=e},closeMenu(){this.activeMenu=!1},toggleMenu(){this.activeMenu?this.activeMenu=!1:this.activeMenu="menu"}}}),ul=oo("achievements",{state:()=>({achievements:{}}),actions:{generateSaveData(){return{achievements:Zn(this.achievements)}},loadSaveData(e){this.achievements={...this.achievements,...Zn(e.achievements)}},setupAchievements(e){Object.keys(e).forEach(t=>{this.achievements[t]={id:t,unlocked:!1}})},reset(e){this.$reset(),this.setupAchievements(e)},hasAchievement(e){var t;return((t=this.achievements[e])==null?void 0:t.unlocked)??!1},getExistingAchievement(e){return this.achievements[e]},unlock(e){const t=this.getExistingAchievement(e);if(!t){At(`Tried to unlock achievement ${e} but it doesn't exist`);return}if(!t.unlocked){const n=new Date().toISOString();t.unlocked=!0,t.unlockTime=n}if(ld().notifyNewAchievements){const n=H2(e);Go().addNotification(`New Achievement: ${n.name}`,n.description,n.icon)}}}}),up=oo("choices-tracking-store",{state:()=>({choices:{}}),getters:{},actions:{trackChoice(e,t){this.choices[e]||(this.choices[e]={}),this.choices[e][t]=!0},hasSeenChoice(e,t){var n;return((n=this.choices[e])==null?void 0:n[t])??!1},generateSaveData(){return{choices:Zn(this.choices)}},loadSaveData(e){this.choices=Zn(e.choices)},reset(){this.$reset()}}});function Lye(){return{baseAssetsPath:"",baseDataPath:"",configPath:"data/config.json",logging:!1,debug:!1,scripts:[],container:"#game-holder"}}class Rye extends F_{}const Gt=oo("main",{state:()=>({ready:!1,playing:!1,errors:[],playTime:{start:0,previousPlaytime:0},saveSlot:"",flowState:"engine-splash",paused:!1,debugMode:!0,options:{baseAssetsPath:"",baseDataPath:"",configPath:"data/config.json",logging:!1,debug:!1,scripts:[]},loading:{step:"Loading",percentage:.1,loaded:!1},alerts:[],saving:null,listener:new Rye,inScript:!1}),actions:{async setup(){const t=Jr().scripts;xo().setMasterVolume(ha().options.volume??1),await un().loadScripts(t),Qo().setup();for(const[,n]of yn.customStores())if(n.setup){const r=n.setup();i_(r)&&await r}yn.addCustomSettings(),this.resetAllStores()},async engineLoading(){const e=$me(Jr()),t=kme(ha());if(yn.plugins){const n=[];for(const r of yn.plugins)r.loadingPromises&&n.push(Promise.all(r.loadingPromises));n.length>0&&(this.loading.step="Plugins",this.loading.percentage=.3,await Promise.all(n))}this.loading.step="Images",await e,this.loading.percentage=.7,this.loading.step="Audio",await t,yn.callHook("onAssetsLoaded"),this.loading.percentage=.95,this.loading.step="Starting...",await this.setup(),yn.callHook("onGameSetup"),this.loading.loaded=!0,this.listener.emit("gameLoaded")},async alert(e,t){return new Promise(n=>{this.alerts.push({title:e,text:t,resolver:n,id:cu()})})},closeAlert(e){const t=this.alerts.findIndex(n=>n.id===e);t!==-1&&(this.alerts[t].resolver(),this.alerts.splice(t,1))},startingScript(){so().onScriptStart(),this.inScript=!0},endingScript(){so().onScriptEnd(),this.inScript=!1},startMachine(){xo().stopAll(),lu("onPressStart"),un().start(),this.ready=!0,this.startPlaying(),yn.callHook("onGameStart"),this.setFlowState("playing")},setSaveSlot(e){this.saveSlot=e,Ame(e)},async startGame(e){if(Mt().saves.mode==="manual"){const t=m_();t&&(e=t.id)}this.setSaveSlot(e),this.loadGlobalData(),this.startMachine(),un().runGame()},async loadGame(e,t){if(Mt().saves.mode==="manual"){const n=m_();n&&(t=n.id)}if(this.setSaveSlot(t),this.startMachine(),e.saveData){this.setLoadedData(e.saveData),xo().reloadAudio(e.saveData.audio);const n=un(),r=Mt().saves.runOnReload;typeof r=="string"&&await un().runLabelFunction(r),n.jumpToLabel(e.saveData.vm.lastLabel)}},manualSave({saveName:e,withPrompt:t}){return new Promise(n=>{un().hasJumped?this.saving={name:e,withPrompt:t,resolver:n}:n()})},resetGlobalSave(){un().globalData={},ll().globalSave.data={},this.autoSaveGame({})},finishManualSave(e,t){var n;if(!this.saving){At("Trying to save but there is no saving request!");return}if(!t||!e){this.saving.resolver(),this.saving=null;return}if(this.saveData){const r=this.saveData.saveSlot;P7({...r,main:{...r.main,playTime:ku(this.playTime.start,this.playTime.previousPlaytime)},metadata:{...r.metadata,name:((n=this.saving)==null?void 0:n.name)??"Manual Save",saveDate:new Date().toISOString()}},this.saveData.global,e.slotId),this.alert("Success","Game saved!")}else At("There was no data to save!");this.saving.resolver(),this.saving=null},playerAnswered(e){Dye(e)},menuReturn(){this.reset(),this.setFlowState("menu")},createError(e){this.errors.push({text:e,type:"error"})},createWarning(e){this.errors.push({text:e,type:"warning"})},clearErrors(){this.errors=[]},setFlowState(e){this.flowState=e},pause(){this.paused=!0},unpause(){this.paused=!1},setOptions(e){this.options=e},startPlaying(){this.playing=!0,this.playTime.start=Date.now()},reset(){this.ready=!1,this.errors=[],this.paused=!1,un().reset(),xo().reset(),this.resetAllStores(),this.playing=!1,this.ready=!0,yn.plugins.forEach(e=>{e.reset&&e.reset()})},resetAllStores(){const e=li(),t=Jr();Jo().reset(),e.reset(t),Cr().reset(Ga()),qa().setupHudStats(t.common.hudStats),so().reset($p().items),ul().reset(ld().achievements),eo().reset(id()),Bi().reset(Mt()),Yn().reset(),Pr().reset(),yn.customStores().forEach(([l,c])=>{c.reset&&c.reset()}),up().reset()},generateSaveData(){return{playTime:ku(this.playTime.start,this.playTime.previousPlaytime)}},loadSaveData(e){this.playTime.previousPlaytime=e.playTime},autoSaveGame({slotId:e,name:t}){const n=e??this.saveSlot,r=ep(n),o=Dme();r&&r.saveData?o.name=r.saveData.metadata.name:o.name=t??"Auto Save",Mt().saves.mode==="manual"&&(o.name="Auto Save");const i=li(),a=Cr(),s=Yn(),l=un(),c=Gt(),f=qa(),u=xo(),d=so(),h=l.generateSaveData(),p=ul(),m={version:O7,screen:i.generateSaveData(),skills:a.generateSaveData(),dialog:s.generateSaveData(),vm:h.vmSave,main:c.generateSaveData(),hud:f.generateSaveData(),audio:u.generateSaveData(),inventory:d.generateSaveData(),quests:eo().generateSaveData(),metadata:o,settings:Bi().generateSaveData(),screenObjects:Jo().generateSaveData(),config:_o().generateSaveData(),choices:up().generateSaveData(),rendering:Pr().generateSaveData()};yn.plugins.forEach(g=>{g.save&&(m[g.pluginId]=g.save())}),yn.customStores().forEach(([g,y])=>{if(y.save){const w=y.save();w&&(m[g]=w)}});const v=ll().globalSave;v.data=h.globalData,v.achievements=p.generateSaveData(),this.saveData={saveSlot:m,global:v},P7(m,v,this.saveSlot)},loadGlobalData(){const e=ll().globalSave;ul().loadSaveData(e.achievements)},setLoadedData(e){const t=li(),n=Cr(),r=Yn(),o=un(),i=Gt(),a=qa(),s=xo(),l=so();this.loadGlobalData(),Jo().loadSaveData(e.screenObjects),_o().loadSaveData(e.config),t.loadSaveData(e.screen),n.loadSaveData(e.skills),r.loadSaveData(e.dialog),o.loadSaveData(e.vm,ll().globalSave),i.loadSaveData(e.main),a.loadSaveData(e.hud),s.loadSaveData(e.audio),l.loadSaveData(e.inventory),Pr().loadSaveData(e.rendering),Bi().loadSaveData(e.settings),up().loadSaveData(e.choices),eo().loadSaveData(e.quests),yn.plugins.forEach(c=>{c.load&&e[c.pluginId]&&c.load(e[c.pluginId])}),yn.customStores().forEach(([c,f])=>{f.load&&f.load(e[c])})},getAllStates(){return{main:this,screens:li(),skills:Cr(),dialog:Yn(),vm:un(),hud:qa(),audio:xo(),rendering:Pr(),notifications:Go(),inventory:so(),quests:eo(),sprites:Jo(),settings:Bi()}},overrideStates(e){const t=this.getAllStates();for(const n in e){const r=e[n];Object.assign(t[n],r)}},exitGame(){window.close()}},getters:{isInGame(e){return e.flowState==="playing"},totalPlayTime(e){return ku(e.playTime.start,e.playTime.previousPlaytime)},sessionPlayTime(e){return ku(e.playTime.start,0)},hasCustomContainer(e){return(e.options.container??"")!=="#game-holder"}}});function Bye(e,t,n){console.error(`Parser error: ${e.fileName}:${e.currentLine}`,n);const r=`[Parser Error] in <span class="error-filename">${e.fileName}:${t+1}</span> - <b>${n}</b>`;At(r)}function At(e,...t){const n=Gt();console.error(e,...t),e=e.replace(/[\r\n]/g,`
209
209
  <br />`),n.createError(`❌ ${e}`)}function du(e,...t){const n=Gt();console.warn(e,...t),e=e.replace(/[\r\n]/g,`
210
- <br />`),n.createWarning(`⚠️ ${e}`)}const g0=B.Type.Object({screens:B.Type.Union([B.Type.String(),f7]),buttons:B.Type.Optional(B.Type.Union([B.Type.String(),l7])),skills:B.Type.Optional(B.Type.Union([B.Type.String(),m7])),skillChecks:B.Type.Optional(B.Type.Union([B.Type.String(),C7])),scripts:B.Type.Optional(B.Type.Union([B.Type.String(),Z9])),audio:B.Type.Union([B.Type.String(),R9]),tooltips:B.Type.Optional(B.Type.Union([B.Type.String(),w7])),items:B.Type.Optional(B.Type.Union([B.Type.String(),r7])),achievements:B.Type.Optional(B.Type.Union([B.Type.String(),j7])),quests:B.Type.Optional(B.Type.Union([B.Type.String(),i7])),characters:B.Type.Union([B.Type.String(),g7]),choices:B.Type.Optional(B.Type.Union([B.Type.String(),O7])),animations:B.Type.Optional(B.Type.Union([B.Type.String(),M7]))}),V_=B.Type.Intersect([g0,B.Type.Object({common:e7})]),z_=B.Type.Intersect([g0,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:F9,settings:B.Type.Optional(z9),gameFlow:B.Type.Optional(B.Type.Object({labelToJumpOnScriptEnd:B.Type.Optional(B.Type.String())})),dialogPanel:B.Type.Optional(U9),splashScreens:B.Type.Optional(H9),notifications:B.Type.Optional(W9),hudStats:K9,interactionTags:B.Type.Optional(G9),transitions:B.Type.Optional(J9),menuButtons:B.Type.Optional(Q9),debugging:B.Type.Optional(Y9),saves:B.Type.Optional(X9)})]),q_=B.Type.Union([V_,z_]);function y0(e){return"common"in e}var U_={exports:{}},YF={},Ua={},Yf={},fp={},Fn={},dp={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class n extends t{constructor(y){if(super(),!e.IDENTIFIER.test(y))throw new Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=n;class r extends t{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((w,k)=>`${w}${k}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((w,k)=>(k instanceof n&&(w[k.str]=(w[k.str]||0)+1),w),{})}}e._Code=r,e.nil=new r("");function o(g,...y){const w=[g[0]];let k=0;for(;k<y.length;)s(w,y[k]),w.push(g[++k]);return new r(w)}e._=o;const i=new r("+");function a(g,...y){const w=[h(g[0])];let k=0;for(;k<y.length;)w.push(i),s(w,y[k]),w.push(i,h(g[++k]));return l(w),new r(w)}e.str=a;function s(g,y){y instanceof r?g.push(...y._items):y instanceof n?g.push(y):g.push(u(y))}e.addCodeArg=s;function l(g){let y=1;for(;y<g.length-1;){if(g[y]===i){const w=c(g[y-1],g[y+1]);if(w!==void 0){g.splice(y-1,3,w);continue}g[y++]="+"}y++}}function c(g,y){if(y==='""')return g;if(g==='""')return y;if(typeof g=="string")return y instanceof n||g[g.length-1]!=='"'?void 0:typeof y!="string"?`${g.slice(0,-1)}${y}"`:y[0]==='"'?g.slice(0,-1)+y.slice(1):void 0;if(typeof y=="string"&&y[0]==='"'&&!(g instanceof n))return`"${g}${y.slice(1)}`}function f(g,y){return y.emptyStr()?g:g.emptyStr()?y:a`${g}${y}`}e.strConcat=f;function u(g){return typeof g=="number"||typeof g=="boolean"||g===null?g:h(Array.isArray(g)?g.join(","):g)}function d(g){return new r(h(g))}e.stringify=d;function h(g){return JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}e.safeStringify=h;function p(g){return typeof g=="string"&&e.IDENTIFIER.test(g)?new r(`.${g}`):o`[${g}]`}e.getProperty=p;function m(g){if(typeof g=="string"&&e.IDENTIFIER.test(g))return new r(`${g}`);throw new Error(`CodeGen: invalid export name: ${g}, use explicit $id name mapping`)}e.getEsmExportName=m;function v(g){return new r(g.toString())}e.regexpCode=v})(dp);var H_={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;const t=dp;class n extends Error{constructor(c){super(`CodeGen: "code" for ${c} not defined`),this.value=c.value}}var r;(function(l){l[l.Started=0]="Started",l[l.Completed=1]="Completed"})(r=e.UsedValueState||(e.UsedValueState={})),e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};class o{constructor({prefixes:c,parent:f}={}){this._names={},this._prefixes=c,this._parent=f}toName(c){return c instanceof t.Name?c:this.name(c)}name(c){return new t.Name(this._newName(c))}_newName(c){const f=this._names[c]||this._nameGroup(c);return`${c}${f.index++}`}_nameGroup(c){var f,u;if(!((u=(f=this._parent)===null||f===void 0?void 0:f._prefixes)===null||u===void 0)&&u.has(c)||this._prefixes&&!this._prefixes.has(c))throw new Error(`CodeGen: prefix "${c}" is not allowed in this scope`);return this._names[c]={prefix:c,index:0}}}e.Scope=o;class i extends t.Name{constructor(c,f){super(f),this.prefix=c}setValue(c,{property:f,itemIndex:u}){this.value=c,this.scopePath=(0,t._)`.${new t.Name(f)}[${u}]`}}e.ValueScopeName=i;const a=(0,t._)`\n`;class s extends o{constructor(c){super(c),this._values={},this._scope=c.scope,this.opts={...c,_n:c.lines?a:t.nil}}get(){return this._scope}name(c){return new i(c,this._newName(c))}value(c,f){var u;if(f.ref===void 0)throw new Error("CodeGen: ref must be passed in value");const d=this.toName(c),{prefix:h}=d,p=(u=f.key)!==null&&u!==void 0?u:f.ref;let m=this._values[h];if(m){const y=m.get(p);if(y)return y}else m=this._values[h]=new Map;m.set(p,d);const v=this._scope[h]||(this._scope[h]=[]),g=v.length;return v[g]=f.ref,d.setValue(f,{property:h,itemIndex:g}),d}getValue(c,f){const u=this._values[c];if(u)return u.get(f)}scopeRefs(c,f=this._values){return this._reduceValues(f,u=>{if(u.scopePath===void 0)throw new Error(`CodeGen: name "${u}" has no value`);return(0,t._)`${c}${u.scopePath}`})}scopeCode(c=this._values,f,u){return this._reduceValues(c,d=>{if(d.value===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return d.value.code},f,u)}_reduceValues(c,f,u={},d){let h=t.nil;for(const p in c){const m=c[p];if(!m)continue;const v=u[p]=u[p]||new Map;m.forEach(g=>{if(v.has(g))return;v.set(g,r.Started);let y=f(g);if(y){const w=this.opts.es5?e.varKinds.var:e.varKinds.const;h=(0,t._)`${h}${w} ${g} = ${y};${this.opts._n}`}else if(y=d==null?void 0:d(g))h=(0,t._)`${h}${y}${this.opts._n}`;else throw new n(g);v.set(g,r.Completed)})}return h}}e.ValueScope=s})(H_),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;const t=dp,n=H_;var r=dp;Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var o=H_;Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return o.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return o.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return o.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return o.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class i{optimizeNodes(){return this}optimizeNames(C,_){return this}}class a extends i{constructor(C,_,R){super(),this.varKind=C,this.name=_,this.rhs=R}render({es5:C,_n:_}){const R=C?n.varKinds.var:this.varKind,Z=this.rhs===void 0?"":` = ${this.rhs}`;return`${R} ${this.name}${Z};`+_}optimizeNames(C,_){if(C[this.name.str])return this.rhs&&(this.rhs=N(this.rhs,C,_)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class s extends i{constructor(C,_,R){super(),this.lhs=C,this.rhs=_,this.sideEffects=R}render({_n:C}){return`${this.lhs} = ${this.rhs};`+C}optimizeNames(C,_){if(!(this.lhs instanceof t.Name&&!C[this.lhs.str]&&!this.sideEffects))return this.rhs=N(this.rhs,C,_),this}get names(){const C=this.lhs instanceof t.Name?{}:{...this.lhs.names};return H(C,this.rhs)}}class l extends s{constructor(C,_,R,Z){super(C,R,Z),this.op=_}render({_n:C}){return`${this.lhs} ${this.op}= ${this.rhs};`+C}}class c extends i{constructor(C){super(),this.label=C,this.names={}}render({_n:C}){return`${this.label}:`+C}}class f extends i{constructor(C){super(),this.label=C,this.names={}}render({_n:C}){return`break${this.label?` ${this.label}`:""};`+C}}class u extends i{constructor(C){super(),this.error=C}render({_n:C}){return`throw ${this.error};`+C}get names(){return this.error.names}}class d extends i{constructor(C){super(),this.code=C}render({_n:C}){return`${this.code};`+C}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(C,_){return this.code=N(this.code,C,_),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class h extends i{constructor(C=[]){super(),this.nodes=C}render(C){return this.nodes.reduce((_,R)=>_+R.render(C),"")}optimizeNodes(){const{nodes:C}=this;let _=C.length;for(;_--;){const R=C[_].optimizeNodes();Array.isArray(R)?C.splice(_,1,...R):R?C[_]=R:C.splice(_,1)}return C.length>0?this:void 0}optimizeNames(C,_){const{nodes:R}=this;let Z=R.length;for(;Z--;){const pe=R[Z];pe.optimizeNames(C,_)||(W(C,pe.names),R.splice(Z,1))}return R.length>0?this:void 0}get names(){return this.nodes.reduce((C,_)=>F(C,_.names),{})}}class p extends h{render(C){return"{"+C._n+super.render(C)+"}"+C._n}}class m extends h{}class v extends p{}v.kind="else";class g extends p{constructor(C,_){super(_),this.condition=C}render(C){let _=`if(${this.condition})`+super.render(C);return this.else&&(_+="else "+this.else.render(C)),_}optimizeNodes(){super.optimizeNodes();const C=this.condition;if(C===!0)return this.nodes;let _=this.else;if(_){const R=_.optimizeNodes();_=this.else=Array.isArray(R)?new v(R):R}if(_)return C===!1?_ instanceof g?_:_.nodes:this.nodes.length?this:new g(ee(C),_ instanceof g?[_]:_.nodes);if(!(C===!1||!this.nodes.length))return this}optimizeNames(C,_){var R;if(this.else=(R=this.else)===null||R===void 0?void 0:R.optimizeNames(C,_),!!(super.optimizeNames(C,_)||this.else))return this.condition=N(this.condition,C,_),this}get names(){const C=super.names;return H(C,this.condition),this.else&&F(C,this.else.names),C}}g.kind="if";class y extends p{}y.kind="for";class w extends y{constructor(C){super(),this.iteration=C}render(C){return`for(${this.iteration})`+super.render(C)}optimizeNames(C,_){if(super.optimizeNames(C,_))return this.iteration=N(this.iteration,C,_),this}get names(){return F(super.names,this.iteration.names)}}class k extends y{constructor(C,_,R,Z){super(),this.varKind=C,this.name=_,this.from=R,this.to=Z}render(C){const _=C.es5?n.varKinds.var:this.varKind,{name:R,from:Z,to:pe}=this;return`for(${_} ${R}=${Z}; ${R}<${pe}; ${R}++)`+super.render(C)}get names(){const C=H(super.names,this.from);return H(C,this.to)}}class $ extends y{constructor(C,_,R,Z){super(),this.loop=C,this.varKind=_,this.name=R,this.iterable=Z}render(C){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(C)}optimizeNames(C,_){if(super.optimizeNames(C,_))return this.iterable=N(this.iterable,C,_),this}get names(){return F(super.names,this.iterable.names)}}class j extends p{constructor(C,_,R){super(),this.name=C,this.args=_,this.async=R}render(C){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(C)}}j.kind="func";class E extends h{render(C){return"return "+super.render(C)}}E.kind="return";class I extends p{render(C){let _="try"+super.render(C);return this.catch&&(_+=this.catch.render(C)),this.finally&&(_+=this.finally.render(C)),_}optimizeNodes(){var C,_;return super.optimizeNodes(),(C=this.catch)===null||C===void 0||C.optimizeNodes(),(_=this.finally)===null||_===void 0||_.optimizeNodes(),this}optimizeNames(C,_){var R,Z;return super.optimizeNames(C,_),(R=this.catch)===null||R===void 0||R.optimizeNames(C,_),(Z=this.finally)===null||Z===void 0||Z.optimizeNames(C,_),this}get names(){const C=super.names;return this.catch&&F(C,this.catch.names),this.finally&&F(C,this.finally.names),C}}class D extends p{constructor(C){super(),this.error=C}render(C){return`catch(${this.error})`+super.render(C)}}D.kind="catch";class L extends p{render(C){return"finally"+super.render(C)}}L.kind="finally";class M{constructor(C,_={}){this._values={},this._blockStarts=[],this._constants={},this.opts={..._,_n:_.lines?`
210
+ <br />`),n.createWarning(`⚠️ ${e}`)}const g0=B.Type.Object({screens:B.Type.Union([B.Type.String(),f9]),buttons:B.Type.Optional(B.Type.Union([B.Type.String(),l9])),skills:B.Type.Optional(B.Type.Union([B.Type.String(),m9])),skillChecks:B.Type.Optional(B.Type.Union([B.Type.String(),C9])),scripts:B.Type.Optional(B.Type.Union([B.Type.String(),Z7])),audio:B.Type.Union([B.Type.String(),R7]),tooltips:B.Type.Optional(B.Type.Union([B.Type.String(),w9])),items:B.Type.Optional(B.Type.Union([B.Type.String(),r9])),achievements:B.Type.Optional(B.Type.Union([B.Type.String(),j9])),quests:B.Type.Optional(B.Type.Union([B.Type.String(),i9])),characters:B.Type.Union([B.Type.String(),g9]),choices:B.Type.Optional(B.Type.Union([B.Type.String(),O9])),animations:B.Type.Optional(B.Type.Union([B.Type.String(),M9]))}),V_=B.Type.Intersect([g0,B.Type.Object({common:e9})]),z_=B.Type.Intersect([g0,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)})]),q_=B.Type.Union([V_,z_]);function y0(e){return"common"in e}var U_={exports:{}},YF={},Ua={},Yf={},fp={},Fn={},dp={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class n extends t{constructor(y){if(super(),!e.IDENTIFIER.test(y))throw new Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=n;class r extends t{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((w,k)=>`${w}${k}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((w,k)=>(k instanceof n&&(w[k.str]=(w[k.str]||0)+1),w),{})}}e._Code=r,e.nil=new r("");function o(g,...y){const w=[g[0]];let k=0;for(;k<y.length;)s(w,y[k]),w.push(g[++k]);return new r(w)}e._=o;const i=new r("+");function a(g,...y){const w=[h(g[0])];let k=0;for(;k<y.length;)w.push(i),s(w,y[k]),w.push(i,h(g[++k]));return l(w),new r(w)}e.str=a;function s(g,y){y instanceof r?g.push(...y._items):y instanceof n?g.push(y):g.push(u(y))}e.addCodeArg=s;function l(g){let y=1;for(;y<g.length-1;){if(g[y]===i){const w=c(g[y-1],g[y+1]);if(w!==void 0){g.splice(y-1,3,w);continue}g[y++]="+"}y++}}function c(g,y){if(y==='""')return g;if(g==='""')return y;if(typeof g=="string")return y instanceof n||g[g.length-1]!=='"'?void 0:typeof y!="string"?`${g.slice(0,-1)}${y}"`:y[0]==='"'?g.slice(0,-1)+y.slice(1):void 0;if(typeof y=="string"&&y[0]==='"'&&!(g instanceof n))return`"${g}${y.slice(1)}`}function f(g,y){return y.emptyStr()?g:g.emptyStr()?y:a`${g}${y}`}e.strConcat=f;function u(g){return typeof g=="number"||typeof g=="boolean"||g===null?g:h(Array.isArray(g)?g.join(","):g)}function d(g){return new r(h(g))}e.stringify=d;function h(g){return JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}e.safeStringify=h;function p(g){return typeof g=="string"&&e.IDENTIFIER.test(g)?new r(`.${g}`):o`[${g}]`}e.getProperty=p;function m(g){if(typeof g=="string"&&e.IDENTIFIER.test(g))return new r(`${g}`);throw new Error(`CodeGen: invalid export name: ${g}, use explicit $id name mapping`)}e.getEsmExportName=m;function v(g){return new r(g.toString())}e.regexpCode=v})(dp);var H_={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;const t=dp;class n extends Error{constructor(c){super(`CodeGen: "code" for ${c} not defined`),this.value=c.value}}var r;(function(l){l[l.Started=0]="Started",l[l.Completed=1]="Completed"})(r=e.UsedValueState||(e.UsedValueState={})),e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};class o{constructor({prefixes:c,parent:f}={}){this._names={},this._prefixes=c,this._parent=f}toName(c){return c instanceof t.Name?c:this.name(c)}name(c){return new t.Name(this._newName(c))}_newName(c){const f=this._names[c]||this._nameGroup(c);return`${c}${f.index++}`}_nameGroup(c){var f,u;if(!((u=(f=this._parent)===null||f===void 0?void 0:f._prefixes)===null||u===void 0)&&u.has(c)||this._prefixes&&!this._prefixes.has(c))throw new Error(`CodeGen: prefix "${c}" is not allowed in this scope`);return this._names[c]={prefix:c,index:0}}}e.Scope=o;class i extends t.Name{constructor(c,f){super(f),this.prefix=c}setValue(c,{property:f,itemIndex:u}){this.value=c,this.scopePath=(0,t._)`.${new t.Name(f)}[${u}]`}}e.ValueScopeName=i;const a=(0,t._)`\n`;class s extends o{constructor(c){super(c),this._values={},this._scope=c.scope,this.opts={...c,_n:c.lines?a:t.nil}}get(){return this._scope}name(c){return new i(c,this._newName(c))}value(c,f){var u;if(f.ref===void 0)throw new Error("CodeGen: ref must be passed in value");const d=this.toName(c),{prefix:h}=d,p=(u=f.key)!==null&&u!==void 0?u:f.ref;let m=this._values[h];if(m){const y=m.get(p);if(y)return y}else m=this._values[h]=new Map;m.set(p,d);const v=this._scope[h]||(this._scope[h]=[]),g=v.length;return v[g]=f.ref,d.setValue(f,{property:h,itemIndex:g}),d}getValue(c,f){const u=this._values[c];if(u)return u.get(f)}scopeRefs(c,f=this._values){return this._reduceValues(f,u=>{if(u.scopePath===void 0)throw new Error(`CodeGen: name "${u}" has no value`);return(0,t._)`${c}${u.scopePath}`})}scopeCode(c=this._values,f,u){return this._reduceValues(c,d=>{if(d.value===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return d.value.code},f,u)}_reduceValues(c,f,u={},d){let h=t.nil;for(const p in c){const m=c[p];if(!m)continue;const v=u[p]=u[p]||new Map;m.forEach(g=>{if(v.has(g))return;v.set(g,r.Started);let y=f(g);if(y){const w=this.opts.es5?e.varKinds.var:e.varKinds.const;h=(0,t._)`${h}${w} ${g} = ${y};${this.opts._n}`}else if(y=d==null?void 0:d(g))h=(0,t._)`${h}${y}${this.opts._n}`;else throw new n(g);v.set(g,r.Completed)})}return h}}e.ValueScope=s})(H_),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;const t=dp,n=H_;var r=dp;Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var o=H_;Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return o.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return o.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return o.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return o.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class i{optimizeNodes(){return this}optimizeNames(C,_){return this}}class a extends i{constructor(C,_,R){super(),this.varKind=C,this.name=_,this.rhs=R}render({es5:C,_n:_}){const R=C?n.varKinds.var:this.varKind,Z=this.rhs===void 0?"":` = ${this.rhs}`;return`${R} ${this.name}${Z};`+_}optimizeNames(C,_){if(C[this.name.str])return this.rhs&&(this.rhs=N(this.rhs,C,_)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class s extends i{constructor(C,_,R){super(),this.lhs=C,this.rhs=_,this.sideEffects=R}render({_n:C}){return`${this.lhs} = ${this.rhs};`+C}optimizeNames(C,_){if(!(this.lhs instanceof t.Name&&!C[this.lhs.str]&&!this.sideEffects))return this.rhs=N(this.rhs,C,_),this}get names(){const C=this.lhs instanceof t.Name?{}:{...this.lhs.names};return H(C,this.rhs)}}class l extends s{constructor(C,_,R,Z){super(C,R,Z),this.op=_}render({_n:C}){return`${this.lhs} ${this.op}= ${this.rhs};`+C}}class c extends i{constructor(C){super(),this.label=C,this.names={}}render({_n:C}){return`${this.label}:`+C}}class f extends i{constructor(C){super(),this.label=C,this.names={}}render({_n:C}){return`break${this.label?` ${this.label}`:""};`+C}}class u extends i{constructor(C){super(),this.error=C}render({_n:C}){return`throw ${this.error};`+C}get names(){return this.error.names}}class d extends i{constructor(C){super(),this.code=C}render({_n:C}){return`${this.code};`+C}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(C,_){return this.code=N(this.code,C,_),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class h extends i{constructor(C=[]){super(),this.nodes=C}render(C){return this.nodes.reduce((_,R)=>_+R.render(C),"")}optimizeNodes(){const{nodes:C}=this;let _=C.length;for(;_--;){const R=C[_].optimizeNodes();Array.isArray(R)?C.splice(_,1,...R):R?C[_]=R:C.splice(_,1)}return C.length>0?this:void 0}optimizeNames(C,_){const{nodes:R}=this;let Z=R.length;for(;Z--;){const pe=R[Z];pe.optimizeNames(C,_)||(W(C,pe.names),R.splice(Z,1))}return R.length>0?this:void 0}get names(){return this.nodes.reduce((C,_)=>F(C,_.names),{})}}class p extends h{render(C){return"{"+C._n+super.render(C)+"}"+C._n}}class m extends h{}class v extends p{}v.kind="else";class g extends p{constructor(C,_){super(_),this.condition=C}render(C){let _=`if(${this.condition})`+super.render(C);return this.else&&(_+="else "+this.else.render(C)),_}optimizeNodes(){super.optimizeNodes();const C=this.condition;if(C===!0)return this.nodes;let _=this.else;if(_){const R=_.optimizeNodes();_=this.else=Array.isArray(R)?new v(R):R}if(_)return C===!1?_ instanceof g?_:_.nodes:this.nodes.length?this:new g(ee(C),_ instanceof g?[_]:_.nodes);if(!(C===!1||!this.nodes.length))return this}optimizeNames(C,_){var R;if(this.else=(R=this.else)===null||R===void 0?void 0:R.optimizeNames(C,_),!!(super.optimizeNames(C,_)||this.else))return this.condition=N(this.condition,C,_),this}get names(){const C=super.names;return H(C,this.condition),this.else&&F(C,this.else.names),C}}g.kind="if";class y extends p{}y.kind="for";class w extends y{constructor(C){super(),this.iteration=C}render(C){return`for(${this.iteration})`+super.render(C)}optimizeNames(C,_){if(super.optimizeNames(C,_))return this.iteration=N(this.iteration,C,_),this}get names(){return F(super.names,this.iteration.names)}}class k extends y{constructor(C,_,R,Z){super(),this.varKind=C,this.name=_,this.from=R,this.to=Z}render(C){const _=C.es5?n.varKinds.var:this.varKind,{name:R,from:Z,to:pe}=this;return`for(${_} ${R}=${Z}; ${R}<${pe}; ${R}++)`+super.render(C)}get names(){const C=H(super.names,this.from);return H(C,this.to)}}class $ extends y{constructor(C,_,R,Z){super(),this.loop=C,this.varKind=_,this.name=R,this.iterable=Z}render(C){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(C)}optimizeNames(C,_){if(super.optimizeNames(C,_))return this.iterable=N(this.iterable,C,_),this}get names(){return F(super.names,this.iterable.names)}}class j extends p{constructor(C,_,R){super(),this.name=C,this.args=_,this.async=R}render(C){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(C)}}j.kind="func";class E extends h{render(C){return"return "+super.render(C)}}E.kind="return";class I extends p{render(C){let _="try"+super.render(C);return this.catch&&(_+=this.catch.render(C)),this.finally&&(_+=this.finally.render(C)),_}optimizeNodes(){var C,_;return super.optimizeNodes(),(C=this.catch)===null||C===void 0||C.optimizeNodes(),(_=this.finally)===null||_===void 0||_.optimizeNodes(),this}optimizeNames(C,_){var R,Z;return super.optimizeNames(C,_),(R=this.catch)===null||R===void 0||R.optimizeNames(C,_),(Z=this.finally)===null||Z===void 0||Z.optimizeNames(C,_),this}get names(){const C=super.names;return this.catch&&F(C,this.catch.names),this.finally&&F(C,this.finally.names),C}}class D extends p{constructor(C){super(),this.error=C}render(C){return`catch(${this.error})`+super.render(C)}}D.kind="catch";class L extends p{render(C){return"finally"+super.render(C)}}L.kind="finally";class M{constructor(C,_={}){this._values={},this._blockStarts=[],this._constants={},this.opts={..._,_n:_.lines?`
211
211
  `:""},this._extScope=C,this._scope=new n.Scope({parent:C}),this._nodes=[new m]}toString(){return this._root.render(this.opts)}name(C){return this._scope.name(C)}scopeName(C){return this._extScope.name(C)}scopeValue(C,_){const R=this._extScope.value(C,_);return(this._values[R.prefix]||(this._values[R.prefix]=new Set)).add(R),R}getScopeValue(C,_){return this._extScope.getValue(C,_)}scopeRefs(C){return this._extScope.scopeRefs(C,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(C,_,R,Z){const pe=this._scope.toName(_);return R!==void 0&&Z&&(this._constants[pe.str]=R),this._leafNode(new a(C,pe,R)),pe}const(C,_,R){return this._def(n.varKinds.const,C,_,R)}let(C,_,R){return this._def(n.varKinds.let,C,_,R)}var(C,_,R){return this._def(n.varKinds.var,C,_,R)}assign(C,_,R){return this._leafNode(new s(C,_,R))}add(C,_){return this._leafNode(new l(C,e.operators.ADD,_))}code(C){return typeof C=="function"?C():C!==t.nil&&this._leafNode(new d(C)),this}object(...C){const _=["{"];for(const[R,Z]of C)_.length>1&&_.push(","),_.push(R),(R!==Z||this.opts.es5)&&(_.push(":"),(0,t.addCodeArg)(_,Z));return _.push("}"),new t._Code(_)}if(C,_,R){if(this._blockNode(new g(C)),_&&R)this.code(_).else().code(R).endIf();else if(_)this.code(_).endIf();else if(R)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(C){return this._elseNode(new g(C))}else(){return this._elseNode(new v)}endIf(){return this._endBlockNode(g,v)}_for(C,_){return this._blockNode(C),_&&this.code(_).endFor(),this}for(C,_){return this._for(new w(C),_)}forRange(C,_,R,Z,pe=this.opts.es5?n.varKinds.var:n.varKinds.let){const _e=this._scope.toName(C);return this._for(new k(pe,_e,_,R),()=>Z(_e))}forOf(C,_,R,Z=n.varKinds.const){const pe=this._scope.toName(C);if(this.opts.es5){const _e=_ instanceof t.Name?_:this.var("_arr",_);return this.forRange("_i",0,(0,t._)`${_e}.length`,ke=>{this.var(pe,(0,t._)`${_e}[${ke}]`),R(pe)})}return this._for(new $("of",Z,pe,_),()=>R(pe))}forIn(C,_,R,Z=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(C,(0,t._)`Object.keys(${_})`,R);const pe=this._scope.toName(C);return this._for(new $("in",Z,pe,_),()=>R(pe))}endFor(){return this._endBlockNode(y)}label(C){return this._leafNode(new c(C))}break(C){return this._leafNode(new f(C))}return(C){const _=new E;if(this._blockNode(_),this.code(C),_.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(E)}try(C,_,R){if(!_&&!R)throw new Error('CodeGen: "try" without "catch" and "finally"');const Z=new I;if(this._blockNode(Z),this.code(C),_){const pe=this.name("e");this._currNode=Z.catch=new D(pe),_(pe)}return R&&(this._currNode=Z.finally=new L,this.code(R)),this._endBlockNode(D,L)}throw(C){return this._leafNode(new u(C))}block(C,_){return this._blockStarts.push(this._nodes.length),C&&this.code(C).endBlock(_),this}endBlock(C){const _=this._blockStarts.pop();if(_===void 0)throw new Error("CodeGen: not in self-balancing block");const R=this._nodes.length-_;if(R<0||C!==void 0&&R!==C)throw new Error(`CodeGen: wrong number of nodes: ${R} vs ${C} expected`);return this._nodes.length=_,this}func(C,_=t.nil,R,Z){return this._blockNode(new j(C,_,R)),Z&&this.code(Z).endFunc(),this}endFunc(){return this._endBlockNode(j)}optimize(C=1){for(;C-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(C){return this._currNode.nodes.push(C),this}_blockNode(C){this._currNode.nodes.push(C),this._nodes.push(C)}_endBlockNode(C,_){const R=this._currNode;if(R instanceof C||_&&R instanceof _)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${_?`${C.kind}/${_.kind}`:C.kind}"`)}_elseNode(C){const _=this._currNode;if(!(_ instanceof g))throw new Error('CodeGen: "else" without "if"');return this._currNode=_.else=C,this}get _root(){return this._nodes[0]}get _currNode(){const C=this._nodes;return C[C.length-1]}set _currNode(C){const _=this._nodes;_[_.length-1]=C}}e.CodeGen=M;function F(S,C){for(const _ in C)S[_]=(S[_]||0)+(C[_]||0);return S}function H(S,C){return C instanceof t._CodeOrName?F(S,C.names):S}function N(S,C,_){if(S instanceof t.Name)return R(S);if(!Z(S))return S;return new t._Code(S._items.reduce((pe,_e)=>(_e instanceof t.Name&&(_e=R(_e)),_e instanceof t._Code?pe.push(..._e._items):pe.push(_e),pe),[]));function R(pe){const _e=_[pe.str];return _e===void 0||C[pe.str]!==1?pe:(delete C[pe.str],_e)}function Z(pe){return pe instanceof t._Code&&pe._items.some(_e=>_e instanceof t.Name&&C[_e.str]===1&&_[_e.str]!==void 0)}}function W(S,C){for(const _ in C)S[_]=(S[_]||0)-(C[_]||0)}function ee(S){return typeof S=="boolean"||typeof S=="number"||S===null?!S:(0,t._)`!${O(S)}`}e.not=ee;const U=x(e.operators.AND);function K(...S){return S.reduce(U)}e.and=K;const A=x(e.operators.OR);function T(...S){return S.reduce(A)}e.or=T;function x(S){return(C,_)=>C===t.nil?_:_===t.nil?C:(0,t._)`${O(C)} ${S} ${O(_)}`}function O(S){return S instanceof t.Name?S:(0,t._)`(${S})`}}(Fn);var Xn={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;const t=Fn,n=dp;function r(j){const E={};for(const I of j)E[I]=!0;return E}e.toHash=r;function o(j,E){return typeof E=="boolean"?E:Object.keys(E).length===0?!0:(i(j,E),!a(E,j.self.RULES.all))}e.alwaysValidSchema=o;function i(j,E=j.schema){const{opts:I,self:D}=j;if(!I.strictSchema||typeof E=="boolean")return;const L=D.RULES.keywords;for(const M in E)L[M]||$(j,`unknown keyword: "${M}"`)}e.checkUnknownRules=i;function a(j,E){if(typeof j=="boolean")return!j;for(const I in j)if(E[I])return!0;return!1}e.schemaHasRules=a;function s(j,E){if(typeof j=="boolean")return!j;for(const I in j)if(I!=="$ref"&&E.all[I])return!0;return!1}e.schemaHasRulesButRef=s;function l({topSchemaRef:j,schemaPath:E},I,D,L){if(!L){if(typeof I=="number"||typeof I=="boolean")return I;if(typeof I=="string")return(0,t._)`${I}`}return(0,t._)`${j}${E}${(0,t.getProperty)(D)}`}e.schemaRefOrVal=l;function c(j){return d(decodeURIComponent(j))}e.unescapeFragment=c;function f(j){return encodeURIComponent(u(j))}e.escapeFragment=f;function u(j){return typeof j=="number"?`${j}`:j.replace(/~/g,"~0").replace(/\//g,"~1")}e.escapeJsonPointer=u;function d(j){return j.replace(/~1/g,"/").replace(/~0/g,"~")}e.unescapeJsonPointer=d;function h(j,E){if(Array.isArray(j))for(const I of j)E(I);else E(j)}e.eachItem=h;function p({mergeNames:j,mergeToName:E,mergeValues:I,resultToName:D}){return(L,M,F,H)=>{const N=F===void 0?M:F instanceof t.Name?(M instanceof t.Name?j(L,M,F):E(L,M,F),F):M instanceof t.Name?(E(L,F,M),M):I(M,F);return H===t.Name&&!(N instanceof t.Name)?D(L,N):N}}e.mergeEvaluated={props:p({mergeNames:(j,E,I)=>j.if((0,t._)`${I} !== true && ${E} !== undefined`,()=>{j.if((0,t._)`${E} === true`,()=>j.assign(I,!0),()=>j.assign(I,(0,t._)`${I} || {}`).code((0,t._)`Object.assign(${I}, ${E})`))}),mergeToName:(j,E,I)=>j.if((0,t._)`${I} !== true`,()=>{E===!0?j.assign(I,!0):(j.assign(I,(0,t._)`${I} || {}`),v(j,I,E))}),mergeValues:(j,E)=>j===!0?!0:{...j,...E},resultToName:m}),items:p({mergeNames:(j,E,I)=>j.if((0,t._)`${I} !== true && ${E} !== undefined`,()=>j.assign(I,(0,t._)`${E} === true ? true : ${I} > ${E} ? ${I} : ${E}`)),mergeToName:(j,E,I)=>j.if((0,t._)`${I} !== true`,()=>j.assign(I,E===!0?!0:(0,t._)`${I} > ${E} ? ${I} : ${E}`)),mergeValues:(j,E)=>j===!0?!0:Math.max(j,E),resultToName:(j,E)=>j.var("items",E)})};function m(j,E){if(E===!0)return j.var("props",!0);const I=j.var("props",(0,t._)`{}`);return E!==void 0&&v(j,I,E),I}e.evaluatedPropsToName=m;function v(j,E,I){Object.keys(I).forEach(D=>j.assign((0,t._)`${E}${(0,t.getProperty)(D)}`,!0))}e.setEvaluated=v;const g={};function y(j,E){return j.scopeValue("func",{ref:E,code:g[E.code]||(g[E.code]=new n._Code(E.code))})}e.useFunc=y;var w;(function(j){j[j.Num=0]="Num",j[j.Str=1]="Str"})(w=e.Type||(e.Type={}));function k(j,E,I){if(j instanceof t.Name){const D=E===w.Num;return I?D?(0,t._)`"[" + ${j} + "]"`:(0,t._)`"['" + ${j} + "']"`:D?(0,t._)`"/" + ${j}`:(0,t._)`"/" + ${j}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return I?(0,t.getProperty)(j).toString():"/"+u(j)}e.getErrorPath=k;function $(j,E,I=j.opts.strictSchema){if(I){if(E=`strict mode: ${E}`,I===!0)throw new Error(E);j.self.logger.warn(E)}}e.checkStrictMode=$})(Xn);var Es={};Object.defineProperty(Es,"__esModule",{value:!0});const Yo=Fn,Fye={data:new Yo.Name("data"),valCxt:new Yo.Name("valCxt"),instancePath:new Yo.Name("instancePath"),parentData:new Yo.Name("parentData"),parentDataProperty:new Yo.Name("parentDataProperty"),rootData:new Yo.Name("rootData"),dynamicAnchors:new Yo.Name("dynamicAnchors"),vErrors:new Yo.Name("vErrors"),errors:new Yo.Name("errors"),this:new Yo.Name("this"),self:new Yo.Name("self"),scope:new Yo.Name("scope"),json:new Yo.Name("json"),jsonPos:new Yo.Name("jsonPos"),jsonLen:new Yo.Name("jsonLen"),jsonPart:new Yo.Name("jsonPart")};Es.default=Fye,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;const t=Fn,n=Xn,r=Es;e.keywordError={message:({keyword:v})=>(0,t.str)`must pass "${v}" keyword validation`},e.keyword$DataError={message:({keyword:v,schemaType:g})=>g?(0,t.str)`"${v}" keyword must be ${g} ($data)`:(0,t.str)`"${v}" keyword is invalid ($data)`};function o(v,g=e.keywordError,y,w){const{it:k}=v,{gen:$,compositeRule:j,allErrors:E}=k,I=u(v,g,y);w??(j||E)?l($,I):c(k,(0,t._)`[${I}]`)}e.reportError=o;function i(v,g=e.keywordError,y){const{it:w}=v,{gen:k,compositeRule:$,allErrors:j}=w,E=u(v,g,y);l(k,E),$||j||c(w,r.default.vErrors)}e.reportExtraError=i;function a(v,g){v.assign(r.default.errors,g),v.if((0,t._)`${r.default.vErrors} !== null`,()=>v.if(g,()=>v.assign((0,t._)`${r.default.vErrors}.length`,g),()=>v.assign(r.default.vErrors,null)))}e.resetErrorsCount=a;function s({gen:v,keyword:g,schemaValue:y,data:w,errsCount:k,it:$}){if(k===void 0)throw new Error("ajv implementation error");const j=v.name("err");v.forRange("i",k,r.default.errors,E=>{v.const(j,(0,t._)`${r.default.vErrors}[${E}]`),v.if((0,t._)`${j}.instancePath === undefined`,()=>v.assign((0,t._)`${j}.instancePath`,(0,t.strConcat)(r.default.instancePath,$.errorPath))),v.assign((0,t._)`${j}.schemaPath`,(0,t.str)`${$.errSchemaPath}/${g}`),$.opts.verbose&&(v.assign((0,t._)`${j}.schema`,y),v.assign((0,t._)`${j}.data`,w))})}e.extendErrors=s;function l(v,g){const y=v.const("err",g);v.if((0,t._)`${r.default.vErrors} === null`,()=>v.assign(r.default.vErrors,(0,t._)`[${y}]`),(0,t._)`${r.default.vErrors}.push(${y})`),v.code((0,t._)`${r.default.errors}++`)}function c(v,g){const{gen:y,validateName:w,schemaEnv:k}=v;k.$async?y.throw((0,t._)`new ${v.ValidationError}(${g})`):(y.assign((0,t._)`${w}.errors`,g),y.return(!1))}const f={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function u(v,g,y){const{createErrors:w}=v.it;return w===!1?(0,t._)`{}`:d(v,g,y)}function d(v,g,y={}){const{gen:w,it:k}=v,$=[h(k,y),p(v,y)];return m(v,g,$),w.object(...$)}function h({errorPath:v},{instancePath:g}){const y=g?(0,t.str)`${v}${(0,n.getErrorPath)(g,n.Type.Str)}`:v;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,y)]}function p({keyword:v,it:{errSchemaPath:g}},{schemaPath:y,parentSchema:w}){let k=w?g:(0,t.str)`${g}/${v}`;return y&&(k=(0,t.str)`${k}${(0,n.getErrorPath)(y,n.Type.Str)}`),[f.schemaPath,k]}function m(v,{params:g,message:y},w){const{keyword:k,data:$,schemaValue:j,it:E}=v,{opts:I,propertyName:D,topSchemaRef:L,schemaPath:M}=E;w.push([f.keyword,k],[f.params,typeof g=="function"?g(v):g||(0,t._)`{}`]),I.messages&&w.push([f.message,typeof y=="function"?y(v):y]),I.verbose&&w.push([f.schema,j],[f.parentSchema,(0,t._)`${L}${M}`],[r.default.data,$]),D&&w.push([f.propertyName,D])}}(fp),Object.defineProperty(Yf,"__esModule",{value:!0}),Yf.boolOrEmptySchema=Yf.topBoolOrEmptySchema=void 0;const Vye=fp,zye=Fn,qye=Es,Uye={message:"boolean schema is false"};function Hye(e){const{gen:t,schema:n,validateName:r}=e;n===!1?XF(e,!1):typeof n=="object"&&n.$async===!0?t.return(qye.default.data):(t.assign((0,zye._)`${r}.errors`,null),t.return(!0))}Yf.topBoolOrEmptySchema=Hye;function Wye(e,t){const{gen:n,schema:r}=e;r===!1?(n.var(t,!1),XF(e)):n.var(t,!0)}Yf.boolOrEmptySchema=Wye;function XF(e,t){const{gen:n,data:r}=e,o={gen:n,keyword:"false schema",data:r,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Vye.reportError)(o,Uye,void 0,t)}var hp={},hu={};Object.defineProperty(hu,"__esModule",{value:!0}),hu.getRules=hu.isJSONType=void 0;const Kye=["string","number","integer","boolean","null","object","array"],Gye=new Set(Kye);function Jye(e){return typeof e=="string"&&Gye.has(e)}hu.isJSONType=Jye;function Qye(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}hu.getRules=Qye;var fl={};Object.defineProperty(fl,"__esModule",{value:!0}),fl.shouldUseRule=fl.shouldUseGroup=fl.schemaHasRulesForType=void 0;function Yye({schema:e,self:t},n){const r=t.RULES.types[n];return r&&r!==!0&&ZF(e,r)}fl.schemaHasRulesForType=Yye;function ZF(e,t){return t.rules.some(n=>eV(e,n))}fl.shouldUseGroup=ZF;function eV(e,t){var n;return e[t.keyword]!==void 0||((n=t.definition.implements)===null||n===void 0?void 0:n.some(r=>e[r]!==void 0))}fl.shouldUseRule=eV,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;const t=hu,n=fl,r=fp,o=Fn,i=Xn;var a;(function(w){w[w.Correct=0]="Correct",w[w.Wrong=1]="Wrong"})(a=e.DataType||(e.DataType={}));function s(w){const k=l(w.type);if(k.includes("null")){if(w.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!k.length&&w.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');w.nullable===!0&&k.push("null")}return k}e.getSchemaTypes=s;function l(w){const k=Array.isArray(w)?w:w?[w]:[];if(k.every(t.isJSONType))return k;throw new Error("type must be JSONType or JSONType[]: "+k.join(","))}e.getJSONTypes=l;function c(w,k){const{gen:$,data:j,opts:E}=w,I=u(k,E.coerceTypes),D=k.length>0&&!(I.length===0&&k.length===1&&(0,n.schemaHasRulesForType)(w,k[0]));if(D){const L=m(k,j,E.strictNumbers,a.Wrong);$.if(L,()=>{I.length?d(w,k,I):g(w)})}return D}e.coerceAndCheckDataType=c;const f=new Set(["string","number","integer","boolean","null"]);function u(w,k){return k?w.filter($=>f.has($)||k==="array"&&$==="array"):[]}function d(w,k,$){const{gen:j,data:E,opts:I}=w,D=j.let("dataType",(0,o._)`typeof ${E}`),L=j.let("coerced",(0,o._)`undefined`);I.coerceTypes==="array"&&j.if((0,o._)`${D} == 'object' && Array.isArray(${E}) && ${E}.length == 1`,()=>j.assign(E,(0,o._)`${E}[0]`).assign(D,(0,o._)`typeof ${E}`).if(m(k,E,I.strictNumbers),()=>j.assign(L,E))),j.if((0,o._)`${L} !== undefined`);for(const F of $)(f.has(F)||F==="array"&&I.coerceTypes==="array")&&M(F);j.else(),g(w),j.endIf(),j.if((0,o._)`${L} !== undefined`,()=>{j.assign(E,L),h(w,L)});function M(F){switch(F){case"string":j.elseIf((0,o._)`${D} == "number" || ${D} == "boolean"`).assign(L,(0,o._)`"" + ${E}`).elseIf((0,o._)`${E} === null`).assign(L,(0,o._)`""`);return;case"number":j.elseIf((0,o._)`${D} == "boolean" || ${E} === null
212
212
  || (${D} == "string" && ${E} && ${E} == +${E})`).assign(L,(0,o._)`+${E}`);return;case"integer":j.elseIf((0,o._)`${D} === "boolean" || ${E} === null
213
213
  || (${D} === "string" && ${E} && ${E} == +${E} && !(${E} % 1))`).assign(L,(0,o._)`+${E}`);return;case"boolean":j.elseIf((0,o._)`${E} === "false" || ${E} === 0 || ${E} === null`).assign(L,!1).elseIf((0,o._)`${E} === "true" || ${E} === 1`).assign(L,!0);return;case"null":j.elseIf((0,o._)`${E} === "" || ${E} === 0 || ${E} === false`),j.assign(L,null);return;case"array":j.elseIf((0,o._)`${D} === "string" || ${D} === "number"
214
214
  || ${D} === "boolean" || ${E} === null`).assign(L,(0,o._)`[${E}]`)}}}function h({gen:w,parentData:k,parentDataProperty:$},j){w.if((0,o._)`${k} !== undefined`,()=>w.assign((0,o._)`${k}[${$}]`,j))}function p(w,k,$,j=a.Correct){const E=j===a.Correct?o.operators.EQ:o.operators.NEQ;let I;switch(w){case"null":return(0,o._)`${k} ${E} null`;case"array":I=(0,o._)`Array.isArray(${k})`;break;case"object":I=(0,o._)`${k} && typeof ${k} == "object" && !Array.isArray(${k})`;break;case"integer":I=D((0,o._)`!(${k} % 1) && !isNaN(${k})`);break;case"number":I=D();break;default:return(0,o._)`typeof ${k} ${E} ${w}`}return j===a.Correct?I:(0,o.not)(I);function D(L=o.nil){return(0,o.and)((0,o._)`typeof ${k} == "number"`,L,$?(0,o._)`isFinite(${k})`:o.nil)}}e.checkDataType=p;function m(w,k,$,j){if(w.length===1)return p(w[0],k,$,j);let E;const I=(0,i.toHash)(w);if(I.array&&I.object){const D=(0,o._)`typeof ${k} != "object"`;E=I.null?D:(0,o._)`!${k} || ${D}`,delete I.null,delete I.array,delete I.object}else E=o.nil;I.number&&delete I.integer;for(const D in I)E=(0,o.and)(E,p(D,k,$,j));return E}e.checkDataTypes=m;const v={message:({schema:w})=>`must be ${w}`,params:({schema:w,schemaValue:k})=>typeof w=="string"?(0,o._)`{type: ${w}}`:(0,o._)`{type: ${k}}`};function g(w){const k=y(w);(0,r.reportError)(k,v)}e.reportTypeError=g;function y(w){const{gen:k,data:$,schema:j}=w,E=(0,i.schemaRefOrVal)(w,j,"type");return{gen:k,keyword:"type",data:$,schema:j.type,schemaCode:E,schemaValue:E,parentSchema:j,params:{},it:w}}}(hp);var b0={};Object.defineProperty(b0,"__esModule",{value:!0}),b0.assignDefaults=void 0;const Xf=Fn,Xye=Xn;function Zye(e,t){const{properties:n,items:r}=e.schema;if(t==="object"&&n)for(const o in n)tV(e,o,n[o].default);else t==="array"&&Array.isArray(r)&&r.forEach((o,i)=>tV(e,i,o.default))}b0.assignDefaults=Zye;function tV(e,t,n){const{gen:r,compositeRule:o,data:i,opts:a}=e;if(n===void 0)return;const s=(0,Xf._)`${i}${(0,Xf.getProperty)(t)}`;if(o){(0,Xye.checkStrictMode)(e,`default is ignored for: ${s}`);return}let l=(0,Xf._)`${s} === undefined`;a.useDefaults==="empty"&&(l=(0,Xf._)`${l} || ${s} === null || ${s} === ""`),r.if(l,(0,Xf._)`${s} = ${(0,Xf.stringify)(n)}`)}var As={},Vn={};Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.validateUnion=Vn.validateArray=Vn.usePattern=Vn.callValidateCode=Vn.schemaProperties=Vn.allSchemaProperties=Vn.noPropertyInData=Vn.propertyInData=Vn.isOwnProperty=Vn.hasPropFunc=Vn.reportMissingProp=Vn.checkMissingProp=Vn.checkReportMissingProp=void 0;const Sr=Fn,W_=Xn,cc=Es,e1e=Xn;function t1e(e,t){const{gen:n,data:r,it:o}=e;n.if(G_(n,r,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,Sr._)`${t}`},!0),e.error()})}Vn.checkReportMissingProp=t1e;function n1e({gen:e,data:t,it:{opts:n}},r,o){return(0,Sr.or)(...r.map(i=>(0,Sr.and)(G_(e,t,i,n.ownProperties),(0,Sr._)`${o} = ${i}`)))}Vn.checkMissingProp=n1e;function r1e(e,t){e.setParams({missingProperty:t},!0),e.error()}Vn.reportMissingProp=r1e;function nV(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Sr._)`Object.prototype.hasOwnProperty`})}Vn.hasPropFunc=nV;function K_(e,t,n){return(0,Sr._)`${nV(e)}.call(${t}, ${n})`}Vn.isOwnProperty=K_;function o1e(e,t,n,r){const o=(0,Sr._)`${t}${(0,Sr.getProperty)(n)} !== undefined`;return r?(0,Sr._)`${o} && ${K_(e,t,n)}`:o}Vn.propertyInData=o1e;function G_(e,t,n,r){const o=(0,Sr._)`${t}${(0,Sr.getProperty)(n)} === undefined`;return r?(0,Sr.or)(o,(0,Sr.not)(K_(e,t,n))):o}Vn.noPropertyInData=G_;function rV(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Vn.allSchemaProperties=rV;function i1e(e,t){return rV(t).filter(n=>!(0,W_.alwaysValidSchema)(e,t[n]))}Vn.schemaProperties=i1e;function a1e({schemaCode:e,data:t,it:{gen:n,topSchemaRef:r,schemaPath:o,errorPath:i},it:a},s,l,c){const f=c?(0,Sr._)`${e}, ${t}, ${r}${o}`:t,u=[[cc.default.instancePath,(0,Sr.strConcat)(cc.default.instancePath,i)],[cc.default.parentData,a.parentData],[cc.default.parentDataProperty,a.parentDataProperty],[cc.default.rootData,cc.default.rootData]];a.opts.dynamicRef&&u.push([cc.default.dynamicAnchors,cc.default.dynamicAnchors]);const d=(0,Sr._)`${f}, ${n.object(...u)}`;return l!==Sr.nil?(0,Sr._)`${s}.call(${l}, ${d})`:(0,Sr._)`${s}(${d})`}Vn.callValidateCode=a1e;const s1e=(0,Sr._)`new RegExp`;function l1e({gen:e,it:{opts:t}},n){const r=t.unicodeRegExp?"u":"",{regExp:o}=t.code,i=o(n,r);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,Sr._)`${o.code==="new RegExp"?s1e:(0,e1e.useFunc)(e,o)}(${n}, ${r})`})}Vn.usePattern=l1e;function c1e(e){const{gen:t,data:n,keyword:r,it:o}=e,i=t.name("valid");if(o.allErrors){const s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(i,!0),a(()=>t.break()),i;function a(s){const l=t.const("len",(0,Sr._)`${n}.length`);t.forRange("i",0,l,c=>{e.subschema({keyword:r,dataProp:c,dataPropType:W_.Type.Num},i),t.if((0,Sr.not)(i),s)})}}Vn.validateArray=c1e;function u1e(e){const{gen:t,schema:n,keyword:r,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(l=>(0,W_.alwaysValidSchema)(o,l))&&!o.opts.unevaluated)return;const a=t.let("valid",!1),s=t.name("_valid");t.block(()=>n.forEach((l,c)=>{const f=e.subschema({keyword:r,schemaProp:c,compositeRule:!0},s);t.assign(a,(0,Sr._)`${a} || ${s}`),e.mergeValidEvaluated(f,s)||t.if((0,Sr.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}Vn.validateUnion=u1e,Object.defineProperty(As,"__esModule",{value:!0}),As.validateKeywordUsage=As.validSchemaType=As.funcKeywordCode=As.macroKeywordCode=void 0;const ci=Fn,pu=Es,f1e=Vn,d1e=fp;function h1e(e,t){const{gen:n,keyword:r,schema:o,parentSchema:i,it:a}=e,s=t.macro.call(a.self,o,i,a),l=iV(n,r,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);const c=n.name("valid");e.subschema({schema:s,schemaPath:ci.nil,errSchemaPath:`${a.errSchemaPath}/${r}`,topSchemaRef:l,compositeRule:!0},c),e.pass(c,()=>e.error(!0))}As.macroKeywordCode=h1e;function p1e(e,t){var n;const{gen:r,keyword:o,schema:i,parentSchema:a,$data:s,it:l}=e;v1e(l,t);const c=!s&&t.compile?t.compile.call(l.self,i,a,l):t.validate,f=iV(r,o,c),u=r.let("valid");e.block$data(u,d),e.ok((n=t.valid)!==null&&n!==void 0?n:u);function d(){if(t.errors===!1)m(),t.modifying&&oV(e),v(()=>e.error());else{const g=t.async?h():p();t.modifying&&oV(e),v(()=>m1e(e,g))}}function h(){const g=r.let("ruleErrs",null);return r.try(()=>m((0,ci._)`await `),y=>r.assign(u,!1).if((0,ci._)`${y} instanceof ${l.ValidationError}`,()=>r.assign(g,(0,ci._)`${y}.errors`),()=>r.throw(y))),g}function p(){const g=(0,ci._)`${f}.errors`;return r.assign(g,null),m(ci.nil),g}function m(g=t.async?(0,ci._)`await `:ci.nil){const y=l.opts.passContext?pu.default.this:pu.default.self,w=!("compile"in t&&!s||t.schema===!1);r.assign(u,(0,ci._)`${g}${(0,f1e.callValidateCode)(e,f,y,w)}`,t.modifying)}function v(g){var y;r.if((0,ci.not)((y=t.valid)!==null&&y!==void 0?y:u),g)}}As.funcKeywordCode=p1e;function oV(e){const{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,ci._)`${r.parentData}[${r.parentDataProperty}]`))}function m1e(e,t){const{gen:n}=e;n.if((0,ci._)`Array.isArray(${t})`,()=>{n.assign(pu.default.vErrors,(0,ci._)`${pu.default.vErrors} === null ? ${t} : ${pu.default.vErrors}.concat(${t})`).assign(pu.default.errors,(0,ci._)`${pu.default.vErrors}.length`),(0,d1e.extendErrors)(e)},()=>e.error())}function v1e({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function iV(e,t,n){if(n===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof n=="function"?{ref:n}:{ref:n,code:(0,ci.stringify)(n)})}function g1e(e,t,n=!1){return!t.length||t.some(r=>r==="array"?Array.isArray(e):r==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==r||n&&typeof e>"u")}As.validSchemaType=g1e;function y1e({schema:e,opts:t,self:n,errSchemaPath:r},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");const a=o.dependencies;if(a!=null&&a.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[i])){const l=`keyword "${i}" value is invalid at path "${r}": `+n.errorsText(o.validateSchema.errors);if(t.validateSchema==="log")n.logger.error(l);else throw new Error(l)}}As.validateKeywordUsage=y1e;var uc={};Object.defineProperty(uc,"__esModule",{value:!0}),uc.extendSubschemaMode=uc.extendSubschemaData=uc.getSubschema=void 0;const Ms=Fn,aV=Xn;function b1e(e,{keyword:t,schemaProp:n,schema:r,schemaPath:o,errSchemaPath:i,topSchemaRef:a}){if(t!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){const s=e.schema[t];return n===void 0?{schema:s,schemaPath:(0,Ms._)`${e.schemaPath}${(0,Ms.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[n],schemaPath:(0,Ms._)`${e.schemaPath}${(0,Ms.getProperty)(t)}${(0,Ms.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,aV.escapeFragment)(n)}`}}if(r!==void 0){if(o===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:r,schemaPath:o,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}uc.getSubschema=b1e;function w1e(e,t,{dataProp:n,dataPropType:r,data:o,dataTypes:i,propertyName:a}){if(o!==void 0&&n!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:s}=t;if(n!==void 0){const{errorPath:c,dataPathArr:f,opts:u}=t,d=s.let("data",(0,Ms._)`${t.data}${(0,Ms.getProperty)(n)}`,!0);l(d),e.errorPath=(0,Ms.str)`${c}${(0,aV.getErrorPath)(n,r,u.jsPropertySyntax)}`,e.parentDataProperty=(0,Ms._)`${n}`,e.dataPathArr=[...f,e.parentDataProperty]}if(o!==void 0){const c=o instanceof Ms.Name?o:s.let("data",o,!0);l(c),a!==void 0&&(e.propertyName=a)}i&&(e.dataTypes=i);function l(c){e.data=c,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,c]}}uc.extendSubschemaData=w1e;function k1e(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:o,allErrors:i}){r!==void 0&&(e.compositeRule=r),o!==void 0&&(e.createErrors=o),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=n}uc.extendSubschemaMode=k1e;var Io={},sV=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,o,i;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(o=r;o--!==0;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(i=Object.keys(t),r=i.length,r!==Object.keys(n).length)return!1;for(o=r;o--!==0;)if(!Object.prototype.hasOwnProperty.call(n,i[o]))return!1;for(o=r;o--!==0;){var a=i[o];if(!e(t[a],n[a]))return!1}return!0}return t!==t&&n!==n},lV={exports:{}},fc=lV.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),n=t.cb||n;var r=typeof n=="function"?n:n.pre||function(){},o=n.post||function(){};w0(t,r,o,e,"",e)};fc.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},fc.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},fc.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},fc.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function w0(e,t,n,r,o,i,a,s,l,c){if(r&&typeof r=="object"&&!Array.isArray(r)){t(r,o,i,a,s,l,c);for(var f in r){var u=r[f];if(Array.isArray(u)){if(f in fc.arrayKeywords)for(var d=0;d<u.length;d++)w0(e,t,n,u[d],o+"/"+f+"/"+d,i,o,f,r,d)}else if(f in fc.propsKeywords){if(u&&typeof u=="object")for(var h in u)w0(e,t,n,u[h],o+"/"+f+"/"+x1e(h),i,o,f,r,h)}else(f in fc.keywords||e.allKeys&&!(f in fc.skipKeywords))&&w0(e,t,n,u,o+"/"+f,i,o,f,r)}n(r,o,i,a,s,l,c)}}function x1e(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}var _1e=lV.exports;Object.defineProperty(Io,"__esModule",{value:!0}),Io.getSchemaRefs=Io.resolveUrl=Io.normalizeId=Io._getFullPath=Io.getFullPath=Io.inlineRef=void 0;const j1e=Xn,S1e=sV,C1e=_1e,$1e=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function T1e(e,t=!0){return typeof e=="boolean"?!0:t===!0?!J_(e):t?cV(e)<=t:!1}Io.inlineRef=T1e;const O1e=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function J_(e){for(const t in e){if(O1e.has(t))return!0;const n=e[t];if(Array.isArray(n)&&n.some(J_)||typeof n=="object"&&J_(n))return!0}return!1}function cV(e){let t=0;for(const n in e){if(n==="$ref")return 1/0;if(t++,!$1e.has(n)&&(typeof e[n]=="object"&&(0,j1e.eachItem)(e[n],r=>t+=cV(r)),t===1/0))return 1/0}return t}function uV(e,t="",n){n!==!1&&(t=Zf(t));const r=e.parse(t);return fV(e,r)}Io.getFullPath=uV;function fV(e,t){return e.serialize(t).split("#")[0]+"#"}Io._getFullPath=fV;const E1e=/#\/?$/;function Zf(e){return e?e.replace(E1e,""):""}Io.normalizeId=Zf;function A1e(e,t,n){return n=Zf(n),e.resolve(t,n)}Io.resolveUrl=A1e;const M1e=/^[a-z_][-a-z0-9._]*$/i;function P1e(e,t){if(typeof e=="boolean")return{};const{schemaId:n,uriResolver:r}=this.opts,o=Zf(e[n]||t),i={"":o},a=uV(r,o,!1),s={},l=new Set;return C1e(e,{allKeys:!0},(u,d,h,p)=>{if(p===void 0)return;const m=a+d;let v=i[p];typeof u[n]=="string"&&(v=g.call(this,u[n])),y.call(this,u.$anchor),y.call(this,u.$dynamicAnchor),i[d]=v;function g(w){const k=this.opts.uriResolver.resolve;if(w=Zf(v?k(v,w):w),l.has(w))throw f(w);l.add(w);let $=this.refs[w];return typeof $=="string"&&($=this.refs[$]),typeof $=="object"?c(u,$.schema,w):w!==Zf(m)&&(w[0]==="#"?(c(u,s[w],w),s[w]=u):this.refs[w]=m),w}function y(w){if(typeof w=="string"){if(!M1e.test(w))throw new Error(`invalid anchor "${w}"`);g.call(this,`#${w}`)}}}),s;function c(u,d,h){if(d!==void 0&&!S1e(u,d))throw f(h)}function f(u){return new Error(`reference "${u}" resolves to more than one schema`)}}Io.getSchemaRefs=P1e,Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.getData=Ua.KeywordCxt=Ua.validateFunctionCode=void 0;const dV=Yf,hV=hp,Q_=fl,k0=hp,N1e=b0,pp=As,Y_=uc,Yt=Fn,hn=Es,I1e=Io,dl=Xn,mp=fp;function D1e(e){if(gV(e)&&(yV(e),vV(e))){B1e(e);return}pV(e,()=>(0,dV.topBoolOrEmptySchema)(e))}Ua.validateFunctionCode=D1e;function pV({gen:e,validateName:t,schema:n,schemaEnv:r,opts:o},i){o.code.es5?e.func(t,(0,Yt._)`${hn.default.data}, ${hn.default.valCxt}`,r.$async,()=>{e.code((0,Yt._)`"use strict"; ${mV(n,o)}`),R1e(e,o),e.code(i)}):e.func(t,(0,Yt._)`${hn.default.data}, ${L1e(o)}`,r.$async,()=>e.code(mV(n,o)).code(i))}function L1e(e){return(0,Yt._)`{${hn.default.instancePath}="", ${hn.default.parentData}, ${hn.default.parentDataProperty}, ${hn.default.rootData}=${hn.default.data}${e.dynamicRef?(0,Yt._)`, ${hn.default.dynamicAnchors}={}`:Yt.nil}}={}`}function R1e(e,t){e.if(hn.default.valCxt,()=>{e.var(hn.default.instancePath,(0,Yt._)`${hn.default.valCxt}.${hn.default.instancePath}`),e.var(hn.default.parentData,(0,Yt._)`${hn.default.valCxt}.${hn.default.parentData}`),e.var(hn.default.parentDataProperty,(0,Yt._)`${hn.default.valCxt}.${hn.default.parentDataProperty}`),e.var(hn.default.rootData,(0,Yt._)`${hn.default.valCxt}.${hn.default.rootData}`),t.dynamicRef&&e.var(hn.default.dynamicAnchors,(0,Yt._)`${hn.default.valCxt}.${hn.default.dynamicAnchors}`)},()=>{e.var(hn.default.instancePath,(0,Yt._)`""`),e.var(hn.default.parentData,(0,Yt._)`undefined`),e.var(hn.default.parentDataProperty,(0,Yt._)`undefined`),e.var(hn.default.rootData,hn.default.data),t.dynamicRef&&e.var(hn.default.dynamicAnchors,(0,Yt._)`{}`)})}function B1e(e){const{schema:t,opts:n,gen:r}=e;pV(e,()=>{n.$comment&&t.$comment&&wV(e),U1e(e),r.let(hn.default.vErrors,null),r.let(hn.default.errors,0),n.unevaluated&&F1e(e),bV(e),K1e(e)})}function F1e(e){const{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",(0,Yt._)`${n}.evaluated`),t.if((0,Yt._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,Yt._)`${e.evaluated}.props`,(0,Yt._)`undefined`)),t.if((0,Yt._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,Yt._)`${e.evaluated}.items`,(0,Yt._)`undefined`))}function mV(e,t){const n=typeof e=="object"&&e[t.schemaId];return n&&(t.code.source||t.code.process)?(0,Yt._)`/*# sourceURL=${n} */`:Yt.nil}function V1e(e,t){if(gV(e)&&(yV(e),vV(e))){z1e(e,t);return}(0,dV.boolOrEmptySchema)(e,t)}function vV({schema:e,self:t}){if(typeof e=="boolean")return!e;for(const n in e)if(t.RULES.all[n])return!0;return!1}function gV(e){return typeof e.schema!="boolean"}function z1e(e,t){const{schema:n,gen:r,opts:o}=e;o.$comment&&n.$comment&&wV(e),H1e(e),W1e(e);const i=r.const("_errs",hn.default.errors);bV(e,i),r.var(t,(0,Yt._)`${i} === ${hn.default.errors}`)}function yV(e){(0,dl.checkUnknownRules)(e),q1e(e)}function bV(e,t){if(e.opts.jtd)return kV(e,[],!1,t);const n=(0,hV.getSchemaTypes)(e.schema),r=(0,hV.coerceAndCheckDataType)(e,n);kV(e,n,!r,t)}function q1e(e){const{schema:t,errSchemaPath:n,opts:r,self:o}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,dl.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function U1e(e){const{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,dl.checkStrictMode)(e,"default is ignored in the schema root")}function H1e(e){const t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,I1e.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function W1e(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function wV({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:o}){const i=n.$comment;if(o.$comment===!0)e.code((0,Yt._)`${hn.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){const a=(0,Yt.str)`${r}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,Yt._)`${hn.default.self}.opts.$comment(${i}, ${a}, ${s}.schema)`)}}function K1e(e){const{gen:t,schemaEnv:n,validateName:r,ValidationError:o,opts:i}=e;n.$async?t.if((0,Yt._)`${hn.default.errors} === 0`,()=>t.return(hn.default.data),()=>t.throw((0,Yt._)`new ${o}(${hn.default.vErrors})`)):(t.assign((0,Yt._)`${r}.errors`,hn.default.vErrors),i.unevaluated&&G1e(e),t.return((0,Yt._)`${hn.default.errors} === 0`))}function G1e({gen:e,evaluated:t,props:n,items:r}){n instanceof Yt.Name&&e.assign((0,Yt._)`${t}.props`,n),r instanceof Yt.Name&&e.assign((0,Yt._)`${t}.items`,r)}function kV(e,t,n,r){const{gen:o,schema:i,data:a,allErrors:s,opts:l,self:c}=e,{RULES:f}=c;if(i.$ref&&(l.ignoreKeywordsWithRef||!(0,dl.schemaHasRulesButRef)(i,f))){o.block(()=>SV(e,"$ref",f.all.$ref.definition));return}l.jtd||J1e(e,t),o.block(()=>{for(const d of f.rules)u(d);u(f.post)});function u(d){(0,Q_.shouldUseGroup)(i,d)&&(d.type?(o.if((0,k0.checkDataType)(d.type,a,l.strictNumbers)),xV(e,d),t.length===1&&t[0]===d.type&&n&&(o.else(),(0,k0.reportTypeError)(e)),o.endIf()):xV(e,d),s||o.if((0,Yt._)`${hn.default.errors} === ${r||0}`))}}function xV(e,t){const{gen:n,schema:r,opts:{useDefaults:o}}=e;o&&(0,N1e.assignDefaults)(e,t.type),n.block(()=>{for(const i of t.rules)(0,Q_.shouldUseRule)(r,i)&&SV(e,i.keyword,i.definition,t.type)})}function J1e(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Q1e(e,t),e.opts.allowUnionTypes||Y1e(e,t),X1e(e,e.dataTypes))}function Q1e(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{_V(e.dataTypes,n)||X_(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),ebe(e,t)}}function Y1e(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&X_(e,"use allowUnionTypes to allow union type keyword")}function X1e(e,t){const n=e.self.RULES.all;for(const r in n){const o=n[r];if(typeof o=="object"&&(0,Q_.shouldUseRule)(e.schema,o)){const{type:i}=o.definition;i.length&&!i.some(a=>Z1e(t,a))&&X_(e,`missing type "${i.join(",")}" for keyword "${r}"`)}}}function Z1e(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function _V(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function ebe(e,t){const n=[];for(const r of e.dataTypes)_V(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function X_(e,t){const n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,dl.checkStrictMode)(e,t,e.opts.strictTypes)}class jV{constructor(t,n,r){if((0,pp.validateKeywordUsage)(t,n,r),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=r,this.data=t.data,this.schema=t.schema[r],this.$data=n.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,dl.schemaRefOrVal)(t,this.schema,r,this.$data),this.schemaType=n.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=n,this.$data)this.schemaCode=t.gen.const("vSchema",CV(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,pp.validSchemaType)(this.schema,n.schemaType,n.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(n.schemaType)}`);("code"in n?n.trackErrors:n.errors!==!1)&&(this.errsCount=t.gen.const("_errs",hn.default.errors))}result(t,n,r){this.failResult((0,Yt.not)(t),n,r)}failResult(t,n,r){this.gen.if(t),r?r():this.error(),n?(this.gen.else(),n(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,n){this.failResult((0,Yt.not)(t),void 0,n)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);const{schemaCode:n}=this;this.fail((0,Yt._)`${n} !== undefined && (${(0,Yt.or)(this.invalid$data(),t)})`)}error(t,n,r){if(n){this.setParams(n),this._error(t,r),this.setParams({});return}this._error(t,r)}_error(t,n){(t?mp.reportExtraError:mp.reportError)(this,this.def.error,n)}$dataError(){(0,mp.reportError)(this,this.def.$dataError||mp.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,mp.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,n){n?Object.assign(this.params,t):this.params=t}block$data(t,n,r=Yt.nil){this.gen.block(()=>{this.check$data(t,r),n()})}check$data(t=Yt.nil,n=Yt.nil){if(!this.$data)return;const{gen:r,schemaCode:o,schemaType:i,def:a}=this;r.if((0,Yt.or)((0,Yt._)`${o} === undefined`,n)),t!==Yt.nil&&r.assign(t,!0),(i.length||a.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),t!==Yt.nil&&r.assign(t,!1)),r.else()}invalid$data(){const{gen:t,schemaCode:n,schemaType:r,def:o,it:i}=this;return(0,Yt.or)(a(),s());function a(){if(r.length){if(!(n instanceof Yt.Name))throw new Error("ajv implementation error");const l=Array.isArray(r)?r:[r];return(0,Yt._)`${(0,k0.checkDataTypes)(l,n,i.opts.strictNumbers,k0.DataType.Wrong)}`}return Yt.nil}function s(){if(o.validateSchema){const l=t.scopeValue("validate$data",{ref:o.validateSchema});return(0,Yt._)`!${l}(${n})`}return Yt.nil}}subschema(t,n){const r=(0,Y_.getSubschema)(this.it,t);(0,Y_.extendSubschemaData)(r,this.it,t),(0,Y_.extendSubschemaMode)(r,t);const o={...this.it,...r,items:void 0,props:void 0};return V1e(o,n),o}mergeEvaluated(t,n){const{it:r,gen:o}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=dl.mergeEvaluated.props(o,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=dl.mergeEvaluated.items(o,t.items,r.items,n)))}mergeValidEvaluated(t,n){const{it:r,gen:o}=this;if(r.opts.unevaluated&&(r.props!==!0||r.items!==!0))return o.if(n,()=>this.mergeEvaluated(t,Yt.Name)),!0}}Ua.KeywordCxt=jV;function SV(e,t,n,r){const o=new jV(e,n,t);"code"in n?n.code(o,r):o.$data&&n.validate?(0,pp.funcKeywordCode)(o,n):"macro"in n?(0,pp.macroKeywordCode)(o,n):(n.compile||n.validate)&&(0,pp.funcKeywordCode)(o,n)}const tbe=/^\/(?:[^~]|~0|~1)*$/,nbe=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function CV(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let o,i;if(e==="")return hn.default.rootData;if(e[0]==="/"){if(!tbe.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=hn.default.rootData}else{const c=nbe.exec(e);if(!c)throw new Error(`Invalid JSON-pointer: ${e}`);const f=+c[1];if(o=c[2],o==="#"){if(f>=t)throw new Error(l("property/index",f));return r[t-f]}if(f>t)throw new Error(l("data",f));if(i=n[t-f],!o)return i}let a=i;const s=o.split("/");for(const c of s)c&&(i=(0,Yt._)`${i}${(0,Yt.getProperty)((0,dl.unescapeJsonPointer)(c))}`,a=(0,Yt._)`${a} && ${i}`);return a;function l(c,f){return`Cannot access ${c} ${f} levels up, current level is ${t}`}}Ua.getData=CV;var vp={};Object.defineProperty(vp,"__esModule",{value:!0});class rbe extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}}vp.default=rbe;var gp={};Object.defineProperty(gp,"__esModule",{value:!0});const Z_=Io;class obe extends Error{constructor(t,n,r,o){super(o||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,Z_.resolveUrl)(t,n,r),this.missingSchema=(0,Z_.normalizeId)((0,Z_.getFullPath)(t,this.missingRef))}}gp.default=obe;var Si={};Object.defineProperty(Si,"__esModule",{value:!0}),Si.resolveSchema=Si.getCompilingSchema=Si.resolveRef=Si.compileSchema=Si.SchemaEnv=void 0;const Ha=Fn,ibe=vp,mu=Es,Wa=Io,$V=Xn,abe=Ua;class x0{constructor(t){var n;this.refs={},this.dynamicAnchors={};let r;typeof t.schema=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,Wa.normalizeId)(r==null?void 0:r[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r==null?void 0:r.$async,this.refs={}}}Si.SchemaEnv=x0;function e2(e){const t=TV.call(this,e);if(t)return t;const n=(0,Wa.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:o}=this.opts.code,{ownProperties:i}=this.opts,a=new Ha.CodeGen(this.scope,{es5:r,lines:o,ownProperties:i});let s;e.$async&&(s=a.scopeValue("Error",{ref:ibe.default,code:(0,Ha._)`require("ajv/dist/runtime/validation_error").default`}));const l=a.scopeName("validate");e.validateName=l;const c={gen:a,allErrors:this.opts.allErrors,data:mu.default.data,parentData:mu.default.parentData,parentDataProperty:mu.default.parentDataProperty,dataNames:[mu.default.data],dataPathArr:[Ha.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,Ha.stringify)(e.schema)}:{ref:e.schema}),validateName:l,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:Ha.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Ha._)`""`,opts:this.opts,self:this};let f;try{this._compilations.add(e),(0,abe.validateFunctionCode)(c),a.optimize(this.opts.code.optimize);const u=a.toString();f=`${a.scopeRefs(mu.default.scope)}return ${u}`,this.opts.code.process&&(f=this.opts.code.process(f,e));const h=new Function(`${mu.default.self}`,`${mu.default.scope}`,f)(this,this.scope.get());if(this.scope.value(l,{ref:h}),h.errors=null,h.schema=e.schema,h.schemaEnv=e,e.$async&&(h.$async=!0),this.opts.code.source===!0&&(h.source={validateName:l,validateCode:u,scopeValues:a._values}),this.opts.unevaluated){const{props:p,items:m}=c;h.evaluated={props:p instanceof Ha.Name?void 0:p,items:m instanceof Ha.Name?void 0:m,dynamicProps:p instanceof Ha.Name,dynamicItems:m instanceof Ha.Name},h.source&&(h.source.evaluated=(0,Ha.stringify)(h.evaluated))}return e.validate=h,e}catch(u){throw delete e.validate,delete e.validateName,f&&this.logger.error("Error compiling schema, function code:",f),u}finally{this._compilations.delete(e)}}Si.compileSchema=e2;function sbe(e,t,n){var r;n=(0,Wa.resolveUrl)(this.opts.uriResolver,t,n);const o=e.refs[n];if(o)return o;let i=ube.call(this,e,n);if(i===void 0){const a=(r=e.localRefs)===null||r===void 0?void 0:r[n],{schemaId:s}=this.opts;a&&(i=new x0({schema:a,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[n]=lbe.call(this,i)}Si.resolveRef=sbe;function lbe(e){return(0,Wa.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:e2.call(this,e)}function TV(e){for(const t of this._compilations)if(cbe(t,e))return t}Si.getCompilingSchema=TV;function cbe(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function ube(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||_0.call(this,e,t)}function _0(e,t){const n=this.opts.uriResolver.parse(t),r=(0,Wa._getFullPath)(this.opts.uriResolver,n);let o=(0,Wa.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===o)return t2.call(this,n,e);const i=(0,Wa.normalizeId)(r),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){const s=_0.call(this,e,a);return typeof(s==null?void 0:s.schema)!="object"?void 0:t2.call(this,n,s)}if(typeof(a==null?void 0:a.schema)=="object"){if(a.validate||e2.call(this,a),i===(0,Wa.normalizeId)(t)){const{schema:s}=a,{schemaId:l}=this.opts,c=s[l];return c&&(o=(0,Wa.resolveUrl)(this.opts.uriResolver,o,c)),new x0({schema:s,schemaId:l,root:e,baseId:o})}return t2.call(this,n,a)}}Si.resolveSchema=_0;const fbe=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function t2(e,{baseId:t,schema:n,root:r}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(const s of e.fragment.slice(1).split("/")){if(typeof n=="boolean")return;const l=n[(0,$V.unescapeFragment)(s)];if(l===void 0)return;n=l;const c=typeof n=="object"&&n[this.opts.schemaId];!fbe.has(s)&&c&&(t=(0,Wa.resolveUrl)(this.opts.uriResolver,t,c))}let i;if(typeof n!="boolean"&&n.$ref&&!(0,$V.schemaHasRulesButRef)(n,this.RULES)){const s=(0,Wa.resolveUrl)(this.opts.uriResolver,t,n.$ref);i=_0.call(this,r,s)}const{schemaId:a}=this.opts;if(i=i||new x0({schema:n,schemaId:a,root:r,baseId:t}),i.schema!==i.root.schema)return i}const dbe={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1};var n2={},r2={exports:{}};/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */(function(e,t){(function(n,r){r(t)})(ei,function(n){function r(){for(var q=arguments.length,X=Array(q),de=0;de<q;de++)X[de]=arguments[de];if(X.length>1){X[0]=X[0].slice(0,-1);for(var je=X.length-1,Te=1;Te<je;++Te)X[Te]=X[Te].slice(1,-1);return X[je]=X[je].slice(1),X.join("")}else return X[0]}function o(q){return"(?:"+q+")"}function i(q){return q===void 0?"undefined":q===null?"null":Object.prototype.toString.call(q).split(" ").pop().split("]").shift().toLowerCase()}function a(q){return q.toUpperCase()}function s(q){return q!=null?q instanceof Array?q:typeof q.length!="number"||q.split||q.setInterval||q.call?[q]:Array.prototype.slice.call(q):[]}function l(q,X){var de=q;if(X)for(var je in X)de[je]=X[je];return de}function c(q){var X="[A-Za-z]",de="[0-9]",je=r(de,"[A-Fa-f]"),Te=o(o("%[EFef]"+je+"%"+je+je+"%"+je+je)+"|"+o("%[89A-Fa-f]"+je+"%"+je+je)+"|"+o("%"+je+je)),it="[\\:\\/\\?\\#\\[\\]\\@]",ht="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",$t=r(it,ht),bt=q?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]",Ht=q?"[\\uE000-\\uF8FF]":"[]",ct=r(X,de,"[\\-\\.\\_\\~]",bt);o(X+r(X,de,"[\\+\\-\\.]")+"*"),o(o(Te+"|"+r(ct,ht,"[\\:]"))+"*");var on=o(o("25[0-5]")+"|"+o("2[0-4]"+de)+"|"+o("1"+de+de)+"|"+o("0?[1-9]"+de)+"|0?0?"+de),P=o(on+"\\."+on+"\\."+on+"\\."+on),J=o(je+"{1,4}"),ze=o(o(J+"\\:"+J)+"|"+P),nt=o(o(J+"\\:")+"{6}"+ze),at=o("\\:\\:"+o(J+"\\:")+"{5}"+ze),wt=o(o(J)+"?\\:\\:"+o(J+"\\:")+"{4}"+ze),Xt=o(o(o(J+"\\:")+"{0,1}"+J)+"?\\:\\:"+o(J+"\\:")+"{3}"+ze),Wt=o(o(o(J+"\\:")+"{0,2}"+J)+"?\\:\\:"+o(J+"\\:")+"{2}"+ze),Pt=o(o(o(J+"\\:")+"{0,3}"+J)+"?\\:\\:"+J+"\\:"+ze),Nt=o(o(o(J+"\\:")+"{0,4}"+J)+"?\\:\\:"+ze),Cn=o(o(o(J+"\\:")+"{0,5}"+J)+"?\\:\\:"+J),Pn=o(o(o(J+"\\:")+"{0,6}"+J)+"?\\:\\:"),dr=o([nt,at,wt,Xt,Wt,Pt,Nt,Cn,Pn].join("|")),qr=o(o(ct+"|"+Te)+"+");o("[vV]"+je+"+\\."+r(ct,ht,"[\\:]")+"+"),o(o(Te+"|"+r(ct,ht))+"*");var Lo=o(Te+"|"+r(ct,ht,"[\\:\\@]"));return o(o(Te+"|"+r(ct,ht,"[\\@]"))+"+"),o(o(Lo+"|"+r("[\\/\\?]",Ht))+"*"),{NOT_SCHEME:new RegExp(r("[^]",X,de,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(r("[^\\%\\:]",ct,ht),"g"),NOT_HOST:new RegExp(r("[^\\%\\[\\]\\:]",ct,ht),"g"),NOT_PATH:new RegExp(r("[^\\%\\/\\:\\@]",ct,ht),"g"),NOT_PATH_NOSCHEME:new RegExp(r("[^\\%\\/\\@]",ct,ht),"g"),NOT_QUERY:new RegExp(r("[^\\%]",ct,ht,"[\\:\\@\\/\\?]",Ht),"g"),NOT_FRAGMENT:new RegExp(r("[^\\%]",ct,ht,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(r("[^]",ct,ht),"g"),UNRESERVED:new RegExp(ct,"g"),OTHER_CHARS:new RegExp(r("[^\\%]",ct,$t),"g"),PCT_ENCODED:new RegExp(Te,"g"),IPV4ADDRESS:new RegExp("^("+P+")$"),IPV6ADDRESS:new RegExp("^\\[?("+dr+")"+o(o("\\%25|\\%(?!"+je+"{2})")+"("+qr+")")+"?\\]?$")}}var f=c(!1),u=c(!0),d=function(){function q(X,de){var je=[],Te=!0,it=!1,ht=void 0;try{for(var $t=X[Symbol.iterator](),bt;!(Te=(bt=$t.next()).done)&&(je.push(bt.value),!(de&&je.length===de));Te=!0);}catch(Ht){it=!0,ht=Ht}finally{try{!Te&&$t.return&&$t.return()}finally{if(it)throw ht}}return je}return function(X,de){if(Array.isArray(X))return X;if(Symbol.iterator in Object(X))return q(X,de);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=function(q){if(Array.isArray(q)){for(var X=0,de=Array(q.length);X<q.length;X++)de[X]=q[X];return de}else return Array.from(q)},p=2147483647,m=36,v=1,g=26,y=38,w=700,k=72,$=128,j="-",E=/^xn--/,I=/[^\0-\x7E]/,D=/[\x2E\u3002\uFF0E\uFF61]/g,L={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},M=m-v,F=Math.floor,H=String.fromCharCode;function N(q){throw new RangeError(L[q])}function W(q,X){for(var de=[],je=q.length;je--;)de[je]=X(q[je]);return de}function ee(q,X){var de=q.split("@"),je="";de.length>1&&(je=de[0]+"@",q=de[1]),q=q.replace(D,".");var Te=q.split("."),it=W(Te,X).join(".");return je+it}function U(q){for(var X=[],de=0,je=q.length;de<je;){var Te=q.charCodeAt(de++);if(Te>=55296&&Te<=56319&&de<je){var it=q.charCodeAt(de++);(it&64512)==56320?X.push(((Te&1023)<<10)+(it&1023)+65536):(X.push(Te),de--)}else X.push(Te)}return X}var K=function(X){return String.fromCodePoint.apply(String,h(X))},A=function(X){return X-48<10?X-22:X-65<26?X-65:X-97<26?X-97:m},T=function(X,de){return X+22+75*(X<26)-((de!=0)<<5)},x=function(X,de,je){var Te=0;for(X=je?F(X/w):X>>1,X+=F(X/de);X>M*g>>1;Te+=m)X=F(X/M);return F(Te+(M+1)*X/(X+y))},O=function(X){var de=[],je=X.length,Te=0,it=$,ht=k,$t=X.lastIndexOf(j);$t<0&&($t=0);for(var bt=0;bt<$t;++bt)X.charCodeAt(bt)>=128&&N("not-basic"),de.push(X.charCodeAt(bt));for(var Ht=$t>0?$t+1:0;Ht<je;){for(var ct=Te,on=1,P=m;;P+=m){Ht>=je&&N("invalid-input");var J=A(X.charCodeAt(Ht++));(J>=m||J>F((p-Te)/on))&&N("overflow"),Te+=J*on;var ze=P<=ht?v:P>=ht+g?g:P-ht;if(J<ze)break;var nt=m-ze;on>F(p/nt)&&N("overflow"),on*=nt}var at=de.length+1;ht=x(Te-ct,at,ct==0),F(Te/at)>p-it&&N("overflow"),it+=F(Te/at),Te%=at,de.splice(Te++,0,it)}return String.fromCodePoint.apply(String,de)},S=function(X){var de=[];X=U(X);var je=X.length,Te=$,it=0,ht=k,$t=!0,bt=!1,Ht=void 0;try{for(var ct=X[Symbol.iterator](),on;!($t=(on=ct.next()).done);$t=!0){var P=on.value;P<128&&de.push(H(P))}}catch(Is){bt=!0,Ht=Is}finally{try{!$t&&ct.return&&ct.return()}finally{if(bt)throw Ht}}var J=de.length,ze=J;for(J&&de.push(j);ze<je;){var nt=p,at=!0,wt=!1,Xt=void 0;try{for(var Wt=X[Symbol.iterator](),Pt;!(at=(Pt=Wt.next()).done);at=!0){var Nt=Pt.value;Nt>=Te&&Nt<nt&&(nt=Nt)}}catch(Is){wt=!0,Xt=Is}finally{try{!at&&Wt.return&&Wt.return()}finally{if(wt)throw Xt}}var Cn=ze+1;nt-Te>F((p-it)/Cn)&&N("overflow"),it+=(nt-Te)*Cn,Te=nt;var Pn=!0,dr=!1,qr=void 0;try{for(var Lo=X[Symbol.iterator](),Vi;!(Pn=(Vi=Lo.next()).done);Pn=!0){var fi=Vi.value;if(fi<Te&&++it>p&&N("overflow"),fi==Te){for(var di=it,Ro=m;;Ro+=m){var or=Ro<=ht?v:Ro>=ht+g?g:Ro-ht;if(di<or)break;var wu=di-or,gc=m-or;de.push(H(T(or+wu%gc,0))),di=F(wu/gc)}de.push(H(T(di,0))),ht=x(it,Cn,ze==J),it=0,++ze}}}catch(Is){dr=!0,qr=Is}finally{try{!Pn&&Lo.return&&Lo.return()}finally{if(dr)throw qr}}++it,++Te}return de.join("")},C=function(X){return ee(X,function(de){return E.test(de)?O(de.slice(4).toLowerCase()):de})},_=function(X){return ee(X,function(de){return I.test(de)?"xn--"+S(de):de})},R={version:"2.1.0",ucs2:{decode:U,encode:K},decode:O,encode:S,toASCII:_,toUnicode:C},Z={};function pe(q){var X=q.charCodeAt(0),de=void 0;return X<16?de="%0"+X.toString(16).toUpperCase():X<128?de="%"+X.toString(16).toUpperCase():X<2048?de="%"+(X>>6|192).toString(16).toUpperCase()+"%"+(X&63|128).toString(16).toUpperCase():de="%"+(X>>12|224).toString(16).toUpperCase()+"%"+(X>>6&63|128).toString(16).toUpperCase()+"%"+(X&63|128).toString(16).toUpperCase(),de}function _e(q){for(var X="",de=0,je=q.length;de<je;){var Te=parseInt(q.substr(de+1,2),16);if(Te<128)X+=String.fromCharCode(Te),de+=3;else if(Te>=194&&Te<224){if(je-de>=6){var it=parseInt(q.substr(de+4,2),16);X+=String.fromCharCode((Te&31)<<6|it&63)}else X+=q.substr(de,6);de+=6}else if(Te>=224){if(je-de>=9){var ht=parseInt(q.substr(de+4,2),16),$t=parseInt(q.substr(de+7,2),16);X+=String.fromCharCode((Te&15)<<12|(ht&63)<<6|$t&63)}else X+=q.substr(de,9);de+=9}else X+=q.substr(de,3),de+=3}return X}function ke(q,X){function de(je){var Te=_e(je);return Te.match(X.UNRESERVED)?Te:je}return q.scheme&&(q.scheme=String(q.scheme).replace(X.PCT_ENCODED,de).toLowerCase().replace(X.NOT_SCHEME,"")),q.userinfo!==void 0&&(q.userinfo=String(q.userinfo).replace(X.PCT_ENCODED,de).replace(X.NOT_USERINFO,pe).replace(X.PCT_ENCODED,a)),q.host!==void 0&&(q.host=String(q.host).replace(X.PCT_ENCODED,de).toLowerCase().replace(X.NOT_HOST,pe).replace(X.PCT_ENCODED,a)),q.path!==void 0&&(q.path=String(q.path).replace(X.PCT_ENCODED,de).replace(q.scheme?X.NOT_PATH:X.NOT_PATH_NOSCHEME,pe).replace(X.PCT_ENCODED,a)),q.query!==void 0&&(q.query=String(q.query).replace(X.PCT_ENCODED,de).replace(X.NOT_QUERY,pe).replace(X.PCT_ENCODED,a)),q.fragment!==void 0&&(q.fragment=String(q.fragment).replace(X.PCT_ENCODED,de).replace(X.NOT_FRAGMENT,pe).replace(X.PCT_ENCODED,a)),q}function ue(q){return q.replace(/^0*(.*)/,"$1")||"0"}function Ne(q,X){var de=q.match(X.IPV4ADDRESS)||[],je=d(de,2),Te=je[1];return Te?Te.split(".").map(ue).join("."):q}function oe(q,X){var de=q.match(X.IPV6ADDRESS)||[],je=d(de,3),Te=je[1],it=je[2];if(Te){for(var ht=Te.toLowerCase().split("::").reverse(),$t=d(ht,2),bt=$t[0],Ht=$t[1],ct=Ht?Ht.split(":").map(ue):[],on=bt.split(":").map(ue),P=X.IPV4ADDRESS.test(on[on.length-1]),J=P?7:8,ze=on.length-J,nt=Array(J),at=0;at<J;++at)nt[at]=ct[at]||on[ze+at]||"";P&&(nt[J-1]=Ne(nt[J-1],X));var wt=nt.reduce(function(Cn,Pn,dr){if(!Pn||Pn==="0"){var qr=Cn[Cn.length-1];qr&&qr.index+qr.length===dr?qr.length++:Cn.push({index:dr,length:1})}return Cn},[]),Xt=wt.sort(function(Cn,Pn){return Pn.length-Cn.length})[0],Wt=void 0;if(Xt&&Xt.length>1){var Pt=nt.slice(0,Xt.index),Nt=nt.slice(Xt.index+Xt.length);Wt=Pt.join(":")+"::"+Nt.join(":")}else Wt=nt.join(":");return it&&(Wt+="%"+it),Wt}else return q}var ye=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,fe="".match(/(){0}/)[1]===void 0;function Fe(q){var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},de={},je=X.iri!==!1?u:f;X.reference==="suffix"&&(q=(X.scheme?X.scheme+":":"")+"//"+q);var Te=q.match(ye);if(Te){fe?(de.scheme=Te[1],de.userinfo=Te[3],de.host=Te[4],de.port=parseInt(Te[5],10),de.path=Te[6]||"",de.query=Te[7],de.fragment=Te[8],isNaN(de.port)&&(de.port=Te[5])):(de.scheme=Te[1]||void 0,de.userinfo=q.indexOf("@")!==-1?Te[3]:void 0,de.host=q.indexOf("//")!==-1?Te[4]:void 0,de.port=parseInt(Te[5],10),de.path=Te[6]||"",de.query=q.indexOf("?")!==-1?Te[7]:void 0,de.fragment=q.indexOf("#")!==-1?Te[8]:void 0,isNaN(de.port)&&(de.port=q.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?Te[4]:void 0)),de.host&&(de.host=oe(Ne(de.host,je),je)),de.scheme===void 0&&de.userinfo===void 0&&de.host===void 0&&de.port===void 0&&!de.path&&de.query===void 0?de.reference="same-document":de.scheme===void 0?de.reference="relative":de.fragment===void 0?de.reference="absolute":de.reference="uri",X.reference&&X.reference!=="suffix"&&X.reference!==de.reference&&(de.error=de.error||"URI is not a "+X.reference+" reference.");var it=Z[(X.scheme||de.scheme||"").toLowerCase()];if(!X.unicodeSupport&&(!it||!it.unicodeSupport)){if(de.host&&(X.domainHost||it&&it.domainHost))try{de.host=R.toASCII(de.host.replace(je.PCT_ENCODED,_e).toLowerCase())}catch(ht){de.error=de.error||"Host's domain name can not be converted to ASCII via punycode: "+ht}ke(de,f)}else ke(de,je);it&&it.parse&&it.parse(de,X)}else de.error=de.error||"URI can not be parsed.";return de}function Y(q,X){var de=X.iri!==!1?u:f,je=[];return q.userinfo!==void 0&&(je.push(q.userinfo),je.push("@")),q.host!==void 0&&je.push(oe(Ne(String(q.host),de),de).replace(de.IPV6ADDRESS,function(Te,it,ht){return"["+it+(ht?"%25"+ht:"")+"]"})),(typeof q.port=="number"||typeof q.port=="string")&&(je.push(":"),je.push(String(q.port))),je.length?je.join(""):void 0}var Q=/^\.\.?\//,ve=/^\/\.(\/|$)/,Ae=/^\/\.\.(\/|$)/,Me=/^\/?(?:.|\n)*?(?=\/|$)/;function Ve(q){for(var X=[];q.length;)if(q.match(Q))q=q.replace(Q,"");else if(q.match(ve))q=q.replace(ve,"/");else if(q.match(Ae))q=q.replace(Ae,"/"),X.pop();else if(q==="."||q==="..")q="";else{var de=q.match(Me);if(de){var je=de[0];q=q.slice(je.length),X.push(je)}else throw new Error("Unexpected dot segment condition")}return X.join("")}function xe(q){var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},de=X.iri?u:f,je=[],Te=Z[(X.scheme||q.scheme||"").toLowerCase()];if(Te&&Te.serialize&&Te.serialize(q,X),q.host&&!de.IPV6ADDRESS.test(q.host)){if(X.domainHost||Te&&Te.domainHost)try{q.host=X.iri?R.toUnicode(q.host):R.toASCII(q.host.replace(de.PCT_ENCODED,_e).toLowerCase())}catch($t){q.error=q.error||"Host's domain name can not be converted to "+(X.iri?"Unicode":"ASCII")+" via punycode: "+$t}}ke(q,de),X.reference!=="suffix"&&q.scheme&&(je.push(q.scheme),je.push(":"));var it=Y(q,X);if(it!==void 0&&(X.reference!=="suffix"&&je.push("//"),je.push(it),q.path&&q.path.charAt(0)!=="/"&&je.push("/")),q.path!==void 0){var ht=q.path;!X.absolutePath&&(!Te||!Te.absolutePath)&&(ht=Ve(ht)),it===void 0&&(ht=ht.replace(/^\/\//,"/%2F")),je.push(ht)}return q.query!==void 0&&(je.push("?"),je.push(q.query)),q.fragment!==void 0&&(je.push("#"),je.push(q.fragment)),je.join("")}function Ie(q,X){var de=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},je=arguments[3],Te={};return je||(q=Fe(xe(q,de),de),X=Fe(xe(X,de),de)),de=de||{},!de.tolerant&&X.scheme?(Te.scheme=X.scheme,Te.userinfo=X.userinfo,Te.host=X.host,Te.port=X.port,Te.path=Ve(X.path||""),Te.query=X.query):(X.userinfo!==void 0||X.host!==void 0||X.port!==void 0?(Te.userinfo=X.userinfo,Te.host=X.host,Te.port=X.port,Te.path=Ve(X.path||""),Te.query=X.query):(X.path?(X.path.charAt(0)==="/"?Te.path=Ve(X.path):((q.userinfo!==void 0||q.host!==void 0||q.port!==void 0)&&!q.path?Te.path="/"+X.path:q.path?Te.path=q.path.slice(0,q.path.lastIndexOf("/")+1)+X.path:Te.path=X.path,Te.path=Ve(Te.path)),Te.query=X.query):(Te.path=q.path,X.query!==void 0?Te.query=X.query:Te.query=q.query),Te.userinfo=q.userinfo,Te.host=q.host,Te.port=q.port),Te.scheme=q.scheme),Te.fragment=X.fragment,Te}function qe(q,X,de){var je=l({scheme:"null"},de);return xe(Ie(Fe(q,je),Fe(X,je),je,!0),je)}function tt(q,X){return typeof q=="string"?q=xe(Fe(q,X),X):i(q)==="object"&&(q=Fe(xe(q,X),X)),q}function We(q,X,de){return typeof q=="string"?q=xe(Fe(q,de),de):i(q)==="object"&&(q=xe(q,de)),typeof X=="string"?X=xe(Fe(X,de),de):i(X)==="object"&&(X=xe(X,de)),q===X}function ut(q,X){return q&&q.toString().replace(!X||!X.iri?f.ESCAPE:u.ESCAPE,pe)}function gt(q,X){return q&&q.toString().replace(!X||!X.iri?f.PCT_ENCODED:u.PCT_ENCODED,_e)}var Dt={scheme:"http",domainHost:!0,parse:function(X,de){return X.host||(X.error=X.error||"HTTP URIs must have a host."),X},serialize:function(X,de){var je=String(X.scheme).toLowerCase()==="https";return(X.port===(je?443:80)||X.port==="")&&(X.port=void 0),X.path||(X.path="/"),X}},jt={scheme:"https",domainHost:Dt.domainHost,parse:Dt.parse,serialize:Dt.serialize};function En(q){return typeof q.secure=="boolean"?q.secure:String(q.scheme).toLowerCase()==="wss"}var Lt={scheme:"ws",domainHost:!0,parse:function(X,de){var je=X;return je.secure=En(je),je.resourceName=(je.path||"/")+(je.query?"?"+je.query:""),je.path=void 0,je.query=void 0,je},serialize:function(X,de){if((X.port===(En(X)?443:80)||X.port==="")&&(X.port=void 0),typeof X.secure=="boolean"&&(X.scheme=X.secure?"wss":"ws",X.secure=void 0),X.resourceName){var je=X.resourceName.split("?"),Te=d(je,2),it=Te[0],ht=Te[1];X.path=it&&it!=="/"?it:void 0,X.query=ht,X.resourceName=void 0}return X.fragment=void 0,X}},jn={scheme:"wss",domainHost:Lt.domainHost,parse:Lt.parse,serialize:Lt.serialize},fn={},Kn="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",bn="[0-9A-Fa-f]",Hn=o(o("%[EFef]"+bn+"%"+bn+bn+"%"+bn+bn)+"|"+o("%[89A-Fa-f]"+bn+"%"+bn+bn)+"|"+o("%"+bn+bn)),Ln="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",Sn="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",wn=r(Sn,'[\\"\\\\]'),ln="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",er=new RegExp(Kn,"g"),Gn=new RegExp(Hn,"g"),Pe=new RegExp(r("[^]",Ln,"[\\.]",'[\\"]',wn),"g"),dt=new RegExp(r("[^]",Kn,ln),"g"),Ct=dt;function rn(q){var X=_e(q);return X.match(er)?X:q}var Oe={scheme:"mailto",parse:function(X,de){var je=X,Te=je.to=je.path?je.path.split(","):[];if(je.path=void 0,je.query){for(var it=!1,ht={},$t=je.query.split("&"),bt=0,Ht=$t.length;bt<Ht;++bt){var ct=$t[bt].split("=");switch(ct[0]){case"to":for(var on=ct[1].split(","),P=0,J=on.length;P<J;++P)Te.push(on[P]);break;case"subject":je.subject=gt(ct[1],de);break;case"body":je.body=gt(ct[1],de);break;default:it=!0,ht[gt(ct[0],de)]=gt(ct[1],de);break}}it&&(je.headers=ht)}je.query=void 0;for(var ze=0,nt=Te.length;ze<nt;++ze){var at=Te[ze].split("@");if(at[0]=gt(at[0]),de.unicodeSupport)at[1]=gt(at[1],de).toLowerCase();else try{at[1]=R.toASCII(gt(at[1],de).toLowerCase())}catch(wt){je.error=je.error||"Email address's domain name can not be converted to ASCII via punycode: "+wt}Te[ze]=at.join("@")}return je},serialize:function(X,de){var je=X,Te=s(X.to);if(Te){for(var it=0,ht=Te.length;it<ht;++it){var $t=String(Te[it]),bt=$t.lastIndexOf("@"),Ht=$t.slice(0,bt).replace(Gn,rn).replace(Gn,a).replace(Pe,pe),ct=$t.slice(bt+1);try{ct=de.iri?R.toUnicode(ct):R.toASCII(gt(ct,de).toLowerCase())}catch(ze){je.error=je.error||"Email address's domain name can not be converted to "+(de.iri?"Unicode":"ASCII")+" via punycode: "+ze}Te[it]=Ht+"@"+ct}je.path=Te.join(",")}var on=X.headers=X.headers||{};X.subject&&(on.subject=X.subject),X.body&&(on.body=X.body);var P=[];for(var J in on)on[J]!==fn[J]&&P.push(J.replace(Gn,rn).replace(Gn,a).replace(dt,pe)+"="+on[J].replace(Gn,rn).replace(Gn,a).replace(Ct,pe));return P.length&&(je.query=P.join("&")),je}},lt=/^([^\:]+)\:(.*)/,re={scheme:"urn",parse:function(X,de){var je=X.path&&X.path.match(lt),Te=X;if(je){var it=de.scheme||Te.scheme||"urn",ht=je[1].toLowerCase(),$t=je[2],bt=it+":"+(de.nid||ht),Ht=Z[bt];Te.nid=ht,Te.nss=$t,Te.path=void 0,Ht&&(Te=Ht.parse(Te,de))}else Te.error=Te.error||"URN can not be parsed.";return Te},serialize:function(X,de){var je=de.scheme||X.scheme||"urn",Te=X.nid,it=je+":"+(de.nid||Te),ht=Z[it];ht&&(X=ht.serialize(X,de));var $t=X,bt=X.nss;return $t.path=(Te||de.nid)+":"+bt,$t}},he=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,z={scheme:"urn:uuid",parse:function(X,de){var je=X;return je.uuid=je.nss,je.nss=void 0,!de.tolerant&&(!je.uuid||!je.uuid.match(he))&&(je.error=je.error||"UUID is not valid."),je},serialize:function(X,de){var je=X;return je.nss=(X.uuid||"").toLowerCase(),je}};Z[Dt.scheme]=Dt,Z[jt.scheme]=jt,Z[Lt.scheme]=Lt,Z[jn.scheme]=jn,Z[Oe.scheme]=Oe,Z[re.scheme]=re,Z[z.scheme]=z,n.SCHEMES=Z,n.pctEncChar=pe,n.pctDecChars=_e,n.parse=Fe,n.removeDotSegments=Ve,n.serialize=xe,n.resolveComponents=Ie,n.resolve=qe,n.normalize=tt,n.equal=We,n.escapeComponent=ut,n.unescapeComponent=gt,Object.defineProperty(n,"__esModule",{value:!0})})})(r2,r2.exports);var hbe=r2.exports;Object.defineProperty(n2,"__esModule",{value:!0});const OV=hbe;OV.code='require("ajv/dist/runtime/uri").default',n2.default=OV,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=Ua;Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=Fn;Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});const r=vp,o=gp,i=hu,a=Si,s=Fn,l=Io,c=hp,f=Xn,u=dbe,d=n2,h=(T,x)=>new RegExp(T,x);h.code="new RegExp";const p=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),v={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},g={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=200;function w(T){var x,O,S,C,_,R,Z,pe,_e,ke,ue,Ne,oe,ye,fe,Fe,Y,Q,ve,Ae,Me,Ve,xe,Ie,qe;const tt=T.strict,We=(x=T.code)===null||x===void 0?void 0:x.optimize,ut=We===!0||We===void 0?1:We||0,gt=(S=(O=T.code)===null||O===void 0?void 0:O.regExp)!==null&&S!==void 0?S:h,Dt=(C=T.uriResolver)!==null&&C!==void 0?C:d.default;return{strictSchema:(R=(_=T.strictSchema)!==null&&_!==void 0?_:tt)!==null&&R!==void 0?R:!0,strictNumbers:(pe=(Z=T.strictNumbers)!==null&&Z!==void 0?Z:tt)!==null&&pe!==void 0?pe:!0,strictTypes:(ke=(_e=T.strictTypes)!==null&&_e!==void 0?_e:tt)!==null&&ke!==void 0?ke:"log",strictTuples:(Ne=(ue=T.strictTuples)!==null&&ue!==void 0?ue:tt)!==null&&Ne!==void 0?Ne:"log",strictRequired:(ye=(oe=T.strictRequired)!==null&&oe!==void 0?oe:tt)!==null&&ye!==void 0?ye:!1,code:T.code?{...T.code,optimize:ut,regExp:gt}:{optimize:ut,regExp:gt},loopRequired:(fe=T.loopRequired)!==null&&fe!==void 0?fe:y,loopEnum:(Fe=T.loopEnum)!==null&&Fe!==void 0?Fe:y,meta:(Y=T.meta)!==null&&Y!==void 0?Y:!0,messages:(Q=T.messages)!==null&&Q!==void 0?Q:!0,inlineRefs:(ve=T.inlineRefs)!==null&&ve!==void 0?ve:!0,schemaId:(Ae=T.schemaId)!==null&&Ae!==void 0?Ae:"$id",addUsedSchema:(Me=T.addUsedSchema)!==null&&Me!==void 0?Me:!0,validateSchema:(Ve=T.validateSchema)!==null&&Ve!==void 0?Ve:!0,validateFormats:(xe=T.validateFormats)!==null&&xe!==void 0?xe:!0,unicodeRegExp:(Ie=T.unicodeRegExp)!==null&&Ie!==void 0?Ie:!0,int32range:(qe=T.int32range)!==null&&qe!==void 0?qe:!0,uriResolver:Dt}}class k{constructor(x={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,x=this.opts={...x,...w(x)};const{es5:O,lines:S}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:m,es5:O,lines:S}),this.logger=F(x.logger);const C=x.validateFormats;x.validateFormats=!1,this.RULES=(0,i.getRules)(),$.call(this,v,x,"NOT SUPPORTED"),$.call(this,g,x,"DEPRECATED","warn"),this._metaOpts=L.call(this),x.formats&&I.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),x.keywords&&D.call(this,x.keywords),typeof x.meta=="object"&&this.addMetaSchema(x.meta),E.call(this),x.validateFormats=C}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:x,meta:O,schemaId:S}=this.opts;let C=u;S==="id"&&(C={...u},C.id=C.$id,delete C.$id),O&&x&&this.addMetaSchema(C,C[S],!1)}defaultMeta(){const{meta:x,schemaId:O}=this.opts;return this.opts.defaultMeta=typeof x=="object"?x[O]||x:void 0}validate(x,O){let S;if(typeof x=="string"){if(S=this.getSchema(x),!S)throw new Error(`no schema with key or ref "${x}"`)}else S=this.compile(x);const C=S(O);return"$async"in S||(this.errors=S.errors),C}compile(x,O){const S=this._addSchema(x,O);return S.validate||this._compileSchemaEnv(S)}compileAsync(x,O){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");const{loadSchema:S}=this.opts;return C.call(this,x,O);async function C(ke,ue){await _.call(this,ke.$schema);const Ne=this._addSchema(ke,ue);return Ne.validate||R.call(this,Ne)}async function _(ke){ke&&!this.getSchema(ke)&&await C.call(this,{$ref:ke},!0)}async function R(ke){try{return this._compileSchemaEnv(ke)}catch(ue){if(!(ue instanceof o.default))throw ue;return Z.call(this,ue),await pe.call(this,ue.missingSchema),R.call(this,ke)}}function Z({missingSchema:ke,missingRef:ue}){if(this.refs[ke])throw new Error(`AnySchema ${ke} is loaded but ${ue} cannot be resolved`)}async function pe(ke){const ue=await _e.call(this,ke);this.refs[ke]||await _.call(this,ue.$schema),this.refs[ke]||this.addSchema(ue,ke,O)}async function _e(ke){const ue=this._loading[ke];if(ue)return ue;try{return await(this._loading[ke]=S(ke))}finally{delete this._loading[ke]}}}addSchema(x,O,S,C=this.opts.validateSchema){if(Array.isArray(x)){for(const R of x)this.addSchema(R,void 0,S,C);return this}let _;if(typeof x=="object"){const{schemaId:R}=this.opts;if(_=x[R],_!==void 0&&typeof _!="string")throw new Error(`schema ${R} must be string`)}return O=(0,l.normalizeId)(O||_),this._checkUnique(O),this.schemas[O]=this._addSchema(x,S,O,C,!0),this}addMetaSchema(x,O,S=this.opts.validateSchema){return this.addSchema(x,O,!0,S),this}validateSchema(x,O){if(typeof x=="boolean")return!0;let S;if(S=x.$schema,S!==void 0&&typeof S!="string")throw new Error("$schema must be a string");if(S=S||this.opts.defaultMeta||this.defaultMeta(),!S)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const C=this.validate(S,x);if(!C&&O){const _="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(_);else throw new Error(_)}return C}getSchema(x){let O;for(;typeof(O=j.call(this,x))=="string";)x=O;if(O===void 0){const{schemaId:S}=this.opts,C=new a.SchemaEnv({schema:{},schemaId:S});if(O=a.resolveSchema.call(this,C,x),!O)return;this.refs[x]=O}return O.validate||this._compileSchemaEnv(O)}removeSchema(x){if(x instanceof RegExp)return this._removeAllSchemas(this.schemas,x),this._removeAllSchemas(this.refs,x),this;switch(typeof x){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const O=j.call(this,x);return typeof O=="object"&&this._cache.delete(O.schema),delete this.schemas[x],delete this.refs[x],this}case"object":{const O=x;this._cache.delete(O);let S=x[this.opts.schemaId];return S&&(S=(0,l.normalizeId)(S),delete this.schemas[S],delete this.refs[S]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(x){for(const O of x)this.addKeyword(O);return this}addKeyword(x,O){let S;if(typeof x=="string")S=x,typeof O=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),O.keyword=S);else if(typeof x=="object"&&O===void 0){if(O=x,S=O.keyword,Array.isArray(S)&&!S.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(N.call(this,S,O),!O)return(0,f.eachItem)(S,_=>W.call(this,_)),this;U.call(this,O);const C={...O,type:(0,c.getJSONTypes)(O.type),schemaType:(0,c.getJSONTypes)(O.schemaType)};return(0,f.eachItem)(S,C.type.length===0?_=>W.call(this,_,C):_=>C.type.forEach(R=>W.call(this,_,C,R))),this}getKeyword(x){const O=this.RULES.all[x];return typeof O=="object"?O.definition:!!O}removeKeyword(x){const{RULES:O}=this;delete O.keywords[x],delete O.all[x];for(const S of O.rules){const C=S.rules.findIndex(_=>_.keyword===x);C>=0&&S.rules.splice(C,1)}return this}addFormat(x,O){return typeof O=="string"&&(O=new RegExp(O)),this.formats[x]=O,this}errorsText(x=this.errors,{separator:O=", ",dataVar:S="data"}={}){return!x||x.length===0?"No errors":x.map(C=>`${S}${C.instancePath} ${C.message}`).reduce((C,_)=>C+O+_)}$dataMetaSchema(x,O){const S=this.RULES.all;x=JSON.parse(JSON.stringify(x));for(const C of O){const _=C.split("/").slice(1);let R=x;for(const Z of _)R=R[Z];for(const Z in S){const pe=S[Z];if(typeof pe!="object")continue;const{$data:_e}=pe.definition,ke=R[Z];_e&&ke&&(R[Z]=A(ke))}}return x}_removeAllSchemas(x,O){for(const S in x){const C=x[S];(!O||O.test(S))&&(typeof C=="string"?delete x[S]:C&&!C.meta&&(this._cache.delete(C.schema),delete x[S]))}}_addSchema(x,O,S,C=this.opts.validateSchema,_=this.opts.addUsedSchema){let R;const{schemaId:Z}=this.opts;if(typeof x=="object")R=x[Z];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof x!="boolean")throw new Error("schema must be object or boolean")}let pe=this._cache.get(x);if(pe!==void 0)return pe;S=(0,l.normalizeId)(R||S);const _e=l.getSchemaRefs.call(this,x,S);return pe=new a.SchemaEnv({schema:x,schemaId:Z,meta:O,baseId:S,localRefs:_e}),this._cache.set(pe.schema,pe),_&&!S.startsWith("#")&&(S&&this._checkUnique(S),this.refs[S]=pe),C&&this.validateSchema(x,!0),pe}_checkUnique(x){if(this.schemas[x]||this.refs[x])throw new Error(`schema with key or id "${x}" already exists`)}_compileSchemaEnv(x){if(x.meta?this._compileMetaSchema(x):a.compileSchema.call(this,x),!x.validate)throw new Error("ajv implementation error");return x.validate}_compileMetaSchema(x){const O=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,x)}finally{this.opts=O}}}e.default=k,k.ValidationError=r.default,k.MissingRefError=o.default;function $(T,x,O,S="error"){for(const C in T){const _=C;_ in x&&this.logger[S](`${O}: option ${C}. ${T[_]}`)}}function j(T){return T=(0,l.normalizeId)(T),this.schemas[T]||this.refs[T]}function E(){const T=this.opts.schemas;if(T)if(Array.isArray(T))this.addSchema(T);else for(const x in T)this.addSchema(T[x],x)}function I(){for(const T in this.opts.formats){const x=this.opts.formats[T];x&&this.addFormat(T,x)}}function D(T){if(Array.isArray(T)){this.addVocabulary(T);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const x in T){const O=T[x];O.keyword||(O.keyword=x),this.addKeyword(O)}}function L(){const T={...this.opts};for(const x of p)delete T[x];return T}const M={log(){},warn(){},error(){}};function F(T){if(T===!1)return M;if(T===void 0)return console;if(T.log&&T.warn&&T.error)return T;throw new Error("logger must implement log, warn and error methods")}const H=/^[a-z_$][a-z0-9_$:-]*$/i;function N(T,x){const{RULES:O}=this;if((0,f.eachItem)(T,S=>{if(O.keywords[S])throw new Error(`Keyword ${S} is already defined`);if(!H.test(S))throw new Error(`Keyword ${S} has invalid name`)}),!!x&&x.$data&&!("code"in x||"validate"in x))throw new Error('$data keyword must have "code" or "validate" function')}function W(T,x,O){var S;const C=x==null?void 0:x.post;if(O&&C)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:_}=this;let R=C?_.post:_.rules.find(({type:pe})=>pe===O);if(R||(R={type:O,rules:[]},_.rules.push(R)),_.keywords[T]=!0,!x)return;const Z={keyword:T,definition:{...x,type:(0,c.getJSONTypes)(x.type),schemaType:(0,c.getJSONTypes)(x.schemaType)}};x.before?ee.call(this,R,Z,x.before):R.rules.push(Z),_.all[T]=Z,(S=x.implements)===null||S===void 0||S.forEach(pe=>this.addKeyword(pe))}function ee(T,x,O){const S=T.rules.findIndex(C=>C.keyword===O);S>=0?T.rules.splice(S,0,x):(T.rules.push(x),this.logger.warn(`rule ${O} is not defined`))}function U(T){let{metaSchema:x}=T;x!==void 0&&(T.$data&&this.opts.$data&&(x=A(x)),T.validateSchema=this.compile(x,!0))}const K={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function A(T){return{anyOf:[T,K]}}}(YF);var o2={},i2={},a2={};Object.defineProperty(a2,"__esModule",{value:!0});const pbe={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};a2.default=pbe;var vu={};Object.defineProperty(vu,"__esModule",{value:!0}),vu.callRef=vu.getValidate=void 0;const mbe=gp,EV=Vn,Ci=Fn,ed=Es,AV=Si,j0=Xn,vbe={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:n,it:r}=e,{baseId:o,schemaEnv:i,validateName:a,opts:s,self:l}=r,{root:c}=i;if((n==="#"||n==="#/")&&o===c.baseId)return u();const f=AV.resolveRef.call(l,c,o,n);if(f===void 0)throw new mbe.default(r.opts.uriResolver,o,n);if(f instanceof AV.SchemaEnv)return d(f);return h(f);function u(){if(i===c)return S0(e,a,i,i.$async);const p=t.scopeValue("root",{ref:c});return S0(e,(0,Ci._)`${p}.validate`,c,c.$async)}function d(p){const m=MV(e,p);S0(e,m,p,p.$async)}function h(p){const m=t.scopeValue("schema",s.code.source===!0?{ref:p,code:(0,Ci.stringify)(p)}:{ref:p}),v=t.name("valid"),g=e.subschema({schema:p,dataTypes:[],schemaPath:Ci.nil,topSchemaRef:m,errSchemaPath:n},v);e.mergeEvaluated(g),e.ok(v)}}};function MV(e,t){const{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,Ci._)`${n.scopeValue("wrapper",{ref:t})}.validate`}vu.getValidate=MV;function S0(e,t,n,r){const{gen:o,it:i}=e,{allErrors:a,schemaEnv:s,opts:l}=i,c=l.passContext?ed.default.this:Ci.nil;r?f():u();function f(){if(!s.$async)throw new Error("async schema referenced by sync schema");const p=o.let("valid");o.try(()=>{o.code((0,Ci._)`await ${(0,EV.callValidateCode)(e,t,c)}`),h(t),a||o.assign(p,!0)},m=>{o.if((0,Ci._)`!(${m} instanceof ${i.ValidationError})`,()=>o.throw(m)),d(m),a||o.assign(p,!1)}),e.ok(p)}function u(){e.result((0,EV.callValidateCode)(e,t,c),()=>h(t),()=>d(t))}function d(p){const m=(0,Ci._)`${p}.errors`;o.assign(ed.default.vErrors,(0,Ci._)`${ed.default.vErrors} === null ? ${m} : ${ed.default.vErrors}.concat(${m})`),o.assign(ed.default.errors,(0,Ci._)`${ed.default.vErrors}.length`)}function h(p){var m;if(!i.opts.unevaluated)return;const v=(m=n==null?void 0:n.validate)===null||m===void 0?void 0:m.evaluated;if(i.props!==!0)if(v&&!v.dynamicProps)v.props!==void 0&&(i.props=j0.mergeEvaluated.props(o,v.props,i.props));else{const g=o.var("props",(0,Ci._)`${p}.evaluated.props`);i.props=j0.mergeEvaluated.props(o,g,i.props,Ci.Name)}if(i.items!==!0)if(v&&!v.dynamicItems)v.items!==void 0&&(i.items=j0.mergeEvaluated.items(o,v.items,i.items));else{const g=o.var("items",(0,Ci._)`${p}.evaluated.items`);i.items=j0.mergeEvaluated.items(o,g,i.items,Ci.Name)}}}vu.callRef=S0,vu.default=vbe,Object.defineProperty(i2,"__esModule",{value:!0});const gbe=a2,ybe=vu,bbe=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",gbe.default,ybe.default];i2.default=bbe;var s2={},l2={};Object.defineProperty(l2,"__esModule",{value:!0});const C0=Fn,dc=C0.operators,$0={maximum:{okStr:"<=",ok:dc.LTE,fail:dc.GT},minimum:{okStr:">=",ok:dc.GTE,fail:dc.LT},exclusiveMaximum:{okStr:"<",ok:dc.LT,fail:dc.GTE},exclusiveMinimum:{okStr:">",ok:dc.GT,fail:dc.LTE}},wbe={message:({keyword:e,schemaCode:t})=>(0,C0.str)`must be ${$0[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,C0._)`{comparison: ${$0[e].okStr}, limit: ${t}}`},kbe={keyword:Object.keys($0),type:"number",schemaType:"number",$data:!0,error:wbe,code(e){const{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,C0._)`${n} ${$0[t].fail} ${r} || isNaN(${n})`)}};l2.default=kbe;var c2={};Object.defineProperty(c2,"__esModule",{value:!0});const yp=Fn,xbe={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:e})=>(0,yp.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,yp._)`{multipleOf: ${e}}`},code(e){const{gen:t,data:n,schemaCode:r,it:o}=e,i=o.opts.multipleOfPrecision,a=t.let("res"),s=i?(0,yp._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,yp._)`${a} !== parseInt(${a})`;e.fail$data((0,yp._)`(${r} === 0 || (${a} = ${n}/${r}, ${s}))`)}};c2.default=xbe;var u2={},f2={};Object.defineProperty(f2,"__esModule",{value:!0});function PV(e){const t=e.length;let n=0,r=0,o;for(;r<t;)n++,o=e.charCodeAt(r++),o>=55296&&o<=56319&&r<t&&(o=e.charCodeAt(r),(o&64512)===56320&&r++);return n}f2.default=PV,PV.code='require("ajv/dist/runtime/ucs2length").default',Object.defineProperty(u2,"__esModule",{value:!0});const gu=Fn,_be=Xn,jbe=f2,Sbe={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n=e==="maxLength"?"more":"fewer";return(0,gu.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,gu._)`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:r,it:o}=e,i=t==="maxLength"?gu.operators.GT:gu.operators.LT,a=o.opts.unicode===!1?(0,gu._)`${n}.length`:(0,gu._)`${(0,_be.useFunc)(e.gen,jbe.default)}(${n})`;e.fail$data((0,gu._)`${a} ${i} ${r}`)}};u2.default=Sbe;var d2={};Object.defineProperty(d2,"__esModule",{value:!0});const Cbe=Vn,T0=Fn,$be={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>(0,T0.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,T0._)`{pattern: ${e}}`},code(e){const{data:t,$data:n,schema:r,schemaCode:o,it:i}=e,a=i.opts.unicodeRegExp?"u":"",s=n?(0,T0._)`(new RegExp(${o}, ${a}))`:(0,Cbe.usePattern)(e,r);e.fail$data((0,T0._)`!${s}.test(${t})`)}};d2.default=$be;var h2={};Object.defineProperty(h2,"__esModule",{value:!0});const bp=Fn,Tbe={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n=e==="maxProperties"?"more":"fewer";return(0,bp.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,bp._)`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:r}=e,o=t==="maxProperties"?bp.operators.GT:bp.operators.LT;e.fail$data((0,bp._)`Object.keys(${n}).length ${o} ${r}`)}};h2.default=Tbe;var p2={};Object.defineProperty(p2,"__esModule",{value:!0});const wp=Vn,kp=Fn,Obe=Xn,Ebe={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:e}})=>(0,kp.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,kp._)`{missingProperty: ${e}}`},code(e){const{gen:t,schema:n,schemaCode:r,data:o,$data:i,it:a}=e,{opts:s}=a;if(!i&&n.length===0)return;const l=n.length>=s.loopRequired;if(a.allErrors?c():f(),s.strictRequired){const h=e.parentSchema.properties,{definedProperties:p}=e.it;for(const m of n)if((h==null?void 0:h[m])===void 0&&!p.has(m)){const v=a.schemaEnv.baseId+a.errSchemaPath,g=`required property "${m}" is not defined at "${v}" (strictRequired)`;(0,Obe.checkStrictMode)(a,g,a.opts.strictRequired)}}function c(){if(l||i)e.block$data(kp.nil,u);else for(const h of n)(0,wp.checkReportMissingProp)(e,h)}function f(){const h=t.let("missing");if(l||i){const p=t.let("valid",!0);e.block$data(p,()=>d(h,p)),e.ok(p)}else t.if((0,wp.checkMissingProp)(e,n,h)),(0,wp.reportMissingProp)(e,h),t.else()}function u(){t.forOf("prop",r,h=>{e.setParams({missingProperty:h}),t.if((0,wp.noPropertyInData)(t,o,h,s.ownProperties),()=>e.error())})}function d(h,p){e.setParams({missingProperty:h}),t.forOf(h,r,()=>{t.assign(p,(0,wp.propertyInData)(t,o,h,s.ownProperties)),t.if((0,kp.not)(p),()=>{e.error(),t.break()})},kp.nil)}}};p2.default=Ebe;var m2={};Object.defineProperty(m2,"__esModule",{value:!0});const xp=Fn,Abe={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n=e==="maxItems"?"more":"fewer";return(0,xp.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,xp._)`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:r}=e,o=t==="maxItems"?xp.operators.GT:xp.operators.LT;e.fail$data((0,xp._)`${n}.length ${o} ${r}`)}};m2.default=Abe;var v2={},_p={};Object.defineProperty(_p,"__esModule",{value:!0});const NV=sV;NV.code='require("ajv/dist/runtime/equal").default',_p.default=NV,Object.defineProperty(v2,"__esModule",{value:!0});const g2=hp,Do=Fn,Mbe=Xn,Pbe=_p,Nbe={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:e,j:t}})=>(0,Do.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Do._)`{i: ${e}, j: ${t}}`},code(e){const{gen:t,data:n,$data:r,schema:o,parentSchema:i,schemaCode:a,it:s}=e;if(!r&&!o)return;const l=t.let("valid"),c=i.items?(0,g2.getSchemaTypes)(i.items):[];e.block$data(l,f,(0,Do._)`${a} === false`),e.ok(l);function f(){const p=t.let("i",(0,Do._)`${n}.length`),m=t.let("j");e.setParams({i:p,j:m}),t.assign(l,!0),t.if((0,Do._)`${p} > 1`,()=>(u()?d:h)(p,m))}function u(){return c.length>0&&!c.some(p=>p==="object"||p==="array")}function d(p,m){const v=t.name("item"),g=(0,g2.checkDataTypes)(c,v,s.opts.strictNumbers,g2.DataType.Wrong),y=t.const("indices",(0,Do._)`{}`);t.for((0,Do._)`;${p}--;`,()=>{t.let(v,(0,Do._)`${n}[${p}]`),t.if(g,(0,Do._)`continue`),c.length>1&&t.if((0,Do._)`typeof ${v} == "string"`,(0,Do._)`${v} += "_"`),t.if((0,Do._)`typeof ${y}[${v}] == "number"`,()=>{t.assign(m,(0,Do._)`${y}[${v}]`),e.error(),t.assign(l,!1).break()}).code((0,Do._)`${y}[${v}] = ${p}`)})}function h(p,m){const v=(0,Mbe.useFunc)(t,Pbe.default),g=t.name("outer");t.label(g).for((0,Do._)`;${p}--;`,()=>t.for((0,Do._)`${m} = ${p}; ${m}--;`,()=>t.if((0,Do._)`${v}(${n}[${p}], ${n}[${m}])`,()=>{e.error(),t.assign(l,!1).break(g)})))}}};v2.default=Nbe;var y2={};Object.defineProperty(y2,"__esModule",{value:!0});const b2=Fn,Ibe=Xn,Dbe=_p,Lbe={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:e})=>(0,b2._)`{allowedValue: ${e}}`},code(e){const{gen:t,data:n,$data:r,schemaCode:o,schema:i}=e;r||i&&typeof i=="object"?e.fail$data((0,b2._)`!${(0,Ibe.useFunc)(t,Dbe.default)}(${n}, ${o})`):e.fail((0,b2._)`${i} !== ${n}`)}};y2.default=Lbe;var w2={};Object.defineProperty(w2,"__esModule",{value:!0});const jp=Fn,Rbe=Xn,Bbe=_p,Fbe={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,jp._)`{allowedValues: ${e}}`},code(e){const{gen:t,data:n,$data:r,schema:o,schemaCode:i,it:a}=e;if(!r&&o.length===0)throw new Error("enum must have non-empty array");const s=o.length>=a.opts.loopEnum;let l;const c=()=>l??(l=(0,Rbe.useFunc)(t,Bbe.default));let f;if(s||r)f=t.let("valid"),e.block$data(f,u);else{if(!Array.isArray(o))throw new Error("ajv implementation error");const h=t.const("vSchema",i);f=(0,jp.or)(...o.map((p,m)=>d(h,m)))}e.pass(f);function u(){t.assign(f,!1),t.forOf("v",i,h=>t.if((0,jp._)`${c()}(${n}, ${h})`,()=>t.assign(f,!0).break()))}function d(h,p){const m=o[p];return typeof m=="object"&&m!==null?(0,jp._)`${c()}(${n}, ${h}[${p}])`:(0,jp._)`${n} === ${m}`}}};w2.default=Fbe,Object.defineProperty(s2,"__esModule",{value:!0});const Vbe=l2,zbe=c2,qbe=u2,Ube=d2,Hbe=h2,Wbe=p2,Kbe=m2,Gbe=v2,Jbe=y2,Qbe=w2,Ybe=[Vbe.default,zbe.default,qbe.default,Ube.default,Hbe.default,Wbe.default,Kbe.default,Gbe.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Jbe.default,Qbe.default];s2.default=Ybe;var k2={},td={};Object.defineProperty(td,"__esModule",{value:!0}),td.validateAdditionalItems=void 0;const yu=Fn,x2=Xn,Xbe={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:e}})=>(0,yu.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,yu._)`{limit: ${e}}`},code(e){const{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,x2.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}IV(e,r)}};function IV(e,t){const{gen:n,schema:r,data:o,keyword:i,it:a}=e;a.items=!0;const s=n.const("len",(0,yu._)`${o}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,yu._)`${s} <= ${t.length}`);else if(typeof r=="object"&&!(0,x2.alwaysValidSchema)(a,r)){const c=n.var("valid",(0,yu._)`${s} <= ${t.length}`);n.if((0,yu.not)(c),()=>l(c)),e.ok(c)}function l(c){n.forRange("i",t.length,s,f=>{e.subschema({keyword:i,dataProp:f,dataPropType:x2.Type.Num},c),a.allErrors||n.if((0,yu.not)(c),()=>n.break())})}}td.validateAdditionalItems=IV,td.default=Xbe;var _2={},nd={};Object.defineProperty(nd,"__esModule",{value:!0}),nd.validateTuple=void 0;const DV=Fn,O0=Xn,Zbe=Vn,ewe={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:n}=e;if(Array.isArray(t))return LV(e,"additionalItems",t);n.items=!0,!(0,O0.alwaysValidSchema)(n,t)&&e.ok((0,Zbe.validateArray)(e))}};function LV(e,t,n=e.schema){const{gen:r,parentSchema:o,data:i,keyword:a,it:s}=e;f(o),s.opts.unevaluated&&n.length&&s.items!==!0&&(s.items=O0.mergeEvaluated.items(r,n.length,s.items));const l=r.name("valid"),c=r.const("len",(0,DV._)`${i}.length`);n.forEach((u,d)=>{(0,O0.alwaysValidSchema)(s,u)||(r.if((0,DV._)`${c} > ${d}`,()=>e.subschema({keyword:a,schemaProp:d,dataProp:d},l)),e.ok(l))});function f(u){const{opts:d,errSchemaPath:h}=s,p=n.length,m=p===u.minItems&&(p===u.maxItems||u[t]===!1);if(d.strictTuples&&!m){const v=`"${a}" is ${p}-tuple, but minItems or maxItems/${t} are not specified or different at path "${h}"`;(0,O0.checkStrictMode)(s,v,d.strictTuples)}}}nd.validateTuple=LV,nd.default=ewe,Object.defineProperty(_2,"__esModule",{value:!0});const twe=nd,nwe={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,twe.validateTuple)(e,"items")};_2.default=nwe;var j2={};Object.defineProperty(j2,"__esModule",{value:!0});const RV=Fn,rwe=Xn,owe=Vn,iwe=td,awe={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:e}})=>(0,RV.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,RV._)`{limit: ${e}}`},code(e){const{schema:t,parentSchema:n,it:r}=e,{prefixItems:o}=n;r.items=!0,!(0,rwe.alwaysValidSchema)(r,t)&&(o?(0,iwe.validateAdditionalItems)(e,o):e.ok((0,owe.validateArray)(e)))}};j2.default=awe;var S2={};Object.defineProperty(S2,"__esModule",{value:!0});const da=Fn,E0=Xn,swe={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:e,max:t}})=>t===void 0?(0,da.str)`must contain at least ${e} valid item(s)`:(0,da.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,da._)`{minContains: ${e}}`:(0,da._)`{minContains: ${e}, maxContains: ${t}}`},code(e){const{gen:t,schema:n,parentSchema:r,data:o,it:i}=e;let a,s;const{minContains:l,maxContains:c}=r;i.opts.next?(a=l===void 0?1:l,s=c):a=1;const f=t.const("len",(0,da._)`${o}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,E0.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,E0.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,E0.alwaysValidSchema)(i,n)){let m=(0,da._)`${f} >= ${a}`;s!==void 0&&(m=(0,da._)`${m} && ${f} <= ${s}`),e.pass(m);return}i.items=!0;const u=t.name("valid");s===void 0&&a===1?h(u,()=>t.if(u,()=>t.break())):a===0?(t.let(u,!0),s!==void 0&&t.if((0,da._)`${o}.length > 0`,d)):(t.let(u,!1),d()),e.result(u,()=>e.reset());function d(){const m=t.name("_valid"),v=t.let("count",0);h(m,()=>t.if(m,()=>p(v)))}function h(m,v){t.forRange("i",0,f,g=>{e.subschema({keyword:"contains",dataProp:g,dataPropType:E0.Type.Num,compositeRule:!0},m),v()})}function p(m){t.code((0,da._)`${m}++`),s===void 0?t.if((0,da._)`${m} >= ${a}`,()=>t.assign(u,!0).break()):(t.if((0,da._)`${m} > ${s}`,()=>t.assign(u,!1).break()),a===1?t.assign(u,!0):t.if((0,da._)`${m} >= ${a}`,()=>t.assign(u,!0)))}}};S2.default=swe;var BV={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;const t=Fn,n=Xn,r=Vn;e.error={message:({params:{property:l,depsCount:c,deps:f}})=>{const u=c===1?"property":"properties";return(0,t.str)`must have ${u} ${f} when property ${l} is present`},params:({params:{property:l,depsCount:c,deps:f,missingProperty:u}})=>(0,t._)`{property: ${l},
215
215
  missingProperty: ${u},
216
216
  depsCount: ${c},
217
- deps: ${f}}`};const o={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(l){const[c,f]=i(l);a(l,c),s(l,f)}};function i({schema:l}){const c={},f={};for(const u in l){if(u==="__proto__")continue;const d=Array.isArray(l[u])?c:f;d[u]=l[u]}return[c,f]}function a(l,c=l.schema){const{gen:f,data:u,it:d}=l;if(Object.keys(c).length===0)return;const h=f.let("missing");for(const p in c){const m=c[p];if(m.length===0)continue;const v=(0,r.propertyInData)(f,u,p,d.opts.ownProperties);l.setParams({property:p,depsCount:m.length,deps:m.join(", ")}),d.allErrors?f.if(v,()=>{for(const g of m)(0,r.checkReportMissingProp)(l,g)}):(f.if((0,t._)`${v} && (${(0,r.checkMissingProp)(l,m,h)})`),(0,r.reportMissingProp)(l,h),f.else())}}e.validatePropertyDeps=a;function s(l,c=l.schema){const{gen:f,data:u,keyword:d,it:h}=l,p=f.name("valid");for(const m in c)(0,n.alwaysValidSchema)(h,c[m])||(f.if((0,r.propertyInData)(f,u,m,h.opts.ownProperties),()=>{const v=l.subschema({keyword:d,schemaProp:m},p);l.mergeValidEvaluated(v,p)},()=>f.var(p,!0)),l.ok(p))}e.validateSchemaDeps=s,e.default=o})(BV);var C2={};Object.defineProperty(C2,"__esModule",{value:!0});const FV=Fn,lwe=Xn,cwe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:e})=>(0,FV._)`{propertyName: ${e.propertyName}}`},code(e){const{gen:t,schema:n,data:r,it:o}=e;if((0,lwe.alwaysValidSchema)(o,n))return;const i=t.name("valid");t.forIn("key",r,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,FV.not)(i),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(i)}};C2.default=cwe;var A0={};Object.defineProperty(A0,"__esModule",{value:!0});const M0=Vn,Ka=Fn,uwe=Es,P0=Xn,fwe={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:e})=>(0,Ka._)`{additionalProperty: ${e.additionalProperty}}`},code(e){const{gen:t,schema:n,parentSchema:r,data:o,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");const{allErrors:s,opts:l}=a;if(a.props=!0,l.removeAdditional!=="all"&&(0,P0.alwaysValidSchema)(a,n))return;const c=(0,M0.allSchemaProperties)(r.properties),f=(0,M0.allSchemaProperties)(r.patternProperties);u(),e.ok((0,Ka._)`${i} === ${uwe.default.errors}`);function u(){t.forIn("key",o,v=>{!c.length&&!f.length?p(v):t.if(d(v),()=>p(v))})}function d(v){let g;if(c.length>8){const y=(0,P0.schemaRefOrVal)(a,r.properties,"properties");g=(0,M0.isOwnProperty)(t,y,v)}else c.length?g=(0,Ka.or)(...c.map(y=>(0,Ka._)`${v} === ${y}`)):g=Ka.nil;return f.length&&(g=(0,Ka.or)(g,...f.map(y=>(0,Ka._)`${(0,M0.usePattern)(e,y)}.test(${v})`))),(0,Ka.not)(g)}function h(v){t.code((0,Ka._)`delete ${o}[${v}]`)}function p(v){if(l.removeAdditional==="all"||l.removeAdditional&&n===!1){h(v);return}if(n===!1){e.setParams({additionalProperty:v}),e.error(),s||t.break();return}if(typeof n=="object"&&!(0,P0.alwaysValidSchema)(a,n)){const g=t.name("valid");l.removeAdditional==="failing"?(m(v,g,!1),t.if((0,Ka.not)(g),()=>{e.reset(),h(v)})):(m(v,g),s||t.if((0,Ka.not)(g),()=>t.break()))}}function m(v,g,y){const w={keyword:"additionalProperties",dataProp:v,dataPropType:P0.Type.Str};y===!1&&Object.assign(w,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(w,g)}}};A0.default=fwe;var $2={};Object.defineProperty($2,"__esModule",{value:!0});const dwe=Ua,VV=Vn,T2=Xn,zV=A0,hwe={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,parentSchema:r,data:o,it:i}=e;i.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&zV.default.code(new dwe.KeywordCxt(i,zV.default,"additionalProperties"));const a=(0,VV.allSchemaProperties)(n);for(const u of a)i.definedProperties.add(u);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=T2.mergeEvaluated.props(t,(0,T2.toHash)(a),i.props));const s=a.filter(u=>!(0,T2.alwaysValidSchema)(i,n[u]));if(s.length===0)return;const l=t.name("valid");for(const u of s)c(u)?f(u):(t.if((0,VV.propertyInData)(t,o,u,i.opts.ownProperties)),f(u),i.allErrors||t.else().var(l,!0),t.endIf()),e.it.definedProperties.add(u),e.ok(l);function c(u){return i.opts.useDefaults&&!i.compositeRule&&n[u].default!==void 0}function f(u){e.subschema({keyword:"properties",schemaProp:u,dataProp:u},l)}}};$2.default=hwe;var O2={};Object.defineProperty(O2,"__esModule",{value:!0});const qV=Vn,N0=Fn,UV=Xn,HV=Xn,pwe={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,data:r,parentSchema:o,it:i}=e,{opts:a}=i,s=(0,qV.allSchemaProperties)(n),l=s.filter(m=>(0,UV.alwaysValidSchema)(i,n[m]));if(s.length===0||l.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;const c=a.strictSchema&&!a.allowMatchingProperties&&o.properties,f=t.name("valid");i.props!==!0&&!(i.props instanceof N0.Name)&&(i.props=(0,HV.evaluatedPropsToName)(t,i.props));const{props:u}=i;d();function d(){for(const m of s)c&&h(m),i.allErrors?p(m):(t.var(f,!0),p(m),t.if(f))}function h(m){for(const v in c)new RegExp(m).test(v)&&(0,UV.checkStrictMode)(i,`property ${v} matches pattern ${m} (use allowMatchingProperties)`)}function p(m){t.forIn("key",r,v=>{t.if((0,N0._)`${(0,qV.usePattern)(e,m)}.test(${v})`,()=>{const g=l.includes(m);g||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:v,dataPropType:HV.Type.Str},f),i.opts.unevaluated&&u!==!0?t.assign((0,N0._)`${u}[${v}]`,!0):!g&&!i.allErrors&&t.if((0,N0.not)(f),()=>t.break())})})}}};O2.default=pwe;var E2={};Object.defineProperty(E2,"__esModule",{value:!0});const mwe=Xn,vwe={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:n,it:r}=e;if((0,mwe.alwaysValidSchema)(r,n)){e.fail();return}const o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};E2.default=vwe;var A2={};Object.defineProperty(A2,"__esModule",{value:!0});const gwe={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Vn.validateUnion,error:{message:"must match a schema in anyOf"}};A2.default=gwe;var M2={};Object.defineProperty(M2,"__esModule",{value:!0});const I0=Fn,ywe=Xn,bwe={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:e})=>(0,I0._)`{passingSchemas: ${e.passing}}`},code(e){const{gen:t,schema:n,parentSchema:r,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(o.opts.discriminator&&r.discriminator)return;const i=n,a=t.let("valid",!1),s=t.let("passing",null),l=t.name("_valid");e.setParams({passing:s}),t.block(c),e.result(a,()=>e.reset(),()=>e.error(!0));function c(){i.forEach((f,u)=>{let d;(0,ywe.alwaysValidSchema)(o,f)?t.var(l,!0):d=e.subschema({keyword:"oneOf",schemaProp:u,compositeRule:!0},l),u>0&&t.if((0,I0._)`${l} && ${a}`).assign(a,!1).assign(s,(0,I0._)`[${s}, ${u}]`).else(),t.if(l,()=>{t.assign(a,!0),t.assign(s,u),d&&e.mergeEvaluated(d,I0.Name)})})}}};M2.default=bwe;var P2={};Object.defineProperty(P2,"__esModule",{value:!0});const wwe=Xn,kwe={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");const o=t.name("valid");n.forEach((i,a)=>{if((0,wwe.alwaysValidSchema)(r,i))return;const s=e.subschema({keyword:"allOf",schemaProp:a},o);e.ok(o),e.mergeEvaluated(s)})}};P2.default=kwe;var N2={};Object.defineProperty(N2,"__esModule",{value:!0});const D0=Fn,WV=Xn,xwe={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>(0,D0.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,D0._)`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,WV.checkStrictMode)(r,'"if" without "then" and "else" is ignored');const o=KV(r,"then"),i=KV(r,"else");if(!o&&!i)return;const a=t.let("valid",!0),s=t.name("_valid");if(l(),e.reset(),o&&i){const f=t.let("ifClause");e.setParams({ifClause:f}),t.if(s,c("then",f),c("else",f))}else o?t.if(s,c("then")):t.if((0,D0.not)(s),c("else"));e.pass(a,()=>e.error(!0));function l(){const f=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(f)}function c(f,u){return()=>{const d=e.subschema({keyword:f},s);t.assign(a,s),e.mergeValidEvaluated(d,a),u?t.assign(u,(0,D0._)`${f}`):e.setParams({ifClause:f})}}}};function KV(e,t){const n=e.schema[t];return n!==void 0&&!(0,WV.alwaysValidSchema)(e,n)}N2.default=xwe;var I2={};Object.defineProperty(I2,"__esModule",{value:!0});const _we=Xn,jwe={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,_we.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};I2.default=jwe,Object.defineProperty(k2,"__esModule",{value:!0});const Swe=td,Cwe=_2,$we=nd,Twe=j2,Owe=S2,Ewe=BV,Awe=C2,Mwe=A0,Pwe=$2,Nwe=O2,Iwe=E2,Dwe=A2,Lwe=M2,Rwe=P2,Bwe=N2,Fwe=I2;function Vwe(e=!1){const t=[Iwe.default,Dwe.default,Lwe.default,Rwe.default,Bwe.default,Fwe.default,Awe.default,Mwe.default,Ewe.default,Pwe.default,Nwe.default];return e?t.push(Cwe.default,Twe.default):t.push(Swe.default,$we.default),t.push(Owe.default),t}k2.default=Vwe;var D2={},L2={};Object.defineProperty(L2,"__esModule",{value:!0});const to=Fn,zwe={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>(0,to.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,to._)`{format: ${e}}`},code(e,t){const{gen:n,data:r,$data:o,schema:i,schemaCode:a,it:s}=e,{opts:l,errSchemaPath:c,schemaEnv:f,self:u}=s;if(!l.validateFormats)return;o?d():h();function d(){const p=n.scopeValue("formats",{ref:u.formats,code:l.code.formats}),m=n.const("fDef",(0,to._)`${p}[${a}]`),v=n.let("fType"),g=n.let("format");n.if((0,to._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>n.assign(v,(0,to._)`${m}.type || "string"`).assign(g,(0,to._)`${m}.validate`),()=>n.assign(v,(0,to._)`"string"`).assign(g,m)),e.fail$data((0,to.or)(y(),w()));function y(){return l.strictSchema===!1?to.nil:(0,to._)`${a} && !${g}`}function w(){const k=f.$async?(0,to._)`(${m}.async ? await ${g}(${r}) : ${g}(${r}))`:(0,to._)`${g}(${r})`,$=(0,to._)`(typeof ${g} == "function" ? ${k} : ${g}.test(${r}))`;return(0,to._)`${g} && ${g} !== true && ${v} === ${t} && !${$}`}}function h(){const p=u.formats[i];if(!p){y();return}if(p===!0)return;const[m,v,g]=w(p);m===t&&e.pass(k());function y(){if(l.strictSchema===!1){u.logger.warn($());return}throw new Error($());function $(){return`unknown format "${i}" ignored in schema at path "${c}"`}}function w($){const j=$ instanceof RegExp?(0,to.regexpCode)($):l.code.formats?(0,to._)`${l.code.formats}${(0,to.getProperty)(i)}`:void 0,E=n.scopeValue("formats",{key:i,ref:$,code:j});return typeof $=="object"&&!($ instanceof RegExp)?[$.type||"string",$.validate,(0,to._)`${E}.validate`]:["string",$,E]}function k(){if(typeof p=="object"&&!(p instanceof RegExp)&&p.async){if(!f.$async)throw new Error("async format in sync schema");return(0,to._)`await ${g}(${r})`}return typeof v=="function"?(0,to._)`${g}(${r})`:(0,to._)`${g}.test(${r})`}}}};L2.default=zwe,Object.defineProperty(D2,"__esModule",{value:!0});const qwe=[L2.default];D2.default=qwe;var rd={};Object.defineProperty(rd,"__esModule",{value:!0}),rd.contentVocabulary=rd.metadataVocabulary=void 0,rd.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],rd.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"],Object.defineProperty(o2,"__esModule",{value:!0});const Uwe=i2,Hwe=s2,Wwe=k2,Kwe=D2,GV=rd,Gwe=[Uwe.default,Hwe.default,(0,Wwe.default)(),Kwe.default,GV.metadataVocabulary,GV.contentVocabulary];o2.default=Gwe;var R2={},JV={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0,function(t){t.Tag="tag",t.Mapping="mapping"}(e.DiscrError||(e.DiscrError={}))})(JV),Object.defineProperty(R2,"__esModule",{value:!0});const od=Fn,B2=JV,QV=Si,Jwe=Xn,Qwe={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:e,tagName:t}})=>e===B2.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,od._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},code(e){const{gen:t,data:n,schema:r,parentSchema:o,it:i}=e,{oneOf:a}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");const s=r.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");const l=t.let("valid",!1),c=t.const("tag",(0,od._)`${n}${(0,od.getProperty)(s)}`);t.if((0,od._)`typeof ${c} == "string"`,()=>f(),()=>e.error(!1,{discrError:B2.DiscrError.Tag,tag:c,tagName:s})),e.ok(l);function f(){const h=d();t.if(!1);for(const p in h)t.elseIf((0,od._)`${c} === ${p}`),t.assign(l,u(h[p]));t.else(),e.error(!1,{discrError:B2.DiscrError.Mapping,tag:c,tagName:s}),t.endIf()}function u(h){const p=t.name("valid"),m=e.subschema({keyword:"oneOf",schemaProp:h},p);return e.mergeEvaluated(m,od.Name),p}function d(){var h;const p={},m=g(o);let v=!0;for(let k=0;k<a.length;k++){let $=a[k];$!=null&&$.$ref&&!(0,Jwe.schemaHasRulesButRef)($,i.self.RULES)&&($=QV.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,$==null?void 0:$.$ref),$ instanceof QV.SchemaEnv&&($=$.schema));const j=(h=$==null?void 0:$.properties)===null||h===void 0?void 0:h[s];if(typeof j!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);v=v&&(m||g($)),y(j,k)}if(!v)throw new Error(`discriminator: "${s}" must be required`);return p;function g({required:k}){return Array.isArray(k)&&k.includes(s)}function y(k,$){if(k.const)w(k.const,$);else if(k.enum)for(const j of k.enum)w(j,$);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function w(k,$){if(typeof k!="string"||k in p)throw new Error(`discriminator: "${s}" values must be unique strings`);p[k]=$}}}};R2.default=Qwe;const Ywe={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const n=YF,r=o2,o=R2,i=Ywe,a=["/properties"],s="http://json-schema.org/draft-07/schema";class l extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(p=>this.addVocabulary(p)),this.opts.discriminator&&this.addKeyword(o.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const p=this.opts.$data?this.$dataMetaSchema(i,a):i;this.addMetaSchema(p,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}e.exports=t=l,Object.defineProperty(t,"__esModule",{value:!0}),t.default=l;var c=Ua;Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return c.KeywordCxt}});var f=Fn;Object.defineProperty(t,"_",{enumerable:!0,get:function(){return f._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return f.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return f.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return f.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return f.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return f.CodeGen}});var u=vp;Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return u.default}});var d=gp;Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return d.default}})})(U_,U_.exports);var Xwe=U_.exports;const Zwe=Z0(Xwe);function F2(e){return!(!e||!e.default)}function V2(e){if(Gt().clearErrors(),!F2(e))return;console.log(`Received HMR update for ${e.id}`);const t=e.default;z2(t)?(Go().addNotification(`Reloaded ${t.fileName}`,"You can continue playing with the changes."),yn.addNarratScript(t)):L0(t)&&(_o().reloadConfigModule(t),console.log(`Yaml update ${t.fileName}}`))}function z2(e){return typeof e=="object"&&e!==null&&typeof e.code=="string"&&typeof e.fileName=="string"&&typeof e.id=="string"&&e.type==="script"}function L0(e){return typeof e=="object"&&e!==null&&typeof e.code=="object"&&typeof e.fileName=="string"&&typeof e.id=="string"&&e.type==="yaml"}window.narratHMRHandler=e=>{const t=window.narrat;t&&t.handleHMR(e);const n=new CustomEvent("narrat-hmr",{detail:{newModule:e}});document.body.dispatchEvent(n)};let Sp;const eke=[["items",r7,o7],["achievements",j7,S7],["screens",f7,d7],["skills",m7,v7],["skillChecks",C7,$7],["buttons",l7,c7],["scripts",Z9,mve],["audio",R9,B9],["quests",i7,a7],["tooltips",w7,k7],["characters",g7,y7],["choices",O7,E7],["animations",M7,P7]],tke=[["common",e7,b_]],hl=new Zwe({allErrors:!0}),nke=["baseAssetsPath","baseDataPath","gameTitle","saveFileName","images","layout","settings","gameFlow","dialogPanel","splashScreens","notifications","hudStats","interactionTags","transitions","menuButtons","debugging","saves"];async function rke(e,t){for(const[n,r,o]of tke){const i=t[n];let a=YV(o);try{if(!hl.validate(r,i))throw console.error(hl.errors),new Error(`${hl.errorsText()}`)}catch(s){console.error(s),At(`${n} config error: ${s}`)}typeof i<"u"&&(a=YV(i,a)),e[n]=a}}function YV(e,t){return typeof e=="object"?Array.isArray(e)?[...e]:{...t,...e}:typeof e<"u"?e:t}async function oke(e,t){for(const n of nke){const r=t[n];r&&(typeof r=="object"&&!Array.isArray(r)?e.common[n]={...e.common[n],...r}:e.common[n]=r)}}async function ike(e){const t={...Uf};y0(e)?await rke(t,e):oke(t,e);for(const n of eke){const r=n[0],o=n[1],i=n[2];let a=e[r];if(a&&typeof a=="string")try{if(a=await lp(U2(t.common.baseDataPath,a)),!hl.validate(o,a))throw console.error(hl.errors),new Error(`${hl.errorsText()}`)}catch(s){console.error(s),At(`${r} config error: ${s}`),a={...i}}a&&(Array.isArray(a)?t[r]=a:typeof a=="object"?t[r]={...i,...a}:t[r]=a)}if(Sp=t,e.skills&&e&&Sp.common.transitions)for(const n in Sp.common.transitions)p0[n]?Object.assign(p0[n],Sp.common.transitions[n]):p0[n]=Sp.common.transitions[n];return t}async function ake(e){let t;if(e.config){const o=e.config;t={};for(const i in o){const a=o[i];L0(a)?(_o().addConfigModule(i,{id:a.id,code:a.code}),t[i]=a.code):t[i]=a}}else if(e.configPath)t=await lp(e.configPath);else throw At("No config file or config object provided"),new Error("No config file or config object provided");let n=t;return y0(t)&&(n=t.common),n.baseAssetsPath=e.baseAssetsPath??n.baseAssetsPath??"",n.baseDataPath=e.baseDataPath??n.baseDataPath??"",hl.validate(q_,t)||(At("Config file validation failed."),console.log(hl.errors),At(hl.errorsText())),ike(t)}function Jr(){return _o().config}function Mt(){return Jr().common}function ha(){return Jr().audio}function XV(e){const t=ha().files[e];if(!t){du(`Audio file ${e} doesn't exist`);return}return t}function R0(e){const t=XV(e),n=((t==null?void 0:t.fadeInDelay)??ha().options.musicFadeInDelay)*1e3,r=((t==null?void 0:t.fadeInTime)??ha().options.musicFadeInTime)*1e3,o=((t==null?void 0:t.fadeOutTime)??ha().options.musicFadeOutTime)*1e3;return{fadeInDelay:n,fadeInTime:r,fadeOutTime:o}}function Ga(){return Jr().skills}function Cp(){return Jr().skillChecks}function $p(){return Jr().items}function id(){return Jr().quests}function B0(){return Jr().screens}function F0(){return Jr().buttons}function hc(){return Jr().tooltips}function V0(){return Jr().characters}function q2(){return Jr().choices}function ZV(){return Jr().animations}function ez(e){return q2().choicePrompts[e]}function ad(e){return e===y_?q9:B0().screens[e]?B0().screens[e]:(At(`Screen config for screen ${e} doesn't exist`),q9)}function z0(e){const n=hc().tooltips.find(r=>r.keywords.includes(e));return n||(At(`Tooltip config for keyword ${e} not found`),null)}function q0(e){const t=Jr().skills.skills[e];return t||At(`Skill config for skill ${e} doesn't exist`),t}function tz(e){const t=Jr().skillChecks.skillChecks[e];return t||At(`Skill check config for skill check ${e} doesn't exist`),t}function nz(e){return!!Jr().skillChecks.skillChecks[e]}function sd(e){return e.startsWith("http")?e:Mt().images[e]?ui(Mt().images[e]):ui(e)}function ui(e){return e.startsWith("http")?e:Mt().baseAssetsPath?`${Mt().baseAssetsPath}${e}`:e}function U2(e,t){return`${e}${t}`}function U0(e){return Mt().baseDataPath?`${Mt().baseDataPath}${e}`:e}function pc(e){const t=F0().buttons[e];return t||At(`Button config for button ${e} doesn't exist`),t}function Ja(e){const t=$p().items[e];return t||At(`Item config for skill ${e} doesn't exist`),t}function ld(){return Jr().achievements}function H2(e){const t=ld().achievements[e];return t||At(`Achievement config for achievement ${e} doesn't exist`),t}function pl(e){return id().quests[e]}function rz(e,t){const r=pl(e).endings;return r||At(`Quest ${e} doesn't have any endings`),r[t]||At(`Quest ${e} has no ending called ${t}`),r[t]}function Tp(e,t){return pl(e).objectives[t]}function H0(){return Mt().dialogPanel.width??fve}function oz(e,t,n,r="$"){if(!n.startsWith(r))return isNaN(Number(n))?[null,n]:[null,Number(n)];n=n.substring(1);const o=/\[/,i=/\]/;let a=n.search(o);n.search(i);let s=n,l=t,c=0;for(;c<n.length;){if(a>c||a===-1){const f=a>c?a:n.length;let u=n.substring(c,f);isNaN(Number(u))||(u=Number(u)),c>0&&(l=l[s]),[l,s]=lke(l,u)}if(a!==-1){c=a;const f=n.substring(a+1),u=ske(f)+a,d=n.substring(a+1,u),[h,p]=oz(e,e,d);let m=p;h&&(m=h[p]),typeof m=="number"||!isNaN(Number(m))?m=Number(m):typeof m!="string"&&console.error(`invalid array index (${m}) key type when compiling: ${n}`),l=l[s],s=m,c=u+1;const v=n.substring(c);a=v.search(o),a!==-1&&(a+=c),v.search(i)}else c=n.length}return[l,s]}function ske(e){let t=!1,n=0,r,o=1;for(;!t;){r=e.substring(n);const i=r.search(/\[/),a=r.search(/\]/);i!==-1&&i<a?(n+=i+1,o++):(n+=a+1,o--),o===0&&(t=!0),i===-1&&a===-1&&!t&&At(`Could not find closing bracket in ${e}`)}return n}function lke(e,t){if(typeof t=="number")return[e,t];t.startsWith(".")&&(t=t.substring(1));const n=t.split(".");let r=e;const o=n.length-1;let i=n[0],a=0;for(a=0;a<o;a++)i=n[a],typeof r[i]>"u"&&(r[i]={}),r=r[i];return i=n[a],[r,i]}function W0(e,t,n="$"){return oz(e,e,t)}function cke(e,t){return W0(e,t)}function iz(e,t,n){const[r,o]=W0(e,t);r[o]=n}function az(e,t,n){const[r,o]=W0(e,t),i=r[o]||0;r[o]=n+i}function cd(){const e=un(),t=Cr(),n=li(),r=so(),o=un().scope,i={data:e.data,global:e.globalData,skills:t.skills,skillChecks:t.skillChecks,buttons:n.buttons,items:r.items,quests:eo().quests,stats:qa().hudStats,scope:o,config:Mt(),gameOptions:Gt().options,baseSettings:Bi().baseSettings,customSettings:Bi().customSettings};return new Proxy(i,{get:(s,l,c)=>{const f=un().scope,u=un().data;return typeof f[l]<"u"?f[l]:typeof u[l]<"u"?u[l]:Reflect.get(s,l,c)},set:(s,l,c,f)=>{const u=un().scope,d=un().data;if(typeof u[l]<"u")u[l]=c;else{if(typeof s[l]<"u")return Reflect.set(s,l,c,f);typeof c=="object"?d[l]={}:d[l]=c}return!0}})}function Zn(e){if(e===null)return null;if(typeof e=="object")if(Array.isArray(e)){const t=[];for(const n in e)t[n]=Zn(e[n]);return t}else{const t={};for(const n in e)t[n]=Zn(e[n]);return t}else return e}function W2(e,t){if(e===null)return null;if(typeof e=="object"){const n=t(e);if(t(e))return n;if(Array.isArray(e)){const r=[];for(const o in e)r[o]=W2(e[o],t);return r}else{const r={};for(const o in e)r[o]=W2(e[o],t);return r}}else return t(e)}const Cr=oo("skills",{state:()=>({skillChecks:{},skills:{}}),actions:{setupSkillCheck(e,t){this.skillChecks[t]=e},passSkillCheck(e,t){this.skillChecks[e].happened=!0,this.skillChecks[e].succeeded=!0,t&&(this.skillChecks[e].hidden=!0)},failSkillCheck(e,t){this.skillChecks[e].happened=!0,this.skillChecks[e].succeeded=!1,t&&(this.skillChecks[e].hidden=!0)},resetSkillCheck(e){this.skillChecks[e].happened=!1,this.skillChecks[e].succeeded=!1,this.skillChecks[e].hidden=!1},generateSaveData(){return{skillChecks:Zn(this.skillChecks),skills:Zn(this.skills)}},getSkillCheck(e){return this.skillChecks[e]||this.setupSkillCheck(this.createSkillCheckState(),e),this.skillChecks[e]},createSkillCheckState(){return{happened:!1,succeeded:!1,hidden:!1}},loadSaveData(e){this.skillChecks=uu(this.skillChecks,e.skillChecks),this.skills=uu(this.skills,e.skills)},setupSkills(e){const t=e.skills;for(const n in t)this.skills[n]={id:n,level:t[n].startingLevel||0,xp:0}},reset(e){this.$reset(),this.setupSkills(e)},getSkill(e){return this.skills[e]},getSkillLevel(e){return this.getSkill(e).level},getSkillXp(e){return this.getSkill(e).xp},addXp(e,t){const n=this.getSkill(e);n||At(`Skill ${e} doesn't exist`),n.xp+=t,n.xp>=Ga().skillOptions.xpPerLevel&&(n.xp=0,n.level++,this.levelledUp(e))},setSkillLevel(e,t){const n=this.getSkill(e);n||At(`Skill ${e} doesn't exist`),n.level=t,this.levelledUp(e)},incrementSkill(e,t){this.getSkill(e).level+=t,this.levelledUp(e)},levelledUp(e){const t=Ga().skills[e].name,n=this.skills[e].level;Ga().skillOptions.notifyLevelUp&&Go().addNotification(`Your skill in ${t} is now level ${n}`)}}});function ml(e){return Array.isArray?Array.isArray(e):cz(e)==="[object Array]"}const uke=1/0;function fke(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-uke?"-0":t}function dke(e){return e==null?"":fke(e)}function Ps(e){return typeof e=="string"}function sz(e){return typeof e=="number"}function hke(e){return e===!0||e===!1||pke(e)&&cz(e)=="[object Boolean]"}function lz(e){return typeof e=="object"}function pke(e){return lz(e)&&e!==null}function Fi(e){return e!=null}function K2(e){return!e.trim().length}function cz(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const mOe="Extended search is not available",mke="Incorrect 'index' type",vke=e=>`Invalid value for key ${e}`,gke=e=>`Pattern length exceeds max of ${e}.`,yke=e=>`Missing ${e} property in key`,bke=e=>`Property 'weight' in key '${e}' must be a positive integer`,uz=Object.prototype.hasOwnProperty;class wke{constructor(t){this._keys=[],this._keyMap={};let n=0;t.forEach(r=>{let o=fz(r);n+=o.weight,this._keys.push(o),this._keyMap[o.id]=o,n+=o.weight}),this._keys.forEach(r=>{r.weight/=n})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function fz(e){let t=null,n=null,r=null,o=1,i=null;if(Ps(e)||ml(e))r=e,t=dz(e),n=G2(e);else{if(!uz.call(e,"name"))throw new Error(yke("name"));const a=e.name;if(r=a,uz.call(e,"weight")&&(o=e.weight,o<=0))throw new Error(bke(a));t=dz(a),n=G2(a),i=e.getFn}return{path:t,id:n,weight:o,src:r,getFn:i}}function dz(e){return ml(e)?e:e.split(".")}function G2(e){return ml(e)?e.join("."):e}function kke(e,t){let n=[],r=!1;const o=(i,a,s)=>{if(Fi(i))if(!a[s])n.push(i);else{let l=a[s];const c=i[l];if(!Fi(c))return;if(s===a.length-1&&(Ps(c)||sz(c)||hke(c)))n.push(dke(c));else if(ml(c)){r=!0;for(let f=0,u=c.length;f<u;f+=1)o(c[f],a,s+1)}else a.length&&o(c,a,s+1)}};return o(e,Ps(t)?t.split("."):t,0),r?n:n[0]}var mn={...{isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:kke,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const xke=/[^ ]+/g;function _ke(e=1,t=3){const n=new Map,r=Math.pow(10,t);return{get(o){const i=o.match(xke).length;if(n.has(i))return n.get(i);const a=1/Math.pow(i,.5*e),s=parseFloat(Math.round(a*r)/r);return n.set(i,s),s},clear(){n.clear()}}}class J2{constructor({getFn:t=mn.getFn,fieldNormWeight:n=mn.fieldNormWeight}={}){this.norm=_ke(n,3),this.getFn=t,this.isCreated=!1,this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach((n,r)=>{this._keysMap[n.id]=r})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Ps(this.docs[0])?this.docs.forEach((t,n)=>{this._addString(t,n)}):this.docs.forEach((t,n)=>{this._addObject(t,n)}),this.norm.clear())}add(t){const n=this.size();Ps(t)?this._addString(t,n):this._addObject(t,n)}removeAt(t){this.records.splice(t,1);for(let n=t,r=this.size();n<r;n+=1)this.records[n].i-=1}getValueForItemAtKeyId(t,n){return t[this._keysMap[n]]}size(){return this.records.length}_addString(t,n){if(!Fi(t)||K2(t))return;let r={v:t,i:n,n:this.norm.get(t)};this.records.push(r)}_addObject(t,n){let r={i:n,$:{}};this.keys.forEach((o,i)=>{let a=o.getFn?o.getFn(t):this.getFn(t,o.path);if(Fi(a)){if(ml(a)){let s=[];const l=[{nestedArrIndex:-1,value:a}];for(;l.length;){const{nestedArrIndex:c,value:f}=l.pop();if(Fi(f))if(Ps(f)&&!K2(f)){let u={v:f,i:c,n:this.norm.get(f)};s.push(u)}else ml(f)&&f.forEach((u,d)=>{l.push({nestedArrIndex:d,value:u})})}r.$[i]=s}else if(Ps(a)&&!K2(a)){let s={v:a,n:this.norm.get(a)};r.$[i]=s}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function hz(e,t,{getFn:n=mn.getFn,fieldNormWeight:r=mn.fieldNormWeight}={}){const o=new J2({getFn:n,fieldNormWeight:r});return o.setKeys(e.map(fz)),o.setSources(t),o.create(),o}function jke(e,{getFn:t=mn.getFn,fieldNormWeight:n=mn.fieldNormWeight}={}){const{keys:r,records:o}=e,i=new J2({getFn:t,fieldNormWeight:n});return i.setKeys(r),i.setIndexRecords(o),i}function K0(e,{errors:t=0,currentLocation:n=0,expectedLocation:r=0,distance:o=mn.distance,ignoreLocation:i=mn.ignoreLocation}={}){const a=t/e.length;if(i)return a;const s=Math.abs(r-n);return o?a+s/o:s?1:a}function Ske(e=[],t=mn.minMatchCharLength){let n=[],r=-1,o=-1,i=0;for(let a=e.length;i<a;i+=1){let s=e[i];s&&r===-1?r=i:!s&&r!==-1&&(o=i-1,o-r+1>=t&&n.push([r,o]),r=-1)}return e[i-1]&&i-r>=t&&n.push([r,i-1]),n}const bu=32;function Cke(e,t,n,{location:r=mn.location,distance:o=mn.distance,threshold:i=mn.threshold,findAllMatches:a=mn.findAllMatches,minMatchCharLength:s=mn.minMatchCharLength,includeMatches:l=mn.includeMatches,ignoreLocation:c=mn.ignoreLocation}={}){if(t.length>bu)throw new Error(gke(bu));const f=t.length,u=e.length,d=Math.max(0,Math.min(r,u));let h=i,p=d;const m=s>1||l,v=m?Array(u):[];let g;for(;(g=e.indexOf(t,p))>-1;){let E=K0(t,{currentLocation:g,expectedLocation:d,distance:o,ignoreLocation:c});if(h=Math.min(E,h),p=g+f,m){let I=0;for(;I<f;)v[g+I]=1,I+=1}}p=-1;let y=[],w=1,k=f+u;const $=1<<f-1;for(let E=0;E<f;E+=1){let I=0,D=k;for(;I<D;)K0(t,{errors:E,currentLocation:d+D,expectedLocation:d,distance:o,ignoreLocation:c})<=h?I=D:k=D,D=Math.floor((k-I)/2+I);k=D;let L=Math.max(1,d-D+1),M=a?u:Math.min(d+D,u)+f,F=Array(M+2);F[M+1]=(1<<E)-1;for(let N=M;N>=L;N-=1){let W=N-1,ee=n[e.charAt(W)];if(m&&(v[W]=+!!ee),F[N]=(F[N+1]<<1|1)&ee,E&&(F[N]|=(y[N+1]|y[N])<<1|1|y[N+1]),F[N]&$&&(w=K0(t,{errors:E,currentLocation:W,expectedLocation:d,distance:o,ignoreLocation:c}),w<=h)){if(h=w,p=W,p<=d)break;L=Math.max(1,2*d-p)}}if(K0(t,{errors:E+1,currentLocation:d,expectedLocation:d,distance:o,ignoreLocation:c})>h)break;y=F}const j={isMatch:p>=0,score:Math.max(.001,w)};if(m){const E=Ske(v,s);E.length?l&&(j.indices=E):j.isMatch=!1}return j}function $ke(e){let t={};for(let n=0,r=e.length;n<r;n+=1){const o=e.charAt(n);t[o]=(t[o]||0)|1<<r-n-1}return t}class pz{constructor(t,{location:n=mn.location,threshold:r=mn.threshold,distance:o=mn.distance,includeMatches:i=mn.includeMatches,findAllMatches:a=mn.findAllMatches,minMatchCharLength:s=mn.minMatchCharLength,isCaseSensitive:l=mn.isCaseSensitive,ignoreLocation:c=mn.ignoreLocation}={}){if(this.options={location:n,threshold:r,distance:o,includeMatches:i,findAllMatches:a,minMatchCharLength:s,isCaseSensitive:l,ignoreLocation:c},this.pattern=l?t:t.toLowerCase(),this.chunks=[],!this.pattern.length)return;const f=(d,h)=>{this.chunks.push({pattern:d,alphabet:$ke(d),startIndex:h})},u=this.pattern.length;if(u>bu){let d=0;const h=u%bu,p=u-h;for(;d<p;)f(this.pattern.substr(d,bu),d),d+=bu;if(h){const m=u-bu;f(this.pattern.substr(m),m)}}else f(this.pattern,0)}searchIn(t){const{isCaseSensitive:n,includeMatches:r}=this.options;if(n||(t=t.toLowerCase()),this.pattern===t){let p={isMatch:!0,score:0};return r&&(p.indices=[[0,t.length-1]]),p}const{location:o,distance:i,threshold:a,findAllMatches:s,minMatchCharLength:l,ignoreLocation:c}=this.options;let f=[],u=0,d=!1;this.chunks.forEach(({pattern:p,alphabet:m,startIndex:v})=>{const{isMatch:g,score:y,indices:w}=Cke(t,p,m,{location:o+v,distance:i,threshold:a,findAllMatches:s,minMatchCharLength:l,includeMatches:r,ignoreLocation:c});g&&(d=!0),u+=y,g&&w&&(f=[...f,...w])});let h={isMatch:d,score:d?u/this.chunks.length:1};return d&&r&&(h.indices=f),h}}class mc{constructor(t){this.pattern=t}static isMultiMatch(t){return mz(t,this.multiRegex)}static isSingleMatch(t){return mz(t,this.singleRegex)}search(){}}function mz(e,t){const n=e.match(t);return n?n[1]:null}class Tke extends mc{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){const n=t===this.pattern;return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class Oke extends mc{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){const r=t.indexOf(this.pattern)===-1;return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}}class Eke extends mc{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){const n=t.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class Ake extends mc{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){const n=!t.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}}class Mke extends mc{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){const n=t.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[t.length-this.pattern.length,t.length-1]}}}class Pke extends mc{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){const n=!t.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}}class vz extends mc{constructor(t,{location:n=mn.location,threshold:r=mn.threshold,distance:o=mn.distance,includeMatches:i=mn.includeMatches,findAllMatches:a=mn.findAllMatches,minMatchCharLength:s=mn.minMatchCharLength,isCaseSensitive:l=mn.isCaseSensitive,ignoreLocation:c=mn.ignoreLocation}={}){super(t),this._bitapSearch=new pz(t,{location:n,threshold:r,distance:o,includeMatches:i,findAllMatches:a,minMatchCharLength:s,isCaseSensitive:l,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}}class gz extends mc{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let n=0,r;const o=[],i=this.pattern.length;for(;(r=t.indexOf(this.pattern,n))>-1;)n=r+i,o.push([r,n-1]);const a=!!o.length;return{isMatch:a,score:a?0:1,indices:o}}}const Q2=[Tke,gz,Eke,Ake,Pke,Mke,Oke,vz],yz=Q2.length,Nke=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Ike="|";function Dke(e,t={}){return e.split(Ike).map(n=>{let r=n.trim().split(Nke).filter(i=>i&&!!i.trim()),o=[];for(let i=0,a=r.length;i<a;i+=1){const s=r[i];let l=!1,c=-1;for(;!l&&++c<yz;){const f=Q2[c];let u=f.isMultiMatch(s);u&&(o.push(new f(u,t)),l=!0)}if(!l)for(c=-1;++c<yz;){const f=Q2[c];let u=f.isSingleMatch(s);if(u){o.push(new f(u,t));break}}}return o})}const Lke=new Set([vz.type,gz.type]);class Rke{constructor(t,{isCaseSensitive:n=mn.isCaseSensitive,includeMatches:r=mn.includeMatches,minMatchCharLength:o=mn.minMatchCharLength,ignoreLocation:i=mn.ignoreLocation,findAllMatches:a=mn.findAllMatches,location:s=mn.location,threshold:l=mn.threshold,distance:c=mn.distance}={}){this.query=null,this.options={isCaseSensitive:n,includeMatches:r,minMatchCharLength:o,findAllMatches:a,ignoreLocation:i,location:s,threshold:l,distance:c},this.pattern=n?t:t.toLowerCase(),this.query=Dke(this.pattern,this.options)}static condition(t,n){return n.useExtendedSearch}searchIn(t){const n=this.query;if(!n)return{isMatch:!1,score:1};const{includeMatches:r,isCaseSensitive:o}=this.options;t=o?t:t.toLowerCase();let i=0,a=[],s=0;for(let l=0,c=n.length;l<c;l+=1){const f=n[l];a.length=0,i=0;for(let u=0,d=f.length;u<d;u+=1){const h=f[u],{isMatch:p,indices:m,score:v}=h.search(t);if(p){if(i+=1,s+=v,r){const g=h.constructor.type;Lke.has(g)?a=[...a,...m]:a.push(m)}}else{s=0,i=0,a.length=0;break}}if(i){let u={isMatch:!0,score:s/i};return r&&(u.indices=a),u}}return{isMatch:!1,score:1}}}const Y2=[];function Bke(...e){Y2.push(...e)}function X2(e,t){for(let n=0,r=Y2.length;n<r;n+=1){let o=Y2[n];if(o.condition(e,t))return new o(e,t)}return new pz(e,t)}const G0={AND:"$and",OR:"$or"},Z2={PATH:"$path",PATTERN:"$val"},ej=e=>!!(e[G0.AND]||e[G0.OR]),Fke=e=>!!e[Z2.PATH],Vke=e=>!ml(e)&&lz(e)&&!ej(e),bz=e=>({[G0.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function wz(e,t,{auto:n=!0}={}){const r=o=>{let i=Object.keys(o);const a=Fke(o);if(!a&&i.length>1&&!ej(o))return r(bz(o));if(Vke(o)){const l=a?o[Z2.PATH]:i[0],c=a?o[Z2.PATTERN]:o[l];if(!Ps(c))throw new Error(vke(l));const f={keyId:G2(l),pattern:c};return n&&(f.searcher=X2(c,t)),f}let s={children:[],operator:i[0]};return i.forEach(l=>{const c=o[l];ml(c)&&c.forEach(f=>{s.children.push(r(f))})}),s};return ej(e)||(e=bz(e)),r(e)}function zke(e,{ignoreFieldNorm:t=mn.ignoreFieldNorm}){e.forEach(n=>{let r=1;n.matches.forEach(({key:o,norm:i,score:a})=>{const s=o?o.weight:null;r*=Math.pow(a===0&&s?Number.EPSILON:a,(s||1)*(t?1:i))}),n.score=r})}function qke(e,t){const n=e.matches;t.matches=[],Fi(n)&&n.forEach(r=>{if(!Fi(r.indices)||!r.indices.length)return;const{indices:o,value:i}=r;let a={indices:o,value:i};r.key&&(a.key=r.key.src),r.idx>-1&&(a.refIndex=r.idx),t.matches.push(a)})}function Uke(e,t){t.score=e.score}function Hke(e,t,{includeMatches:n=mn.includeMatches,includeScore:r=mn.includeScore}={}){const o=[];return n&&o.push(qke),r&&o.push(Uke),e.map(i=>{const{idx:a}=i,s={item:t[a],refIndex:a};return o.length&&o.forEach(l=>{l(i,s)}),s})}class ud{constructor(t,n={},r){this.options={...mn,...n},this.options.useExtendedSearch,this._keyStore=new wke(this.options.keys),this.setCollection(t,r)}setCollection(t,n){if(this._docs=t,n&&!(n instanceof J2))throw new Error(mke);this._myIndex=n||hz(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){Fi(t)&&(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){const n=[];for(let r=0,o=this._docs.length;r<o;r+=1){const i=this._docs[r];t(i,r)&&(this.removeAt(r),r-=1,o-=1,n.push(i))}return n}removeAt(t){this._docs.splice(t,1),this._myIndex.removeAt(t)}getIndex(){return this._myIndex}search(t,{limit:n=-1}={}){const{includeMatches:r,includeScore:o,shouldSort:i,sortFn:a,ignoreFieldNorm:s}=this.options;let l=Ps(t)?Ps(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t);return zke(l,{ignoreFieldNorm:s}),i&&l.sort(a),sz(n)&&n>-1&&(l=l.slice(0,n)),Hke(l,this._docs,{includeMatches:r,includeScore:o})}_searchStringList(t){const n=X2(t,this.options),{records:r}=this._myIndex,o=[];return r.forEach(({v:i,i:a,n:s})=>{if(!Fi(i))return;const{isMatch:l,score:c,indices:f}=n.searchIn(i);l&&o.push({item:i,idx:a,matches:[{score:c,value:i,norm:s,indices:f}]})}),o}_searchLogical(t){const n=wz(t,this.options),r=(s,l,c)=>{if(!s.children){const{keyId:u,searcher:d}=s,h=this._findMatches({key:this._keyStore.get(u),value:this._myIndex.getValueForItemAtKeyId(l,u),searcher:d});return h&&h.length?[{idx:c,item:l,matches:h}]:[]}const f=[];for(let u=0,d=s.children.length;u<d;u+=1){const h=s.children[u],p=r(h,l,c);if(p.length)f.push(...p);else if(s.operator===G0.AND)return[]}return f},o=this._myIndex.records,i={},a=[];return o.forEach(({$:s,i:l})=>{if(Fi(s)){let c=r(n,s,l);c.length&&(i[l]||(i[l]={idx:l,item:s,matches:[]},a.push(i[l])),c.forEach(({matches:f})=>{i[l].matches.push(...f)}))}}),a}_searchObjectList(t){const n=X2(t,this.options),{keys:r,records:o}=this._myIndex,i=[];return o.forEach(({$:a,i:s})=>{if(!Fi(a))return;let l=[];r.forEach((c,f)=>{l.push(...this._findMatches({key:c,value:a[f],searcher:n}))}),l.length&&i.push({idx:s,item:a,matches:l})}),i}_findMatches({key:t,value:n,searcher:r}){if(!Fi(n))return[];let o=[];if(ml(n))n.forEach(({v:i,i:a,n:s})=>{if(!Fi(i))return;const{isMatch:l,score:c,indices:f}=r.searchIn(i);l&&o.push({score:c,key:t,value:i,idx:a,norm:s,indices:f})});else{const{v:i,n:a}=n,{isMatch:s,score:l,indices:c}=r.searchIn(i);s&&o.push({score:l,key:t,value:i,norm:a,indices:c})}return o}}ud.version="6.6.2",ud.createIndex=hz,ud.parseIndex=jke,ud.config=mn,ud.parseQuery=wz,Bke(Rke);class Wke extends F_{setup(){const t=()=>{this.emit("preUpdate"),this.emit("update"),this.emit("postUpdate"),requestAnimationFrame(t)};t()}}const Op=new Wke;Ze.Vec2=void 0,(e=>{function t(p,m){return{x:p??0,y:m??0}}e.create=t;function n(p){return Math.sqrt(p.x*p.x+p.y*p.y)}e.magnitude=n;function r(p){const m=n(p);return m===0?t(0,0):{x:p.x/m,y:p.y/m}}e.normalize=r;function o(p,m){return{x:p.x+m.x,y:p.y+m.y}}e.add=o;function i(p,m){return{x:p.x-m.x,y:p.y-m.y}}e.subtract=i;function a(p,m){return{x:p.x*m.x,y:p.y*m.y}}e.multiply=a;function s(p,m){return{x:p.x*m,y:p.y*m}}e.scale=s;function l(p,m){return{x:p.x/m.x,y:p.y/m.y}}e.divide=l;function c(p,m){return n(i(p,m))}e.distance=c;function f(p,m,v){return{x:p.x+(m.x-p.x)*v,y:p.y+(m.y-p.y)*v}}e.lerp=f;function u(p,m){const v=Math.cos(m),g=Math.sin(m);return{x:p.x*v-p.y*g,y:p.x*g+p.y*v}}e.rotate=u;function d(p,m){const v=i(m,p);return e.normalize({x:-v.y,y:v.x})}e.normal=d;function h(p,m){return p.x*m.x+p.y*m.y}e.dot=h})(Ze.Vec2||(Ze.Vec2={}));class Kke extends EventTarget{constructor(){super(...arguments);Wn(this,"gamepadAvailable",!0);Wn(this,"gameActions",{});Wn(this,"keyboardState",{});Wn(this,"actions",{});Wn(this,"lastInputMethodUsed","km");Wn(this,"gamepad",null)}kbEvent(){this.changeLastInput("km")}getGamepads(){return navigator.getGamepads?navigator.getGamepads():(this.gamepadAvailable=!1,[])}gamepadEvent(){this.changeLastInput("gamepad")}mouseEvent(){this.changeLastInput("km")}changeLastInput(n){this.lastInputMethodUsed!==n&&(this.lastInputMethodUsed=n,this.dispatchEvent(new CustomEvent("change-input",{detail:n})))}getGamepad(){const n=this.getGamepads().filter(r=>r!==null);if(n.length>0)return n[0]}startListening(){this.updateGamepad();const n=Pr().inputsContainer;n.addEventListener("mousemove",r=>{this.mouseEvent()}),n.addEventListener("keydown",r=>{this.kbEvent();const o=this.getKeyboardState(r.key).current;this.keyboardState[r.key]={previous:o,current:!0}}),n.addEventListener("keyup",r=>{this.kbEvent();const o=this.getKeyboardState(r.key).current;this.keyboardState[r.key]={previous:o,current:!1}}),Op.on("preUpdate",()=>{this.update()})}updateGamepad(){const n=this.getGamepad();n?this.gamepad?this.updateAllNarratButtons(n,this.gamepad):this.gamepad=this.setupNarratGamepad(n):this.gamepad=null}setupNarratGamepad(n){return{id:n.id,gamepad:n,buttons:n.buttons.map((o,i)=>this.getNarratButtonFromGamepad(o,o,i))}}updateAllNarratButtons(n,r){for(const[o,i]of n.buttons.entries()){const a=r.buttons[o];a.previous=Zn(a.state),a.state=Zn(i),a.previous.pressed!==a.state.pressed&&this.gamepadEvent()}}getNarratButtonFromGamepad(n,r,o){return{index:o,state:Zn(r),previous:Zn(r)}}addAction(n){if(this.gameActions[n.id]=n,n.type==="button"){const r={config:n,active:!1,justPressed:!1,justReleased:!1};this.actions[n.id]={state:r,previous:Zn(r)}}else{const r={config:n,value:Ze.Vec2.create(0,0),fullState:{left:0,right:0,up:0,down:0}};this.actions[n.id]={state:r,previous:Zn(r)}}}getAnalog(n){return this.actions[n]||At(`Action ${n} does not exist`),this.actions[n].state}getButton(n){return this.actions[n]||At(`Action ${n} does not exist`),this.actions[n].state}getKeyboardState(n){return this.keyboardState[n]?this.keyboardState[n]:(this.keyboardState[n]={current:!1,previous:!1},this.keyboardState[n])}getGamepadState(n){return this.gamepad&&this.gamepad.buttons.length>n?{current:this.gamepad.buttons[n].state,previous:this.gamepad.buttons[n].previous}:null}debugGamepad(){if(this.gamepad)for(const[n,r]of this.gamepad.buttons.entries())r.state.pressed,r.previous.pressed}update(){this.updateGamepad(),this.debugGamepad();for(const n of Object.values(this.gameActions))if(n.type==="button"){const r=this.actions[n.id],o=Zn(r.state),i=r.state;r.previous=o,n.action==="press"&&(n.keybinds.some(s=>{let l=!1;if(typeof s.keyboardKey=="string"&&this.getKeyboardState(s.keyboardKey).current===!0&&(l=!0),typeof s.gamepadButton=="number"){const c=this.getGamepadState(s.gamepadButton);c&&c.current.pressed===!0&&(l=!0)}return l})?i.active=!0:i.active=!1,i.active&&!o.active?i.justPressed=!0:i.justPressed=!1,!i.active&&o.active?i.justReleased=!0:i.justReleased=!1)}else if(n.type==="analog"){const r=this.actions[n.id],o=r.state;Zn(r.state),r.previous=Zn(o);let i=Ze.Vec2.create(0,0);n.keybinds.forEach(a=>{this.getKeyboardState(a.left).current&&(o.fullState.left=1,i.x-=1),this.getKeyboardState(a.right).current&&(o.fullState.right=1,i.x+=1),this.getKeyboardState(a.up).current&&(o.fullState.up=1,i.y-=1),this.getKeyboardState(a.down).current&&(o.fullState.down=1,i.y+=1)}),i=Ze.Vec2.normalize(i),o.value=i}}}const vc=new Kke,Gke=[{id:"left",type:"button",action:"press",keybinds:[{keyboardKey:"ArrowLeft",gamepadButton:14}]},{id:"right",type:"button",action:"press",keybinds:[{keyboardKey:"ArrowRight",gamepadButton:15}]},{id:"up",type:"button",action:"press",keybinds:[{keyboardKey:"ArrowUp",gamepadButton:12}]},{id:"down",type:"button",action:"press",keybinds:[{keyboardKey:"ArrowDown",gamepadButton:13}]},{id:"continue",type:"button",action:"press",keybinds:[{keyboardKey:"Enter",gamepadButton:0}]},{id:"cancel",type:"button",action:"press",keybinds:[{keyboardKey:"Escape",gamepadButton:1}]},{id:"system",type:"button",action:"press",keybinds:[{keyboardKey:"n",gamepadButton:9}]},{id:"menu",type:"button",action:"press",keybinds:[{keyboardKey:"m",gamepadButton:8}]},{id:"previousTab",type:"button",action:"press",keybinds:[{keyboardKey:"p",gamepadButton:4}]},{id:"nextTab",type:"button",action:"press",keybinds:[{keyboardKey:"o",gamepadButton:5}]},{id:"subPreviousTab",type:"button",action:"press",keybinds:[{keyboardKey:"i",gamepadButton:6}]},{id:"subNextTab",type:"button",action:"press",keybinds:[{keyboardKey:"u",gamepadButton:7}]},{id:"viewportSelect",type:"button",action:"press",keybinds:[{keyboardKey:"v",gamepadButton:2}]},{id:"autoPlay",type:"button",action:"press",keybinds:[{keyboardKey:"a",gamepadButton:6}]},{id:"skip",type:"button",action:"press",keybinds:[{keyboardKey:"s",gamepadButton:7}]}],Nr=oo("inputs",{state:()=>({inputStack:[],baseInputListener:null,inputMode:"mk"}),actions:{setupInputs(){vc.addEventListener("change-input",e=>{this.inputMode=e.detail});for(const e of Gke)vc.addAction(e);this.listenToBaseNarratInputs(),Op.on("preUpdate",()=>{for(const[e,t]of Object.entries(vc.actions))if(t.state.config.type==="button"){const n=t;n.state.justPressed&&this.triggerListeners(e,"press",n),n.state.justReleased&&this.triggerListeners(e,"release",n)}else t.state.config.type})},listenToContainerInputs(){vc.startListening()},listenToBaseNarratInputs(){},triggerListeners(e,t,n){const r=this.inputStack[this.inputStack.length-1];if(r.actions[e]&&r.actions[e][t])if(n.state.config.type==="button"){const o=r.actions[e][t],i=n;o(n.state.config,i.state,i.previous)}else console.warn("Analog events not implemented yet")},getInputs(){return vc},registerInputListener(e,t){const r={id:`${Date.now()}-${Math.floor(Math.random()*1e8)}`,name:e,actions:t??{}};return this.inputStack.push(r),r},unregisterInputListener(e){const t=this.inputStack.findIndex(n=>n.id===e.id);if(t===-1)throw new Error("Input listener not found");this.inputStack.splice(t,1)},registerActions(e,t,n){e.actions[t]=n}}}),Jke=b.createElementVNode("h3",{class:"title"},"Jump to label",-1),Qke={key:0,class:"search-results"},Yke={key:1},Xke=[b.createElementVNode("h3",null,"No matches found",-1)],Zke=b.defineComponent({__name:"debug-jumping",emits:["close","jump"],setup(e,{emit:t}){const n=t;let r;const o=b.ref(null),i=b.ref(""),a=b.ref([]),s=b.ref(0),l=b.ref(null);function c(){const d=i.value,h=r.search(d);a.value=h.map(p=>p.item),a.value.length>0&&s.value>a.value.length-1&&(s.value=a.value.length-1)}function f(d){if(d===s.value)return{background:"var(--light-background)"}}const u=b.computed(()=>Object.keys(yn.script).sort());return b.onMounted(()=>{Gt().debugMode=!0,r=new ud(u.value,{includeScore:!0}),a.value=u.value,s.value=0,setTimeout(()=>{b.nextTick(()=>{l.value&&l.value.focus()})},10),o.value=Nr().registerInputListener("debug-jumping",{up:{press:()=>{s.value>0?s.value--:s.value=a.value.length-1}},down:{press:()=>{a.value.length>s.value+1?s.value++:s.value=0}},continue:{press:()=>{if(a.value.length>0&&s.value<a.value.length){const d=a.value[s.value];un().jumpToLabel(d),n("close")}}},escape:{press:()=>{n("close")}}})}),b.onUnmounted(()=>{o.value&&Nr().unregisterInputListener(o.value),Gt().debugMode=!1}),(d,h)=>(b.openBlock(),b.createBlock(Ds,{onClose:h[1]||(h[1]=p=>d.$emit("close")),containerCssClass:"jump-menu-container"},{header:b.withCtx(()=>[Jke]),body:b.withCtx(()=>[b.withDirectives(b.createElementVNode("input",{type:"text",class:"label-input input",ref_key:"search",ref:l,"onUpdate:modelValue":h[0]||(h[0]=p=>i.value=p),onInput:c},null,544),[[b.vModelText,i.value]]),a.value.length>0?(b.openBlock(),b.createElementBlock("div",Qke,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(a.value,(p,m)=>(b.openBlock(),b.createElementBlock("div",{class:"search-result",style:b.normalizeStyle(f(m)),key:m},b.toDisplayString(p),5))),128))])):(b.openBlock(),b.createElementBlock("div",Yke,Xke))]),_:1}))}}),kOe="",exe=b.defineComponent({components:{ModalWindow:Ds,DebugJumping:Zke},setup(){const e=Cr(),t=b.computed(()=>e.skills),n=b.computed(()=>e.skillChecks);return{skills:t,skillChecks:n}},data(){return{showDebug:!1,jumping:!1,inputListener:null}},mounted(){Pr().inputsContainer.addEventListener("keydown",t=>{this.jumping||(t.key==="d"&&this.toggle(),t.key==="j"&&this.jump())})},methods:{closeJumping(){this.jumping=!1},labelSelected(e){const t=e.target.value;un().jumpToLabel(t),this.close()},close(){this.showDebug=!1,this.endDebug()},closeErrors(){Gt().clearErrors()},open(){this.showDebug=!0,this.startDebug();const e=un(),t=Gt(),n=eo(),r=so(),o=Cr();this.$nextTick(()=>{new tB({target:this.$refs.variablesViewer,props:{content:{text:void 0,json:{data:this.variables,quests:n.quests,items:r.items,skills:o.skills,skillChecks:o.skillChecks}},onChange:i=>{e.overrideData(i.json.data),n.quests=i.json.quests,r.items=i.json.items,o.skills=i.json.skills,o.skillChecks=i.json.skillChecks}}}),new tB({target:this.$refs.stateViewer,props:{content:{text:void 0,json:t.getAllStates()},onChange:i=>{t.overrideStates(i.json)}}})})},toggle(){this.showDebug?this.close():this.open()},startDebug(){Gt().debugMode=!0},endDebug(){Gt().debugMode=!1},jump(){this.jumping=!0,this.startDebug()},save(){Gt().autoSaveGame({})},resetSave(){Ome()},resetGlobalSave(){Gt().resetGlobalSave()},wordCount(){const t=Object.values(this.script).reduce((n,r)=>(zi.log(n),n+this.countWordsInScriptBranch(r.branch)),0);alert(`You have ${t} words`)},countWordsInScriptLine(e){if(e.command.commandType==="talk"&&typeof e.command.args[2]=="string")return this.countWordsInString(e.command.args[2]);if(e.command.commandType==="text")return this.countWordsInString(e.code);if(e.command.commandType==="choice"){const t=e.command.staticOptions;let n=this.countWordsInScriptLine(t.prompt);return n+=t.choices.reduce((o,i)=>o+this.countWordsInString(i.prompt.code),0),t.choices.reduce((o,i)=>i.branch?o+this.countWordsInScriptBranch(i.branch):o,n)}if(e.command.commandType==="if"){const t=e.command.staticOptions;return[t.success,t.failure].reduce((r,o)=>o?r+this.countWordsInScriptBranch(o):r,0)}return 0},countWordsInString(e){return e.split(" ").length},countWordsInScriptBranch(e){return e.reduce((t,n)=>n?t+this.countWordsInScriptLine(n):t,0)},getPlayTimeString(){const e=ku(this.playTime.start,this.playTime.previousPlaytime);return ey(e/1e3)}},computed:{...t0(un,["data"]),...t0(Gt,["playTime","errors","playing","flowState"]),labels(){const e=this.script;return Object.keys(e).sort()},script(){return yn.script},variables(){return this.data}}}),xOe="",txe={class:"debug-menu"},nxe={key:0,class:"debug-info"},rxe=[b.createStaticVNode("<h3>Debug mode is ON</h3><ul><li><b>j</b>: Quick Label Jump</li><li><b>d</b>: Debug Menu</li><li><b>a</b>: Auto Play</li><li><b>s</b>: Skip</li><li><b>Space</b>: New Game</li><li><b>c</b>: Continue</li><li><b>Escape</b>: Toggle Menu</li></ul>",2)],oxe=b.createElementVNode("h3",{class:"title"},"Error(s)",-1),ixe=["innerHTML"],axe=b.createElementVNode("h3",{class:"title"},"Debug Menu!",-1),sxe={class:"container"},lxe=b.createElementVNode("option",{class:"option",selected:"",disabled:""},"Jump to a label",-1),cxe=["value"],uxe={class:"grid grid-cols-3 gap-4"},fxe=b.createElementVNode("h2",null,"Variables Editor",-1),dxe={ref:"variablesViewer"},hxe=b.createElementVNode("h2",null,"Skill Checks",-1),pxe={class:"table-auto"},mxe=b.createElementVNode("thead",null,[b.createElementVNode("tr",null,[b.createElementVNode("th",null,"Skill Check"),b.createElementVNode("th",null,"Happened"),b.createElementVNode("th",null,"Succeeded")])],-1),vxe=b.createElementVNode("h2",null,"App State editor (entire app and engine",-1),gxe=b.createElementVNode("h3",{style:{color:"pink"}}," Use for debugging, editing some of those things can cause issues ",-1),yxe={ref:"stateViewer"};function bxe(e,t,n,r,o,i){const a=b.resolveComponent("DebugJumping"),s=b.resolveComponent("ModalWindow");return b.openBlock(),b.createElementBlock("div",txe,[b.createElementVNode("button",{onClick:t[0]||(t[0]=(...l)=>e.open&&e.open(...l)),class:"button debug-button"},"Debug Menu"),!e.playing&&e.flowState==="menu"?(b.openBlock(),b.createElementBlock("div",nxe,rxe)):b.createCommentVNode("",!0),e.jumping?(b.openBlock(),b.createBlock(a,{key:1,onClose:e.closeJumping},null,8,["onClose"])):b.createCommentVNode("",!0),e.errors.length>0?(b.openBlock(),b.createBlock(s,{key:2,onClose:e.closeErrors,containerCssClass:"debug-menu-container"},{header:b.withCtx(()=>[oxe]),body:b.withCtx(()=>[b.createTextVNode(" There are errors in your dialogue scripts. Open the developer console for more details. "),b.createElementVNode("ul",null,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.errors,(l,c)=>(b.openBlock(),b.createElementBlock("li",{key:c,class:b.normalizeClass(["error-message list-disc",l.type==="error"?"error":"warning"]),innerHTML:l.text},null,10,ixe))),128))])]),_:1},8,["onClose"])):b.createCommentVNode("",!0),e.showDebug?(b.openBlock(),b.createBlock(s,{key:3,onClose:e.close,containerCssClass:"debug-menu-container"},{header:b.withCtx(()=>[axe]),body:b.withCtx(()=>[b.createElementVNode("div",sxe,[b.createTextVNode(" Hello this is the debug menu. "),b.createElementVNode("select",{class:"select",name:"label-selector",onChange:t[1]||(t[1]=l=>e.labelSelected(l))},[lxe,(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.labels,l=>(b.openBlock(),b.createElementBlock("option",{class:"option",value:l,key:l},b.toDisplayString(l),9,cxe))),128))],32),b.createElementVNode("div",uxe,[b.createElementVNode("button",{onClick:t[2]||(t[2]=(...l)=>e.wordCount&&e.wordCount(...l)),class:"button"},"Word Count"),b.createElementVNode("button",{onClick:t[3]||(t[3]=(...l)=>e.save&&e.save(...l)),class:"button"},"Save Game"),b.createElementVNode("button",{onClick:t[4]||(t[4]=(...l)=>e.resetSave&&e.resetSave(...l)),class:"button"},"Reset Save"),b.createElementVNode("button",{onClick:t[5]||(t[5]=(...l)=>e.resetGlobalSave&&e.resetGlobalSave(...l)),class:"button"}," Reset GLOBAL Save ")]),b.createElementVNode("h3",null,"Play time: "+b.toDisplayString(e.getPlayTimeString()),1),fxe,b.createElementVNode("div",dxe,null,512),hxe,b.createElementVNode("table",pxe,[mxe,b.createElementVNode("tbody",null,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.skillChecks,(l,c)=>(b.openBlock(),b.createElementBlock("tr",{key:c},[b.createElementVNode("td",null,b.toDisplayString(c),1),b.createElementVNode("td",null,b.toDisplayString(l.happened?"✅":"❌"),1),b.createElementVNode("td",null,b.toDisplayString(l.happened?l.succeeded?"✅":"❌":"NA"),1)]))),128))])]),vxe,gxe,b.createElementVNode("div",yxe,null,512)])]),_:1},8,["onClose"])):b.createCommentVNode("",!0)])}const wxe=Xa(exe,[["render",bxe]]),kxe=["src"],xxe=["innerHTML"],_xe=["innerHTML"],jxe=b.defineComponent({__name:"notification-toast",setup(e){const t=Go(),n=b.computed(()=>t.notifications),r=o=>{if(o.description)return{marginTop:"10px"}};return(o,i)=>(b.openBlock(),b.createBlock(b.TransitionGroup,{name:"notification",tag:"div",class:"notifications-holder"},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(n.value,(a,s)=>(b.openBlock(),b.createElementBlock("div",{class:"notification tile",key:s},[a.icon?(b.openBlock(),b.createElementBlock("img",{key:0,src:b.unref(ui)(a.icon),class:"notification-icon",style:b.normalizeStyle(r(a))},null,12,kxe)):b.createCommentVNode("",!0),b.createElementVNode("span",{innerHTML:a.text,class:"notification-text"},null,8,xxe),a.description?(b.openBlock(),b.createElementBlock("p",{key:1,innerHTML:a.description,class:"notification-description"},null,8,_xe)):b.createCommentVNode("",!0)]))),128))]),_:1}))}}),jOe="";function vl(e){if(!e.listener)return console.warn("No input listener provided for navigation"),null;const t=b.ref(-1),n=b.computed(()=>e.mode==="grid"?t.value%e.columns:0),r=b.ref([]),o=b.ref(vc.lastInputMethodUsed),i=b.ref(null);function a(){var D,L;return(D=e.container)!=null&&D.value?e.container.value.children:(L=e.elements)!=null&&L.value?e.elements.value.filter(M=>M!==null):[]}function s(){r.value=a()}const l=b.computed(()=>u(t.value));function c(D){return r.value?D>=0&&D<r.value.length:!1}function f(D){const L=t.value;if(c(D)&&(t.value=D,l.value)){o.value==="gamepad"&&l.value.classList.add("selected");const M=u(L);M&&L!==D&&M.classList.remove("selected"),e.onSelected&&e.onSelected(D)}}function u(D){return r.value?r.value[D]:null}function d(){r.value&&(t.value===0?e.loopForbidden||f(r.value.length-1):f(t.value-1))}function h(){r.value&&(t.value===r.value.length-1?e.loopForbidden||f(0):f(t.value+1))}function p(){if(!r.value)return;const D=e,L=t.value;!e.loopForbidden&&L<D.columns?f(r.value.length-1):f(t.value-e.columns)}function m(){if(!r.value)return;const D=e,L=t.value;!e.loopForbidden&&L>=r.value.length-D.columns?f(0):f(t.value+e.columns)}function v(){e.mode==="grid"?p():e.mode==="list"&&d()}function g(){e.mode==="grid"?m():e.mode==="list"&&h()}function y(){(e.mode==="grid"||e.mode==="list")&&d()}function w(){(e.mode==="grid"||e.mode==="list")&&h()}function k(){e.onChosen&&e.onChosen(t.value)}b.onMounted(()=>{I()});function $(){e.listener&&(e.onlyVertical||(delete e.listener.actions.left,delete e.listener.actions.right),e.onlyHorizontal||(delete e.listener.actions.up,delete e.listener.actions.down),e.noChoosing||delete e.listener.actions.continue,i.value&&vc.removeEventListener("change-input",i.value))}function j(){l.value&&l.value.classList.add("selected")}function E(){l.value&&l.value.classList.remove("selected")}function I(){e.listener&&(s(),i.value=D=>{o.value=D.detail,D.detail==="gamepad"?j():E()},vc.addEventListener("change-input",i.value),e.onlyVertical||(e.listener.actions.left={press:y},e.listener.actions.right={press:w}),e.onlyHorizontal||(e.listener.actions.up={press:v},e.listener.actions.down={press:g}),e.noChoosing||(e.listener.actions.continue={press:k}),f(0))}return b.onUnmounted(()=>{$()}),b.watch(()=>{var D;return(D=e.elements)==null?void 0:D.value},D=>{D&&s()}),{selectedIndex:t,selectedElement:l,currentColumn:n,buttonDown:g,buttonUp:v,buttonLeft:y,buttonRight:w,selectUp:p,selectDown:m,selectPrevious:d,selectNext:h,select:f,disable:$,mount:I}}const Sxe={class:"used-save-slot flex flex-row justify-between items-center grow"},Cxe={class:"flex flex-col save-slot-number-container"},$xe={class:"save-slot-number"},Txe={class:"flex flex-col justify-center save-info"},Oxe={key:1,class:"save-name"},Exe={class:"flex flex-col"},Axe={key:0},Mxe={key:1},Pxe={key:2},Nxe=["onClick"],tj=b.defineComponent({__name:"save-slot-ui",props:{saveSlot:{},id:{},actions:{},selected:{type:Boolean},inputListener:{}},emits:["choice","cancel"],setup(e,{expose:t,emit:n}){var k;const r=e,o=b.ref(null),i=b.ref(null),a=b.ref(null);t({slotContainer:a});const s=b.ref(((k=r.saveSlot.saveData)==null?void 0:k.metadata.name)??"Empty Save"),l=b.ref(0),c=b.computed(()=>r.saveSlot.saveData!==null),f=b.computed(()=>r.saveSlot.saveData),u=b.computed(()=>Mt().saves.mode),d=b.computed(()=>{const $=r.saveSlot.saveData;if($&&$.screen.layers[0]){const j=ad($.screen.layers[0]);if(j)return{backgroundImage:`url(${sd(j.background)})`}}return!1}),h=n;function p($){h("choice",$)}function m($){return f.value?ey(f.value.main.playTime/1e3):"00:00:00"}function v(){f.value&&Ime(r.saveSlot.id,s.value)}function g(){const $=Mt().saves.slots;let j="";const E=r.saveSlot.slotNumber;return E===0&&Mt().saves.mode==="manual"?"AUTO":($>=10&&E<10&&(j+="0"),$>=100&&E<100&&(j+="0"),j+E)}function y(){o.value=vl({mode:"list",container:i,listener:r.inputListener,onlyHorizontal:!0,onSelected:$=>{l.value=$},onChosen:$=>{p($)}}),o.value.mount()}function w(){o.value.disable(),o.value=null}return b.watch(()=>r.selected,($,j)=>{$&&!o.value&&y(),!$&&o.value&&w()}),b.onUnmounted(()=>{o.value&&w()}),($,j)=>(b.openBlock(),b.createElementBlock("div",{class:"save-slot flex flex-row",ref_key:"slotContainer",ref:a},[b.createElementVNode("div",Sxe,[b.createElementVNode("div",Cxe,[b.createElementVNode("h1",$xe,b.toDisplayString(g()),1)]),d.value?(b.openBlock(),b.createElementBlock("div",{key:0,class:"save-slot-screenshot",style:b.normalizeStyle(d.value)},null,4)):b.createCommentVNode("",!0),b.createElementVNode("div",Txe,[c.value?b.withDirectives((b.openBlock(),b.createElementBlock("input",{key:0,type:"text",class:"save-name","onUpdate:modelValue":j[0]||(j[0]=E=>s.value=E),onInput:v},null,544)),[[b.vModelText,s.value]]):(b.openBlock(),b.createElementBlock("h3",Oxe,b.toDisplayString(s.value),1)),b.createElementVNode("div",Exe,[f.value?(b.openBlock(),b.createElementBlock("p",Axe,b.toDisplayString(new Date(f.value.metadata.saveDate).toLocaleString()),1)):b.createCommentVNode("",!0),f.value?(b.openBlock(),b.createElementBlock("p",Mxe,"Play time: "+b.toDisplayString(m($.saveSlot)),1)):b.createCommentVNode("",!0),u.value==="game-slots"?(b.openBlock(),b.createElementBlock("p",Pxe,b.toDisplayString($.saveSlot.slotType==="auto"?"Auto Save":"Manual Save"),1)):b.createCommentVNode("",!0)])]),b.createElementVNode("div",{class:"flex flex-row",ref_key:"actionsContainer",ref:i},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList($.actions,(E,I)=>(b.openBlock(),b.createElementBlock("button",{class:b.normalizeClass(["button",{selected:$.selected&&I===l.value}]),onClick:()=>p(I),key:I},[b.createElementVNode("h3",null,b.toDisplayString(E),1)],10,Nxe))),128))],512)])],512))}}),SOe="",Ixe=b.createElementVNode("h3",{class:"title"},"Confirmation",-1),J0=b.defineComponent({__name:"yes-no",props:{prompt:{type:String,required:!0},onConfirm:{type:Function,required:!1},onRefuse:{type:Function,required:!1}},emits:["choice"],setup(e,{emit:t}){const n=b.ref(Nr().registerInputListener("yes-no",{cancel:{press:()=>{a(!1)}},continue:{press:()=>{a(!0)}}})),r=b.ref(null);vl({mode:"list",container:r,listener:n.value,onChosen:s=>{a(s===0)}});const o=e,i=t;function a(s){s===!0&&o.onConfirm?o.onConfirm():s===!1&&o.onRefuse&&o.onRefuse(),i("choice",s)}return b.onMounted(()=>{}),b.onUnmounted(()=>{n.value&&Nr().unregisterInputListener(n.value)}),(s,l)=>(b.openBlock(),b.createBlock(Ds,{onClose:l[2]||(l[2]=()=>a(!1)),containerCssClass:"yes-no-modal"},{header:b.withCtx(()=>[Ixe]),body:b.withCtx(()=>[b.createElementVNode("h3",null,b.toDisplayString(e.prompt),1),b.createElementVNode("div",{class:"flex justify-center",ref_key:"buttonsContainer",ref:r},[b.createElementVNode("button",{class:"button",onClick:l[0]||(l[0]=()=>a(!0))},"Yes"),b.createElementVNode("button",{class:"button",onClick:l[1]||(l[1]=()=>a(!1))},"No")],512)]),_:1}))}}),COe="",Dxe={class:"title"},Lxe={key:0},Rxe={class:"saves-section"},Bxe=b.createElementVNode("h3",{class:"saves-section-title"},"Auto save",-1),Fxe={class:"saves-section"},Vxe=b.createElementVNode("h3",{class:"saves-section-title"},"Manual Saves",-1),zxe={key:1,class:"saves-section"},qxe=b.createElementVNode("h3",{class:"saves-section-title"},"Save Slots",-1),Uxe={class:"saves-container flex flex-col"},kz=b.defineComponent({__name:"save-slots",props:{mode:{}},emits:["chosen","close"],setup(e,{emit:t}){const n=e,r=b.ref(Nr().registerInputListener("save-slots",{cancel:{press:()=>{I()}}})),o=b.ref(0),i=b.reactive([]),a=b.computed(()=>i.slice(0,1)),s=b.computed(()=>i.slice(1)),l=b.ref([]),c=b.ref([]),f=b.ref([]),u=b.ref([]),d=b.ref([]);b.ref({mode:"list",elements:u,listener:r.value,onlyVertical:!0,noChoosing:!0,onSelected:M=>{o.value=M}});const h=vl({mode:"list",elements:u,listener:r.value,onlyVertical:!0,noChoosing:!0,onSelected:M=>{o.value=M}}),p=b.computed(()=>{const M=o.value;return d.value.length<M+1?null:d.value[M].id}),m=b.reactive(n.mode==="load"?["Load","Delete"]:["Choose"]),v=b.computed(()=>Mt().saves.mode),g=b.reactive({prompt:"Are you sure you want to delete this save file?",saveToDelete:null,onConfirm:()=>{E(g.saveToDelete),g.saveToDelete=null},onRefuse:()=>{g.saveToDelete=null}}),y=b.reactive({prompt:"Are you sure you want to overwrite this save file?",saveToOverwrite:null,onConfirm:()=>{$(y.saveToOverwrite),y.saveToOverwrite=null},onRefuse:()=>{y.saveToOverwrite=null}}),w=t;b.onBeforeMount(()=>{ll().slots.forEach((H,N)=>{i[N]=H})});function k(){u.value=v.value==="manual"?[...c.value.map(F=>F.slotContainer),...f.value.map(F=>F.slotContainer)]:l.value.map(F=>F.slotContainer);const M=v.value==="manual"?[...a.value,...s.value]:i;d.value=M.map(F=>({id:F.id}))}b.onMounted(()=>{k()}),b.onUnmounted(()=>{h.value&&(h.value.disable(),h.value=null),r.value&&Nr().unregisterInputListener(r.value)});function $(M){w("chosen",{slotId:M})}function j(M){const F=L(M);if(F){if(Mt().saves.mode==="manual"&&F.slotType==="auto"){Gt().alert("Sorry","Can't delete the auto save slot!");return}g.saveToDelete=M}}function E(M){Nme(M);const F=i.find(H=>H.id===M);F&&(F.saveData=null),k()}function I(){w("close")}function D(M,F){const H=m[F];H==="Load"?$(M):H==="Delete"?j(M):H==="Choose"&&(y.saveToOverwrite=M)}function L(M){return i.find(F=>F.id===M)}return(M,F)=>(b.openBlock(),b.createBlock(Ds,{onClose:I,containerCssClass:"save-modal",cantClose:!1},{header:b.withCtx(()=>[b.createElementVNode("h3",Dxe,b.toDisplayString(M.mode==="load"?"Choose a save to load":"Pick a slot to save the game"),1)]),body:b.withCtx(()=>[v.value==="manual"?(b.openBlock(),b.createElementBlock("div",Lxe,[b.createElementVNode("div",Rxe,[Bxe,b.createVNode(b.TransitionGroup,{name:"list",tag:"div"},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(a.value,H=>(b.openBlock(),b.createBlock(tj,{key:H.id,saveSlot:H,id:H.id,actions:m,onChoice:N=>D(H.id,N),inputListener:r.value,selected:p.value===H.id,ref_for:!0,ref_key:"autoSlotsElements",ref:c},null,8,["saveSlot","id","actions","onChoice","inputListener","selected"]))),128))]),_:1})]),b.createElementVNode("div",Fxe,[Vxe,b.createVNode(b.TransitionGroup,{name:"list",tag:"div"},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(s.value,H=>(b.openBlock(),b.createBlock(tj,{key:H.id,saveSlot:H,id:H.id,actions:m,onChoice:N=>D(H.id,N),inputListener:r.value,selected:p.value===H.id,ref_for:!0,ref_key:"manualSlotsElements",ref:f},null,8,["saveSlot","id","actions","onChoice","inputListener","selected"]))),128))]),_:1})])])):(b.openBlock(),b.createElementBlock("div",zxe,[qxe,b.createElementVNode("div",Uxe,[b.createVNode(b.TransitionGroup,{name:"list",tag:"div"},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(i,H=>(b.openBlock(),b.createBlock(tj,{key:H.id,saveSlot:H,id:H.id,actions:m,onChoice:N=>D(H.id,N),selected:p.value===H.id,inputListener:r.value,ref_for:!0,ref_key:"saveSlotsElements",ref:l},null,8,["saveSlot","id","actions","onChoice","selected","inputListener"]))),128))]),_:1})])])),g.saveToDelete?(b.openBlock(),b.createBlock(J0,{key:2,prompt:g.prompt,onRefuse:g.onRefuse,onConfirm:g.onConfirm},null,8,["prompt","onRefuse","onConfirm"])):b.createCommentVNode("",!0),y.saveToOverwrite?(b.openBlock(),b.createBlock(J0,{key:3,prompt:y.prompt,onRefuse:y.onRefuse,onConfirm:y.onConfirm},null,8,["prompt","onRefuse","onConfirm"])):b.createCommentVNode("",!0)]),_:1}))}}),$Oe="",Hxe=b.defineComponent({__name:"start-menu-button",props:{button:{}},emits:["click"],setup(e){return(t,n)=>(b.openBlock(),b.createElementBlock("button",{class:b.normalizeClass(["button menu-button main-menu-button large override",t.button.cssClass]),onClick:n[0]||(n[0]=r=>t.$emit("click"))},b.toDisplayString(t.button.title),3))}});class nj extends F_{setup(t=!1){const r=t?"keydown":"keyup",o=cp(a=>{pa.emit("debouncedKeydown",a)},10,{isImmediate:!0,maxWait:10}),i=Pr().inputsContainer;i.addEventListener("keydown",a=>{pa.emit("keydown",a)}),i.addEventListener(r,a=>{o(a)})}}const pa=new nj,xz=oo("startMenu",{state:()=>({buttons:[]}),actions:{addButtonsFromPlugins(){yn.plugins.forEach(t=>{t.startMenuButtons&&t.startMenuButtons.forEach(n=>{const r=window.narrat.app;n.popupComponent&&r.component(n.popupComponent.name,n.popupComponent.component),this.buttons.push(n)})})}}}),Wxe={id:"game-menu"},Kxe={id:"game-header",class:"flex flex-col justify-between items-center"},Gxe={id:"game-title-container"},Jxe={id:"game-title-text"},Qxe={class:"title"},Yxe=b.defineComponent({__name:"StartMenu",setup(e){const t=b.ref(Nr().registerInputListener("start-menu",{})),n=b.ref([]),r=b.ref(null),o=b.ref(!1),i=b.ref(!1),a=b.ref(null),s=b.ref(null),l=b.ref(!1),c=b.ref(!1),f=b.ref(null),u=xz(),d=b.ref(!1),h=b.ref(null),p=b.computed(()=>u.buttons),m=vl({mode:"list",container:r,listener:t.value,onChosen:H=>{v(n.value[H])}});function v(H){switch(H.id){case"continue":E();break;case"new-game":g();break;case"load-game":I();break;case"exit":Gt().exitGame();break;default:w(H);break}}async function g(){o.value&&Mt().saves.mode==="manual"?c.value=!0:y()}async function y(){const H=Gt();if(s.value===null)if(Mt().saves.mode==="manual"){const N=m_();if(!N){At("No autosave found");return}s.value=N.id}else{const N=Mme();if(!N){At("No free slot found");return}s.value=N}c.value=!1,await H.startGame(s.value)}function w(H){const N=p.value.findIndex(ee=>ee.id===H.id),W=p.value[N];W.action&&W.action(),W.popupComponent&&(d.value=W)}function k(){d.value=!1}function $(){c.value=!1}async function j(){if(!s.value)return;const H=ep(s.value);if(!H){At("No save file found");return}Gt().loadGame(H,s.value)}function E(){typeof a.value=="string"&&(s.value=a.value,j())}function I(){l.value=!0}function D({slotId:H}){const N=ep(H);N&&N.saveData?(s.value=H,j()):g()}b.onMounted(()=>{const H=ll();H.slots.some(N=>N.saveData)&&(o.value=!0),(Mt().saves.mode==="manual"||H.slots.some(N=>!N.saveData))&&(i.value=!0),H.lastSaveSlot&&ep(H.lastSaveSlot)&&(a.value=H.lastSaveSlot),L(),f.value=pa.on("debouncedKeydown",N=>{N.key===" "&&y(),N.key==="c"&&E()}),b.nextTick(()=>{m.select(0)}),ha().options.defaultMusic&&(h.value=jme(ha().options.defaultMusic))});function L(){a.value&&n.value.push(M({id:"continue",title:"Continue",cssClass:"continue-button"})),i.value&&n.value.push(M({id:"new-game",title:"New Game",cssClass:"start-button"})),o.value&&n.value.push(M({id:"load-game",title:"Load Game",cssClass:"continue-button"}));for(const H of p.value)n.value.push({id:H.id,title:H.text,cssClass:`${H.id}-start-menu-button`});n.value.push(M({id:"exit",title:"Exit",cssClass:"exit-button"}))}function M({id:H,title:N,cssClass:W}){const ee=Mt().menuButtons[H];if(ee){let U=W;return ee.cssClass&&(U=`${ee.cssClass} ${W}`),{id:H,title:ee.text??N,cssClass:U}}return{id:H,title:N,cssClass:W}}b.onUnmounted(()=>{if(t.value&&Nr().unregisterInputListener(t.value),f.value&&pa.off("debouncedKeydown",f.value),typeof h.value=="number"){const H=ha().options.defaultMusic;Sme(H,h.value)}});const F=b.computed(()=>Mt().gameTitle);return(H,N)=>(b.openBlock(),b.createElementBlock("div",Wxe,[l.value?(b.openBlock(),b.createBlock(kz,{key:0,mode:"load",onChosen:D,onClose:N[0]||(N[0]=W=>l.value=!1)})):b.createCommentVNode("",!0),c.value?(b.openBlock(),b.createBlock(J0,{key:1,prompt:"This will override your previous autosave, are you sure?",onConfirm:y,onRefuse:$})):b.createCommentVNode("",!0),b.createElementVNode("div",Kxe,[b.createElementVNode("div",Gxe,[b.createElementVNode("h1",Jxe,b.toDisplayString(F.value),1)]),b.createElementVNode("div",{class:"flex flex-col start-menu-buttons-container",ref_key:"buttonsContainer",ref:r},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(n.value,W=>(b.openBlock(),b.createBlock(Hxe,{key:W.id,button:W,onClick:ee=>v(W)},null,8,["button","onClick"]))),128))],512)]),d.value?(b.openBlock(),b.createBlock(b.Teleport,{key:2,to:"#narrat-app-container"},[b.createVNode(Ds,{onClose:k,class:b.normalizeClass(`start-menu-popup-${d.value.id}`)},{header:b.withCtx(()=>[b.createElementVNode("h3",Qxe,b.toDisplayString(d.value.text),1)]),body:b.withCtx(()=>[d.value.popupComponent?(b.openBlock(),b.createBlock(b.resolveDynamicComponent(d.value.popupComponent.component),{key:0,onClose:k},null,32)):b.createCommentVNode("",!0)]),_:1},8,["class"])])):b.createCommentVNode("",!0)]))}}),TOe="",Xxe={class:"title"},Zxe=b.defineComponent({__name:"alert-modal",props:{title:{type:String,required:!1},text:{type:String,required:!1}},emits:["close"],setup(e,{emit:t}){const n=t;function r(){n("close")}const o=b.ref(Nr().registerInputListener("yes-no",{cancel:{press:()=>{r()}},continue:{press:()=>{r()}},system:{press:()=>{r()}}}));return b.onUnmounted(()=>{o.value&&Nr().unregisterInputListener(o.value)}),(i,a)=>(b.openBlock(),b.createBlock(Ds,{onClose:r,containerCssClass:"yes-no-modal"},{header:b.withCtx(()=>[b.createElementVNode("h3",Xxe,b.toDisplayString(e.title??"Alert"),1)]),body:b.withCtx(()=>[b.createElementVNode("h3",null,b.toDisplayString(e.text),1)]),_:1}))}}),OOe="";function Q0(e){const t=V0().characters[e];return t||At(`Character ${e} not found`),t}function e_e(e,t){const n=Q0(e);if(n&&(t||(t="default"),n.sprites)){const r=n.sprites[t];return r==="none"?void 0:typeof r=="string"?{image:r}:r}}function _z(e){return`${V0().config.imagesPath}${e}`}function t_e(e){return typeof e=="object"&&Object.hasOwn(e,"image")}function n_e(e){return typeof e=="object"&&Object.hasOwn(e,"video")}function rj(e){var t;return e?((t=Q0(e))==null?void 0:t.style)||{}:{}}const r_e=["src"],o_e=["autoplay","loop","muted"],i_e=["src"],a_e=b.defineComponent({__name:"dialog-picture",props:{picture:{},video:{},character:{},pose:{}},setup(e){const t=e,n=b.computed(()=>t.video),r=b.computed(()=>Pr().layoutMode),o=b.computed(()=>{var l;const a={};if(!t.character)return{};t.character&&(a[t.character]=!0);const s=Q0(t.character);return(l=s==null?void 0:s.style)!=null&&l.portraitCssClass&&(a[s.style.portraitCssClass]=!0),a}),i=b.computed(()=>{var h,p;const a=Pr(),s=Mt().layout;let l=0,c=0;const f=s.portraits;if(r.value==="vertical"){const m=((h=f.offset)==null?void 0:h.portrait)??{right:0,bottom:0};l=20+m.right,c=a.dialogHeight+m.bottom}else{const m=((p=f.offset)==null?void 0:p.landscape)??{right:0,bottom:0},v=Mt().dialogPanel.rightOffset??b_.dialogPanel.rightOffset;l=H0()-10+m.right+v,c=200+m.bottom}let u=s.portraits.width,d=s.portraits.height;return t.video&&(u=t.video.width??u,d=t.video.height??d),t.picture&&(u=t.picture.width??u,d=t.picture.height??d),{right:`${l}px`,bottom:`${c}px`,width:`${u}px`,height:`${d}px`}});return(a,s)=>{var l;return b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["dialog-picture override",o.value]),style:b.normalizeStyle(i.value)},[a.picture?(b.openBlock(),b.createElementBlock("img",{key:0,src:b.unref(ui)(b.unref(_z)((l=a.picture)==null?void 0:l.image)),class:b.normalizeClass(["picture override",o.value])},null,10,r_e)):b.createCommentVNode("",!0),n.value?(b.openBlock(),b.createElementBlock("video",{key:1,class:"picture override",autoplay:n.value.autoplay!==!1,loop:n.value.loop!==!1,muted:!!n.value.muted},[b.createElementVNode("source",{src:b.unref(ui)(b.unref(_z)(n.value.video))},null,8,i_e)],8,o_e)):b.createCommentVNode("",!0)],6)}}}),EOe="",s_e=["innerHTML"],l_e=["innerHTML"],c_e=["innerHTML"],u_e={key:1},f_e=["onClick","innerHTML"],d_e={key:1},h_e={key:2,class:"buttons-container"},p_e=b.defineComponent({__name:"dialog-box",props:{options:{},active:{type:Boolean},inputListener:{}},setup(e,{expose:t}){const n=b.ref(null),r=b.ref(""),o=b.ref(!1),i=b.ref(null),a=b.ref(null),s=b.ref(!1),l=b.ref(null),c=b.ref(null),f=b.ref(null),u=b.ref(null),d=b.ref(null),h=e,p=b.ref(null);h.active&&(p.value=vl({mode:"list",container:n,listener:h.inputListener,onlyVertical:!0,onChosen:oe=>{ke.value&&Z.value?$(Z.value[oe]):y(" ")}})),b.onMounted(()=>{W(),s.value=!0}),b.onUnmounted(()=>{m(),F(),A({unmounted:!0})});function m(){i.value&&(clearTimeout(i),i.value=null),v()}function v(){p.value&&(p.value.disable(),p.value=null)}function g(oe){y(oe.key)}function y(oe){if(!ke.value){s.value&&a&&oe===" "&&A({pressedSpace:!0});return}if(ke.value&&h.options.textField&&oe==="Enter"&&L(),ke.value&&!h.options.textField){let ye=-1;switch(oe){case" ":ye=0;break;case"1":ye=0;break;case"2":ye=1;break;case"3":ye=2;break;case"4":ye=3;break;case"5":ye=4;break;case"6":ye=5;break;case"7":ye=6;break;case"8":ye=7;break}ye!==-1&&Z.value&&ye<Z.value.length?$(Z.value[ye]):ye===0&&$(ye)}}function w(){ke.value||s.value&&a&&A({pressedSpace:!0})}function k(){o.value||$(0)}function $(oe){j();let ye;typeof oe=="object"?ye=oe.originalIndex:ye=oe,Gt().playerAnswered(ye)}function j(){m(),A({unmounted:!0}),o.value=!0}function E(oe){const ye={};return oe.allowed||(ye.pointerEvents="none",ye.textDecoration="line-through"),ye}function I(oe,ye){const fe={index:oe+1,choice:ye.choice};let Fe='<span class="choice-index">%{$index}. </span> <span class="choice-text">%{$choice}</span>';if(q2().choiceTextTemplate&&(Fe=q2().choiceTextTemplate),ye.flag){const Y=ez(ye.flag);Y!=null&&Y.textTemplate&&(Fe=Y.textTemplate)}return N9(fe,Fe)}function D(oe){const ye={};if(oe.allowed||(ye["strike-anim"]=!0),oe.seenBefore&&(ye["seen-before"]=!0),oe.flag){const fe=ez(oe.flag);fe!=null&&fe.cssClass&&(ye[fe.cssClass]=!0)}return ye}function L(){const oe=r.value;F(),Gt().playerAnswered(oe)}function M(){h.options.textField&&(i.value=setTimeout(()=>{ke.value&&(d.value=Nr().registerInputListener("text-field-input-grabber",{}),u.value&&u.value.focus())},100))}function F(){d.value&&(Nr().unregisterInputListener(d.value),d.value=null)}function H(oe,ye){const fe=h.options.text.substring(oe,ye);return a.value.text+=fe,ye}function N(oe){const ye=oe[0];return a.value.text+=ye,a.value.skippedChars+=ye.length,ye.length}function W(){if(!h.options.old)if(Yn().playMode==="skip")ee();else if(Mt().dialogPanel.animateText){a.value={text:"",index:0,startTime:Date.now(),timer:null,skippedChars:0,tags:Fme(h.options.text),finished:!1};const oe=a.value;oe.timer=setInterval(()=>{K()},30)}else O.value&&(l.value=setTimeout(()=>{A()},(Mt().dialogPanel.textSpeed??a0)*h.options.text.length))}function ee(){Yn().playMode==="skip"&&!h.options.old&&(O.value?c.value=setTimeout(()=>{A()},100):(Yn().toggleSkip(),A({unmounted:!0})))}function U(){Yn().playMode==="auto"&&!h.options.old&&O.value&&ke&&k()}function K(){const oe=a.value;if(!oe)return;const ye=oe.index,fe=Date.now()-oe.startTime;let Fe=!1,Y=Math.round(fe/(Mt().dialogPanel.textSpeed??a0))+oe.skippedChars;if(Y>h.options.text.length&&(Fe=!0,oe.finished=!0,Y=h.options.text.length),Y!==oe.index){let Q=ye;for(;oe.tags.length>0&&Y>=oe.tags[0].index;){Q=H(Q,oe.tags[0].index);const ve=N(oe.tags.shift());Q+=ve,Y+=ve}Q=H(Q,Y),oe.index=Q}Fe&&A()}function A({unmounted:oe,pressedSpace:ye}={}){M(),setTimeout(()=>{p.value&&p.value.select(0)},10),a.value&&(a.value.timer&&clearInterval(a.value.timer),a.value=null),l.value&&!ye&&clearTimeout(l.value),c.value&&clearTimeout(c.value),f.value&&clearTimeout(f.value),!oe&&!ye&&Yn().playMode!=="normal"&&O&&(f.value=setTimeout(()=>{k()},Yn().playMode==="auto"?Mt().dialogPanel.timeBetweenLines??Uf.common.dialogPanel.timeBetweenLines:0))}const T=b.computed(()=>h.options.title?" &nbsp;–&nbsp; ":""),x=b.computed(()=>({...rj(h.options.styleId).boxCss})),O=b.computed(()=>!Z.value&&!h.options.textField),S=b.computed(()=>{const oe={};return h.options.title&&(oe["dialog-box-followup"]=!0),h.options.old?oe["dialog-box-old"]=!0:oe["dialog-box-new"]=!0,oe}),C=b.computed(()=>{const oe=rj(h.options.styleId);return{color:oe.color,...oe.nameCss}}),_=b.computed(()=>rj(h.options.styleId).textCss),R=b.computed(()=>a.value?a.value.text:h.options.text),Z=b.computed(()=>{if(h.options.choices)return h.options.choices}),pe=b.computed(()=>Yn().playMode==="skip"),_e=b.computed(()=>Yn().playMode==="auto"),ke=b.computed(()=>h.active&&s.value&&!o.value&&!f.value&&!a.value&&h.options.interactive&&!Ne.value),ue=Gt(),Ne=b.computed(()=>ue.paused);return b.watch(()=>h.options,(oe,ye)=>{!ye.old&&oe.old&&a&&A({unmounted:!0})}),b.watch(pe,(oe,ye)=>{oe&&!ye&&ee()}),b.watch(_e,(oe,ye)=>{oe&&!ye&&U()}),t({keyboardEvent:g}),(oe,ye)=>{const fe=b.resolveDirective("visible");return b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["dialog-box w-full override",S.value]),style:b.normalizeStyle(x.value)},[b.createElementVNode("div",{class:"dialog-content",onClick:w},[oe.options.title?(b.openBlock(),b.createElementBlock("span",{key:0,class:"dialog-title override",style:b.normalizeStyle(C.value),innerHTML:oe.options.title},null,12,s_e)):b.createCommentVNode("",!0),b.createElementVNode("span",{class:"dialog-text dialog-separator override",style:b.normalizeStyle(_.value),innerHTML:T.value},null,12,l_e),b.createElementVNode("span",{class:b.normalizeClass(["dialog-text override",oe.options.cssClass]),style:b.normalizeStyle(_.value),innerHTML:R.value},null,14,c_e),oe.options.old?b.createCommentVNode("",!0):b.withDirectives((b.openBlock(),b.createElementBlock("div",u_e,[Z.value?(b.openBlock(),b.createElementBlock("div",{key:0,class:"dialog-choices",ref_key:"choicesDiv",ref:n},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(Z.value,(Fe,Y)=>(b.openBlock(),b.createElementBlock("p",{key:Y,style:b.normalizeStyle(E(Fe)),class:b.normalizeClass([D(Fe),"dialog-choice override"]),onClick:Q=>$(Fe),innerHTML:I(Y,Fe)},null,14,f_e))),128))],512)):oe.options.textField?(b.openBlock(),b.createElementBlock("div",d_e,[b.withDirectives(b.createElementVNode("input",{autofocus:"",type:"text",class:"label-input input",ref_key:"playerInput",ref:u,id:"player-input-field","onUpdate:modelValue":ye[0]||(ye[0]=Fe=>r.value=Fe)},null,512),[[b.vModelText,r.value]]),b.createElementVNode("button",{onClick:L,class:"button",id:"player-input-submit"}," Submit ")])):(b.openBlock(),b.createElementBlock("div",h_e,[b.createElementVNode("div",{onClick:ye[1]||(ye[1]=Fe=>$(0)),ref:"continue",class:"interact-button button override"}," Continue ",512)]))])),[[fe,ke.value]])])],6)}}}),AOe="",m_e=b.createElementVNode("div",{class:"anchor"},null,-1),v_e=b.defineComponent({__name:"game-dialog",props:{layoutMode:{},inGame:{type:Boolean},inputListener:{}},setup(e){const t=e,n=b.ref(Gt().inScript),r=b.ref(null),o=Pr(),i=un(),a=b.computed(()=>i.stack),s=Yn(),l=b.computed(()=>s.dialog),c=b.ref(null),f=b.ref(null),u=b.ref(null),d=b.computed(()=>{let M="0px";const F=Mt().layout.dialogBottomPadding;return typeof F=="number"?M=`${F}px`:typeof F=="string"&&(M=F),{paddingBottom:M}}),h=b.computed(()=>{if(l.value.length>0)return l.value[l.value.length-1]}),p=b.computed(()=>{if(h.value)return h.value.speaker}),m=b.computed(()=>{if(h.value)return h.value.pose}),v=b.computed(()=>{if(h.value){const M=p.value;let F=m.value;return M?(F||(F="idle"),F):void 0}}),g=b.computed(()=>{if(!v.value)return;const M=p.value;return e_e(M,v.value)}),y=b.computed(()=>{const M=g.value;if(t_e(M))return M}),w=b.computed(()=>{const M=g.value;if(n_e(M))return M}),k=b.computed(()=>o.dialogWidth),$=b.computed(()=>Gt().inScript);b.watch($,M=>{M?n.value=!0:Yn().playMode!=="normal"?(Yn().playMode==="skip"&&(Yn().playMode="normal"),r.value=setTimeout(()=>{n.value=!1},500)):n.value=!1}),b.onMounted(()=>{t.inputListener.actions.autoPlay={press:()=>{Yn().toggleAutoPlay()}},t.inputListener.actions.skip={press:()=>{Yn().toggleSkip()}};const M=F=>{f.value&&f.value.keyboardEvent&&f.value.keyboardEvent(F)};M.value=pa.on("debouncedKeydown",M)}),b.onUnmounted(()=>{t.inputListener&&(delete t.inputListener.actions.autoPlay,delete t.inputListener.actions.skip),u.value&&pa.off("debouncedKeydown",u.value),r.value&&clearTimeout(r.value)});const j=b.computed(()=>{let M;const F=`${Pr().dialogHeight}px`,H={};if(Pr().overlayMode){H.position="absolute";const N=Mt().dialogPanel.rightOffset??Uf.common.dialogPanel.rightOffset;H.right=`${N}px`;const W=Mt().dialogPanel.bottomOffset??Uf.common.dialogPanel.bottomOffset;H.bottom=`${W}px`}return{...H,width:t.layoutMode==="horizontal"?`${k.value}px`:"100%",height:F,transform:M,transformOrigin:"right"}});function E(){Yn().toggleAutoPlay()}function I(){Yn().toggleSkip()}function D(M,F){const H=Q0(M.speaker);let N=(H==null?void 0:H.name)??"Missing Character";return F>=1&&l.value[F-1].speaker===M.speaker&&(N=void 0),M.choices&&M.choices.forEach(W=>{W.choice=Ts(W.choice)}),{title:N??"",text:M.text,cssClass:M.cssClass,styleId:M.speaker,choices:M.choices,old:F<l.value.length-1,interactive:M.interactive,textField:M.textField}}function L(M){return M===s.dialog.length-1&&a.value.length>0}return b.watch(l.value,M=>{if(c.value){const F=c.value;F.scrollTop=F.scrollHeight+1e8}}),(M,F)=>(b.openBlock(),b.createElementBlock(b.Fragment,null,[b.createVNode(b.Transition,{name:"fade"},{default:b.withCtx(()=>[(y.value||w.value)&&b.unref(o).showDialog?(b.openBlock(),b.createBlock(a_e,{key:0,picture:y.value,video:w.value,character:p.value,pose:m.value},null,8,["picture","video","character","pose"])):b.createCommentVNode("",!0)]),_:1}),b.createVNode(b.Transition,{name:"dialog-transition"},{default:b.withCtx(()=>[M.inGame&&b.unref(o).showDialog?(b.openBlock(),b.createElementBlock("div",{key:0,class:"dialog override",ref_key:"dialogRef",ref:c,style:b.normalizeStyle(j.value)},[b.createVNode(b.TransitionGroup,{name:"list",tag:"div",class:"dialog-container w-full override",style:b.normalizeStyle(d.value)},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(l.value,(H,N)=>(b.openBlock(),b.createBlock(p_e,{ref_for:!0,ref:W=>f.value=W,key:H.id,options:D(H,N),active:L(N),inputListener:M.inputListener},null,8,["options","active","inputListener"]))),128))]),_:1},8,["style"]),(b.openBlock(),b.createBlock(b.Teleport,{to:"#narrat-app"},[b.createElementVNode("div",{class:"auto-skip-buttons flex"},[b.createElementVNode("div",{class:"button menu-toggle-button auto-button auto",onClick:E}," Auto "),b.createElementVNode("div",{class:"button menu-toggle-button auto-button skip",onClick:I}," Skip ")])])),m_e],4)):b.createCommentVNode("",!0)]),_:1})],64))}}),MOe="",g_e=["id"],y_e=["src"],b_e={class:"tab-title"},jz=b.defineComponent({__name:"tab-selector",props:{tab:{},active:{type:Boolean}},emits:["click"],setup(e,{emit:t}){const n=e,r=t,o=b.computed(()=>n.active?"tab-active":"tab-inactive");function i(){r("click")}return(a,s)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["tab",o.value]),id:`tab-${a.tab.id}`,onClick:i},[b.createElementVNode("div",{class:b.normalizeClass(["tab-title-container",a.active?"active":""])},[a.tab.icon?(b.openBlock(),b.createElementBlock("img",{key:0,src:a.tab.icon,alt:"tab icon",class:"tab-icon"},null,8,y_e)):b.createCommentVNode("",!0),b.createElementVNode("span",b_e,b.toDisplayString(a.tab.label),1)],2)],10,g_e))}}),POe="",w_e={class:"tabs-controller"},k_e={key:0,class:"tabs-controller__tabs"},x_e={key:1,class:"tab-content"},__e={key:2},j_e=[b.createElementVNode("div",{class:"tab-content__empty"},[b.createElementVNode("p",null,"No tab selected")],-1)],S_e=b.defineComponent({__name:"TabsController",props:{tabs:{},defaultTab:{}},emits:["tab-change","close"],setup(e,{emit:t}){const n=b.ref(Nr().registerInputListener("tabs-controller",{cancel:{press:()=>{r("close")}},system:{press:()=>{r("close")}},menu:{press:()=>{r("close")}},previousTab:{press:()=>{i.value>0&&a(i.value-1)}},nextTab:{press:()=>{i.value<o.tabs.length-1&&a(i.value+1)}}})),r=t,o=e,i=b.ref(o.defaultTab);function a(l){i.value=l,r("tab-change",l)}const s=b.computed(()=>o.tabs[i.value]);return b.onUnmounted(()=>{n.value&&(Nr().unregisterInputListener(n.value),n.value=null)}),(l,c)=>(b.openBlock(),b.createElementBlock("div",w_e,[l.tabs.length>1?(b.openBlock(),b.createElementBlock("div",k_e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(l.tabs,(f,u)=>(b.openBlock(),b.createBlock(jz,{key:f.id,tab:f,active:u===i.value,onClick:()=>a(u),inputListener:n.value},null,8,["tab","active","onClick","inputListener"]))),128))])):b.createCommentVNode("",!0),s.value?(b.openBlock(),b.createElementBlock("div",x_e,[s.value?(b.openBlock(),b.createBlock(b.resolveDynamicComponent(s.value.component),{key:0,inputListener:n.value,onClose:c[0]||(c[0]=f=>l.$emit("close"))},null,40,["inputListener"])):b.createCommentVNode("",!0)])):(b.openBlock(),b.createElementBlock("div",__e,j_e))]))}}),IOe="",C_e={class:"menu-container"},$_e=["onClick","id"],T_e={class:"title"},O_e=b.defineComponent({__name:"menu-buttons",setup(e){const t=Qo(),n=b.ref(null);b.onMounted(()=>{yn.callHook("onGameMounted")}),b.onUnmounted(()=>{n.value&&pa.off("keydown",n.value),yn.callHook("onGameUnmounted")});function r(f){Qo().activeMenu=f}const o=b.computed(()=>t.menus),i=b.computed(()=>t.menu),a=b.computed(()=>{var f;return(((f=i.value)==null?void 0:f.tabs)??[]).filter(u=>u.condition?u.condition():!0).map(u=>({id:u.id,label:u.text,component:u.component}))});function s(){t.closeMenu()}function l(f){t.setActiveTab(f)}function c(){return s()}return(f,u)=>(b.openBlock(),b.createElementBlock("div",C_e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(o.value,(d,h)=>(b.openBlock(),b.createElementBlock("button",{key:d.id,onClick:p=>r(d.id),id:d.cssId??`${h}-menu-button`,class:"button menu-toggle-button"},b.toDisplayString(d.label),9,$_e))),128)),i.value?(b.openBlock(),b.createBlock(b.Teleport,{key:0,to:"#narrat-app-container"},[b.createVNode(Ds,{containerCssClass:{[i.value.cssClass]:!0,"menu-modal":!0},onClose:s},{header:b.withCtx(()=>{var d;return[b.createElementVNode("h3",T_e,b.toDisplayString(((d=b.unref(t).tab)==null?void 0:d.text)??i.value.label),1)]}),body:b.withCtx(()=>[b.createVNode(S_e,{onTabChange:l,onClose:c,tabs:a.value,defaultTab:i.value.activeTab},null,8,["tabs","defaultTab"])]),_:1},8,["containerCssClass"])])):b.createCommentVNode("",!0)]))}}),DOe="";function Sz(e){const t={};return e.selected&&(t.selected=!0),e.clickable&&e.viewportClickable&&!e.transitioning&&(t.interactable=!0),(!e.clickable||!e.viewportClickable)&&(t.disabled=!0),e.transitioning&&(t.transitioning=!0),e.greyed&&(t.greyed=!0),e.hidden&&(t.hidden=!0),e.cssClass&&(t[e.cssClass]=!0),t}function E_e(e,t,n){return{selected:t,clickable:e.onClick!==void 0,viewportClickable:m0(e),transitioning:n,greyed:!1,hidden:!1,cssClass:e.cssClass}}function A_e(e,t,n){const r=pc(e),o=li().getButtonState(e);return{selected:t,clickable:li().isButtonInteractible(e),viewportClickable:m0(r),transitioning:n,greyed:o==="greyed",hidden:o==="hidden"||o===!1,cssClass:r.cssClass}}function M_e(e,t,n){return Sz(A_e(e,t,n))}function P_e(e,t,n){return Sz(E_e(e,t,n))}const N_e=["id"],I_e=["innerHTML"],D_e=b.defineComponent({__name:"screen-object",props:{screenObject:{},layerSelected:{type:Boolean},transitioning:{type:Boolean},activeInteractive:{}},setup(e){const t=e,n=Jo();function r(s){t.transitioning||t.screenObject.onClick&&n.clickObject(s)}const o=b.computed(()=>{if(!t.layerSelected)return!1;const s=t.activeInteractive;return s.type==="screenObject"&&s.id===t.screenObject.id}),i=b.computed(()=>P_e(t.screenObject,o.value,t.transitioning)),a=b.computed(()=>{const s={};t.screenObject.opacity!==1&&(s.opacity=t.screenObject.opacity);let l=t.screenObject.x,c=t.screenObject.y,f=t.screenObject.width,u=t.screenObject.height;if(t.screenObject.anchor){const h=t.screenObject.anchor;l=t.screenObject.x-f*h.x,c=t.screenObject.y-u*h.y,s.transformOrigin=`${h.x*100}% ${h.y*100}%`}t.screenObject.scale&&(f=f*t.screenObject.scale,u=u*t.screenObject.scale);const d={...s,left:`${l}px`,top:`${c}px`,width:`${f}px`,height:`${u}px`};return kye(t.screenObject)&&(d.backgroundImage=`url(${sd(t.screenObject.image)})`),d});return(s,l)=>{const c=b.resolveComponent("ScreenObject",!0);return b.openBlock(),b.createElementBlock("div",{tabindex:"-1",class:b.normalizeClass(["viewport-object",i.value]),id:`viewport-object-${t.screenObject.id}`,onClick:l[0]||(l[0]=f=>r(s.screenObject)),style:b.normalizeStyle(a.value)},[b.createElementVNode("span",{innerHTML:t.screenObject.text?b.unref(Ts)(t.screenObject.text):void 0},null,8,I_e),(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(t.screenObject.children,f=>(b.openBlock(),b.createBlock(c,{transitioning:s.transitioning,key:f.id,screenObject:f},null,8,["transitioning","screenObject"]))),128))],14,N_e)}}}),LOe="",L_e=["id","innerHTML"],R_e=b.defineComponent({__name:"viewport-button",props:{id:{},layerSelected:{type:Boolean},transitioning:{type:Boolean},activeInteractive:{}},setup(e){const t=e,n=li();b.computed(()=>n.getButtonState(t.id));const r=pc(t.id),o=r.background?sd(r.background):null,i=b.computed(()=>{if(!t.layerSelected)return!1;const f=t.activeInteractive;return f.type==="button"&&f.id===t.id});b.computed(()=>n.isButtonClickable(t.id));const a=b.computed(()=>{const f=r.text??"";return Ts(f)}),s=b.computed(()=>M_e(t.id,i.value,t.transitioning)),l=b.computed(()=>{const f={};r.position.width&&(f.width=`${r.position.width}px`),r.position.height&&(f.height=`${r.position.height}px`),r.background&&(f.backgroundImage=`url(${o})`);let u=r.position.left,d=r.position.top;return r.anchor&&(u=r.position.left-r.position.width*r.anchor.x,d=r.position.top-r.position.height*r.anchor.y),{...f,left:`${u}px`,top:`${d}px`}});function c(){n.clickOnButton(t.id)}return(f,u)=>(b.openBlock(),b.createElementBlock("div",{tabindex:"-1",class:b.normalizeClass(["viewport-button",s.value]),id:`viewport-button-${f.id}`,onClick:u[0]||(u[0]=d=>c()),style:b.normalizeStyle(l.value),innerHTML:a.value},null,14,L_e))}}),ROe="",B_e=["id"],F_e=["id","loop","muted"],V_e=["src"],z_e=["id"],oj=b.defineComponent({__name:"screen-layer",props:{layer:{},layerIndex:{},transitioning:{type:Boolean},activeInteractive:{}},setup(e){const t=e,n=Gt(),r=Jo(),o=b.computed(()=>!!(t.activeInteractive&&t.activeInteractive.layer===t.layerIndex)),i=b.computed(()=>r.tree.filter(v=>v.layer===t.layerIndex)),a=b.computed(()=>Mt().layout.backgrounds.width),s=b.computed(()=>Mt().layout.backgrounds.height),l=b.computed(()=>t.layer),c=b.computed(()=>{const v=ad(l.value);return v||At(`Screen ${l.value} doesn't have a config`),v}),f=b.computed(()=>n.isInGame),u=b.computed(()=>c.value.buttons||[]),d=b.computed(()=>c.value.video),h=b.computed(()=>({width:`${a.value}px`,height:`${s.value}px`})),p=b.computed(()=>{let v=`url(${sd(c.value.background)})`;return c.value.background===y_&&(v=void 0),{backgroundImage:v,position:"absolute",left:0,top:0,width:`${a.value}px`,height:`${s.value}px`}}),m=b.computed(()=>({position:"absolute",left:0,top:0,width:`${a.value}px`,height:`${s.value}px`}));return(v,g)=>f.value?(b.openBlock(),b.createElementBlock("div",{key:0,class:"viewport-layer",id:`viewport-layer-${l.value}`,style:b.normalizeStyle(h.value)},[d.value?(b.openBlock(),b.createElementBlock("video",{key:0,class:"viewport-layer-background",id:`viewport-layer-background-${l.value}`,style:b.normalizeStyle(m.value),autoplay:"",loop:d.value.loop!==!1,muted:!!d.value.muted},[b.createElementVNode("source",{src:b.unref(ui)(c.value.background)},null,8,V_e)],12,F_e)):(b.openBlock(),b.createElementBlock("div",{key:1,class:"viewport-layer-background",id:`viewport-layer-background-${l.value}`,style:b.normalizeStyle(p.value)},null,12,z_e)),(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(u.value,y=>(b.openBlock(),b.createBlock(R_e,{key:y,id:y,layerSelected:o.value,transitioning:v.transitioning,activeInteractive:v.activeInteractive},null,8,["id","layerSelected","transitioning","activeInteractive"]))),128)),(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(i.value,y=>(b.openBlock(),b.createBlock(D_e,{key:y.id,screenObject:y,transitioning:v.transitioning,layerSelected:o.value,activeInteractive:v.activeInteractive},null,8,["screenObject","transitioning","layerSelected","activeInteractive"]))),128))],12,B_e)):b.createCommentVNode("",!0)}}),BOe="",q_e=b.defineComponent({__name:"NarratTransition",props:{name:{type:String,required:!0},duration:{type:Number,required:!0},delay:Number},emits:["complete"],setup(e,{emit:t}){b.useSlots();const n=t,r=e,o=b.ref("start"),i=b.reactive({oldSlotClasses:{},oldSlotStyle:{},newSlotClasses:{},newSlotStyle:{}});return b.onMounted(async()=>{const a=`narrat-transition-${r.name}`;i.newSlotClasses={[`${a}-enter-from`]:!0},i.oldSlotClasses={[`${a}-leave-active`]:!0},await _i(30),i.oldSlotStyle={transitionDuration:`${r.duration/1e3}s`},i.newSlotStyle={transitionDuration:`${r.duration/1e3}s`},i.oldSlotClasses[`${a}-leave-to`]=!0,i.newSlotClasses[`${a}-enter-active`]=!0,await _i(r.delay??0),delete i.newSlotClasses[`${a}-enter-from`],await _i(r.duration),o.value="end",n("complete")}),(a,s)=>(b.openBlock(),b.createElementBlock(b.Fragment,null,[o.value!=="end"?(b.openBlock(),b.createElementBlock("div",{key:0,class:b.normalizeClass(["transition-holder",i.oldSlotClasses]),style:b.normalizeStyle(i.oldSlotStyle)},[b.renderSlot(a.$slots,"oldElement")],6)):b.createCommentVNode("",!0),b.createElementVNode("div",{class:b.normalizeClass(["transition-holder",i.newSlotClasses]),style:b.normalizeStyle(i.newSlotStyle)},[b.renderSlot(a.$slots,"newElement")],6)],64))}}),FOe="";function Cz(e,t,n){return e<t?t:e>n?n:e}const U_e=b.defineComponent({__name:"screens",props:{inputListener:{}},setup(e){const t=e,n=Gt(),r=li(),o=Jo(),i=b.ref(0),a=b.computed(()=>r.nonEmptyLayers),s=b.computed(()=>{const p=[];return a.value.reduce((m,v,g)=>{const w=ad(v.screen).buttons;if(w)for(const $ of w)r.isButtonClickable($)&&m.push({id:$,type:"button",layer:g});const k=o.tree.filter($=>$.layer===g);for(const $ of k)o.isScreenObjectClickable($)&&m.push({id:$.id,type:"screenObject",layer:g});return m},p)}),l=b.computed(()=>{if(s.value.length===0)return null;let p=i.value;return p>s.value.length-1&&(p=s.value.length-1),s.value[p]}),c=b.computed(()=>Mt().layout.backgrounds.width),f=b.computed(()=>Mt().layout.backgrounds.height),u=b.computed(()=>n.isInGame);function d(p){r.finishTransition(p)}const h=b.computed(()=>{const p=c.value;return{height:`${f.value}px`,width:`${p}px`}});return b.onMounted(()=>{b.nextTick(()=>{if(t.inputListener){const p=t.inputListener.actions;p.previousTab={press:()=>{i.value>0?i.value--:i.value=s.value.length-1,i.value=Cz(i.value,0,s.value.length-1)}},p.left=p.previousTab,p.nextTab={press:()=>{i.value<s.value.length-1?i.value++:i.value=0,i.value=Cz(i.value,0,s.value.length-1)}},p.right=p.nextTab,p.viewportSelect={press:()=>{if(l.value){const m=l.value;m.type==="button"?r.clickOnButton(m.id):m.type==="screenObject"&&o.clickObject(o.getObject(m.id))}}}}})}),b.onUnmounted(()=>{t.inputListener&&(delete t.inputListener.actions.previousTab,delete t.inputListener.actions.left,delete t.inputListener.actions.nextTab,delete t.inputListener.actions.right)}),(p,m)=>u.value?(b.openBlock(),b.createElementBlock("div",{key:0,class:"viewport",id:"narrat-viewport",style:b.normalizeStyle(h.value)},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(a.value,(v,g)=>(b.openBlock(),b.createElementBlock("div",{key:v.screen??"",class:"layer-container"},[v.transition?(b.openBlock(),b.createBlock(q_e,{key:0,name:v.transition.transition,duration:v.transition.duration,delay:v.transition.delay,onComplete:()=>d(g)},{oldElement:b.withCtx(()=>[v.transition.oldScreen?(b.openBlock(),b.createBlock(oj,{key:0,layer:v.transition.oldScreen,layerIndex:g,transitioning:!0},null,8,["layer","layerIndex"])):b.createCommentVNode("",!0)]),newElement:b.withCtx(()=>[v.screen?(b.openBlock(),b.createBlock(oj,{key:0,layer:v.screen,layerIndex:g,transitioning:!0},null,8,["layer","layerIndex"])):b.createCommentVNode("",!0)]),_:2},1032,["name","duration","delay","onComplete"])):v.screen?(b.openBlock(),b.createBlock(oj,{key:1,layer:v.screen,layerIndex:g,transitioning:!1,activeInteractive:l.value},null,8,["layer","layerIndex","activeInteractive"])):b.createCommentVNode("",!0)]))),128))],4)):b.createCommentVNode("",!0)}}),VOe="",H_e=b.defineComponent({data(){return{}},methods:{getStatImage(e){return ui(this.statsConfig[e].icon)}},computed:{...t0(qa,["hudStats"]),...t0(Pr,["layoutMode"]),statsConfig(){return Mt().hudStats},stats(){return this.hudStats},hudStyle(){let e="0";return this.layoutMode==="horizontal"&&(e=`${H0()+(Mt().dialogPanel.rightOffset??Uf.common.dialogPanel.rightOffset)}px`),{right:e}}}}),zOe="",W_e=["src"],K_e={class:"bold hud-text"};function G_e(e,t,n,r,o,i){return b.openBlock(),b.createElementBlock("div",{class:"hud",style:b.normalizeStyle(e.hudStyle)},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.stats,(a,s)=>(b.openBlock(),b.createElementBlock("div",{key:s,class:"hud-stat"},[b.createElementVNode("img",{class:"hud-icon",src:e.getStatImage(s)},null,8,W_e),b.createElementVNode("span",K_e,b.toDisplayString(e.statsConfig[s].name),1),b.createTextVNode(": "),b.createElementVNode("span",null,b.toDisplayString(Math.floor(a.value*100)/100),1)]))),128))],4)}const J_e=Xa(H_e,[["render",G_e]]),Q_e={key:0,class:"auto-play-feedback-container"},Y_e=b.defineComponent({__name:"AutoPlayFeedback",setup(e){const t=Yn(),n=b.computed(()=>t.playMode==="auto"),r=b.computed(()=>t.playMode==="skip"),o=b.computed(()=>n.value?"auto-play-feedback-auto":r.value?"auto-play-feedback-skip":{}),i=b.computed(()=>n.value?"Auto Play":r.value?"Skip":"");return(a,s)=>i.value?(b.openBlock(),b.createElementBlock("div",Q_e,[b.createElementVNode("div",{class:b.normalizeClass(["auto-play-feedback",o.value])},b.toDisplayString(i.value),3)])):b.createCommentVNode("",!0)}}),qOe="",X_e=b.defineComponent({__name:"in-game",setup(e){const t=b.ref(null),n=Gt(),r=Pr(),o=b.computed(()=>r.layoutMode),i=b.computed(()=>n.saving),a=b.ref(null),s=Yn(),l=b.ref(null),c=b.computed(()=>i.value&&!i.value.withPrompt||i.value&&a.value),f=b.computed(()=>{let p="row";return o.value==="vertical"&&(p="column"),{flexDirection:p}});function u(p){if(a.value=null,p===null){Gt().finishManualSave(p,!1);return}Gt().finishManualSave(p,!0)}function d(){a.value=!0}function h(){a.value=!1,n.finishManualSave(null,!1),a.value=null}return b.onBeforeMount(()=>{t.value=Nr().registerInputListener("in-game",{system:{press:()=>{Qo().openMenu("system")}},menu:{press:()=>{Qo().openMenu("menu")}}})}),b.onMounted(()=>{l.value=pa.on("debouncedKeydown",p=>{Gt().debugMode||((p.key==="a"||p.key==="A")&&s.toggleAutoPlay(),(p.key==="s"||p.key==="S")&&s.toggleSkip())})}),b.onUnmounted(()=>{t.value&&Nr().unregisterInputListener(t.value),l.value&&pa.off("debouncedKeydown",l.value)}),(p,m)=>(b.openBlock(),b.createElementBlock("div",{class:"game",style:b.normalizeStyle(f.value)},[b.createVNode(J_e),b.createVNode(O_e,{class:"menu-toggle"}),b.createVNode(U_e,{inputListener:t.value},null,8,["inputListener"]),b.unref(r).showDialog?(b.openBlock(),b.createBlock(v_e,{key:0,inGame:!0,layoutMode:o.value,inputListener:t.value},null,8,["layoutMode","inputListener"])):b.createCommentVNode("",!0),c.value?(b.openBlock(),b.createBlock(kz,{key:1,mode:"pick",onChosen:u,onClose:m[0]||(m[0]=()=>u(null))})):b.createCommentVNode("",!0),b.createVNode(Y_e),i.value&&i.value.withPrompt&&a.value===null?(b.openBlock(),b.createBlock(J0,{key:2,prompt:"Would you like to save the game?",onConfirm:d,onRefuse:h})):b.createCommentVNode("",!0)],4))}}),UOe="",Z_e=b.defineComponent({props:{percentage:Number,step:String},methods:{loadingStyle(){return{width:`${this.percentage*60}vw`}}},computed:{}}),HOe="",e2e={id:"loading-bar"},t2e={id:"loading-text"};function n2e(e,t,n,r,o,i){return b.openBlock(),b.createElementBlock("div",e2e,[b.createElementVNode("div",{id:"inner-loading-bar",style:b.normalizeStyle(e.loadingStyle())},null,4),b.createElementVNode("div",t2e,[b.createElementVNode("h3",null,"Loading "+b.toDisplayString(Math.floor(e.percentage*100))+"% - "+b.toDisplayString(e.step),1)])])}const r2e=Xa(Z_e,[["render",n2e]]),o2e="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlJhdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDU5NS4zIDU5NS4zIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1OTUuMyA1OTUuMzsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNFMjNCMzM7fQo8L3N0eWxlPgo8cGF0aCBpZD0iUmF0X1NoYXBlIiBjbGFzcz0ic3QwIiBkPSJNNTU2LjksODIuNWMtMTAuOC0yNC4zLTQ3LTU3LjEtNzEuMy02NS42Yy0yNC4zLTguNC02NC4xLTAuMy04OC43LDIyLjMKCWMtMjAsMTguNC0yNiwyOC4yLTI5LjEsMzdjLTIuMSw1LjktNC44LDEzLjUtNiwyMC45djBjLTAuNSw0LjEtNC41LDctOC42LDYuMWMtMTAuNC0yLjMtMjkuNS02LTQ0LjQtNi4zCgljLTEzLjctMC4yLTMwLjEsMy4yLTQwLjQsNS43Yy00LjUsMS4xLTguOC0yLjItOC44LTYuOGMtMC4xLTUuMy0xLjEtMTIuMy00LjgtMTkuNmMtOC41LTE2LjktMTkuNi0zMi42LTU3LjgtNDcuNAoJYy0zMS45LTEyLjQtNzUuMS05LjctMTAwLjgsMS44Yy0yOC4xLDEyLjYtNDIuNCwzNy45LTU0LDYxLjhjLTE0LjQsMjkuOC0xNC45LDgzLjYtNi40LDEwNGMxMi44LDMwLjcsMzUuOCw0Ny4yLDUyLjYsNTMKCWMxMS4zLDMuOCwyOC4yLDMuNywzOC4yLDMuM2M0LjItMC4yLDcuNywzLjMsNy41LDcuNWMtMC43LDEzLjYtMC45LDQxLjUsNyw2MS40YzcuNywxOS40LDI5LjcsNjIuMyw1MC43LDEwMS4yCgljMCwwLjEtMTQuNiwyLjktMzEuNCw2LjhjLTIzLjksNS41LTUyLjYsMTIuNy01NC4zLDEzLjdjLTMuNSwyLjEtMywxMC0yLjcsMTJjMC41LDMuNCw1LjMsOC4xLDYuOSw4LjNjMy45LDAuMywzMS4zLTcuNiw1NS43LTE0LjYKCWMxOC41LTUuMywzNC45LTkuMywzNS41LTguMmM1LjEsOS4zLDEwLDE4LDE0LjQsMjUuOGM1LjIsOS4xLDEwLjcsMTYuNCwxNC4xLDIzLjZjMS4xLDIuMy0xNi42LDUuOC0zMi41LDE0LjcKCWMtMTYuNCw5LjEtMjkuNywyMS0zMi4zLDI0Yy0xLjgsMi4xLTMsNi0xLjIsMTAuN2MxLjEsMi45LDEwLDUuNywxMi40LDUuMWM2LjgtMS43LDE2LjUtMTIuNSwzMy4xLTIxLjEKCWMxNi4zLTguNSwzMi45LTE0LjksMzMuOC0xMy42YzkuNywxNC4zLDE2LjksMjEuNiwyMi42LDMxLjJjOS44LDE2LjUsMjcuMyw0NS45LDQ2LjYsMzkuNWM2LjQtMi4xLDMxLjEtMzMuNiw1My4zLTY4LjYKCWMxLjMtMi4xLDE2LjEsMTEuMywzMC40LDIzLjJjMTMuOCwxMS40LDIyLjcsMjAuNiwyNy4xLDIxLjRjNS40LDEsMTQuMi03LjcsMTQuMS0xNC43Yy0wLjEtMi43LTE0LjMtMTMuOC0yOS4xLTI2LjIKCWMtMTQuNS0xMi4xLTMwLjEtMjIuOC0yOS4yLTI0LjNjNy42LTEyLDE0LjUtMjMuNywyMC4xLTMzLjljNC4zLTcuOCw4LjktMTYsMTMtMjQuN2MwLjYtMS4yLDE1LjksMywzMS40LDcuMWMxNS4zLDQsMjYuNywxMCwzMSw4CgljNi45LTMsMTEuNi0xMy44LDkuNC0xOC4zYy0xLjEtMi4zLTE3LTcuMy0zMy4yLTEyYy0xNC4yLTQuMS0yOC02LjUtMjcuNy03LjNjMTUuNS0zNCwyOC44LTY0LjgsMjcuNi02OS42CgljLTEuNy03LjEsMi42LTExLjksNy0zNi41YzMuMi0xOC4xLDQuNy00MC45LDUuMi01MS43YzAuMi0zLjUsMi44LTYuMyw2LjMtNi43YzMuMS0wLjMsNi45LTAuOSwxMC41LTEuOWM3LjgtMiwxOC42LTcuOCwzNi40LTIwLjYKCWMxNy45LTEyLjgsMzguNy00OS42LDQ0LjQtNjcuOFM1NjcuNiwxMDYuOCw1NTYuOSw4Mi41eiBNMjY1LjEsMzM2LjJjLTguMSw0LTEzLDctMjYuNCw5LjZjLTYuOSwxLjQtMjkuNC0wLjItNDAuNy00LjYKCWMtMTAuNS00LjEtMTkuOS03LjYtMzAtMTUuNHMtMTUuNy0xMy4yLTE1LjctMTUuM2MwLTQuNCw2LTkuNCwxMS05LjRjNS4xLDAsMTQuNSw5LjIsMjkuNywxNi42YzE0LjMsNywxNy45LDYuMSwyNS40LDcuMwoJYzIuOSwwLjUsNy43LDAuNiwxMC43LDAuNGMxNC4xLTEuMywyMS40LTUuOSwyNS4zLTguOGM0LTMsMTMuNy0xMi45LDE3LjItMTIuNWM4LDEsMTguOSwzLjQsMTguOSw3LjEKCUMyOTAuNCwzMTksMjczLjIsMzMyLjEsMjY1LjEsMzM2LjJ6IE0zMjAuOSw1MjEuNGMtNC4zLDMuNy0xNy43LDEzLjUtMjMuMywxMy41Yy0yLjgsMC03LjQtOC4yLTExLjUtMTYuOAoJYy00LjEtOC41LTkuMS0yMS4xLTkuMS0zMS42YzAtNC42LDYtNy40LDEzLjQtOS4yYzcuMi0xLjcsMjcuMy0xLjgsMjkuOS0xLjFjNi44LDEuNywxMi45LDIuMiwxMi43LDYuNGMtMC40LDEyLjctNywxOC45LTguMywyNC4zCglDMzIzLjQsNTEyLjMsMzIzLjQsNTE5LjIsMzIwLjksNTIxLjR6IE00MzEuMSwzMjAuM2MtOS4yLDcuNC0xMC42LDguMS0yNC45LDEzLjdjLTExLjMsNC40LTI4LjYsNS44LTQxLjYsMy42CgljLTEyLjItMi4xLTIyLjMtNC42LTI5LjUtMTAuMWMtOS43LTcuMy0xNi40LTE1LjEtMTYuNC0xOS44YzAtMy43LDYuNC00LjMsMTQuNS00LjljMy41LTAuMyw5LjMsNS45LDEzLjIsOS4yCgljOC4xLDYuOCwxNC44LDgsMjguOCw5LjljMi45LDAuNCw3LjgsMC40LDEwLjcsMC4xYzcuNS0wLjksMTItMC40LDI1LjgtOC4yYzIwLTExLjIsMTcuOC0xNC40LDI1LjEtMTIuNmMyLjIsMC42LDUuOCwxLjIsNS42LDUuNgoJQzQ0Mi40LDMwOSw0NDAuNSwzMTIuNyw0MzEuMSwzMjAuM3oiLz4KPC9zdmc+Cg==",i2e={id:"engine-splash-screen",class:"flex justify-center items-center"},a2e={id:"engine-splash-title"},s2e=["src"],l2e=b.defineComponent({__name:"engine-splash",emits:["finished"],setup(e,{emit:t}){const n=t,r=b.ref("hidden"),o=b.computed(()=>({transitionDuration:`${f.value}s`})),i=b.computed(()=>({invisible:r.value!=="appear"})),a=Gt(),s=b.computed(()=>{var h;return((h=Mt().splashScreens)==null?void 0:h.engineSplashScreen)??{}}),l=b.computed(()=>typeof s.value.overrideText=="string"?s.value.overrideText:"Made with narrat engine"),c=b.computed(()=>s.value.overrideLogo??o2e),f=b.computed(()=>typeof s.value.fadeDuration=="number"?s.value.fadeDuration:.8),u=b.computed(()=>typeof s.value.timeBeforeFadeout=="number"?s.value.timeBeforeFadeout:1.5);b.onMounted(async()=>{if(await _i(10),r.value="appear",s.value.skip||a.options.debug){d();return}await _i(f.value*1e3),await _i(u.value*1e3),r.value="disappear",await _i(f.value*1e3),d()});function d(){a.loading.loaded?n("finished"):a.listener.once("gameLoaded",()=>{n("finished")})}return(h,p)=>(b.openBlock(),b.createElementBlock("div",i2e,[b.createElementVNode("div",{id:"engine-splash-header",class:b.normalizeClass(["flex justify-center flex-col items-center",i.value]),style:b.normalizeStyle(o.value)},[b.createElementVNode("h1",a2e,b.toDisplayString(l.value),1),b.createElementVNode("img",{src:c.value,alt:"Narrat Logo",id:"engine-splash-logo"},null,8,s2e),b.createVNode(r2e,{percentage:b.unref(a).loading.percentage,step:b.unref(a).loading.step},null,8,["percentage","step"])],6)]))}}),WOe="",c2e={id:"game-splash-screen",style:{height:"100%",padding:"20px"},class:"flex justify-center items-center"},u2e={id:"game-splash-screen-header flex justify-center flex-col items-center",class:"flex justify-center flex-col items-center"},f2e={class:"title",id:"game-splash-title"},d2e=b.defineComponent({__name:"game-splash",setup(e){const t=b.ref(null),n=Gt(),r=b.computed(()=>{var l;return((l=Mt().splashScreens)==null?void 0:l.gameSplashScreen)??{}}),o=b.computed(()=>typeof r.value.startButtonText=="string"?r.value.startButtonText:"Press to start"),i=b.computed(()=>n.loading.loaded),a=b.computed(()=>Mt().gameTitle||"Narrat Game");function s(){n.flowState="menu"}return b.onMounted(()=>{t.value=Nr().registerInputListener("game-splash",{continue:{press:()=>{s()}},system:{press:()=>{s()}}}),n.options.debug&&s()}),b.onUnmounted(()=>{t.value&&Nr().unregisterInputListener(t.value)}),(l,c)=>(b.openBlock(),b.createElementBlock("div",c2e,[b.createElementVNode("div",u2e,[b.createElementVNode("h1",f2e,b.toDisplayString(a.value),1),i.value?(b.openBlock(),b.createElementBlock("button",{key:0,class:"button menu-button main-menu-button large splash-start-button override",onClick:s},b.toDisplayString(o.value),1)):b.createCommentVNode("",!0)])]))}}),KOe="",h2e=b.createElementVNode("hr",null,null,-1),p2e=b.defineComponent({__name:"floating-tooltip",props:{title:{},text:{},width:{},x:{},y:{},screenWidth:{},screenHeight:{},screenMargin:{},cssClass:{},textCssClass:{},titleCssClass:{}},setup(e){const t=b.ref(150),n=b.ref(null),r=e,o=b.computed(()=>r.screenWidth??window.innerWidth),i=b.computed(()=>r.screenHeight??window.innerHeight),a=b.computed(()=>{const s=r.screenMargin??5,l={};let c=r.x-r.width/2;c=Math.min(c,o.value-r.width-s),c=Math.max(s,c),l.left=`${c}px`;let f=i.value-r.y;return f=Math.max(f,s),f=Math.min(f,i.value-t.value-s),l.bottom=`${f}px`,l.width=`${r.width}px`,l});return b.onMounted(()=>{n.value&&(t.value=n.value.clientHeight)}),(s,l)=>(b.openBlock(),b.createBlock(b.Transition,{name:"fade"},{default:b.withCtx(()=>[b.createElementVNode("div",{class:b.normalizeClass(["floating-tooltip",s.cssClass]),style:b.normalizeStyle(a.value),ref_key:"element",ref:n},[s.title?(b.openBlock(),b.createElementBlock("div",{key:0,class:b.normalizeClass(["floating-tooltip-title",s.titleCssClass])},[b.createTextVNode(b.toDisplayString(r.title)+" ",1),h2e],2)):b.createCommentVNode("",!0),b.createElementVNode("div",{class:b.normalizeClass(["floating-tooltip-text",s.textCssClass])},b.toDisplayString(r.text),3)],6)]),_:1}))}}),GOe="",m2e={class:"tooltips-ui"},v2e=b.defineComponent({__name:"tooltips-ui",setup(e){const t=tp(),n=Pr(),r=b.computed(()=>t.tooltip),o=b.computed(()=>n.screenWidth),i=b.computed(()=>n.screenHeight),a=b.computed(()=>{if(r.value)return{...r.value,screenMargin:hc().options.screenEdgesMinimumMargin??5,screenWidth:o.value,screenHeight:i.value,...s(r.value)}});function s(l){var f,u;let c={};return hc().options.styling&&(c={...c,...hc().options.styling}),(f=z0(l.keyword))!=null&&f.styling&&(c={...c,...(u=z0(l.keyword))==null?void 0:u.styling}),c}return(l,c)=>(b.openBlock(),b.createElementBlock("div",m2e,[r.value?(b.openBlock(),b.createBlock(p2e,b.normalizeProps(b.mergeProps({key:0},a.value)),null,16)):b.createCommentVNode("",!0)]))}}),g2e=b.defineComponent({__name:"app",props:{options:{}},setup(e){const t=e,n=Gt(),r=b.computed(()=>n.flowState),o=b.computed(()=>n.alerts),i=Pr(),a=b.computed(()=>({transform:`scale(${i.gameScaleRatio}, ${i.gameScaleRatio})`,width:`${i.gameWidth}px`,height:`${i.actualGameHeight}px`})),s=b.computed(()=>Qo().activeMenu?"app-blurred-by-modal":{});function l(u){Gt().closeAlert(u)}function c(){Gt().flowState="game-splash"}function f(){Pr().refreshScreenSize()}return b.onMounted(async()=>{yn.callHook("onAppMounted"),await Gt().engineLoading(),i.inputsContainer.addEventListener("resize",cp(()=>{f()},100,{maxWait:200})),pa.setup(t.options.debug),setTimeout(()=>{f()},50)}),(u,d)=>(b.openBlock(),b.createElementBlock(b.Fragment,null,[b.createElementVNode("div",{id:"narrat-app-container",style:b.normalizeStyle(a.value)},[b.createElementVNode("div",{id:"narrat-app",class:b.normalizeClass(s.value),tabindex:"0"},[r.value==="engine-splash"?(b.openBlock(),b.createBlock(l2e,{key:0,onFinished:c})):(b.openBlock(),b.createBlock(b.Transition,{key:1,name:"screens-fade"},{default:b.withCtx(()=>[r.value==="game-splash"?(b.openBlock(),b.createBlock(d2e,{key:"1"})):r.value==="menu"?(b.openBlock(),b.createBlock(Yxe,{key:"2"})):r.value==="playing"?(b.openBlock(),b.createBlock(X_e,{key:"3"})):b.createCommentVNode("",!0)]),_:1})),u.options.debug?(b.openBlock(),b.createBlock(wxe,{key:2})):b.createCommentVNode("",!0),b.createVNode(jxe),(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(o.value,h=>(b.openBlock(),b.createBlock(Zxe,{key:h.id,title:h.title,text:h.text,onClose:()=>l(h.id)},null,8,["title","text","onClose"]))),128))],2)],4),b.createVNode(v2e)],64))}}),JOe="";function xt(e,t){console.error("Runtime error ========================="),console.error(`Command: ${e.commandType}`),console.error("Args: ",e.args),console.error("Options: ",e.options),At(`Runtime error at ${e.fileName}:${e.line} (${e.commandType}) ${e.code}. -
217
+ deps: ${f}}`};const o={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(l){const[c,f]=i(l);a(l,c),s(l,f)}};function i({schema:l}){const c={},f={};for(const u in l){if(u==="__proto__")continue;const d=Array.isArray(l[u])?c:f;d[u]=l[u]}return[c,f]}function a(l,c=l.schema){const{gen:f,data:u,it:d}=l;if(Object.keys(c).length===0)return;const h=f.let("missing");for(const p in c){const m=c[p];if(m.length===0)continue;const v=(0,r.propertyInData)(f,u,p,d.opts.ownProperties);l.setParams({property:p,depsCount:m.length,deps:m.join(", ")}),d.allErrors?f.if(v,()=>{for(const g of m)(0,r.checkReportMissingProp)(l,g)}):(f.if((0,t._)`${v} && (${(0,r.checkMissingProp)(l,m,h)})`),(0,r.reportMissingProp)(l,h),f.else())}}e.validatePropertyDeps=a;function s(l,c=l.schema){const{gen:f,data:u,keyword:d,it:h}=l,p=f.name("valid");for(const m in c)(0,n.alwaysValidSchema)(h,c[m])||(f.if((0,r.propertyInData)(f,u,m,h.opts.ownProperties),()=>{const v=l.subschema({keyword:d,schemaProp:m},p);l.mergeValidEvaluated(v,p)},()=>f.var(p,!0)),l.ok(p))}e.validateSchemaDeps=s,e.default=o})(BV);var C2={};Object.defineProperty(C2,"__esModule",{value:!0});const FV=Fn,lwe=Xn,cwe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:e})=>(0,FV._)`{propertyName: ${e.propertyName}}`},code(e){const{gen:t,schema:n,data:r,it:o}=e;if((0,lwe.alwaysValidSchema)(o,n))return;const i=t.name("valid");t.forIn("key",r,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,FV.not)(i),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(i)}};C2.default=cwe;var A0={};Object.defineProperty(A0,"__esModule",{value:!0});const M0=Vn,Ka=Fn,uwe=Es,P0=Xn,fwe={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:e})=>(0,Ka._)`{additionalProperty: ${e.additionalProperty}}`},code(e){const{gen:t,schema:n,parentSchema:r,data:o,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");const{allErrors:s,opts:l}=a;if(a.props=!0,l.removeAdditional!=="all"&&(0,P0.alwaysValidSchema)(a,n))return;const c=(0,M0.allSchemaProperties)(r.properties),f=(0,M0.allSchemaProperties)(r.patternProperties);u(),e.ok((0,Ka._)`${i} === ${uwe.default.errors}`);function u(){t.forIn("key",o,v=>{!c.length&&!f.length?p(v):t.if(d(v),()=>p(v))})}function d(v){let g;if(c.length>8){const y=(0,P0.schemaRefOrVal)(a,r.properties,"properties");g=(0,M0.isOwnProperty)(t,y,v)}else c.length?g=(0,Ka.or)(...c.map(y=>(0,Ka._)`${v} === ${y}`)):g=Ka.nil;return f.length&&(g=(0,Ka.or)(g,...f.map(y=>(0,Ka._)`${(0,M0.usePattern)(e,y)}.test(${v})`))),(0,Ka.not)(g)}function h(v){t.code((0,Ka._)`delete ${o}[${v}]`)}function p(v){if(l.removeAdditional==="all"||l.removeAdditional&&n===!1){h(v);return}if(n===!1){e.setParams({additionalProperty:v}),e.error(),s||t.break();return}if(typeof n=="object"&&!(0,P0.alwaysValidSchema)(a,n)){const g=t.name("valid");l.removeAdditional==="failing"?(m(v,g,!1),t.if((0,Ka.not)(g),()=>{e.reset(),h(v)})):(m(v,g),s||t.if((0,Ka.not)(g),()=>t.break()))}}function m(v,g,y){const w={keyword:"additionalProperties",dataProp:v,dataPropType:P0.Type.Str};y===!1&&Object.assign(w,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(w,g)}}};A0.default=fwe;var $2={};Object.defineProperty($2,"__esModule",{value:!0});const dwe=Ua,VV=Vn,T2=Xn,zV=A0,hwe={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,parentSchema:r,data:o,it:i}=e;i.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&zV.default.code(new dwe.KeywordCxt(i,zV.default,"additionalProperties"));const a=(0,VV.allSchemaProperties)(n);for(const u of a)i.definedProperties.add(u);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=T2.mergeEvaluated.props(t,(0,T2.toHash)(a),i.props));const s=a.filter(u=>!(0,T2.alwaysValidSchema)(i,n[u]));if(s.length===0)return;const l=t.name("valid");for(const u of s)c(u)?f(u):(t.if((0,VV.propertyInData)(t,o,u,i.opts.ownProperties)),f(u),i.allErrors||t.else().var(l,!0),t.endIf()),e.it.definedProperties.add(u),e.ok(l);function c(u){return i.opts.useDefaults&&!i.compositeRule&&n[u].default!==void 0}function f(u){e.subschema({keyword:"properties",schemaProp:u,dataProp:u},l)}}};$2.default=hwe;var O2={};Object.defineProperty(O2,"__esModule",{value:!0});const qV=Vn,N0=Fn,UV=Xn,HV=Xn,pwe={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,data:r,parentSchema:o,it:i}=e,{opts:a}=i,s=(0,qV.allSchemaProperties)(n),l=s.filter(m=>(0,UV.alwaysValidSchema)(i,n[m]));if(s.length===0||l.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;const c=a.strictSchema&&!a.allowMatchingProperties&&o.properties,f=t.name("valid");i.props!==!0&&!(i.props instanceof N0.Name)&&(i.props=(0,HV.evaluatedPropsToName)(t,i.props));const{props:u}=i;d();function d(){for(const m of s)c&&h(m),i.allErrors?p(m):(t.var(f,!0),p(m),t.if(f))}function h(m){for(const v in c)new RegExp(m).test(v)&&(0,UV.checkStrictMode)(i,`property ${v} matches pattern ${m} (use allowMatchingProperties)`)}function p(m){t.forIn("key",r,v=>{t.if((0,N0._)`${(0,qV.usePattern)(e,m)}.test(${v})`,()=>{const g=l.includes(m);g||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:v,dataPropType:HV.Type.Str},f),i.opts.unevaluated&&u!==!0?t.assign((0,N0._)`${u}[${v}]`,!0):!g&&!i.allErrors&&t.if((0,N0.not)(f),()=>t.break())})})}}};O2.default=pwe;var E2={};Object.defineProperty(E2,"__esModule",{value:!0});const mwe=Xn,vwe={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:n,it:r}=e;if((0,mwe.alwaysValidSchema)(r,n)){e.fail();return}const o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};E2.default=vwe;var A2={};Object.defineProperty(A2,"__esModule",{value:!0});const gwe={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Vn.validateUnion,error:{message:"must match a schema in anyOf"}};A2.default=gwe;var M2={};Object.defineProperty(M2,"__esModule",{value:!0});const I0=Fn,ywe=Xn,bwe={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:e})=>(0,I0._)`{passingSchemas: ${e.passing}}`},code(e){const{gen:t,schema:n,parentSchema:r,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(o.opts.discriminator&&r.discriminator)return;const i=n,a=t.let("valid",!1),s=t.let("passing",null),l=t.name("_valid");e.setParams({passing:s}),t.block(c),e.result(a,()=>e.reset(),()=>e.error(!0));function c(){i.forEach((f,u)=>{let d;(0,ywe.alwaysValidSchema)(o,f)?t.var(l,!0):d=e.subschema({keyword:"oneOf",schemaProp:u,compositeRule:!0},l),u>0&&t.if((0,I0._)`${l} && ${a}`).assign(a,!1).assign(s,(0,I0._)`[${s}, ${u}]`).else(),t.if(l,()=>{t.assign(a,!0),t.assign(s,u),d&&e.mergeEvaluated(d,I0.Name)})})}}};M2.default=bwe;var P2={};Object.defineProperty(P2,"__esModule",{value:!0});const wwe=Xn,kwe={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");const o=t.name("valid");n.forEach((i,a)=>{if((0,wwe.alwaysValidSchema)(r,i))return;const s=e.subschema({keyword:"allOf",schemaProp:a},o);e.ok(o),e.mergeEvaluated(s)})}};P2.default=kwe;var N2={};Object.defineProperty(N2,"__esModule",{value:!0});const D0=Fn,WV=Xn,xwe={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>(0,D0.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,D0._)`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,WV.checkStrictMode)(r,'"if" without "then" and "else" is ignored');const o=KV(r,"then"),i=KV(r,"else");if(!o&&!i)return;const a=t.let("valid",!0),s=t.name("_valid");if(l(),e.reset(),o&&i){const f=t.let("ifClause");e.setParams({ifClause:f}),t.if(s,c("then",f),c("else",f))}else o?t.if(s,c("then")):t.if((0,D0.not)(s),c("else"));e.pass(a,()=>e.error(!0));function l(){const f=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(f)}function c(f,u){return()=>{const d=e.subschema({keyword:f},s);t.assign(a,s),e.mergeValidEvaluated(d,a),u?t.assign(u,(0,D0._)`${f}`):e.setParams({ifClause:f})}}}};function KV(e,t){const n=e.schema[t];return n!==void 0&&!(0,WV.alwaysValidSchema)(e,n)}N2.default=xwe;var I2={};Object.defineProperty(I2,"__esModule",{value:!0});const _we=Xn,jwe={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,_we.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};I2.default=jwe,Object.defineProperty(k2,"__esModule",{value:!0});const Swe=td,Cwe=_2,$we=nd,Twe=j2,Owe=S2,Ewe=BV,Awe=C2,Mwe=A0,Pwe=$2,Nwe=O2,Iwe=E2,Dwe=A2,Lwe=M2,Rwe=P2,Bwe=N2,Fwe=I2;function Vwe(e=!1){const t=[Iwe.default,Dwe.default,Lwe.default,Rwe.default,Bwe.default,Fwe.default,Awe.default,Mwe.default,Ewe.default,Pwe.default,Nwe.default];return e?t.push(Cwe.default,Twe.default):t.push(Swe.default,$we.default),t.push(Owe.default),t}k2.default=Vwe;var D2={},L2={};Object.defineProperty(L2,"__esModule",{value:!0});const to=Fn,zwe={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>(0,to.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,to._)`{format: ${e}}`},code(e,t){const{gen:n,data:r,$data:o,schema:i,schemaCode:a,it:s}=e,{opts:l,errSchemaPath:c,schemaEnv:f,self:u}=s;if(!l.validateFormats)return;o?d():h();function d(){const p=n.scopeValue("formats",{ref:u.formats,code:l.code.formats}),m=n.const("fDef",(0,to._)`${p}[${a}]`),v=n.let("fType"),g=n.let("format");n.if((0,to._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>n.assign(v,(0,to._)`${m}.type || "string"`).assign(g,(0,to._)`${m}.validate`),()=>n.assign(v,(0,to._)`"string"`).assign(g,m)),e.fail$data((0,to.or)(y(),w()));function y(){return l.strictSchema===!1?to.nil:(0,to._)`${a} && !${g}`}function w(){const k=f.$async?(0,to._)`(${m}.async ? await ${g}(${r}) : ${g}(${r}))`:(0,to._)`${g}(${r})`,$=(0,to._)`(typeof ${g} == "function" ? ${k} : ${g}.test(${r}))`;return(0,to._)`${g} && ${g} !== true && ${v} === ${t} && !${$}`}}function h(){const p=u.formats[i];if(!p){y();return}if(p===!0)return;const[m,v,g]=w(p);m===t&&e.pass(k());function y(){if(l.strictSchema===!1){u.logger.warn($());return}throw new Error($());function $(){return`unknown format "${i}" ignored in schema at path "${c}"`}}function w($){const j=$ instanceof RegExp?(0,to.regexpCode)($):l.code.formats?(0,to._)`${l.code.formats}${(0,to.getProperty)(i)}`:void 0,E=n.scopeValue("formats",{key:i,ref:$,code:j});return typeof $=="object"&&!($ instanceof RegExp)?[$.type||"string",$.validate,(0,to._)`${E}.validate`]:["string",$,E]}function k(){if(typeof p=="object"&&!(p instanceof RegExp)&&p.async){if(!f.$async)throw new Error("async format in sync schema");return(0,to._)`await ${g}(${r})`}return typeof v=="function"?(0,to._)`${g}(${r})`:(0,to._)`${g}.test(${r})`}}}};L2.default=zwe,Object.defineProperty(D2,"__esModule",{value:!0});const qwe=[L2.default];D2.default=qwe;var rd={};Object.defineProperty(rd,"__esModule",{value:!0}),rd.contentVocabulary=rd.metadataVocabulary=void 0,rd.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],rd.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"],Object.defineProperty(o2,"__esModule",{value:!0});const Uwe=i2,Hwe=s2,Wwe=k2,Kwe=D2,GV=rd,Gwe=[Uwe.default,Hwe.default,(0,Wwe.default)(),Kwe.default,GV.metadataVocabulary,GV.contentVocabulary];o2.default=Gwe;var R2={},JV={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0,function(t){t.Tag="tag",t.Mapping="mapping"}(e.DiscrError||(e.DiscrError={}))})(JV),Object.defineProperty(R2,"__esModule",{value:!0});const od=Fn,B2=JV,QV=Si,Jwe=Xn,Qwe={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:e,tagName:t}})=>e===B2.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,od._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},code(e){const{gen:t,data:n,schema:r,parentSchema:o,it:i}=e,{oneOf:a}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");const s=r.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");const l=t.let("valid",!1),c=t.const("tag",(0,od._)`${n}${(0,od.getProperty)(s)}`);t.if((0,od._)`typeof ${c} == "string"`,()=>f(),()=>e.error(!1,{discrError:B2.DiscrError.Tag,tag:c,tagName:s})),e.ok(l);function f(){const h=d();t.if(!1);for(const p in h)t.elseIf((0,od._)`${c} === ${p}`),t.assign(l,u(h[p]));t.else(),e.error(!1,{discrError:B2.DiscrError.Mapping,tag:c,tagName:s}),t.endIf()}function u(h){const p=t.name("valid"),m=e.subschema({keyword:"oneOf",schemaProp:h},p);return e.mergeEvaluated(m,od.Name),p}function d(){var h;const p={},m=g(o);let v=!0;for(let k=0;k<a.length;k++){let $=a[k];$!=null&&$.$ref&&!(0,Jwe.schemaHasRulesButRef)($,i.self.RULES)&&($=QV.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,$==null?void 0:$.$ref),$ instanceof QV.SchemaEnv&&($=$.schema));const j=(h=$==null?void 0:$.properties)===null||h===void 0?void 0:h[s];if(typeof j!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);v=v&&(m||g($)),y(j,k)}if(!v)throw new Error(`discriminator: "${s}" must be required`);return p;function g({required:k}){return Array.isArray(k)&&k.includes(s)}function y(k,$){if(k.const)w(k.const,$);else if(k.enum)for(const j of k.enum)w(j,$);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function w(k,$){if(typeof k!="string"||k in p)throw new Error(`discriminator: "${s}" values must be unique strings`);p[k]=$}}}};R2.default=Qwe;const Ywe={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const n=YF,r=o2,o=R2,i=Ywe,a=["/properties"],s="http://json-schema.org/draft-07/schema";class l extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(p=>this.addVocabulary(p)),this.opts.discriminator&&this.addKeyword(o.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const p=this.opts.$data?this.$dataMetaSchema(i,a):i;this.addMetaSchema(p,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}e.exports=t=l,Object.defineProperty(t,"__esModule",{value:!0}),t.default=l;var c=Ua;Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return c.KeywordCxt}});var f=Fn;Object.defineProperty(t,"_",{enumerable:!0,get:function(){return f._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return f.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return f.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return f.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return f.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return f.CodeGen}});var u=vp;Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return u.default}});var d=gp;Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return d.default}})})(U_,U_.exports);var Xwe=U_.exports;const Zwe=Z0(Xwe);function F2(e){return!(!e||!e.default)}function V2(e){if(Gt().clearErrors(),!F2(e))return;console.log(`Received HMR update for ${e.id}`);const t=e.default;z2(t)?(Go().addNotification(`Reloaded ${t.fileName}`,"You can continue playing with the changes."),yn.addNarratScript(t)):L0(t)&&(_o().reloadConfigModule(t),console.log(`Yaml update ${t.fileName}}`))}function z2(e){return typeof e=="object"&&e!==null&&typeof e.code=="string"&&typeof e.fileName=="string"&&typeof e.id=="string"&&e.type==="script"}function L0(e){return typeof e=="object"&&e!==null&&typeof e.code=="object"&&typeof e.fileName=="string"&&typeof e.id=="string"&&e.type==="yaml"}window.narratHMRHandler=e=>{const t=window.narrat;t&&t.handleHMR(e);const n=new CustomEvent("narrat-hmr",{detail:{newModule:e}});document.body.dispatchEvent(n)};let Sp;const eke=[["items",r9,o9],["achievements",j9,S9],["screens",f9,d9],["skills",m9,v9],["skillChecks",C9,$9],["buttons",l9,c9],["scripts",Z7,mve],["audio",R7,B7],["quests",i9,a9],["tooltips",w9,k9],["characters",g9,y9],["choices",O9,E9],["animations",M9,P9]],tke=[["common",e9,b_]],hl=new Zwe({allErrors:!0}),nke=["baseAssetsPath","baseDataPath","gameTitle","saveFileName","images","layout","settings","gameFlow","dialogPanel","splashScreens","notifications","hudStats","interactionTags","transitions","menuButtons","debugging","saves"];async function rke(e,t){for(const[n,r,o]of tke){const i=t[n];let a=YV(o);try{if(!hl.validate(r,i))throw console.error(hl.errors),new Error(`${hl.errorsText()}`)}catch(s){console.error(s),At(`${n} config error: ${s}`)}typeof i<"u"&&(a=YV(i,a)),e[n]=a}}function YV(e,t){return typeof e=="object"?Array.isArray(e)?[...e]:{...t,...e}:typeof e<"u"?e:t}async function oke(e,t){for(const n of nke){const r=t[n];r&&(typeof r=="object"&&!Array.isArray(r)?e.common[n]={...e.common[n],...r}:e.common[n]=r)}}async function ike(e){const t={...Uf};y0(e)?await rke(t,e):oke(t,e);for(const n of eke){const r=n[0],o=n[1],i=n[2];let a=e[r];if(a&&typeof a=="string")try{if(a=await lp(U2(t.common.baseDataPath,a)),!hl.validate(o,a))throw console.error(hl.errors),new Error(`${hl.errorsText()}`)}catch(s){console.error(s),At(`${r} config error: ${s}`),a={...i}}a&&(Array.isArray(a)?t[r]=a:typeof a=="object"?t[r]={...i,...a}:t[r]=a)}if(Sp=t,e.skills&&e&&Sp.common.transitions)for(const n in Sp.common.transitions)p0[n]?Object.assign(p0[n],Sp.common.transitions[n]):p0[n]=Sp.common.transitions[n];return t}async function ake(e){let t;if(e.config){const o=e.config;t={};for(const i in o){const a=o[i];L0(a)?(_o().addConfigModule(i,{id:a.id,code:a.code}),t[i]=a.code):t[i]=a}}else if(e.configPath)t=await lp(e.configPath);else throw At("No config file or config object provided"),new Error("No config file or config object provided");let n=t;return y0(t)&&(n=t.common),n.baseAssetsPath=e.baseAssetsPath??n.baseAssetsPath??"",n.baseDataPath=e.baseDataPath??n.baseDataPath??"",hl.validate(q_,t)||(At("Config file validation failed."),console.log(hl.errors),At(hl.errorsText())),ike(t)}function Jr(){return _o().config}function Mt(){return Jr().common}function ha(){return Jr().audio}function XV(e){const t=ha().files[e];if(!t){du(`Audio file ${e} doesn't exist`);return}return t}function R0(e){const t=XV(e),n=((t==null?void 0:t.fadeInDelay)??ha().options.musicFadeInDelay)*1e3,r=((t==null?void 0:t.fadeInTime)??ha().options.musicFadeInTime)*1e3,o=((t==null?void 0:t.fadeOutTime)??ha().options.musicFadeOutTime)*1e3;return{fadeInDelay:n,fadeInTime:r,fadeOutTime:o}}function Ga(){return Jr().skills}function Cp(){return Jr().skillChecks}function $p(){return Jr().items}function id(){return Jr().quests}function B0(){return Jr().screens}function F0(){return Jr().buttons}function hc(){return Jr().tooltips}function V0(){return Jr().characters}function q2(){return Jr().choices}function ZV(){return Jr().animations}function ez(e){return q2().choicePrompts[e]}function ad(e){return e===y_?q7:B0().screens[e]?B0().screens[e]:(At(`Screen config for screen ${e} doesn't exist`),q7)}function z0(e){const n=hc().tooltips.find(r=>r.keywords.includes(e));return n||(At(`Tooltip config for keyword ${e} not found`),null)}function q0(e){const t=Jr().skills.skills[e];return t||At(`Skill config for skill ${e} doesn't exist`),t}function tz(e){const t=Jr().skillChecks.skillChecks[e];return t||At(`Skill check config for skill check ${e} doesn't exist`),t}function nz(e){return!!Jr().skillChecks.skillChecks[e]}function sd(e){return e.startsWith("http")?e:Mt().images[e]?ui(Mt().images[e]):ui(e)}function ui(e){return e.startsWith("http")?e:Mt().baseAssetsPath?`${Mt().baseAssetsPath}${e}`:e}function U2(e,t){return`${e}${t}`}function U0(e){return Mt().baseDataPath?`${Mt().baseDataPath}${e}`:e}function pc(e){const t=F0().buttons[e];return t||At(`Button config for button ${e} doesn't exist`),t}function Ja(e){const t=$p().items[e];return t||At(`Item config for skill ${e} doesn't exist`),t}function ld(){return Jr().achievements}function H2(e){const t=ld().achievements[e];return t||At(`Achievement config for achievement ${e} doesn't exist`),t}function pl(e){return id().quests[e]}function rz(e,t){const r=pl(e).endings;return r||At(`Quest ${e} doesn't have any endings`),r[t]||At(`Quest ${e} has no ending called ${t}`),r[t]}function Tp(e,t){return pl(e).objectives[t]}function H0(){return Mt().dialogPanel.width??fve}function oz(e,t,n,r="$"){if(!n.startsWith(r))return isNaN(Number(n))?[null,n]:[null,Number(n)];n=n.substring(1);const o=/\[/,i=/\]/;let a=n.search(o);n.search(i);let s=n,l=t,c=0;for(;c<n.length;){if(a>c||a===-1){const f=a>c?a:n.length;let u=n.substring(c,f);isNaN(Number(u))||(u=Number(u)),c>0&&(l=l[s]),[l,s]=lke(l,u)}if(a!==-1){c=a;const f=n.substring(a+1),u=ske(f)+a,d=n.substring(a+1,u),[h,p]=oz(e,e,d);let m=p;h&&(m=h[p]),typeof m=="number"||!isNaN(Number(m))?m=Number(m):typeof m!="string"&&console.error(`invalid array index (${m}) key type when compiling: ${n}`),l=l[s],s=m,c=u+1;const v=n.substring(c);a=v.search(o),a!==-1&&(a+=c),v.search(i)}else c=n.length}return[l,s]}function ske(e){let t=!1,n=0,r,o=1;for(;!t;){r=e.substring(n);const i=r.search(/\[/),a=r.search(/\]/);i!==-1&&i<a?(n+=i+1,o++):(n+=a+1,o--),o===0&&(t=!0),i===-1&&a===-1&&!t&&At(`Could not find closing bracket in ${e}`)}return n}function lke(e,t){if(typeof t=="number")return[e,t];t.startsWith(".")&&(t=t.substring(1));const n=t.split(".");let r=e;const o=n.length-1;let i=n[0],a=0;for(a=0;a<o;a++)i=n[a],typeof r[i]>"u"&&(r[i]={}),r=r[i];return i=n[a],[r,i]}function W0(e,t,n="$"){return oz(e,e,t)}function cke(e,t){return W0(e,t)}function iz(e,t,n){const[r,o]=W0(e,t);r[o]=n}function az(e,t,n){const[r,o]=W0(e,t),i=r[o]||0;r[o]=n+i}function cd(){const e=un(),t=Cr(),n=li(),r=so(),o=un().scope,i={data:e.data,global:e.globalData,skills:t.skills,skillChecks:t.skillChecks,buttons:n.buttons,items:r.items,quests:eo().quests,stats:qa().hudStats,scope:o,config:Mt(),gameOptions:Gt().options,baseSettings:Bi().baseSettings,customSettings:Bi().customSettings};return new Proxy(i,{get:(s,l,c)=>{const f=un().scope,u=un().data;return typeof f[l]<"u"?f[l]:typeof u[l]<"u"?u[l]:Reflect.get(s,l,c)},set:(s,l,c,f)=>{const u=un().scope,d=un().data;if(typeof u[l]<"u")u[l]=c;else{if(typeof s[l]<"u")return Reflect.set(s,l,c,f);typeof c=="object"?d[l]={}:d[l]=c}return!0}})}function Zn(e){if(e===null)return null;if(typeof e=="object")if(Array.isArray(e)){const t=[];for(const n in e)t[n]=Zn(e[n]);return t}else{const t={};for(const n in e)t[n]=Zn(e[n]);return t}else return e}function W2(e,t){if(e===null)return null;if(typeof e=="object"){const n=t(e);if(t(e))return n;if(Array.isArray(e)){const r=[];for(const o in e)r[o]=W2(e[o],t);return r}else{const r={};for(const o in e)r[o]=W2(e[o],t);return r}}else return t(e)}const Cr=oo("skills",{state:()=>({skillChecks:{},skills:{}}),actions:{setupSkillCheck(e,t){this.skillChecks[t]=e},passSkillCheck(e,t){this.skillChecks[e].happened=!0,this.skillChecks[e].succeeded=!0,t&&(this.skillChecks[e].hidden=!0)},failSkillCheck(e,t){this.skillChecks[e].happened=!0,this.skillChecks[e].succeeded=!1,t&&(this.skillChecks[e].hidden=!0)},resetSkillCheck(e){this.skillChecks[e].happened=!1,this.skillChecks[e].succeeded=!1,this.skillChecks[e].hidden=!1},generateSaveData(){return{skillChecks:Zn(this.skillChecks),skills:Zn(this.skills)}},getSkillCheck(e){return this.skillChecks[e]||this.setupSkillCheck(this.createSkillCheckState(),e),this.skillChecks[e]},createSkillCheckState(){return{happened:!1,succeeded:!1,hidden:!1}},loadSaveData(e){this.skillChecks=uu(this.skillChecks,e.skillChecks),this.skills=uu(this.skills,e.skills)},setupSkills(e){const t=e.skills;for(const n in t)this.skills[n]={id:n,level:t[n].startingLevel||0,xp:0}},reset(e){this.$reset(),this.setupSkills(e)},getSkill(e){return this.skills[e]},getSkillLevel(e){return this.getSkill(e).level},getSkillXp(e){return this.getSkill(e).xp},addXp(e,t){const n=this.getSkill(e);n||At(`Skill ${e} doesn't exist`),n.xp+=t,n.xp>=Ga().skillOptions.xpPerLevel&&(n.xp=0,n.level++,this.levelledUp(e))},setSkillLevel(e,t){const n=this.getSkill(e);n||At(`Skill ${e} doesn't exist`),n.level=t,this.levelledUp(e)},incrementSkill(e,t){this.getSkill(e).level+=t,this.levelledUp(e)},levelledUp(e){const t=Ga().skills[e].name,n=this.skills[e].level;Ga().skillOptions.notifyLevelUp&&Go().addNotification(`Your skill in ${t} is now level ${n}`)}}});function ml(e){return Array.isArray?Array.isArray(e):cz(e)==="[object Array]"}const uke=1/0;function fke(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-uke?"-0":t}function dke(e){return e==null?"":fke(e)}function Ps(e){return typeof e=="string"}function sz(e){return typeof e=="number"}function hke(e){return e===!0||e===!1||pke(e)&&cz(e)=="[object Boolean]"}function lz(e){return typeof e=="object"}function pke(e){return lz(e)&&e!==null}function Fi(e){return e!=null}function K2(e){return!e.trim().length}function cz(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const mOe="Extended search is not available",mke="Incorrect 'index' type",vke=e=>`Invalid value for key ${e}`,gke=e=>`Pattern length exceeds max of ${e}.`,yke=e=>`Missing ${e} property in key`,bke=e=>`Property 'weight' in key '${e}' must be a positive integer`,uz=Object.prototype.hasOwnProperty;class wke{constructor(t){this._keys=[],this._keyMap={};let n=0;t.forEach(r=>{let o=fz(r);n+=o.weight,this._keys.push(o),this._keyMap[o.id]=o,n+=o.weight}),this._keys.forEach(r=>{r.weight/=n})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function fz(e){let t=null,n=null,r=null,o=1,i=null;if(Ps(e)||ml(e))r=e,t=dz(e),n=G2(e);else{if(!uz.call(e,"name"))throw new Error(yke("name"));const a=e.name;if(r=a,uz.call(e,"weight")&&(o=e.weight,o<=0))throw new Error(bke(a));t=dz(a),n=G2(a),i=e.getFn}return{path:t,id:n,weight:o,src:r,getFn:i}}function dz(e){return ml(e)?e:e.split(".")}function G2(e){return ml(e)?e.join("."):e}function kke(e,t){let n=[],r=!1;const o=(i,a,s)=>{if(Fi(i))if(!a[s])n.push(i);else{let l=a[s];const c=i[l];if(!Fi(c))return;if(s===a.length-1&&(Ps(c)||sz(c)||hke(c)))n.push(dke(c));else if(ml(c)){r=!0;for(let f=0,u=c.length;f<u;f+=1)o(c[f],a,s+1)}else a.length&&o(c,a,s+1)}};return o(e,Ps(t)?t.split("."):t,0),r?n:n[0]}var mn={...{isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:kke,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const xke=/[^ ]+/g;function _ke(e=1,t=3){const n=new Map,r=Math.pow(10,t);return{get(o){const i=o.match(xke).length;if(n.has(i))return n.get(i);const a=1/Math.pow(i,.5*e),s=parseFloat(Math.round(a*r)/r);return n.set(i,s),s},clear(){n.clear()}}}class J2{constructor({getFn:t=mn.getFn,fieldNormWeight:n=mn.fieldNormWeight}={}){this.norm=_ke(n,3),this.getFn=t,this.isCreated=!1,this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach((n,r)=>{this._keysMap[n.id]=r})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Ps(this.docs[0])?this.docs.forEach((t,n)=>{this._addString(t,n)}):this.docs.forEach((t,n)=>{this._addObject(t,n)}),this.norm.clear())}add(t){const n=this.size();Ps(t)?this._addString(t,n):this._addObject(t,n)}removeAt(t){this.records.splice(t,1);for(let n=t,r=this.size();n<r;n+=1)this.records[n].i-=1}getValueForItemAtKeyId(t,n){return t[this._keysMap[n]]}size(){return this.records.length}_addString(t,n){if(!Fi(t)||K2(t))return;let r={v:t,i:n,n:this.norm.get(t)};this.records.push(r)}_addObject(t,n){let r={i:n,$:{}};this.keys.forEach((o,i)=>{let a=o.getFn?o.getFn(t):this.getFn(t,o.path);if(Fi(a)){if(ml(a)){let s=[];const l=[{nestedArrIndex:-1,value:a}];for(;l.length;){const{nestedArrIndex:c,value:f}=l.pop();if(Fi(f))if(Ps(f)&&!K2(f)){let u={v:f,i:c,n:this.norm.get(f)};s.push(u)}else ml(f)&&f.forEach((u,d)=>{l.push({nestedArrIndex:d,value:u})})}r.$[i]=s}else if(Ps(a)&&!K2(a)){let s={v:a,n:this.norm.get(a)};r.$[i]=s}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function hz(e,t,{getFn:n=mn.getFn,fieldNormWeight:r=mn.fieldNormWeight}={}){const o=new J2({getFn:n,fieldNormWeight:r});return o.setKeys(e.map(fz)),o.setSources(t),o.create(),o}function jke(e,{getFn:t=mn.getFn,fieldNormWeight:n=mn.fieldNormWeight}={}){const{keys:r,records:o}=e,i=new J2({getFn:t,fieldNormWeight:n});return i.setKeys(r),i.setIndexRecords(o),i}function K0(e,{errors:t=0,currentLocation:n=0,expectedLocation:r=0,distance:o=mn.distance,ignoreLocation:i=mn.ignoreLocation}={}){const a=t/e.length;if(i)return a;const s=Math.abs(r-n);return o?a+s/o:s?1:a}function Ske(e=[],t=mn.minMatchCharLength){let n=[],r=-1,o=-1,i=0;for(let a=e.length;i<a;i+=1){let s=e[i];s&&r===-1?r=i:!s&&r!==-1&&(o=i-1,o-r+1>=t&&n.push([r,o]),r=-1)}return e[i-1]&&i-r>=t&&n.push([r,i-1]),n}const bu=32;function Cke(e,t,n,{location:r=mn.location,distance:o=mn.distance,threshold:i=mn.threshold,findAllMatches:a=mn.findAllMatches,minMatchCharLength:s=mn.minMatchCharLength,includeMatches:l=mn.includeMatches,ignoreLocation:c=mn.ignoreLocation}={}){if(t.length>bu)throw new Error(gke(bu));const f=t.length,u=e.length,d=Math.max(0,Math.min(r,u));let h=i,p=d;const m=s>1||l,v=m?Array(u):[];let g;for(;(g=e.indexOf(t,p))>-1;){let E=K0(t,{currentLocation:g,expectedLocation:d,distance:o,ignoreLocation:c});if(h=Math.min(E,h),p=g+f,m){let I=0;for(;I<f;)v[g+I]=1,I+=1}}p=-1;let y=[],w=1,k=f+u;const $=1<<f-1;for(let E=0;E<f;E+=1){let I=0,D=k;for(;I<D;)K0(t,{errors:E,currentLocation:d+D,expectedLocation:d,distance:o,ignoreLocation:c})<=h?I=D:k=D,D=Math.floor((k-I)/2+I);k=D;let L=Math.max(1,d-D+1),M=a?u:Math.min(d+D,u)+f,F=Array(M+2);F[M+1]=(1<<E)-1;for(let N=M;N>=L;N-=1){let W=N-1,ee=n[e.charAt(W)];if(m&&(v[W]=+!!ee),F[N]=(F[N+1]<<1|1)&ee,E&&(F[N]|=(y[N+1]|y[N])<<1|1|y[N+1]),F[N]&$&&(w=K0(t,{errors:E,currentLocation:W,expectedLocation:d,distance:o,ignoreLocation:c}),w<=h)){if(h=w,p=W,p<=d)break;L=Math.max(1,2*d-p)}}if(K0(t,{errors:E+1,currentLocation:d,expectedLocation:d,distance:o,ignoreLocation:c})>h)break;y=F}const j={isMatch:p>=0,score:Math.max(.001,w)};if(m){const E=Ske(v,s);E.length?l&&(j.indices=E):j.isMatch=!1}return j}function $ke(e){let t={};for(let n=0,r=e.length;n<r;n+=1){const o=e.charAt(n);t[o]=(t[o]||0)|1<<r-n-1}return t}class pz{constructor(t,{location:n=mn.location,threshold:r=mn.threshold,distance:o=mn.distance,includeMatches:i=mn.includeMatches,findAllMatches:a=mn.findAllMatches,minMatchCharLength:s=mn.minMatchCharLength,isCaseSensitive:l=mn.isCaseSensitive,ignoreLocation:c=mn.ignoreLocation}={}){if(this.options={location:n,threshold:r,distance:o,includeMatches:i,findAllMatches:a,minMatchCharLength:s,isCaseSensitive:l,ignoreLocation:c},this.pattern=l?t:t.toLowerCase(),this.chunks=[],!this.pattern.length)return;const f=(d,h)=>{this.chunks.push({pattern:d,alphabet:$ke(d),startIndex:h})},u=this.pattern.length;if(u>bu){let d=0;const h=u%bu,p=u-h;for(;d<p;)f(this.pattern.substr(d,bu),d),d+=bu;if(h){const m=u-bu;f(this.pattern.substr(m),m)}}else f(this.pattern,0)}searchIn(t){const{isCaseSensitive:n,includeMatches:r}=this.options;if(n||(t=t.toLowerCase()),this.pattern===t){let p={isMatch:!0,score:0};return r&&(p.indices=[[0,t.length-1]]),p}const{location:o,distance:i,threshold:a,findAllMatches:s,minMatchCharLength:l,ignoreLocation:c}=this.options;let f=[],u=0,d=!1;this.chunks.forEach(({pattern:p,alphabet:m,startIndex:v})=>{const{isMatch:g,score:y,indices:w}=Cke(t,p,m,{location:o+v,distance:i,threshold:a,findAllMatches:s,minMatchCharLength:l,includeMatches:r,ignoreLocation:c});g&&(d=!0),u+=y,g&&w&&(f=[...f,...w])});let h={isMatch:d,score:d?u/this.chunks.length:1};return d&&r&&(h.indices=f),h}}class mc{constructor(t){this.pattern=t}static isMultiMatch(t){return mz(t,this.multiRegex)}static isSingleMatch(t){return mz(t,this.singleRegex)}search(){}}function mz(e,t){const n=e.match(t);return n?n[1]:null}class Tke extends mc{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){const n=t===this.pattern;return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class Oke extends mc{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){const r=t.indexOf(this.pattern)===-1;return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}}class Eke extends mc{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){const n=t.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class Ake extends mc{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){const n=!t.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}}class Mke extends mc{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){const n=t.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[t.length-this.pattern.length,t.length-1]}}}class Pke extends mc{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){const n=!t.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}}class vz extends mc{constructor(t,{location:n=mn.location,threshold:r=mn.threshold,distance:o=mn.distance,includeMatches:i=mn.includeMatches,findAllMatches:a=mn.findAllMatches,minMatchCharLength:s=mn.minMatchCharLength,isCaseSensitive:l=mn.isCaseSensitive,ignoreLocation:c=mn.ignoreLocation}={}){super(t),this._bitapSearch=new pz(t,{location:n,threshold:r,distance:o,includeMatches:i,findAllMatches:a,minMatchCharLength:s,isCaseSensitive:l,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}}class gz extends mc{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let n=0,r;const o=[],i=this.pattern.length;for(;(r=t.indexOf(this.pattern,n))>-1;)n=r+i,o.push([r,n-1]);const a=!!o.length;return{isMatch:a,score:a?0:1,indices:o}}}const Q2=[Tke,gz,Eke,Ake,Pke,Mke,Oke,vz],yz=Q2.length,Nke=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Ike="|";function Dke(e,t={}){return e.split(Ike).map(n=>{let r=n.trim().split(Nke).filter(i=>i&&!!i.trim()),o=[];for(let i=0,a=r.length;i<a;i+=1){const s=r[i];let l=!1,c=-1;for(;!l&&++c<yz;){const f=Q2[c];let u=f.isMultiMatch(s);u&&(o.push(new f(u,t)),l=!0)}if(!l)for(c=-1;++c<yz;){const f=Q2[c];let u=f.isSingleMatch(s);if(u){o.push(new f(u,t));break}}}return o})}const Lke=new Set([vz.type,gz.type]);class Rke{constructor(t,{isCaseSensitive:n=mn.isCaseSensitive,includeMatches:r=mn.includeMatches,minMatchCharLength:o=mn.minMatchCharLength,ignoreLocation:i=mn.ignoreLocation,findAllMatches:a=mn.findAllMatches,location:s=mn.location,threshold:l=mn.threshold,distance:c=mn.distance}={}){this.query=null,this.options={isCaseSensitive:n,includeMatches:r,minMatchCharLength:o,findAllMatches:a,ignoreLocation:i,location:s,threshold:l,distance:c},this.pattern=n?t:t.toLowerCase(),this.query=Dke(this.pattern,this.options)}static condition(t,n){return n.useExtendedSearch}searchIn(t){const n=this.query;if(!n)return{isMatch:!1,score:1};const{includeMatches:r,isCaseSensitive:o}=this.options;t=o?t:t.toLowerCase();let i=0,a=[],s=0;for(let l=0,c=n.length;l<c;l+=1){const f=n[l];a.length=0,i=0;for(let u=0,d=f.length;u<d;u+=1){const h=f[u],{isMatch:p,indices:m,score:v}=h.search(t);if(p){if(i+=1,s+=v,r){const g=h.constructor.type;Lke.has(g)?a=[...a,...m]:a.push(m)}}else{s=0,i=0,a.length=0;break}}if(i){let u={isMatch:!0,score:s/i};return r&&(u.indices=a),u}}return{isMatch:!1,score:1}}}const Y2=[];function Bke(...e){Y2.push(...e)}function X2(e,t){for(let n=0,r=Y2.length;n<r;n+=1){let o=Y2[n];if(o.condition(e,t))return new o(e,t)}return new pz(e,t)}const G0={AND:"$and",OR:"$or"},Z2={PATH:"$path",PATTERN:"$val"},ej=e=>!!(e[G0.AND]||e[G0.OR]),Fke=e=>!!e[Z2.PATH],Vke=e=>!ml(e)&&lz(e)&&!ej(e),bz=e=>({[G0.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function wz(e,t,{auto:n=!0}={}){const r=o=>{let i=Object.keys(o);const a=Fke(o);if(!a&&i.length>1&&!ej(o))return r(bz(o));if(Vke(o)){const l=a?o[Z2.PATH]:i[0],c=a?o[Z2.PATTERN]:o[l];if(!Ps(c))throw new Error(vke(l));const f={keyId:G2(l),pattern:c};return n&&(f.searcher=X2(c,t)),f}let s={children:[],operator:i[0]};return i.forEach(l=>{const c=o[l];ml(c)&&c.forEach(f=>{s.children.push(r(f))})}),s};return ej(e)||(e=bz(e)),r(e)}function zke(e,{ignoreFieldNorm:t=mn.ignoreFieldNorm}){e.forEach(n=>{let r=1;n.matches.forEach(({key:o,norm:i,score:a})=>{const s=o?o.weight:null;r*=Math.pow(a===0&&s?Number.EPSILON:a,(s||1)*(t?1:i))}),n.score=r})}function qke(e,t){const n=e.matches;t.matches=[],Fi(n)&&n.forEach(r=>{if(!Fi(r.indices)||!r.indices.length)return;const{indices:o,value:i}=r;let a={indices:o,value:i};r.key&&(a.key=r.key.src),r.idx>-1&&(a.refIndex=r.idx),t.matches.push(a)})}function Uke(e,t){t.score=e.score}function Hke(e,t,{includeMatches:n=mn.includeMatches,includeScore:r=mn.includeScore}={}){const o=[];return n&&o.push(qke),r&&o.push(Uke),e.map(i=>{const{idx:a}=i,s={item:t[a],refIndex:a};return o.length&&o.forEach(l=>{l(i,s)}),s})}class ud{constructor(t,n={},r){this.options={...mn,...n},this.options.useExtendedSearch,this._keyStore=new wke(this.options.keys),this.setCollection(t,r)}setCollection(t,n){if(this._docs=t,n&&!(n instanceof J2))throw new Error(mke);this._myIndex=n||hz(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){Fi(t)&&(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){const n=[];for(let r=0,o=this._docs.length;r<o;r+=1){const i=this._docs[r];t(i,r)&&(this.removeAt(r),r-=1,o-=1,n.push(i))}return n}removeAt(t){this._docs.splice(t,1),this._myIndex.removeAt(t)}getIndex(){return this._myIndex}search(t,{limit:n=-1}={}){const{includeMatches:r,includeScore:o,shouldSort:i,sortFn:a,ignoreFieldNorm:s}=this.options;let l=Ps(t)?Ps(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t);return zke(l,{ignoreFieldNorm:s}),i&&l.sort(a),sz(n)&&n>-1&&(l=l.slice(0,n)),Hke(l,this._docs,{includeMatches:r,includeScore:o})}_searchStringList(t){const n=X2(t,this.options),{records:r}=this._myIndex,o=[];return r.forEach(({v:i,i:a,n:s})=>{if(!Fi(i))return;const{isMatch:l,score:c,indices:f}=n.searchIn(i);l&&o.push({item:i,idx:a,matches:[{score:c,value:i,norm:s,indices:f}]})}),o}_searchLogical(t){const n=wz(t,this.options),r=(s,l,c)=>{if(!s.children){const{keyId:u,searcher:d}=s,h=this._findMatches({key:this._keyStore.get(u),value:this._myIndex.getValueForItemAtKeyId(l,u),searcher:d});return h&&h.length?[{idx:c,item:l,matches:h}]:[]}const f=[];for(let u=0,d=s.children.length;u<d;u+=1){const h=s.children[u],p=r(h,l,c);if(p.length)f.push(...p);else if(s.operator===G0.AND)return[]}return f},o=this._myIndex.records,i={},a=[];return o.forEach(({$:s,i:l})=>{if(Fi(s)){let c=r(n,s,l);c.length&&(i[l]||(i[l]={idx:l,item:s,matches:[]},a.push(i[l])),c.forEach(({matches:f})=>{i[l].matches.push(...f)}))}}),a}_searchObjectList(t){const n=X2(t,this.options),{keys:r,records:o}=this._myIndex,i=[];return o.forEach(({$:a,i:s})=>{if(!Fi(a))return;let l=[];r.forEach((c,f)=>{l.push(...this._findMatches({key:c,value:a[f],searcher:n}))}),l.length&&i.push({idx:s,item:a,matches:l})}),i}_findMatches({key:t,value:n,searcher:r}){if(!Fi(n))return[];let o=[];if(ml(n))n.forEach(({v:i,i:a,n:s})=>{if(!Fi(i))return;const{isMatch:l,score:c,indices:f}=r.searchIn(i);l&&o.push({score:c,key:t,value:i,idx:a,norm:s,indices:f})});else{const{v:i,n:a}=n,{isMatch:s,score:l,indices:c}=r.searchIn(i);s&&o.push({score:l,key:t,value:i,norm:a,indices:c})}return o}}ud.version="6.6.2",ud.createIndex=hz,ud.parseIndex=jke,ud.config=mn,ud.parseQuery=wz,Bke(Rke);class Wke extends F_{setup(){const t=()=>{this.emit("preUpdate"),this.emit("update"),this.emit("postUpdate"),requestAnimationFrame(t)};t()}}const Op=new Wke;Ze.Vec2=void 0,(e=>{function t(p,m){return{x:p??0,y:m??0}}e.create=t;function n(p){return Math.sqrt(p.x*p.x+p.y*p.y)}e.magnitude=n;function r(p){const m=n(p);return m===0?t(0,0):{x:p.x/m,y:p.y/m}}e.normalize=r;function o(p,m){return{x:p.x+m.x,y:p.y+m.y}}e.add=o;function i(p,m){return{x:p.x-m.x,y:p.y-m.y}}e.subtract=i;function a(p,m){return{x:p.x*m.x,y:p.y*m.y}}e.multiply=a;function s(p,m){return{x:p.x*m,y:p.y*m}}e.scale=s;function l(p,m){return{x:p.x/m.x,y:p.y/m.y}}e.divide=l;function c(p,m){return n(i(p,m))}e.distance=c;function f(p,m,v){return{x:p.x+(m.x-p.x)*v,y:p.y+(m.y-p.y)*v}}e.lerp=f;function u(p,m){const v=Math.cos(m),g=Math.sin(m);return{x:p.x*v-p.y*g,y:p.x*g+p.y*v}}e.rotate=u;function d(p,m){const v=i(m,p);return e.normalize({x:-v.y,y:v.x})}e.normal=d;function h(p,m){return p.x*m.x+p.y*m.y}e.dot=h})(Ze.Vec2||(Ze.Vec2={}));class Kke extends EventTarget{constructor(){super(...arguments);Wn(this,"gamepadAvailable",!0);Wn(this,"gameActions",{});Wn(this,"keyboardState",{});Wn(this,"actions",{});Wn(this,"lastInputMethodUsed","km");Wn(this,"gamepad",null)}kbEvent(){this.changeLastInput("km")}getGamepads(){return navigator.getGamepads?navigator.getGamepads():(this.gamepadAvailable=!1,[])}gamepadEvent(){this.changeLastInput("gamepad")}mouseEvent(){this.changeLastInput("km")}changeLastInput(n){this.lastInputMethodUsed!==n&&(this.lastInputMethodUsed=n,this.dispatchEvent(new CustomEvent("change-input",{detail:n})))}getGamepad(){const n=this.getGamepads().filter(r=>r!==null);if(n.length>0)return n[0]}startListening(){this.updateGamepad();const n=Pr().inputsContainer;n.addEventListener("mousemove",r=>{this.mouseEvent()}),n.addEventListener("keydown",r=>{this.kbEvent();const o=this.getKeyboardState(r.key).current;this.keyboardState[r.key]={previous:o,current:!0}}),n.addEventListener("keyup",r=>{this.kbEvent();const o=this.getKeyboardState(r.key).current;this.keyboardState[r.key]={previous:o,current:!1}}),Op.on("preUpdate",()=>{this.update()})}updateGamepad(){const n=this.getGamepad();n?this.gamepad?this.updateAllNarratButtons(n,this.gamepad):this.gamepad=this.setupNarratGamepad(n):this.gamepad=null}setupNarratGamepad(n){return{id:n.id,gamepad:n,buttons:n.buttons.map((o,i)=>this.getNarratButtonFromGamepad(o,o,i))}}updateAllNarratButtons(n,r){for(const[o,i]of n.buttons.entries()){const a=r.buttons[o];a.previous=Zn(a.state),a.state=Zn(i),a.previous.pressed!==a.state.pressed&&this.gamepadEvent()}}getNarratButtonFromGamepad(n,r,o){return{index:o,state:Zn(r),previous:Zn(r)}}addAction(n){if(this.gameActions[n.id]=n,n.type==="button"){const r={config:n,active:!1,justPressed:!1,justReleased:!1};this.actions[n.id]={state:r,previous:Zn(r)}}else{const r={config:n,value:Ze.Vec2.create(0,0),fullState:{left:0,right:0,up:0,down:0}};this.actions[n.id]={state:r,previous:Zn(r)}}}getAnalog(n){return this.actions[n]||At(`Action ${n} does not exist`),this.actions[n].state}getButton(n){return this.actions[n]||At(`Action ${n} does not exist`),this.actions[n].state}getKeyboardState(n){return this.keyboardState[n]?this.keyboardState[n]:(this.keyboardState[n]={current:!1,previous:!1},this.keyboardState[n])}getGamepadState(n){return this.gamepad&&this.gamepad.buttons.length>n?{current:this.gamepad.buttons[n].state,previous:this.gamepad.buttons[n].previous}:null}debugGamepad(){if(this.gamepad)for(const[n,r]of this.gamepad.buttons.entries())r.state.pressed,r.previous.pressed}update(){this.updateGamepad(),this.debugGamepad();for(const n of Object.values(this.gameActions))if(n.type==="button"){const r=this.actions[n.id],o=Zn(r.state),i=r.state;r.previous=o,n.action==="press"&&(n.keybinds.some(s=>{let l=!1;if(typeof s.keyboardKey=="string"&&this.getKeyboardState(s.keyboardKey).current===!0&&(l=!0),typeof s.gamepadButton=="number"){const c=this.getGamepadState(s.gamepadButton);c&&c.current.pressed===!0&&(l=!0)}return l})?i.active=!0:i.active=!1,i.active&&!o.active?i.justPressed=!0:i.justPressed=!1,!i.active&&o.active?i.justReleased=!0:i.justReleased=!1)}else if(n.type==="analog"){const r=this.actions[n.id],o=r.state;Zn(r.state),r.previous=Zn(o);let i=Ze.Vec2.create(0,0);n.keybinds.forEach(a=>{this.getKeyboardState(a.left).current&&(o.fullState.left=1,i.x-=1),this.getKeyboardState(a.right).current&&(o.fullState.right=1,i.x+=1),this.getKeyboardState(a.up).current&&(o.fullState.up=1,i.y-=1),this.getKeyboardState(a.down).current&&(o.fullState.down=1,i.y+=1)}),i=Ze.Vec2.normalize(i),o.value=i}}}const vc=new Kke,Gke=[{id:"left",type:"button",action:"press",keybinds:[{keyboardKey:"ArrowLeft",gamepadButton:14}]},{id:"right",type:"button",action:"press",keybinds:[{keyboardKey:"ArrowRight",gamepadButton:15}]},{id:"up",type:"button",action:"press",keybinds:[{keyboardKey:"ArrowUp",gamepadButton:12}]},{id:"down",type:"button",action:"press",keybinds:[{keyboardKey:"ArrowDown",gamepadButton:13}]},{id:"continue",type:"button",action:"press",keybinds:[{keyboardKey:"Enter",gamepadButton:0}]},{id:"cancel",type:"button",action:"press",keybinds:[{keyboardKey:"Escape",gamepadButton:1}]},{id:"system",type:"button",action:"press",keybinds:[{keyboardKey:"n",gamepadButton:9}]},{id:"menu",type:"button",action:"press",keybinds:[{keyboardKey:"m",gamepadButton:8}]},{id:"previousTab",type:"button",action:"press",keybinds:[{keyboardKey:"p",gamepadButton:4}]},{id:"nextTab",type:"button",action:"press",keybinds:[{keyboardKey:"o",gamepadButton:5}]},{id:"subPreviousTab",type:"button",action:"press",keybinds:[{keyboardKey:"i",gamepadButton:6}]},{id:"subNextTab",type:"button",action:"press",keybinds:[{keyboardKey:"u",gamepadButton:7}]},{id:"viewportSelect",type:"button",action:"press",keybinds:[{keyboardKey:"v",gamepadButton:2}]},{id:"autoPlay",type:"button",action:"press",keybinds:[{keyboardKey:"a",gamepadButton:6}]},{id:"skip",type:"button",action:"press",keybinds:[{keyboardKey:"s",gamepadButton:7}]}],Nr=oo("inputs",{state:()=>({inputStack:[],baseInputListener:null,inputMode:"mk"}),actions:{setupInputs(){vc.addEventListener("change-input",e=>{this.inputMode=e.detail});for(const e of Gke)vc.addAction(e);this.listenToBaseNarratInputs(),Op.on("preUpdate",()=>{for(const[e,t]of Object.entries(vc.actions))if(t.state.config.type==="button"){const n=t;n.state.justPressed&&this.triggerListeners(e,"press",n),n.state.justReleased&&this.triggerListeners(e,"release",n)}else t.state.config.type})},listenToContainerInputs(){vc.startListening()},listenToBaseNarratInputs(){},triggerListeners(e,t,n){const r=this.inputStack[this.inputStack.length-1];if(r.actions[e]&&r.actions[e][t])if(n.state.config.type==="button"){const o=r.actions[e][t],i=n;o(n.state.config,i.state,i.previous)}else console.warn("Analog events not implemented yet")},getInputs(){return vc},registerInputListener(e,t){const r={id:`${Date.now()}-${Math.floor(Math.random()*1e8)}`,name:e,actions:t??{}};return this.inputStack.push(r),r},unregisterInputListener(e){const t=this.inputStack.findIndex(n=>n.id===e.id);if(t===-1)throw new Error("Input listener not found");this.inputStack.splice(t,1)},registerActions(e,t,n){e.actions[t]=n}}}),Jke=b.createElementVNode("h3",{class:"title"},"Jump to label",-1),Qke={key:0,class:"search-results"},Yke={key:1},Xke=[b.createElementVNode("h3",null,"No matches found",-1)],Zke=b.defineComponent({__name:"debug-jumping",emits:["close","jump"],setup(e,{emit:t}){const n=t;let r;const o=b.ref(null),i=b.ref(""),a=b.ref([]),s=b.ref(0),l=b.ref(null);function c(){const d=i.value,h=r.search(d);a.value=h.map(p=>p.item),a.value.length>0&&s.value>a.value.length-1&&(s.value=a.value.length-1)}function f(d){if(d===s.value)return{background:"var(--light-background)"}}const u=b.computed(()=>Object.keys(yn.script).sort());return b.onMounted(()=>{Gt().debugMode=!0,r=new ud(u.value,{includeScore:!0}),a.value=u.value,s.value=0,setTimeout(()=>{b.nextTick(()=>{l.value&&l.value.focus()})},10),o.value=Nr().registerInputListener("debug-jumping",{up:{press:()=>{s.value>0?s.value--:s.value=a.value.length-1}},down:{press:()=>{a.value.length>s.value+1?s.value++:s.value=0}},continue:{press:()=>{if(a.value.length>0&&s.value<a.value.length){const d=a.value[s.value];un().jumpToLabel(d),n("close")}}},escape:{press:()=>{n("close")}}})}),b.onUnmounted(()=>{o.value&&Nr().unregisterInputListener(o.value),Gt().debugMode=!1}),(d,h)=>(b.openBlock(),b.createBlock(Ds,{onClose:h[1]||(h[1]=p=>d.$emit("close")),containerCssClass:"jump-menu-container"},{header:b.withCtx(()=>[Jke]),body:b.withCtx(()=>[b.withDirectives(b.createElementVNode("input",{type:"text",class:"label-input input",ref_key:"search",ref:l,"onUpdate:modelValue":h[0]||(h[0]=p=>i.value=p),onInput:c},null,544),[[b.vModelText,i.value]]),a.value.length>0?(b.openBlock(),b.createElementBlock("div",Qke,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(a.value,(p,m)=>(b.openBlock(),b.createElementBlock("div",{class:"search-result",style:b.normalizeStyle(f(m)),key:m},b.toDisplayString(p),5))),128))])):(b.openBlock(),b.createElementBlock("div",Yke,Xke))]),_:1}))}}),kOe="",exe=b.defineComponent({components:{ModalWindow:Ds,DebugJumping:Zke},setup(){const e=Cr(),t=b.computed(()=>e.skills),n=b.computed(()=>e.skillChecks);return{skills:t,skillChecks:n}},data(){return{showDebug:!1,jumping:!1,inputListener:null}},mounted(){Pr().inputsContainer.addEventListener("keydown",t=>{this.jumping||(t.key==="d"&&this.toggle(),t.key==="j"&&this.jump())})},methods:{closeJumping(){this.jumping=!1},labelSelected(e){const t=e.target.value;un().jumpToLabel(t),this.close()},close(){this.showDebug=!1,this.endDebug()},closeErrors(){Gt().clearErrors()},open(){this.showDebug=!0,this.startDebug();const e=un(),t=Gt(),n=eo(),r=so(),o=Cr();this.$nextTick(()=>{new tB({target:this.$refs.variablesViewer,props:{content:{text:void 0,json:{data:this.variables,quests:n.quests,items:r.items,skills:o.skills,skillChecks:o.skillChecks}},onChange:i=>{e.overrideData(i.json.data),n.quests=i.json.quests,r.items=i.json.items,o.skills=i.json.skills,o.skillChecks=i.json.skillChecks}}}),new tB({target:this.$refs.stateViewer,props:{content:{text:void 0,json:t.getAllStates()},onChange:i=>{t.overrideStates(i.json)}}})})},toggle(){this.showDebug?this.close():this.open()},startDebug(){Gt().debugMode=!0},endDebug(){Gt().debugMode=!1},jump(){this.jumping=!0,this.startDebug()},save(){Gt().autoSaveGame({})},resetSave(){Ome()},resetGlobalSave(){Gt().resetGlobalSave()},wordCount(){const t=Object.values(this.script).reduce((n,r)=>(zi.log(n),n+this.countWordsInScriptBranch(r.branch)),0);alert(`You have ${t} words`)},countWordsInScriptLine(e){if(e.command.commandType==="talk"&&typeof e.command.args[2]=="string")return this.countWordsInString(e.command.args[2]);if(e.command.commandType==="text")return this.countWordsInString(e.code);if(e.command.commandType==="choice"){const t=e.command.staticOptions;let n=this.countWordsInScriptLine(t.prompt);return n+=t.choices.reduce((o,i)=>o+this.countWordsInString(i.prompt.code),0),t.choices.reduce((o,i)=>i.branch?o+this.countWordsInScriptBranch(i.branch):o,n)}if(e.command.commandType==="if"){const t=e.command.staticOptions;return[t.success,t.failure].reduce((r,o)=>o?r+this.countWordsInScriptBranch(o):r,0)}return 0},countWordsInString(e){return e.split(" ").length},countWordsInScriptBranch(e){return e.reduce((t,n)=>n?t+this.countWordsInScriptLine(n):t,0)},getPlayTimeString(){const e=ku(this.playTime.start,this.playTime.previousPlaytime);return ey(e/1e3)}},computed:{...t0(un,["data"]),...t0(Gt,["playTime","errors","playing","flowState"]),labels(){const e=this.script;return Object.keys(e).sort()},script(){return yn.script},variables(){return this.data}}}),xOe="",txe={class:"debug-menu"},nxe={key:0,class:"debug-info"},rxe=[b.createStaticVNode("<h3>Debug mode is ON</h3><ul><li><b>j</b>: Quick Label Jump</li><li><b>d</b>: Debug Menu</li><li><b>a</b>: Auto Play</li><li><b>s</b>: Skip</li><li><b>Space</b>: New Game</li><li><b>c</b>: Continue</li><li><b>Escape</b>: Toggle Menu</li></ul>",2)],oxe=b.createElementVNode("h3",{class:"title"},"Error(s)",-1),ixe=["innerHTML"],axe=b.createElementVNode("h3",{class:"title"},"Debug Menu!",-1),sxe={class:"container"},lxe=b.createElementVNode("option",{class:"option",selected:"",disabled:""},"Jump to a label",-1),cxe=["value"],uxe={class:"grid grid-cols-3 gap-4"},fxe=b.createElementVNode("h2",null,"Variables Editor",-1),dxe={ref:"variablesViewer"},hxe=b.createElementVNode("h2",null,"Skill Checks",-1),pxe={class:"table-auto"},mxe=b.createElementVNode("thead",null,[b.createElementVNode("tr",null,[b.createElementVNode("th",null,"Skill Check"),b.createElementVNode("th",null,"Happened"),b.createElementVNode("th",null,"Succeeded")])],-1),vxe=b.createElementVNode("h2",null,"App State editor (entire app and engine",-1),gxe=b.createElementVNode("h3",{style:{color:"pink"}}," Use for debugging, editing some of those things can cause issues ",-1),yxe={ref:"stateViewer"};function bxe(e,t,n,r,o,i){const a=b.resolveComponent("DebugJumping"),s=b.resolveComponent("ModalWindow");return b.openBlock(),b.createElementBlock("div",txe,[b.createElementVNode("button",{onClick:t[0]||(t[0]=(...l)=>e.open&&e.open(...l)),class:"button debug-button"},"Debug Menu"),!e.playing&&e.flowState==="menu"?(b.openBlock(),b.createElementBlock("div",nxe,rxe)):b.createCommentVNode("",!0),e.jumping?(b.openBlock(),b.createBlock(a,{key:1,onClose:e.closeJumping},null,8,["onClose"])):b.createCommentVNode("",!0),e.errors.length>0?(b.openBlock(),b.createBlock(s,{key:2,onClose:e.closeErrors,containerCssClass:"debug-menu-container"},{header:b.withCtx(()=>[oxe]),body:b.withCtx(()=>[b.createTextVNode(" There are errors in your dialogue scripts. Open the developer console for more details. "),b.createElementVNode("ul",null,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.errors,(l,c)=>(b.openBlock(),b.createElementBlock("li",{key:c,class:b.normalizeClass(["error-message list-disc",l.type==="error"?"error":"warning"]),innerHTML:l.text},null,10,ixe))),128))])]),_:1},8,["onClose"])):b.createCommentVNode("",!0),e.showDebug?(b.openBlock(),b.createBlock(s,{key:3,onClose:e.close,containerCssClass:"debug-menu-container"},{header:b.withCtx(()=>[axe]),body:b.withCtx(()=>[b.createElementVNode("div",sxe,[b.createTextVNode(" Hello this is the debug menu. "),b.createElementVNode("select",{class:"select",name:"label-selector",onChange:t[1]||(t[1]=l=>e.labelSelected(l))},[lxe,(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.labels,l=>(b.openBlock(),b.createElementBlock("option",{class:"option",value:l,key:l},b.toDisplayString(l),9,cxe))),128))],32),b.createElementVNode("div",uxe,[b.createElementVNode("button",{onClick:t[2]||(t[2]=(...l)=>e.wordCount&&e.wordCount(...l)),class:"button"},"Word Count"),b.createElementVNode("button",{onClick:t[3]||(t[3]=(...l)=>e.save&&e.save(...l)),class:"button"},"Save Game"),b.createElementVNode("button",{onClick:t[4]||(t[4]=(...l)=>e.resetSave&&e.resetSave(...l)),class:"button"},"Reset Save"),b.createElementVNode("button",{onClick:t[5]||(t[5]=(...l)=>e.resetGlobalSave&&e.resetGlobalSave(...l)),class:"button"}," Reset GLOBAL Save ")]),b.createElementVNode("h3",null,"Play time: "+b.toDisplayString(e.getPlayTimeString()),1),fxe,b.createElementVNode("div",dxe,null,512),hxe,b.createElementVNode("table",pxe,[mxe,b.createElementVNode("tbody",null,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.skillChecks,(l,c)=>(b.openBlock(),b.createElementBlock("tr",{key:c},[b.createElementVNode("td",null,b.toDisplayString(c),1),b.createElementVNode("td",null,b.toDisplayString(l.happened?"✅":"❌"),1),b.createElementVNode("td",null,b.toDisplayString(l.happened?l.succeeded?"✅":"❌":"NA"),1)]))),128))])]),vxe,gxe,b.createElementVNode("div",yxe,null,512)])]),_:1},8,["onClose"])):b.createCommentVNode("",!0)])}const wxe=Xa(exe,[["render",bxe]]),kxe=["src"],xxe=["innerHTML"],_xe=["innerHTML"],jxe=b.defineComponent({__name:"notification-toast",setup(e){const t=Go(),n=b.computed(()=>t.notifications),r=o=>{if(o.description)return{marginTop:"10px"}};return(o,i)=>(b.openBlock(),b.createBlock(b.TransitionGroup,{name:"notification",tag:"div",class:"notifications-holder"},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(n.value,(a,s)=>(b.openBlock(),b.createElementBlock("div",{class:"notification tile",key:s},[a.icon?(b.openBlock(),b.createElementBlock("img",{key:0,src:b.unref(ui)(a.icon),class:"notification-icon",style:b.normalizeStyle(r(a))},null,12,kxe)):b.createCommentVNode("",!0),b.createElementVNode("span",{innerHTML:a.text,class:"notification-text"},null,8,xxe),a.description?(b.openBlock(),b.createElementBlock("p",{key:1,innerHTML:a.description,class:"notification-description"},null,8,_xe)):b.createCommentVNode("",!0)]))),128))]),_:1}))}}),jOe="";function vl(e){if(!e.listener)return console.warn("No input listener provided for navigation"),null;const t=b.ref(-1),n=b.computed(()=>e.mode==="grid"?t.value%e.columns:0),r=b.ref([]),o=b.ref(vc.lastInputMethodUsed),i=b.ref(null);function a(){var D,L;return(D=e.container)!=null&&D.value?e.container.value.children:(L=e.elements)!=null&&L.value?e.elements.value.filter(M=>M!==null):[]}function s(){r.value=a()}const l=b.computed(()=>u(t.value));function c(D){return r.value?D>=0&&D<r.value.length:!1}function f(D){const L=t.value;if(c(D)&&(t.value=D,l.value)){o.value==="gamepad"&&l.value.classList.add("selected");const M=u(L);M&&L!==D&&M.classList.remove("selected"),e.onSelected&&e.onSelected(D)}}function u(D){return r.value?r.value[D]:null}function d(){r.value&&(t.value===0?e.loopForbidden||f(r.value.length-1):f(t.value-1))}function h(){r.value&&(t.value===r.value.length-1?e.loopForbidden||f(0):f(t.value+1))}function p(){if(!r.value)return;const D=e,L=t.value;!e.loopForbidden&&L<D.columns?f(r.value.length-1):f(t.value-e.columns)}function m(){if(!r.value)return;const D=e,L=t.value;!e.loopForbidden&&L>=r.value.length-D.columns?f(0):f(t.value+e.columns)}function v(){e.mode==="grid"?p():e.mode==="list"&&d()}function g(){e.mode==="grid"?m():e.mode==="list"&&h()}function y(){(e.mode==="grid"||e.mode==="list")&&d()}function w(){(e.mode==="grid"||e.mode==="list")&&h()}function k(){e.onChosen&&e.onChosen(t.value)}b.onMounted(()=>{I()});function $(){e.listener&&(e.onlyVertical||(delete e.listener.actions.left,delete e.listener.actions.right),e.onlyHorizontal||(delete e.listener.actions.up,delete e.listener.actions.down),e.noChoosing||delete e.listener.actions.continue,i.value&&vc.removeEventListener("change-input",i.value))}function j(){l.value&&l.value.classList.add("selected")}function E(){l.value&&l.value.classList.remove("selected")}function I(){e.listener&&(s(),i.value=D=>{o.value=D.detail,D.detail==="gamepad"?j():E()},vc.addEventListener("change-input",i.value),e.onlyVertical||(e.listener.actions.left={press:y},e.listener.actions.right={press:w}),e.onlyHorizontal||(e.listener.actions.up={press:v},e.listener.actions.down={press:g}),e.noChoosing||(e.listener.actions.continue={press:k}),f(0))}return b.onUnmounted(()=>{$()}),b.watch(()=>{var D;return(D=e.elements)==null?void 0:D.value},D=>{D&&s()}),{selectedIndex:t,selectedElement:l,currentColumn:n,buttonDown:g,buttonUp:v,buttonLeft:y,buttonRight:w,selectUp:p,selectDown:m,selectPrevious:d,selectNext:h,select:f,disable:$,mount:I}}const Sxe={class:"used-save-slot flex flex-row justify-between items-center grow"},Cxe={class:"flex flex-col save-slot-number-container"},$xe={class:"save-slot-number"},Txe={class:"flex flex-col justify-center save-info"},Oxe={key:1,class:"save-name"},Exe={class:"flex flex-col"},Axe={key:0},Mxe={key:1},Pxe={key:2},Nxe=["onClick"],tj=b.defineComponent({__name:"save-slot-ui",props:{saveSlot:{},id:{},actions:{},selected:{type:Boolean},inputListener:{}},emits:["choice","cancel"],setup(e,{expose:t,emit:n}){var k;const r=e,o=b.ref(null),i=b.ref(null),a=b.ref(null);t({slotContainer:a});const s=b.ref(((k=r.saveSlot.saveData)==null?void 0:k.metadata.name)??"Empty Save"),l=b.ref(0),c=b.computed(()=>r.saveSlot.saveData!==null),f=b.computed(()=>r.saveSlot.saveData),u=b.computed(()=>Mt().saves.mode),d=b.computed(()=>{const $=r.saveSlot.saveData;if($&&$.screen.layers[0]){const j=ad($.screen.layers[0]);if(j)return{backgroundImage:`url(${sd(j.background)})`}}return!1}),h=n;function p($){h("choice",$)}function m($){return f.value?ey(f.value.main.playTime/1e3):"00:00:00"}function v(){f.value&&Ime(r.saveSlot.id,s.value)}function g(){const $=Mt().saves.slots;let j="";const E=r.saveSlot.slotNumber;return E===0&&Mt().saves.mode==="manual"?"AUTO":($>=10&&E<10&&(j+="0"),$>=100&&E<100&&(j+="0"),j+E)}function y(){o.value=vl({mode:"list",container:i,listener:r.inputListener,onlyHorizontal:!0,onSelected:$=>{l.value=$},onChosen:$=>{p($)}}),o.value.mount()}function w(){o.value.disable(),o.value=null}return b.watch(()=>r.selected,($,j)=>{$&&!o.value&&y(),!$&&o.value&&w()}),b.onUnmounted(()=>{o.value&&w()}),($,j)=>(b.openBlock(),b.createElementBlock("div",{class:"save-slot flex flex-row",ref_key:"slotContainer",ref:a},[b.createElementVNode("div",Sxe,[b.createElementVNode("div",Cxe,[b.createElementVNode("h1",$xe,b.toDisplayString(g()),1)]),d.value?(b.openBlock(),b.createElementBlock("div",{key:0,class:"save-slot-screenshot",style:b.normalizeStyle(d.value)},null,4)):b.createCommentVNode("",!0),b.createElementVNode("div",Txe,[c.value?b.withDirectives((b.openBlock(),b.createElementBlock("input",{key:0,type:"text",class:"save-name","onUpdate:modelValue":j[0]||(j[0]=E=>s.value=E),onInput:v},null,544)),[[b.vModelText,s.value]]):(b.openBlock(),b.createElementBlock("h3",Oxe,b.toDisplayString(s.value),1)),b.createElementVNode("div",Exe,[f.value?(b.openBlock(),b.createElementBlock("p",Axe,b.toDisplayString(new Date(f.value.metadata.saveDate).toLocaleString()),1)):b.createCommentVNode("",!0),f.value?(b.openBlock(),b.createElementBlock("p",Mxe,"Play time: "+b.toDisplayString(m($.saveSlot)),1)):b.createCommentVNode("",!0),u.value==="game-slots"?(b.openBlock(),b.createElementBlock("p",Pxe,b.toDisplayString($.saveSlot.slotType==="auto"?"Auto Save":"Manual Save"),1)):b.createCommentVNode("",!0)])]),b.createElementVNode("div",{class:"flex flex-row",ref_key:"actionsContainer",ref:i},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList($.actions,(E,I)=>(b.openBlock(),b.createElementBlock("button",{class:b.normalizeClass(["button",{selected:$.selected&&I===l.value}]),onClick:()=>p(I),key:I},[b.createElementVNode("h3",null,b.toDisplayString(E),1)],10,Nxe))),128))],512)])],512))}}),SOe="",Ixe=b.createElementVNode("h3",{class:"title"},"Confirmation",-1),J0=b.defineComponent({__name:"yes-no",props:{prompt:{type:String,required:!0},onConfirm:{type:Function,required:!1},onRefuse:{type:Function,required:!1}},emits:["choice"],setup(e,{emit:t}){const n=b.ref(Nr().registerInputListener("yes-no",{cancel:{press:()=>{a(!1)}},continue:{press:()=>{a(!0)}}})),r=b.ref(null);vl({mode:"list",container:r,listener:n.value,onChosen:s=>{a(s===0)}});const o=e,i=t;function a(s){s===!0&&o.onConfirm?o.onConfirm():s===!1&&o.onRefuse&&o.onRefuse(),i("choice",s)}return b.onMounted(()=>{}),b.onUnmounted(()=>{n.value&&Nr().unregisterInputListener(n.value)}),(s,l)=>(b.openBlock(),b.createBlock(Ds,{onClose:l[2]||(l[2]=()=>a(!1)),containerCssClass:"yes-no-modal"},{header:b.withCtx(()=>[Ixe]),body:b.withCtx(()=>[b.createElementVNode("h3",null,b.toDisplayString(e.prompt),1),b.createElementVNode("div",{class:"flex justify-center",ref_key:"buttonsContainer",ref:r},[b.createElementVNode("button",{class:"button",onClick:l[0]||(l[0]=()=>a(!0))},"Yes"),b.createElementVNode("button",{class:"button",onClick:l[1]||(l[1]=()=>a(!1))},"No")],512)]),_:1}))}}),COe="",Dxe={class:"title"},Lxe={key:0},Rxe={class:"saves-section"},Bxe=b.createElementVNode("h3",{class:"saves-section-title"},"Auto save",-1),Fxe={class:"saves-section"},Vxe=b.createElementVNode("h3",{class:"saves-section-title"},"Manual Saves",-1),zxe={key:1,class:"saves-section"},qxe=b.createElementVNode("h3",{class:"saves-section-title"},"Save Slots",-1),Uxe={class:"saves-container flex flex-col"},kz=b.defineComponent({__name:"save-slots",props:{mode:{}},emits:["chosen","close"],setup(e,{emit:t}){const n=e,r=b.ref(Nr().registerInputListener("save-slots",{cancel:{press:()=>{I()}}})),o=b.ref(0),i=b.reactive([]),a=b.computed(()=>i.slice(0,1)),s=b.computed(()=>i.slice(1)),l=b.ref([]),c=b.ref([]),f=b.ref([]),u=b.ref([]),d=b.ref([]);b.ref({mode:"list",elements:u,listener:r.value,onlyVertical:!0,noChoosing:!0,onSelected:M=>{o.value=M}});const h=vl({mode:"list",elements:u,listener:r.value,onlyVertical:!0,noChoosing:!0,onSelected:M=>{o.value=M}}),p=b.computed(()=>{const M=o.value;return d.value.length<M+1?null:d.value[M].id}),m=b.reactive(n.mode==="load"?["Load","Delete"]:["Choose"]),v=b.computed(()=>Mt().saves.mode),g=b.reactive({prompt:"Are you sure you want to delete this save file?",saveToDelete:null,onConfirm:()=>{E(g.saveToDelete),g.saveToDelete=null},onRefuse:()=>{g.saveToDelete=null}}),y=b.reactive({prompt:"Are you sure you want to overwrite this save file?",saveToOverwrite:null,onConfirm:()=>{$(y.saveToOverwrite),y.saveToOverwrite=null},onRefuse:()=>{y.saveToOverwrite=null}}),w=t;b.onBeforeMount(()=>{ll().slots.forEach((H,N)=>{i[N]=H})});function k(){u.value=v.value==="manual"?[...c.value.map(F=>F.slotContainer),...f.value.map(F=>F.slotContainer)]:l.value.map(F=>F.slotContainer);const M=v.value==="manual"?[...a.value,...s.value]:i;d.value=M.map(F=>({id:F.id}))}b.onMounted(()=>{k()}),b.onUnmounted(()=>{h.value&&(h.value.disable(),h.value=null),r.value&&Nr().unregisterInputListener(r.value)});function $(M){w("chosen",{slotId:M})}function j(M){const F=L(M);if(F){if(Mt().saves.mode==="manual"&&F.slotType==="auto"){Gt().alert("Sorry","Can't delete the auto save slot!");return}g.saveToDelete=M}}function E(M){Nme(M);const F=i.find(H=>H.id===M);F&&(F.saveData=null),k()}function I(){w("close")}function D(M,F){const H=m[F];H==="Load"?$(M):H==="Delete"?j(M):H==="Choose"&&(y.saveToOverwrite=M)}function L(M){return i.find(F=>F.id===M)}return(M,F)=>(b.openBlock(),b.createBlock(Ds,{onClose:I,containerCssClass:"save-modal",cantClose:!1},{header:b.withCtx(()=>[b.createElementVNode("h3",Dxe,b.toDisplayString(M.mode==="load"?"Choose a save to load":"Pick a slot to save the game"),1)]),body:b.withCtx(()=>[v.value==="manual"?(b.openBlock(),b.createElementBlock("div",Lxe,[b.createElementVNode("div",Rxe,[Bxe,b.createVNode(b.TransitionGroup,{name:"list",tag:"div"},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(a.value,H=>(b.openBlock(),b.createBlock(tj,{key:H.id,saveSlot:H,id:H.id,actions:m,onChoice:N=>D(H.id,N),inputListener:r.value,selected:p.value===H.id,ref_for:!0,ref_key:"autoSlotsElements",ref:c},null,8,["saveSlot","id","actions","onChoice","inputListener","selected"]))),128))]),_:1})]),b.createElementVNode("div",Fxe,[Vxe,b.createVNode(b.TransitionGroup,{name:"list",tag:"div"},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(s.value,H=>(b.openBlock(),b.createBlock(tj,{key:H.id,saveSlot:H,id:H.id,actions:m,onChoice:N=>D(H.id,N),inputListener:r.value,selected:p.value===H.id,ref_for:!0,ref_key:"manualSlotsElements",ref:f},null,8,["saveSlot","id","actions","onChoice","inputListener","selected"]))),128))]),_:1})])])):(b.openBlock(),b.createElementBlock("div",zxe,[qxe,b.createElementVNode("div",Uxe,[b.createVNode(b.TransitionGroup,{name:"list",tag:"div"},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(i,H=>(b.openBlock(),b.createBlock(tj,{key:H.id,saveSlot:H,id:H.id,actions:m,onChoice:N=>D(H.id,N),selected:p.value===H.id,inputListener:r.value,ref_for:!0,ref_key:"saveSlotsElements",ref:l},null,8,["saveSlot","id","actions","onChoice","selected","inputListener"]))),128))]),_:1})])])),g.saveToDelete?(b.openBlock(),b.createBlock(J0,{key:2,prompt:g.prompt,onRefuse:g.onRefuse,onConfirm:g.onConfirm},null,8,["prompt","onRefuse","onConfirm"])):b.createCommentVNode("",!0),y.saveToOverwrite?(b.openBlock(),b.createBlock(J0,{key:3,prompt:y.prompt,onRefuse:y.onRefuse,onConfirm:y.onConfirm},null,8,["prompt","onRefuse","onConfirm"])):b.createCommentVNode("",!0)]),_:1}))}}),$Oe="",Hxe=b.defineComponent({__name:"start-menu-button",props:{button:{}},emits:["click"],setup(e){return(t,n)=>(b.openBlock(),b.createElementBlock("button",{class:b.normalizeClass(["button menu-button main-menu-button large override",t.button.cssClass]),onClick:n[0]||(n[0]=r=>t.$emit("click"))},b.toDisplayString(t.button.title),3))}});class nj extends F_{setup(t=!1){const r=t?"keydown":"keyup",o=cp(a=>{pa.emit("debouncedKeydown",a)},10,{isImmediate:!0,maxWait:10}),i=Pr().inputsContainer;i.addEventListener("keydown",a=>{pa.emit("keydown",a)}),i.addEventListener(r,a=>{o(a)})}}const pa=new nj,xz=oo("startMenu",{state:()=>({buttons:[]}),actions:{addButtonsFromPlugins(){yn.plugins.forEach(t=>{t.startMenuButtons&&t.startMenuButtons.forEach(n=>{const r=window.narrat.app;n.popupComponent&&r.component(n.popupComponent.name,n.popupComponent.component),this.buttons.push(n)})})}}}),Wxe={id:"game-menu"},Kxe={id:"game-header",class:"flex flex-col justify-between items-center"},Gxe={id:"game-title-container"},Jxe={id:"game-title-text"},Qxe={class:"title"},Yxe=b.defineComponent({__name:"StartMenu",setup(e){const t=b.ref(Nr().registerInputListener("start-menu",{})),n=b.ref([]),r=b.ref(null),o=b.ref(!1),i=b.ref(!1),a=b.ref(null),s=b.ref(null),l=b.ref(!1),c=b.ref(!1),f=b.ref(null),u=xz(),d=b.ref(!1),h=b.ref(null),p=b.computed(()=>u.buttons),m=vl({mode:"list",container:r,listener:t.value,onChosen:H=>{v(n.value[H])}});function v(H){switch(H.id){case"continue":E();break;case"new-game":g();break;case"load-game":I();break;case"exit":Gt().exitGame();break;default:w(H);break}}async function g(){o.value&&Mt().saves.mode==="manual"?c.value=!0:y()}async function y(){const H=Gt();if(s.value===null)if(Mt().saves.mode==="manual"){const N=m_();if(!N){At("No autosave found");return}s.value=N.id}else{const N=Mme();if(!N){At("No free slot found");return}s.value=N}c.value=!1,await H.startGame(s.value)}function w(H){const N=p.value.findIndex(ee=>ee.id===H.id),W=p.value[N];W.action&&W.action(),W.popupComponent&&(d.value=W)}function k(){d.value=!1}function $(){c.value=!1}async function j(){if(!s.value)return;const H=ep(s.value);if(!H){At("No save file found");return}Gt().loadGame(H,s.value)}function E(){typeof a.value=="string"&&(s.value=a.value,j())}function I(){l.value=!0}function D({slotId:H}){const N=ep(H);N&&N.saveData?(s.value=H,j()):g()}b.onMounted(()=>{const H=ll();H.slots.some(N=>N.saveData)&&(o.value=!0),(Mt().saves.mode==="manual"||H.slots.some(N=>!N.saveData))&&(i.value=!0),H.lastSaveSlot&&ep(H.lastSaveSlot)&&(a.value=H.lastSaveSlot),L(),f.value=pa.on("debouncedKeydown",N=>{N.key===" "&&y(),N.key==="c"&&E()}),b.nextTick(()=>{m.select(0)}),ha().options.defaultMusic&&(h.value=jme(ha().options.defaultMusic))});function L(){a.value&&n.value.push(M({id:"continue",title:"Continue",cssClass:"continue-button"})),i.value&&n.value.push(M({id:"new-game",title:"New Game",cssClass:"start-button"})),o.value&&n.value.push(M({id:"load-game",title:"Load Game",cssClass:"continue-button"}));for(const H of p.value)n.value.push({id:H.id,title:H.text,cssClass:`${H.id}-start-menu-button`});n.value.push(M({id:"exit",title:"Exit",cssClass:"exit-button"}))}function M({id:H,title:N,cssClass:W}){const ee=Mt().menuButtons[H];if(ee){let U=W;return ee.cssClass&&(U=`${ee.cssClass} ${W}`),{id:H,title:ee.text??N,cssClass:U}}return{id:H,title:N,cssClass:W}}b.onUnmounted(()=>{if(t.value&&Nr().unregisterInputListener(t.value),f.value&&pa.off("debouncedKeydown",f.value),typeof h.value=="number"){const H=ha().options.defaultMusic;Sme(H,h.value)}});const F=b.computed(()=>Mt().gameTitle);return(H,N)=>(b.openBlock(),b.createElementBlock("div",Wxe,[l.value?(b.openBlock(),b.createBlock(kz,{key:0,mode:"load",onChosen:D,onClose:N[0]||(N[0]=W=>l.value=!1)})):b.createCommentVNode("",!0),c.value?(b.openBlock(),b.createBlock(J0,{key:1,prompt:"This will override your previous autosave, are you sure?",onConfirm:y,onRefuse:$})):b.createCommentVNode("",!0),b.createElementVNode("div",Kxe,[b.createElementVNode("div",Gxe,[b.createElementVNode("h1",Jxe,b.toDisplayString(F.value),1)]),b.createElementVNode("div",{class:"flex flex-col start-menu-buttons-container",ref_key:"buttonsContainer",ref:r},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(n.value,W=>(b.openBlock(),b.createBlock(Hxe,{key:W.id,button:W,onClick:ee=>v(W)},null,8,["button","onClick"]))),128))],512)]),d.value?(b.openBlock(),b.createBlock(b.Teleport,{key:2,to:"#narrat-app-container"},[b.createVNode(Ds,{onClose:k,class:b.normalizeClass(`start-menu-popup-${d.value.id}`)},{header:b.withCtx(()=>[b.createElementVNode("h3",Qxe,b.toDisplayString(d.value.text),1)]),body:b.withCtx(()=>[d.value.popupComponent?(b.openBlock(),b.createBlock(b.resolveDynamicComponent(d.value.popupComponent.component),{key:0,onClose:k},null,32)):b.createCommentVNode("",!0)]),_:1},8,["class"])])):b.createCommentVNode("",!0)]))}}),TOe="",Xxe={class:"title"},Zxe=b.defineComponent({__name:"alert-modal",props:{title:{type:String,required:!1},text:{type:String,required:!1}},emits:["close"],setup(e,{emit:t}){const n=t;function r(){n("close")}const o=b.ref(Nr().registerInputListener("yes-no",{cancel:{press:()=>{r()}},continue:{press:()=>{r()}},system:{press:()=>{r()}}}));return b.onUnmounted(()=>{o.value&&Nr().unregisterInputListener(o.value)}),(i,a)=>(b.openBlock(),b.createBlock(Ds,{onClose:r,containerCssClass:"yes-no-modal"},{header:b.withCtx(()=>[b.createElementVNode("h3",Xxe,b.toDisplayString(e.title??"Alert"),1)]),body:b.withCtx(()=>[b.createElementVNode("h3",null,b.toDisplayString(e.text),1)]),_:1}))}}),OOe="";function Q0(e){const t=V0().characters[e];return t||At(`Character ${e} not found`),t}function e_e(e,t){const n=Q0(e);if(n&&(t||(t="default"),n.sprites)){const r=n.sprites[t];return r==="none"?void 0:typeof r=="string"?{image:r}:r}}function _z(e){return`${V0().config.imagesPath}${e}`}function t_e(e){return typeof e=="object"&&Object.hasOwn(e,"image")}function n_e(e){return typeof e=="object"&&Object.hasOwn(e,"video")}function rj(e){var t;return e?((t=Q0(e))==null?void 0:t.style)||{}:{}}const r_e=["src"],o_e=["autoplay","loop","muted"],i_e=["src"],a_e=b.defineComponent({__name:"dialog-picture",props:{picture:{},video:{},character:{},pose:{}},setup(e){const t=e,n=b.computed(()=>t.video),r=b.computed(()=>Pr().layoutMode),o=b.computed(()=>{var l;const a={};if(!t.character)return{};t.character&&(a[t.character]=!0);const s=Q0(t.character);return(l=s==null?void 0:s.style)!=null&&l.portraitCssClass&&(a[s.style.portraitCssClass]=!0),a}),i=b.computed(()=>{var h,p;const a=Pr(),s=Mt().layout;let l=0,c=0;const f=s.portraits;if(r.value==="vertical"){const m=((h=f.offset)==null?void 0:h.portrait)??{right:0,bottom:0};l=20+m.right,c=a.dialogHeight+m.bottom}else{const m=((p=f.offset)==null?void 0:p.landscape)??{right:0,bottom:0},v=Mt().dialogPanel.rightOffset??b_.dialogPanel.rightOffset;l=H0()-10+m.right+v,c=200+m.bottom}let u=s.portraits.width,d=s.portraits.height;return t.video&&(u=t.video.width??u,d=t.video.height??d),t.picture&&(u=t.picture.width??u,d=t.picture.height??d),{right:`${l}px`,bottom:`${c}px`,width:`${u}px`,height:`${d}px`}});return(a,s)=>{var l;return b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["dialog-picture override",o.value]),style:b.normalizeStyle(i.value)},[a.picture?(b.openBlock(),b.createElementBlock("img",{key:0,src:b.unref(ui)(b.unref(_z)((l=a.picture)==null?void 0:l.image)),class:b.normalizeClass(["picture override",o.value])},null,10,r_e)):b.createCommentVNode("",!0),n.value?(b.openBlock(),b.createElementBlock("video",{key:1,class:"picture override",autoplay:n.value.autoplay!==!1,loop:n.value.loop!==!1,muted:!!n.value.muted},[b.createElementVNode("source",{src:b.unref(ui)(b.unref(_z)(n.value.video))},null,8,i_e)],8,o_e)):b.createCommentVNode("",!0)],6)}}}),EOe="",s_e=["innerHTML"],l_e=["innerHTML"],c_e=["innerHTML"],u_e={key:1},f_e=["onClick","innerHTML"],d_e={key:1},h_e={key:2,class:"buttons-container"},p_e=b.defineComponent({__name:"dialog-box",props:{options:{},active:{type:Boolean},inputListener:{}},setup(e,{expose:t}){const n=b.ref(null),r=b.ref(""),o=b.ref(!1),i=b.ref(null),a=b.ref(null),s=b.ref(!1),l=b.ref(null),c=b.ref(null),f=b.ref(null),u=b.ref(null),d=b.ref(null),h=e,p=b.ref(null);h.active&&(p.value=vl({mode:"list",container:n,listener:h.inputListener,onlyVertical:!0,onChosen:oe=>{ke.value&&Z.value?$(Z.value[oe]):y(" ")}})),b.onMounted(()=>{W(),s.value=!0}),b.onUnmounted(()=>{m(),F(),A({unmounted:!0})});function m(){i.value&&(clearTimeout(i),i.value=null),v()}function v(){p.value&&(p.value.disable(),p.value=null)}function g(oe){y(oe.key)}function y(oe){if(!ke.value){s.value&&a&&oe===" "&&A({pressedSpace:!0});return}if(ke.value&&h.options.textField&&oe==="Enter"&&L(),ke.value&&!h.options.textField){let ye=-1;switch(oe){case" ":ye=0;break;case"1":ye=0;break;case"2":ye=1;break;case"3":ye=2;break;case"4":ye=3;break;case"5":ye=4;break;case"6":ye=5;break;case"7":ye=6;break;case"8":ye=7;break}ye!==-1&&Z.value&&ye<Z.value.length?$(Z.value[ye]):ye===0&&$(ye)}}function w(){ke.value||s.value&&a&&A({pressedSpace:!0})}function k(){o.value||$(0)}function $(oe){j();let ye;typeof oe=="object"?ye=oe.originalIndex:ye=oe,Gt().playerAnswered(ye)}function j(){m(),A({unmounted:!0}),o.value=!0}function E(oe){const ye={};return oe.allowed||(ye.pointerEvents="none",ye.textDecoration="line-through"),ye}function I(oe,ye){const fe={index:oe+1,choice:ye.choice};let Fe='<span class="choice-index">%{$index}. </span> <span class="choice-text">%{$choice}</span>';if(q2().choiceTextTemplate&&(Fe=q2().choiceTextTemplate),ye.flag){const Y=ez(ye.flag);Y!=null&&Y.textTemplate&&(Fe=Y.textTemplate)}return N7(fe,Fe)}function D(oe){const ye={};if(oe.allowed||(ye["strike-anim"]=!0),oe.seenBefore&&(ye["seen-before"]=!0),oe.flag){const fe=ez(oe.flag);fe!=null&&fe.cssClass&&(ye[fe.cssClass]=!0)}return ye}function L(){const oe=r.value;F(),Gt().playerAnswered(oe)}function M(){h.options.textField&&(i.value=setTimeout(()=>{ke.value&&(d.value=Nr().registerInputListener("text-field-input-grabber",{}),u.value&&u.value.focus())},100))}function F(){d.value&&(Nr().unregisterInputListener(d.value),d.value=null)}function H(oe,ye){const fe=h.options.text.substring(oe,ye);return a.value.text+=fe,ye}function N(oe){const ye=oe[0];return a.value.text+=ye,a.value.skippedChars+=ye.length,ye.length}function W(){if(!h.options.old)if(Yn().playMode==="skip")ee();else if(Mt().dialogPanel.animateText){a.value={text:"",index:0,startTime:Date.now(),timer:null,skippedChars:0,tags:Fme(h.options.text),finished:!1};const oe=a.value;oe.timer=setInterval(()=>{K()},30)}else O.value&&(l.value=setTimeout(()=>{A()},(Mt().dialogPanel.textSpeed??a0)*h.options.text.length))}function ee(){Yn().playMode==="skip"&&!h.options.old&&(O.value?c.value=setTimeout(()=>{A()},100):(Yn().toggleSkip(),A({unmounted:!0})))}function U(){Yn().playMode==="auto"&&!h.options.old&&O.value&&ke&&k()}function K(){const oe=a.value;if(!oe)return;const ye=oe.index,fe=Date.now()-oe.startTime;let Fe=!1,Y=Math.round(fe/(Mt().dialogPanel.textSpeed??a0))+oe.skippedChars;if(Y>h.options.text.length&&(Fe=!0,oe.finished=!0,Y=h.options.text.length),Y!==oe.index){let Q=ye;for(;oe.tags.length>0&&Y>=oe.tags[0].index;){Q=H(Q,oe.tags[0].index);const ve=N(oe.tags.shift());Q+=ve,Y+=ve}Q=H(Q,Y),oe.index=Q}Fe&&A()}function A({unmounted:oe,pressedSpace:ye}={}){M(),setTimeout(()=>{p.value&&p.value.select(0)},10),a.value&&(a.value.timer&&clearInterval(a.value.timer),a.value=null),l.value&&!ye&&clearTimeout(l.value),c.value&&clearTimeout(c.value),f.value&&clearTimeout(f.value),!oe&&!ye&&Yn().playMode!=="normal"&&O&&(f.value=setTimeout(()=>{k()},Yn().playMode==="auto"?Mt().dialogPanel.timeBetweenLines??Uf.common.dialogPanel.timeBetweenLines:0))}const T=b.computed(()=>h.options.title?" &nbsp;–&nbsp; ":""),x=b.computed(()=>({...rj(h.options.styleId).boxCss})),O=b.computed(()=>!Z.value&&!h.options.textField),S=b.computed(()=>{const oe={};return h.options.title&&(oe["dialog-box-followup"]=!0),h.options.old?oe["dialog-box-old"]=!0:oe["dialog-box-new"]=!0,oe}),C=b.computed(()=>{const oe=rj(h.options.styleId);return{color:oe.color,...oe.nameCss}}),_=b.computed(()=>rj(h.options.styleId).textCss),R=b.computed(()=>a.value?a.value.text:h.options.text),Z=b.computed(()=>{if(h.options.choices)return h.options.choices}),pe=b.computed(()=>Yn().playMode==="skip"),_e=b.computed(()=>Yn().playMode==="auto"),ke=b.computed(()=>h.active&&s.value&&!o.value&&!f.value&&!a.value&&h.options.interactive&&!Ne.value),ue=Gt(),Ne=b.computed(()=>ue.paused);return b.watch(()=>h.options,(oe,ye)=>{!ye.old&&oe.old&&a&&A({unmounted:!0})}),b.watch(pe,(oe,ye)=>{oe&&!ye&&ee()}),b.watch(_e,(oe,ye)=>{oe&&!ye&&U()}),t({keyboardEvent:g}),(oe,ye)=>{const fe=b.resolveDirective("visible");return b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["dialog-box w-full override",S.value]),style:b.normalizeStyle(x.value)},[b.createElementVNode("div",{class:"dialog-content",onClick:w},[oe.options.title?(b.openBlock(),b.createElementBlock("span",{key:0,class:"dialog-title override",style:b.normalizeStyle(C.value),innerHTML:oe.options.title},null,12,s_e)):b.createCommentVNode("",!0),b.createElementVNode("span",{class:"dialog-text dialog-separator override",style:b.normalizeStyle(_.value),innerHTML:T.value},null,12,l_e),b.createElementVNode("span",{class:b.normalizeClass(["dialog-text override",oe.options.cssClass]),style:b.normalizeStyle(_.value),innerHTML:R.value},null,14,c_e),oe.options.old?b.createCommentVNode("",!0):b.withDirectives((b.openBlock(),b.createElementBlock("div",u_e,[Z.value?(b.openBlock(),b.createElementBlock("div",{key:0,class:"dialog-choices",ref_key:"choicesDiv",ref:n},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(Z.value,(Fe,Y)=>(b.openBlock(),b.createElementBlock("p",{key:Y,style:b.normalizeStyle(E(Fe)),class:b.normalizeClass([D(Fe),"dialog-choice override"]),onClick:Q=>$(Fe),innerHTML:I(Y,Fe)},null,14,f_e))),128))],512)):oe.options.textField?(b.openBlock(),b.createElementBlock("div",d_e,[b.withDirectives(b.createElementVNode("input",{autofocus:"",type:"text",class:"label-input input",ref_key:"playerInput",ref:u,id:"player-input-field","onUpdate:modelValue":ye[0]||(ye[0]=Fe=>r.value=Fe)},null,512),[[b.vModelText,r.value]]),b.createElementVNode("button",{onClick:L,class:"button",id:"player-input-submit"}," Submit ")])):(b.openBlock(),b.createElementBlock("div",h_e,[b.createElementVNode("div",{onClick:ye[1]||(ye[1]=Fe=>$(0)),ref:"continue",class:"interact-button button override"}," Continue ",512)]))])),[[fe,ke.value]])])],6)}}}),AOe="",m_e=b.createElementVNode("div",{class:"anchor"},null,-1),v_e=b.defineComponent({__name:"game-dialog",props:{layoutMode:{},inGame:{type:Boolean},inputListener:{}},setup(e){const t=e,n=b.ref(Gt().inScript),r=b.ref(null),o=Pr(),i=un(),a=b.computed(()=>i.stack),s=Yn(),l=b.computed(()=>s.dialog),c=b.ref(null),f=b.ref(null),u=b.ref(null),d=b.computed(()=>{let M="0px";const F=Mt().layout.dialogBottomPadding;return typeof F=="number"?M=`${F}px`:typeof F=="string"&&(M=F),{paddingBottom:M}}),h=b.computed(()=>{if(l.value.length>0)return l.value[l.value.length-1]}),p=b.computed(()=>{if(h.value)return h.value.speaker}),m=b.computed(()=>{if(h.value)return h.value.pose}),v=b.computed(()=>{if(h.value){const M=p.value;let F=m.value;return M?(F||(F="idle"),F):void 0}}),g=b.computed(()=>{if(!v.value)return;const M=p.value;return e_e(M,v.value)}),y=b.computed(()=>{const M=g.value;if(t_e(M))return M}),w=b.computed(()=>{const M=g.value;if(n_e(M))return M}),k=b.computed(()=>o.dialogWidth),$=b.computed(()=>Gt().inScript);b.watch($,M=>{M?n.value=!0:Yn().playMode!=="normal"?(Yn().playMode==="skip"&&(Yn().playMode="normal"),r.value=setTimeout(()=>{n.value=!1},500)):n.value=!1}),b.onMounted(()=>{t.inputListener.actions.autoPlay={press:()=>{Yn().toggleAutoPlay()}},t.inputListener.actions.skip={press:()=>{Yn().toggleSkip()}};const M=F=>{f.value&&f.value.keyboardEvent&&f.value.keyboardEvent(F)};M.value=pa.on("debouncedKeydown",M)}),b.onUnmounted(()=>{t.inputListener&&(delete t.inputListener.actions.autoPlay,delete t.inputListener.actions.skip),u.value&&pa.off("debouncedKeydown",u.value),r.value&&clearTimeout(r.value)});const j=b.computed(()=>{let M;const F=`${Pr().dialogHeight}px`,H={};if(Pr().overlayMode){H.position="absolute";const N=Mt().dialogPanel.rightOffset??Uf.common.dialogPanel.rightOffset;H.right=`${N}px`;const W=Mt().dialogPanel.bottomOffset??Uf.common.dialogPanel.bottomOffset;H.bottom=`${W}px`}return{...H,width:t.layoutMode==="horizontal"?`${k.value}px`:"100%",height:F,transform:M,transformOrigin:"right"}});function E(){Yn().toggleAutoPlay()}function I(){Yn().toggleSkip()}function D(M,F){const H=Q0(M.speaker);let N=(H==null?void 0:H.name)??"Missing Character";return F>=1&&l.value[F-1].speaker===M.speaker&&(N=void 0),M.choices&&M.choices.forEach(W=>{W.choice=Ts(W.choice)}),{title:N??"",text:M.text,cssClass:M.cssClass,styleId:M.speaker,choices:M.choices,old:F<l.value.length-1,interactive:M.interactive,textField:M.textField}}function L(M){return M===s.dialog.length-1&&a.value.length>0}return b.watch(l.value,M=>{if(c.value){const F=c.value;F.scrollTop=F.scrollHeight+1e8}}),(M,F)=>(b.openBlock(),b.createElementBlock(b.Fragment,null,[b.createVNode(b.Transition,{name:"fade"},{default:b.withCtx(()=>[(y.value||w.value)&&b.unref(o).showDialog?(b.openBlock(),b.createBlock(a_e,{key:0,picture:y.value,video:w.value,character:p.value,pose:m.value},null,8,["picture","video","character","pose"])):b.createCommentVNode("",!0)]),_:1}),b.createVNode(b.Transition,{name:"dialog-transition"},{default:b.withCtx(()=>[M.inGame&&b.unref(o).showDialog?(b.openBlock(),b.createElementBlock("div",{key:0,class:"dialog override",ref_key:"dialogRef",ref:c,style:b.normalizeStyle(j.value)},[b.createVNode(b.TransitionGroup,{name:"list",tag:"div",class:"dialog-container w-full override",style:b.normalizeStyle(d.value)},{default:b.withCtx(()=>[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(l.value,(H,N)=>(b.openBlock(),b.createBlock(p_e,{ref_for:!0,ref:W=>f.value=W,key:H.id,options:D(H,N),active:L(N),inputListener:M.inputListener},null,8,["options","active","inputListener"]))),128))]),_:1},8,["style"]),(b.openBlock(),b.createBlock(b.Teleport,{to:"#narrat-app"},[b.createElementVNode("div",{class:"auto-skip-buttons flex"},[b.createElementVNode("div",{class:"button menu-toggle-button auto-button auto",onClick:E}," Auto "),b.createElementVNode("div",{class:"button menu-toggle-button auto-button skip",onClick:I}," Skip ")])])),m_e],4)):b.createCommentVNode("",!0)]),_:1})],64))}}),MOe="",g_e=["id"],y_e=["src"],b_e={class:"tab-title"},jz=b.defineComponent({__name:"tab-selector",props:{tab:{},active:{type:Boolean}},emits:["click"],setup(e,{emit:t}){const n=e,r=t,o=b.computed(()=>n.active?"tab-active":"tab-inactive");function i(){r("click")}return(a,s)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["tab",o.value]),id:`tab-${a.tab.id}`,onClick:i},[b.createElementVNode("div",{class:b.normalizeClass(["tab-title-container",a.active?"active":""])},[a.tab.icon?(b.openBlock(),b.createElementBlock("img",{key:0,src:a.tab.icon,alt:"tab icon",class:"tab-icon"},null,8,y_e)):b.createCommentVNode("",!0),b.createElementVNode("span",b_e,b.toDisplayString(a.tab.label),1)],2)],10,g_e))}}),POe="",w_e={class:"tabs-controller"},k_e={key:0,class:"tabs-controller__tabs"},x_e={key:1,class:"tab-content"},__e={key:2},j_e=[b.createElementVNode("div",{class:"tab-content__empty"},[b.createElementVNode("p",null,"No tab selected")],-1)],S_e=b.defineComponent({__name:"TabsController",props:{tabs:{},defaultTab:{}},emits:["tab-change","close"],setup(e,{emit:t}){const n=b.ref(Nr().registerInputListener("tabs-controller",{cancel:{press:()=>{r("close")}},system:{press:()=>{r("close")}},menu:{press:()=>{r("close")}},previousTab:{press:()=>{i.value>0&&a(i.value-1)}},nextTab:{press:()=>{i.value<o.tabs.length-1&&a(i.value+1)}}})),r=t,o=e,i=b.ref(o.defaultTab);function a(l){i.value=l,r("tab-change",l)}const s=b.computed(()=>o.tabs[i.value]);return b.onUnmounted(()=>{n.value&&(Nr().unregisterInputListener(n.value),n.value=null)}),(l,c)=>(b.openBlock(),b.createElementBlock("div",w_e,[l.tabs.length>1?(b.openBlock(),b.createElementBlock("div",k_e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(l.tabs,(f,u)=>(b.openBlock(),b.createBlock(jz,{key:f.id,tab:f,active:u===i.value,onClick:()=>a(u),inputListener:n.value},null,8,["tab","active","onClick","inputListener"]))),128))])):b.createCommentVNode("",!0),s.value?(b.openBlock(),b.createElementBlock("div",x_e,[s.value?(b.openBlock(),b.createBlock(b.resolveDynamicComponent(s.value.component),{key:0,inputListener:n.value,onClose:c[0]||(c[0]=f=>l.$emit("close"))},null,40,["inputListener"])):b.createCommentVNode("",!0)])):(b.openBlock(),b.createElementBlock("div",__e,j_e))]))}}),IOe="",C_e={class:"menu-container"},$_e=["onClick","id"],T_e={class:"title"},O_e=b.defineComponent({__name:"menu-buttons",setup(e){const t=Qo(),n=b.ref(null);b.onMounted(()=>{yn.callHook("onGameMounted")}),b.onUnmounted(()=>{n.value&&pa.off("keydown",n.value),yn.callHook("onGameUnmounted")});function r(f){Qo().activeMenu=f}const o=b.computed(()=>t.menus),i=b.computed(()=>t.menu),a=b.computed(()=>{var f;return(((f=i.value)==null?void 0:f.tabs)??[]).filter(u=>u.condition?u.condition():!0).map(u=>({id:u.id,label:u.text,component:u.component}))});function s(){t.closeMenu()}function l(f){t.setActiveTab(f)}function c(){return s()}return(f,u)=>(b.openBlock(),b.createElementBlock("div",C_e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(o.value,(d,h)=>(b.openBlock(),b.createElementBlock("button",{key:d.id,onClick:p=>r(d.id),id:d.cssId??`${h}-menu-button`,class:"button menu-toggle-button"},b.toDisplayString(d.label),9,$_e))),128)),i.value?(b.openBlock(),b.createBlock(b.Teleport,{key:0,to:"#narrat-app-container"},[b.createVNode(Ds,{containerCssClass:{[i.value.cssClass]:!0,"menu-modal":!0},onClose:s},{header:b.withCtx(()=>{var d;return[b.createElementVNode("h3",T_e,b.toDisplayString(((d=b.unref(t).tab)==null?void 0:d.text)??i.value.label),1)]}),body:b.withCtx(()=>[b.createVNode(S_e,{onTabChange:l,onClose:c,tabs:a.value,defaultTab:i.value.activeTab},null,8,["tabs","defaultTab"])]),_:1},8,["containerCssClass"])])):b.createCommentVNode("",!0)]))}}),DOe="";function Sz(e){const t={};return e.selected&&(t.selected=!0),e.clickable&&e.viewportClickable&&!e.transitioning&&(t.interactable=!0),(!e.clickable||!e.viewportClickable)&&(t.disabled=!0),e.transitioning&&(t.transitioning=!0),e.greyed&&(t.greyed=!0),e.hidden&&(t.hidden=!0),e.cssClass&&(t[e.cssClass]=!0),t}function E_e(e,t,n){return{selected:t,clickable:e.onClick!==void 0,viewportClickable:m0(e),transitioning:n,greyed:!1,hidden:!1,cssClass:e.cssClass}}function A_e(e,t,n){const r=pc(e),o=li().getButtonState(e);return{selected:t,clickable:li().isButtonInteractible(e),viewportClickable:m0(r),transitioning:n,greyed:o==="greyed",hidden:o==="hidden"||o===!1,cssClass:r.cssClass}}function M_e(e,t,n){return Sz(A_e(e,t,n))}function P_e(e,t,n){return Sz(E_e(e,t,n))}const N_e=["id"],I_e=["innerHTML"],D_e=b.defineComponent({__name:"screen-object",props:{screenObject:{},layerSelected:{type:Boolean},transitioning:{type:Boolean},activeInteractive:{}},setup(e){const t=e,n=Jo();function r(s){t.transitioning||t.screenObject.onClick&&n.clickObject(s)}const o=b.computed(()=>{if(!t.layerSelected)return!1;const s=t.activeInteractive;return s.type==="screenObject"&&s.id===t.screenObject.id}),i=b.computed(()=>P_e(t.screenObject,o.value,t.transitioning)),a=b.computed(()=>{const s={};t.screenObject.opacity!==1&&(s.opacity=t.screenObject.opacity);let l=t.screenObject.x,c=t.screenObject.y,f=t.screenObject.width,u=t.screenObject.height;if(t.screenObject.anchor){const h=t.screenObject.anchor;l=t.screenObject.x-f*h.x,c=t.screenObject.y-u*h.y,s.transformOrigin=`${h.x*100}% ${h.y*100}%`}t.screenObject.scale&&(f=f*t.screenObject.scale,u=u*t.screenObject.scale);const d={...s,left:`${l}px`,top:`${c}px`,width:`${f}px`,height:`${u}px`};return kye(t.screenObject)&&(d.backgroundImage=`url(${sd(t.screenObject.image)})`),d});return(s,l)=>{const c=b.resolveComponent("ScreenObject",!0);return b.openBlock(),b.createElementBlock("div",{tabindex:"-1",class:b.normalizeClass(["viewport-object",i.value]),id:`viewport-object-${t.screenObject.id}`,onClick:l[0]||(l[0]=f=>r(s.screenObject)),style:b.normalizeStyle(a.value)},[b.createElementVNode("span",{innerHTML:t.screenObject.text?b.unref(Ts)(t.screenObject.text):void 0},null,8,I_e),(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(t.screenObject.children,f=>(b.openBlock(),b.createBlock(c,{transitioning:s.transitioning,key:f.id,screenObject:f},null,8,["transitioning","screenObject"]))),128))],14,N_e)}}}),LOe="",L_e=["id","innerHTML"],R_e=b.defineComponent({__name:"viewport-button",props:{id:{},layerSelected:{type:Boolean},transitioning:{type:Boolean},activeInteractive:{}},setup(e){const t=e,n=li();b.computed(()=>n.getButtonState(t.id));const r=pc(t.id),o=r.background?sd(r.background):null,i=b.computed(()=>{if(!t.layerSelected)return!1;const f=t.activeInteractive;return f.type==="button"&&f.id===t.id});b.computed(()=>n.isButtonClickable(t.id));const a=b.computed(()=>{const f=r.text??"";return Ts(f)}),s=b.computed(()=>M_e(t.id,i.value,t.transitioning)),l=b.computed(()=>{const f={};r.position.width&&(f.width=`${r.position.width}px`),r.position.height&&(f.height=`${r.position.height}px`),r.background&&(f.backgroundImage=`url(${o})`);let u=r.position.left,d=r.position.top;return r.anchor&&(u=r.position.left-r.position.width*r.anchor.x,d=r.position.top-r.position.height*r.anchor.y),{...f,left:`${u}px`,top:`${d}px`}});function c(){n.clickOnButton(t.id)}return(f,u)=>(b.openBlock(),b.createElementBlock("div",{tabindex:"-1",class:b.normalizeClass(["viewport-button",s.value]),id:`viewport-button-${f.id}`,onClick:u[0]||(u[0]=d=>c()),style:b.normalizeStyle(l.value),innerHTML:a.value},null,14,L_e))}}),ROe="",B_e=["id"],F_e=["id","loop","muted"],V_e=["src"],z_e=["id"],oj=b.defineComponent({__name:"screen-layer",props:{layer:{},layerIndex:{},transitioning:{type:Boolean},activeInteractive:{}},setup(e){const t=e,n=Gt(),r=Jo(),o=b.computed(()=>!!(t.activeInteractive&&t.activeInteractive.layer===t.layerIndex)),i=b.computed(()=>r.tree.filter(v=>v.layer===t.layerIndex)),a=b.computed(()=>Mt().layout.backgrounds.width),s=b.computed(()=>Mt().layout.backgrounds.height),l=b.computed(()=>t.layer),c=b.computed(()=>{const v=ad(l.value);return v||At(`Screen ${l.value} doesn't have a config`),v}),f=b.computed(()=>n.isInGame),u=b.computed(()=>c.value.buttons||[]),d=b.computed(()=>c.value.video),h=b.computed(()=>({width:`${a.value}px`,height:`${s.value}px`})),p=b.computed(()=>{let v=`url(${sd(c.value.background)})`;return c.value.background===y_&&(v=void 0),{backgroundImage:v,position:"absolute",left:0,top:0,width:`${a.value}px`,height:`${s.value}px`}}),m=b.computed(()=>({position:"absolute",left:0,top:0,width:`${a.value}px`,height:`${s.value}px`}));return(v,g)=>f.value?(b.openBlock(),b.createElementBlock("div",{key:0,class:"viewport-layer",id:`viewport-layer-${l.value}`,style:b.normalizeStyle(h.value)},[d.value?(b.openBlock(),b.createElementBlock("video",{key:0,class:"viewport-layer-background",id:`viewport-layer-background-${l.value}`,style:b.normalizeStyle(m.value),autoplay:"",loop:d.value.loop!==!1,muted:!!d.value.muted},[b.createElementVNode("source",{src:b.unref(ui)(c.value.background)},null,8,V_e)],12,F_e)):(b.openBlock(),b.createElementBlock("div",{key:1,class:"viewport-layer-background",id:`viewport-layer-background-${l.value}`,style:b.normalizeStyle(p.value)},null,12,z_e)),(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(u.value,y=>(b.openBlock(),b.createBlock(R_e,{key:y,id:y,layerSelected:o.value,transitioning:v.transitioning,activeInteractive:v.activeInteractive},null,8,["id","layerSelected","transitioning","activeInteractive"]))),128)),(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(i.value,y=>(b.openBlock(),b.createBlock(D_e,{key:y.id,screenObject:y,transitioning:v.transitioning,layerSelected:o.value,activeInteractive:v.activeInteractive},null,8,["screenObject","transitioning","layerSelected","activeInteractive"]))),128))],12,B_e)):b.createCommentVNode("",!0)}}),BOe="",q_e=b.defineComponent({__name:"NarratTransition",props:{name:{type:String,required:!0},duration:{type:Number,required:!0},delay:Number},emits:["complete"],setup(e,{emit:t}){b.useSlots();const n=t,r=e,o=b.ref("start"),i=b.reactive({oldSlotClasses:{},oldSlotStyle:{},newSlotClasses:{},newSlotStyle:{}});return b.onMounted(async()=>{const a=`narrat-transition-${r.name}`;i.newSlotClasses={[`${a}-enter-from`]:!0},i.oldSlotClasses={[`${a}-leave-active`]:!0},await _i(30),i.oldSlotStyle={transitionDuration:`${r.duration/1e3}s`},i.newSlotStyle={transitionDuration:`${r.duration/1e3}s`},i.oldSlotClasses[`${a}-leave-to`]=!0,i.newSlotClasses[`${a}-enter-active`]=!0,await _i(r.delay??0),delete i.newSlotClasses[`${a}-enter-from`],await _i(r.duration),o.value="end",n("complete")}),(a,s)=>(b.openBlock(),b.createElementBlock(b.Fragment,null,[o.value!=="end"?(b.openBlock(),b.createElementBlock("div",{key:0,class:b.normalizeClass(["transition-holder",i.oldSlotClasses]),style:b.normalizeStyle(i.oldSlotStyle)},[b.renderSlot(a.$slots,"oldElement")],6)):b.createCommentVNode("",!0),b.createElementVNode("div",{class:b.normalizeClass(["transition-holder",i.newSlotClasses]),style:b.normalizeStyle(i.newSlotStyle)},[b.renderSlot(a.$slots,"newElement")],6)],64))}}),FOe="";function Cz(e,t,n){return e<t?t:e>n?n:e}const U_e=b.defineComponent({__name:"screens",props:{inputListener:{}},setup(e){const t=e,n=Gt(),r=li(),o=Jo(),i=b.ref(0),a=b.computed(()=>r.nonEmptyLayers),s=b.computed(()=>{const p=[];return a.value.reduce((m,v,g)=>{const w=ad(v.screen).buttons;if(w)for(const $ of w)r.isButtonClickable($)&&m.push({id:$,type:"button",layer:g});const k=o.tree.filter($=>$.layer===g);for(const $ of k)o.isScreenObjectClickable($)&&m.push({id:$.id,type:"screenObject",layer:g});return m},p)}),l=b.computed(()=>{if(s.value.length===0)return null;let p=i.value;return p>s.value.length-1&&(p=s.value.length-1),s.value[p]}),c=b.computed(()=>Mt().layout.backgrounds.width),f=b.computed(()=>Mt().layout.backgrounds.height),u=b.computed(()=>n.isInGame);function d(p){r.finishTransition(p)}const h=b.computed(()=>{const p=c.value;return{height:`${f.value}px`,width:`${p}px`}});return b.onMounted(()=>{b.nextTick(()=>{if(t.inputListener){const p=t.inputListener.actions;p.previousTab={press:()=>{i.value>0?i.value--:i.value=s.value.length-1,i.value=Cz(i.value,0,s.value.length-1)}},p.left=p.previousTab,p.nextTab={press:()=>{i.value<s.value.length-1?i.value++:i.value=0,i.value=Cz(i.value,0,s.value.length-1)}},p.right=p.nextTab,p.viewportSelect={press:()=>{if(l.value){const m=l.value;m.type==="button"?r.clickOnButton(m.id):m.type==="screenObject"&&o.clickObject(o.getObject(m.id))}}}}})}),b.onUnmounted(()=>{t.inputListener&&(delete t.inputListener.actions.previousTab,delete t.inputListener.actions.left,delete t.inputListener.actions.nextTab,delete t.inputListener.actions.right)}),(p,m)=>u.value?(b.openBlock(),b.createElementBlock("div",{key:0,class:"viewport",id:"narrat-viewport",style:b.normalizeStyle(h.value)},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(a.value,(v,g)=>(b.openBlock(),b.createElementBlock("div",{key:v.screen??"",class:"layer-container"},[v.transition?(b.openBlock(),b.createBlock(q_e,{key:0,name:v.transition.transition,duration:v.transition.duration,delay:v.transition.delay,onComplete:()=>d(g)},{oldElement:b.withCtx(()=>[v.transition.oldScreen?(b.openBlock(),b.createBlock(oj,{key:0,layer:v.transition.oldScreen,layerIndex:g,transitioning:!0},null,8,["layer","layerIndex"])):b.createCommentVNode("",!0)]),newElement:b.withCtx(()=>[v.screen?(b.openBlock(),b.createBlock(oj,{key:0,layer:v.screen,layerIndex:g,transitioning:!0},null,8,["layer","layerIndex"])):b.createCommentVNode("",!0)]),_:2},1032,["name","duration","delay","onComplete"])):v.screen?(b.openBlock(),b.createBlock(oj,{key:1,layer:v.screen,layerIndex:g,transitioning:!1,activeInteractive:l.value},null,8,["layer","layerIndex","activeInteractive"])):b.createCommentVNode("",!0)]))),128))],4)):b.createCommentVNode("",!0)}}),VOe="",H_e=b.defineComponent({data(){return{}},methods:{getStatImage(e){return ui(this.statsConfig[e].icon)}},computed:{...t0(qa,["hudStats"]),...t0(Pr,["layoutMode"]),statsConfig(){return Mt().hudStats},stats(){return this.hudStats},hudStyle(){let e="0";return this.layoutMode==="horizontal"&&(e=`${H0()+(Mt().dialogPanel.rightOffset??Uf.common.dialogPanel.rightOffset)}px`),{right:e}}}}),zOe="",W_e=["src"],K_e={class:"bold hud-text"};function G_e(e,t,n,r,o,i){return b.openBlock(),b.createElementBlock("div",{class:"hud",style:b.normalizeStyle(e.hudStyle)},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.stats,(a,s)=>(b.openBlock(),b.createElementBlock("div",{key:s,class:"hud-stat"},[b.createElementVNode("img",{class:"hud-icon",src:e.getStatImage(s)},null,8,W_e),b.createElementVNode("span",K_e,b.toDisplayString(e.statsConfig[s].name),1),b.createTextVNode(": "),b.createElementVNode("span",null,b.toDisplayString(Math.floor(a.value*100)/100),1)]))),128))],4)}const J_e=Xa(H_e,[["render",G_e]]),Q_e={key:0,class:"auto-play-feedback-container"},Y_e=b.defineComponent({__name:"AutoPlayFeedback",setup(e){const t=Yn(),n=b.computed(()=>t.playMode==="auto"),r=b.computed(()=>t.playMode==="skip"),o=b.computed(()=>n.value?"auto-play-feedback-auto":r.value?"auto-play-feedback-skip":{}),i=b.computed(()=>n.value?"Auto Play":r.value?"Skip":"");return(a,s)=>i.value?(b.openBlock(),b.createElementBlock("div",Q_e,[b.createElementVNode("div",{class:b.normalizeClass(["auto-play-feedback",o.value])},b.toDisplayString(i.value),3)])):b.createCommentVNode("",!0)}}),qOe="",X_e=b.defineComponent({__name:"in-game",setup(e){const t=b.ref(null),n=Gt(),r=Pr(),o=b.computed(()=>r.layoutMode),i=b.computed(()=>n.saving),a=b.ref(null),s=Yn(),l=b.ref(null),c=b.computed(()=>i.value&&!i.value.withPrompt||i.value&&a.value),f=b.computed(()=>{let p="row";return o.value==="vertical"&&(p="column"),{flexDirection:p}});function u(p){if(a.value=null,p===null){Gt().finishManualSave(p,!1);return}Gt().finishManualSave(p,!0)}function d(){a.value=!0}function h(){a.value=!1,n.finishManualSave(null,!1),a.value=null}return b.onBeforeMount(()=>{t.value=Nr().registerInputListener("in-game",{system:{press:()=>{Qo().openMenu("system")}},menu:{press:()=>{Qo().openMenu("menu")}}})}),b.onMounted(()=>{l.value=pa.on("debouncedKeydown",p=>{Gt().debugMode||((p.key==="a"||p.key==="A")&&s.toggleAutoPlay(),(p.key==="s"||p.key==="S")&&s.toggleSkip())})}),b.onUnmounted(()=>{t.value&&Nr().unregisterInputListener(t.value),l.value&&pa.off("debouncedKeydown",l.value)}),(p,m)=>(b.openBlock(),b.createElementBlock("div",{class:"game",style:b.normalizeStyle(f.value)},[b.createVNode(J_e),b.createVNode(O_e,{class:"menu-toggle"}),b.createVNode(U_e,{inputListener:t.value},null,8,["inputListener"]),b.unref(r).showDialog?(b.openBlock(),b.createBlock(v_e,{key:0,inGame:!0,layoutMode:o.value,inputListener:t.value},null,8,["layoutMode","inputListener"])):b.createCommentVNode("",!0),c.value?(b.openBlock(),b.createBlock(kz,{key:1,mode:"pick",onChosen:u,onClose:m[0]||(m[0]=()=>u(null))})):b.createCommentVNode("",!0),b.createVNode(Y_e),i.value&&i.value.withPrompt&&a.value===null?(b.openBlock(),b.createBlock(J0,{key:2,prompt:"Would you like to save the game?",onConfirm:d,onRefuse:h})):b.createCommentVNode("",!0)],4))}}),UOe="",Z_e=b.defineComponent({props:{percentage:Number,step:String},methods:{loadingStyle(){return{width:`${this.percentage*60}vw`}}},computed:{}}),HOe="",e2e={id:"loading-bar"},t2e={id:"loading-text"};function n2e(e,t,n,r,o,i){return b.openBlock(),b.createElementBlock("div",e2e,[b.createElementVNode("div",{id:"inner-loading-bar",style:b.normalizeStyle(e.loadingStyle())},null,4),b.createElementVNode("div",t2e,[b.createElementVNode("h3",null,"Loading "+b.toDisplayString(Math.floor(e.percentage*100))+"% - "+b.toDisplayString(e.step),1)])])}const r2e=Xa(Z_e,[["render",n2e]]),o2e="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlJhdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDU5NS4zIDU5NS4zIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1OTUuMyA1OTUuMzsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNFMjNCMzM7fQo8L3N0eWxlPgo8cGF0aCBpZD0iUmF0X1NoYXBlIiBjbGFzcz0ic3QwIiBkPSJNNTU2LjksODIuNWMtMTAuOC0yNC4zLTQ3LTU3LjEtNzEuMy02NS42Yy0yNC4zLTguNC02NC4xLTAuMy04OC43LDIyLjMKCWMtMjAsMTguNC0yNiwyOC4yLTI5LjEsMzdjLTIuMSw1LjktNC44LDEzLjUtNiwyMC45djBjLTAuNSw0LjEtNC41LDctOC42LDYuMWMtMTAuNC0yLjMtMjkuNS02LTQ0LjQtNi4zCgljLTEzLjctMC4yLTMwLjEsMy4yLTQwLjQsNS43Yy00LjUsMS4xLTguOC0yLjItOC44LTYuOGMtMC4xLTUuMy0xLjEtMTIuMy00LjgtMTkuNmMtOC41LTE2LjktMTkuNi0zMi42LTU3LjgtNDcuNAoJYy0zMS45LTEyLjQtNzUuMS05LjctMTAwLjgsMS44Yy0yOC4xLDEyLjYtNDIuNCwzNy45LTU0LDYxLjhjLTE0LjQsMjkuOC0xNC45LDgzLjYtNi40LDEwNGMxMi44LDMwLjcsMzUuOCw0Ny4yLDUyLjYsNTMKCWMxMS4zLDMuOCwyOC4yLDMuNywzOC4yLDMuM2M0LjItMC4yLDcuNywzLjMsNy41LDcuNWMtMC43LDEzLjYtMC45LDQxLjUsNyw2MS40YzcuNywxOS40LDI5LjcsNjIuMyw1MC43LDEwMS4yCgljMCwwLjEtMTQuNiwyLjktMzEuNCw2LjhjLTIzLjksNS41LTUyLjYsMTIuNy01NC4zLDEzLjdjLTMuNSwyLjEtMywxMC0yLjcsMTJjMC41LDMuNCw1LjMsOC4xLDYuOSw4LjNjMy45LDAuMywzMS4zLTcuNiw1NS43LTE0LjYKCWMxOC41LTUuMywzNC45LTkuMywzNS41LTguMmM1LjEsOS4zLDEwLDE4LDE0LjQsMjUuOGM1LjIsOS4xLDEwLjcsMTYuNCwxNC4xLDIzLjZjMS4xLDIuMy0xNi42LDUuOC0zMi41LDE0LjcKCWMtMTYuNCw5LjEtMjkuNywyMS0zMi4zLDI0Yy0xLjgsMi4xLTMsNi0xLjIsMTAuN2MxLjEsMi45LDEwLDUuNywxMi40LDUuMWM2LjgtMS43LDE2LjUtMTIuNSwzMy4xLTIxLjEKCWMxNi4zLTguNSwzMi45LTE0LjksMzMuOC0xMy42YzkuNywxNC4zLDE2LjksMjEuNiwyMi42LDMxLjJjOS44LDE2LjUsMjcuMyw0NS45LDQ2LjYsMzkuNWM2LjQtMi4xLDMxLjEtMzMuNiw1My4zLTY4LjYKCWMxLjMtMi4xLDE2LjEsMTEuMywzMC40LDIzLjJjMTMuOCwxMS40LDIyLjcsMjAuNiwyNy4xLDIxLjRjNS40LDEsMTQuMi03LjcsMTQuMS0xNC43Yy0wLjEtMi43LTE0LjMtMTMuOC0yOS4xLTI2LjIKCWMtMTQuNS0xMi4xLTMwLjEtMjIuOC0yOS4yLTI0LjNjNy42LTEyLDE0LjUtMjMuNywyMC4xLTMzLjljNC4zLTcuOCw4LjktMTYsMTMtMjQuN2MwLjYtMS4yLDE1LjksMywzMS40LDcuMWMxNS4zLDQsMjYuNywxMCwzMSw4CgljNi45LTMsMTEuNi0xMy44LDkuNC0xOC4zYy0xLjEtMi4zLTE3LTcuMy0zMy4yLTEyYy0xNC4yLTQuMS0yOC02LjUtMjcuNy03LjNjMTUuNS0zNCwyOC44LTY0LjgsMjcuNi02OS42CgljLTEuNy03LjEsMi42LTExLjksNy0zNi41YzMuMi0xOC4xLDQuNy00MC45LDUuMi01MS43YzAuMi0zLjUsMi44LTYuMyw2LjMtNi43YzMuMS0wLjMsNi45LTAuOSwxMC41LTEuOWM3LjgtMiwxOC42LTcuOCwzNi40LTIwLjYKCWMxNy45LTEyLjgsMzguNy00OS42LDQ0LjQtNjcuOFM1NjcuNiwxMDYuOCw1NTYuOSw4Mi41eiBNMjY1LjEsMzM2LjJjLTguMSw0LTEzLDctMjYuNCw5LjZjLTYuOSwxLjQtMjkuNC0wLjItNDAuNy00LjYKCWMtMTAuNS00LjEtMTkuOS03LjYtMzAtMTUuNHMtMTUuNy0xMy4yLTE1LjctMTUuM2MwLTQuNCw2LTkuNCwxMS05LjRjNS4xLDAsMTQuNSw5LjIsMjkuNywxNi42YzE0LjMsNywxNy45LDYuMSwyNS40LDcuMwoJYzIuOSwwLjUsNy43LDAuNiwxMC43LDAuNGMxNC4xLTEuMywyMS40LTUuOSwyNS4zLTguOGM0LTMsMTMuNy0xMi45LDE3LjItMTIuNWM4LDEsMTguOSwzLjQsMTguOSw3LjEKCUMyOTAuNCwzMTksMjczLjIsMzMyLjEsMjY1LjEsMzM2LjJ6IE0zMjAuOSw1MjEuNGMtNC4zLDMuNy0xNy43LDEzLjUtMjMuMywxMy41Yy0yLjgsMC03LjQtOC4yLTExLjUtMTYuOAoJYy00LjEtOC41LTkuMS0yMS4xLTkuMS0zMS42YzAtNC42LDYtNy40LDEzLjQtOS4yYzcuMi0xLjcsMjcuMy0xLjgsMjkuOS0xLjFjNi44LDEuNywxMi45LDIuMiwxMi43LDYuNGMtMC40LDEyLjctNywxOC45LTguMywyNC4zCglDMzIzLjQsNTEyLjMsMzIzLjQsNTE5LjIsMzIwLjksNTIxLjR6IE00MzEuMSwzMjAuM2MtOS4yLDcuNC0xMC42LDguMS0yNC45LDEzLjdjLTExLjMsNC40LTI4LjYsNS44LTQxLjYsMy42CgljLTEyLjItMi4xLTIyLjMtNC42LTI5LjUtMTAuMWMtOS43LTcuMy0xNi40LTE1LjEtMTYuNC0xOS44YzAtMy43LDYuNC00LjMsMTQuNS00LjljMy41LTAuMyw5LjMsNS45LDEzLjIsOS4yCgljOC4xLDYuOCwxNC44LDgsMjguOCw5LjljMi45LDAuNCw3LjgsMC40LDEwLjcsMC4xYzcuNS0wLjksMTItMC40LDI1LjgtOC4yYzIwLTExLjIsMTcuOC0xNC40LDI1LjEtMTIuNmMyLjIsMC42LDUuOCwxLjIsNS42LDUuNgoJQzQ0Mi40LDMwOSw0NDAuNSwzMTIuNyw0MzEuMSwzMjAuM3oiLz4KPC9zdmc+Cg==",i2e={id:"engine-splash-screen",class:"flex justify-center items-center"},a2e={id:"engine-splash-title"},s2e=["src"],l2e=b.defineComponent({__name:"engine-splash",emits:["finished"],setup(e,{emit:t}){const n=t,r=b.ref("hidden"),o=b.computed(()=>({transitionDuration:`${f.value}s`})),i=b.computed(()=>({invisible:r.value!=="appear"})),a=Gt(),s=b.computed(()=>{var h;return((h=Mt().splashScreens)==null?void 0:h.engineSplashScreen)??{}}),l=b.computed(()=>typeof s.value.overrideText=="string"?s.value.overrideText:"Made with narrat engine"),c=b.computed(()=>s.value.overrideLogo??o2e),f=b.computed(()=>typeof s.value.fadeDuration=="number"?s.value.fadeDuration:.8),u=b.computed(()=>typeof s.value.timeBeforeFadeout=="number"?s.value.timeBeforeFadeout:1.5);b.onMounted(async()=>{if(await _i(10),r.value="appear",s.value.skip||a.options.debug){d();return}await _i(f.value*1e3),await _i(u.value*1e3),r.value="disappear",await _i(f.value*1e3),d()});function d(){a.loading.loaded?n("finished"):a.listener.once("gameLoaded",()=>{n("finished")})}return(h,p)=>(b.openBlock(),b.createElementBlock("div",i2e,[b.createElementVNode("div",{id:"engine-splash-header",class:b.normalizeClass(["flex justify-center flex-col items-center",i.value]),style:b.normalizeStyle(o.value)},[b.createElementVNode("h1",a2e,b.toDisplayString(l.value),1),b.createElementVNode("img",{src:c.value,alt:"Narrat Logo",id:"engine-splash-logo"},null,8,s2e),b.createVNode(r2e,{percentage:b.unref(a).loading.percentage,step:b.unref(a).loading.step},null,8,["percentage","step"])],6)]))}}),WOe="",c2e={id:"game-splash-screen",style:{height:"100%",padding:"20px"},class:"flex justify-center items-center"},u2e={id:"game-splash-screen-header flex justify-center flex-col items-center",class:"flex justify-center flex-col items-center"},f2e={class:"title",id:"game-splash-title"},d2e=b.defineComponent({__name:"game-splash",setup(e){const t=b.ref(null),n=Gt(),r=b.computed(()=>{var l;return((l=Mt().splashScreens)==null?void 0:l.gameSplashScreen)??{}}),o=b.computed(()=>typeof r.value.startButtonText=="string"?r.value.startButtonText:"Press to start"),i=b.computed(()=>n.loading.loaded),a=b.computed(()=>Mt().gameTitle||"Narrat Game");function s(){n.flowState="menu"}return b.onMounted(()=>{t.value=Nr().registerInputListener("game-splash",{continue:{press:()=>{s()}},system:{press:()=>{s()}}}),n.options.debug&&s()}),b.onUnmounted(()=>{t.value&&Nr().unregisterInputListener(t.value)}),(l,c)=>(b.openBlock(),b.createElementBlock("div",c2e,[b.createElementVNode("div",u2e,[b.createElementVNode("h1",f2e,b.toDisplayString(a.value),1),i.value?(b.openBlock(),b.createElementBlock("button",{key:0,class:"button menu-button main-menu-button large splash-start-button override",onClick:s},b.toDisplayString(o.value),1)):b.createCommentVNode("",!0)])]))}}),KOe="",h2e=b.createElementVNode("hr",null,null,-1),p2e=b.defineComponent({__name:"floating-tooltip",props:{title:{},text:{},width:{},x:{},y:{},screenWidth:{},screenHeight:{},screenMargin:{},cssClass:{},textCssClass:{},titleCssClass:{}},setup(e){const t=b.ref(150),n=b.ref(null),r=e,o=b.computed(()=>r.screenWidth??window.innerWidth),i=b.computed(()=>r.screenHeight??window.innerHeight),a=b.computed(()=>{const s=r.screenMargin??5,l={};let c=r.x-r.width/2;c=Math.min(c,o.value-r.width-s),c=Math.max(s,c),l.left=`${c}px`;let f=i.value-r.y;return f=Math.max(f,s),f=Math.min(f,i.value-t.value-s),l.bottom=`${f}px`,l.width=`${r.width}px`,l});return b.onMounted(()=>{n.value&&(t.value=n.value.clientHeight)}),(s,l)=>(b.openBlock(),b.createBlock(b.Transition,{name:"fade"},{default:b.withCtx(()=>[b.createElementVNode("div",{class:b.normalizeClass(["floating-tooltip",s.cssClass]),style:b.normalizeStyle(a.value),ref_key:"element",ref:n},[s.title?(b.openBlock(),b.createElementBlock("div",{key:0,class:b.normalizeClass(["floating-tooltip-title",s.titleCssClass])},[b.createTextVNode(b.toDisplayString(r.title)+" ",1),h2e],2)):b.createCommentVNode("",!0),b.createElementVNode("div",{class:b.normalizeClass(["floating-tooltip-text",s.textCssClass])},b.toDisplayString(r.text),3)],6)]),_:1}))}}),GOe="",m2e={class:"tooltips-ui"},v2e=b.defineComponent({__name:"tooltips-ui",setup(e){const t=tp(),n=Pr(),r=b.computed(()=>t.tooltip),o=b.computed(()=>n.screenWidth),i=b.computed(()=>n.screenHeight),a=b.computed(()=>{if(r.value)return{...r.value,screenMargin:hc().options.screenEdgesMinimumMargin??5,screenWidth:o.value,screenHeight:i.value,...s(r.value)}});function s(l){var f,u;let c={};return hc().options.styling&&(c={...c,...hc().options.styling}),(f=z0(l.keyword))!=null&&f.styling&&(c={...c,...(u=z0(l.keyword))==null?void 0:u.styling}),c}return(l,c)=>(b.openBlock(),b.createElementBlock("div",m2e,[r.value?(b.openBlock(),b.createBlock(p2e,b.normalizeProps(b.mergeProps({key:0},a.value)),null,16)):b.createCommentVNode("",!0)]))}}),g2e=b.defineComponent({__name:"app",props:{options:{}},setup(e){const t=e,n=Gt(),r=b.computed(()=>n.flowState),o=b.computed(()=>n.alerts),i=Pr(),a=b.computed(()=>({transform:`scale(${i.gameScaleRatio}, ${i.gameScaleRatio})`,width:`${i.gameWidth}px`,height:`${i.actualGameHeight}px`})),s=b.computed(()=>Qo().activeMenu?"app-blurred-by-modal":{});function l(u){Gt().closeAlert(u)}function c(){Gt().flowState="game-splash"}function f(){Pr().refreshScreenSize()}return b.onMounted(async()=>{yn.callHook("onAppMounted"),await Gt().engineLoading(),i.inputsContainer.addEventListener("resize",cp(()=>{f()},100,{maxWait:200})),pa.setup(t.options.debug),setTimeout(()=>{f()},50)}),(u,d)=>(b.openBlock(),b.createElementBlock(b.Fragment,null,[b.createElementVNode("div",{id:"narrat-app-container",style:b.normalizeStyle(a.value)},[b.createElementVNode("div",{id:"narrat-app",class:b.normalizeClass(s.value),tabindex:"0"},[r.value==="engine-splash"?(b.openBlock(),b.createBlock(l2e,{key:0,onFinished:c})):(b.openBlock(),b.createBlock(b.Transition,{key:1,name:"screens-fade"},{default:b.withCtx(()=>[r.value==="game-splash"?(b.openBlock(),b.createBlock(d2e,{key:"1"})):r.value==="menu"?(b.openBlock(),b.createBlock(Yxe,{key:"2"})):r.value==="playing"?(b.openBlock(),b.createBlock(X_e,{key:"3"})):b.createCommentVNode("",!0)]),_:1})),u.options.debug?(b.openBlock(),b.createBlock(wxe,{key:2})):b.createCommentVNode("",!0),b.createVNode(jxe),(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(o.value,h=>(b.openBlock(),b.createBlock(Zxe,{key:h.id,title:h.title,text:h.text,onClose:()=>l(h.id)},null,8,["title","text","onClose"]))),128))],2)],4),b.createVNode(v2e)],64))}}),JOe="";function xt(e,t){console.error("Runtime error ========================="),console.error(`Command: ${e.commandType}`),console.error("Args: ",e.args),console.error("Options: ",e.options),At(`Runtime error at ${e.fileName}:${e.line} (${e.commandType}) ${e.code}. -
218
218
  <br />
219
- Error: ${t}`),console.error("============================")}function y2e(e,...t){console.log(`[${e.fileName}:${e.line}] log: `,...t)}class Be{constructor(t,n,r,o){Wn(this,"keyword");Wn(this,"runner");Wn(this,"argTypes");Wn(this,"parser");Wn(this,"onPlayerAnswered");Wn(this,"returnAfterPlayerAnswer");this.keyword=t,this.runner=r,this.argTypes=n,o?this.parser=o:this.parser=fd(this.keyword,this.argTypes),this.returnAfterPlayerAnswer=!1}async run(t,n){let r=await this.runner(t,n);return this.returnAfterPlayerAnswer&&(r=await new Promise((o,i)=>{un().waitForPlayerAnswer(t),t.finishCommand=o})),r}async processPlayerAnswer(t,n){let r=n;return this.onPlayerAnswered&&(r=await this.onPlayerAnswered(t,n)),this.returnAfterPlayerAnswer&&t.finishCommand&&t.finishCommand(r),r}static FromOptions(t){const n=new Be(t.keyword,t.argTypes,t.runner,t.parser);return n.onPlayerAnswered=t.onPlayerAnswered,n.returnAfterPlayerAnswer=t.returnAfterPlayerAnswer??!1,n}}function fd(e,t){let n=[];if(t!=="any"){n=[];const r=t.reduce((o,i)=>(i.optional&&o++,i.type==="rest"&&(o=1/0),o),0);r>=1?n.push(t.length-r):n.push(t.length),n.push(t.length)}return(r,o)=>{const i={newLine:r.currentLine+1},a=o.command.args;return t!=="any"&&(a.length<n[0]||a.length>n[1])?(console.log("Error details"),console.log(o.command),console.log(a),r.parserContext.error(r.line.line,`Command ${e}: Expected ${n.join(" to ")} arguments but got ${a.length}`),i):(o.command.commandType=e,t!=="any"&&o.command.args.forEach((s,l)=>{const c=t[l];!L7(s)&&!R7(s)&&(c.type==="any"||c.type==="rest"||typeof s===c.type||r.parserContext.error(r.line.line,`Command ${e}: Argument #${l+1} (${c.name}) should be a ${c.type}, but got type ${typeof s}: ${JSON.stringify(s)}`))}),{newLine:r.currentLine+1})}}const b2e=new Be("add_level",[{name:"skillKey",type:"string"},{name:"amount",type:"number"}],async e=>{let{skillKey:t,amount:n}=e.options;if((!t||!n)&&xt(e,"add_level command needs a skill id and a value as parameters"),!Number.isInteger(n)){const r=n;n=Math.round(n),console.warn(`add_level expects a level to be an integer. Auto Rounding ${r} to ${n}`)}Cr().incrementSkill(t,n)}),w2e=Be.FromOptions({keyword:"set_level",argTypes:[{name:"skill",type:"string"},{name:"level",type:"number"}],runner:async e=>{let{skill:t,level:n}=e.options;if((!t||!n)&&xt(e,"set_level command needs a skill id and a value as parameters"),!Number.isInteger(n)){const r=n;n=Math.round(n),console.warn(`set_level expects a level to be an integer. Auto Rounding ${r} to ${n}`)}Cr().setSkillLevel(t,n)}}),k2e=new Be("add_xp",[{name:"xpKey",type:"string"},{name:"xpToAdd",type:"number"}],async e=>{const{xpKey:t,xpToAdd:n}=e.options;(!t||!n)&&xt(e,"add_xp command needs a skill id and a value as parameters"),Cr().addXp(t,n)}),x2e=new Be("get_level",[{name:"skillKey",type:"string"}],async e=>{const{skillKey:t}=e.options;t||xt(e,"get_level command needs a skill id as parameter");const n=Cr().getSkill(t);return n||xt(e,`Skill ${t} not found`),n.level}),_2e=new Be("get_xp",[{name:"xpKey",type:"string"}],async e=>{const{xpKey:t}=e.options;t||xt(e,"get_xp command needs a skill id as parameter");const n=Cr().getSkillXp(t);return n||xt(e,`XP ${t} not found`),n}),j2e=new Be("roll",[{name:"id",type:"string"},{name:"skill",type:"string",optional:!0},{name:"difficulty",type:"number",optional:!0},{name:"mode",type:"string",optional:!0}],async e=>{const{id:t}=e.options;let n={id:t};if(e.args.length===1&&nz(t))n={...tz(t),id:t};else{const{skill:o,difficulty:i,mode:a}=e.options;if(!o||!i){xt(e,"roll command needs a skill and a difficulty as parameters, or the skill check id to be configured in skillChecks.yaml");return}n={skill:o,difficulty:i,id:t},a==="hideAfterRoll"&&(n.hideAfterRoll=!0),a==="repeatable"&&(n.repeatable=!0)}return D7(n).succeeded}),S2e=new Be("get_skill_check",[{name:"skillCheckId",type:"string"}],async e=>Cr().getSkillCheck(e.options.skillCheckId)),C2e=new Be("skill_check_result",[{name:"skillCheckId",type:"string"}],async e=>Cr().getSkillCheck(e.options.skillCheckId).succeeded),$2e=new Be("reset_roll",[{name:"id",type:"string"}],async e=>Cr().resetSkillCheck(e.options.id)),T2e=new Be("add_stat",[{name:"statKey",type:"string"},{name:"amountToAdd",type:"number"}],async e=>{const{statKey:t,amountToAdd:n}=e.options;(!t||typeof n!="number")&&xt(e,"add_stat command needs a stat id and a value as parameters"),qa().addStat(t,n)}),O2e=new Be("set_stat",[{name:"statKey",type:"string"},{name:"value",type:"number"}],async e=>{const{statKey:t,value:n}=e.options;(!t||typeof n!="number")&&xt(e,"set_stat command needs a stat id and a value as parameters"),qa().setStat(t,n)}),E2e=new Be("get_stat_value",[{name:"statKey",type:"string"}],async e=>{const{statKey:t}=e.options;return t||xt(e,"get_stat_value command needs a stat id as parameter"),qa().getStatValue(t)}),A2e=Be.FromOptions({keyword:"jump",argTypes:"any",runner:async e=>{(e.args.length<1||typeof e.args[0]!="string")&&xt(e,"requires a label argument");const t=e.args[0],n=un(),r={branchData:yn.script[t],label:t,args:e.args.splice(1),currentIndex:0};if(!yn.script[t]){At(`Trying to jump but label ${t} not found`);return}return n.jumpTarget=r,o0}}),M2e=Be.FromOptions({keyword:"run",argTypes:"any",runner:async e=>{(e.args.length<1||typeof e.args[0]!="string")&&xt(e,"run command needs a label to argument run");const t=e.args[0];return await un().runLabelFunction(t,...e.args.slice(1))}}),P2e=Be.FromOptions({keyword:"var",argTypes:[{name:"name",type:"string"},{name:"value",type:"any"}],runner:async e=>{const{name:t,value:n}=e.options;un().addScopedVariable(t,n)}}),N2e=Be.FromOptions({keyword:"return",argTypes:[{name:"value",type:"any"}],runner:async e=>{const{value:t}=e.options;return un().setReturnValue(t),g_}}),I2e=Be.FromOptions({keyword:"log",argTypes:"any",runner:async e=>{y2e(e,...e.args)}}),D2e=Be.FromOptions({keyword:"menu_return",argTypes:[],runner:async e=>(Gt().menuReturn(),i0)}),L2e=Be.FromOptions({keyword:"save",argTypes:[{name:"name",type:"string",optional:!0}],runner:async e=>{await Gt().manualSave({saveName:e.options.name})}}),R2e=Be.FromOptions({keyword:"save_prompt",argTypes:[{name:"name",type:"string",optional:!0}],runner:async e=>{await Gt().manualSave({saveName:e.options.name,withPrompt:!0})}}),B2e=Be.FromOptions({keyword:"reset_global_save",argTypes:[],runner:async e=>{await Gt().resetGlobalSave()}}),F2e=Be.FromOptions({keyword:"new",argTypes:[{name:"name",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const t=e.options.name;if(t==="Array")return[...e.args.slice(1)];if(t==="Object")return{}}}),V2e=[{name:"mode",type:"string"},{name:"audio",type:"string"},{name:"channel",type:"number",optional:!0}],z2e=new Be("play",V2e,async e=>{const t=xo(),{mode:n,audio:r,channel:o}=e.options,i=Y0(e,n);i&&t.playChannel(i,r,o??0)}),q2e=new Be("resume",[{name:"mode",type:"string"},{name:"channel",type:"number",optional:!0}],async e=>{const t=xo(),{mode:n,channel:r}=e.options,o=Y0(e,n);o&&t.resumeChannel(o,r??0)}),U2e=new Be("pause",[{name:"mode",type:"string"},{name:"channel",type:"number",optional:!0}],async e=>{const t=xo(),{mode:n,channel:r}=e.options,o=Y0(e,n);o&&t.pauseChannel(o,r??0)}),H2e=new Be("stop",[{name:"mode",type:"string"},{name:"channel",type:"number",optional:!0}],async e=>{const t=xo(),{mode:n,channel:r}=e.options,o=Y0(e,n);o&&t.stopChannel(o,r??0)});function Y0(e,t){return W2e(t)?t:(xt(e,`${t} is not a valid audio mode.`),!1)}function W2e(e){return!!S9.includes(e)}const K2e=new Be("set",[{name:"key",type:"string"},{name:"value",type:"any"}],async e=>{const t=cd();iz(t,`$${e.options.key}`,e.options.value)}),G2e=new Be("add",[{name:"key",type:"string"},{name:"value",type:"any"}],async e=>{const t=cd();az(t,`$${e.options.key}`,e.options.value)}),J2e=new Be("set_screen",[{name:"screen",type:"string"},{name:"layer",type:"number",optional:!0},{name:"transitionName",type:"string",optional:!0},{name:"transitionDuration",type:"number",optional:!0},{name:"transitionDelay",type:"number",optional:!0}],async e=>{const t=li();if(!ad(e.options.screen)){xt(e,`Screen ${e.options.screen} doesn't exist in the config`);return}return e.options.transitionName?t.transitionScreen(e.options.screen,{transition:e.options.transitionName,duration:e.options.transitionDuration,delay:e.options.transitionDelay},e.options.layer):t.setScreen(e.options.screen,e.options.layer??0)}),Q2e=new Be("empty_layer",[{name:"layer",type:"number"},{name:"transitionName",type:"string",optional:!0},{name:"transitionDuration",type:"number",optional:!0},{name:"transitionDelay",type:"number",optional:!0}],async e=>{const t=li();return e.options.transitionName?t.emptyLayer(e.options.layer,{transition:e.options.transitionName,duration:e.options.transitionDuration,delay:e.options.transitionDelay}):t.emptyLayer(e.options.layer)}),Y2e=new Be("set_button",[{name:"buttonId",type:"string"},{name:"state",type:"any"}],async e=>{const{buttonId:t,state:n}=e.options,r=li();if(!pc(t)){xt(e,`Button ${t} doesn't exist in the config`);return}r.changeButton(t,n)}),X2e=Be.FromOptions({keyword:"talk",argTypes:[{name:"speaker",type:"string"},{name:"pose",type:"string"},{name:"text",type:"string"}],runner:async(e,t)=>{await k_({speaker:e.options.speaker,pose:e.options.pose,cssClass:"talk-command",text:`"${e.options.text}"`,choices:t,interactive:!0})},returnAfterPlayerAnswer:!0}),Z2e=Be.FromOptions({keyword:"think",argTypes:[{name:"speaker",type:"string"},{name:"pose",type:"string"},{name:"text",type:"string"}],runner:async(e,t)=>{await k_({speaker:e.options.speaker,pose:e.options.pose,cssClass:"think-command",text:`${e.options.text}`,choices:t,interactive:!0})},returnAfterPlayerAnswer:!0}),eje=()=>{const e=fd("text",[]);return(t,n)=>{const r=e(t,n);return n.command.staticOptions={text:n.code.substring(1,n.code.length-1)},r}},tje=Be.FromOptions({keyword:"text",argTypes:[],runner:async(e,t)=>{await k_({speaker:_o().gameCharacter,cssClass:"text-command",text:e.staticOptions.text,choices:t,interactive:!0})},parser:eje(),returnAfterPlayerAnswer:!0}),nje=new Be("add_item",[{name:"id",type:"string"},{name:"amount",type:"number"}],async e=>{const{id:t,amount:n}=e.options;so().add({id:t,amount:n})}),rje=new Be("remove_item",[{name:"id",type:"string"},{name:"amount",type:"number"}],async e=>{const{id:t,amount:n}=e.options;so().remove({id:t,amount:n})}),oje=new Be("has_item?",[{name:"id",type:"string"},{name:"amount",type:"number",optional:!0}],async e=>{const{id:t,amount:n}=e.options;return so().hasItem(t,n)}),ije=new Be("item_amount?",[{name:"id",type:"string"}],async e=>{const{id:t}=e.options;return so().getItemAmount(t)}),aje=new Be("enable_interaction",[{name:"tag",type:"string"}],async e=>{const t=e.options.tag;so().enableInteraction(t)}),sje=new Be("disable_interaction",[{name:"tag",type:"string"}],async e=>{const t=e.options.tag;so().disableInteraction(t)}),lje=new Be("start_quest",[{name:"questId",type:"string"}],async e=>{const t=e.options.questId;eo().startQuest(t)}),cje=new Be("start_objective",[{name:"questId",type:"string"},{name:"objectiveId",type:"string"}],async e=>{const{questId:t,objectiveId:n}=e.options;eo().startObjective(t,n)}),uje=new Be("complete_objective",[{name:"questId",type:"string"},{name:"objectiveId",type:"string"}],async e=>{const{questId:t,objectiveId:n}=e.options;eo().completeObjective(t,n)}),fje=new Be("complete_quest",[{name:"questId",type:"string"},{name:"ending",type:"any",optional:!0}],async e=>{const{questId:t,ending:n}=e.options;eo().completeQuest(t,n)}),dje=new Be("quest_completed?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().isQuestCompleted(t)}),hje=new Be("quest_succeeded?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().isQuestSucceeded(t)}),pje=new Be("quest_failed?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().isQuestFailed(t)}),mje=new Be("quest_ending?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().getQuestEnding(t)}),vje=new Be("quest_has_ending?",[{name:"questId",type:"string"},{name:"ending",type:"string"}],async e=>{const{questId:t,ending:n}=e.options;return eo().questHasEnding(t,n)}),gje=new Be("objective_completed?",[{name:"questId",type:"string"},{name:"objectiveId",type:"string"}],async e=>{const{questId:t,objectiveId:n}=e.options;return eo().isObjectiveCompleted(t,n)}),yje=new Be("quest_started?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().isQuestStarted(t)}),bje=new Be("objective_started?",[{name:"questId",type:"string"},{name:"objectiveId",type:"string"}],async e=>{const{questId:t,objectiveId:n}=e.options;return eo().isObjectiveStarted(t,n)}),wje=Be.FromOptions({keyword:"wait",argTypes:[{name:"duration",type:"number"}],runner:async e=>{await _i(e.options.duration)}}),kje=new Be("notify",[{name:"text",type:"string"},{name:"description",type:"string",optional:!0},{name:"icon",type:"string",optional:!0}],async e=>{const{text:t,icon:n,description:r}=e.options;Go().addNotification(t,r,n)}),xje=new Be("disable_notifications",[],async e=>{Go().disableNotifications()}),_je=new Be("enable_notifications",[],async e=>{Go().enableNotifications()}),jje=new Be("clear_dialog",[],async e=>{Yn().clearDialog()}),Sje=new Be("if",[{name:"condition",type:"boolean"}],async e=>{const t=[];for(const o of e.staticOptions.elseifs){const i=o.condition,a=await v0(i);t.push(a)}const n=Qve(e,t),r=un();if(n){const o={branchData:{branch:n},currentIndex:0};return r.addAndRunBlock(o)}},(e,t)=>{let n=e.currentLine;fd("if",[{name:"condition",type:"string"}])(e,t);const{lines:o,currentLine:i,line:a}=e,s=t.command;let l,c=i,f=!1;const u=[];for(;!f;){c++;const d=Yve(o,c);if(d&&d.code.startsWith("elseif")){const h=d.expression;if(!Array.isArray(h)){e.parserContext.error(d.line,"Expected an expression after elseif"),f=!0;break}if(h.length>2){e.parserContext.error(d.line,"Expected only one argument after elseif"),f=!0;break}u.push({branch:e.processCommandsFunction(e.parserContext,d.branch,a),condition:L_(e.parserContext,d,h[1])})}else d&&d.code==="else:"?l=e.processCommandsFunction(e.parserContext,d.branch,a):(f=!0,c--)}return s.staticOptions={success:e.processCommandsFunction(e.parserContext,a.branch,a),elseifs:u,failure:l},c++,n=c,{newLine:n}}),Cje=new Be("==","any",async e=>{e.args.length<1&&xt(e,"requires at least 1 arguments");let t=e.args[0],n=!0;for(const r of e.args)if(r!=t){n=!1;break}else t=r;return n}),$je=new Be(">",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t>n}),Tje=new Be("<",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t<n}),Oje=new Be(">=",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t>=n}),Eje=new Be("<=",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t<=n}),Aje=new Be("!=",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t!=n}),Mje=new Be("!",[{name:"a",type:"any"}],async e=>{const{a:t}=e.options;return!t}),Pje=new Be("&&","any",async e=>{const t=e.args;return e.args.length<2&&xt(e,"requires at least two arguments"),t.reduce((n,r)=>n&&r,!0)}),Nje=new Be("||","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.reduce((t,n)=>t||n,!1))),Ije=new Be("?",[{name:"a",type:"any"},{name:"b",type:"any"},{name:"c",type:"any"}],async e=>{const{a:t,b:n,c:r}=e.options;return t?n:r}),Dje=new Be("+","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.reduce((t,n)=>typeof n=="number"?t+n:(xt(e,"requires all arguments to be numbers"),t),0))),Lje=new Be("-","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.slice(1).reduce((t,n)=>typeof n=="number"?t-n:(xt(e,"requires all arguments to be numbers"),t),e.args[0]))),Rje=new Be("neg",[{name:"a",type:"number"}],async e=>(e.args.length!==1&&xt(e,"requires one argument"),-e.options.a)),Bje=new Be("abs",[{name:"a",type:"number"}],async e=>(e.args.length!==1&&xt(e,"requires one argument"),Math.abs(e.options.a))),Fje=new Be("*","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.reduce((t,n)=>typeof n=="number"?t*n:(xt(e,"requires all arguments to be numbers"),t),1))),Vje=new Be("/","any",async e=>{e.args.length<2&&xt(e,"requires at least two arguments");const t=e.args[0]/e.args[1];return e.args.slice(2).reduce((n,r)=>typeof r=="number"?n/r:(xt(e,"requires all arguments to be numbers"),n),t)}),zje=async e=>{const{prompt:t,choices:n}=e.staticOptions,r=[];for(const[,a]of n.entries()){const s=await v0(a.prompt);r.push(s)}e.options.choiceResults=r;const o=r.map((a,s)=>{var d;let l=!0;a.skillCheck&&(l=((d=a.skillCheck)==null?void 0:d.allowed)??!1);const c=up().hasSeenChoice(t.code,n[s].prompt.code);return{flag:a.flag,seenBefore:c,choice:a.text,originalIndex:s,allowed:l}}).filter(a=>a.choice),i=await QF(t,o);return await Wje(e,i)};function qje(e,t){t.branch||e.parserContext.error(t.line,`Choice option doesn't have any branch to go to (${t.code} - ${t.line})`);let n,r;const o=t.branch;return t.expression[1]==="roll"||t.expression[2]==="roll"?((!o[0].branch||!o[1].branch)&&e.parserContext.error(t.line,`Choice option with a skill roll needs success and failure branches (${t.code} - ${t.line})`),n={success:e.processCommandsFunction(e.parserContext,o[0].branch,t),failure:e.processCommandsFunction(e.parserContext,o[1].branch,t)}):r=e.processCommandsFunction(e.parserContext,o,t),{prompt:e.processCommandsFunction(e.parserContext,[t],t)[0],branch:r,skillBranches:n}}const Uje=(e,t)=>{let n=e.currentLine;fd("choice",[]);const{line:r}=e,o=t.command;(!r.branch||r.branch.length<2)&&e.parserContext.error(r.line,"Choice menu needs to have at least one option");const i=r.branch[0];i||e.parserContext.error(e.line.line,"Choice prompt is missing ");const s=r.branch.slice(1).map((l,c)=>(l.branch||e.parserContext.error(l.line,`Choice option doesn't have any branch to go to (${l.code})`),l=Kje(e.parserContext,l),qje(e,l)));return o.staticOptions={prompt:e.processCommandsFunction(e.parserContext,[i],r)[0],choices:s},n++,{newLine:n}},Hje=Be.FromOptions({keyword:"choice",argTypes:[],runner:zje,parser:Uje}),Wje=async(e,t)=>{const n=t,r=un(),{choices:o}=e.staticOptions,i=o[n],a=e.options.choiceResults[n],s=e.staticOptions.prompt;up().trackChoice(s.code,i.prompt.code);let l=a.text,c;if(a.skillCheck?(l=null,D7(a.skillCheck.options).succeeded?c=i.skillBranches.success:c=i.skillBranches.failure):c=i.branch,l){const f={speaker:_o().playerCharacter,text:l,interactive:!1};Yn().addDialog(f)}if(c){const f={currentIndex:0,branchData:{branch:c}};return await r.addAndRunBlock(f)}};function Kje(e,t){return{code:`choicePrompt ${t.code}`,indentation:t.indentation,line:t.line,branch:t.branch,expression:["choicePrompt",...t.expression]}}const Gje=new Be("choicePrompt","any",async e=>{const t=e.args;return t.length===1?Jje(t[0]):t.length===2?Qje(t):t.length>2?t[0]==="roll"||t[1]==="roll"?Xje(e,t):Yje(e,t):(xt(e,"Invalid choice prompt line"),{text:t[0]})});function Jje(e){return{text:e}}function Qje(e){return{text:e[1],flag:e[0]}}function Yje(e,t){const n=t[1]==="if"?1:2;if(t[n]!=="if")return xt(e,"Invalid choice prompt line"),{text:t[0]};const r=n===2;let o=r?t[1]:t[0],i=!0;t.length>n+1&&(i=t[n+1]),i||(o=null);const a={text:o};return r&&(a.flag=t[0]),a}function Xje(e,t){const n=t[0]==="roll"?0:1,r=n===1,o=n,i=t[o+1];let a={},s=o+2;nz(i)?a={...tz(i),id:i}:(a={id:i,skill:t[o+2],difficulty:t[o+3]},s=o+4);const l=t[s];s++;let c=!1,f=!1,u;t.length>s&&(t[s]==="if"?(f=!0,t.length<s+2&&xt(e,'Missing condition argument after "if" in choice with a skill check'),u=t[s+1]):(c=t[s],t.length>s+1&&(s++,t[s]==="if"?(f=!0,t.length<s+2&&xt(e,'Missing condition argument after "if" in choice with a skill check'),u=t[s+1]):xt(e,`Invalid argument after skill check mode: ${t[s]}. The next argument can only be an if condition.`)))),c==="hideAfterRoll"&&(a.hideAfterRoll=!0),c==="repeatable"&&(a.repeatable=!0);const d=Cr().getSkillCheck(i);if(d.hidden||f&&!u)return{text:null};const h=!d.happened||d.happened&&d.succeeded||a.repeatable,{difficultyText:p}=zme({skill:a.skill,skillCheckId:i,value:a.difficulty}),v={text:`${p} ${l}`,skillCheck:{allowed:h,options:a}};return r&&(v.flag=t[0]),v}const $z=Be.FromOptions({keyword:"text_field",argTypes:[{name:"prompt",type:"string"}],returnAfterPlayerAnswer:!0,runner:async e=>{const t={speaker:_o().gameCharacter,text:e.options.prompt,textField:!0,interactive:!0};Yn().addDialog(t)}});$z.onPlayerAnswered=async(e,t)=>(typeof t!="string"&&xt(e,"The player's answer should be a string"),t);const Zje=Be.FromOptions({keyword:"text_field_prompt",argTypes:[{name:"prompt",type:"string"}],runner:async e=>{const t={speaker:_o().gameCharacter,text:e.options.prompt,textField:!0,interactive:!0};Yn().addDialog(t)}}),eSe=new Be("random",[{name:"a",type:"number"},{name:"b",type:"number"}],async e=>{const{a:t,b:n}=e.options;return typeof t!="number"||typeof n!="number"?(xt(e,"random command needs two numbers as parameters"),0):Math.floor(Math.random()*(n-t+1))+t}),tSe=new Be("random_float",[{name:"a",type:"number"},{name:"b",type:"number"}],async e=>{const{a:t,b:n}=e.options;return typeof t!="number"||typeof n!="number"?(xt(e,"random_float command needs two numbers as parameters"),0):Math.random()*(n-t)+t}),nSe=new Be("random_from_args",[],async e=>{const t=e.args;return!t||!t.length?(xt(e,"random_from_args command needs at least one argument"),0):t[Math.floor(Math.random()*t.length)]}),rSe=new Be("random_from_array",[{name:"a",type:"any"}],async e=>{const{a:t}=e.options;return Array.isArray(t)?t[Math.floor(Math.random()*t.length)]:(xt(e,"random_from_array command needs an array as parameter"),0)}),oSe=new Be("concat","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.reduce((t,n)=>typeof n=="string"?`${t}${n}`:(xt(e,"requires all arguments to be strings"),t),""))),iSe=new Be("join","any",async e=>{const t=e.args[0];return e.args.length<3&&xt(e,"requires at least 3 arguments"),e.args.slice(1).reduce((n,r)=>typeof r=="string"?`${n}${t}${r}`:(xt(e,"requires all arguments to be strings"),n),"")}),aSe=Be.FromOptions({keyword:"min",argTypes:[{name:"min",type:"number"},{name:"value",type:"number"}],runner:async e=>{const{min:t,value:n}=e.options;return n<t?n:t}}),sSe=Be.FromOptions({keyword:"max",argTypes:[{name:"max",type:"number"},{name:"value",type:"number"}],runner:async e=>{const{max:t,value:n}=e.options;return n>t?n:t}}),lSe=Be.FromOptions({keyword:"clamp",argTypes:[{name:"min",type:"number"},{name:"max",type:"number"},{name:"value",type:"number"}],runner:async e=>{const{min:t,max:n,value:r}=e.options;return r<t?t:r>n?n:r}}),cSe=Be.FromOptions({keyword:"floor",argTypes:[{name:"value",type:"number"}],runner:async e=>{const{value:t}=e.options;return Math.floor(t)}}),uSe=Be.FromOptions({keyword:"ceil",argTypes:[{name:"value",type:"number"}],runner:async e=>{const{value:t}=e.options;return Math.ceil(t)}}),fSe=Be.FromOptions({keyword:"round",argTypes:[{name:"value",type:"number"}],runner:async e=>{const{value:t}=e.options;return Math.round(t)}}),dSe=Be.FromOptions({keyword:"sqrt",argTypes:[{name:"value",type:"number"}],runner:async e=>{const{value:t}=e.options;return Math.sqrt(t)}}),hSe=Be.FromOptions({keyword:"^",argTypes:[{name:"base",type:"number"},{name:"exponent",type:"number"}],runner:async e=>{const{base:t,exponent:n}=e.options;return Math.pow(t,n)}}),pSe=new Be("create_sprite",[{name:"image",type:"string"},{name:"x",type:"number"},{name:"y",type:"number"},{name:"parent",type:"any",optional:!0}],async e=>{const t=Jo(),{x:n,y:r,image:o,parent:i}=e.options,a={x:n,y:r,image:o};return typeof i=="object"&&(a.parent=i),typeof i=="string"&&(a.parent=Jo().getObject(i)),t.createSprite(a)}),mSe=new Be("create_object",[{name:"x",type:"number"},{name:"y",type:"number"},{name:"parent",type:"any",optional:!0}],async e=>{const t=Jo(),{x:n,y:r,parent:o}=e.options,i={x:n,y:r};return typeof o=="object"&&(i.parent=o),typeof o=="string"&&(i.parent=Jo().getObject(o)),t.createObject(i)}),vSe=new Be("delete_sprite",[{name:"sprite",type:"any"}],async e=>Jo().destroyObject(e.options.sprite)),gSe=Be.FromOptions({keyword:"empty_sprites",argTypes:[{name:"layer",type:"number",optional:!0}],runner:async e=>{const t=Jo(),{layer:n}=e.options;return typeof n=="number"?t.emptyLayer(n):t.emptyAllLayers()}}),ySe=Be.FromOptions({keyword:"shuffle",argTypes:[{name:"array",type:"any"}],runner:async e=>{const t=e.options.array;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return LSe(t),t}}),bSe=Be.FromOptions({keyword:"push",argTypes:[{name:"array",type:"any"},{name:"value",type:"any"}],runner:async e=>{const{array:t,value:n}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return t.push(n),t}}),wSe=Be.FromOptions({keyword:"pop",argTypes:[{name:"array",type:"any"}],runner:async e=>{const{array:t}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return t.pop()}}),kSe=Be.FromOptions({keyword:"shift",argTypes:[{name:"array",type:"any"}],runner:async e=>{const{array:t}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return t.shift()}}),xSe=Be.FromOptions({keyword:"unshift",argTypes:[{name:"array",type:"any"},{name:"value",type:"any"}],runner:async e=>{const{array:t,value:n}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return t.unshift(n),t}}),_Se=Be.FromOptions({keyword:"array_join",argTypes:[{name:"array",type:"any"},{name:"separator",type:"string",optional:!0}],runner:async e=>{const{array:t,separator:n}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}if(typeof n<"u"&&typeof n!="string"){xt(e,"array join string separator must be a string");return}return t.join(n),t}}),jSe=Be.FromOptions({keyword:"array_concat",argTypes:[{name:"array",type:"any"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t}=e.options,n=e.args;if(!Array.isArray(t)){xt(e,"requires an array argument");return}for(const r of n)if(!Array.isArray(r)){xt(e,"All concat arguments should be arrays");return}return t.concat(...n.slice(1))}}),SSe=Be.FromOptions({keyword:"includes",argTypes:[{name:"array",type:"any"},{name:"searchElement",type:"string"}],runner:async e=>{const{array:t,searchElement:n}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),typeof n>"u"&&xt(e,"requires a search element argument"),t.includes(n)}}),CSe=Be.FromOptions({keyword:"reverse",argTypes:[{name:"array",type:"any"}],runner:async e=>{const{array:t}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),t.reverse(),t}}),$Se=Be.FromOptions({keyword:"slice",argTypes:[{name:"array",type:"any"},{name:"start",type:"number"},{name:"end",type:"number",optional:!0}],runner:async e=>{const{array:t,start:n,end:r}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),typeof n!="number"&&xt(e,"requires a start index argument"),typeof r<"u"&&typeof r!="number"&&xt(e,"end index argument must be a number if present"),t.slice(n,r)}}),TSe=Be.FromOptions({keyword:"splice",argTypes:[{name:"array",type:"any"},{name:"start",type:"number"},{name:"end",type:"number",optional:!0}],runner:async e=>{const{array:t,start:n,end:r}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),typeof n!="number"&&xt(e,"requires a start index argument"),typeof r<"u"&&typeof r!="number"&&xt(e,"end index argument must be a number if present"),t.splice(n,r)}}),OSe=Be.FromOptions({keyword:"array_find_index",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");for(const[r,o]of t.entries())if(await un().runLabelFunction(n,o,r,t,...e.args.slice(2))===!0)return r;return-1}}),ESe=Be.FromOptions({keyword:"array_find",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");for(const[r,o]of t.entries())if(await un().runLabelFunction(n,o,r,t,...e.args.slice(2))===!0)return o;return null}}),ASe=Be.FromOptions({keyword:"array_filter",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");const r=[];for(const[o,i]of t.entries())await un().runLabelFunction(n,i,o,t,...e.args.slice(2))===!0&&r.push(i);return r}}),MSe=Be.FromOptions({keyword:"array_map",argTypes:[{name:"array",type:"any"},{name:"mapperLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,mapperLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");const r=[];for(const[o,i]of t.entries()){const a=await un().runLabelFunction(n,i,o,t,...e.args.slice(2));r.push(a)}return r}}),PSe=Be.FromOptions({keyword:"array_reduce",argTypes:[{name:"array",type:"any"},{name:"reducerLabel",type:"string"},{name:"initValue",type:"any"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,reducerLabel:n,initValue:r}=e.options;Array.isArray(t)||xt(e,"requires an array argument");let o=r;for(const[i,a]of t.entries())o=await un().runLabelFunction(n,o,a,i,t,...e.args.slice(3));return o}}),NSe=Be.FromOptions({keyword:"array_some",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");for(const[r,o]of t.entries())if(await un().runLabelFunction(n,o,r,t,...e.args.slice(2))===!0)return!0;return!1}}),ISe=Be.FromOptions({keyword:"array_every",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");for(const[r,o]of t.entries())if(await un().runLabelFunction(n,o,r,t,...e.args.slice(2))!==!0)return!1;return!0}}),DSe=Be.FromOptions({keyword:"array_entries",argTypes:[{name:"array",type:"any"}],runner:async e=>{const{array:t}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),t.entries()}});function LSe(e){for(let t=e.length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}}const dd={keyframes:{"narrat-screenshake":[{transform:"translateX(0)"},{transform:"translateX(5px)"},{transform:"translateX(-5px)"},{transform:"translateX(5px)"},{transform:"translateX(0)"}]},animations:{"narrat-screenshake":{keyframes:"narrat-screenshake",options:{duration:150,iterations:3}}}};function RSe(e){return typeof e=="string"?document.querySelector(e):e}function BSe(e){if(typeof e=="string"){const t=ZV();t.keyframes[e]?e=t.keyframes[e]:dd.keyframes[e]?e=dd.keyframes[e]:(At(`[Animation] Animation not found: ${e}`),e=dd.keyframes["narrat-screenshake"])}return e}function FSe(e){let t;if(typeof e=="string"){const n=ZV();n.animations[e]?t=n.animations[e]:dd.animations[e]?t=dd.animations[e]:(At(`[Animation] Animation not found: ${e}`),t=dd.animations["narrat-screenshake"])}else t=e;return VSe(t)}function VSe(e){return{keyframes:[...BSe(e.keyframes)],options:{...e.options}}}async function Tz(e,t,n){return new Promise(r=>{const o=RSe(e);o||(At(`[Animation] Element not found: ${e}`),r({}));const i=FSe(t);n&&Object.assign(i.options,n),o.animate(i.keyframes,i.options).addEventListener("finish",r)})}const zSe=Be.FromOptions({keyword:"load_data",argTypes:[{name:"url",type:"string"}],runner:async e=>{const{url:t}=e.options;return await lp(U0(t))}}),qSe=Be.FromOptions({keyword:"change_player_character",argTypes:[{name:"character",type:"string"}],runner:async e=>{const{character:t}=e.options;_o().config.characters.config.playerCharacter=t}}),USe=Be.FromOptions({keyword:"change_game_character",argTypes:[{name:"character",type:"string"}],runner:async e=>{const{character:t}=e.options;_o().config.characters.config.gameCharacter=t}}),HSe=Be.FromOptions({keyword:"json_stringify",argTypes:[{name:"value",type:"any"}],runner:async e=>{const{value:t}=e.options;return JSON.stringify(t)}}),WSe=Be.FromOptions({keyword:"json_parse",argTypes:[{name:"value",type:"string"}],runner:async e=>{const{value:t}=e.options;return JSON.parse(t)}}),KSe=Be.FromOptions({keyword:"set_dialog_panel_mode",argTypes:[{name:"mode",type:"string"}],runner:async e=>{const{mode:t}=e.options;Pr().dialogPanelMode=t}}),Oz=[{name:"element",type:"string"},{name:"animation",type:"string"},{name:"duration",optional:!0,type:"number"},{name:"iterations",optional:!0,type:"number"}];function Ez(e){const{element:t,animation:n,duration:r,iterations:o}=e.options,i={};return o&&(i.iterations=o),r&&(i.duration=r),i}const GSe=Be.FromOptions({keyword:"animate",argTypes:Oz,runner:async e=>{const{element:t,animation:n}=e.options,r=Ez(e);Tz(t,n,r)}}),JSe=Be.FromOptions({keyword:"animate_wait",argTypes:Oz,runner:async e=>{const{element:t,animation:n}=e.options;await Tz(t,n,Ez(e))}}),QSe=Be.FromOptions({keyword:"time_now",argTypes:[],runner:async e=>Date.now()}),YSe=Be.FromOptions({keyword:"total_playtime",argTypes:[],runner:async e=>Gt().totalPlayTime}),XSe=Be.FromOptions({keyword:"session_playtime",argTypes:[],runner:async e=>Gt().sessionPlayTime}),ZSe=Be.FromOptions({keyword:"to_days",argTypes:[{name:"time",type:"number"}],runner:async e=>Math.floor(e.options.time/864e5)}),eCe=Be.FromOptions({keyword:"to_hours",argTypes:[{name:"time",type:"number"}],runner:async e=>Math.floor(e.options.time/36e5)}),tCe=Be.FromOptions({keyword:"to_minutes",argTypes:[{name:"time",type:"number"}],runner:async e=>Math.floor(e.options.time/6e4)}),nCe=Be.FromOptions({keyword:"to_seconds",argTypes:[{name:"time",type:"number"}],runner:async e=>Math.floor(e.options.time/1e3)}),rCe=new Be("unlock_achievement",[{name:"id",type:"string"}],async e=>{const{id:t}=e.options;ul().unlock(t)}),oCe=new Be("has_achievement?",[{name:"id",type:"string"}],async e=>{const{id:t}=e.options;return ul().hasAchievement(t)}),iCe=Be.FromOptions({keyword:"get_setting",argTypes:[{name:"setting",type:"string"}],runner:async e=>{const{setting:t}=e.options;return t||xt(e,"get_setting command needs a setting id"),Bi().getSetting(t)}}),aCe=Be.FromOptions({keyword:"set_setting",argTypes:[{name:"setting",type:"string"},{name:"value",type:"any"}],runner:async e=>{const{setting:t,value:n}=e.options;t||xt(e,"set_setting command needs a setting id"),Bi().setSetting(t,n)}}),sCe=Be.FromOptions({keyword:"object_entries",argTypes:[{name:"obj",type:"any"}],runner:async e=>{const t=e.options.obj;return typeof t!="object"?(xt(e,"Requires an object argument."),[]):Object.entries(t)}}),lCe=Be.FromOptions({keyword:"object_keys",argTypes:[{name:"obj",type:"any"}],runner:async e=>{const t=e.options.obj;return typeof t!="object"?(xt(e,"Requires an object argument."),[]):Object.keys(t)}}),cCe=Be.FromOptions({keyword:"object_values",argTypes:[{name:"obj",type:"any"}],runner:async e=>{const t=e.options.obj;return typeof t!="object"?(xt(e,"Requires an object argument."),[]):Object.values(t)}}),uCe=Be.FromOptions({keyword:"object_has",argTypes:[{name:"obj",type:"any"},{name:"key",type:"string"}],runner:async e=>{const{obj:t,key:n}=e.options;return typeof t!="object"?(xt(e,"Requires an object argument."),!1):Object.hasOwn(t,n)}}),fCe=Be.FromOptions({keyword:"for_of",argTypes:[{name:"target",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{target:t,predicateLabel:n}=e.options;if(typeof t!="object")return xt(e,"Requires an object argument."),!1;for(const r of t)await un().runLabelFunction(n,r,...e.args.slice(2))}}),dCe=Be.FromOptions({keyword:"for_in",argTypes:[{name:"target",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{target:t,predicateLabel:n}=e.options;if(typeof t!="object")return xt(e,"Requires an object argument."),!1;for(const r in t)await un().runLabelFunction(n,r,t[r],...e.args.slice(2))}});function hCe(e){e.addCommand(Hje),e.addCommand(Gje),e.addCommand(Sje),e.addCommand(T2e),e.addCommand(O2e),e.addCommand(E2e),e.addCommand(jje),e.addCommand(kje),e.addCommand(xje),e.addCommand(_je),e.addCommand(U2e),e.addCommand(z2e),e.addCommand(q2e),e.addCommand(H2e),e.addCommand(Y2e),e.addCommand(J2e),e.addCommand(Q2e),e.addCommand(pSe),e.addCommand(mSe),e.addCommand(vSe),e.addCommand(gSe),e.addCommand(wje),e.addCommand(Cje),e.addCommand($je),e.addCommand(Tje),e.addCommand(Oje),e.addCommand(Eje),e.addCommand(Aje),e.addCommand(Mje),e.addCommand(Pje),e.addCommand(Nje),e.addCommand(Ije),e.addCommand(Dje),e.addCommand(Lje),e.addCommand(Fje),e.addCommand(Vje),e.addCommand(Rje),e.addCommand(Bje),e.addCommand(G2e),e.addCommand(K2e),e.addCommand(tje),e.addCommand(X2e),e.addCommand(Z2e),e.addCommand(A2e),e.addCommand(M2e),e.addCommand(P2e),e.addCommand(N2e),e.addCommand(I2e),e.addCommand(D2e),e.addCommand(L2e),e.addCommand(B2e),e.addCommand(R2e),e.addCommand(F2e),e.addCommand(lje),e.addCommand(cje),e.addCommand(uje),e.addCommand(fje),e.addCommand(yje),e.addCommand(bje),e.addCommand(dje),e.addCommand(hje),e.addCommand(pje),e.addCommand(mje),e.addCommand(vje),e.addCommand(gje),e.addCommand(nje),e.addCommand(rje),e.addCommand(aje),e.addCommand(sje),e.addCommand(oje),e.addCommand(ije),e.addCommand(b2e),e.addCommand(w2e),e.addCommand(k2e),e.addCommand(j2e),e.addCommand($2e),e.addCommand(S2e),e.addCommand(C2e),e.addCommand(x2e),e.addCommand(_2e),e.addCommand($z),e.addCommand(Zje),e.addCommand(eSe),e.addCommand(tSe),e.addCommand(nSe),e.addCommand(rSe),e.addCommand(oSe),e.addCommand(iSe),e.addCommand(aSe),e.addCommand(sSe),e.addCommand(lSe),e.addCommand(cSe),e.addCommand(fSe),e.addCommand(uSe),e.addCommand(dSe),e.addCommand(hSe),e.addCommand(ySe),e.addCommand(bSe),e.addCommand(wSe),e.addCommand(kSe),e.addCommand(xSe),e.addCommand(_Se),e.addCommand(jSe),e.addCommand(SSe),e.addCommand(CSe),e.addCommand($Se),e.addCommand(TSe),e.addCommand(OSe),e.addCommand(ESe),e.addCommand(ASe),e.addCommand(MSe),e.addCommand(PSe),e.addCommand(NSe),e.addCommand(ISe),e.addCommand(DSe),e.addCommand(lCe),e.addCommand(cCe),e.addCommand(sCe),e.addCommand(uCe),e.addCommand(fCe),e.addCommand(dCe),e.addCommand(zSe),e.addCommand(qSe),e.addCommand(USe),e.addCommand(HSe),e.addCommand(WSe),e.addCommand(KSe),e.addCommand(GSe),e.addCommand(JSe),e.addCommand(QSe),e.addCommand(YSe),e.addCommand(XSe),e.addCommand(ZSe),e.addCommand(eCe),e.addCommand(tCe),e.addCommand(nCe),e.addCommand(rCe),e.addCommand(oCe),e.addCommand(aCe),e.addCommand(iCe)}const pCe=b.defineComponent({data(){return{muted:!1,volumes:[],modeNames:{master:"Master volume:",music:"Music:",ambiant:"Ambiant:",sound:"Sound effects:"}}},mounted(){const e=xo(),t=Cs.Howler.volume();this.volumes.push({mode:"master",volume:t}),e.modes.forEach((n,r)=>{this.volumes.push({mode:r,volume:e.modes.get(r).options.volume})})},methods:{changeVolume(e,t){const n=t.target;e==="master"?xo().setMasterVolume(n.value):xo().setModeVolume(e,n.value)},toggleMute(){this.muted?(Cs.Howler.mute(!1),this.muted=!1):(Cs.Howler.mute(!0),this.muted=!0)}}}),QOe="",mCe={class:"volume-controls"},vCe=b.createElementVNode("h3",{class:"subtitle"},"Volume",-1),gCe={for:"volume",class:"volume-label"},yCe=["onUpdate:modelValue","onChange"];function bCe(e,t,n,r,o,i){return b.openBlock(),b.createElementBlock("div",mCe,[vCe,(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.volumes,(a,s)=>(b.openBlock(),b.createElementBlock("div",{class:"volume-control",key:a.mode},[b.createElementVNode("label",gCe,b.toDisplayString(e.modeNames[a.mode]),1),b.withDirectives(b.createElementVNode("input",{ref_for:!0,ref:"slider",class:"volume-slider",type:"range",id:"volume",name:"volume",min:"0",max:"1",step:"0.1","onUpdate:modelValue":l=>e.volumes[s].volume=l,onChange:l=>e.changeVolume(a.mode,l)},null,40,yCe),[[b.vModelText,e.volumes[s].volume]])]))),128))])}const wCe=Xa(pCe,[["render",bCe]]),kCe={class:"settings-widget-container"},xCe=["for","id"],_Ce=["id","name","min","max","step"],jCe=["id","name"],SCe=["id","name"],CCe={class:"mx-8"},$Ce={class:"text-left setting-description"},TCe=b.createElementVNode("hr",{class:"h-px my-8 bg-gray-200 border-0 dark:bg-gray-700 setting-separator"},null,-1),OCe=b.defineComponent({__name:"setting-widget",props:{settingId:{}},setup(e){const t=e,n=Bi(),r=b.computed(()=>n.getSetting(t.settingId)),o=b.ref(r.value),i=b.computed(()=>n.getSettingSchema(t.settingId));function a(s){let l=s;V9(i.value)&&(l=Math.round(l)),n.setSetting(t.settingId,l)}return b.watch(o,s=>{a(s)}),(s,l)=>(b.openBlock(),b.createElementBlock(b.Fragment,null,[b.createElementVNode("div",kCe,[b.createElementVNode("label",{for:s.settingId,class:"setting-label",id:`setting-label-${s.settingId}`},b.toDisplayString(i.value.name),9,xCe),b.unref(ove)(i.value)||b.unref(V9)(i.value)?b.withDirectives((b.openBlock(),b.createElementBlock("input",{key:0,ref:"slider",class:"number-slider setting-slider",type:"range",id:`setting-slider-${s.settingId}`,name:s.settingId,min:i.value.minValue,max:i.value.maxValue,step:i.value.step,"onUpdate:modelValue":l[0]||(l[0]=c=>o.value=c)},null,8,_Ce)),[[b.vModelText,o.value]]):b.unref(ive)(i.value)?b.withDirectives((b.openBlock(),b.createElementBlock("input",{key:1,type:"checkbox",class:"setting-checkbox",id:`setting-checkbox-${s.settingId}`,name:s.settingId,"onUpdate:modelValue":l[1]||(l[1]=c=>o.value=c)},null,8,jCe)),[[b.vModelCheckbox,o.value]]):b.unref(ave)(i.value)?b.withDirectives((b.openBlock(),b.createElementBlock("input",{key:2,type:"text",class:"setting-text",id:`setting-text-${s.settingId}`,name:s.settingId,"onUpdate:modelValue":l[2]||(l[2]=c=>o.value=c)},null,8,SCe)),[[b.vModelText,o.value]]):b.createCommentVNode("",!0),b.createElementVNode("span",CCe,b.toDisplayString(o.value),1)]),b.createElementVNode("p",$Ce,b.toDisplayString(i.value.description),1),TCe],64))}}),YOe="",ECe={class:"container mx-auto settings-menu-container"},ACe=b.createElementVNode("h2",{class:"settings-menu-title subtitle text-center"},"Settings",-1),MCe=b.defineComponent({__name:"settings-menu",setup(e){const t=Bi(),n=b.computed(()=>t.getAllSettingSchemas());return(r,o)=>(b.openBlock(),b.createElementBlock("div",ECe,[ACe,(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(n.value,(i,a)=>(b.openBlock(),b.createBlock(OCe,{settingId:a,key:a},null,8,["settingId"]))),128))]))}}),XOe="",PCe={class:"menu-content"},NCe=b.defineComponent({__name:"MainMenu",props:{inputListener:{}},emits:["close"],setup(e,{emit:t}){const n=e,r=t,o=b.ref(null),i=b.ref(null);function a(){window.close()}function s(){Gt().menuReturn(),l()}function l(){r("close")}function c(){const f=ku(Gt().playTime.start,Gt().playTime.previousPlaytime);return ey(f/1e3)}return b.onMounted(()=>{i.value=vl({mode:"list",container:o,listener:n.inputListener,onChosen:f=>{f===0?s():f===1&&a()}}),i.value.mount()}),b.onUnmounted(()=>{i.value&&(i.value.disable(),i.value=null)}),(f,u)=>(b.openBlock(),b.createElementBlock("div",PCe,[b.createElementVNode("h3",null,"Play time: "+b.toDisplayString(c()),1),b.createVNode(wCe),b.createElementVNode("div",{ref_key:"mainActions",ref:o},[b.createElementVNode("button",{class:"button title quit-button",onClick:s}," Main Menu "),b.createElementVNode("button",{class:"button title quit-button",onClick:a},"Exit")],512),b.createVNode(MCe)]))}}),ZOe="",ICe={class:"sub-tabs-controller"},DCe={key:0,class:"sub-tabs-controller__tabs"},LCe={key:1,class:"sub-tab-content"},RCe={key:2},BCe=[b.createElementVNode("div",{class:"sub-tab-content__empty"},[b.createElementVNode("p",null,"No tab selected")],-1)],FCe=b.defineComponent({__name:"SubTabController",props:{tabs:{},defaultTab:{},inputListener:{}},emits:["tab-change","close"],setup(e,{emit:t}){const n=t,r=e,o=b.ref(r.defaultTab);function i(s){o.value=s,n("tab-change",s)}const a=b.computed(()=>r.tabs[o.value]);return b.onMounted(()=>{r.inputListener.actions.subPreviousTab={press:()=>{o.value>0&&i(o.value-1)}},r.inputListener.actions.subNextTab={press:()=>{o.value<r.tabs.length-1&&i(o.value+1)}}}),b.onUnmounted(()=>{delete r.inputListener.actions.subPreviousTab,delete r.inputListener.actions.subNextTab}),(s,l)=>(b.openBlock(),b.createElementBlock("div",ICe,[s.tabs.length>1?(b.openBlock(),b.createElementBlock("div",DCe,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(s.tabs,(c,f)=>(b.openBlock(),b.createBlock(jz,{key:c.id,tab:c,active:f===o.value,onClick:()=>i(f)},null,8,["tab","active","onClick"]))),128))])):b.createCommentVNode("",!0),a.value?(b.openBlock(),b.createElementBlock("div",LCe,[a.value?(b.openBlock(),b.createBlock(b.resolveDynamicComponent(a.value.component),b.mergeProps({key:a.value.id,inputListener:s.inputListener},a.value.extraProps,{onClose:l[0]||(l[0]=c=>s.$emit("close"))}),null,16,["inputListener"])):b.createCommentVNode("",!0)])):(b.openBlock(),b.createElementBlock("div",RCe,BCe))]))}}),tEe="",VCe=["onClick"],zCe={class:"item-title"},qCe={class:"item-amount"},UCe=b.defineComponent({__name:"inventory-section",props:{items:{},title:{},id:{},inputListener:{}},emits:["chosen"],setup(e,{emit:t}){const n=e,r=b.ref(null),o=b.ref(null),i=t;function a(c){i("chosen",c)}function s(c){return{backgroundImage:`url(${ui(Ja(c).icon)})`}}function l(c){return Ja(c).name}return b.onMounted(()=>{o.value=vl({mode:"grid",listener:n.inputListener,columns:3,container:r,onChosen:c=>{a(n.items[c].id)}}),o.value.mount()}),b.onUnmounted(()=>{o.value&&(o.value.disable(),o.value=null)}),(c,f)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["inventory-section",`section-${n.id}`])},[b.createElementVNode("h3",null,b.toDisplayString(c.title),1),b.createElementVNode("div",{class:"inventory-section-items",ref_key:"itemsContainer",ref:r},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(c.items,u=>(b.openBlock(),b.createElementBlock("button",{onClick:()=>a(u.id),class:b.normalizeClass(["item-display",`item-${u.id}`]),style:b.normalizeStyle(s(u.id)),key:u.id},[b.createElementVNode("h3",zCe,b.toDisplayString(l(u.id)),1),b.createElementVNode("h3",qCe,b.toDisplayString(u.amount),1)],14,VCe))),128))],512)],2))}}),nEe="",HCe={class:"flex flex-row item-description-container"},WCe={class:"flex item-left"},KCe={class:"flex item-right"},GCe=b.createElementVNode("hr",{class:"hr-solid"},null,-1),JCe=b.defineComponent({__name:"item-details",props:{item:{}},emits:["use","close"],setup(e,{emit:t}){const n=e,r=b.ref(null),o=b.computed(()=>Ja(n.item.id)),i=b.computed(()=>({backgroundImage:`url(${ui(o.value.icon)})`})),a=t,s=b.computed(()=>so().canUseItem(n.item));function l(){s.value&&a("use")}function c(){a("close")}return b.onMounted(()=>{r.value=Nr().registerInputListener("item-details",{continue:{press:()=>{s.value&&l()}},cancel:{press:()=>{c()}}})}),b.onUnmounted(()=>{r.value&&(Nr().unregisterInputListener(r.value),r.value=null)}),(f,u)=>(b.openBlock(),b.createElementBlock("div",null,[b.createElementVNode("div",HCe,[b.createElementVNode("div",WCe,[b.createElementVNode("div",{class:"item-display",style:b.normalizeStyle(i.value)},null,4)]),b.createElementVNode("div",KCe,[b.createElementVNode("h2",null,b.toDisplayString(o.value.name),1),GCe,b.createElementVNode("h3",null,"Amount: "+b.toDisplayString(f.item.amount),1),b.createElementVNode("p",null,b.toDisplayString(o.value.description),1),b.createElementVNode("button",{onClick:l,class:b.normalizeClass(["button",s.value?"":"disabled"])}," Use ",2)])]),b.createElementVNode("button",{class:"button",onClick:c},b.toDisplayString("<--"))]))}}),rEe="",QCe={key:0},YCe={key:2},XCe=[b.createElementVNode("h2",null,"The inventory is empty!",-1)],ZCe=b.defineComponent({__name:"inventory-ui",props:{section:{},inputListener:{}},emits:["close"],setup(e,{emit:t}){const n=so(),r=b.computed(()=>n.items),o=b.ref(!1),i=b.computed(()=>o.value?r.value[o.value]:null);function a(){Qo().closeMenu()}function s(f){o.value=f}function l(){o.value=!1}function c(){n.useItem(i.value),a()}return(f,u)=>!i.value&&f.section.items.length>0?(b.openBlock(),b.createElementBlock("div",QCe,[b.createVNode(UCe,{items:f.section.items,title:f.section.title,inputListener:f.inputListener,id:f.section.id,onChosen:s},null,8,["items","title","inputListener","id"])])):typeof o.value=="string"?(b.openBlock(),b.createBlock(JCe,{key:1,item:r.value[o.value],onUse:c,onClose:l},null,8,["item"])):(b.openBlock(),b.createElementBlock("div",YCe,XCe))}}),iEe="",e$e=b.defineComponent({__name:"InventoryTab",props:{inputListener:{}},setup(e){const t=so(),n=b.computed(()=>t.items),r=b.computed(()=>Object.values(n.value).filter(a=>a.amount>0?!0:!!Ja(a.id).showIfEmpty)),o=b.computed(()=>{const a=Jr().items.categories,s=[];if(a.length>1){const l={id:"all",title:"All",items:r.value};s.push(l)}for(const l in a){const c=a[l],f=c.id,u=r.value.filter(d=>Ja(d.id).category===f);s.push({id:f,title:c.title,items:u})}return s}),i=b.computed(()=>{const a=[];return o.value.forEach(s=>{a.push({id:s.id,label:s.title,component:ZCe,extraProps:{section:s}})}),a});return(a,s)=>(b.openBlock(),b.createElementBlock("div",null,[b.createVNode(FCe,{tabs:i.value,defaultTab:0,inputListener:a.inputListener},null,8,["tabs","inputListener"])]))}}),t$e=["id"],n$e={class:"obtained-status"},r$e={class:"achievement-title"},o$e={class:"achievement-description"},i$e=b.defineComponent({__name:"achievement-tile",props:{achievement:{}},setup(e){const t=e,n=ul(),r=b.computed(()=>n.getExistingAchievement(t.achievement)),o=b.computed(()=>H2(t.achievement)),i=ld().secretAchievements??{censorName:!0,censorDescription:!0},a=b.computed(()=>{let f=r.value.unlocked?o.value.icon:o.value.lockedIcon;return f||(f=ld().defaultAchievementIcon),{backgroundImage:`url(${ui(f)})`}}),s=b.computed(()=>!o.value.secret||!i.censorName?o.value.name:"Hidden Achievement"),l=b.computed(()=>!o.value.secret||!i.censorDescription?o.value.description:"This achievement is hidden. Complete it to discover more."),c=b.computed(()=>r.value.unlocked?`Obtained ${new Date(r.value.unlockTime).toLocaleDateString()}`:"Not obtained yet");return(f,u)=>(b.openBlock(),b.createElementBlock("div",{class:"achievement-display tile",id:`achievement-${f.achievement}`},[b.createElementVNode("div",{class:"achievement-icon",style:b.normalizeStyle(a.value)},null,4),b.createElementVNode("p",n$e,b.toDisplayString(c.value),1),b.createElementVNode("h3",r$e,b.toDisplayString(s.value),1),b.createElementVNode("p",o$e,b.toDisplayString(l.value),1)],8,t$e))}}),aEe="",a$e={class:"achievements-section-achievements"},s$e=b.defineComponent({__name:"achievements-section",props:{achievements:{},title:{},id:{}},setup(e){const t=e;return(n,r)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["achievements-section",`section-${t.id}`])},[b.createElementVNode("h3",null,b.toDisplayString(n.title),1),b.createElementVNode("div",a$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(n.achievements,o=>(b.openBlock(),b.createBlock(i$e,{achievement:o.id,key:o.id},null,8,["achievement"]))),128))])],2))}}),sEe="",l$e=b.defineComponent({setup(){const e=ul(),t=Yn(),n=b.computed(()=>e.achievements),r=b.computed(()=>t.currentDialog.choices);return{achievements:n,currentlyChoosing:r}},emits:["close"],data(){return{chosenId:!1}},mounted(){},methods:{close(){this.$emit("close")},clickAchievement(e){this.chosenId=e},closeAchievement(){this.chosenId=!1}},computed:{achievementsToDisplay(){return Object.values(this.achievements)},chosenAchievement(){return this.chosenId?this.achievements[this.chosenId]:null},chosenAchievementConf(){return this.chosenId?this.achievementConf[this.chosenId]:null},achievementConf(){return Jr().achievements.achievements},sections(){const e=Jr().achievements.categories,t=[];return this.achievementsToDisplay.reduce((r,o)=>{const i=H2(o.id).category??"default",a=e.find(l=>l.id===i);if(!a)return At(`Unknown category ${i}`),r;let s=r.find(l=>l.id===i);return s||(s={id:i,title:a.title,achievements:[]},r.push(s)),s.achievements.push(o),r},t)}},components:{AchievementsSection:s$e}}),lEe="",c$e={key:0},u$e={key:1},f$e=[b.createElementVNode("h2",null,"The achievements section is empty!",-1)];function d$e(e,t,n,r,o,i){const a=b.resolveComponent("AchievementsSection");return Object.keys(e.achievementsToDisplay).length>0?(b.openBlock(),b.createElementBlock("div",c$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.sections,s=>(b.openBlock(),b.createBlock(a,{key:s.id,achievements:s.achievements,title:s.title,id:s.id,onChosen:e.clickAchievement},null,8,["achievements","title","id","onChosen"]))),128))])):(b.openBlock(),b.createElementBlock("div",u$e,f$e))}const h$e=Xa(l$e,[["render",d$e]]),p$e={class:"quest-display"},m$e={class:"quest-title"},v$e={class:"quest-description"},g$e={key:0,class:"quest-objectives-container list-disc"},y$e=b.defineComponent({__name:"QuestDetails",props:{quest:{}},setup(e){const t=e,n=b.computed(()=>pl(t.quest.id));function r(s){return Tp(t.quest.id,s)}const o=b.computed(()=>{switch(t.quest.state){case"hidden":return" Hidden";case"unlocked":return"";case"completed":return" (Completed)";default:return" Unknown"}}),i=b.computed(()=>t.quest.ending?rz(t.quest.id,t.quest.ending).description:t.quest.succeeded&&n.value.succeededDescription?n.value.succeededDescription:!t.quest.succeeded&&n.value.failedDescription?n.value.failedDescription:n.value.description),a=b.computed(()=>Object.values(t.quest.objectives).filter(s=>s.state!=="hidden"));return(s,l)=>(b.openBlock(),b.createElementBlock("div",p$e,[b.createElementVNode("div",{class:b.normalizeClass(["quest-header",s.quest.state==="completed"?"quest-completed":"quest-in-progress"])},[b.createElementVNode("h3",m$e,b.toDisplayString(n.value.title)+" "+b.toDisplayString(o.value),1)],2),b.createElementVNode("p",v$e,b.toDisplayString(i.value),1),s.quest.state!=="completed"?(b.openBlock(),b.createElementBlock("ul",g$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(a.value,c=>(b.openBlock(),b.createElementBlock("li",{class:"quest-objective-display",key:c.id},[b.createElementVNode("p",{class:b.normalizeClass(["quest-objective-description",c.state==="completed"?"quest-objective-completed":"quest-objctive-in-progress"])},b.toDisplayString(r(c.id).description),3)]))),128))])):b.createCommentVNode("",!0)]))}}),uEe="",b$e={class:"quest-list-title"},w$e=b.defineComponent({__name:"QuestDisplay",props:{quest:{}},setup(e){const t=e,n=b.computed(()=>pl(t.quest.id));return(r,o)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["quest-list-display",r.quest.state==="completed"?"quest-list-completed":"quest-list-in-progress"])},[b.createElementVNode("p",b$e,b.toDisplayString(n.value.title),1)],2))}}),fEe="",k$e={key:0},x$e={key:0},_$e={key:1},j$e=b.defineComponent({__name:"quests-list-section",props:{quests:{},sectionId:{},title:{},fallbackText:{}},emits:["quest-selected"],setup(e,{emit:t}){const n=e,r=b.computed(()=>id().categories),o=b.computed(()=>{const i=[];return n.quests.reduce((s,l)=>{const c=pl(l.id).category??"default",f=r.value.find(d=>d.id===c);if(!f)return At(`Quest category ${c} not found in config`),s;let u=s.find(d=>d.category.id===c);return u||(u={category:f,quests:[]},s.push(u)),u.quests.push(l),s},i)});return(i,a)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass([`${i.sectionId}-quests-container`,"quests-section"])},[b.createElementVNode("h3",null,b.toDisplayString(i.title),1),i.quests.length>0?(b.openBlock(),b.createElementBlock("div",k$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(o.value,s=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass([`${i.sectionId}-${s.category.id}-category`,"quests-category"]),key:s.category.id},[r.value.length>1?(b.openBlock(),b.createElementBlock("h4",x$e,b.toDisplayString(s.category.title),1)):b.createCommentVNode("",!0),b.createElementVNode("div",{class:b.normalizeClass(`${i.sectionId}-${s.category.id}-quests`)},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(s.quests,l=>(b.openBlock(),b.createBlock(w$e,{key:l.id,quest:l,onClick:c=>i.$emit("quest-selected",l)},null,8,["quest","onClick"]))),128))],2)],2))),128))])):(b.openBlock(),b.createElementBlock("div",_$e,[b.createElementVNode("p",null,b.toDisplayString(i.fallbackText),1)]))],2))}}),dEe="",S$e=b.defineComponent({setup(){const e=eo(),t=b.computed(()=>e.quests),n=b.ref(null);return{quests:t,selectedQuest:n}},computed:{questsToDisplay(){return Object.values(this.quests).filter(e=>e.state!=="hidden")},activeQuests(){return this.questsToDisplay.filter(e=>e.state==="unlocked")},completedQuests(){return this.questsToDisplay.filter(e=>e.state==="completed")},questsUiClass(){return Pr().layoutMode==="horizontal"?"quests-ui-horizontal":"quests-ui-vertical"}},mounted(){this.activeQuests.length>0?this.selectedQuest=this.activeQuests[0]:this.completedQuests.length>0&&(this.selectedQuest=this.completedQuests[0])},methods:{clickOnQuest(e){this.selectedQuest=e}},components:{QuestDetails:y$e,QuestsListSection:j$e}}),hEe="",C$e={class:"quests-list-container"},$$e={class:"quest-details"};function T$e(e,t,n,r,o,i){const a=b.resolveComponent("QuestsListSection"),s=b.resolveComponent("QuestDetails");return b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["quests-ui",e.questsUiClass])},[b.createElementVNode("div",C$e,[b.createVNode(a,{quests:e.activeQuests,sectionId:"active",title:"Active Quests",fallbackText:"No active quests",onQuestSelected:e.clickOnQuest},null,8,["quests","onQuestSelected"]),b.createVNode(a,{quests:e.completedQuests,sectionId:"completed",title:"Completed Quests",fallbackText:"No completed quests",onQuestSelected:e.clickOnQuest},null,8,["quests","onQuestSelected"])]),b.createElementVNode("div",$$e,[e.selectedQuest?(b.openBlock(),b.createBlock(s,{key:0,quest:e.selectedQuest},null,8,["quest"])):b.createCommentVNode("",!0)])],2)}const O$e=Xa(S$e,[["render",T$e]]);function Az(e){const t=Cr(),n=b.computed(()=>t.skills),r=b.computed(()=>n.value[e]),o=b.computed(()=>Ga().skills),i=b.computed(()=>Ga().skillOptions.xpPerLevel),a=b.computed(()=>({backgroundImage:`url(${ui(o.value[e].icon)})`})),s=b.computed(()=>o.value[e].name),l=b.computed(()=>o.value[e].description),c=b.computed(()=>`Level ${n.value[e].level}`);return{skills:n,skillsStore:t,skillConfig:o,xpPerLevel:i,skillState:r,skillStyle:a,skillName:s,skillDescription:l,skillLevelText:c}}const E$e=e=>(b.pushScopeId("data-v-db9d98bf"),e=e(),b.popScopeId(),e),A$e=["id"],M$e={class:"flex flex-row skill-description-container"},P$e={class:"flex skill-left"},N$e={class:"flex skill-right"},I$e=E$e(()=>b.createElementVNode("hr",{class:"hr-solid"},null,-1)),D$e=["innerHTML"],L$e=b.defineComponent({__name:"SkillDetails",props:{chosenSkill:{},inputListener:{}},emits:["cancel"],setup(e,{emit:t}){const n=e,r=t,o=b.ref(null),i=b.ref(null);function a(){r("cancel")}const{skillStyle:s,skillName:l,skillDescription:c,skillLevelText:f}=Az(n.chosenSkill);return b.onMounted(()=>{o.value=vl({mode:"list",listener:n.inputListener,container:i,onChosen:()=>{a()}}),o.value.mount()}),b.onUnmounted(()=>{o.value&&(o.value.disable(),o.value=null)}),(u,d)=>(b.openBlock(),b.createElementBlock("div",{id:`skill-display-${u.chosenSkill}`},[b.createElementVNode("div",M$e,[b.createElementVNode("div",P$e,[b.createElementVNode("div",{class:"skill-display",style:b.normalizeStyle(b.unref(s))},null,4)]),b.createElementVNode("div",N$e,[b.createElementVNode("h2",null,b.toDisplayString(b.unref(l)),1),I$e,b.createElementVNode("h3",null,b.toDisplayString(b.unref(f)),1),b.createElementVNode("p",{innerHTML:b.unref(c)},null,8,D$e)])]),b.createElementVNode("div",{ref_key:"buttonsContainer",ref:i},[b.createElementVNode("button",{class:"button",onClick:a},b.toDisplayString("<--"))],512)],8,A$e))}}),pEe="",R$e=Xa(L$e,[["__scopeId","data-v-db9d98bf"]]),B$e={class:"skill-title"},F$e={class:"skill-xp-container"},V$e={class:"skill-xp-text"},z$e={class:"skill-level"},q$e=b.defineComponent({__name:"SkillGridElement",props:{chosenSkill:{},inputListener:{}},emits:["choose"],setup(e,{expose:t,emit:n}){const r=e,o=b.ref(null);t({gridElement:o});const i=n;function a(){i("choose")}const{skillStyle:s,skillName:l,skillState:c,xpPerLevel:f}=Az(r.chosenSkill),u=b.computed(()=>({width:`${Math.floor(c.value.xp/f.value*100)}%`}));return(d,h)=>(b.openBlock(),b.createElementBlock("button",{onClick:a,class:"skill-grid-element",style:b.normalizeStyle(b.unref(s)),ref_key:"gridElement",ref:o},[b.createElementVNode("h3",B$e,b.toDisplayString(b.unref(l)),1),b.createElementVNode("div",F$e,[b.createElementVNode("div",{class:"skill-xp-bar",style:b.normalizeStyle(u.value)},null,4),b.createElementVNode("h3",V$e,b.toDisplayString(b.unref(c).xp)+" / "+b.toDisplayString(b.unref(f))+" XP",1)]),b.createElementVNode("h3",z$e,b.toDisplayString(b.unref(c).level),1)],4))}}),mEe="",U$e=Xa(q$e,[["__scopeId","data-v-8d457bf9"]]),H$e={class:"skills-container"},W$e=b.defineComponent({__name:"SkillsGrid",props:{inputListener:{},lastChosenSkill:{type:[String,Boolean]}},emits:["choose"],setup(e,{emit:t}){const n=e,r=b.ref([]),o=b.computed(()=>r.value.map(d=>d.gridElement)),i=Cr(),a=b.computed(()=>i.skills),s=b.ref(null),l=t;function c(d){l("choose",d)}const f=b.computed(()=>Ga().skills),u=b.computed(()=>{const d={};for(const h in a.value)f.value[h].hidden&&a.value[h].level<1||(d[h]=a.value[h]);return Object.values(d)});return b.onMounted(()=>{var d;if(s.value=vl({mode:"grid",listener:n.inputListener,elements:o,columns:3,onChosen:h=>{c(u.value[h].id)}}),(d=s.value)==null||d.mount(),typeof n.lastChosenSkill=="string"){const h=u.value.findIndex(p=>p.id===n.lastChosenSkill);h>=0&&s.value.select(h)}}),b.onUnmounted(()=>{s.value&&s.value.disable()}),(d,h)=>(b.openBlock(),b.createElementBlock("div",H$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(u.value,p=>(b.openBlock(),b.createBlock(U$e,{ref_for:!0,ref_key:"skillGridElements",ref:r,key:p.id,onChoose:()=>c(p.id),chosenSkill:p.id,inputListener:d.inputListener},null,8,["onChoose","chosenSkill","inputListener"]))),128))]))}}),vEe="",K$e=Xa(W$e,[["__scopeId","data-v-31202bb8"]]),G$e=b.defineComponent({__name:"SkillsWindow",props:{inputListener:{}},setup(e){const t=b.ref(!1),n=b.ref(!1);function r(i){n.value=i,t.value=i}function o(){t.value=!1}return(i,a)=>t.value?typeof t.value=="string"?(b.openBlock(),b.createBlock(R$e,{key:1,chosenSkill:t.value,inputListener:i.inputListener,onCancel:o},null,8,["chosenSkill","inputListener"])):b.createCommentVNode("",!0):(b.openBlock(),b.createBlock(K$e,{key:0,inputListener:i.inputListener,lastChosenSkill:n.value,onChoose:r},null,8,["inputListener","lastChosenSkill"]))}});function J$e(e){e.component("MainMenu",NCe),e.component("InventoryTab",e$e),e.component("AchievementsUI",h$e),e.component("QuestsUi",O$e),e.component("SkillsWindow",G$e),Qo().menus={system:{label:"System",cssClass:"system-menu",id:"system",tabs:[{id:"system-tab",cssId:"system-tab",text:"System",component:"MainMenu"}],activeTab:0},menu:{label:"Menu",id:"menu",cssClass:"menu-menu",tabs:[{id:"skills",cssId:"skills-menu-button",text:"Skills",condition:()=>Qo().showSkills,component:"SkillsWindow"},{id:"inventory",cssId:"inventory-menu-button",text:"Items",condition:()=>Qo().showInventory,component:"InventoryTab"},{id:"quests",cssId:"quests-menu-button",text:"Quests",condition:()=>Qo().showQuests,component:"QuestsUi"},{id:"achievements",cssId:"achievements-menu-button",text:"Achievements",condition:()=>Qo().showAchievements,component:"AchievementsUI"}],activeTab:0}}}function ij(e,t,n){const r=window.narrat.app;for(const o in t.tabs){const i=t.tabs[o].component;r.component(i,n[i])}Qo().addMenu(e,t)}function Q$e(e,t,n){window.narrat.app.component(t.component,n),Qo().addMenuOption(e,t)}function Y$e(){for(const e of yn.plugins){if(e.customMenuButtons)for(const t of e.customMenuButtons)ij(t.config.id,t.config,t.components);if(e.customMenuTabs)for(const t of e.customMenuTabs)Q$e(t.config.id,t.config,t.component)}}function X$e(e){e.directive("visible",{mounted(t,n){n.value?t.style.visibility="visible":t.style.visibility="hidden"},updated(t,n){n.value?t.style.visibility="visible":t.style.visibility="hidden"}})}class X0{constructor(){Wn(this,"pluginId","narrat-plugin")}onPageLoaded(){}onNarratSetup(){}onAppMounted(){}onAssetsLoaded(){}onGameSetup(){}onGameStart(){}onGameMounted(){}onGameDismounted(){}}function Mz(e){yn.addPlugin(e)}function Pz(e){yn.addCommand(e)}const Z$e={args:[],canvasResizePolicy:0,executable:"",experimentalVK:!1,fileSizes:{"index.pck":54160,"index.wasm":52315256},focusCanvas:!1,gdextensionLibs:[]};function eTe(){window.godotReady=!0,window.narratReadyCallback&&window.narratReadyCallback(),console.log("godot ready")}window.godotReadyCallback=eTe;class Nz extends X0{constructor(n){super();Wn(this,"customCommands",[]);Wn(this,"canvas");Wn(this,"app");Wn(this,"messageQueue",[]);Wn(this,"narrat");Wn(this,"narratReady",!1);Wn(this,"engineConfig");Wn(this,"engine");const r={...Z$e,...n.engineConfigOverrides??{}};n.godotGamePath&&(r.executable=n.godotGamePath),this.engineConfig=r,this.customCommands=[Be.FromOptions({keyword:"godot_pause",argTypes:[],runner:async o=>{this.addMessageForGodot({type:"pause",payload:{}})}}),Be.FromOptions({keyword:"godot_resume",argTypes:[],runner:async o=>{this.addMessageForGodot({type:"resume",payload:{}})}})]}onAppMounted(){const n=document.querySelector("#narrat-app-container");if(!n){console.error("no app");return}this.narrat=window.narrat;const r=document.createElement("canvas");this.app=n,this.canvas=r,r.id="godot-canvas",r.style.position="absolute",r.style.zIndex="0",n.appendChild(r),window.addEventListener("keydown",i=>{if(i.fakeEvent)return;const a=new KeyboardEvent(i.type,i);a.fakeEvent=!0,this.canvas.dispatchEvent(a)}),window.addEventListener("keyup",i=>{if(i.fakeEvent)return;const a=new KeyboardEvent(i.type,i);a.fakeEvent=!0,this.canvas.dispatchEvent(a)}),new window.Engine(this.engineConfig).startGame(),this.resizeCanvas(),window.godot=this,this.narratReady=!0,window.narratReadyCallback&&window.narratReadyCallback()}getCanvas(){return document.querySelector("#godot-canvas")}addMessageForGodot(n){this.messageQueue.unshift(n),window.godotCallback&&window.godotCallback(n)}grabNextMessage(){return this.messageQueue.pop()}async run(n,...r){const o=await this.narrat.run(n,...r),i={type:"run_end",payload:{label:n,args:r,result:o}};this.addMessageForGodot(i)}isJson(n){try{JSON.parse(n)}catch{return!1}return!0}resizeCanvas(){const n=Pr(),r=n.gameWidth,o=n.gameHeight;this.canvas.width=r,this.canvas.height=o,this.canvas.style.width=`${r}px`,this.canvas.style.height=`${o}px`,window.requestAnimationFrame(()=>this.resizeCanvas())}}class Iz extends X0{constructor(n={}){super();Wn(this,"defaultTheme");Wn(this,"themes",[]);Wn(this,"activeTheme");Wn(this,"customCommands");Wn(this,"initialConfig");n.defaultTheme&&(this.defaultTheme=n.defaultTheme),n.themes&&(this.themes=n.themes),this.customCommands=[this.createChangeThemeCommand()]}onNarratSetup(){if(this.defaultTheme){const n=this.themes.find(r=>r.id===this.defaultTheme);if(!n){At(`Theme ${this.defaultTheme} not found`);return}this.setTheme(n)}}addTheme(n){this.themes.push(n)}createChangeThemeCommand(){return Be.FromOptions({keyword:"change_theme",argTypes:[{name:"theme",type:"string"}],runner:async r=>{this.changeTheme(r.options.theme)}})}changeTheme(n){if(n==="default"){this.removeCurrentTheme();return}const r=this.findTheme(n);this.setTheme(r)}findTheme(n){const r=this.themes.find(o=>o.id===n);return r||At(`Theme ${n} not found`),r}setTheme(n){this.activeTheme&&this.removeCurrentTheme(),this.activeTheme={themeTag:this.createThemeTag(n),id:n.id},document.head.appendChild(this.activeTheme.themeTag),n.extendedConfig&&(this.initialConfig=uu({},_o().config),_o().extendConfig(n.extendedConfig))}createThemeTag(n){if(this.isInlineTheme(n)){const r=document.createElement("style");return r.innerHTML=n.css,r}else{const r=document.createElement("link");return r.rel="stylesheet",r.href=n.cssPath,r.id=n.id,r}}isInlineTheme(n){return n.css!==void 0}isExternalTheme(n){return n.cssPath!==void 0}removeCurrentTheme(){this.activeTheme&&(this.activeTheme.themeTag&&this.activeTheme.themeTag.remove(),this.findTheme(this.activeTheme.id).extendedConfig&&(_o().config=this.initialConfig)),this.activeTheme=void 0}}const Dz={css:`body{font-size:52px}
219
+ Error: ${t}`),console.error("============================")}function y2e(e,...t){console.log(`[${e.fileName}:${e.line}] log: `,...t)}class Be{constructor(t,n,r,o){Wn(this,"keyword");Wn(this,"runner");Wn(this,"argTypes");Wn(this,"parser");Wn(this,"onPlayerAnswered");Wn(this,"returnAfterPlayerAnswer");this.keyword=t,this.runner=r,this.argTypes=n,o?this.parser=o:this.parser=fd(this.keyword,this.argTypes),this.returnAfterPlayerAnswer=!1}async run(t,n){let r=await this.runner(t,n);return this.returnAfterPlayerAnswer&&(r=await new Promise((o,i)=>{un().waitForPlayerAnswer(t),t.finishCommand=o})),r}async processPlayerAnswer(t,n){let r=n;return this.onPlayerAnswered&&(r=await this.onPlayerAnswered(t,n)),this.returnAfterPlayerAnswer&&t.finishCommand&&t.finishCommand(r),r}static FromOptions(t){const n=new Be(t.keyword,t.argTypes,t.runner,t.parser);return n.onPlayerAnswered=t.onPlayerAnswered,n.returnAfterPlayerAnswer=t.returnAfterPlayerAnswer??!1,n}}function fd(e,t){let n=[];if(t!=="any"){n=[];const r=t.reduce((o,i)=>(i.optional&&o++,i.type==="rest"&&(o=1/0),o),0);r>=1?n.push(t.length-r):n.push(t.length),n.push(t.length)}return(r,o)=>{const i={newLine:r.currentLine+1},a=o.command.args;return t!=="any"&&(a.length<n[0]||a.length>n[1])?(console.log("Error details"),console.log(o.command),console.log(a),r.parserContext.error(r.line.line,`Command ${e}: Expected ${n.join(" to ")} arguments but got ${a.length}`),i):(o.command.commandType=e,t!=="any"&&o.command.args.forEach((s,l)=>{const c=t[l];!L9(s)&&!R9(s)&&(c.type==="any"||c.type==="rest"||typeof s===c.type||r.parserContext.error(r.line.line,`Command ${e}: Argument #${l+1} (${c.name}) should be a ${c.type}, but got type ${typeof s}: ${JSON.stringify(s)}`))}),{newLine:r.currentLine+1})}}const b2e=new Be("add_level",[{name:"skillKey",type:"string"},{name:"amount",type:"number"}],async e=>{let{skillKey:t,amount:n}=e.options;if((!t||!n)&&xt(e,"add_level command needs a skill id and a value as parameters"),!Number.isInteger(n)){const r=n;n=Math.round(n),console.warn(`add_level expects a level to be an integer. Auto Rounding ${r} to ${n}`)}Cr().incrementSkill(t,n)}),w2e=Be.FromOptions({keyword:"set_level",argTypes:[{name:"skill",type:"string"},{name:"level",type:"number"}],runner:async e=>{let{skill:t,level:n}=e.options;if((!t||!n)&&xt(e,"set_level command needs a skill id and a value as parameters"),!Number.isInteger(n)){const r=n;n=Math.round(n),console.warn(`set_level expects a level to be an integer. Auto Rounding ${r} to ${n}`)}Cr().setSkillLevel(t,n)}}),k2e=new Be("add_xp",[{name:"xpKey",type:"string"},{name:"xpToAdd",type:"number"}],async e=>{const{xpKey:t,xpToAdd:n}=e.options;(!t||!n)&&xt(e,"add_xp command needs a skill id and a value as parameters"),Cr().addXp(t,n)}),x2e=new Be("get_level",[{name:"skillKey",type:"string"}],async e=>{const{skillKey:t}=e.options;t||xt(e,"get_level command needs a skill id as parameter");const n=Cr().getSkill(t);return n||xt(e,`Skill ${t} not found`),n.level}),_2e=new Be("get_xp",[{name:"xpKey",type:"string"}],async e=>{const{xpKey:t}=e.options;t||xt(e,"get_xp command needs a skill id as parameter");const n=Cr().getSkillXp(t);return n||xt(e,`XP ${t} not found`),n}),j2e=new Be("roll",[{name:"id",type:"string"},{name:"skill",type:"string",optional:!0},{name:"difficulty",type:"number",optional:!0},{name:"mode",type:"string",optional:!0}],async e=>{const{id:t}=e.options;let n={id:t};if(e.args.length===1&&nz(t))n={...tz(t),id:t};else{const{skill:o,difficulty:i,mode:a}=e.options;if(!o||!i){xt(e,"roll command needs a skill and a difficulty as parameters, or the skill check id to be configured in skillChecks.yaml");return}n={skill:o,difficulty:i,id:t},a==="hideAfterRoll"&&(n.hideAfterRoll=!0),a==="repeatable"&&(n.repeatable=!0)}return D9(n).succeeded}),S2e=new Be("get_skill_check",[{name:"skillCheckId",type:"string"}],async e=>Cr().getSkillCheck(e.options.skillCheckId)),C2e=new Be("skill_check_result",[{name:"skillCheckId",type:"string"}],async e=>Cr().getSkillCheck(e.options.skillCheckId).succeeded),$2e=new Be("reset_roll",[{name:"id",type:"string"}],async e=>Cr().resetSkillCheck(e.options.id)),T2e=new Be("add_stat",[{name:"statKey",type:"string"},{name:"amountToAdd",type:"number"}],async e=>{const{statKey:t,amountToAdd:n}=e.options;(!t||typeof n!="number")&&xt(e,"add_stat command needs a stat id and a value as parameters"),qa().addStat(t,n)}),O2e=new Be("set_stat",[{name:"statKey",type:"string"},{name:"value",type:"number"}],async e=>{const{statKey:t,value:n}=e.options;(!t||typeof n!="number")&&xt(e,"set_stat command needs a stat id and a value as parameters"),qa().setStat(t,n)}),E2e=new Be("get_stat_value",[{name:"statKey",type:"string"}],async e=>{const{statKey:t}=e.options;return t||xt(e,"get_stat_value command needs a stat id as parameter"),qa().getStatValue(t)}),A2e=Be.FromOptions({keyword:"jump",argTypes:"any",runner:async e=>{(e.args.length<1||typeof e.args[0]!="string")&&xt(e,"requires a label argument");const t=e.args[0],n=un(),r={branchData:yn.script[t],label:t,args:e.args.splice(1),currentIndex:0};if(!yn.script[t]){At(`Trying to jump but label ${t} not found`);return}return n.jumpTarget=r,o0}}),M2e=Be.FromOptions({keyword:"run",argTypes:"any",runner:async e=>{(e.args.length<1||typeof e.args[0]!="string")&&xt(e,"run command needs a label to argument run");const t=e.args[0];return await un().runLabelFunction(t,...e.args.slice(1))}}),P2e=Be.FromOptions({keyword:"var",argTypes:[{name:"name",type:"string"},{name:"value",type:"any"}],runner:async e=>{const{name:t,value:n}=e.options;un().addScopedVariable(t,n)}}),N2e=Be.FromOptions({keyword:"return",argTypes:[{name:"value",type:"any"}],runner:async e=>{const{value:t}=e.options;return un().setReturnValue(t),g_}}),I2e=Be.FromOptions({keyword:"log",argTypes:"any",runner:async e=>{y2e(e,...e.args)}}),D2e=Be.FromOptions({keyword:"menu_return",argTypes:[],runner:async e=>(Gt().menuReturn(),i0)}),L2e=Be.FromOptions({keyword:"save",argTypes:[{name:"name",type:"string",optional:!0}],runner:async e=>{await Gt().manualSave({saveName:e.options.name})}}),R2e=Be.FromOptions({keyword:"save_prompt",argTypes:[{name:"name",type:"string",optional:!0}],runner:async e=>{await Gt().manualSave({saveName:e.options.name,withPrompt:!0})}}),B2e=Be.FromOptions({keyword:"reset_global_save",argTypes:[],runner:async e=>{await Gt().resetGlobalSave()}}),F2e=Be.FromOptions({keyword:"new",argTypes:[{name:"name",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const t=e.options.name;if(t==="Array")return[...e.args.slice(1)];if(t==="Object")return{}}}),V2e=[{name:"mode",type:"string"},{name:"audio",type:"string"},{name:"channel",type:"number",optional:!0}],z2e=new Be("play",V2e,async e=>{const t=xo(),{mode:n,audio:r,channel:o}=e.options,i=Y0(e,n);i&&t.playChannel(i,r,o??0)}),q2e=new Be("resume",[{name:"mode",type:"string"},{name:"channel",type:"number",optional:!0}],async e=>{const t=xo(),{mode:n,channel:r}=e.options,o=Y0(e,n);o&&t.resumeChannel(o,r??0)}),U2e=new Be("pause",[{name:"mode",type:"string"},{name:"channel",type:"number",optional:!0}],async e=>{const t=xo(),{mode:n,channel:r}=e.options,o=Y0(e,n);o&&t.pauseChannel(o,r??0)}),H2e=new Be("stop",[{name:"mode",type:"string"},{name:"channel",type:"number",optional:!0}],async e=>{const t=xo(),{mode:n,channel:r}=e.options,o=Y0(e,n);o&&t.stopChannel(o,r??0)});function Y0(e,t){return W2e(t)?t:(xt(e,`${t} is not a valid audio mode.`),!1)}function W2e(e){return!!S7.includes(e)}const K2e=new Be("set",[{name:"key",type:"string"},{name:"value",type:"any"}],async e=>{const t=cd();iz(t,`$${e.options.key}`,e.options.value)}),G2e=new Be("add",[{name:"key",type:"string"},{name:"value",type:"any"}],async e=>{const t=cd();az(t,`$${e.options.key}`,e.options.value)}),J2e=new Be("set_screen",[{name:"screen",type:"string"},{name:"layer",type:"number",optional:!0},{name:"transitionName",type:"string",optional:!0},{name:"transitionDuration",type:"number",optional:!0},{name:"transitionDelay",type:"number",optional:!0}],async e=>{const t=li();if(!ad(e.options.screen)){xt(e,`Screen ${e.options.screen} doesn't exist in the config`);return}return e.options.transitionName?t.transitionScreen(e.options.screen,{transition:e.options.transitionName,duration:e.options.transitionDuration,delay:e.options.transitionDelay},e.options.layer):t.setScreen(e.options.screen,e.options.layer??0)}),Q2e=new Be("empty_layer",[{name:"layer",type:"number"},{name:"transitionName",type:"string",optional:!0},{name:"transitionDuration",type:"number",optional:!0},{name:"transitionDelay",type:"number",optional:!0}],async e=>{const t=li();return e.options.transitionName?t.emptyLayer(e.options.layer,{transition:e.options.transitionName,duration:e.options.transitionDuration,delay:e.options.transitionDelay}):t.emptyLayer(e.options.layer)}),Y2e=new Be("set_button",[{name:"buttonId",type:"string"},{name:"state",type:"any"}],async e=>{const{buttonId:t,state:n}=e.options,r=li();if(!pc(t)){xt(e,`Button ${t} doesn't exist in the config`);return}r.changeButton(t,n)}),X2e=Be.FromOptions({keyword:"talk",argTypes:[{name:"speaker",type:"string"},{name:"pose",type:"string"},{name:"text",type:"string"}],runner:async(e,t)=>{await k_({speaker:e.options.speaker,pose:e.options.pose,cssClass:"talk-command",text:`"${e.options.text}"`,choices:t,interactive:!0})},returnAfterPlayerAnswer:!0}),Z2e=Be.FromOptions({keyword:"think",argTypes:[{name:"speaker",type:"string"},{name:"pose",type:"string"},{name:"text",type:"string"}],runner:async(e,t)=>{await k_({speaker:e.options.speaker,pose:e.options.pose,cssClass:"think-command",text:`${e.options.text}`,choices:t,interactive:!0})},returnAfterPlayerAnswer:!0}),eje=()=>{const e=fd("text",[]);return(t,n)=>{const r=e(t,n);return n.command.staticOptions={text:n.code.substring(1,n.code.length-1)},r}},tje=Be.FromOptions({keyword:"text",argTypes:[],runner:async(e,t)=>{await k_({speaker:_o().gameCharacter,cssClass:"text-command",text:e.staticOptions.text,choices:t,interactive:!0})},parser:eje(),returnAfterPlayerAnswer:!0}),nje=new Be("add_item",[{name:"id",type:"string"},{name:"amount",type:"number"}],async e=>{const{id:t,amount:n}=e.options;so().add({id:t,amount:n})}),rje=new Be("remove_item",[{name:"id",type:"string"},{name:"amount",type:"number"}],async e=>{const{id:t,amount:n}=e.options;so().remove({id:t,amount:n})}),oje=new Be("has_item?",[{name:"id",type:"string"},{name:"amount",type:"number",optional:!0}],async e=>{const{id:t,amount:n}=e.options;return so().hasItem(t,n)}),ije=new Be("item_amount?",[{name:"id",type:"string"}],async e=>{const{id:t}=e.options;return so().getItemAmount(t)}),aje=new Be("enable_interaction",[{name:"tag",type:"string"}],async e=>{const t=e.options.tag;so().enableInteraction(t)}),sje=new Be("disable_interaction",[{name:"tag",type:"string"}],async e=>{const t=e.options.tag;so().disableInteraction(t)}),lje=new Be("start_quest",[{name:"questId",type:"string"}],async e=>{const t=e.options.questId;eo().startQuest(t)}),cje=new Be("start_objective",[{name:"questId",type:"string"},{name:"objectiveId",type:"string"}],async e=>{const{questId:t,objectiveId:n}=e.options;eo().startObjective(t,n)}),uje=new Be("complete_objective",[{name:"questId",type:"string"},{name:"objectiveId",type:"string"}],async e=>{const{questId:t,objectiveId:n}=e.options;eo().completeObjective(t,n)}),fje=new Be("complete_quest",[{name:"questId",type:"string"},{name:"ending",type:"any",optional:!0}],async e=>{const{questId:t,ending:n}=e.options;eo().completeQuest(t,n)}),dje=new Be("quest_completed?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().isQuestCompleted(t)}),hje=new Be("quest_succeeded?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().isQuestSucceeded(t)}),pje=new Be("quest_failed?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().isQuestFailed(t)}),mje=new Be("quest_ending?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().getQuestEnding(t)}),vje=new Be("quest_has_ending?",[{name:"questId",type:"string"},{name:"ending",type:"string"}],async e=>{const{questId:t,ending:n}=e.options;return eo().questHasEnding(t,n)}),gje=new Be("objective_completed?",[{name:"questId",type:"string"},{name:"objectiveId",type:"string"}],async e=>{const{questId:t,objectiveId:n}=e.options;return eo().isObjectiveCompleted(t,n)}),yje=new Be("quest_started?",[{name:"questId",type:"string"}],async e=>{const{questId:t}=e.options;return eo().isQuestStarted(t)}),bje=new Be("objective_started?",[{name:"questId",type:"string"},{name:"objectiveId",type:"string"}],async e=>{const{questId:t,objectiveId:n}=e.options;return eo().isObjectiveStarted(t,n)}),wje=Be.FromOptions({keyword:"wait",argTypes:[{name:"duration",type:"number"}],runner:async e=>{await _i(e.options.duration)}}),kje=new Be("notify",[{name:"text",type:"string"},{name:"description",type:"string",optional:!0},{name:"icon",type:"string",optional:!0}],async e=>{const{text:t,icon:n,description:r}=e.options;Go().addNotification(t,r,n)}),xje=new Be("disable_notifications",[],async e=>{Go().disableNotifications()}),_je=new Be("enable_notifications",[],async e=>{Go().enableNotifications()}),jje=new Be("clear_dialog",[],async e=>{Yn().clearDialog()}),Sje=new Be("if",[{name:"condition",type:"boolean"}],async e=>{const t=[];for(const o of e.staticOptions.elseifs){const i=o.condition,a=await v0(i);t.push(a)}const n=Qve(e,t),r=un();if(n){const o={branchData:{branch:n},currentIndex:0};return r.addAndRunBlock(o)}},(e,t)=>{let n=e.currentLine;fd("if",[{name:"condition",type:"string"}])(e,t);const{lines:o,currentLine:i,line:a}=e,s=t.command;let l,c=i,f=!1;const u=[];for(;!f;){c++;const d=Yve(o,c);if(d&&d.code.startsWith("elseif")){const h=d.expression;if(!Array.isArray(h)){e.parserContext.error(d.line,"Expected an expression after elseif"),f=!0;break}if(h.length>2){e.parserContext.error(d.line,"Expected only one argument after elseif"),f=!0;break}u.push({branch:e.processCommandsFunction(e.parserContext,d.branch,a),condition:L_(e.parserContext,d,h[1])})}else d&&d.code==="else:"?l=e.processCommandsFunction(e.parserContext,d.branch,a):(f=!0,c--)}return s.staticOptions={success:e.processCommandsFunction(e.parserContext,a.branch,a),elseifs:u,failure:l},c++,n=c,{newLine:n}}),Cje=new Be("==","any",async e=>{e.args.length<1&&xt(e,"requires at least 1 arguments");let t=e.args[0],n=!0;for(const r of e.args)if(r!=t){n=!1;break}else t=r;return n}),$je=new Be(">",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t>n}),Tje=new Be("<",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t<n}),Oje=new Be(">=",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t>=n}),Eje=new Be("<=",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t<=n}),Aje=new Be("!=",[{name:"a",type:"any"},{name:"b",type:"any"}],async e=>{const{a:t,b:n}=e.options;return t!=n}),Mje=new Be("!",[{name:"a",type:"any"}],async e=>{const{a:t}=e.options;return!t}),Pje=new Be("&&","any",async e=>{const t=e.args;return e.args.length<2&&xt(e,"requires at least two arguments"),t.reduce((n,r)=>n&&r,!0)}),Nje=new Be("||","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.reduce((t,n)=>t||n,!1))),Ije=new Be("?",[{name:"a",type:"any"},{name:"b",type:"any"},{name:"c",type:"any"}],async e=>{const{a:t,b:n,c:r}=e.options;return t?n:r}),Dje=new Be("+","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.reduce((t,n)=>typeof n=="number"?t+n:(xt(e,"requires all arguments to be numbers"),t),0))),Lje=new Be("-","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.slice(1).reduce((t,n)=>typeof n=="number"?t-n:(xt(e,"requires all arguments to be numbers"),t),e.args[0]))),Rje=new Be("neg",[{name:"a",type:"number"}],async e=>(e.args.length!==1&&xt(e,"requires one argument"),-e.options.a)),Bje=new Be("abs",[{name:"a",type:"number"}],async e=>(e.args.length!==1&&xt(e,"requires one argument"),Math.abs(e.options.a))),Fje=new Be("*","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.reduce((t,n)=>typeof n=="number"?t*n:(xt(e,"requires all arguments to be numbers"),t),1))),Vje=new Be("/","any",async e=>{e.args.length<2&&xt(e,"requires at least two arguments");const t=e.args[0]/e.args[1];return e.args.slice(2).reduce((n,r)=>typeof r=="number"?n/r:(xt(e,"requires all arguments to be numbers"),n),t)}),zje=async e=>{const{prompt:t,choices:n}=e.staticOptions,r=[];for(const[,a]of n.entries()){const s=await v0(a.prompt);r.push(s)}e.options.choiceResults=r;const o=r.map((a,s)=>{var d;let l=!0;a.skillCheck&&(l=((d=a.skillCheck)==null?void 0:d.allowed)??!1);const c=up().hasSeenChoice(t.code,n[s].prompt.code);return{flag:a.flag,seenBefore:c,choice:a.text,originalIndex:s,allowed:l}}).filter(a=>a.choice),i=await QF(t,o);return await Wje(e,i)};function qje(e,t){t.branch||e.parserContext.error(t.line,`Choice option doesn't have any branch to go to (${t.code} - ${t.line})`);let n,r;const o=t.branch;return t.expression[1]==="roll"||t.expression[2]==="roll"?((!o[0].branch||!o[1].branch)&&e.parserContext.error(t.line,`Choice option with a skill roll needs success and failure branches (${t.code} - ${t.line})`),n={success:e.processCommandsFunction(e.parserContext,o[0].branch,t),failure:e.processCommandsFunction(e.parserContext,o[1].branch,t)}):r=e.processCommandsFunction(e.parserContext,o,t),{prompt:e.processCommandsFunction(e.parserContext,[t],t)[0],branch:r,skillBranches:n}}const Uje=(e,t)=>{let n=e.currentLine;fd("choice",[]);const{line:r}=e,o=t.command;(!r.branch||r.branch.length<2)&&e.parserContext.error(r.line,"Choice menu needs to have at least one option");const i=r.branch[0];i||e.parserContext.error(e.line.line,"Choice prompt is missing ");const s=r.branch.slice(1).map((l,c)=>(l.branch||e.parserContext.error(l.line,`Choice option doesn't have any branch to go to (${l.code})`),l=Kje(e.parserContext,l),qje(e,l)));return o.staticOptions={prompt:e.processCommandsFunction(e.parserContext,[i],r)[0],choices:s},n++,{newLine:n}},Hje=Be.FromOptions({keyword:"choice",argTypes:[],runner:zje,parser:Uje}),Wje=async(e,t)=>{const n=t,r=un(),{choices:o}=e.staticOptions,i=o[n],a=e.options.choiceResults[n],s=e.staticOptions.prompt;up().trackChoice(s.code,i.prompt.code);let l=a.text,c;if(a.skillCheck?(l=null,D9(a.skillCheck.options).succeeded?c=i.skillBranches.success:c=i.skillBranches.failure):c=i.branch,l){const f={speaker:_o().playerCharacter,text:l,interactive:!1};Yn().addDialog(f)}if(c){const f={currentIndex:0,branchData:{branch:c}};return await r.addAndRunBlock(f)}};function Kje(e,t){return{code:`choicePrompt ${t.code}`,indentation:t.indentation,line:t.line,branch:t.branch,expression:["choicePrompt",...t.expression]}}const Gje=new Be("choicePrompt","any",async e=>{const t=e.args;return t.length===1?Jje(t[0]):t.length===2?Qje(t):t.length>2?t[0]==="roll"||t[1]==="roll"?Xje(e,t):Yje(e,t):(xt(e,"Invalid choice prompt line"),{text:t[0]})});function Jje(e){return{text:e}}function Qje(e){return{text:e[1],flag:e[0]}}function Yje(e,t){const n=t[1]==="if"?1:2;if(t[n]!=="if")return xt(e,"Invalid choice prompt line"),{text:t[0]};const r=n===2;let o=r?t[1]:t[0],i=!0;t.length>n+1&&(i=t[n+1]),i||(o=null);const a={text:o};return r&&(a.flag=t[0]),a}function Xje(e,t){const n=t[0]==="roll"?0:1,r=n===1,o=n,i=t[o+1];let a={},s=o+2;nz(i)?a={...tz(i),id:i}:(a={id:i,skill:t[o+2],difficulty:t[o+3]},s=o+4);const l=t[s];s++;let c=!1,f=!1,u;t.length>s&&(t[s]==="if"?(f=!0,t.length<s+2&&xt(e,'Missing condition argument after "if" in choice with a skill check'),u=t[s+1]):(c=t[s],t.length>s+1&&(s++,t[s]==="if"?(f=!0,t.length<s+2&&xt(e,'Missing condition argument after "if" in choice with a skill check'),u=t[s+1]):xt(e,`Invalid argument after skill check mode: ${t[s]}. The next argument can only be an if condition.`)))),c==="hideAfterRoll"&&(a.hideAfterRoll=!0),c==="repeatable"&&(a.repeatable=!0);const d=Cr().getSkillCheck(i);if(d.hidden||f&&!u)return{text:null};const h=!d.happened||d.happened&&d.succeeded||a.repeatable,{difficultyText:p}=zme({skill:a.skill,skillCheckId:i,value:a.difficulty}),v={text:`${p} ${l}`,skillCheck:{allowed:h,options:a}};return r&&(v.flag=t[0]),v}const $z=Be.FromOptions({keyword:"text_field",argTypes:[{name:"prompt",type:"string"}],returnAfterPlayerAnswer:!0,runner:async e=>{const t={speaker:_o().gameCharacter,text:e.options.prompt,textField:!0,interactive:!0};Yn().addDialog(t)}});$z.onPlayerAnswered=async(e,t)=>(typeof t!="string"&&xt(e,"The player's answer should be a string"),t);const Zje=Be.FromOptions({keyword:"text_field_prompt",argTypes:[{name:"prompt",type:"string"}],runner:async e=>{const t={speaker:_o().gameCharacter,text:e.options.prompt,textField:!0,interactive:!0};Yn().addDialog(t)}}),eSe=new Be("random",[{name:"a",type:"number"},{name:"b",type:"number"}],async e=>{const{a:t,b:n}=e.options;return typeof t!="number"||typeof n!="number"?(xt(e,"random command needs two numbers as parameters"),0):Math.floor(Math.random()*(n-t+1))+t}),tSe=new Be("random_float",[{name:"a",type:"number"},{name:"b",type:"number"}],async e=>{const{a:t,b:n}=e.options;return typeof t!="number"||typeof n!="number"?(xt(e,"random_float command needs two numbers as parameters"),0):Math.random()*(n-t)+t}),nSe=new Be("random_from_args",[],async e=>{const t=e.args;return!t||!t.length?(xt(e,"random_from_args command needs at least one argument"),0):t[Math.floor(Math.random()*t.length)]}),rSe=new Be("random_from_array",[{name:"a",type:"any"}],async e=>{const{a:t}=e.options;return Array.isArray(t)?t[Math.floor(Math.random()*t.length)]:(xt(e,"random_from_array command needs an array as parameter"),0)}),oSe=new Be("concat","any",async e=>(e.args.length<2&&xt(e,"requires at least two arguments"),e.args.reduce((t,n)=>typeof n=="string"?`${t}${n}`:(xt(e,"requires all arguments to be strings"),t),""))),iSe=new Be("join","any",async e=>{const t=e.args[0];return e.args.length<3&&xt(e,"requires at least 3 arguments"),e.args.slice(1).reduce((n,r)=>typeof r=="string"?`${n}${t}${r}`:(xt(e,"requires all arguments to be strings"),n),"")}),aSe=Be.FromOptions({keyword:"min",argTypes:[{name:"min",type:"number"},{name:"value",type:"number"}],runner:async e=>{const{min:t,value:n}=e.options;return n<t?n:t}}),sSe=Be.FromOptions({keyword:"max",argTypes:[{name:"max",type:"number"},{name:"value",type:"number"}],runner:async e=>{const{max:t,value:n}=e.options;return n>t?n:t}}),lSe=Be.FromOptions({keyword:"clamp",argTypes:[{name:"min",type:"number"},{name:"max",type:"number"},{name:"value",type:"number"}],runner:async e=>{const{min:t,max:n,value:r}=e.options;return r<t?t:r>n?n:r}}),cSe=Be.FromOptions({keyword:"floor",argTypes:[{name:"value",type:"number"}],runner:async e=>{const{value:t}=e.options;return Math.floor(t)}}),uSe=Be.FromOptions({keyword:"ceil",argTypes:[{name:"value",type:"number"}],runner:async e=>{const{value:t}=e.options;return Math.ceil(t)}}),fSe=Be.FromOptions({keyword:"round",argTypes:[{name:"value",type:"number"}],runner:async e=>{const{value:t}=e.options;return Math.round(t)}}),dSe=Be.FromOptions({keyword:"sqrt",argTypes:[{name:"value",type:"number"}],runner:async e=>{const{value:t}=e.options;return Math.sqrt(t)}}),hSe=Be.FromOptions({keyword:"^",argTypes:[{name:"base",type:"number"},{name:"exponent",type:"number"}],runner:async e=>{const{base:t,exponent:n}=e.options;return Math.pow(t,n)}}),pSe=new Be("create_sprite",[{name:"image",type:"string"},{name:"x",type:"number"},{name:"y",type:"number"},{name:"parent",type:"any",optional:!0}],async e=>{const t=Jo(),{x:n,y:r,image:o,parent:i}=e.options,a={x:n,y:r,image:o};return typeof i=="object"&&(a.parent=i),typeof i=="string"&&(a.parent=Jo().getObject(i)),t.createSprite(a)}),mSe=new Be("create_object",[{name:"x",type:"number"},{name:"y",type:"number"},{name:"parent",type:"any",optional:!0}],async e=>{const t=Jo(),{x:n,y:r,parent:o}=e.options,i={x:n,y:r};return typeof o=="object"&&(i.parent=o),typeof o=="string"&&(i.parent=Jo().getObject(o)),t.createObject(i)}),vSe=new Be("delete_sprite",[{name:"sprite",type:"any"}],async e=>Jo().destroyObject(e.options.sprite)),gSe=Be.FromOptions({keyword:"empty_sprites",argTypes:[{name:"layer",type:"number",optional:!0}],runner:async e=>{const t=Jo(),{layer:n}=e.options;return typeof n=="number"?t.emptyLayer(n):t.emptyAllLayers()}}),ySe=Be.FromOptions({keyword:"shuffle",argTypes:[{name:"array",type:"any"}],runner:async e=>{const t=e.options.array;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return LSe(t),t}}),bSe=Be.FromOptions({keyword:"push",argTypes:[{name:"array",type:"any"},{name:"value",type:"any"}],runner:async e=>{const{array:t,value:n}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return t.push(n),t}}),wSe=Be.FromOptions({keyword:"pop",argTypes:[{name:"array",type:"any"}],runner:async e=>{const{array:t}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return t.pop()}}),kSe=Be.FromOptions({keyword:"shift",argTypes:[{name:"array",type:"any"}],runner:async e=>{const{array:t}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return t.shift()}}),xSe=Be.FromOptions({keyword:"unshift",argTypes:[{name:"array",type:"any"},{name:"value",type:"any"}],runner:async e=>{const{array:t,value:n}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}return t.unshift(n),t}}),_Se=Be.FromOptions({keyword:"array_join",argTypes:[{name:"array",type:"any"},{name:"separator",type:"string",optional:!0}],runner:async e=>{const{array:t,separator:n}=e.options;if(!Array.isArray(t)){xt(e,"requires an array argument");return}if(typeof n<"u"&&typeof n!="string"){xt(e,"array join string separator must be a string");return}return t.join(n),t}}),jSe=Be.FromOptions({keyword:"array_concat",argTypes:[{name:"array",type:"any"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t}=e.options,n=e.args;if(!Array.isArray(t)){xt(e,"requires an array argument");return}for(const r of n)if(!Array.isArray(r)){xt(e,"All concat arguments should be arrays");return}return t.concat(...n.slice(1))}}),SSe=Be.FromOptions({keyword:"includes",argTypes:[{name:"array",type:"any"},{name:"searchElement",type:"string"}],runner:async e=>{const{array:t,searchElement:n}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),typeof n>"u"&&xt(e,"requires a search element argument"),t.includes(n)}}),CSe=Be.FromOptions({keyword:"reverse",argTypes:[{name:"array",type:"any"}],runner:async e=>{const{array:t}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),t.reverse(),t}}),$Se=Be.FromOptions({keyword:"slice",argTypes:[{name:"array",type:"any"},{name:"start",type:"number"},{name:"end",type:"number",optional:!0}],runner:async e=>{const{array:t,start:n,end:r}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),typeof n!="number"&&xt(e,"requires a start index argument"),typeof r<"u"&&typeof r!="number"&&xt(e,"end index argument must be a number if present"),t.slice(n,r)}}),TSe=Be.FromOptions({keyword:"splice",argTypes:[{name:"array",type:"any"},{name:"start",type:"number"},{name:"end",type:"number",optional:!0}],runner:async e=>{const{array:t,start:n,end:r}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),typeof n!="number"&&xt(e,"requires a start index argument"),typeof r<"u"&&typeof r!="number"&&xt(e,"end index argument must be a number if present"),t.splice(n,r)}}),OSe=Be.FromOptions({keyword:"array_find_index",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");for(const[r,o]of t.entries())if(await un().runLabelFunction(n,o,r,t,...e.args.slice(2))===!0)return r;return-1}}),ESe=Be.FromOptions({keyword:"array_find",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");for(const[r,o]of t.entries())if(await un().runLabelFunction(n,o,r,t,...e.args.slice(2))===!0)return o;return null}}),ASe=Be.FromOptions({keyword:"array_filter",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");const r=[];for(const[o,i]of t.entries())await un().runLabelFunction(n,i,o,t,...e.args.slice(2))===!0&&r.push(i);return r}}),MSe=Be.FromOptions({keyword:"array_map",argTypes:[{name:"array",type:"any"},{name:"mapperLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,mapperLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");const r=[];for(const[o,i]of t.entries()){const a=await un().runLabelFunction(n,i,o,t,...e.args.slice(2));r.push(a)}return r}}),PSe=Be.FromOptions({keyword:"array_reduce",argTypes:[{name:"array",type:"any"},{name:"reducerLabel",type:"string"},{name:"initValue",type:"any"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,reducerLabel:n,initValue:r}=e.options;Array.isArray(t)||xt(e,"requires an array argument");let o=r;for(const[i,a]of t.entries())o=await un().runLabelFunction(n,o,a,i,t,...e.args.slice(3));return o}}),NSe=Be.FromOptions({keyword:"array_some",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");for(const[r,o]of t.entries())if(await un().runLabelFunction(n,o,r,t,...e.args.slice(2))===!0)return!0;return!1}}),ISe=Be.FromOptions({keyword:"array_every",argTypes:[{name:"array",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{array:t,predicateLabel:n}=e.options;Array.isArray(t)||xt(e,"requires an array argument");for(const[r,o]of t.entries())if(await un().runLabelFunction(n,o,r,t,...e.args.slice(2))!==!0)return!1;return!0}}),DSe=Be.FromOptions({keyword:"array_entries",argTypes:[{name:"array",type:"any"}],runner:async e=>{const{array:t}=e.options;return Array.isArray(t)||xt(e,"requires an array argument"),t.entries()}});function LSe(e){for(let t=e.length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}}const dd={keyframes:{"narrat-screenshake":[{transform:"translateX(0)"},{transform:"translateX(5px)"},{transform:"translateX(-5px)"},{transform:"translateX(5px)"},{transform:"translateX(0)"}]},animations:{"narrat-screenshake":{keyframes:"narrat-screenshake",options:{duration:150,iterations:3}}}};function RSe(e){return typeof e=="string"?document.querySelector(e):e}function BSe(e){if(typeof e=="string"){const t=ZV();t.keyframes[e]?e=t.keyframes[e]:dd.keyframes[e]?e=dd.keyframes[e]:(At(`[Animation] Animation not found: ${e}`),e=dd.keyframes["narrat-screenshake"])}return e}function FSe(e){let t;if(typeof e=="string"){const n=ZV();n.animations[e]?t=n.animations[e]:dd.animations[e]?t=dd.animations[e]:(At(`[Animation] Animation not found: ${e}`),t=dd.animations["narrat-screenshake"])}else t=e;return VSe(t)}function VSe(e){return{keyframes:[...BSe(e.keyframes)],options:{...e.options}}}async function Tz(e,t,n){return new Promise(r=>{const o=RSe(e);o||(At(`[Animation] Element not found: ${e}`),r({}));const i=FSe(t);n&&Object.assign(i.options,n),o.animate(i.keyframes,i.options).addEventListener("finish",r)})}const zSe=Be.FromOptions({keyword:"load_data",argTypes:[{name:"url",type:"string"}],runner:async e=>{const{url:t}=e.options;return await lp(U0(t))}}),qSe=Be.FromOptions({keyword:"change_player_character",argTypes:[{name:"character",type:"string"}],runner:async e=>{const{character:t}=e.options;_o().config.characters.config.playerCharacter=t}}),USe=Be.FromOptions({keyword:"change_game_character",argTypes:[{name:"character",type:"string"}],runner:async e=>{const{character:t}=e.options;_o().config.characters.config.gameCharacter=t}}),HSe=Be.FromOptions({keyword:"json_stringify",argTypes:[{name:"value",type:"any"}],runner:async e=>{const{value:t}=e.options;return JSON.stringify(t)}}),WSe=Be.FromOptions({keyword:"json_parse",argTypes:[{name:"value",type:"string"}],runner:async e=>{const{value:t}=e.options;return JSON.parse(t)}}),KSe=Be.FromOptions({keyword:"set_dialog_panel_mode",argTypes:[{name:"mode",type:"string"}],runner:async e=>{const{mode:t}=e.options;Pr().dialogPanelMode=t}}),Oz=[{name:"element",type:"string"},{name:"animation",type:"string"},{name:"duration",optional:!0,type:"number"},{name:"iterations",optional:!0,type:"number"}];function Ez(e){const{element:t,animation:n,duration:r,iterations:o}=e.options,i={};return o&&(i.iterations=o),r&&(i.duration=r),i}const GSe=Be.FromOptions({keyword:"animate",argTypes:Oz,runner:async e=>{const{element:t,animation:n}=e.options,r=Ez(e);Tz(t,n,r)}}),JSe=Be.FromOptions({keyword:"animate_wait",argTypes:Oz,runner:async e=>{const{element:t,animation:n}=e.options;await Tz(t,n,Ez(e))}}),QSe=Be.FromOptions({keyword:"time_now",argTypes:[],runner:async e=>Date.now()}),YSe=Be.FromOptions({keyword:"total_playtime",argTypes:[],runner:async e=>Gt().totalPlayTime}),XSe=Be.FromOptions({keyword:"session_playtime",argTypes:[],runner:async e=>Gt().sessionPlayTime}),ZSe=Be.FromOptions({keyword:"to_days",argTypes:[{name:"time",type:"number"}],runner:async e=>Math.floor(e.options.time/864e5)}),eCe=Be.FromOptions({keyword:"to_hours",argTypes:[{name:"time",type:"number"}],runner:async e=>Math.floor(e.options.time/36e5)}),tCe=Be.FromOptions({keyword:"to_minutes",argTypes:[{name:"time",type:"number"}],runner:async e=>Math.floor(e.options.time/6e4)}),nCe=Be.FromOptions({keyword:"to_seconds",argTypes:[{name:"time",type:"number"}],runner:async e=>Math.floor(e.options.time/1e3)}),rCe=new Be("unlock_achievement",[{name:"id",type:"string"}],async e=>{const{id:t}=e.options;ul().unlock(t)}),oCe=new Be("has_achievement?",[{name:"id",type:"string"}],async e=>{const{id:t}=e.options;return ul().hasAchievement(t)}),iCe=Be.FromOptions({keyword:"get_setting",argTypes:[{name:"setting",type:"string"}],runner:async e=>{const{setting:t}=e.options;return t||xt(e,"get_setting command needs a setting id"),Bi().getSetting(t)}}),aCe=Be.FromOptions({keyword:"set_setting",argTypes:[{name:"setting",type:"string"},{name:"value",type:"any"}],runner:async e=>{const{setting:t,value:n}=e.options;t||xt(e,"set_setting command needs a setting id"),Bi().setSetting(t,n)}}),sCe=Be.FromOptions({keyword:"object_entries",argTypes:[{name:"obj",type:"any"}],runner:async e=>{const t=e.options.obj;return typeof t!="object"?(xt(e,"Requires an object argument."),[]):Object.entries(t)}}),lCe=Be.FromOptions({keyword:"object_keys",argTypes:[{name:"obj",type:"any"}],runner:async e=>{const t=e.options.obj;return typeof t!="object"?(xt(e,"Requires an object argument."),[]):Object.keys(t)}}),cCe=Be.FromOptions({keyword:"object_values",argTypes:[{name:"obj",type:"any"}],runner:async e=>{const t=e.options.obj;return typeof t!="object"?(xt(e,"Requires an object argument."),[]):Object.values(t)}}),uCe=Be.FromOptions({keyword:"object_has",argTypes:[{name:"obj",type:"any"},{name:"key",type:"string"}],runner:async e=>{const{obj:t,key:n}=e.options;return typeof t!="object"?(xt(e,"Requires an object argument."),!1):Object.hasOwn(t,n)}}),fCe=Be.FromOptions({keyword:"for_of",argTypes:[{name:"target",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{target:t,predicateLabel:n}=e.options;if(typeof t!="object")return xt(e,"Requires an object argument."),!1;for(const r of t)await un().runLabelFunction(n,r,...e.args.slice(2))}}),dCe=Be.FromOptions({keyword:"for_in",argTypes:[{name:"target",type:"any"},{name:"predicateLabel",type:"string"},{name:"rest",type:"rest",optional:!0}],runner:async e=>{const{target:t,predicateLabel:n}=e.options;if(typeof t!="object")return xt(e,"Requires an object argument."),!1;for(const r in t)await un().runLabelFunction(n,r,t[r],...e.args.slice(2))}});function hCe(e){e.addCommand(Hje),e.addCommand(Gje),e.addCommand(Sje),e.addCommand(T2e),e.addCommand(O2e),e.addCommand(E2e),e.addCommand(jje),e.addCommand(kje),e.addCommand(xje),e.addCommand(_je),e.addCommand(U2e),e.addCommand(z2e),e.addCommand(q2e),e.addCommand(H2e),e.addCommand(Y2e),e.addCommand(J2e),e.addCommand(Q2e),e.addCommand(pSe),e.addCommand(mSe),e.addCommand(vSe),e.addCommand(gSe),e.addCommand(wje),e.addCommand(Cje),e.addCommand($je),e.addCommand(Tje),e.addCommand(Oje),e.addCommand(Eje),e.addCommand(Aje),e.addCommand(Mje),e.addCommand(Pje),e.addCommand(Nje),e.addCommand(Ije),e.addCommand(Dje),e.addCommand(Lje),e.addCommand(Fje),e.addCommand(Vje),e.addCommand(Rje),e.addCommand(Bje),e.addCommand(G2e),e.addCommand(K2e),e.addCommand(tje),e.addCommand(X2e),e.addCommand(Z2e),e.addCommand(A2e),e.addCommand(M2e),e.addCommand(P2e),e.addCommand(N2e),e.addCommand(I2e),e.addCommand(D2e),e.addCommand(L2e),e.addCommand(B2e),e.addCommand(R2e),e.addCommand(F2e),e.addCommand(lje),e.addCommand(cje),e.addCommand(uje),e.addCommand(fje),e.addCommand(yje),e.addCommand(bje),e.addCommand(dje),e.addCommand(hje),e.addCommand(pje),e.addCommand(mje),e.addCommand(vje),e.addCommand(gje),e.addCommand(nje),e.addCommand(rje),e.addCommand(aje),e.addCommand(sje),e.addCommand(oje),e.addCommand(ije),e.addCommand(b2e),e.addCommand(w2e),e.addCommand(k2e),e.addCommand(j2e),e.addCommand($2e),e.addCommand(S2e),e.addCommand(C2e),e.addCommand(x2e),e.addCommand(_2e),e.addCommand($z),e.addCommand(Zje),e.addCommand(eSe),e.addCommand(tSe),e.addCommand(nSe),e.addCommand(rSe),e.addCommand(oSe),e.addCommand(iSe),e.addCommand(aSe),e.addCommand(sSe),e.addCommand(lSe),e.addCommand(cSe),e.addCommand(fSe),e.addCommand(uSe),e.addCommand(dSe),e.addCommand(hSe),e.addCommand(ySe),e.addCommand(bSe),e.addCommand(wSe),e.addCommand(kSe),e.addCommand(xSe),e.addCommand(_Se),e.addCommand(jSe),e.addCommand(SSe),e.addCommand(CSe),e.addCommand($Se),e.addCommand(TSe),e.addCommand(OSe),e.addCommand(ESe),e.addCommand(ASe),e.addCommand(MSe),e.addCommand(PSe),e.addCommand(NSe),e.addCommand(ISe),e.addCommand(DSe),e.addCommand(lCe),e.addCommand(cCe),e.addCommand(sCe),e.addCommand(uCe),e.addCommand(fCe),e.addCommand(dCe),e.addCommand(zSe),e.addCommand(qSe),e.addCommand(USe),e.addCommand(HSe),e.addCommand(WSe),e.addCommand(KSe),e.addCommand(GSe),e.addCommand(JSe),e.addCommand(QSe),e.addCommand(YSe),e.addCommand(XSe),e.addCommand(ZSe),e.addCommand(eCe),e.addCommand(tCe),e.addCommand(nCe),e.addCommand(rCe),e.addCommand(oCe),e.addCommand(aCe),e.addCommand(iCe)}const pCe=b.defineComponent({data(){return{muted:!1,volumes:[],modeNames:{master:"Master volume:",music:"Music:",ambiant:"Ambiant:",sound:"Sound effects:"}}},mounted(){const e=xo(),t=Cs.Howler.volume();this.volumes.push({mode:"master",volume:t}),e.modes.forEach((n,r)=>{this.volumes.push({mode:r,volume:e.modes.get(r).options.volume})})},methods:{changeVolume(e,t){const n=t.target;e==="master"?xo().setMasterVolume(n.value):xo().setModeVolume(e,n.value)},toggleMute(){this.muted?(Cs.Howler.mute(!1),this.muted=!1):(Cs.Howler.mute(!0),this.muted=!0)}}}),QOe="",mCe={class:"volume-controls"},vCe=b.createElementVNode("h3",{class:"subtitle"},"Volume",-1),gCe={for:"volume",class:"volume-label"},yCe=["onUpdate:modelValue","onChange"];function bCe(e,t,n,r,o,i){return b.openBlock(),b.createElementBlock("div",mCe,[vCe,(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.volumes,(a,s)=>(b.openBlock(),b.createElementBlock("div",{class:"volume-control",key:a.mode},[b.createElementVNode("label",gCe,b.toDisplayString(e.modeNames[a.mode]),1),b.withDirectives(b.createElementVNode("input",{ref_for:!0,ref:"slider",class:"volume-slider",type:"range",id:"volume",name:"volume",min:"0",max:"1",step:"0.1","onUpdate:modelValue":l=>e.volumes[s].volume=l,onChange:l=>e.changeVolume(a.mode,l)},null,40,yCe),[[b.vModelText,e.volumes[s].volume]])]))),128))])}const wCe=Xa(pCe,[["render",bCe]]),kCe={class:"settings-widget-container"},xCe=["for","id"],_Ce=["id","name","min","max","step"],jCe=["id","name"],SCe=["id","name"],CCe={class:"mx-8"},$Ce={class:"text-left setting-description"},TCe=b.createElementVNode("hr",{class:"h-px my-8 bg-gray-200 border-0 dark:bg-gray-700 setting-separator"},null,-1),OCe=b.defineComponent({__name:"setting-widget",props:{settingId:{}},setup(e){const t=e,n=Bi(),r=b.computed(()=>n.getSetting(t.settingId)),o=b.ref(r.value),i=b.computed(()=>n.getSettingSchema(t.settingId));function a(s){let l=s;V7(i.value)&&(l=Math.round(l)),n.setSetting(t.settingId,l)}return b.watch(o,s=>{a(s)}),(s,l)=>(b.openBlock(),b.createElementBlock(b.Fragment,null,[b.createElementVNode("div",kCe,[b.createElementVNode("label",{for:s.settingId,class:"setting-label",id:`setting-label-${s.settingId}`},b.toDisplayString(i.value.name),9,xCe),b.unref(ove)(i.value)||b.unref(V7)(i.value)?b.withDirectives((b.openBlock(),b.createElementBlock("input",{key:0,ref:"slider",class:"number-slider setting-slider",type:"range",id:`setting-slider-${s.settingId}`,name:s.settingId,min:i.value.minValue,max:i.value.maxValue,step:i.value.step,"onUpdate:modelValue":l[0]||(l[0]=c=>o.value=c)},null,8,_Ce)),[[b.vModelText,o.value]]):b.unref(ive)(i.value)?b.withDirectives((b.openBlock(),b.createElementBlock("input",{key:1,type:"checkbox",class:"setting-checkbox",id:`setting-checkbox-${s.settingId}`,name:s.settingId,"onUpdate:modelValue":l[1]||(l[1]=c=>o.value=c)},null,8,jCe)),[[b.vModelCheckbox,o.value]]):b.unref(ave)(i.value)?b.withDirectives((b.openBlock(),b.createElementBlock("input",{key:2,type:"text",class:"setting-text",id:`setting-text-${s.settingId}`,name:s.settingId,"onUpdate:modelValue":l[2]||(l[2]=c=>o.value=c)},null,8,SCe)),[[b.vModelText,o.value]]):b.createCommentVNode("",!0),b.createElementVNode("span",CCe,b.toDisplayString(o.value),1)]),b.createElementVNode("p",$Ce,b.toDisplayString(i.value.description),1),TCe],64))}}),YOe="",ECe={class:"container mx-auto settings-menu-container"},ACe=b.createElementVNode("h2",{class:"settings-menu-title subtitle text-center"},"Settings",-1),MCe=b.defineComponent({__name:"settings-menu",setup(e){const t=Bi(),n=b.computed(()=>t.getAllSettingSchemas());return(r,o)=>(b.openBlock(),b.createElementBlock("div",ECe,[ACe,(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(n.value,(i,a)=>(b.openBlock(),b.createBlock(OCe,{settingId:a,key:a},null,8,["settingId"]))),128))]))}}),XOe="",PCe={class:"menu-content"},NCe=b.defineComponent({__name:"MainMenu",props:{inputListener:{}},emits:["close"],setup(e,{emit:t}){const n=e,r=t,o=b.ref(null),i=b.ref(null);function a(){window.close()}function s(){Gt().menuReturn(),l()}function l(){r("close")}function c(){const f=ku(Gt().playTime.start,Gt().playTime.previousPlaytime);return ey(f/1e3)}return b.onMounted(()=>{i.value=vl({mode:"list",container:o,listener:n.inputListener,onChosen:f=>{f===0?s():f===1&&a()}}),i.value.mount()}),b.onUnmounted(()=>{i.value&&(i.value.disable(),i.value=null)}),(f,u)=>(b.openBlock(),b.createElementBlock("div",PCe,[b.createElementVNode("h3",null,"Play time: "+b.toDisplayString(c()),1),b.createVNode(wCe),b.createElementVNode("div",{ref_key:"mainActions",ref:o},[b.createElementVNode("button",{class:"button title quit-button",onClick:s}," Main Menu "),b.createElementVNode("button",{class:"button title quit-button",onClick:a},"Exit")],512),b.createVNode(MCe)]))}}),ZOe="",ICe={class:"sub-tabs-controller"},DCe={key:0,class:"sub-tabs-controller__tabs"},LCe={key:1,class:"sub-tab-content"},RCe={key:2},BCe=[b.createElementVNode("div",{class:"sub-tab-content__empty"},[b.createElementVNode("p",null,"No tab selected")],-1)],FCe=b.defineComponent({__name:"SubTabController",props:{tabs:{},defaultTab:{},inputListener:{}},emits:["tab-change","close"],setup(e,{emit:t}){const n=t,r=e,o=b.ref(r.defaultTab);function i(s){o.value=s,n("tab-change",s)}const a=b.computed(()=>r.tabs[o.value]);return b.onMounted(()=>{r.inputListener.actions.subPreviousTab={press:()=>{o.value>0&&i(o.value-1)}},r.inputListener.actions.subNextTab={press:()=>{o.value<r.tabs.length-1&&i(o.value+1)}}}),b.onUnmounted(()=>{delete r.inputListener.actions.subPreviousTab,delete r.inputListener.actions.subNextTab}),(s,l)=>(b.openBlock(),b.createElementBlock("div",ICe,[s.tabs.length>1?(b.openBlock(),b.createElementBlock("div",DCe,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(s.tabs,(c,f)=>(b.openBlock(),b.createBlock(jz,{key:c.id,tab:c,active:f===o.value,onClick:()=>i(f)},null,8,["tab","active","onClick"]))),128))])):b.createCommentVNode("",!0),a.value?(b.openBlock(),b.createElementBlock("div",LCe,[a.value?(b.openBlock(),b.createBlock(b.resolveDynamicComponent(a.value.component),b.mergeProps({key:a.value.id,inputListener:s.inputListener},a.value.extraProps,{onClose:l[0]||(l[0]=c=>s.$emit("close"))}),null,16,["inputListener"])):b.createCommentVNode("",!0)])):(b.openBlock(),b.createElementBlock("div",RCe,BCe))]))}}),tEe="",VCe=["onClick"],zCe={class:"item-title"},qCe={class:"item-amount"},UCe=b.defineComponent({__name:"inventory-section",props:{items:{},title:{},id:{},inputListener:{}},emits:["chosen"],setup(e,{emit:t}){const n=e,r=b.ref(null),o=b.ref(null),i=t;function a(c){i("chosen",c)}function s(c){return{backgroundImage:`url(${ui(Ja(c).icon)})`}}function l(c){return Ja(c).name}return b.onMounted(()=>{o.value=vl({mode:"grid",listener:n.inputListener,columns:3,container:r,onChosen:c=>{a(n.items[c].id)}}),o.value.mount()}),b.onUnmounted(()=>{o.value&&(o.value.disable(),o.value=null)}),(c,f)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["inventory-section",`section-${n.id}`])},[b.createElementVNode("h3",null,b.toDisplayString(c.title),1),b.createElementVNode("div",{class:"inventory-section-items",ref_key:"itemsContainer",ref:r},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(c.items,u=>(b.openBlock(),b.createElementBlock("button",{onClick:()=>a(u.id),class:b.normalizeClass(["item-display",`item-${u.id}`]),style:b.normalizeStyle(s(u.id)),key:u.id},[b.createElementVNode("h3",zCe,b.toDisplayString(l(u.id)),1),b.createElementVNode("h3",qCe,b.toDisplayString(u.amount),1)],14,VCe))),128))],512)],2))}}),nEe="",HCe={class:"flex flex-row item-description-container"},WCe={class:"flex item-left"},KCe={class:"flex item-right"},GCe=b.createElementVNode("hr",{class:"hr-solid"},null,-1),JCe=b.defineComponent({__name:"item-details",props:{item:{}},emits:["use","close"],setup(e,{emit:t}){const n=e,r=b.ref(null),o=b.computed(()=>Ja(n.item.id)),i=b.computed(()=>({backgroundImage:`url(${ui(o.value.icon)})`})),a=t,s=b.computed(()=>so().canUseItem(n.item));function l(){s.value&&a("use")}function c(){a("close")}return b.onMounted(()=>{r.value=Nr().registerInputListener("item-details",{continue:{press:()=>{s.value&&l()}},cancel:{press:()=>{c()}}})}),b.onUnmounted(()=>{r.value&&(Nr().unregisterInputListener(r.value),r.value=null)}),(f,u)=>(b.openBlock(),b.createElementBlock("div",null,[b.createElementVNode("div",HCe,[b.createElementVNode("div",WCe,[b.createElementVNode("div",{class:"item-display",style:b.normalizeStyle(i.value)},null,4)]),b.createElementVNode("div",KCe,[b.createElementVNode("h2",null,b.toDisplayString(o.value.name),1),GCe,b.createElementVNode("h3",null,"Amount: "+b.toDisplayString(f.item.amount),1),b.createElementVNode("p",null,b.toDisplayString(o.value.description),1),b.createElementVNode("button",{onClick:l,class:b.normalizeClass(["button",s.value?"":"disabled"])}," Use ",2)])]),b.createElementVNode("button",{class:"button",onClick:c},b.toDisplayString("<--"))]))}}),rEe="",QCe={key:0},YCe={key:2},XCe=[b.createElementVNode("h2",null,"The inventory is empty!",-1)],ZCe=b.defineComponent({__name:"inventory-ui",props:{section:{},inputListener:{}},emits:["close"],setup(e,{emit:t}){const n=so(),r=b.computed(()=>n.items),o=b.ref(!1),i=b.computed(()=>o.value?r.value[o.value]:null);function a(){Qo().closeMenu()}function s(f){o.value=f}function l(){o.value=!1}function c(){n.useItem(i.value),a()}return(f,u)=>!i.value&&f.section.items.length>0?(b.openBlock(),b.createElementBlock("div",QCe,[b.createVNode(UCe,{items:f.section.items,title:f.section.title,inputListener:f.inputListener,id:f.section.id,onChosen:s},null,8,["items","title","inputListener","id"])])):typeof o.value=="string"?(b.openBlock(),b.createBlock(JCe,{key:1,item:r.value[o.value],onUse:c,onClose:l},null,8,["item"])):(b.openBlock(),b.createElementBlock("div",YCe,XCe))}}),iEe="",e$e=b.defineComponent({__name:"InventoryTab",props:{inputListener:{}},setup(e){const t=so(),n=b.computed(()=>t.items),r=b.computed(()=>Object.values(n.value).filter(a=>a.amount>0?!0:!!Ja(a.id).showIfEmpty)),o=b.computed(()=>{const a=Jr().items.categories,s=[];if(a.length>1){const l={id:"all",title:"All",items:r.value};s.push(l)}for(const l in a){const c=a[l],f=c.id,u=r.value.filter(d=>Ja(d.id).category===f);s.push({id:f,title:c.title,items:u})}return s}),i=b.computed(()=>{const a=[];return o.value.forEach(s=>{a.push({id:s.id,label:s.title,component:ZCe,extraProps:{section:s}})}),a});return(a,s)=>(b.openBlock(),b.createElementBlock("div",null,[b.createVNode(FCe,{tabs:i.value,defaultTab:0,inputListener:a.inputListener},null,8,["tabs","inputListener"])]))}}),t$e=["id"],n$e={class:"obtained-status"},r$e={class:"achievement-title"},o$e={class:"achievement-description"},i$e=b.defineComponent({__name:"achievement-tile",props:{achievement:{}},setup(e){const t=e,n=ul(),r=b.computed(()=>n.getExistingAchievement(t.achievement)),o=b.computed(()=>H2(t.achievement)),i=ld().secretAchievements??{censorName:!0,censorDescription:!0},a=b.computed(()=>{let f=r.value.unlocked?o.value.icon:o.value.lockedIcon;return f||(f=ld().defaultAchievementIcon),{backgroundImage:`url(${ui(f)})`}}),s=b.computed(()=>!o.value.secret||!i.censorName?o.value.name:"Hidden Achievement"),l=b.computed(()=>!o.value.secret||!i.censorDescription?o.value.description:"This achievement is hidden. Complete it to discover more."),c=b.computed(()=>r.value.unlocked?`Obtained ${new Date(r.value.unlockTime).toLocaleDateString()}`:"Not obtained yet");return(f,u)=>(b.openBlock(),b.createElementBlock("div",{class:"achievement-display tile",id:`achievement-${f.achievement}`},[b.createElementVNode("div",{class:"achievement-icon",style:b.normalizeStyle(a.value)},null,4),b.createElementVNode("p",n$e,b.toDisplayString(c.value),1),b.createElementVNode("h3",r$e,b.toDisplayString(s.value),1),b.createElementVNode("p",o$e,b.toDisplayString(l.value),1)],8,t$e))}}),aEe="",a$e={class:"achievements-section-achievements"},s$e=b.defineComponent({__name:"achievements-section",props:{achievements:{},title:{},id:{}},setup(e){const t=e;return(n,r)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["achievements-section",`section-${t.id}`])},[b.createElementVNode("h3",null,b.toDisplayString(n.title),1),b.createElementVNode("div",a$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(n.achievements,o=>(b.openBlock(),b.createBlock(i$e,{achievement:o.id,key:o.id},null,8,["achievement"]))),128))])],2))}}),sEe="",l$e=b.defineComponent({setup(){const e=ul(),t=Yn(),n=b.computed(()=>e.achievements),r=b.computed(()=>t.currentDialog.choices);return{achievements:n,currentlyChoosing:r}},emits:["close"],data(){return{chosenId:!1}},mounted(){},methods:{close(){this.$emit("close")},clickAchievement(e){this.chosenId=e},closeAchievement(){this.chosenId=!1}},computed:{achievementsToDisplay(){return Object.values(this.achievements)},chosenAchievement(){return this.chosenId?this.achievements[this.chosenId]:null},chosenAchievementConf(){return this.chosenId?this.achievementConf[this.chosenId]:null},achievementConf(){return Jr().achievements.achievements},sections(){const e=Jr().achievements.categories,t=[];return this.achievementsToDisplay.reduce((r,o)=>{const i=H2(o.id).category??"default",a=e.find(l=>l.id===i);if(!a)return At(`Unknown category ${i}`),r;let s=r.find(l=>l.id===i);return s||(s={id:i,title:a.title,achievements:[]},r.push(s)),s.achievements.push(o),r},t)}},components:{AchievementsSection:s$e}}),lEe="",c$e={key:0},u$e={key:1},f$e=[b.createElementVNode("h2",null,"The achievements section is empty!",-1)];function d$e(e,t,n,r,o,i){const a=b.resolveComponent("AchievementsSection");return Object.keys(e.achievementsToDisplay).length>0?(b.openBlock(),b.createElementBlock("div",c$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(e.sections,s=>(b.openBlock(),b.createBlock(a,{key:s.id,achievements:s.achievements,title:s.title,id:s.id,onChosen:e.clickAchievement},null,8,["achievements","title","id","onChosen"]))),128))])):(b.openBlock(),b.createElementBlock("div",u$e,f$e))}const h$e=Xa(l$e,[["render",d$e]]),p$e={class:"quest-display"},m$e={class:"quest-title"},v$e={class:"quest-description"},g$e={key:0,class:"quest-objectives-container list-disc"},y$e=b.defineComponent({__name:"QuestDetails",props:{quest:{}},setup(e){const t=e,n=b.computed(()=>pl(t.quest.id));function r(s){return Tp(t.quest.id,s)}const o=b.computed(()=>{switch(t.quest.state){case"hidden":return" Hidden";case"unlocked":return"";case"completed":return" (Completed)";default:return" Unknown"}}),i=b.computed(()=>t.quest.ending?rz(t.quest.id,t.quest.ending).description:t.quest.succeeded&&n.value.succeededDescription?n.value.succeededDescription:!t.quest.succeeded&&n.value.failedDescription?n.value.failedDescription:n.value.description),a=b.computed(()=>Object.values(t.quest.objectives).filter(s=>s.state!=="hidden"));return(s,l)=>(b.openBlock(),b.createElementBlock("div",p$e,[b.createElementVNode("div",{class:b.normalizeClass(["quest-header",s.quest.state==="completed"?"quest-completed":"quest-in-progress"])},[b.createElementVNode("h3",m$e,b.toDisplayString(n.value.title)+" "+b.toDisplayString(o.value),1)],2),b.createElementVNode("p",v$e,b.toDisplayString(i.value),1),s.quest.state!=="completed"?(b.openBlock(),b.createElementBlock("ul",g$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(a.value,c=>(b.openBlock(),b.createElementBlock("li",{class:"quest-objective-display",key:c.id},[b.createElementVNode("p",{class:b.normalizeClass(["quest-objective-description",c.state==="completed"?"quest-objective-completed":"quest-objctive-in-progress"])},b.toDisplayString(r(c.id).description),3)]))),128))])):b.createCommentVNode("",!0)]))}}),uEe="",b$e={class:"quest-list-title"},w$e=b.defineComponent({__name:"QuestDisplay",props:{quest:{}},setup(e){const t=e,n=b.computed(()=>pl(t.quest.id));return(r,o)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["quest-list-display",r.quest.state==="completed"?"quest-list-completed":"quest-list-in-progress"])},[b.createElementVNode("p",b$e,b.toDisplayString(n.value.title),1)],2))}}),fEe="",k$e={key:0},x$e={key:0},_$e={key:1},j$e=b.defineComponent({__name:"quests-list-section",props:{quests:{},sectionId:{},title:{},fallbackText:{}},emits:["quest-selected"],setup(e,{emit:t}){const n=e,r=b.computed(()=>id().categories),o=b.computed(()=>{const i=[];return n.quests.reduce((s,l)=>{const c=pl(l.id).category??"default",f=r.value.find(d=>d.id===c);if(!f)return At(`Quest category ${c} not found in config`),s;let u=s.find(d=>d.category.id===c);return u||(u={category:f,quests:[]},s.push(u)),u.quests.push(l),s},i)});return(i,a)=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass([`${i.sectionId}-quests-container`,"quests-section"])},[b.createElementVNode("h3",null,b.toDisplayString(i.title),1),i.quests.length>0?(b.openBlock(),b.createElementBlock("div",k$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(o.value,s=>(b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass([`${i.sectionId}-${s.category.id}-category`,"quests-category"]),key:s.category.id},[r.value.length>1?(b.openBlock(),b.createElementBlock("h4",x$e,b.toDisplayString(s.category.title),1)):b.createCommentVNode("",!0),b.createElementVNode("div",{class:b.normalizeClass(`${i.sectionId}-${s.category.id}-quests`)},[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(s.quests,l=>(b.openBlock(),b.createBlock(w$e,{key:l.id,quest:l,onClick:c=>i.$emit("quest-selected",l)},null,8,["quest","onClick"]))),128))],2)],2))),128))])):(b.openBlock(),b.createElementBlock("div",_$e,[b.createElementVNode("p",null,b.toDisplayString(i.fallbackText),1)]))],2))}}),dEe="",S$e=b.defineComponent({setup(){const e=eo(),t=b.computed(()=>e.quests),n=b.ref(null);return{quests:t,selectedQuest:n}},computed:{questsToDisplay(){return Object.values(this.quests).filter(e=>e.state!=="hidden")},activeQuests(){return this.questsToDisplay.filter(e=>e.state==="unlocked")},completedQuests(){return this.questsToDisplay.filter(e=>e.state==="completed")},questsUiClass(){return Pr().layoutMode==="horizontal"?"quests-ui-horizontal":"quests-ui-vertical"}},mounted(){this.activeQuests.length>0?this.selectedQuest=this.activeQuests[0]:this.completedQuests.length>0&&(this.selectedQuest=this.completedQuests[0])},methods:{clickOnQuest(e){this.selectedQuest=e}},components:{QuestDetails:y$e,QuestsListSection:j$e}}),hEe="",C$e={class:"quests-list-container"},$$e={class:"quest-details"};function T$e(e,t,n,r,o,i){const a=b.resolveComponent("QuestsListSection"),s=b.resolveComponent("QuestDetails");return b.openBlock(),b.createElementBlock("div",{class:b.normalizeClass(["quests-ui",e.questsUiClass])},[b.createElementVNode("div",C$e,[b.createVNode(a,{quests:e.activeQuests,sectionId:"active",title:"Active Quests",fallbackText:"No active quests",onQuestSelected:e.clickOnQuest},null,8,["quests","onQuestSelected"]),b.createVNode(a,{quests:e.completedQuests,sectionId:"completed",title:"Completed Quests",fallbackText:"No completed quests",onQuestSelected:e.clickOnQuest},null,8,["quests","onQuestSelected"])]),b.createElementVNode("div",$$e,[e.selectedQuest?(b.openBlock(),b.createBlock(s,{key:0,quest:e.selectedQuest},null,8,["quest"])):b.createCommentVNode("",!0)])],2)}const O$e=Xa(S$e,[["render",T$e]]);function Az(e){const t=Cr(),n=b.computed(()=>t.skills),r=b.computed(()=>n.value[e]),o=b.computed(()=>Ga().skills),i=b.computed(()=>Ga().skillOptions.xpPerLevel),a=b.computed(()=>({backgroundImage:`url(${ui(o.value[e].icon)})`})),s=b.computed(()=>o.value[e].name),l=b.computed(()=>o.value[e].description),c=b.computed(()=>`Level ${n.value[e].level}`);return{skills:n,skillsStore:t,skillConfig:o,xpPerLevel:i,skillState:r,skillStyle:a,skillName:s,skillDescription:l,skillLevelText:c}}const E$e=e=>(b.pushScopeId("data-v-db9d98bf"),e=e(),b.popScopeId(),e),A$e=["id"],M$e={class:"flex flex-row skill-description-container"},P$e={class:"flex skill-left"},N$e={class:"flex skill-right"},I$e=E$e(()=>b.createElementVNode("hr",{class:"hr-solid"},null,-1)),D$e=["innerHTML"],L$e=b.defineComponent({__name:"SkillDetails",props:{chosenSkill:{},inputListener:{}},emits:["cancel"],setup(e,{emit:t}){const n=e,r=t,o=b.ref(null),i=b.ref(null);function a(){r("cancel")}const{skillStyle:s,skillName:l,skillDescription:c,skillLevelText:f}=Az(n.chosenSkill);return b.onMounted(()=>{o.value=vl({mode:"list",listener:n.inputListener,container:i,onChosen:()=>{a()}}),o.value.mount()}),b.onUnmounted(()=>{o.value&&(o.value.disable(),o.value=null)}),(u,d)=>(b.openBlock(),b.createElementBlock("div",{id:`skill-display-${u.chosenSkill}`},[b.createElementVNode("div",M$e,[b.createElementVNode("div",P$e,[b.createElementVNode("div",{class:"skill-display",style:b.normalizeStyle(b.unref(s))},null,4)]),b.createElementVNode("div",N$e,[b.createElementVNode("h2",null,b.toDisplayString(b.unref(l)),1),I$e,b.createElementVNode("h3",null,b.toDisplayString(b.unref(f)),1),b.createElementVNode("p",{innerHTML:b.unref(c)},null,8,D$e)])]),b.createElementVNode("div",{ref_key:"buttonsContainer",ref:i},[b.createElementVNode("button",{class:"button",onClick:a},b.toDisplayString("<--"))],512)],8,A$e))}}),pEe="",R$e=Xa(L$e,[["__scopeId","data-v-db9d98bf"]]),B$e={class:"skill-title"},F$e={class:"skill-xp-container"},V$e={class:"skill-xp-text"},z$e={class:"skill-level"},q$e=b.defineComponent({__name:"SkillGridElement",props:{chosenSkill:{},inputListener:{}},emits:["choose"],setup(e,{expose:t,emit:n}){const r=e,o=b.ref(null);t({gridElement:o});const i=n;function a(){i("choose")}const{skillStyle:s,skillName:l,skillState:c,xpPerLevel:f}=Az(r.chosenSkill),u=b.computed(()=>({width:`${Math.floor(c.value.xp/f.value*100)}%`}));return(d,h)=>(b.openBlock(),b.createElementBlock("button",{onClick:a,class:"skill-grid-element",style:b.normalizeStyle(b.unref(s)),ref_key:"gridElement",ref:o},[b.createElementVNode("h3",B$e,b.toDisplayString(b.unref(l)),1),b.createElementVNode("div",F$e,[b.createElementVNode("div",{class:"skill-xp-bar",style:b.normalizeStyle(u.value)},null,4),b.createElementVNode("h3",V$e,b.toDisplayString(b.unref(c).xp)+" / "+b.toDisplayString(b.unref(f))+" XP",1)]),b.createElementVNode("h3",z$e,b.toDisplayString(b.unref(c).level),1)],4))}}),mEe="",U$e=Xa(q$e,[["__scopeId","data-v-8d457bf9"]]),H$e={class:"skills-container"},W$e=b.defineComponent({__name:"SkillsGrid",props:{inputListener:{},lastChosenSkill:{type:[String,Boolean]}},emits:["choose"],setup(e,{emit:t}){const n=e,r=b.ref([]),o=b.computed(()=>r.value.map(d=>d.gridElement)),i=Cr(),a=b.computed(()=>i.skills),s=b.ref(null),l=t;function c(d){l("choose",d)}const f=b.computed(()=>Ga().skills),u=b.computed(()=>{const d={};for(const h in a.value)f.value[h].hidden&&a.value[h].level<1||(d[h]=a.value[h]);return Object.values(d)});return b.onMounted(()=>{var d;if(s.value=vl({mode:"grid",listener:n.inputListener,elements:o,columns:3,onChosen:h=>{c(u.value[h].id)}}),(d=s.value)==null||d.mount(),typeof n.lastChosenSkill=="string"){const h=u.value.findIndex(p=>p.id===n.lastChosenSkill);h>=0&&s.value.select(h)}}),b.onUnmounted(()=>{s.value&&s.value.disable()}),(d,h)=>(b.openBlock(),b.createElementBlock("div",H$e,[(b.openBlock(!0),b.createElementBlock(b.Fragment,null,b.renderList(u.value,p=>(b.openBlock(),b.createBlock(U$e,{ref_for:!0,ref_key:"skillGridElements",ref:r,key:p.id,onChoose:()=>c(p.id),chosenSkill:p.id,inputListener:d.inputListener},null,8,["onChoose","chosenSkill","inputListener"]))),128))]))}}),vEe="",K$e=Xa(W$e,[["__scopeId","data-v-31202bb8"]]),G$e=b.defineComponent({__name:"SkillsWindow",props:{inputListener:{}},setup(e){const t=b.ref(!1),n=b.ref(!1);function r(i){n.value=i,t.value=i}function o(){t.value=!1}return(i,a)=>t.value?typeof t.value=="string"?(b.openBlock(),b.createBlock(R$e,{key:1,chosenSkill:t.value,inputListener:i.inputListener,onCancel:o},null,8,["chosenSkill","inputListener"])):b.createCommentVNode("",!0):(b.openBlock(),b.createBlock(K$e,{key:0,inputListener:i.inputListener,lastChosenSkill:n.value,onChoose:r},null,8,["inputListener","lastChosenSkill"]))}});function J$e(e){e.component("MainMenu",NCe),e.component("InventoryTab",e$e),e.component("AchievementsUI",h$e),e.component("QuestsUi",O$e),e.component("SkillsWindow",G$e),Qo().menus={system:{label:"System",cssClass:"system-menu",id:"system",tabs:[{id:"system-tab",cssId:"system-tab",text:"System",component:"MainMenu"}],activeTab:0},menu:{label:"Menu",id:"menu",cssClass:"menu-menu",tabs:[{id:"skills",cssId:"skills-menu-button",text:"Skills",condition:()=>Qo().showSkills,component:"SkillsWindow"},{id:"inventory",cssId:"inventory-menu-button",text:"Items",condition:()=>Qo().showInventory,component:"InventoryTab"},{id:"quests",cssId:"quests-menu-button",text:"Quests",condition:()=>Qo().showQuests,component:"QuestsUi"},{id:"achievements",cssId:"achievements-menu-button",text:"Achievements",condition:()=>Qo().showAchievements,component:"AchievementsUI"}],activeTab:0}}}function ij(e,t,n){const r=window.narrat.app;for(const o in t.tabs){const i=t.tabs[o].component;r.component(i,n[i])}Qo().addMenu(e,t)}function Q$e(e,t,n){window.narrat.app.component(t.component,n),Qo().addMenuOption(e,t)}function Y$e(){for(const e of yn.plugins){if(e.customMenuButtons)for(const t of e.customMenuButtons)ij(t.config.id,t.config,t.components);if(e.customMenuTabs)for(const t of e.customMenuTabs)Q$e(t.config.id,t.config,t.component)}}function X$e(e){e.directive("visible",{mounted(t,n){n.value?t.style.visibility="visible":t.style.visibility="hidden"},updated(t,n){n.value?t.style.visibility="visible":t.style.visibility="hidden"}})}class X0{constructor(){Wn(this,"pluginId","narrat-plugin")}onPageLoaded(){}onNarratSetup(){}onAppMounted(){}onAssetsLoaded(){}onGameSetup(){}onGameStart(){}onGameMounted(){}onGameDismounted(){}}function Mz(e){yn.addPlugin(e)}function Pz(e){yn.addCommand(e)}const Z$e={args:[],canvasResizePolicy:0,executable:"",experimentalVK:!1,fileSizes:{"index.pck":54160,"index.wasm":52315256},focusCanvas:!1,gdextensionLibs:[]};function eTe(){window.godotReady=!0,window.narratReadyCallback&&window.narratReadyCallback(),console.log("godot ready")}window.godotReadyCallback=eTe;class Nz extends X0{constructor(n){super();Wn(this,"customCommands",[]);Wn(this,"canvas");Wn(this,"app");Wn(this,"messageQueue",[]);Wn(this,"narrat");Wn(this,"narratReady",!1);Wn(this,"engineConfig");Wn(this,"engine");const r={...Z$e,...n.engineConfigOverrides??{}};n.godotGamePath&&(r.executable=n.godotGamePath),this.engineConfig=r,this.customCommands=[Be.FromOptions({keyword:"godot_pause",argTypes:[],runner:async o=>{this.addMessageForGodot({type:"pause",payload:{}})}}),Be.FromOptions({keyword:"godot_resume",argTypes:[],runner:async o=>{this.addMessageForGodot({type:"resume",payload:{}})}})]}onAppMounted(){const n=document.querySelector("#narrat-app-container");if(!n){console.error("no app");return}this.narrat=window.narrat;const r=document.createElement("canvas");this.app=n,this.canvas=r,r.id="godot-canvas",r.style.position="absolute",r.style.zIndex="0",n.appendChild(r),window.addEventListener("keydown",i=>{if(i.fakeEvent)return;const a=new KeyboardEvent(i.type,i);a.fakeEvent=!0,this.canvas.dispatchEvent(a)}),window.addEventListener("keyup",i=>{if(i.fakeEvent)return;const a=new KeyboardEvent(i.type,i);a.fakeEvent=!0,this.canvas.dispatchEvent(a)}),new window.Engine(this.engineConfig).startGame(),this.resizeCanvas(),window.godot=this,this.narratReady=!0,window.narratReadyCallback&&window.narratReadyCallback()}getCanvas(){return document.querySelector("#godot-canvas")}addMessageForGodot(n){this.messageQueue.unshift(n),window.godotCallback&&window.godotCallback(n)}grabNextMessage(){return this.messageQueue.pop()}async run(n,...r){const o=await this.narrat.run(n,...r),i={type:"run_end",payload:{label:n,args:r,result:o}};this.addMessageForGodot(i)}isJson(n){try{JSON.parse(n)}catch{return!1}return!0}resizeCanvas(){const n=Pr(),r=n.gameWidth,o=n.gameHeight;this.canvas.width=r,this.canvas.height=o,this.canvas.style.width=`${r}px`,this.canvas.style.height=`${o}px`,window.requestAnimationFrame(()=>this.resizeCanvas())}}class Iz extends X0{constructor(n={}){super();Wn(this,"defaultTheme");Wn(this,"themes",[]);Wn(this,"activeTheme");Wn(this,"customCommands");Wn(this,"initialConfig");n.defaultTheme&&(this.defaultTheme=n.defaultTheme),n.themes&&(this.themes=n.themes),this.customCommands=[this.createChangeThemeCommand()]}onNarratSetup(){if(this.defaultTheme){const n=this.themes.find(r=>r.id===this.defaultTheme);if(!n){At(`Theme ${this.defaultTheme} not found`);return}this.setTheme(n)}}addTheme(n){this.themes.push(n)}createChangeThemeCommand(){return Be.FromOptions({keyword:"change_theme",argTypes:[{name:"theme",type:"string"}],runner:async r=>{this.changeTheme(r.options.theme)}})}changeTheme(n){if(n==="default"){this.removeCurrentTheme();return}const r=this.findTheme(n);this.setTheme(r)}findTheme(n){const r=this.themes.find(o=>o.id===n);return r||At(`Theme ${n} not found`),r}setTheme(n){this.activeTheme&&this.removeCurrentTheme(),this.activeTheme={themeTag:this.createThemeTag(n),id:n.id},document.head.appendChild(this.activeTheme.themeTag),n.extendedConfig&&(this.initialConfig=uu({},_o().config),_o().extendConfig(n.extendedConfig))}createThemeTag(n){if(this.isInlineTheme(n)){const r=document.createElement("style");return r.innerHTML=n.css,r}else{const r=document.createElement("link");return r.rel="stylesheet",r.href=n.cssPath,r.id=n.id,r}}isInlineTheme(n){return n.css!==void 0}isExternalTheme(n){return n.cssPath!==void 0}removeCurrentTheme(){this.activeTheme&&(this.activeTheme.themeTag&&this.activeTheme.themeTag.remove(),this.findTheme(this.activeTheme.id).extendedConfig&&(_o().config=this.initialConfig)),this.activeTheme=void 0}}const Dz={css:`body{font-size:52px}
220
220
  `,id:"narrat-fun-theme",extendedConfig:{}},Lz={id:"narrat-text-only",css:`#narrat-app{--bg-color: #131720;--text-color: #d9e1f2;--primary: hsl(255, 30%, 55%);--focus: hsl(210, 90%, 50%);--secondary: #42b983;--dialog-box-bg: transparent;--dialog-box-border: none}.interact-button{background:unset;border:none;font-size:2rem;font-weight:700;color:#fff;font-family:monospace;text-shadow:-4px 4px 2px #000}.dialog{box-shadow:none!important;text-align:center}.dialog-text{font-size:1.5rem;font-family:monospace;text-shadow:-4px 4px 2px #000}
221
221
  `,extendedConfig:{common:{dialogPanel:{textSpeed:30,animateText:!0,timeBetweenLines:100,overlayMode:!0,rightOffset:300,bottomOffset:150,width:700,height:680}}}},tTe=Object.freeze(Object.defineProperty({__proto__:null,BaseConfigInputSchema:g0,CommandPlugin:Be,ConfigInputSchema:q_,ConfigInputSchemaWithCommon:V_,ConfigInputSchemaWithoutCommon:z_,GodotPlugin:Nz,InputsListener:nj,LogManager:Ep,ModalWindow:Ds,NarratPlugin:X0,NarratThemesPlugin:Iz,get Vec2(){return Ze.Vec2},addCommand:Pz,aspectRatioFit:B_,audioConfig:ha,buttonsConfig:F0,charactersConfig:V0,constructNarratObject:aj,debounce:cp,error:At,findVariable:v_,funTheme:Dz,gameloop:Op,generateObjectFromList:o_,generateParser:fd,getAssetUrl:ui,getButtonConfig:pc,getConfig:Mt,getDataUrl:U0,getFile:h0,getImageUrl:sd,getItemConfig:Ja,getObjectiveConfig:Tp,getQuestConfig:pl,getScreenConfig:ad,getSkillConfig:q0,getSplitConfigUrl:U2,getWindow:n0,handleHMR:V2,inputEvents:pa,isConfigInputWithCommon:y0,isModuleValid:F2,isNarratScript:z2,isNarratYaml:L0,isPromise:i_,itemsConfig:$p,loadDataFile:lp,logManager:Ap,logger:zi,processText:Ts,questsConfig:id,randomId:cu,registerMenuButton:ij,registerPlugin:Mz,screensConfig:B0,skillsConfig:Ga,textOnlyTheme:Lz,timeout:_i,tooltipsConfig:hc,useAchievements:ul,useAudio:xo,useConfig:_o,useDialogStore:Yn,useHud:qa,useInputs:Nr,useInventory:so,useMain:Gt,useMenu:Qo,useNotifications:Go,useQuests:eo,useRenderingStore:Pr,useScreenObjects:Jo,useScreens:li,useSkills:Cr,useTooltips:tp,useVM:un,warning:du},Symbol.toStringTag,{value:"Module"}));function aj(e){const t={app:e,vm:yn,handleHMR:V2,jump:n=>un().jumpToLabel(n),run:(n,...r)=>un().runThenGoBackToPreviousDialog(n,...r),getSave:()=>ll(),exports:tTe};return window.narrat=t,t}var nTe=Object.prototype.toString,Rz=function(t){if(t===void 0)return"undefined";if(t===null)return"null";var n=typeof t;if(n==="boolean")return"boolean";if(n==="string")return"string";if(n==="number")return"number";if(n==="symbol")return"symbol";if(n==="function")return sTe(t)?"generatorfunction":"function";if(rTe(t))return"array";if(uTe(t))return"buffer";if(cTe(t))return"arguments";if(iTe(t))return"date";if(oTe(t))return"error";if(aTe(t))return"regexp";switch(Bz(t)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(lTe(t))return"generator";switch(n=nTe.call(t),n){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return n.slice(8,-1).toLowerCase().replace(/\s/g,"")};function Bz(e){return typeof e.constructor=="function"?e.constructor.name:null}function rTe(e){return Array.isArray?Array.isArray(e):e instanceof Array}function oTe(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function iTe(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function aTe(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function sTe(e,t){return Bz(e)==="GeneratorFunction"}function lTe(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function cTe(e){try{if(typeof e.length=="number"&&typeof e.callee=="function")return!0}catch(t){if(t.message.indexOf("callee")!==-1)return!0}return!1}function uTe(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}/*!
222
222
  * shallow-clone <https://github.com/jonschlinkert/shallow-clone>