UNPKG

@drincs/pixi-vn

Version:

Pixi'VN is a npm package that provides various features for creating visual novels.

2 lines 27.8 kB
'use strict';var core=require('@drincs/pixi-vn/core');var te=Object.defineProperty;var $t=u=>{throw TypeError(u)};var ee=(u,e,i)=>e in u?te(u,e,{enumerable:true,configurable:true,writable:true,value:i}):u[e]=i;var m=(u,e,i)=>ee(u,typeof e!="symbol"?e+"":e,i),zt=(u,e,i)=>e.has(u)||$t("Cannot "+i);var t=(u,e,i)=>(zt(u,e,"read from private field"),i?i.call(u):e.get(u)),g=(u,e,i)=>e.has(u)?$t("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(u):e.set(u,i),f=(u,e,i,s)=>(zt(u,e,"write to private field"),e.set(u,i),i),h=(u,e,i)=>(zt(u,e,"access private method"),i);var It=(u,e,i,s)=>({set _(r){f(u,e,r);},get _(){return t(u,e,s)}});var rt="storage",ct="temp",W="narration",Ft="flags",j={CURRENT_DIALOGUE_MEMORY_KEY:"dialogue",LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY:"dialogue:step_counter",CURRENT_MENU_OPTIONS_MEMORY_KEY:"choice:options",LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY:"choice:step_counter",CURRENT_INPUT_VALUE_MEMORY_KEY:"input:value",LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY:"input:step_counter",CURRENT_INPUT_INFO_MEMORY_KEY:"input:info",CHARACTER_CATEGORY_KEY:"character",ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY:"___glue___",OPENED_LABELS_COUNTER_KEY:"label:opened",ALL_CHOICES_MADE_KEY:"choices:made",CURRENT_STEP_TIMES_COUNTER_KEY:"label:history",LAST_STEP_GLUED:"glue:last_step"};var ut;(r=>(r.log=(o,...a)=>console.log(`[Pixi\u2019VN] ${o}`,...a),r.warn=(o,...a)=>console.warn(`[Pixi\u2019VN] ${o}`,...a),r.error=(o,...a)=>console.error(`[Pixi\u2019VN] ${o}`,...a),r.info=(o,...a)=>console.info(`[Pixi\u2019VN] ${o}`,...a)))(ut||(ut={}));function Ot(u){try{if(typeof u>"u")return u;let e=JSON.stringify(u);return JSON.parse(e)}catch(e){throw ut.error("Error creating exportable element",u,e),new core.PixiError("not_json_serializable","Error creating exportable element")}}var se=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Xt=new Set,Yt=typeof process=="object"&&process?process:{},Jt=(u,e,i,s)=>{typeof Yt.emitWarning=="function"?Yt.emitWarning(u,e,i,s):console.error(`[${i}] ${e}: ${u}`);},Lt=globalThis.AbortController,kt=globalThis.AbortSignal;if(typeof Lt>"u"){kt=class{constructor(){m(this,"onabort");m(this,"_onabort",[]);m(this,"reason");m(this,"aborted",false);}addEventListener(i,s){this._onabort.push(s);}},Lt=class{constructor(){m(this,"signal",new kt);e();}abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=true;for(let s of this.signal._onabort)s(i);this.signal.onabort?.(i);}}};let u=Yt.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{u&&(u=false,Jt("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e));};}var re=u=>!Xt.has(u);var at=u=>u&&u===Math.floor(u)&&u>0&&isFinite(u),qt=u=>at(u)?u<=Math.pow(2,8)?Uint8Array:u<=Math.pow(2,16)?Uint16Array:u<=Math.pow(2,32)?Uint32Array:u<=Number.MAX_SAFE_INTEGER?Ct:null:null,Ct=class extends Array{constructor(u){super(u),this.fill(0);}},et,St,ae=(et=class{constructor(e,i){m(this,"heap");m(this,"length");if(!t(et,St))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new i(e),this.length=0;}static create(e){let i=qt(e);if(!i)return [];f(et,St,true);let s=new et(e,i);return f(et,St,false),s}push(e){this.heap[this.length++]=e;}pop(){return this.heap[--this.length]}},St=new WeakMap,g(et,St,false),et),Ht,Bt,$,V,k,ft,H,Tt,bt,B,O,X,w,A,_,C,U,N,R,J,x,q,Q,z,Y,Z,lt,M,At,n,Pt,_t,it,xt,P,Zt,pt,yt,Dt,ot,nt,Kt,Mt,Gt,b,Wt,Rt,ht,jt,vt,Qt=(vt=class{constructor(e){g(this,n);g(this,$);g(this,V);g(this,k);g(this,ft);g(this,H);g(this,Tt);g(this,bt);g(this,B);m(this,"ttl");m(this,"ttlResolution");m(this,"ttlAutopurge");m(this,"updateAgeOnGet");m(this,"updateAgeOnHas");m(this,"allowStale");m(this,"noDisposeOnSet");m(this,"noUpdateTTL");m(this,"maxEntrySize");m(this,"sizeCalculation");m(this,"noDeleteOnFetchRejection");m(this,"noDeleteOnStaleGet");m(this,"allowStaleOnFetchAbort");m(this,"allowStaleOnFetchRejection");m(this,"ignoreFetchAbort");g(this,O);g(this,X);g(this,w);g(this,A);g(this,_);g(this,C);g(this,U);g(this,N);g(this,R);g(this,J);g(this,x);g(this,q);g(this,Q);g(this,z);g(this,Y);g(this,Z);g(this,lt);g(this,M);g(this,At);g(this,_t,()=>{});g(this,it,()=>{});g(this,xt,()=>{});g(this,P,()=>false);g(this,pt,e=>{});g(this,yt,(e,i,s)=>{});g(this,Dt,(e,i,s,r)=>{if(s||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});m(this,Ht,"LRUCache");let{max:i=0,ttl:s,ttlResolution:r=1,ttlAutopurge:o,updateAgeOnGet:a,updateAgeOnHas:l,allowStale:c,dispose:E,onInsert:D,disposeAfter:S,noDisposeOnSet:st,noUpdateTTL:K,maxSize:tt=0,maxEntrySize:y=0,sizeCalculation:T,fetchMethod:p,memoMethod:I,noDeleteOnFetchRejection:L,noDeleteOnStaleGet:F,allowStaleOnFetchRejection:v,allowStaleOnFetchAbort:wt,ignoreFetchAbort:gt,perf:mt}=e;if(mt!==void 0&&typeof mt?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(f(this,B,mt??se),i!==0&&!at(i))throw new TypeError("max option must be a nonnegative integer");let Et=i?qt(i):Array;if(!Et)throw new Error("invalid max value: "+i);if(f(this,$,i),f(this,V,tt),this.maxEntrySize=y||t(this,V),this.sizeCalculation=T,this.sizeCalculation){if(!t(this,V)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(I!==void 0&&typeof I!="function")throw new TypeError("memoMethod must be a function if defined");if(f(this,bt,I),p!==void 0&&typeof p!="function")throw new TypeError("fetchMethod must be a function if specified");if(f(this,Tt,p),f(this,lt,!!p),f(this,w,new Map),f(this,A,new Array(i).fill(void 0)),f(this,_,new Array(i).fill(void 0)),f(this,C,new Et(i)),f(this,U,new Et(i)),f(this,N,0),f(this,R,0),f(this,J,ae.create(i)),f(this,O,0),f(this,X,0),typeof E=="function"&&f(this,k,E),typeof D=="function"&&f(this,ft,D),typeof S=="function"?(f(this,H,S),f(this,x,[])):(f(this,H,void 0),f(this,x,void 0)),f(this,Z,!!t(this,k)),f(this,At,!!t(this,ft)),f(this,M,!!t(this,H)),this.noDisposeOnSet=!!st,this.noUpdateTTL=!!K,this.noDeleteOnFetchRejection=!!L,this.allowStaleOnFetchRejection=!!v,this.allowStaleOnFetchAbort=!!wt,this.ignoreFetchAbort=!!gt,this.maxEntrySize!==0){if(t(this,V)!==0&&!at(t(this,V)))throw new TypeError("maxSize must be a positive integer if specified");if(!at(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");h(this,n,Zt).call(this);}if(this.allowStale=!!c,this.noDeleteOnStaleGet=!!F,this.updateAgeOnGet=!!a,this.updateAgeOnHas=!!l,this.ttlResolution=at(r)||r===0?r:1,this.ttlAutopurge=!!o,this.ttl=s||0,this.ttl){if(!at(this.ttl))throw new TypeError("ttl must be a positive integer if specified");h(this,n,Pt).call(this);}if(t(this,$)===0&&this.ttl===0&&t(this,V)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!t(this,$)&&!t(this,V)){let Ut="LRU_CACHE_UNBOUNDED";re(Ut)&&(Xt.add(Ut),Jt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Ut,vt));}}get perf(){return t(this,B)}static unsafeExposeInternals(e){return {starts:t(e,Q),ttls:t(e,z),autopurgeTimers:t(e,Y),sizes:t(e,q),keyMap:t(e,w),keyList:t(e,A),valList:t(e,_),next:t(e,C),prev:t(e,U),get head(){return t(e,N)},get tail(){return t(e,R)},free:t(e,J),isBackgroundFetch:i=>{var s;return h(s=e,n,b).call(s,i)},backgroundFetch:(i,s,r,o)=>{var a;return h(a=e,n,Gt).call(a,i,s,r,o)},moveToTail:i=>{var s;return h(s=e,n,Rt).call(s,i)},indexes:i=>{var s;return h(s=e,n,ot).call(s,i)},rindexes:i=>{var s;return h(s=e,n,nt).call(s,i)},isStale:i=>{var s;return t(s=e,P).call(s,i)}}}get max(){return t(this,$)}get maxSize(){return t(this,V)}get calculatedSize(){return t(this,X)}get size(){return t(this,O)}get fetchMethod(){return t(this,Tt)}get memoMethod(){return t(this,bt)}get dispose(){return t(this,k)}get onInsert(){return t(this,ft)}get disposeAfter(){return t(this,H)}getRemainingTTL(e){return t(this,w).has(e)?1/0:0}*entries(){for(let e of h(this,n,ot).call(this))t(this,_)[e]!==void 0&&t(this,A)[e]!==void 0&&!h(this,n,b).call(this,t(this,_)[e])&&(yield [t(this,A)[e],t(this,_)[e]]);}*rentries(){for(let e of h(this,n,nt).call(this))t(this,_)[e]!==void 0&&t(this,A)[e]!==void 0&&!h(this,n,b).call(this,t(this,_)[e])&&(yield [t(this,A)[e],t(this,_)[e]]);}*keys(){for(let e of h(this,n,ot).call(this)){let i=t(this,A)[e];i!==void 0&&!h(this,n,b).call(this,t(this,_)[e])&&(yield i);}}*rkeys(){for(let e of h(this,n,nt).call(this)){let i=t(this,A)[e];i!==void 0&&!h(this,n,b).call(this,t(this,_)[e])&&(yield i);}}*values(){for(let e of h(this,n,ot).call(this))t(this,_)[e]!==void 0&&!h(this,n,b).call(this,t(this,_)[e])&&(yield t(this,_)[e]);}*rvalues(){for(let e of h(this,n,nt).call(this))t(this,_)[e]!==void 0&&!h(this,n,b).call(this,t(this,_)[e])&&(yield t(this,_)[e]);}[(Bt=Symbol.iterator,Ht=Symbol.toStringTag,Bt)](){return this.entries()}find(e,i={}){for(let s of h(this,n,ot).call(this)){let r=t(this,_)[s],o=h(this,n,b).call(this,r)?r.__staleWhileFetching:r;if(o!==void 0&&e(o,t(this,A)[s],this))return this.get(t(this,A)[s],i)}}forEach(e,i=this){for(let s of h(this,n,ot).call(this)){let r=t(this,_)[s],o=h(this,n,b).call(this,r)?r.__staleWhileFetching:r;o!==void 0&&e.call(i,o,t(this,A)[s],this);}}rforEach(e,i=this){for(let s of h(this,n,nt).call(this)){let r=t(this,_)[s],o=h(this,n,b).call(this,r)?r.__staleWhileFetching:r;o!==void 0&&e.call(i,o,t(this,A)[s],this);}}purgeStale(){let e=false;for(let i of h(this,n,nt).call(this,{allowStale:true}))t(this,P).call(this,i)&&(h(this,n,ht).call(this,t(this,A)[i],"expire"),e=true);return e}info(e){let i=t(this,w).get(e);if(i===void 0)return;let s=t(this,_)[i],r=h(this,n,b).call(this,s)?s.__staleWhileFetching:s;if(r===void 0)return;let o={value:r};if(t(this,z)&&t(this,Q)){let a=t(this,z)[i],l=t(this,Q)[i];if(a&&l){let c=a-(t(this,B).now()-l);o.ttl=c,o.start=Date.now();}}return t(this,q)&&(o.size=t(this,q)[i]),o}dump(){let e=[];for(let i of h(this,n,ot).call(this,{allowStale:true})){let s=t(this,A)[i],r=t(this,_)[i],o=h(this,n,b).call(this,r)?r.__staleWhileFetching:r;if(o===void 0||s===void 0)continue;let a={value:o};if(t(this,z)&&t(this,Q)){a.ttl=t(this,z)[i];let l=t(this,B).now()-t(this,Q)[i];a.start=Math.floor(Date.now()-l);}t(this,q)&&(a.size=t(this,q)[i]),e.unshift([s,a]);}return e}load(e){this.clear();for(let[i,s]of e){if(s.start){let r=Date.now()-s.start;s.start=t(this,B).now()-r;}this.set(i,s.value,s);}}set(e,i,s={}){var st,K,tt,y;if(i===void 0)return this.delete(e),this;let{ttl:r=this.ttl,start:o,noDisposeOnSet:a=this.noDisposeOnSet,sizeCalculation:l=this.sizeCalculation,status:c}=s,{noUpdateTTL:E=this.noUpdateTTL}=s,D=t(this,Dt).call(this,e,i,s.size||0,l);if(this.maxEntrySize&&D>this.maxEntrySize)return c&&(c.set="miss",c.maxEntrySizeExceeded=true),h(this,n,ht).call(this,e,"set"),this;let S=t(this,O)===0?void 0:t(this,w).get(e);if(S===void 0)S=t(this,O)===0?t(this,R):t(this,J).length!==0?t(this,J).pop():t(this,O)===t(this,$)?h(this,n,Mt).call(this,false):t(this,O),t(this,A)[S]=e,t(this,_)[S]=i,t(this,w).set(e,S),t(this,C)[t(this,R)]=S,t(this,U)[S]=t(this,R),f(this,R,S),It(this,O)._++,t(this,yt).call(this,S,D,c),c&&(c.set="add"),E=false,t(this,At)&&((st=t(this,ft))==null||st.call(this,i,e,"add"));else {h(this,n,Rt).call(this,S);let T=t(this,_)[S];if(i!==T){if(t(this,lt)&&h(this,n,b).call(this,T)){T.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:p}=T;p!==void 0&&!a&&(t(this,Z)&&((K=t(this,k))==null||K.call(this,p,e,"set")),t(this,M)&&t(this,x)?.push([p,e,"set"]));}else a||(t(this,Z)&&((tt=t(this,k))==null||tt.call(this,T,e,"set")),t(this,M)&&t(this,x)?.push([T,e,"set"]));if(t(this,pt).call(this,S),t(this,yt).call(this,S,D,c),t(this,_)[S]=i,c){c.set="replace";let p=T&&h(this,n,b).call(this,T)?T.__staleWhileFetching:T;p!==void 0&&(c.oldValue=p);}}else c&&(c.set="update");t(this,At)&&this.onInsert?.(i,e,i===T?"update":"replace");}if(r!==0&&!t(this,z)&&h(this,n,Pt).call(this),t(this,z)&&(E||t(this,xt).call(this,S,r,o),c&&t(this,it).call(this,c,S)),!a&&t(this,M)&&t(this,x)){let T=t(this,x),p;for(;p=T?.shift();)(y=t(this,H))==null||y.call(this,...p);}return this}pop(){var e;try{for(;t(this,O);){let i=t(this,_)[t(this,N)];if(h(this,n,Mt).call(this,!0),h(this,n,b).call(this,i)){if(i.__staleWhileFetching)return i.__staleWhileFetching}else if(i!==void 0)return i}}finally{if(t(this,M)&&t(this,x)){let i=t(this,x),s;for(;s=i?.shift();)(e=t(this,H))==null||e.call(this,...s);}}}has(e,i={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:r}=i,o=t(this,w).get(e);if(o!==void 0){let a=t(this,_)[o];if(h(this,n,b).call(this,a)&&a.__staleWhileFetching===void 0)return false;if(t(this,P).call(this,o))r&&(r.has="stale",t(this,it).call(this,r,o));else return s&&t(this,_t).call(this,o),r&&(r.has="hit",t(this,it).call(this,r,o)),true}else r&&(r.has="miss");return false}peek(e,i={}){let{allowStale:s=this.allowStale}=i,r=t(this,w).get(e);if(r===void 0||!s&&t(this,P).call(this,r))return;let o=t(this,_)[r];return h(this,n,b).call(this,o)?o.__staleWhileFetching:o}async fetch(e,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:a=this.ttl,noDisposeOnSet:l=this.noDisposeOnSet,size:c=0,sizeCalculation:E=this.sizeCalculation,noUpdateTTL:D=this.noUpdateTTL,noDeleteOnFetchRejection:S=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:st=this.allowStaleOnFetchRejection,ignoreFetchAbort:K=this.ignoreFetchAbort,allowStaleOnFetchAbort:tt=this.allowStaleOnFetchAbort,context:y,forceRefresh:T=false,status:p,signal:I}=i;if(!t(this,lt))return p&&(p.fetch="get"),this.get(e,{allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:o,status:p});let L={allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:o,ttl:a,noDisposeOnSet:l,size:c,sizeCalculation:E,noUpdateTTL:D,noDeleteOnFetchRejection:S,allowStaleOnFetchRejection:st,allowStaleOnFetchAbort:tt,ignoreFetchAbort:K,status:p,signal:I},F=t(this,w).get(e);if(F===void 0){p&&(p.fetch="miss");let v=h(this,n,Gt).call(this,e,F,L,y);return v.__returned=v}else {let v=t(this,_)[F];if(h(this,n,b).call(this,v)){let Et=s&&v.__staleWhileFetching!==void 0;return p&&(p.fetch="inflight",Et&&(p.returnedStale=true)),Et?v.__staleWhileFetching:v.__returned=v}let wt=t(this,P).call(this,F);if(!T&&!wt)return p&&(p.fetch="hit"),h(this,n,Rt).call(this,F),r&&t(this,_t).call(this,F),p&&t(this,it).call(this,p,F),v;let gt=h(this,n,Gt).call(this,e,F,L,y),mt=gt.__staleWhileFetching!==void 0&&s;return p&&(p.fetch=wt?"stale":"refresh",mt&&wt&&(p.returnedStale=true)),mt?gt.__staleWhileFetching:gt.__returned=gt}}async forceFetch(e,i={}){let s=await this.fetch(e,i);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(e,i={}){let s=t(this,bt);if(!s)throw new Error("no memoMethod provided to constructor");let{context:r,forceRefresh:o,...a}=i,l=this.get(e,a);if(!o&&l!==void 0)return l;let c=s(e,l,{options:a,context:r});return this.set(e,c,a),c}get(e,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:a}=i,l=t(this,w).get(e);if(l!==void 0){let c=t(this,_)[l],E=h(this,n,b).call(this,c);return a&&t(this,it).call(this,a,l),t(this,P).call(this,l)?(a&&(a.get="stale"),E?(a&&s&&c.__staleWhileFetching!==void 0&&(a.returnedStale=true),s?c.__staleWhileFetching:void 0):(o||h(this,n,ht).call(this,e,"expire"),a&&s&&(a.returnedStale=true),s?c:void 0)):(a&&(a.get="hit"),E?c.__staleWhileFetching:(h(this,n,Rt).call(this,l),r&&t(this,_t).call(this,l),c))}else a&&(a.get="miss");}delete(e){return h(this,n,ht).call(this,e,"delete")}clear(){return h(this,n,jt).call(this,"delete")}},$=new WeakMap,V=new WeakMap,k=new WeakMap,ft=new WeakMap,H=new WeakMap,Tt=new WeakMap,bt=new WeakMap,B=new WeakMap,O=new WeakMap,X=new WeakMap,w=new WeakMap,A=new WeakMap,_=new WeakMap,C=new WeakMap,U=new WeakMap,N=new WeakMap,R=new WeakMap,J=new WeakMap,x=new WeakMap,q=new WeakMap,Q=new WeakMap,z=new WeakMap,Y=new WeakMap,Z=new WeakMap,lt=new WeakMap,M=new WeakMap,At=new WeakMap,n=new WeakSet,Pt=function(){let e=new Ct(t(this,$)),i=new Ct(t(this,$));f(this,z,e),f(this,Q,i);let s=this.ttlAutopurge?new Array(t(this,$)):void 0;f(this,Y,s),f(this,xt,(l,c,E=t(this,B).now())=>{i[l]=c!==0?E:0,e[l]=c,r(l,c);}),f(this,_t,l=>{i[l]=e[l]!==0?t(this,B).now():0,r(l,e[l]);});let r=this.ttlAutopurge?(l,c)=>{if(s?.[l]&&(clearTimeout(s[l]),s[l]=void 0),c&&c!==0&&s){let E=setTimeout(()=>{t(this,P).call(this,l)&&h(this,n,ht).call(this,t(this,A)[l],"expire");},c+1);E.unref&&E.unref(),s[l]=E;}}:()=>{};f(this,it,(l,c)=>{if(e[c]){let E=e[c],D=i[c];if(!E||!D)return;l.ttl=E,l.start=D,l.now=o||a();let S=l.now-D;l.remainingTTL=E-S;}});let o=0,a=()=>{let l=t(this,B).now();if(this.ttlResolution>0){o=l;let c=setTimeout(()=>o=0,this.ttlResolution);c.unref&&c.unref();}return l};this.getRemainingTTL=l=>{let c=t(this,w).get(l);if(c===void 0)return 0;let E=e[c],D=i[c];if(!E||!D)return 1/0;let S=(o||a())-D;return E-S},f(this,P,l=>{let c=i[l],E=e[l];return !!E&&!!c&&(o||a())-c>E});},_t=new WeakMap,it=new WeakMap,xt=new WeakMap,P=new WeakMap,Zt=function(){let e=new Ct(t(this,$));f(this,X,0),f(this,q,e),f(this,pt,i=>{f(this,X,t(this,X)-e[i]),e[i]=0;}),f(this,Dt,(i,s,r,o)=>{if(h(this,n,b).call(this,s))return 0;if(!at(r))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(r=o(s,i),!at(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return r}),f(this,yt,(i,s,r)=>{if(e[i]=s,t(this,V)){let o=t(this,V)-e[i];for(;t(this,X)>o;)h(this,n,Mt).call(this,true);}f(this,X,t(this,X)+e[i]),r&&(r.entrySize=s,r.totalCalculatedSize=t(this,X));});},pt=new WeakMap,yt=new WeakMap,Dt=new WeakMap,ot=function*({allowStale:e=this.allowStale}={}){if(t(this,O))for(let i=t(this,R);!(!h(this,n,Kt).call(this,i)||((e||!t(this,P).call(this,i))&&(yield i),i===t(this,N)));)i=t(this,U)[i];},nt=function*({allowStale:e=this.allowStale}={}){if(t(this,O))for(let i=t(this,N);!(!h(this,n,Kt).call(this,i)||((e||!t(this,P).call(this,i))&&(yield i),i===t(this,R)));)i=t(this,C)[i];},Kt=function(e){return e!==void 0&&t(this,w).get(t(this,A)[e])===e},Mt=function(e){var o;let i=t(this,N),s=t(this,A)[i],r=t(this,_)[i];return t(this,lt)&&h(this,n,b).call(this,r)?r.__abortController.abort(new Error("evicted")):(t(this,Z)||t(this,M))&&(t(this,Z)&&((o=t(this,k))==null||o.call(this,r,s,"evict")),t(this,M)&&t(this,x)?.push([r,s,"evict"])),t(this,pt).call(this,i),t(this,Y)?.[i]&&(clearTimeout(t(this,Y)[i]),t(this,Y)[i]=void 0),e&&(t(this,A)[i]=void 0,t(this,_)[i]=void 0,t(this,J).push(i)),t(this,O)===1?(f(this,N,f(this,R,0)),t(this,J).length=0):f(this,N,t(this,C)[i]),t(this,w).delete(s),It(this,O)._--,i},Gt=function(e,i,s,r){let o=i===void 0?void 0:t(this,_)[i];if(h(this,n,b).call(this,o))return o;let a=new Lt,{signal:l}=s;l?.addEventListener("abort",()=>a.abort(l.reason),{signal:a.signal});let c={signal:a.signal,options:s,context:r},E=(y,T=false)=>{let{aborted:p}=a.signal,I=s.ignoreFetchAbort&&y!==void 0,L=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&y!==void 0);if(s.status&&(p&&!T?(s.status.fetchAborted=true,s.status.fetchError=a.signal.reason,I&&(s.status.fetchAbortIgnored=true)):s.status.fetchResolved=true),p&&!I&&!T)return S(a.signal.reason,L);let F=K,v=t(this,_)[i];return (v===K||I&&T&&v===void 0)&&(y===void 0?F.__staleWhileFetching!==void 0?t(this,_)[i]=F.__staleWhileFetching:h(this,n,ht).call(this,e,"fetch"):(s.status&&(s.status.fetchUpdated=true),this.set(e,y,c.options))),y},D=y=>(s.status&&(s.status.fetchRejected=true,s.status.fetchError=y),S(y,false)),S=(y,T)=>{let{aborted:p}=a.signal,I=p&&s.allowStaleOnFetchAbort,L=I||s.allowStaleOnFetchRejection,F=L||s.noDeleteOnFetchRejection,v=K;if(t(this,_)[i]===K&&(!F||!T&&v.__staleWhileFetching===void 0?h(this,n,ht).call(this,e,"fetch"):I||(t(this,_)[i]=v.__staleWhileFetching)),L)return s.status&&v.__staleWhileFetching!==void 0&&(s.status.returnedStale=true),v.__staleWhileFetching;if(v.__returned===v)throw y},st=(y,T)=>{var I;let p=(I=t(this,Tt))==null?void 0:I.call(this,e,o,c);p&&p instanceof Promise&&p.then(L=>y(L===void 0?void 0:L),T),a.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(y(void 0),s.allowStaleOnFetchAbort&&(y=L=>E(L,true)));});};s.status&&(s.status.fetchDispatched=true);let K=new Promise(st).then(E,D),tt=Object.assign(K,{__abortController:a,__staleWhileFetching:o,__returned:void 0});return i===void 0?(this.set(e,tt,{...c.options,status:void 0}),i=t(this,w).get(e)):t(this,_)[i]=tt,tt},b=function(e){if(!t(this,lt))return false;let i=e;return !!i&&i instanceof Promise&&i.hasOwnProperty("__staleWhileFetching")&&i.__abortController instanceof Lt},Wt=function(e,i){t(this,U)[i]=e,t(this,C)[e]=i;},Rt=function(e){e!==t(this,R)&&(e===t(this,N)?f(this,N,t(this,C)[e]):h(this,n,Wt).call(this,t(this,U)[e],t(this,C)[e]),h(this,n,Wt).call(this,t(this,R),e),f(this,R,e));},ht=function(e,i){var r,o;let s=false;if(t(this,O)!==0){let a=t(this,w).get(e);if(a!==void 0)if(t(this,Y)?.[a]&&(clearTimeout(t(this,Y)?.[a]),t(this,Y)[a]=void 0),s=true,t(this,O)===1)h(this,n,jt).call(this,i);else {t(this,pt).call(this,a);let l=t(this,_)[a];if(h(this,n,b).call(this,l)?l.__abortController.abort(new Error("deleted")):(t(this,Z)||t(this,M))&&(t(this,Z)&&((r=t(this,k))==null||r.call(this,l,e,i)),t(this,M)&&t(this,x)?.push([l,e,i])),t(this,w).delete(e),t(this,A)[a]=void 0,t(this,_)[a]=void 0,a===t(this,R))f(this,R,t(this,U)[a]);else if(a===t(this,N))f(this,N,t(this,C)[a]);else {let c=t(this,U)[a];t(this,C)[c]=t(this,C)[a];let E=t(this,C)[a];t(this,U)[E]=t(this,U)[a];}It(this,O)._--,t(this,J).push(a);}}if(t(this,M)&&t(this,x)?.length){let a=t(this,x),l;for(;l=a?.shift();)(o=t(this,H))==null||o.call(this,...l);}return s},jt=function(e){var i,s;for(let r of h(this,n,nt).call(this,{allowStale:true})){let o=t(this,_)[r];if(h(this,n,b).call(this,o))o.__abortController.abort(new Error("deleted"));else {let a=t(this,A)[r];t(this,Z)&&((i=t(this,k))==null||i.call(this,o,a,e)),t(this,M)&&t(this,x)?.push([o,a,e]);}}if(t(this,w).clear(),t(this,_).fill(void 0),t(this,A).fill(void 0),t(this,z)&&t(this,Q)){t(this,z).fill(0),t(this,Q).fill(0);for(let r of t(this,Y)??[])r!==void 0&&clearTimeout(r);t(this,Y)?.fill(void 0);}if(t(this,q)&&t(this,q).fill(0),f(this,N,0),f(this,R,0),t(this,J).length=0,f(this,X,0),f(this,O,0),t(this,M)&&t(this,x)){let r=t(this,x),o;for(;o=r?.shift();)(s=t(this,H))==null||s.call(this,...o);}},vt);var dt=class{constructor(e){m(this,"cache");m(this,"map",new Map);this.cache=new Qt({max:e.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){return this.cache.clear(),this.map.clear()}delete(e){let i=this.map.delete(e);return i&&this.cache.delete(e),i}get forEach(){return this.map.forEach}get(e){let i=this.cache.get(e);return i||this.map.get(e)}has(e){return this.map.has(e)}set(e,i){return this.map.set(e,i),this.cache.set(e,i),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var G=class G{constructor(){}static clearOldTempVariables(e){G.tempStorageDeadlines.forEach((i,s)=>{i>e&&(G.removeVariable(ct,s),G.tempStorageDeadlines.delete(s));});}static setVariable(e,i,s){s==null?G.storage.delete(`${e}:${i}`):G.storage.set(`${e}:${i}`,s);}static getVariable(e,i){let s=G.storage.get(`${e}:${i}`);return Ot(s)}static removeVariable(e,i){G.storage.delete(`${e}:${i}`);}static setFlag(e,i){let s=G.storage.get(Ft)||[];if(i)s.includes(e)||s.push(e);else {let r=s.indexOf(e);r>-1&&s.splice(r,1);}G.storage.set(Ft,s);}static getFlag(e){return (G.storage.get(Ft)||[]).includes(e)}};m(G,"storage",new dt({cacheSize:50})),m(G,"default",new dt({cacheSize:10})),m(G,"tempStorageDeadlines",new Map);var d=G;var Nt=class{get base(){return d.storage.map}get cache(){return d.storage.cache}get tempStorageDeadlines(){return d.tempStorageDeadlines}set default(e){Object.entries(e).forEach(([i,s])=>{d.default.map.set(i,s);});}set(e,i){return d.setVariable(rt,e,i)}get(e){let i=d.getVariable(ct,e);return i===void 0&&(i=d.getVariable(rt,e)),i===void 0&&(i=Ot(d.default.get(e))),i}remove(e){return this.removeTempVariable(e),d.removeVariable(rt,e)}setTempVariable(e,i){if(i==null){this.removeTempVariable(e);return}else d.setVariable(ct,e,i),this.tempStorageDeadlines.has(e)||this.tempStorageDeadlines.set(e,core.GameUnifier.openedLabels);}removeTempVariable(e){d.removeVariable(ct,e),this.tempStorageDeadlines.has(e)&&this.tempStorageDeadlines.delete(e);}setFlag(e,i){return d.setFlag(e,i)}getFlag(e){return d.getFlag(e)}clear(){this.base.clear(),this.cache.clear(),this.tempStorageDeadlines.clear();}export(){let e=[];[...this.base.keys()].forEach(s=>{e.push({key:s,value:this.base.get(s)});});let i=[];return [...d.tempStorageDeadlines.keys()].forEach(s=>{i.push({key:s,value:this.tempStorageDeadlines.get(s)});}),Ot({main:e,tempDeadlines:i})}restore(e){this.clear();try{e?(e.base?.forEach(i=>{switch(i.key){case "___current_dialogue_memory___":d.setVariable(W,j.CURRENT_DIALOGUE_MEMORY_KEY,i.value);break;case "___last_dialogue_added_in_step_memory___":d.setVariable(W,j.LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY,i.value);break;case "___current_menu_options_memory___":d.setVariable(W,j.CURRENT_MENU_OPTIONS_MEMORY_KEY,i.value);break;case "___last_menu_options_added_in_step_memory___":d.setVariable(W,j.LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY,i.value);break;case "_input_value_":d.setVariable(W,j.CURRENT_INPUT_VALUE_MEMORY_KEY,i.value);break;case "___last_input_added_in_step_memory___":d.setVariable(W,j.LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY,i.value);break;case "___current_input_info_memory___":d.setVariable(W,j.CURRENT_INPUT_INFO_MEMORY_KEY,i.value);break;case "___opened_labels_counter___":d.setVariable(W,j.OPENED_LABELS_COUNTER_KEY,i.value);break;case "___all_choices_made___":d.setVariable(W,j.ALL_CHOICES_MADE_KEY,i.value);break;case "___current_step_times_counter___":d.setVariable(W,j.CURRENT_STEP_TIMES_COUNTER_KEY,i.value);break;case "___last_step_glued___":d.setVariable(W,j.LAST_STEP_GLUED,i.value);break;default:d.setVariable(rt,i.key,i.value);}}),e.temp?.forEach(i=>{d.setVariable(ct,i.key,i.value);}),e.flags?.forEach(i=>{d.setFlag(i,!0);}),e.main?.forEach(i=>{this.base.set(i.key,i.value);}),e.tempDeadlines?.forEach(i=>{this.tempStorageDeadlines.set(i.key,i.value);})):ut.warn("No storage data found");}catch(i){ut.error("Error importing data",i);}}};var Vt=class{constructor(e,i){m(this,"id");m(this,"categoryId");this.categoryId=e,this.id=i,this.migrateOldStorage();}migrateOldStorage(e=this.categoryId){let i=d.getVariable(rt,e);i&&(Object.entries(i).forEach(([s,r])=>{typeof r=="object"&&r!==null&&Object.entries(r).forEach(([o,a])=>{d.setVariable(this.categoryId,`${s}:${o}`,a);});}),d.removeVariable(rt,e));}setStorageProperty(e,i){d.setVariable(this.categoryId,`${this.id}:${e}`,i);}getStorageProperty(e,i=this.id){return d.getVariable(this.categoryId,`${i}:${e}`)}};var ze=new Nt;exports.StorageManagerStatic=d;exports.StoredClassModel=Vt;exports.storage=ze;//# sourceMappingURL=storage.cjs.map //# sourceMappingURL=storage.cjs.map