@luminocity/lemonate-gateway 8.2.27 → 8.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +75 -50
- package/dist/lemonate-gateway.cjs.js +2 -2
- package/dist/lemonate-gateway.cjs.js.map +1 -1
- package/dist/lemonate-gateway.esm.js +2 -2
- package/dist/lemonate-gateway.esm.js.map +1 -1
- package/dist/lemonate-gateway.umd.js +2 -2
- package/dist/lemonate-gateway.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,11 +9,11 @@ a.version="2.30.1",i(Za),a.fn=ur,a.min=Qa,a.max=ei,a.now=ti,a.utc=h,a.unix=cr,a.
|
|
|
9
9
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
10
10
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
11
11
|
*/var ae=(Q||(Q=1,function(e,t){(function(){var a,i="Expected a function",n="__lodash_hash_undefined__",r="__lodash_placeholder__",s=32,o=128,l=256,u=1/0,c=9007199254740991,d=NaN,p=4294967295,h=[["ary",o],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",s],["partialRight",64],["rearg",l]],f="[object Arguments]",m="[object Array]",y="[object Boolean]",g="[object Date]",b="[object Error]",v="[object Function]",_="[object GeneratorFunction]",w="[object Map]",A="[object Number]",k="[object Object]",S="[object Promise]",N="[object RegExp]",x="[object Set]",T="[object String]",M="[object Symbol]",V="[object WeakMap]",C="[object ArrayBuffer]",I="[object DataView]",F="[object Float32Array]",E="[object Float64Array]",D="[object Int8Array]",L="[object Int16Array]",R="[object Int32Array]",O="[object Uint8Array]",B="[object Uint8ClampedArray]",$="[object Uint16Array]",j="[object Uint32Array]",U=/\b__p \+= '';/g,z=/\b(__p \+=) '' \+/g,W=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Y=/&(?:amp|lt|gt|quot|#39);/g,H=/[&<>"']/g,G=RegExp(Y.source),q=RegExp(H.source),Z=/<%-([\s\S]+?)%>/g,J=/<%([\s\S]+?)%>/g,K=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Q=/^\w*$/,ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/[\\^$.*+?()[\]{}|]/g,ae=RegExp(te.source),ie=/^\s+/,ne=/\s/,re=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,se=/\{\n\/\* \[wrapped with (.+)\] \*/,oe=/,? & /,le=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ue=/[()=,{}\[\]\/\s]/,ce=/\\(\\)?/g,de=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,he=/^[-+]0x[0-9a-f]+$/i,fe=/^0b[01]+$/i,me=/^\[object .+?Constructor\]$/,ye=/^0o[0-7]+$/i,ge=/^(?:0|[1-9]\d*)$/,be=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ve=/($^)/,_e=/['\n\r\u2028\u2029\\]/g,we="\\ud800-\\udfff",Ae="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",ke="\\u2700-\\u27bf",Se="a-z\\xdf-\\xf6\\xf8-\\xff",Ne="A-Z\\xc0-\\xd6\\xd8-\\xde",xe="\\ufe0e\\ufe0f",Te="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Me="['’]",Ve="["+we+"]",Ce="["+Te+"]",Ie="["+Ae+"]",Fe="\\d+",Ee="["+ke+"]",De="["+Se+"]",Le="[^"+we+Te+Fe+ke+Se+Ne+"]",Re="\\ud83c[\\udffb-\\udfff]",Pe="[^"+we+"]",Oe="(?:\\ud83c[\\udde6-\\uddff]){2}",Be="[\\ud800-\\udbff][\\udc00-\\udfff]",$e="["+Ne+"]",je="\\u200d",Ue="(?:"+De+"|"+Le+")",ze="(?:"+$e+"|"+Le+")",We="(?:['’](?:d|ll|m|re|s|t|ve))?",Ye="(?:['’](?:D|LL|M|RE|S|T|VE))?",He="(?:"+Ie+"|"+Re+")?",Ge="["+xe+"]?",qe=Ge+He+"(?:"+je+"(?:"+[Pe,Oe,Be].join("|")+")"+Ge+He+")*",Ze="(?:"+[Ee,Oe,Be].join("|")+")"+qe,Je="(?:"+[Pe+Ie+"?",Ie,Oe,Be,Ve].join("|")+")",Ke=RegExp(Me,"g"),Xe=RegExp(Ie,"g"),Qe=RegExp(Re+"(?="+Re+")|"+Je+qe,"g"),et=RegExp([$e+"?"+De+"+"+We+"(?="+[Ce,$e,"$"].join("|")+")",ze+"+"+Ye+"(?="+[Ce,$e+Ue,"$"].join("|")+")",$e+"?"+Ue+"+"+We,$e+"+"+Ye,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fe,Ze].join("|"),"g"),tt=RegExp("["+je+we+Ae+xe+"]"),at=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,it=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],nt=-1,rt={};rt[F]=rt[E]=rt[D]=rt[L]=rt[R]=rt[O]=rt[B]=rt[$]=rt[j]=!0,rt[f]=rt[m]=rt[C]=rt[y]=rt[I]=rt[g]=rt[b]=rt[v]=rt[w]=rt[A]=rt[k]=rt[N]=rt[x]=rt[T]=rt[V]=!1;var st={};st[f]=st[m]=st[C]=st[I]=st[y]=st[g]=st[F]=st[E]=st[D]=st[L]=st[R]=st[w]=st[A]=st[k]=st[N]=st[x]=st[T]=st[M]=st[O]=st[B]=st[$]=st[j]=!0,st[b]=st[v]=st[V]=!1;var ot={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},lt=parseFloat,ut=parseInt,ct="object"==typeof P&&P&&P.Object===Object&&P,dt="object"==typeof self&&self&&self.Object===Object&&self,pt=ct||dt||Function("return this")(),ht=t&&!t.nodeType&&t,ft=ht&&e&&!e.nodeType&&e,mt=ft&&ft.exports===ht,yt=mt&&ct.process,gt=function(){try{var e=ft&&ft.require&&ft.require("util").types;return e||yt&&yt.binding&&yt.binding("util")}catch(e){}}(),bt=gt&>.isArrayBuffer,vt=gt&>.isDate,_t=gt&>.isMap,wt=gt&>.isRegExp,At=gt&>.isSet,kt=gt&>.isTypedArray;function St(e,t,a){switch(a.length){case 0:return e.call(t);case 1:return e.call(t,a[0]);case 2:return e.call(t,a[0],a[1]);case 3:return e.call(t,a[0],a[1],a[2])}return e.apply(t,a)}function Nt(e,t,a,i){for(var n=-1,r=null==e?0:e.length;++n<r;){var s=e[n];t(i,s,a(s),e)}return i}function xt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i&&!1!==t(e[a],a,e););return e}function Tt(e,t){for(var a=null==e?0:e.length;a--&&!1!==t(e[a],a,e););return e}function Mt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i;)if(!t(e[a],a,e))return!1;return!0}function Vt(e,t){for(var a=-1,i=null==e?0:e.length,n=0,r=[];++a<i;){var s=e[a];t(s,a,e)&&(r[n++]=s)}return r}function Ct(e,t){return!(null==e||!e.length)&&$t(e,t,0)>-1}function It(e,t,a){for(var i=-1,n=null==e?0:e.length;++i<n;)if(a(t,e[i]))return!0;return!1}function Ft(e,t){for(var a=-1,i=null==e?0:e.length,n=Array(i);++a<i;)n[a]=t(e[a],a,e);return n}function Et(e,t){for(var a=-1,i=t.length,n=e.length;++a<i;)e[n+a]=t[a];return e}function Dt(e,t,a,i){var n=-1,r=null==e?0:e.length;for(i&&r&&(a=e[++n]);++n<r;)a=t(a,e[n],n,e);return a}function Lt(e,t,a,i){var n=null==e?0:e.length;for(i&&n&&(a=e[--n]);n--;)a=t(a,e[n],n,e);return a}function Rt(e,t){for(var a=-1,i=null==e?0:e.length;++a<i;)if(t(e[a],a,e))return!0;return!1}var Pt=Wt("length");function Ot(e,t,a){var i;return a(e,(function(e,a,n){if(t(e,a,n))return i=a,!1})),i}function Bt(e,t,a,i){for(var n=e.length,r=a+(i?1:-1);i?r--:++r<n;)if(t(e[r],r,e))return r;return-1}function $t(e,t,a){return t==t?function(e,t,a){for(var i=a-1,n=e.length;++i<n;)if(e[i]===t)return i;return-1}(e,t,a):Bt(e,Ut,a)}function jt(e,t,a,i){for(var n=a-1,r=e.length;++n<r;)if(i(e[n],t))return n;return-1}function Ut(e){return e!=e}function zt(e,t){var a=null==e?0:e.length;return a?Gt(e,t)/a:d}function Wt(e){return function(t){return null==t?a:t[e]}}function Yt(e){return function(t){return null==e?a:e[t]}}function Ht(e,t,a,i,n){return n(e,(function(e,n,r){a=i?(i=!1,e):t(a,e,n,r)})),a}function Gt(e,t){for(var i,n=-1,r=e.length;++n<r;){var s=t(e[n]);s!==a&&(i=i===a?s:i+s)}return i}function qt(e,t){for(var a=-1,i=Array(e);++a<e;)i[a]=t(a);return i}function Zt(e){return e?e.slice(0,pa(e)+1).replace(ie,""):e}function Jt(e){return function(t){return e(t)}}function Kt(e,t){return Ft(t,(function(t){return e[t]}))}function Xt(e,t){return e.has(t)}function Qt(e,t){for(var a=-1,i=e.length;++a<i&&$t(t,e[a],0)>-1;);return a}function ea(e,t){for(var a=e.length;a--&&$t(t,e[a],0)>-1;);return a}var ta=Yt({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),aa=Yt({"&":"&","<":"<",">":">",'"':""","'":"'"});function ia(e){return"\\"+ot[e]}function na(e){return tt.test(e)}function ra(e){var t=-1,a=Array(e.size);return e.forEach((function(e,i){a[++t]=[i,e]})),a}function sa(e,t){return function(a){return e(t(a))}}function oa(e,t){for(var a=-1,i=e.length,n=0,s=[];++a<i;){var o=e[a];o!==t&&o!==r||(e[a]=r,s[n++]=a)}return s}function la(e){var t=-1,a=Array(e.size);return e.forEach((function(e){a[++t]=e})),a}function ua(e){var t=-1,a=Array(e.size);return e.forEach((function(e){a[++t]=[e,e]})),a}function ca(e){return na(e)?function(e){for(var t=Qe.lastIndex=0;Qe.test(e);)++t;return t}(e):Pt(e)}function da(e){return na(e)?function(e){return e.match(Qe)||[]}(e):function(e){return e.split("")}(e)}function pa(e){for(var t=e.length;t--&&ne.test(e.charAt(t)););return t}var ha=Yt({"&":"&","<":"<",">":">",""":'"',"'":"'"}),fa=function e(t){var P,ne=(t=null==t?pt:fa.defaults(pt.Object(),t,fa.pick(pt,it))).Array,we=t.Date,Ae=t.Error,ke=t.Function,Se=t.Math,Ne=t.Object,xe=t.RegExp,Te=t.String,Me=t.TypeError,Ve=ne.prototype,Ce=ke.prototype,Ie=Ne.prototype,Fe=t["__core-js_shared__"],Ee=Ce.toString,De=Ie.hasOwnProperty,Le=0,Re=(P=/[^.]+$/.exec(Fe&&Fe.keys&&Fe.keys.IE_PROTO||""))?"Symbol(src)_1."+P:"",Pe=Ie.toString,Oe=Ee.call(Ne),Be=pt._,$e=xe("^"+Ee.call(De).replace(te,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),je=mt?t.Buffer:a,Ue=t.Symbol,ze=t.Uint8Array,We=je?je.allocUnsafe:a,Ye=sa(Ne.getPrototypeOf,Ne),He=Ne.create,Ge=Ie.propertyIsEnumerable,qe=Ve.splice,Ze=Ue?Ue.isConcatSpreadable:a,Je=Ue?Ue.iterator:a,Qe=Ue?Ue.toStringTag:a,tt=function(){try{var e=cr(Ne,"defineProperty");return e({},"",{}),e}catch(e){}}(),ot=t.clearTimeout!==pt.clearTimeout&&t.clearTimeout,ct=we&&we.now!==pt.Date.now&&we.now,dt=t.setTimeout!==pt.setTimeout&&t.setTimeout,ht=Se.ceil,ft=Se.floor,yt=Ne.getOwnPropertySymbols,gt=je?je.isBuffer:a,Pt=t.isFinite,Yt=Ve.join,ma=sa(Ne.keys,Ne),ya=Se.max,ga=Se.min,ba=we.now,va=t.parseInt,_a=Se.random,wa=Ve.reverse,Aa=cr(t,"DataView"),ka=cr(t,"Map"),Sa=cr(t,"Promise"),Na=cr(t,"Set"),xa=cr(t,"WeakMap"),Ta=cr(Ne,"create"),Ma=xa&&new xa,Va={},Ca=Rr(Aa),Ia=Rr(ka),Fa=Rr(Sa),Ea=Rr(Na),Da=Rr(xa),La=Ue?Ue.prototype:a,Ra=La?La.valueOf:a,Pa=La?La.toString:a;function Oa(e){if(Qs(e)&&!Us(e)&&!(e instanceof Ua)){if(e instanceof ja)return e;if(De.call(e,"__wrapped__"))return Pr(e)}return new ja(e)}var Ba=function(){function e(){}return function(t){if(!Xs(t))return{};if(He)return He(t);e.prototype=t;var i=new e;return e.prototype=a,i}}();function $a(){}function ja(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=a}function Ua(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=p,this.__views__=[]}function za(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Wa(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Ya(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t<a;){var i=e[t];this.set(i[0],i[1])}}function Ha(e){var t=-1,a=null==e?0:e.length;for(this.__data__=new Ya;++t<a;)this.add(e[t])}function Ga(e){var t=this.__data__=new Wa(e);this.size=t.size}function qa(e,t){var a=Us(e),i=!a&&js(e),n=!a&&!i&&Hs(e),r=!a&&!i&&!n&&oo(e),s=a||i||n||r,o=s?qt(e.length,Te):[],l=o.length;for(var u in e)!t&&!De.call(e,u)||s&&("length"==u||n&&("offset"==u||"parent"==u)||r&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||gr(u,l))||o.push(u);return o}function Za(e){var t=e.length;return t?e[Hi(0,t-1)]:a}function Ja(e,t){return Er(Mn(e),ri(t,0,e.length))}function Ka(e){return Er(Mn(e))}function Xa(e,t,i){(i!==a&&!Os(e[t],i)||i===a&&!(t in e))&&ii(e,t,i)}function Qa(e,t,i){var n=e[t];De.call(e,t)&&Os(n,i)&&(i!==a||t in e)||ii(e,t,i)}function ei(e,t){for(var a=e.length;a--;)if(Os(e[a][0],t))return a;return-1}function ti(e,t,a,i){return ci(e,(function(e,n,r){t(i,e,a(e),r)})),i}function ai(e,t){return e&&Vn(t,Co(t),e)}function ii(e,t,a){"__proto__"==t&&tt?tt(e,t,{configurable:!0,enumerable:!0,value:a,writable:!0}):e[t]=a}function ni(e,t){for(var i=-1,n=t.length,r=ne(n),s=null==e;++i<n;)r[i]=s?a:No(e,t[i]);return r}function ri(e,t,i){return e==e&&(i!==a&&(e=e<=i?e:i),t!==a&&(e=e>=t?e:t)),e}function si(e,t,i,n,r,s){var o,l=1&t,u=2&t,c=4&t;if(i&&(o=r?i(e,n,r,s):i(e)),o!==a)return o;if(!Xs(e))return e;var d=Us(e);if(d){if(o=function(e){var t=e.length,a=new e.constructor(t);return t&&"string"==typeof e[0]&&De.call(e,"index")&&(a.index=e.index,a.input=e.input),a}(e),!l)return Mn(e,o)}else{var p=hr(e),h=p==v||p==_;if(Hs(e))return An(e,l);if(p==k||p==f||h&&!r){if(o=u||h?{}:mr(e),!l)return u?function(e,t){return Vn(e,pr(e),t)}(e,function(e,t){return e&&Vn(t,Io(t),e)}(o,e)):function(e,t){return Vn(e,dr(e),t)}(e,ai(o,e))}else{if(!st[p])return r?e:{};o=function(e,t,a){var i,n=e.constructor;switch(t){case C:return kn(e);case y:case g:return new n(+e);case I:return function(e,t){var a=t?kn(e.buffer):e.buffer;return new e.constructor(a,e.byteOffset,e.byteLength)}(e,a);case F:case E:case D:case L:case R:case O:case B:case $:case j:return Sn(e,a);case w:return new n;case A:case T:return new n(e);case N:return function(e){var t=new e.constructor(e.source,pe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case x:return new n;case M:return i=e,Ra?Ne(Ra.call(i)):{}}}(e,p,l)}}s||(s=new Ga);var m=s.get(e);if(m)return m;s.set(e,o),no(e)?e.forEach((function(a){o.add(si(a,t,i,a,e,s))})):eo(e)&&e.forEach((function(a,n){o.set(n,si(a,t,i,n,e,s))}));var b=d?a:(c?u?ir:ar:u?Io:Co)(e);return xt(b||e,(function(a,n){b&&(a=e[n=a]),Qa(o,n,si(a,t,i,n,e,s))})),o}function oi(e,t,i){var n=i.length;if(null==e)return!n;for(e=Ne(e);n--;){var r=i[n],s=t[r],o=e[r];if(o===a&&!(r in e)||!s(o))return!1}return!0}function li(e,t,n){if("function"!=typeof e)throw new Me(i);return Vr((function(){e.apply(a,n)}),t)}function ui(e,t,a,i){var n=-1,r=Ct,s=!0,o=e.length,l=[],u=t.length;if(!o)return l;a&&(t=Ft(t,Jt(a))),i?(r=It,s=!1):t.length>=200&&(r=Xt,s=!1,t=new Ha(t));e:for(;++n<o;){var c=e[n],d=null==a?c:a(c);if(c=i||0!==c?c:0,s&&d==d){for(var p=u;p--;)if(t[p]===d)continue e;l.push(c)}else r(t,d,i)||l.push(c)}return l}Oa.templateSettings={escape:Z,evaluate:J,interpolate:K,variable:"",imports:{_:Oa}},Oa.prototype=$a.prototype,Oa.prototype.constructor=Oa,ja.prototype=Ba($a.prototype),ja.prototype.constructor=ja,Ua.prototype=Ba($a.prototype),Ua.prototype.constructor=Ua,za.prototype.clear=function(){this.__data__=Ta?Ta(null):{},this.size=0},za.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},za.prototype.get=function(e){var t=this.__data__;if(Ta){var i=t[e];return i===n?a:i}return De.call(t,e)?t[e]:a},za.prototype.has=function(e){var t=this.__data__;return Ta?t[e]!==a:De.call(t,e)},za.prototype.set=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=Ta&&t===a?n:t,this},Wa.prototype.clear=function(){this.__data__=[],this.size=0},Wa.prototype.delete=function(e){var t=this.__data__,a=ei(t,e);return!(a<0||(a==t.length-1?t.pop():qe.call(t,a,1),--this.size,0))},Wa.prototype.get=function(e){var t=this.__data__,i=ei(t,e);return i<0?a:t[i][1]},Wa.prototype.has=function(e){return ei(this.__data__,e)>-1},Wa.prototype.set=function(e,t){var a=this.__data__,i=ei(a,e);return i<0?(++this.size,a.push([e,t])):a[i][1]=t,this},Ya.prototype.clear=function(){this.size=0,this.__data__={hash:new za,map:new(ka||Wa),string:new za}},Ya.prototype.delete=function(e){var t=lr(this,e).delete(e);return this.size-=t?1:0,t},Ya.prototype.get=function(e){return lr(this,e).get(e)},Ya.prototype.has=function(e){return lr(this,e).has(e)},Ya.prototype.set=function(e,t){var a=lr(this,e),i=a.size;return a.set(e,t),this.size+=a.size==i?0:1,this},Ha.prototype.add=Ha.prototype.push=function(e){return this.__data__.set(e,n),this},Ha.prototype.has=function(e){return this.__data__.has(e)},Ga.prototype.clear=function(){this.__data__=new Wa,this.size=0},Ga.prototype.delete=function(e){var t=this.__data__,a=t.delete(e);return this.size=t.size,a},Ga.prototype.get=function(e){return this.__data__.get(e)},Ga.prototype.has=function(e){return this.__data__.has(e)},Ga.prototype.set=function(e,t){var a=this.__data__;if(a instanceof Wa){var i=a.__data__;if(!ka||i.length<199)return i.push([e,t]),this.size=++a.size,this;a=this.__data__=new Ya(i)}return a.set(e,t),this.size=a.size,this};var ci=Fn(bi),di=Fn(vi,!0);function pi(e,t){var a=!0;return ci(e,(function(e,i,n){return a=!!t(e,i,n)})),a}function hi(e,t,i){for(var n=-1,r=e.length;++n<r;){var s=e[n],o=t(s);if(null!=o&&(l===a?o==o&&!so(o):i(o,l)))var l=o,u=s}return u}function fi(e,t){var a=[];return ci(e,(function(e,i,n){t(e,i,n)&&a.push(e)})),a}function mi(e,t,a,i,n){var r=-1,s=e.length;for(a||(a=yr),n||(n=[]);++r<s;){var o=e[r];t>0&&a(o)?t>1?mi(o,t-1,a,i,n):Et(n,o):i||(n[n.length]=o)}return n}var yi=En(),gi=En(!0);function bi(e,t){return e&&yi(e,t,Co)}function vi(e,t){return e&&gi(e,t,Co)}function _i(e,t){return Vt(t,(function(t){return Zs(e[t])}))}function wi(e,t){for(var i=0,n=(t=bn(t,e)).length;null!=e&&i<n;)e=e[Lr(t[i++])];return i&&i==n?e:a}function Ai(e,t,a){var i=t(e);return Us(e)?i:Et(i,a(e))}function ki(e){return null==e?e===a?"[object Undefined]":"[object Null]":Qe&&Qe in Ne(e)?function(e){var t=De.call(e,Qe),i=e[Qe];try{e[Qe]=a;var n=!0}catch(e){}var r=Pe.call(e);return n&&(t?e[Qe]=i:delete e[Qe]),r}(e):function(e){return Pe.call(e)}(e)}function Si(e,t){return e>t}function Ni(e,t){return null!=e&&De.call(e,t)}function xi(e,t){return null!=e&&t in Ne(e)}function Ti(e,t,i){for(var n=i?It:Ct,r=e[0].length,s=e.length,o=s,l=ne(s),u=1/0,c=[];o--;){var d=e[o];o&&t&&(d=Ft(d,Jt(t))),u=ga(d.length,u),l[o]=!i&&(t||r>=120&&d.length>=120)?new Ha(o&&d):a}d=e[0];var p=-1,h=l[0];e:for(;++p<r&&c.length<u;){var f=d[p],m=t?t(f):f;if(f=i||0!==f?f:0,!(h?Xt(h,m):n(c,m,i))){for(o=s;--o;){var y=l[o];if(!(y?Xt(y,m):n(e[o],m,i)))continue e}h&&h.push(m),c.push(f)}}return c}function Mi(e,t,i){var n=null==(e=xr(e,t=bn(t,e)))?e:e[Lr(qr(t))];return null==n?a:St(n,e,i)}function Vi(e){return Qs(e)&&ki(e)==f}function Ci(e,t,i,n,r){return e===t||(null==e||null==t||!Qs(e)&&!Qs(t)?e!=e&&t!=t:function(e,t,i,n,r,s){var o=Us(e),l=Us(t),u=o?m:hr(e),c=l?m:hr(t),d=(u=u==f?k:u)==k,p=(c=c==f?k:c)==k,h=u==c;if(h&&Hs(e)){if(!Hs(t))return!1;o=!0,d=!1}if(h&&!d)return s||(s=new Ga),o||oo(e)?er(e,t,i,n,r,s):function(e,t,a,i,n,r,s){switch(a){case I:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case C:return!(e.byteLength!=t.byteLength||!r(new ze(e),new ze(t)));case y:case g:case A:return Os(+e,+t);case b:return e.name==t.name&&e.message==t.message;case N:case T:return e==t+"";case w:var o=ra;case x:var l=1&i;if(o||(o=la),e.size!=t.size&&!l)return!1;var u=s.get(e);if(u)return u==t;i|=2,s.set(e,t);var c=er(o(e),o(t),i,n,r,s);return s.delete(e),c;case M:if(Ra)return Ra.call(e)==Ra.call(t)}return!1}(e,t,u,i,n,r,s);if(!(1&i)){var v=d&&De.call(e,"__wrapped__"),_=p&&De.call(t,"__wrapped__");if(v||_){var S=v?e.value():e,V=_?t.value():t;return s||(s=new Ga),r(S,V,i,n,s)}}return!!h&&(s||(s=new Ga),function(e,t,i,n,r,s){var o=1&i,l=ar(e),u=l.length,c=ar(t),d=c.length;if(u!=d&&!o)return!1;for(var p=u;p--;){var h=l[p];if(!(o?h in t:De.call(t,h)))return!1}var f=s.get(e),m=s.get(t);if(f&&m)return f==t&&m==e;var y=!0;s.set(e,t),s.set(t,e);for(var g=o;++p<u;){var b=e[h=l[p]],v=t[h];if(n)var _=o?n(v,b,h,t,e,s):n(b,v,h,e,t,s);if(!(_===a?b===v||r(b,v,i,n,s):_)){y=!1;break}g||(g="constructor"==h)}if(y&&!g){var w=e.constructor,A=t.constructor;w==A||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof A&&A instanceof A||(y=!1)}return s.delete(e),s.delete(t),y}(e,t,i,n,r,s))}(e,t,i,n,Ci,r))}function Ii(e,t,i,n){var r=i.length,s=r,o=!n;if(null==e)return!s;for(e=Ne(e);r--;){var l=i[r];if(o&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++r<s;){var u=(l=i[r])[0],c=e[u],d=l[1];if(o&&l[2]){if(c===a&&!(u in e))return!1}else{var p=new Ga;if(n)var h=n(c,d,u,e,t,p);if(!(h===a?Ci(d,c,3,n,p):h))return!1}}return!0}function Fi(e){return!(!Xs(e)||(t=e,Re&&Re in t))&&(Zs(e)?$e:me).test(Rr(e));var t}function Ei(e){return"function"==typeof e?e:null==e?al:"object"==typeof e?Us(e)?Bi(e[0],e[1]):Oi(e):dl(e)}function Di(e){if(!Ar(e))return ma(e);var t=[];for(var a in Ne(e))De.call(e,a)&&"constructor"!=a&&t.push(a);return t}function Li(e){if(!Xs(e))return function(e){var t=[];if(null!=e)for(var a in Ne(e))t.push(a);return t}(e);var t=Ar(e),a=[];for(var i in e)("constructor"!=i||!t&&De.call(e,i))&&a.push(i);return a}function Ri(e,t){return e<t}function Pi(e,t){var a=-1,i=Ws(e)?ne(e.length):[];return ci(e,(function(e,n,r){i[++a]=t(e,n,r)})),i}function Oi(e){var t=ur(e);return 1==t.length&&t[0][2]?Sr(t[0][0],t[0][1]):function(a){return a===e||Ii(a,e,t)}}function Bi(e,t){return vr(e)&&kr(t)?Sr(Lr(e),t):function(i){var n=No(i,e);return n===a&&n===t?xo(i,e):Ci(t,n,3)}}function $i(e,t,i,n,r){e!==t&&yi(t,(function(s,o){if(r||(r=new Ga),Xs(s))!function(e,t,i,n,r,s,o){var l=Tr(e,i),u=Tr(t,i),c=o.get(u);if(c)Xa(e,i,c);else{var d=s?s(l,u,i+"",e,t,o):a,p=d===a;if(p){var h=Us(u),f=!h&&Hs(u),m=!h&&!f&&oo(u);d=u,h||f||m?Us(l)?d=l:Ys(l)?d=Mn(l):f?(p=!1,d=An(u,!0)):m?(p=!1,d=Sn(u,!0)):d=[]:ao(u)||js(u)?(d=l,js(l)?d=yo(l):Xs(l)&&!Zs(l)||(d=mr(u))):p=!1}p&&(o.set(u,d),r(d,u,n,s,o),o.delete(u)),Xa(e,i,d)}}(e,t,o,i,$i,n,r);else{var l=n?n(Tr(e,o),s,o+"",e,t,r):a;l===a&&(l=s),Xa(e,o,l)}}),Io)}function ji(e,t){var i=e.length;if(i)return gr(t+=t<0?i:0,i)?e[t]:a}function Ui(e,t,a){t=t.length?Ft(t,(function(e){return Us(e)?function(t){return wi(t,1===e.length?e[0]:e)}:e})):[al];var i=-1;t=Ft(t,Jt(or()));var n=Pi(e,(function(e,a,n){var r=Ft(t,(function(t){return t(e)}));return{criteria:r,index:++i,value:e}}));return function(e,t){var a=e.length;for(e.sort(t);a--;)e[a]=e[a].value;return e}(n,(function(e,t){return function(e,t,a){for(var i=-1,n=e.criteria,r=t.criteria,s=n.length,o=a.length;++i<s;){var l=Nn(n[i],r[i]);if(l)return i>=o?l:l*("desc"==a[i]?-1:1)}return e.index-t.index}(e,t,a)}))}function zi(e,t,a){for(var i=-1,n=t.length,r={};++i<n;){var s=t[i],o=wi(e,s);a(o,s)&&Ki(r,bn(s,e),o)}return r}function Wi(e,t,a,i){var n=i?jt:$t,r=-1,s=t.length,o=e;for(e===t&&(t=Mn(t)),a&&(o=Ft(e,Jt(a)));++r<s;)for(var l=0,u=t[r],c=a?a(u):u;(l=n(o,c,l,i))>-1;)o!==e&&qe.call(o,l,1),qe.call(e,l,1);return e}function Yi(e,t){for(var a=e?t.length:0,i=a-1;a--;){var n=t[a];if(a==i||n!==r){var r=n;gr(n)?qe.call(e,n,1):cn(e,n)}}return e}function Hi(e,t){return e+ft(_a()*(t-e+1))}function Gi(e,t){var a="";if(!e||t<1||t>c)return a;do{t%2&&(a+=e),(t=ft(t/2))&&(e+=e)}while(t);return a}function qi(e,t){return Cr(Nr(e,t,al),e+"")}function Zi(e){return Za(Bo(e))}function Ji(e,t){var a=Bo(e);return Er(a,ri(t,0,a.length))}function Ki(e,t,i,n){if(!Xs(e))return e;for(var r=-1,s=(t=bn(t,e)).length,o=s-1,l=e;null!=l&&++r<s;){var u=Lr(t[r]),c=i;if("__proto__"===u||"constructor"===u||"prototype"===u)return e;if(r!=o){var d=l[u];(c=n?n(d,u,l):a)===a&&(c=Xs(d)?d:gr(t[r+1])?[]:{})}Qa(l,u,c),l=l[u]}return e}var Xi=Ma?function(e,t){return Ma.set(e,t),e}:al,Qi=tt?function(e,t){return tt(e,"toString",{configurable:!0,enumerable:!1,value:Qo(t),writable:!0})}:al;function en(e){return Er(Bo(e))}function tn(e,t,a){var i=-1,n=e.length;t<0&&(t=-t>n?0:n+t),(a=a>n?n:a)<0&&(a+=n),n=t>a?0:a-t>>>0,t>>>=0;for(var r=ne(n);++i<n;)r[i]=e[i+t];return r}function an(e,t){var a;return ci(e,(function(e,i,n){return!(a=t(e,i,n))})),!!a}function nn(e,t,a){var i=0,n=null==e?i:e.length;if("number"==typeof t&&t==t&&n<=2147483647){for(;i<n;){var r=i+n>>>1,s=e[r];null!==s&&!so(s)&&(a?s<=t:s<t)?i=r+1:n=r}return n}return rn(e,t,al,a)}function rn(e,t,i,n){var r=0,s=null==e?0:e.length;if(0===s)return 0;for(var o=(t=i(t))!=t,l=null===t,u=so(t),c=t===a;r<s;){var d=ft((r+s)/2),p=i(e[d]),h=p!==a,f=null===p,m=p==p,y=so(p);if(o)var g=n||m;else g=c?m&&(n||h):l?m&&h&&(n||!f):u?m&&h&&!f&&(n||!y):!f&&!y&&(n?p<=t:p<t);g?r=d+1:s=d}return ga(s,4294967294)}function sn(e,t){for(var a=-1,i=e.length,n=0,r=[];++a<i;){var s=e[a],o=t?t(s):s;if(!a||!Os(o,l)){var l=o;r[n++]=0===s?0:s}}return r}function on(e){return"number"==typeof e?e:so(e)?d:+e}function ln(e){if("string"==typeof e)return e;if(Us(e))return Ft(e,ln)+"";if(so(e))return Pa?Pa.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function un(e,t,a){var i=-1,n=Ct,r=e.length,s=!0,o=[],l=o;if(a)s=!1,n=It;else if(r>=200){var u=t?null:qn(e);if(u)return la(u);s=!1,n=Xt,l=new Ha}else l=t?[]:o;e:for(;++i<r;){var c=e[i],d=t?t(c):c;if(c=a||0!==c?c:0,s&&d==d){for(var p=l.length;p--;)if(l[p]===d)continue e;t&&l.push(d),o.push(c)}else n(l,d,a)||(l!==o&&l.push(d),o.push(c))}return o}function cn(e,t){return null==(e=xr(e,t=bn(t,e)))||delete e[Lr(qr(t))]}function dn(e,t,a,i){return Ki(e,t,a(wi(e,t)),i)}function pn(e,t,a,i){for(var n=e.length,r=i?n:-1;(i?r--:++r<n)&&t(e[r],r,e););return a?tn(e,i?0:r,i?r+1:n):tn(e,i?r+1:0,i?n:r)}function hn(e,t){var a=e;return a instanceof Ua&&(a=a.value()),Dt(t,(function(e,t){return t.func.apply(t.thisArg,Et([e],t.args))}),a)}function fn(e,t,a){var i=e.length;if(i<2)return i?un(e[0]):[];for(var n=-1,r=ne(i);++n<i;)for(var s=e[n],o=-1;++o<i;)o!=n&&(r[n]=ui(r[n]||s,e[o],t,a));return un(mi(r,1),t,a)}function mn(e,t,i){for(var n=-1,r=e.length,s=t.length,o={};++n<r;){var l=n<s?t[n]:a;i(o,e[n],l)}return o}function yn(e){return Ys(e)?e:[]}function gn(e){return"function"==typeof e?e:al}function bn(e,t){return Us(e)?e:vr(e,t)?[e]:Dr(go(e))}var vn=qi;function _n(e,t,i){var n=e.length;return i=i===a?n:i,!t&&i>=n?e:tn(e,t,i)}var wn=ot||function(e){return pt.clearTimeout(e)};function An(e,t){if(t)return e.slice();var a=e.length,i=We?We(a):new e.constructor(a);return e.copy(i),i}function kn(e){var t=new e.constructor(e.byteLength);return new ze(t).set(new ze(e)),t}function Sn(e,t){var a=t?kn(e.buffer):e.buffer;return new e.constructor(a,e.byteOffset,e.length)}function Nn(e,t){if(e!==t){var i=e!==a,n=null===e,r=e==e,s=so(e),o=t!==a,l=null===t,u=t==t,c=so(t);if(!l&&!c&&!s&&e>t||s&&o&&u&&!l&&!c||n&&o&&u||!i&&u||!r)return 1;if(!n&&!s&&!c&&e<t||c&&i&&r&&!n&&!s||l&&i&&r||!o&&r||!u)return-1}return 0}function xn(e,t,a,i){for(var n=-1,r=e.length,s=a.length,o=-1,l=t.length,u=ya(r-s,0),c=ne(l+u),d=!i;++o<l;)c[o]=t[o];for(;++n<s;)(d||n<r)&&(c[a[n]]=e[n]);for(;u--;)c[o++]=e[n++];return c}function Tn(e,t,a,i){for(var n=-1,r=e.length,s=-1,o=a.length,l=-1,u=t.length,c=ya(r-o,0),d=ne(c+u),p=!i;++n<c;)d[n]=e[n];for(var h=n;++l<u;)d[h+l]=t[l];for(;++s<o;)(p||n<r)&&(d[h+a[s]]=e[n++]);return d}function Mn(e,t){var a=-1,i=e.length;for(t||(t=ne(i));++a<i;)t[a]=e[a];return t}function Vn(e,t,i,n){var r=!i;i||(i={});for(var s=-1,o=t.length;++s<o;){var l=t[s],u=n?n(i[l],e[l],l,i,e):a;u===a&&(u=e[l]),r?ii(i,l,u):Qa(i,l,u)}return i}function Cn(e,t){return function(a,i){var n=Us(a)?Nt:ti,r=t?t():{};return n(a,e,or(i,2),r)}}function In(e){return qi((function(t,i){var n=-1,r=i.length,s=r>1?i[r-1]:a,o=r>2?i[2]:a;for(s=e.length>3&&"function"==typeof s?(r--,s):a,o&&br(i[0],i[1],o)&&(s=r<3?a:s,r=1),t=Ne(t);++n<r;){var l=i[n];l&&e(t,l,n,s)}return t}))}function Fn(e,t){return function(a,i){if(null==a)return a;if(!Ws(a))return e(a,i);for(var n=a.length,r=t?n:-1,s=Ne(a);(t?r--:++r<n)&&!1!==i(s[r],r,s););return a}}function En(e){return function(t,a,i){for(var n=-1,r=Ne(t),s=i(t),o=s.length;o--;){var l=s[e?o:++n];if(!1===a(r[l],l,r))break}return t}}function Dn(e){return function(t){var i=na(t=go(t))?da(t):a,n=i?i[0]:t.charAt(0),r=i?_n(i,1).join(""):t.slice(1);return n[e]()+r}}function Ln(e){return function(t){return Dt(Jo(Uo(t).replace(Ke,"")),e,"")}}function Rn(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var a=Ba(e.prototype),i=e.apply(a,t);return Xs(i)?i:a}}function Pn(e){return function(t,i,n){var r=Ne(t);if(!Ws(t)){var s=or(i,3);t=Co(t),i=function(e){return s(r[e],e,r)}}var o=e(t,i,n);return o>-1?r[s?t[o]:o]:a}}function On(e){return tr((function(t){var n=t.length,r=n,s=ja.prototype.thru;for(e&&t.reverse();r--;){var o=t[r];if("function"!=typeof o)throw new Me(i);if(s&&!l&&"wrapper"==rr(o))var l=new ja([],!0)}for(r=l?r:n;++r<n;){var u=rr(o=t[r]),c="wrapper"==u?nr(o):a;l=c&&_r(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?l[rr(c[0])].apply(l,c[3]):1==o.length&&_r(o)?l[u]():l.thru(o)}return function(){var e=arguments,a=e[0];if(l&&1==e.length&&Us(a))return l.plant(a).value();for(var i=0,r=n?t[i].apply(this,e):a;++i<n;)r=t[i].call(this,r);return r}}))}function Bn(e,t,i,n,r,s,l,u,c,d){var p=t&o,h=1&t,f=2&t,m=24&t,y=512&t,g=f?a:Rn(e);return function o(){for(var b=arguments.length,v=ne(b),_=b;_--;)v[_]=arguments[_];if(m)var w=sr(o),A=function(e,t){for(var a=e.length,i=0;a--;)e[a]===t&&++i;return i}(v,w);if(n&&(v=xn(v,n,r,m)),s&&(v=Tn(v,s,l,m)),b-=A,m&&b<d){var k=oa(v,w);return Hn(e,t,Bn,o.placeholder,i,v,k,u,c,d-b)}var S=h?i:this,N=f?S[e]:e;return b=v.length,u?v=function(e,t){for(var i=e.length,n=ga(t.length,i),r=Mn(e);n--;){var s=t[n];e[n]=gr(s,i)?r[s]:a}return e}(v,u):y&&b>1&&v.reverse(),p&&c<b&&(v.length=c),this&&this!==pt&&this instanceof o&&(N=g||Rn(N)),N.apply(S,v)}}function $n(e,t){return function(a,i){return function(e,t,a,i){return bi(e,(function(e,n,r){t(i,a(e),n,r)})),i}(a,e,t(i),{})}}function jn(e,t){return function(i,n){var r;if(i===a&&n===a)return t;if(i!==a&&(r=i),n!==a){if(r===a)return n;"string"==typeof i||"string"==typeof n?(i=ln(i),n=ln(n)):(i=on(i),n=on(n)),r=e(i,n)}return r}}function Un(e){return tr((function(t){return t=Ft(t,Jt(or())),qi((function(a){var i=this;return e(t,(function(e){return St(e,i,a)}))}))}))}function zn(e,t){var i=(t=t===a?" ":ln(t)).length;if(i<2)return i?Gi(t,e):t;var n=Gi(t,ht(e/ca(t)));return na(t)?_n(da(n),0,e).join(""):n.slice(0,e)}function Wn(e){return function(t,i,n){return n&&"number"!=typeof n&&br(t,i,n)&&(i=n=a),t=po(t),i===a?(i=t,t=0):i=po(i),function(e,t,a,i){for(var n=-1,r=ya(ht((t-e)/(a||1)),0),s=ne(r);r--;)s[i?r:++n]=e,e+=a;return s}(t,i,n=n===a?t<i?1:-1:po(n),e)}}function Yn(e){return function(t,a){return"string"==typeof t&&"string"==typeof a||(t=mo(t),a=mo(a)),e(t,a)}}function Hn(e,t,i,n,r,o,l,u,c,d){var p=8&t;t|=p?s:64,4&(t&=~(p?64:s))||(t&=-4);var h=[e,t,r,p?o:a,p?l:a,p?a:o,p?a:l,u,c,d],f=i.apply(a,h);return _r(e)&&Mr(f,h),f.placeholder=n,Ir(f,e,t)}function Gn(e){var t=Se[e];return function(e,a){if(e=mo(e),(a=null==a?0:ga(ho(a),292))&&Pt(e)){var i=(go(e)+"e").split("e");return+((i=(go(t(i[0]+"e"+(+i[1]+a)))+"e").split("e"))[0]+"e"+(+i[1]-a))}return t(e)}}var qn=Na&&1/la(new Na([,-0]))[1]==u?function(e){return new Na(e)}:ol;function Zn(e){return function(t){var a=hr(t);return a==w?ra(t):a==x?ua(t):function(e,t){return Ft(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Jn(e,t,n,u,c,d,p,h){var f=2&t;if(!f&&"function"!=typeof e)throw new Me(i);var m=u?u.length:0;if(m||(t&=-97,u=c=a),p=p===a?p:ya(ho(p),0),h=h===a?h:ho(h),m-=c?c.length:0,64&t){var y=u,g=c;u=c=a}var b=f?a:nr(e),v=[e,t,n,u,c,y,g,d,p,h];if(b&&function(e,t){var a=e[1],i=t[1],n=a|i,s=n<131,u=i==o&&8==a||i==o&&a==l&&e[7].length<=t[8]||384==i&&t[7].length<=t[8]&&8==a;if(!s&&!u)return e;1&i&&(e[2]=t[2],n|=1&a?0:4);var c=t[3];if(c){var d=e[3];e[3]=d?xn(d,c,t[4]):c,e[4]=d?oa(e[3],r):t[4]}(c=t[5])&&(d=e[5],e[5]=d?Tn(d,c,t[6]):c,e[6]=d?oa(e[5],r):t[6]),(c=t[7])&&(e[7]=c),i&o&&(e[8]=null==e[8]?t[8]:ga(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=n}(v,b),e=v[0],t=v[1],n=v[2],u=v[3],c=v[4],!(h=v[9]=v[9]===a?f?0:e.length:ya(v[9]-m,0))&&24&t&&(t&=-25),t&&1!=t)_=8==t||16==t?function(e,t,i){var n=Rn(e);return function r(){for(var s=arguments.length,o=ne(s),l=s,u=sr(r);l--;)o[l]=arguments[l];var c=s<3&&o[0]!==u&&o[s-1]!==u?[]:oa(o,u);return(s-=c.length)<i?Hn(e,t,Bn,r.placeholder,a,o,c,a,a,i-s):St(this&&this!==pt&&this instanceof r?n:e,this,o)}}(e,t,h):t!=s&&33!=t||c.length?Bn.apply(a,v):function(e,t,a,i){var n=1&t,r=Rn(e);return function t(){for(var s=-1,o=arguments.length,l=-1,u=i.length,c=ne(u+o),d=this&&this!==pt&&this instanceof t?r:e;++l<u;)c[l]=i[l];for(;o--;)c[l++]=arguments[++s];return St(d,n?a:this,c)}}(e,t,n,u);else var _=function(e,t,a){var i=1&t,n=Rn(e);return function t(){return(this&&this!==pt&&this instanceof t?n:e).apply(i?a:this,arguments)}}(e,t,n);return Ir((b?Xi:Mr)(_,v),e,t)}function Kn(e,t,i,n){return e===a||Os(e,Ie[i])&&!De.call(n,i)?t:e}function Xn(e,t,i,n,r,s){return Xs(e)&&Xs(t)&&(s.set(t,e),$i(e,t,a,Xn,s),s.delete(t)),e}function Qn(e){return ao(e)?a:e}function er(e,t,i,n,r,s){var o=1&i,l=e.length,u=t.length;if(l!=u&&!(o&&u>l))return!1;var c=s.get(e),d=s.get(t);if(c&&d)return c==t&&d==e;var p=-1,h=!0,f=2&i?new Ha:a;for(s.set(e,t),s.set(t,e);++p<l;){var m=e[p],y=t[p];if(n)var g=o?n(y,m,p,t,e,s):n(m,y,p,e,t,s);if(g!==a){if(g)continue;h=!1;break}if(f){if(!Rt(t,(function(e,t){if(!Xt(f,t)&&(m===e||r(m,e,i,n,s)))return f.push(t)}))){h=!1;break}}else if(m!==y&&!r(m,y,i,n,s)){h=!1;break}}return s.delete(e),s.delete(t),h}function tr(e){return Cr(Nr(e,a,zr),e+"")}function ar(e){return Ai(e,Co,dr)}function ir(e){return Ai(e,Io,pr)}var nr=Ma?function(e){return Ma.get(e)}:ol;function rr(e){for(var t=e.name+"",a=Va[t],i=De.call(Va,t)?a.length:0;i--;){var n=a[i],r=n.func;if(null==r||r==e)return n.name}return t}function sr(e){return(De.call(Oa,"placeholder")?Oa:e).placeholder}function or(){var e=Oa.iteratee||il;return e=e===il?Ei:e,arguments.length?e(arguments[0],arguments[1]):e}function lr(e,t){var a,i,n=e.__data__;return("string"==(i=typeof(a=t))||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==a:null===a)?n["string"==typeof t?"string":"hash"]:n.map}function ur(e){for(var t=Co(e),a=t.length;a--;){var i=t[a],n=e[i];t[a]=[i,n,kr(n)]}return t}function cr(e,t){var i=function(e,t){return null==e?a:e[t]}(e,t);return Fi(i)?i:a}var dr=yt?function(e){return null==e?[]:(e=Ne(e),Vt(yt(e),(function(t){return Ge.call(e,t)})))}:fl,pr=yt?function(e){for(var t=[];e;)Et(t,dr(e)),e=Ye(e);return t}:fl,hr=ki;function fr(e,t,a){for(var i=-1,n=(t=bn(t,e)).length,r=!1;++i<n;){var s=Lr(t[i]);if(!(r=null!=e&&a(e,s)))break;e=e[s]}return r||++i!=n?r:!!(n=null==e?0:e.length)&&Ks(n)&&gr(s,n)&&(Us(e)||js(e))}function mr(e){return"function"!=typeof e.constructor||Ar(e)?{}:Ba(Ye(e))}function yr(e){return Us(e)||js(e)||!!(Ze&&e&&e[Ze])}function gr(e,t){var a=typeof e;return!!(t=null==t?c:t)&&("number"==a||"symbol"!=a&&ge.test(e))&&e>-1&&e%1==0&&e<t}function br(e,t,a){if(!Xs(a))return!1;var i=typeof t;return!!("number"==i?Ws(a)&&gr(t,a.length):"string"==i&&t in a)&&Os(a[t],e)}function vr(e,t){if(Us(e))return!1;var a=typeof e;return!("number"!=a&&"symbol"!=a&&"boolean"!=a&&null!=e&&!so(e))||Q.test(e)||!X.test(e)||null!=t&&e in Ne(t)}function _r(e){var t=rr(e),a=Oa[t];if("function"!=typeof a||!(t in Ua.prototype))return!1;if(e===a)return!0;var i=nr(a);return!!i&&e===i[0]}(Aa&&hr(new Aa(new ArrayBuffer(1)))!=I||ka&&hr(new ka)!=w||Sa&&hr(Sa.resolve())!=S||Na&&hr(new Na)!=x||xa&&hr(new xa)!=V)&&(hr=function(e){var t=ki(e),i=t==k?e.constructor:a,n=i?Rr(i):"";if(n)switch(n){case Ca:return I;case Ia:return w;case Fa:return S;case Ea:return x;case Da:return V}return t});var wr=Fe?Zs:ml;function Ar(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ie)}function kr(e){return e==e&&!Xs(e)}function Sr(e,t){return function(i){return null!=i&&i[e]===t&&(t!==a||e in Ne(i))}}function Nr(e,t,i){return t=ya(t===a?e.length-1:t,0),function(){for(var a=arguments,n=-1,r=ya(a.length-t,0),s=ne(r);++n<r;)s[n]=a[t+n];n=-1;for(var o=ne(t+1);++n<t;)o[n]=a[n];return o[t]=i(s),St(e,this,o)}}function xr(e,t){return t.length<2?e:wi(e,tn(t,0,-1))}function Tr(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Mr=Fr(Xi),Vr=dt||function(e,t){return pt.setTimeout(e,t)},Cr=Fr(Qi);function Ir(e,t,a){var i=t+"";return Cr(e,function(e,t){var a=t.length;if(!a)return e;var i=a-1;return t[i]=(a>1?"& ":"")+t[i],t=t.join(a>2?", ":" "),e.replace(re,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return xt(h,(function(a){var i="_."+a[0];t&a[1]&&!Ct(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(se);return t?t[1].split(oe):[]}(i),a)))}function Fr(e){var t=0,i=0;return function(){var n=ba(),r=16-(n-i);if(i=n,r>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(a,arguments)}}function Er(e,t){var i=-1,n=e.length,r=n-1;for(t=t===a?n:t;++i<t;){var s=Hi(i,r),o=e[s];e[s]=e[i],e[i]=o}return e.length=t,e}var Dr=function(e){var t=Fs(e,(function(e){return 500===a.size&&a.clear(),e})),a=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ee,(function(e,a,i,n){t.push(i?n.replace(ce,"$1"):a||e)})),t}));function Lr(e){if("string"==typeof e||so(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Rr(e){if(null!=e){try{return Ee.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Pr(e){if(e instanceof Ua)return e.clone();var t=new ja(e.__wrapped__,e.__chain__);return t.__actions__=Mn(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var Or=qi((function(e,t){return Ys(e)?ui(e,mi(t,1,Ys,!0)):[]})),Br=qi((function(e,t){var i=qr(t);return Ys(i)&&(i=a),Ys(e)?ui(e,mi(t,1,Ys,!0),or(i,2)):[]})),$r=qi((function(e,t){var i=qr(t);return Ys(i)&&(i=a),Ys(e)?ui(e,mi(t,1,Ys,!0),a,i):[]}));function jr(e,t,a){var i=null==e?0:e.length;if(!i)return-1;var n=null==a?0:ho(a);return n<0&&(n=ya(i+n,0)),Bt(e,or(t,3),n)}function Ur(e,t,i){var n=null==e?0:e.length;if(!n)return-1;var r=n-1;return i!==a&&(r=ho(i),r=i<0?ya(n+r,0):ga(r,n-1)),Bt(e,or(t,3),r,!0)}function zr(e){return null!=e&&e.length?mi(e,1):[]}function Wr(e){return e&&e.length?e[0]:a}var Yr=qi((function(e){var t=Ft(e,yn);return t.length&&t[0]===e[0]?Ti(t):[]})),Hr=qi((function(e){var t=qr(e),i=Ft(e,yn);return t===qr(i)?t=a:i.pop(),i.length&&i[0]===e[0]?Ti(i,or(t,2)):[]})),Gr=qi((function(e){var t=qr(e),i=Ft(e,yn);return(t="function"==typeof t?t:a)&&i.pop(),i.length&&i[0]===e[0]?Ti(i,a,t):[]}));function qr(e){var t=null==e?0:e.length;return t?e[t-1]:a}var Zr=qi(Jr);function Jr(e,t){return e&&e.length&&t&&t.length?Wi(e,t):e}var Kr=tr((function(e,t){var a=null==e?0:e.length,i=ni(e,t);return Yi(e,Ft(t,(function(e){return gr(e,a)?+e:e})).sort(Nn)),i}));function Xr(e){return null==e?e:wa.call(e)}var Qr=qi((function(e){return un(mi(e,1,Ys,!0))})),es=qi((function(e){var t=qr(e);return Ys(t)&&(t=a),un(mi(e,1,Ys,!0),or(t,2))})),ts=qi((function(e){var t=qr(e);return t="function"==typeof t?t:a,un(mi(e,1,Ys,!0),a,t)}));function as(e){if(!e||!e.length)return[];var t=0;return e=Vt(e,(function(e){if(Ys(e))return t=ya(e.length,t),!0})),qt(t,(function(t){return Ft(e,Wt(t))}))}function is(e,t){if(!e||!e.length)return[];var i=as(e);return null==t?i:Ft(i,(function(e){return St(t,a,e)}))}var ns=qi((function(e,t){return Ys(e)?ui(e,t):[]})),rs=qi((function(e){return fn(Vt(e,Ys))})),ss=qi((function(e){var t=qr(e);return Ys(t)&&(t=a),fn(Vt(e,Ys),or(t,2))})),os=qi((function(e){var t=qr(e);return t="function"==typeof t?t:a,fn(Vt(e,Ys),a,t)})),ls=qi(as),us=qi((function(e){var t=e.length,i=t>1?e[t-1]:a;return i="function"==typeof i?(e.pop(),i):a,is(e,i)}));function cs(e){var t=Oa(e);return t.__chain__=!0,t}function ds(e,t){return t(e)}var ps=tr((function(e){var t=e.length,i=t?e[0]:0,n=this.__wrapped__,r=function(t){return ni(t,e)};return!(t>1||this.__actions__.length)&&n instanceof Ua&&gr(i)?((n=n.slice(i,+i+(t?1:0))).__actions__.push({func:ds,args:[r],thisArg:a}),new ja(n,this.__chain__).thru((function(e){return t&&!e.length&&e.push(a),e}))):this.thru(r)})),hs=Cn((function(e,t,a){De.call(e,a)?++e[a]:ii(e,a,1)})),fs=Pn(jr),ms=Pn(Ur);function ys(e,t){return(Us(e)?xt:ci)(e,or(t,3))}function gs(e,t){return(Us(e)?Tt:di)(e,or(t,3))}var bs=Cn((function(e,t,a){De.call(e,a)?e[a].push(t):ii(e,a,[t])})),vs=qi((function(e,t,a){var i=-1,n="function"==typeof t,r=Ws(e)?ne(e.length):[];return ci(e,(function(e){r[++i]=n?St(t,e,a):Mi(e,t,a)})),r})),_s=Cn((function(e,t,a){ii(e,a,t)}));function ws(e,t){return(Us(e)?Ft:Pi)(e,or(t,3))}var As=Cn((function(e,t,a){e[a?0:1].push(t)}),(function(){return[[],[]]})),ks=qi((function(e,t){if(null==e)return[];var a=t.length;return a>1&&br(e,t[0],t[1])?t=[]:a>2&&br(t[0],t[1],t[2])&&(t=[t[0]]),Ui(e,mi(t,1),[])})),Ss=ct||function(){return pt.Date.now()};function Ns(e,t,i){return t=i?a:t,t=e&&null==t?e.length:t,Jn(e,o,a,a,a,a,t)}function xs(e,t){var n;if("function"!=typeof t)throw new Me(i);return e=ho(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=a),n}}var Ts=qi((function(e,t,a){var i=1;if(a.length){var n=oa(a,sr(Ts));i|=s}return Jn(e,i,t,a,n)})),Ms=qi((function(e,t,a){var i=3;if(a.length){var n=oa(a,sr(Ms));i|=s}return Jn(t,i,e,a,n)}));function Vs(e,t,n){var r,s,o,l,u,c,d=0,p=!1,h=!1,f=!0;if("function"!=typeof e)throw new Me(i);function m(t){var i=r,n=s;return r=s=a,d=t,l=e.apply(n,i)}function y(e){var i=e-c;return c===a||i>=t||i<0||h&&e-d>=o}function g(){var e=Ss();if(y(e))return b(e);u=Vr(g,function(e){var a=t-(e-c);return h?ga(a,o-(e-d)):a}(e))}function b(e){return u=a,f&&r?m(e):(r=s=a,l)}function v(){var e=Ss(),i=y(e);if(r=arguments,s=this,c=e,i){if(u===a)return function(e){return d=e,u=Vr(g,t),p?m(e):l}(c);if(h)return wn(u),u=Vr(g,t),m(c)}return u===a&&(u=Vr(g,t)),l}return t=mo(t)||0,Xs(n)&&(p=!!n.leading,o=(h="maxWait"in n)?ya(mo(n.maxWait)||0,t):o,f="trailing"in n?!!n.trailing:f),v.cancel=function(){u!==a&&wn(u),d=0,r=c=s=u=a},v.flush=function(){return u===a?l:b(Ss())},v}var Cs=qi((function(e,t){return li(e,1,t)})),Is=qi((function(e,t,a){return li(e,mo(t)||0,a)}));function Fs(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Me(i);var a=function(){var i=arguments,n=t?t.apply(this,i):i[0],r=a.cache;if(r.has(n))return r.get(n);var s=e.apply(this,i);return a.cache=r.set(n,s)||r,s};return a.cache=new(Fs.Cache||Ya),a}function Es(e){if("function"!=typeof e)throw new Me(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Fs.Cache=Ya;var Ds=vn((function(e,t){var a=(t=1==t.length&&Us(t[0])?Ft(t[0],Jt(or())):Ft(mi(t,1),Jt(or()))).length;return qi((function(i){for(var n=-1,r=ga(i.length,a);++n<r;)i[n]=t[n].call(this,i[n]);return St(e,this,i)}))})),Ls=qi((function(e,t){var i=oa(t,sr(Ls));return Jn(e,s,a,t,i)})),Rs=qi((function(e,t){var i=oa(t,sr(Rs));return Jn(e,64,a,t,i)})),Ps=tr((function(e,t){return Jn(e,l,a,a,a,t)}));function Os(e,t){return e===t||e!=e&&t!=t}var Bs=Yn(Si),$s=Yn((function(e,t){return e>=t})),js=Vi(function(){return arguments}())?Vi:function(e){return Qs(e)&&De.call(e,"callee")&&!Ge.call(e,"callee")},Us=ne.isArray,zs=bt?Jt(bt):function(e){return Qs(e)&&ki(e)==C};function Ws(e){return null!=e&&Ks(e.length)&&!Zs(e)}function Ys(e){return Qs(e)&&Ws(e)}var Hs=gt||ml,Gs=vt?Jt(vt):function(e){return Qs(e)&&ki(e)==g};function qs(e){if(!Qs(e))return!1;var t=ki(e);return t==b||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!ao(e)}function Zs(e){if(!Xs(e))return!1;var t=ki(e);return t==v||t==_||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Js(e){return"number"==typeof e&&e==ho(e)}function Ks(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=c}function Xs(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Qs(e){return null!=e&&"object"==typeof e}var eo=_t?Jt(_t):function(e){return Qs(e)&&hr(e)==w};function to(e){return"number"==typeof e||Qs(e)&&ki(e)==A}function ao(e){if(!Qs(e)||ki(e)!=k)return!1;var t=Ye(e);if(null===t)return!0;var a=De.call(t,"constructor")&&t.constructor;return"function"==typeof a&&a instanceof a&&Ee.call(a)==Oe}var io=wt?Jt(wt):function(e){return Qs(e)&&ki(e)==N},no=At?Jt(At):function(e){return Qs(e)&&hr(e)==x};function ro(e){return"string"==typeof e||!Us(e)&&Qs(e)&&ki(e)==T}function so(e){return"symbol"==typeof e||Qs(e)&&ki(e)==M}var oo=kt?Jt(kt):function(e){return Qs(e)&&Ks(e.length)&&!!rt[ki(e)]},lo=Yn(Ri),uo=Yn((function(e,t){return e<=t}));function co(e){if(!e)return[];if(Ws(e))return ro(e)?da(e):Mn(e);if(Je&&e[Je])return function(e){for(var t,a=[];!(t=e.next()).done;)a.push(t.value);return a}(e[Je]());var t=hr(e);return(t==w?ra:t==x?la:Bo)(e)}function po(e){return e?(e=mo(e))===u||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function ho(e){var t=po(e),a=t%1;return t==t?a?t-a:t:0}function fo(e){return e?ri(ho(e),0,p):0}function mo(e){if("number"==typeof e)return e;if(so(e))return d;if(Xs(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Xs(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Zt(e);var a=fe.test(e);return a||ye.test(e)?ut(e.slice(2),a?2:8):he.test(e)?d:+e}function yo(e){return Vn(e,Io(e))}function go(e){return null==e?"":ln(e)}var bo=In((function(e,t){if(Ar(t)||Ws(t))Vn(t,Co(t),e);else for(var a in t)De.call(t,a)&&Qa(e,a,t[a])})),vo=In((function(e,t){Vn(t,Io(t),e)})),_o=In((function(e,t,a,i){Vn(t,Io(t),e,i)})),wo=In((function(e,t,a,i){Vn(t,Co(t),e,i)})),Ao=tr(ni),ko=qi((function(e,t){e=Ne(e);var i=-1,n=t.length,r=n>2?t[2]:a;for(r&&br(t[0],t[1],r)&&(n=1);++i<n;)for(var s=t[i],o=Io(s),l=-1,u=o.length;++l<u;){var c=o[l],d=e[c];(d===a||Os(d,Ie[c])&&!De.call(e,c))&&(e[c]=s[c])}return e})),So=qi((function(e){return e.push(a,Xn),St(Eo,a,e)}));function No(e,t,i){var n=null==e?a:wi(e,t);return n===a?i:n}function xo(e,t){return null!=e&&fr(e,t,xi)}var To=$n((function(e,t,a){null!=t&&"function"!=typeof t.toString&&(t=Pe.call(t)),e[t]=a}),Qo(al)),Mo=$n((function(e,t,a){null!=t&&"function"!=typeof t.toString&&(t=Pe.call(t)),De.call(e,t)?e[t].push(a):e[t]=[a]}),or),Vo=qi(Mi);function Co(e){return Ws(e)?qa(e):Di(e)}function Io(e){return Ws(e)?qa(e,!0):Li(e)}var Fo=In((function(e,t,a){$i(e,t,a)})),Eo=In((function(e,t,a,i){$i(e,t,a,i)})),Do=tr((function(e,t){var a={};if(null==e)return a;var i=!1;t=Ft(t,(function(t){return t=bn(t,e),i||(i=t.length>1),t})),Vn(e,ir(e),a),i&&(a=si(a,7,Qn));for(var n=t.length;n--;)cn(a,t[n]);return a})),Lo=tr((function(e,t){return null==e?{}:function(e,t){return zi(e,t,(function(t,a){return xo(e,a)}))}(e,t)}));function Ro(e,t){if(null==e)return{};var a=Ft(ir(e),(function(e){return[e]}));return t=or(t),zi(e,a,(function(e,a){return t(e,a[0])}))}var Po=Zn(Co),Oo=Zn(Io);function Bo(e){return null==e?[]:Kt(e,Co(e))}var $o=Ln((function(e,t,a){return t=t.toLowerCase(),e+(a?jo(t):t)}));function jo(e){return Zo(go(e).toLowerCase())}function Uo(e){return(e=go(e))&&e.replace(be,ta).replace(Xe,"")}var zo=Ln((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()})),Wo=Ln((function(e,t,a){return e+(a?" ":"")+t.toLowerCase()})),Yo=Dn("toLowerCase"),Ho=Ln((function(e,t,a){return e+(a?"_":"")+t.toLowerCase()})),Go=Ln((function(e,t,a){return e+(a?" ":"")+Zo(t)})),qo=Ln((function(e,t,a){return e+(a?" ":"")+t.toUpperCase()})),Zo=Dn("toUpperCase");function Jo(e,t,i){return e=go(e),(t=i?a:t)===a?function(e){return at.test(e)}(e)?function(e){return e.match(et)||[]}(e):function(e){return e.match(le)||[]}(e):e.match(t)||[]}var Ko=qi((function(e,t){try{return St(e,a,t)}catch(e){return qs(e)?e:new Ae(e)}})),Xo=tr((function(e,t){return xt(t,(function(t){t=Lr(t),ii(e,t,Ts(e[t],e))})),e}));function Qo(e){return function(){return e}}var el=On(),tl=On(!0);function al(e){return e}function il(e){return Ei("function"==typeof e?e:si(e,1))}var nl=qi((function(e,t){return function(a){return Mi(a,e,t)}})),rl=qi((function(e,t){return function(a){return Mi(e,a,t)}}));function sl(e,t,a){var i=Co(t),n=_i(t,i);null!=a||Xs(t)&&(n.length||!i.length)||(a=t,t=e,e=this,n=_i(t,Co(t)));var r=!(Xs(a)&&"chain"in a&&!a.chain),s=Zs(e);return xt(n,(function(a){var i=t[a];e[a]=i,s&&(e.prototype[a]=function(){var t=this.__chain__;if(r||t){var a=e(this.__wrapped__);return(a.__actions__=Mn(this.__actions__)).push({func:i,args:arguments,thisArg:e}),a.__chain__=t,a}return i.apply(e,Et([this.value()],arguments))})})),e}function ol(){}var ll=Un(Ft),ul=Un(Mt),cl=Un(Rt);function dl(e){return vr(e)?Wt(Lr(e)):function(e){return function(t){return wi(t,e)}}(e)}var pl=Wn(),hl=Wn(!0);function fl(){return[]}function ml(){return!1}var yl,gl=jn((function(e,t){return e+t}),0),bl=Gn("ceil"),vl=jn((function(e,t){return e/t}),1),_l=Gn("floor"),wl=jn((function(e,t){return e*t}),1),Al=Gn("round"),kl=jn((function(e,t){return e-t}),0);return Oa.after=function(e,t){if("function"!=typeof t)throw new Me(i);return e=ho(e),function(){if(--e<1)return t.apply(this,arguments)}},Oa.ary=Ns,Oa.assign=bo,Oa.assignIn=vo,Oa.assignInWith=_o,Oa.assignWith=wo,Oa.at=Ao,Oa.before=xs,Oa.bind=Ts,Oa.bindAll=Xo,Oa.bindKey=Ms,Oa.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Us(e)?e:[e]},Oa.chain=cs,Oa.chunk=function(e,t,i){t=(i?br(e,t,i):t===a)?1:ya(ho(t),0);var n=null==e?0:e.length;if(!n||t<1)return[];for(var r=0,s=0,o=ne(ht(n/t));r<n;)o[s++]=tn(e,r,r+=t);return o},Oa.compact=function(e){for(var t=-1,a=null==e?0:e.length,i=0,n=[];++t<a;){var r=e[t];r&&(n[i++]=r)}return n},Oa.concat=function(){var e=arguments.length;if(!e)return[];for(var t=ne(e-1),a=arguments[0],i=e;i--;)t[i-1]=arguments[i];return Et(Us(a)?Mn(a):[a],mi(t,1))},Oa.cond=function(e){var t=null==e?0:e.length,a=or();return e=t?Ft(e,(function(e){if("function"!=typeof e[1])throw new Me(i);return[a(e[0]),e[1]]})):[],qi((function(a){for(var i=-1;++i<t;){var n=e[i];if(St(n[0],this,a))return St(n[1],this,a)}}))},Oa.conforms=function(e){return function(e){var t=Co(e);return function(a){return oi(a,e,t)}}(si(e,1))},Oa.constant=Qo,Oa.countBy=hs,Oa.create=function(e,t){var a=Ba(e);return null==t?a:ai(a,t)},Oa.curry=function e(t,i,n){var r=Jn(t,8,a,a,a,a,a,i=n?a:i);return r.placeholder=e.placeholder,r},Oa.curryRight=function e(t,i,n){var r=Jn(t,16,a,a,a,a,a,i=n?a:i);return r.placeholder=e.placeholder,r},Oa.debounce=Vs,Oa.defaults=ko,Oa.defaultsDeep=So,Oa.defer=Cs,Oa.delay=Is,Oa.difference=Or,Oa.differenceBy=Br,Oa.differenceWith=$r,Oa.drop=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,(t=i||t===a?1:ho(t))<0?0:t,n):[]},Oa.dropRight=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,0,(t=n-(t=i||t===a?1:ho(t)))<0?0:t):[]},Oa.dropRightWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!0,!0):[]},Oa.dropWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!0):[]},Oa.fill=function(e,t,i,n){var r=null==e?0:e.length;return r?(i&&"number"!=typeof i&&br(e,t,i)&&(i=0,n=r),function(e,t,i,n){var r=e.length;for((i=ho(i))<0&&(i=-i>r?0:r+i),(n=n===a||n>r?r:ho(n))<0&&(n+=r),n=i>n?0:fo(n);i<n;)e[i++]=t;return e}(e,t,i,n)):[]},Oa.filter=function(e,t){return(Us(e)?Vt:fi)(e,or(t,3))},Oa.flatMap=function(e,t){return mi(ws(e,t),1)},Oa.flatMapDeep=function(e,t){return mi(ws(e,t),u)},Oa.flatMapDepth=function(e,t,i){return i=i===a?1:ho(i),mi(ws(e,t),i)},Oa.flatten=zr,Oa.flattenDeep=function(e){return null!=e&&e.length?mi(e,u):[]},Oa.flattenDepth=function(e,t){return null!=e&&e.length?mi(e,t=t===a?1:ho(t)):[]},Oa.flip=function(e){return Jn(e,512)},Oa.flow=el,Oa.flowRight=tl,Oa.fromPairs=function(e){for(var t=-1,a=null==e?0:e.length,i={};++t<a;){var n=e[t];i[n[0]]=n[1]}return i},Oa.functions=function(e){return null==e?[]:_i(e,Co(e))},Oa.functionsIn=function(e){return null==e?[]:_i(e,Io(e))},Oa.groupBy=bs,Oa.initial=function(e){return null!=e&&e.length?tn(e,0,-1):[]},Oa.intersection=Yr,Oa.intersectionBy=Hr,Oa.intersectionWith=Gr,Oa.invert=To,Oa.invertBy=Mo,Oa.invokeMap=vs,Oa.iteratee=il,Oa.keyBy=_s,Oa.keys=Co,Oa.keysIn=Io,Oa.map=ws,Oa.mapKeys=function(e,t){var a={};return t=or(t,3),bi(e,(function(e,i,n){ii(a,t(e,i,n),e)})),a},Oa.mapValues=function(e,t){var a={};return t=or(t,3),bi(e,(function(e,i,n){ii(a,i,t(e,i,n))})),a},Oa.matches=function(e){return Oi(si(e,1))},Oa.matchesProperty=function(e,t){return Bi(e,si(t,1))},Oa.memoize=Fs,Oa.merge=Fo,Oa.mergeWith=Eo,Oa.method=nl,Oa.methodOf=rl,Oa.mixin=sl,Oa.negate=Es,Oa.nthArg=function(e){return e=ho(e),qi((function(t){return ji(t,e)}))},Oa.omit=Do,Oa.omitBy=function(e,t){return Ro(e,Es(or(t)))},Oa.once=function(e){return xs(2,e)},Oa.orderBy=function(e,t,i,n){return null==e?[]:(Us(t)||(t=null==t?[]:[t]),Us(i=n?a:i)||(i=null==i?[]:[i]),Ui(e,t,i))},Oa.over=ll,Oa.overArgs=Ds,Oa.overEvery=ul,Oa.overSome=cl,Oa.partial=Ls,Oa.partialRight=Rs,Oa.partition=As,Oa.pick=Lo,Oa.pickBy=Ro,Oa.property=dl,Oa.propertyOf=function(e){return function(t){return null==e?a:wi(e,t)}},Oa.pull=Zr,Oa.pullAll=Jr,Oa.pullAllBy=function(e,t,a){return e&&e.length&&t&&t.length?Wi(e,t,or(a,2)):e},Oa.pullAllWith=function(e,t,i){return e&&e.length&&t&&t.length?Wi(e,t,a,i):e},Oa.pullAt=Kr,Oa.range=pl,Oa.rangeRight=hl,Oa.rearg=Ps,Oa.reject=function(e,t){return(Us(e)?Vt:fi)(e,Es(or(t,3)))},Oa.remove=function(e,t){var a=[];if(!e||!e.length)return a;var i=-1,n=[],r=e.length;for(t=or(t,3);++i<r;){var s=e[i];t(s,i,e)&&(a.push(s),n.push(i))}return Yi(e,n),a},Oa.rest=function(e,t){if("function"!=typeof e)throw new Me(i);return qi(e,t=t===a?t:ho(t))},Oa.reverse=Xr,Oa.sampleSize=function(e,t,i){return t=(i?br(e,t,i):t===a)?1:ho(t),(Us(e)?Ja:Ji)(e,t)},Oa.set=function(e,t,a){return null==e?e:Ki(e,t,a)},Oa.setWith=function(e,t,i,n){return n="function"==typeof n?n:a,null==e?e:Ki(e,t,i,n)},Oa.shuffle=function(e){return(Us(e)?Ka:en)(e)},Oa.slice=function(e,t,i){var n=null==e?0:e.length;return n?(i&&"number"!=typeof i&&br(e,t,i)?(t=0,i=n):(t=null==t?0:ho(t),i=i===a?n:ho(i)),tn(e,t,i)):[]},Oa.sortBy=ks,Oa.sortedUniq=function(e){return e&&e.length?sn(e):[]},Oa.sortedUniqBy=function(e,t){return e&&e.length?sn(e,or(t,2)):[]},Oa.split=function(e,t,i){return i&&"number"!=typeof i&&br(e,t,i)&&(t=i=a),(i=i===a?p:i>>>0)?(e=go(e))&&("string"==typeof t||null!=t&&!io(t))&&!(t=ln(t))&&na(e)?_n(da(e),0,i):e.split(t,i):[]},Oa.spread=function(e,t){if("function"!=typeof e)throw new Me(i);return t=null==t?0:ya(ho(t),0),qi((function(a){var i=a[t],n=_n(a,0,t);return i&&Et(n,i),St(e,this,n)}))},Oa.tail=function(e){var t=null==e?0:e.length;return t?tn(e,1,t):[]},Oa.take=function(e,t,i){return e&&e.length?tn(e,0,(t=i||t===a?1:ho(t))<0?0:t):[]},Oa.takeRight=function(e,t,i){var n=null==e?0:e.length;return n?tn(e,(t=n-(t=i||t===a?1:ho(t)))<0?0:t,n):[]},Oa.takeRightWhile=function(e,t){return e&&e.length?pn(e,or(t,3),!1,!0):[]},Oa.takeWhile=function(e,t){return e&&e.length?pn(e,or(t,3)):[]},Oa.tap=function(e,t){return t(e),e},Oa.throttle=function(e,t,a){var n=!0,r=!0;if("function"!=typeof e)throw new Me(i);return Xs(a)&&(n="leading"in a?!!a.leading:n,r="trailing"in a?!!a.trailing:r),Vs(e,t,{leading:n,maxWait:t,trailing:r})},Oa.thru=ds,Oa.toArray=co,Oa.toPairs=Po,Oa.toPairsIn=Oo,Oa.toPath=function(e){return Us(e)?Ft(e,Lr):so(e)?[e]:Mn(Dr(go(e)))},Oa.toPlainObject=yo,Oa.transform=function(e,t,a){var i=Us(e),n=i||Hs(e)||oo(e);if(t=or(t,4),null==a){var r=e&&e.constructor;a=n?i?new r:[]:Xs(e)&&Zs(r)?Ba(Ye(e)):{}}return(n?xt:bi)(e,(function(e,i,n){return t(a,e,i,n)})),a},Oa.unary=function(e){return Ns(e,1)},Oa.union=Qr,Oa.unionBy=es,Oa.unionWith=ts,Oa.uniq=function(e){return e&&e.length?un(e):[]},Oa.uniqBy=function(e,t){return e&&e.length?un(e,or(t,2)):[]},Oa.uniqWith=function(e,t){return t="function"==typeof t?t:a,e&&e.length?un(e,a,t):[]},Oa.unset=function(e,t){return null==e||cn(e,t)},Oa.unzip=as,Oa.unzipWith=is,Oa.update=function(e,t,a){return null==e?e:dn(e,t,gn(a))},Oa.updateWith=function(e,t,i,n){return n="function"==typeof n?n:a,null==e?e:dn(e,t,gn(i),n)},Oa.values=Bo,Oa.valuesIn=function(e){return null==e?[]:Kt(e,Io(e))},Oa.without=ns,Oa.words=Jo,Oa.wrap=function(e,t){return Ls(gn(t),e)},Oa.xor=rs,Oa.xorBy=ss,Oa.xorWith=os,Oa.zip=ls,Oa.zipObject=function(e,t){return mn(e||[],t||[],Qa)},Oa.zipObjectDeep=function(e,t){return mn(e||[],t||[],Ki)},Oa.zipWith=us,Oa.entries=Po,Oa.entriesIn=Oo,Oa.extend=vo,Oa.extendWith=_o,sl(Oa,Oa),Oa.add=gl,Oa.attempt=Ko,Oa.camelCase=$o,Oa.capitalize=jo,Oa.ceil=bl,Oa.clamp=function(e,t,i){return i===a&&(i=t,t=a),i!==a&&(i=(i=mo(i))==i?i:0),t!==a&&(t=(t=mo(t))==t?t:0),ri(mo(e),t,i)},Oa.clone=function(e){return si(e,4)},Oa.cloneDeep=function(e){return si(e,5)},Oa.cloneDeepWith=function(e,t){return si(e,5,t="function"==typeof t?t:a)},Oa.cloneWith=function(e,t){return si(e,4,t="function"==typeof t?t:a)},Oa.conformsTo=function(e,t){return null==t||oi(e,t,Co(t))},Oa.deburr=Uo,Oa.defaultTo=function(e,t){return null==e||e!=e?t:e},Oa.divide=vl,Oa.endsWith=function(e,t,i){e=go(e),t=ln(t);var n=e.length,r=i=i===a?n:ri(ho(i),0,n);return(i-=t.length)>=0&&e.slice(i,r)==t},Oa.eq=Os,Oa.escape=function(e){return(e=go(e))&&q.test(e)?e.replace(H,aa):e},Oa.escapeRegExp=function(e){return(e=go(e))&&ae.test(e)?e.replace(te,"\\$&"):e},Oa.every=function(e,t,i){var n=Us(e)?Mt:pi;return i&&br(e,t,i)&&(t=a),n(e,or(t,3))},Oa.find=fs,Oa.findIndex=jr,Oa.findKey=function(e,t){return Ot(e,or(t,3),bi)},Oa.findLast=ms,Oa.findLastIndex=Ur,Oa.findLastKey=function(e,t){return Ot(e,or(t,3),vi)},Oa.floor=_l,Oa.forEach=ys,Oa.forEachRight=gs,Oa.forIn=function(e,t){return null==e?e:yi(e,or(t,3),Io)},Oa.forInRight=function(e,t){return null==e?e:gi(e,or(t,3),Io)},Oa.forOwn=function(e,t){return e&&bi(e,or(t,3))},Oa.forOwnRight=function(e,t){return e&&vi(e,or(t,3))},Oa.get=No,Oa.gt=Bs,Oa.gte=$s,Oa.has=function(e,t){return null!=e&&fr(e,t,Ni)},Oa.hasIn=xo,Oa.head=Wr,Oa.identity=al,Oa.includes=function(e,t,a,i){e=Ws(e)?e:Bo(e),a=a&&!i?ho(a):0;var n=e.length;return a<0&&(a=ya(n+a,0)),ro(e)?a<=n&&e.indexOf(t,a)>-1:!!n&&$t(e,t,a)>-1},Oa.indexOf=function(e,t,a){var i=null==e?0:e.length;if(!i)return-1;var n=null==a?0:ho(a);return n<0&&(n=ya(i+n,0)),$t(e,t,n)},Oa.inRange=function(e,t,i){return t=po(t),i===a?(i=t,t=0):i=po(i),function(e,t,a){return e>=ga(t,a)&&e<ya(t,a)}(e=mo(e),t,i)},Oa.invoke=Vo,Oa.isArguments=js,Oa.isArray=Us,Oa.isArrayBuffer=zs,Oa.isArrayLike=Ws,Oa.isArrayLikeObject=Ys,Oa.isBoolean=function(e){return!0===e||!1===e||Qs(e)&&ki(e)==y},Oa.isBuffer=Hs,Oa.isDate=Gs,Oa.isElement=function(e){return Qs(e)&&1===e.nodeType&&!ao(e)},Oa.isEmpty=function(e){if(null==e)return!0;if(Ws(e)&&(Us(e)||"string"==typeof e||"function"==typeof e.splice||Hs(e)||oo(e)||js(e)))return!e.length;var t=hr(e);if(t==w||t==x)return!e.size;if(Ar(e))return!Di(e).length;for(var a in e)if(De.call(e,a))return!1;return!0},Oa.isEqual=function(e,t){return Ci(e,t)},Oa.isEqualWith=function(e,t,i){var n=(i="function"==typeof i?i:a)?i(e,t):a;return n===a?Ci(e,t,a,i):!!n},Oa.isError=qs,Oa.isFinite=function(e){return"number"==typeof e&&Pt(e)},Oa.isFunction=Zs,Oa.isInteger=Js,Oa.isLength=Ks,Oa.isMap=eo,Oa.isMatch=function(e,t){return e===t||Ii(e,t,ur(t))},Oa.isMatchWith=function(e,t,i){return i="function"==typeof i?i:a,Ii(e,t,ur(t),i)},Oa.isNaN=function(e){return to(e)&&e!=+e},Oa.isNative=function(e){if(wr(e))throw new Ae("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Fi(e)},Oa.isNil=function(e){return null==e},Oa.isNull=function(e){return null===e},Oa.isNumber=to,Oa.isObject=Xs,Oa.isObjectLike=Qs,Oa.isPlainObject=ao,Oa.isRegExp=io,Oa.isSafeInteger=function(e){return Js(e)&&e>=-9007199254740991&&e<=c},Oa.isSet=no,Oa.isString=ro,Oa.isSymbol=so,Oa.isTypedArray=oo,Oa.isUndefined=function(e){return e===a},Oa.isWeakMap=function(e){return Qs(e)&&hr(e)==V},Oa.isWeakSet=function(e){return Qs(e)&&"[object WeakSet]"==ki(e)},Oa.join=function(e,t){return null==e?"":Yt.call(e,t)},Oa.kebabCase=zo,Oa.last=qr,Oa.lastIndexOf=function(e,t,i){var n=null==e?0:e.length;if(!n)return-1;var r=n;return i!==a&&(r=(r=ho(i))<0?ya(n+r,0):ga(r,n-1)),t==t?function(e,t,a){for(var i=a+1;i--;)if(e[i]===t)return i;return i}(e,t,r):Bt(e,Ut,r,!0)},Oa.lowerCase=Wo,Oa.lowerFirst=Yo,Oa.lt=lo,Oa.lte=uo,Oa.max=function(e){return e&&e.length?hi(e,al,Si):a},Oa.maxBy=function(e,t){return e&&e.length?hi(e,or(t,2),Si):a},Oa.mean=function(e){return zt(e,al)},Oa.meanBy=function(e,t){return zt(e,or(t,2))},Oa.min=function(e){return e&&e.length?hi(e,al,Ri):a},Oa.minBy=function(e,t){return e&&e.length?hi(e,or(t,2),Ri):a},Oa.stubArray=fl,Oa.stubFalse=ml,Oa.stubObject=function(){return{}},Oa.stubString=function(){return""},Oa.stubTrue=function(){return!0},Oa.multiply=wl,Oa.nth=function(e,t){return e&&e.length?ji(e,ho(t)):a},Oa.noConflict=function(){return pt._===this&&(pt._=Be),this},Oa.noop=ol,Oa.now=Ss,Oa.pad=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;if(!t||i>=t)return e;var n=(t-i)/2;return zn(ft(n),a)+e+zn(ht(n),a)},Oa.padEnd=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;return t&&i<t?e+zn(t-i,a):e},Oa.padStart=function(e,t,a){e=go(e);var i=(t=ho(t))?ca(e):0;return t&&i<t?zn(t-i,a)+e:e},Oa.parseInt=function(e,t,a){return a||null==t?t=0:t&&(t=+t),va(go(e).replace(ie,""),t||0)},Oa.random=function(e,t,i){if(i&&"boolean"!=typeof i&&br(e,t,i)&&(t=i=a),i===a&&("boolean"==typeof t?(i=t,t=a):"boolean"==typeof e&&(i=e,e=a)),e===a&&t===a?(e=0,t=1):(e=po(e),t===a?(t=e,e=0):t=po(t)),e>t){var n=e;e=t,t=n}if(i||e%1||t%1){var r=_a();return ga(e+r*(t-e+lt("1e-"+((r+"").length-1))),t)}return Hi(e,t)},Oa.reduce=function(e,t,a){var i=Us(e)?Dt:Ht,n=arguments.length<3;return i(e,or(t,4),a,n,ci)},Oa.reduceRight=function(e,t,a){var i=Us(e)?Lt:Ht,n=arguments.length<3;return i(e,or(t,4),a,n,di)},Oa.repeat=function(e,t,i){return t=(i?br(e,t,i):t===a)?1:ho(t),Gi(go(e),t)},Oa.replace=function(){var e=arguments,t=go(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Oa.result=function(e,t,i){var n=-1,r=(t=bn(t,e)).length;for(r||(r=1,e=a);++n<r;){var s=null==e?a:e[Lr(t[n])];s===a&&(n=r,s=i),e=Zs(s)?s.call(e):s}return e},Oa.round=Al,Oa.runInContext=e,Oa.sample=function(e){return(Us(e)?Za:Zi)(e)},Oa.size=function(e){if(null==e)return 0;if(Ws(e))return ro(e)?ca(e):e.length;var t=hr(e);return t==w||t==x?e.size:Di(e).length},Oa.snakeCase=Ho,Oa.some=function(e,t,i){var n=Us(e)?Rt:an;return i&&br(e,t,i)&&(t=a),n(e,or(t,3))},Oa.sortedIndex=function(e,t){return nn(e,t)},Oa.sortedIndexBy=function(e,t,a){return rn(e,t,or(a,2))},Oa.sortedIndexOf=function(e,t){var a=null==e?0:e.length;if(a){var i=nn(e,t);if(i<a&&Os(e[i],t))return i}return-1},Oa.sortedLastIndex=function(e,t){return nn(e,t,!0)},Oa.sortedLastIndexBy=function(e,t,a){return rn(e,t,or(a,2),!0)},Oa.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var a=nn(e,t,!0)-1;if(Os(e[a],t))return a}return-1},Oa.startCase=Go,Oa.startsWith=function(e,t,a){return e=go(e),a=null==a?0:ri(ho(a),0,e.length),t=ln(t),e.slice(a,a+t.length)==t},Oa.subtract=kl,Oa.sum=function(e){return e&&e.length?Gt(e,al):0},Oa.sumBy=function(e,t){return e&&e.length?Gt(e,or(t,2)):0},Oa.template=function(e,t,i){var n=Oa.templateSettings;i&&br(e,t,i)&&(t=a),e=go(e),t=_o({},t,n,Kn);var r,s,o=_o({},t.imports,n.imports,Kn),l=Co(o),u=Kt(o,l),c=0,d=t.interpolate||ve,p="__p += '",h=xe((t.escape||ve).source+"|"+d.source+"|"+(d===K?de:ve).source+"|"+(t.evaluate||ve).source+"|$","g"),f="//# sourceURL="+(De.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++nt+"]")+"\n";e.replace(h,(function(t,a,i,n,o,l){return i||(i=n),p+=e.slice(c,l).replace(_e,ia),a&&(r=!0,p+="' +\n__e("+a+") +\n'"),o&&(s=!0,p+="';\n"+o+";\n__p += '"),i&&(p+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),c=l+t.length,t})),p+="';\n";var m=De.call(t,"variable")&&t.variable;if(m){if(ue.test(m))throw new Ae("Invalid `variable` option passed into `_.template`")}else p="with (obj) {\n"+p+"\n}\n";p=(s?p.replace(U,""):p).replace(z,"$1").replace(W,"$1;"),p="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(r?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var y=Ko((function(){return ke(l,f+"return "+p).apply(a,u)}));if(y.source=p,qs(y))throw y;return y},Oa.times=function(e,t){if((e=ho(e))<1||e>c)return[];var a=p,i=ga(e,p);t=or(t),e-=p;for(var n=qt(i,t);++a<e;)t(a);return n},Oa.toFinite=po,Oa.toInteger=ho,Oa.toLength=fo,Oa.toLower=function(e){return go(e).toLowerCase()},Oa.toNumber=mo,Oa.toSafeInteger=function(e){return e?ri(ho(e),-9007199254740991,c):0===e?e:0},Oa.toString=go,Oa.toUpper=function(e){return go(e).toUpperCase()},Oa.trim=function(e,t,i){if((e=go(e))&&(i||t===a))return Zt(e);if(!e||!(t=ln(t)))return e;var n=da(e),r=da(t);return _n(n,Qt(n,r),ea(n,r)+1).join("")},Oa.trimEnd=function(e,t,i){if((e=go(e))&&(i||t===a))return e.slice(0,pa(e)+1);if(!e||!(t=ln(t)))return e;var n=da(e);return _n(n,0,ea(n,da(t))+1).join("")},Oa.trimStart=function(e,t,i){if((e=go(e))&&(i||t===a))return e.replace(ie,"");if(!e||!(t=ln(t)))return e;var n=da(e);return _n(n,Qt(n,da(t))).join("")},Oa.truncate=function(e,t){var i=30,n="...";if(Xs(t)){var r="separator"in t?t.separator:r;i="length"in t?ho(t.length):i,n="omission"in t?ln(t.omission):n}var s=(e=go(e)).length;if(na(e)){var o=da(e);s=o.length}if(i>=s)return e;var l=i-ca(n);if(l<1)return n;var u=o?_n(o,0,l).join(""):e.slice(0,l);if(r===a)return u+n;if(o&&(l+=u.length-l),io(r)){if(e.slice(l).search(r)){var c,d=u;for(r.global||(r=xe(r.source,go(pe.exec(r))+"g")),r.lastIndex=0;c=r.exec(d);)var p=c.index;u=u.slice(0,p===a?l:p)}}else if(e.indexOf(ln(r),l)!=l){var h=u.lastIndexOf(r);h>-1&&(u=u.slice(0,h))}return u+n},Oa.unescape=function(e){return(e=go(e))&&G.test(e)?e.replace(Y,ha):e},Oa.uniqueId=function(e){var t=++Le;return go(e)+t},Oa.upperCase=qo,Oa.upperFirst=Zo,Oa.each=ys,Oa.eachRight=gs,Oa.first=Wr,sl(Oa,(yl={},bi(Oa,(function(e,t){De.call(Oa.prototype,t)||(yl[t]=e)})),yl),{chain:!1}),Oa.VERSION="4.17.21",xt(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Oa[e].placeholder=Oa})),xt(["drop","take"],(function(e,t){Ua.prototype[e]=function(i){i=i===a?1:ya(ho(i),0);var n=this.__filtered__&&!t?new Ua(this):this.clone();return n.__filtered__?n.__takeCount__=ga(i,n.__takeCount__):n.__views__.push({size:ga(i,p),type:e+(n.__dir__<0?"Right":"")}),n},Ua.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),xt(["filter","map","takeWhile"],(function(e,t){var a=t+1,i=1==a||3==a;Ua.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:or(e,3),type:a}),t.__filtered__=t.__filtered__||i,t}})),xt(["head","last"],(function(e,t){var a="take"+(t?"Right":"");Ua.prototype[e]=function(){return this[a](1).value()[0]}})),xt(["initial","tail"],(function(e,t){var a="drop"+(t?"":"Right");Ua.prototype[e]=function(){return this.__filtered__?new Ua(this):this[a](1)}})),Ua.prototype.compact=function(){return this.filter(al)},Ua.prototype.find=function(e){return this.filter(e).head()},Ua.prototype.findLast=function(e){return this.reverse().find(e)},Ua.prototype.invokeMap=qi((function(e,t){return"function"==typeof e?new Ua(this):this.map((function(a){return Mi(a,e,t)}))})),Ua.prototype.reject=function(e){return this.filter(Es(or(e)))},Ua.prototype.slice=function(e,t){e=ho(e);var i=this;return i.__filtered__&&(e>0||t<0)?new Ua(i):(e<0?i=i.takeRight(-e):e&&(i=i.drop(e)),t!==a&&(i=(t=ho(t))<0?i.dropRight(-t):i.take(t-e)),i)},Ua.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Ua.prototype.toArray=function(){return this.take(p)},bi(Ua.prototype,(function(e,t){var i=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),r=Oa[n?"take"+("last"==t?"Right":""):t],s=n||/^find/.test(t);r&&(Oa.prototype[t]=function(){var t=this.__wrapped__,o=n?[1]:arguments,l=t instanceof Ua,u=o[0],c=l||Us(t),d=function(e){var t=r.apply(Oa,Et([e],o));return n&&p?t[0]:t};c&&i&&"function"==typeof u&&1!=u.length&&(l=c=!1);var p=this.__chain__,h=!!this.__actions__.length,f=s&&!p,m=l&&!h;if(!s&&c){t=m?t:new Ua(this);var y=e.apply(t,o);return y.__actions__.push({func:ds,args:[d],thisArg:a}),new ja(y,p)}return f&&m?e.apply(this,o):(y=this.thru(d),f?n?y.value()[0]:y.value():y)})})),xt(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ve[e],a=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);Oa.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var n=this.value();return t.apply(Us(n)?n:[],e)}return this[a]((function(a){return t.apply(Us(a)?a:[],e)}))}})),bi(Ua.prototype,(function(e,t){var a=Oa[t];if(a){var i=a.name+"";De.call(Va,i)||(Va[i]=[]),Va[i].push({name:t,func:a})}})),Va[Bn(a,2).name]=[{name:"wrapper",func:a}],Ua.prototype.clone=function(){var e=new Ua(this.__wrapped__);return e.__actions__=Mn(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Mn(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Mn(this.__views__),e},Ua.prototype.reverse=function(){if(this.__filtered__){var e=new Ua(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Ua.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,a=Us(e),i=t<0,n=a?e.length:0,r=function(e,t,a){for(var i=-1,n=a.length;++i<n;){var r=a[i],s=r.size;switch(r.type){case"drop":e+=s;break;case"dropRight":t-=s;break;case"take":t=ga(t,e+s);break;case"takeRight":e=ya(e,t-s)}}return{start:e,end:t}}(0,n,this.__views__),s=r.start,o=r.end,l=o-s,u=i?o:s-1,c=this.__iteratees__,d=c.length,p=0,h=ga(l,this.__takeCount__);if(!a||!i&&n==l&&h==l)return hn(e,this.__actions__);var f=[];e:for(;l--&&p<h;){for(var m=-1,y=e[u+=t];++m<d;){var g=c[m],b=g.iteratee,v=g.type,_=b(y);if(2==v)y=_;else if(!_){if(1==v)continue e;break e}}f[p++]=y}return f},Oa.prototype.at=ps,Oa.prototype.chain=function(){return cs(this)},Oa.prototype.commit=function(){return new ja(this.value(),this.__chain__)},Oa.prototype.next=function(){this.__values__===a&&(this.__values__=co(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?a:this.__values__[this.__index__++]}},Oa.prototype.plant=function(e){for(var t,i=this;i instanceof $a;){var n=Pr(i);n.__index__=0,n.__values__=a,t?r.__wrapped__=n:t=n;var r=n;i=i.__wrapped__}return r.__wrapped__=e,t},Oa.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Ua){var t=e;return this.__actions__.length&&(t=new Ua(this)),(t=t.reverse()).__actions__.push({func:ds,args:[Xr],thisArg:a}),new ja(t,this.__chain__)}return this.thru(Xr)},Oa.prototype.toJSON=Oa.prototype.valueOf=Oa.prototype.value=function(){return hn(this.__wrapped__,this.__actions__)},Oa.prototype.first=Oa.prototype.head,Je&&(Oa.prototype[Je]=function(){return this}),Oa}();ft?((ft.exports=fa)._=fa,ht._=fa):pt._=fa}).call(te)}(ee,ee.exports)),ee.exports);class ie extends q{name="";displayName="";type=void 0;info;preload=!0;loadingManagerRule="load";item;itemRepo;condition;conditionFields=[];conditionFieldNames=[];dependantFields=[];dependenciesInitialized=!1;linkableTypes=[];collapsed=!1;presets=[];datatype=null;defaultValue=null;minValue=null;maxValue=null;language=null;widget=null;length=null;labelType=null;blocks=[];connections=[];_id="";_internalValue;_internalOptions=[];_updateConditions=!0;_hidden=!1;get hidden(){return!(!this.condition||!this.dependenciesInitialized)&&(this._updateConditions&&(this._hidden=!this._calculateConditionBlock(this.condition),this._updateConditions=!1),this._hidden)}get id(){return this._id}get options(){return this._internalOptions}set options(e){this._internalOptions=e,this.updateConditions()}get value(){return this._internalValue}set value(e){this._internalValue=e,this._processDependencies()}constructor(e,t=void 0,a=void 0,i=void 0,n=void 0,r=void 0){super(n),e instanceof G?(this._id=e.id,this.restoreFromSnapshot(e)):(_.assert(e,"Field has no name!"),_.assert(a,"Field has no type!"),this._id=_.createFieldID(),this.name=e,this.displayName=t||e,this.type=a,this._internalValue=i,this.item=n,this.itemRepo=r)}updateConditions(){this.condition&&this.dependenciesInitialized&&(this._updateConditions=!0,y.$emit("field:hiddenChanged",this.id))}getId(){return this.id}resetValue(){this.value=this.defaultValue}makeIdsUnique(e=new Map,t=!1){if(e.has(this._id)||t){const t=_.createFieldID();e.set(this._id,t),this._id=t}else e.set(this._id,this._id);for(const a of this.blocks)a.makeIdsUnique(e,t);return e}transformNodeIds(e){for(const t of this.blocks)t.transformNodeIds(e);"Attribute"===this.type&&"Node"===this.datatype&&this.value&&e.has(this.value)&&(this.value=e.get(this.value))}findBlock(e){for(const t of this.blocks){const a=t.findBlock(e);if(a)return a}return null}clone(e=void 0,t=!1){let a=new ie(this.name,this.displayName,this.type);void 0===this._internalValue?a._internalValue=void 0:null===this._internalValue?a._internalValue=null:"Link"===this.type?a._internalValue=this._internalValue:a._internalValue=ae.cloneDeep(this._internalValue),a.info=this.info,a.preload=this.preload,a.loadingManagerRule=this.loadingManagerRule,a.item=this.item,a.ownerItem=this.ownerItem,a.itemRepo=this.itemRepo,a.condition=this.condition,a.conditionFields=this.conditionFields,a.conditionFieldNames=this.conditionFieldNames,a.dependantFields=this.dependantFields,a.collapsed=this.collapsed,a.presets=this.presets,a.labelType=this.labelType,a.datatype=this.datatype,a.defaultValue=this.defaultValue,a.minValue=this.minValue,a.maxValue=this.maxValue,a.options=this.options,a.language=this.language,a.widget=this.widget,a.length=this.length,a.linkableTypes=this.linkableTypes;for(const i of this.blocks){let n=i.clone(e,!0,{},t);e&&(n=S.instance.proxyBlock(n,e)),a.blocks.push(n)}for(const t of this.connections){let i=t.clone();e&&(i=S.instance.proxyConnection(i,e)),a.connections.push(i)}return a}_processDependencies(){for(const e of this.dependantFields)e.updateConditions()}_getConditionField(e){for(const t of this.conditionFields)if(t&&t.name===e)return t;return null}_calculateConditionField(e,t){if(!e.startsWith("$")){let a;e.includes(".")?(a=e.split("."),e=a.splice(0,1)[0]):a=[];let i=e.endsWith("?");i&&(e=e.substring(0,e.length-1));const n=this._getConditionField(e);if(!n)return i||console.error("Field to resolve condition not found: "+e),!1;let r=n.value;for(let t=0;t<a.length;t++){if(!r)return console.error(`Field path ${a.join(".")} not found in field ${e}!`),!1;r=r[a[t]]}return"object"==typeof t?void 0!==t.$isset?t.$isset===!!r:void 0!==t.$not?t.$not!==r:(console.error("Condition value cannot be interpreted: ",t,this),!1):n.value==t}switch(e){case"$isroot":return this.item._id===this.itemRepo.rootItemId===t;case"$parenttype":return console.log("$parenttype is not yet implemented!",this),!1;case"$optionsexist":return(Array.isArray(this.options)&&this.options.length>0)===t;case"$featureenabled":return this.itemRepo.apiClient.isFeatureEnabled(t);default:return console.error("Computed value unknown: "+e,this),!1}}_calculateConditionBlock(e){for(const t in e)if(e.hasOwnProperty(t)){const a=e[t];if("$or"===t)if(Array.isArray(a)){let e=!1;for(const t of a)if(this._calculateConditionBlock(t)){e=!0;break}if(!e)return!1}else console.error("Condition contains $or but its value is not an array!");else if("$not"===t){if("object"!=typeof a)console.error("When using the $not operator, the value needs to be an object");else if(this._calculateConditionBlock(a))return!1}else if(!this._calculateConditionField(t,a))return!1}return!0}refreshFieldDependencies(){for(const e of this.blocks)e.refreshFieldDependencies()}refreshDependantFields(e,t){const a=[];if(this.condition)for(let t of this.conditionFieldNames){const i=t.endsWith("?");i&&(t=t.substring(0,t.length-1));const n=e.get(t);n?a.push(n):i||console.warn("Condition field not found: "+t)}this.conditionFields=a,this.dependantFields=t||[],this.dependenciesInitialized=!0}setCondition(e){e?"object"==typeof e?this.condition=e:(console.error("Condition must be an object if set",e),this.condition=null):this.condition=null,this.conditionFieldNames=[],this.condition&&this._scanConditions(this.condition)}_scanConditions(e){for(let t in e)if(e.hasOwnProperty(t)){const a=e[t];if(Array.isArray(a))for(const e of a)this._scanConditions(e);else t.startsWith("$")||(t.includes(".")&&(t=t.split(".")[0]),this.conditionFieldNames.includes(t)||this.conditionFieldNames.push(t))}}forEachField(e){if(e(this),this.blocks)for(const t of this.blocks)t.forEachField(e)}setInfo(e){this.info=e}setPreload(e){this.preload=e}setLoadingManagerRule(e){this.loadingManagerRule=e}setLinkableTypes(e){this.linkableTypes=e}setDefaultValue(e){this.defaultValue=e,void 0!==this._internalValue&&null!==this._internalValue||(this._internalValue=e)}setMinValue(e){this.minValue=e}setMaxValue(e){this.maxValue=e}setOptions(e){this.options=e}setDatatype(e){this.datatype=e}setLanguage(e){this.language=e}setLength(e){this.length=e}setWidget(e){this.widget=e}setBlocks(e){this.blocks=e}setConnections(e){this.connections=e}setCollapsed(e){this.collapsed=!!e}setPresets(e){this.presets=e||[]}setLabelType(e){this.labelType=e||"info"}createSnapshot(e=!1){_.assert(this.id,"Field has no ID. Cannot create snapshot");const t=[];for(const a of this.blocks)t.push(a.createSnapshot(e));const a=[];for(const e of this.connections)a.push(e.createSnapshot());return new G(this.id,"field",{name:this.name,displayName:this.displayName,type:this.type,value:this._internalValue,preload:this.preload,info:this.info,loadingManagerRule:this.loadingManagerRule,item:this.item,itemRepo:this.itemRepo,condition:this.condition,conditionFields:this.conditionFields,conditionFieldNames:this.conditionFieldNames,dependantFields:this.dependantFields,linkableTypes:this.linkableTypes,collapsed:this.collapsed,presets:this.presets,datatype:this.datatype,defaultValue:this.defaultValue,minValue:this.minValue,maxValue:this.maxValue,options:this.options,language:this.language,widget:this.widget,length:this.length,labelType:this.labelType,blocks:t,connections:a})}restoreFromSnapshot(e){e.id===this.id?(this.name=e.data.name,this.displayName=e.data.displayName,this.type=e.data.type,this._internalValue=e.data.value,this.info=e.data.info,this.preload=e.data.preload,this.loadingManagerRule=e.data.loadingManagerRule,this.item=e.data.item,this.ownerItem=e.data.item,this.itemRepo=e.data.itemRepo,this.condition=e.data.condition,this.conditionFields=e.data.conditionFields,this.conditionFieldNames=e.data.conditionFieldNames,this.dependantFields=e.data.dependantFields,this.linkableTypes=e.data.linkableTypes,this.collapsed=e.data.collapsed,this.presets=e.data.presets,this.datatype=e.data.datatype,this.defaultValue=e.data.defaultValue,this.minValue=e.data.minValue,this.maxValue=e.data.maxValue,this.options=e.data.options,this.language=e.data.language,this.widget=e.data.widget,this.length=e.data.length,this.labelType=e.data.labelType,this.blocks=[],this.connections=[],this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this._rollbackArray(this.connections,e.data.connections,((e,t)=>S.instance.proxyConnection(new Z(e.data,t),this.ownerItem)))):console.error("Snapshot ID does not match! Cannot rollback!",this,e)}rollbackFromSnapshot(e){this.value=e.data.value,this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this._rollbackArray(this.connections,e.data.connections,((e,t)=>S.instance.proxyConnection(new Z(e.data,t),this.ownerItem)))}}class ne extends q{id;name=void 0;displayName=void 0;value;type=void 0;datatype=void 0;linkableTypes=[];order=0;constructor(e=void 0,t=void 0,a=void 0){super(a),this.value=t,this.id=_.createItemOrBlockID(),this.name=e,this.displayName=e,this._updateDisplayName()}getId(){return this.id}setName(e){this.name=e,this._updateDisplayName()}setType(e){this.type=e}setOrder(e){this.order=e}clone(e=new Map){const t=new ne;return t.ownerItem=this.ownerItem,t.value=e.get(this.value)??this.value,t.type=this.type,t.order=this.order,t.setName(this.name),t}clearDefinition(){this.type=void 0}setDefinition(e){const t=e.type.toLowerCase();switch(t){case"boolean":case"bool":this.type="Attribute",this.datatype="Boolean",this.value=void 0!==this.value?this._toBoolean(this.value):this._toBoolean(e.defaultValue);break;case"float":this.type="Attribute",this.datatype="Float",this.value=void 0!==this.value?Number(this.value):Number(e.defaultValue);break;case"int":this.type="Attribute",this.datatype="Integer",this.value=void 0!==this.value?parseInt(this.value):parseInt(e.defaultValue);break;case"string":this.type="Attribute",this.datatype="String",this.value=void 0!==this.value&&null!==this.value?this.value.toString():e.defaultValue?e.defaultValue.toString():"";break;case"vec2":this.type="Attribute",this.datatype="Vector2d";break;case"vec3":this.type="Attribute",this.datatype="Vector3d";break;case"vec4":this.type="Attribute",this.datatype="Vector4d";break;case"mat3":this.type="Attribute",this.datatype="Mat3";break;case"mat4":this.type="Attribute",this.datatype="Mat4";break;case"color":this.type="Attribute",this.datatype="Color";break;case"image":this.type="Link",this.linkableTypes=["Image"];break;default:console.error("Unknown script field type: "+t),this.type="Attribute",this.datatype="String",this.value=this.value?this.value.toString():e.defaultValue?e.defaultValue.toString():""}}_toBoolean(e){return null!=e&&(!0===e||!1===e?e:"false"!==e.toString().toLowerCase())}_updateDisplayName(){this.name?this.displayName=_.toUserFriendlyName(this.name):this.displayName=""}createSnapshot(){return new G(this.id,"customfield",{id:this.id,value:this.value})}rollbackFromSnapshot(e){this.value=e.data.value}}class re extends D{links;instanceId;isDirty=!1;fieldInstances;userFieldInstances;customFieldInstances;packageContent;packageType;public=!1;readOnly=!1;isPackaged=!1;isGenerated=!1;packageItem;isPreparedItem=!0;resultingAcl;userData={};constructor(e){if(super(e),this.instanceId=_.createItemOrBlockID(),this.links=[],Array.isArray(e.links))for(const t of e.links)this.links.push({to:t.to,usage:t.usage,stopRecursion:t.stopRecursion,item:t.item});this.fieldInstances=[],this.userFieldInstances=[],this.customFieldInstances=S.instance.proxyCustomFieldsArray([],this),this.public=!!e.public,this.packageContent=e.packageContent,this.packageType=e.packageType,this.packageItem=e.packageItem,this.readOnly=!!e.readOnly,this.isPackaged=!!e.isPackaged,this.isGenerated=!!e.isGenerated,this.resultingAcl=JSON.parse(JSON.stringify(e.resultingAcl||[]))}createCustomFieldInstances(e){function t(e,t){for(const a of e)if(a.name===t)return a;return null}for(const a of this.customFieldInstances)t(e,a.name)||a.clearDefinition();let a=0;for(const i of e){let e=t(this.customFieldInstances,i.name);e||(e=new ne(i.name,i.defaultValue,this),this.addCustomField(e)),e.setOrder(a++),e.setDefinition(i)}this.customFieldInstances.sort((function(e,t){return e.order-t.order}))}addCustomField(e){this.customFieldInstances.push(S.instance.proxyCustomField(e,this))}markDirty(){this.isDirty||(this.isDirty=!0,y.$emit("itemRepo:itemBecameDirty",this._id))}makeIdsUnique(){const e=new Map;for(const t of this.fieldInstances)t.makeIdsUnique(e,!0);this.packageContent&&this.packageContent.makeIdsUnique()}clone(e=!1){let t=new re(this);const a=new Map;for(const i of this.fieldInstances){const n=i.clone(this,!0);e&&n.makeIdsUnique(a,!0),t.fieldInstances.push(n)}if(e)for(const e of t.fieldInstances)e.transformNodeIds(a);return t}findBlock(e){for(const t of this.fieldInstances){const a=t.findBlock(e);if(a)return a}return null}refreshFieldDependencies(){ue.refreshFieldDependencies(this.fieldInstances);for(const e of this.fieldInstances)e.refreshFieldDependencies()}forEachItem(e){if(e(this),this.links)for(const t of this.links)t.item&&t.item.forEachItem(e)}forEachFieldInstance(e){if(this.fieldInstances)for(const t of this.fieldInstances)t.forEachField(e)}toString(){return`PreparedItem(${JSON.stringify({_id:this._id,name:this.name,type:this.type})})`}}function se(e,t,a){if(e.admin||e.superadmin)return!0;if(!Array.isArray(t))return!0;for(const i of t)if(i.can.includes(a)){if(!i.user&&!i.group)return!0;if(i.user&&i.user===e._id)return!0;if(i.group)for(const t of e.groups){if("object"==typeof t&&t._id===i.group)return!0;if(t===i.group)return!0}}}class oe{fields;constructor(e){if(!Array.isArray(e))throw"Template fields need to be an array!";this.fields=e}clone(){const e=[];for(const t of this.fields)e.push(t.clone());return new oe(e)}specialize(e){for(const t of this.fields)void 0!==e[t.name]&&(t.defaultValue=e[t.name]);return this}instantiate(e){if(e)return this.fields;{const e=[];for(const t of this.fields)e.push(t.clone());return e}}}class le{templates=new Map;templatesByField=new Map;static _instance;static get instance(){return this._instance||(this._instance=new this)}_existsTemplate(e,t){for(const a of e)if(a.typeName===t)return!0;return!1}addTemplates(e,t,a){const i=`${e}_${t}`,n=this.templatesByField.get(i)||[];for(const e of a){const t=`${i}_${e.typeName}`;this.templates.set(t,e),this._existsTemplate(n,e.typeName)||n.push(e)}this.templatesByField.set(i,n)}getTemplate(e,t,a){const i=`${e}_${t}_${a}`;return this.templates.get(i)}getTemplates(e,t){const a=`${e}_${t}`;return this.templatesByField.get(a)||[]}}class ue{itemRepo;itemFetcher;constructor(e){this.itemRepo=e,this.itemFetcher=function(e){return e}}setItemFetcher(e){this.itemFetcher=e}setFieldsFromDatatypes(e){const t=R(e.type,!0);e.fields=t?.fields||[],e.fieldSets=t?.fieldSets||[]}async prepare(e){return e instanceof re?(console.warn("Trying to prepare an already prepared item: ",e),e):this.itemRepo.undoManager.ignore((async()=>{const t=new re(e);return this.setFieldsFromDatatypes(t),t.fieldInstances=await this.createFieldInstances(t,t.fields,t.attributes,"","attributes",!1),t.userFieldInstances=await this.createFieldInstances(t,t.userFields,t.userAttributes,"","userAttributes",!1),t.customFieldInstances=await this.createCustomFieldInstances(t,t.userAttributes,"_"),t.allowConversation=!!t.allowConversation,t.packageContent&&(t.packageContent.name=t.name,await this.itemRepo.traverseItems((e=>{e.readOnly=!0,e.isPackaged=!0,e.packageItem=t}),t.packageContent)),t.packageItem?(t.readOnly=!0,t.isPackaged=!0):(t.isPackaged=!1,t.resultingAcl&&t.resultingAcl.length>0?t.readOnly=!se(await this.itemRepo.apiClient.me(!0),t.resultingAcl,"write"):t.readOnly=!0),t}))}async createCustomFieldInstances(e,t,a=""){if(!e)throw new M("createCustomFieldInstances(): Item cannot be null!");if(!t)throw new M("createCustomFieldInstances(): attributes cannot be null!");const i=[];for(const n in t)if(!a.length||n.startsWith(a)){const r=n.substring(a.length);let s=new ne(r,t[n],e);s.setType("Attribute"),i.push(S.instance.proxyCustomField(s,e))}if(e.links)for(const t of e.links)if(!a.length||t.usage.startsWith(a)){const n=t.usage.substring(a.length);let r,{id:s,linkItem:o,stopRecursion:l}=await this.fetchLinkValue(e,t.usage);o?r=o:l&&(r=s);let u=new ne(n,r,e);u.setType("Link"),i.push(S.instance.proxyCustomField(u,e))}return i}async createFieldInstances(e,t,a,i,n,r=!1){if(!e)throw new M("createFieldInstances(): Item cannot be null!");if(!t)throw new M("createFieldInstances(): Fields cannot be null!");const s=[],o=i.length?`${i}->`:i;for(let a=0;a<t.length;a++){const i=t[a];if("FieldSet"===i.type){const n=this.getFieldSet(e,i.name);n?(t.splice(a,1,...structuredClone(n.fields)),a+=n.fields.length-1):console.error("Fieldset not found: "+i.name)}}for(const i of t)switch(i.type){case"Separator":{const t=new ie("Separator",i.label,"Separator",null,e,this.itemRepo);t.setInfo(i.info),t.setCondition(i.if),t.setCollapsed(i.collapsed),t.setPresets(i.presets),s.push(t);break}case"Label":{const t=new ie("Label","","Label",i.text,e,this.itemRepo);t.setLabelType(i.labelType),t.setCondition(i.if),s.push(t);break}case"Link":{let t;if(!r){let{id:a,linkItem:n,stopRecursion:r}=await this.fetchLinkValue(e,i.usageAs);n?t=n:r&&(t=a)}let a=new ie(i.usageAs,i.displayName,i.type,t,e,this.itemRepo);a.setInfo(i.info),a.setCondition(i.if),a.setLinkableTypes(i.linkableTypes),void 0!==i.preload&&a.setPreload(i.preload),void 0!==i.loadingManager&&a.setLoadingManagerRule(i.loadingManager),s.push(S.instance.proxyItemField(a,e));break}case"Tree":{const t=`${o}${i.name}`,r=[];for(const s of i.childTypes){const i=new oe(await this.createFieldInstances(e,s.fields,a,t,n,!0));r.push({typeName:s.typeName,displayName:s.displayName||s.typeName,template:i,inputs:[],outputs:[]})}r.sort((function(e,t){return e.displayName.localeCompare(t.displayName)})),le.instance.addTemplates(e.type,i.name,r);const l=new ce(void 0,void 0,"","Root",void 0,e),u=await this.readBlocks(e,l,i.name,t,a,!0,!0,"Tree");l.blocks=S.instance.proxyBlockArray(u,l,e);let c=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);c.setInfo(i.info),c.setCondition(i.if),c.setBlocks([l]),s.push(c);break}case"List":{const t=`${o}${i.name}`,r=new oe(await this.createFieldInstances(e,i.fields,a,t,n,!0)),l=[{typeName:"Entry",displayName:i.elementName,template:r,inputs:[],outputs:[]}];le.instance.addTemplates(e.type,i.name,l);let u=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);const c=await this.readBlocks(e,void 0,i.name,t,a,!0,!0,"List"),d=S.instance.proxyListArray(c,u,e);u.setInfo(i.info),u.setCondition(i.if),u.setBlocks(d),s.push(u);break}case"NodeGraph":{const t=`${o}${i.name}`,r=[];for(const s of i.childTypes){const i=new oe(await this.createFieldInstances(e,s.fields,a,t,n,!0));r.push({typeName:s.typeName,displayName:s.displayName||s.typeName,template:i,inputs:s.inputs||[],outputs:s.outputs||[]})}r.sort((function(e,t){return e.displayName.localeCompare(t.displayName)})),le.instance.addTemplates(e.type,i.name,r);let l=await this.readBlocks(e,void 0,i.name,t,a,!1,!1,"NodeGraph"),u=this.readConnections(e,t,a),c=new ie(i.name,i.displayName,i.type,null,e,this.itemRepo);c.setInfo(i.info),c.setCondition(i.if),c.setBlocks(S.instance.proxyGraphBlockArray(l,e)),c.setConnections(S.instance.proxyConnectionArray(u,e)),s.push(c);break}case"Attribute":{let t;r||(t=e[n]?e[n][i.name]:void 0,void 0===t&&(t=i.defaultValue));let a=new ie(i.name,i.displayName,i.type,t,e,this.itemRepo);a.setInfo(i.info),a.setCondition(i.if),a.setDefaultValue(i.defaultValue),a.setMinValue(i.minValue),a.setMaxValue(i.maxValue),a.setOptions(i.options),a.setDatatype(i.datatype),a.setLanguage(i.language),a.setWidget(i.widget),a.setLength(i.length),s.push(S.instance.proxyItemField(a,e));break}}return s}getFieldSet(e,t){if(Array.isArray(e.fieldSets))for(const a of e.fieldSets)if(a.name===t)return a;return null}async fetchLinkValue(e,t){if(!e)throw new M("fetchLinkValue(): Item cannot be null!");for(const a of e.links)if(a.usage===t)return{id:a.to,linkItem:a.item?await this.itemFetcher(a.item):null,stopRecursion:a.stopRecursion};return{id:null,linkItem:null}}async readBlocks(e,t,a,i,n,r,s,o){if(!e)throw new M("readBlocks(): Item cannot be null!");const l=[];let u=0;for(;;){const c=`${i}[${u}]`;if(!this.existsBlockNamespace(e,n,c))break;{const i=`${c}#id`,u=e.attributes[i],d=`${c}#type`;let p,h,f=e.attributes[d];switch(o){case"NodeGraph":{const t=`${c}#posx`,a=`${c}#posy`;p=e.attributes[t]||0,h=e.attributes[a]||0;break}case"List":r=!1,f="Entry"}const m=le.instance.getTemplate(e.packageType||e.type,a,f);if(m){const i=m.typeName,d=m.displayName,f=new ce(u,t,i,i,d,e),y=await this.createFields(f,e,m.template,c,"NodeGraph"===o,n);if(f.setFields(y),"NodeGraph"===o&&(f.setPosition(p,h),f.setInputs(m.inputs),f.setOutputs(m.outputs)),r){const t=await this.readBlocks(e,f,a,c,n,r,s,o);f.blocks=S.instance.proxyBlockArray(t,f,e)}if(s){const t=await this.readScripts(e,f,c,n);f.scripts=S.instance.proxyScriptArray(t,f,e)}"NodeGraph"===o?l.push(S.instance.proxyGraphBlock(f,e)):l.push(S.instance.proxyBlock(f,e))}else console.error(`Block template not found: ${a}_${f}`)}u++}return l}async readScripts(e,t,a,i){if(!e)throw new M("readScripts(): Item cannot be null!");const n=[];let r=0;for(;;){const s=`${a}#scripts[${r}]`;if(!this.existsScriptNamespace(e,i,s))break;{const a=i[`${s}#id`],r=`${s}#item`,o=`${s}->`,l=o.length;let{linkItem:u}=await this.fetchLinkValue(e,r);const c=new X(a,t,e,u);n.push(c);for(const t in i)if(i.hasOwnProperty(t)&&t.startsWith(o)){const a=i[t],n=t.substring(l),r=new J(c,n,a,e);c.addField(r)}}r++}return n}existsScriptNamespace(e,t,a){if(!e)throw new M("existsScriptNamespace(): Item cannot be null!");return"Script"===t[`${a}#usage`]}readConnections(e,t,a){const i=[];let n=0;for(;;){const r=a[`${t}#connection[${n++}]`];if(!r)break;i.push(new Z(r,e))}return i}existsBlockNamespace(e,t,a){if(!e)throw new M("existsBlockNamespace(): Item cannot be null!");const i=t[`${a}#usage`];if(i)return"Block"===i;for(const e in t)if(t.hasOwnProperty(e)&&e.startsWith(a))return!0;for(const t of e.links)if(t.usage.startsWith(a))return!0;return!1}async createFields(e,t,a,i,n,r,s=!1){let o=a.instantiate(s),l=[];for(const a of o)if(a.name){const s=`${i}->${a.name}`;switch(a.type){case"Link":if(i){let{id:e,linkItem:i,stopRecursion:n}=await this.fetchLinkValue(t,s);a.value=i||(n?e:null)}else a.value=a.defaultValue;break;case"List":{const e=await this.readBlocks(t,void 0,a.name,s,r,!0,!0,"List"),i=S.instance.proxyListArray(e,a,t);a.setBlocks(i);break}case"Attribute":i?(a.value=t.attributes[s],void 0===a.value&&(a.value=a.defaultValue)):a.value=a.defaultValue}n?l.push(S.instance.proxyGraphBlockField(a,e,t)):l.push(S.instance.proxyBlockField(a,e,t))}return l}static refreshFieldDependencies(e){const t=new Map,a=new Map;for(const a of e)t.set(a.name,a);for(const i of e)if(Array.isArray(i.conditionFieldNames))for(const e of i.conditionFieldNames){const n=t.get(e);if(n){const e=a.get(n);e?e.push(i):a.set(n,[i])}}for(const i of e)i.refreshDependantFields(t,a.get(i))}}class ce extends q{id="";parent=void 0;type=void 0;name="";displayName="";fields=[];blocks=[];isSelected=!1;isExpanded=!0;scripts=[];inputs=[];outputs=[];posX=0;posY=0;constructor(e=void 0,t=void 0,a=void 0,i=void 0,n=void 0,r=void 0){super(r),e instanceof G?this.restoreFromSnapshot(e,t):(this.id=e||_.createItemOrBlockID(),this.parent=t,this.type=a,this.name=i||this.type||"",this.displayName=n||this.name)}getId(){return this.id}getPositionInParent(){if(this.parent){let e=0;for(const t of this.parent.blocks){if(t.id===this.id)return e;e++}}return-1}refreshFieldDependencies(){ue.refreshFieldDependencies(this.fields);for(const e of this.fields)e.refreshFieldDependencies();for(const e of this.blocks)e.refreshFieldDependencies()}resetFieldValues(e=!1){for(const e of this.fields)e.resetValue();if(e)for(const t of this.blocks)t.resetFieldValues(e)}makeIdsUnique(e=new Map,t=!1){if(e.has(this.id)||t){const t=_.createItemOrBlockID();e.set(this.id,t),this.id=t}else e.set(this.id,this.id);for(const a of this.fields)a.makeIdsUnique(e,t);for(const a of this.blocks)a.makeIdsUnique(e,t);for(const a of this.scripts)a.makeIdsUnique(e,t);return e}transformNodeIds(e){for(const t of this.fields)t.transformNodeIds(e);for(const t of this.blocks)t.transformNodeIds(e);for(const t of this.scripts)t.transformNodeIds(e)}clone(e,t=!0,a={},i=!1){const n=new ce;i&&(n.id=this.id),n.ownerItem=this.ownerItem,n.parent=this.parent,n.type=this.type,n.name=this.name,n.displayName=this.displayName,n.isSelected=!1,n.isExpanded=!0,n.inputs=this.inputs,n.outputs=this.outputs,n.posX=0,n.posY=0;for(const t of this.fields){let r=t.clone(e,i);void 0!==a[t.name]&&(r.value=a[t.name]),e&&(r=S.instance.proxyBlockField(r,n,e)),n.fields.push(r)}if(e&&(n.scripts=S.instance.proxyScriptArray(n.scripts,n,e)),t)for(const e of this.scripts){const t=e.clone();n.scripts.push(t)}const r=n.blocks;e&&(n.blocks=S.instance.proxyBlockArray(r,n,e));for(const a of this.blocks){let s=a.clone(e,t,{},i);s.parent=n,e&&(s=S.instance.proxyBlock(s,e)),r.push(s)}return n}getDescendantBlocks(e=[]){const t=this.blocks;return e.push(...t),t.forEach((t=>t.getDescendantBlocks(e))),e}setFields(e){this.fields=e}setInputs(e){this.inputs=e}setOutputs(e){this.outputs=e}setPosition(e,t){this.posX=e,this.posY=t}setSelected(e){this.isSelected=e}setExpanded(e){this.isExpanded=e}getRoot(){return this.parent?this.parent.getRoot():this}forEachField(e){if(this.fields)for(const t of this.fields)t.forEachField(e);if(this.blocks)for(const t of this.blocks)t.forEachField(e)}findField(e){for(const t of this.fields)if(t.name===e)return t;return null}findBlock(e){if(this.id===e)return this;for(const t of this.blocks){const a=t.findBlock(e);if(a)return a}return null}removeBlock(e){this.blocks.removeObject(e)}addBlock(e,t){this.blocks.includes(e)||(void 0===t?this.blocks.push(e):this.blocks.splice(t,0,e))}moveBlock(e,t){e.parent.blocks.moveObjectToArray(e,e.parent.blocks,t)}moveToPosition(e){this.parent.moveBlock(this,e)}moveBlockToParent(e,t){this.parent.blocks.moveObjectToArray(this,e.blocks,t),this.parent=e}moveToParent(e,t){if(this.findBlock(e))return void console.error("Cannot move block to a parent that is a child.");const a=this.getRoot();if(!a)return void console.error("Cannot find root block!");const i=a.findBlock(e);i?this.parent!==i?this.moveBlockToParent(i,t):console.warn(`Node is already in parent ${e}`):console.error(`Cannot find the new parent block: ${e}`)}getField(e){for(const t of this.fields)if(t.name===e)return t;return null}hasTag(e){const t=this.getField("Tags");return!(!t||!Array.isArray(t.value))&&t.value.includes(e)}hasOneTag(e){const t=this.getField("Tags");if(t&&Array.isArray(t.value))for(const a of e)if(t.value.includes(a))return!0;return!1}getNameFieldValue(){const e=this.getField("Name");return e?e.value:null}getActiveFieldValue(){const e=this.getField("Active");return!e||e.value}createSnapshot(e=!1){const t=[];for(const a of this.fields)a.createSnapshot&&t.push(a.createSnapshot(e));const a=[];if(!e)for(const t of this.blocks)a.push(t.createSnapshot(e));const i=[];for(const e of this.scripts)i.push(e.createSnapshot());return new G(this.id,"block",{id:this.id,ownerItem:this.ownerItem,type:this.type,name:this.name,displayName:this.displayName,fields:t,blocks:a,isExpanded:this.isExpanded,scripts:i,inputs:this.inputs,outputs:this.outputs,posX:this.posX,posY:this.posY})}restoreFromSnapshot(e,t){this.id=e.data.id,this.parent=t,this.type=e.data.type,this.ownerItem=e.data.ownerItem,this.name=e.data.name,this.displayName=e.data.displayName,this.isSelected=!1,this.isExpanded=e.data.isExpanded,this.inputs=e.data.inputs,this.outputs=e.data.outputs,this.posX=e.data.posX,this.posY=e.data.posY;const a=[];this._rollbackArray(a,e.data.fields,(e=>S.instance.proxyBlockField(new ie(e),this,this.ownerItem))),this.fields=a;const i=[];this._rollbackArray(i,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem))),this.blocks=S.instance.proxyBlockArray(i,this,this.ownerItem);const n=[];this._rollbackArray(n,e.data.scripts,((e,t)=>new X(e,t,this.ownerItem))),this.scripts=S.instance.proxyScriptArray(n,this,this.ownerItem)}rollbackFromSnapshot(e,t=!1){this._rollbackArray(this.fields,e.data.fields,(e=>S.instance.proxyBlockField(new ie(e),this,this.ownerItem))),this._rollbackArray(this.scripts,e.data.scripts,(e=>new X(e,this,this.ownerItem))),t||this._rollbackArray(this.blocks,e.data.blocks,((e,t)=>S.instance.proxyBlock(new ce(e,t),this.ownerItem)))}_getFieldByName(e,t){for(const a of t)if(a.id===e)return a;return null}}
|
|
12
|
-
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function de(e){let t=e.length;for(;--t>=0;)e[t]=0}const pe=256,he=286,fe=30,me=15,ye=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ge=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),be=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ve=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),_e=new Array(576);de(_e);const we=new Array(60);de(we);const Ae=new Array(512);de(Ae);const ke=new Array(256);de(ke);const Se=new Array(29);de(Se);const Ne=new Array(fe);function xe(e,t,a,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}let Te,Me,Ve;function Ce(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}de(Ne);const Ie=e=>e<256?Ae[e]:Ae[256+(e>>>7)],Fe=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Ee=(e,t,a)=>{e.bi_valid>16-a?(e.bi_buf|=t<<e.bi_valid&65535,Fe(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=a-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=a)},De=(e,t,a)=>{Ee(e,a[2*t],a[2*t+1])},Le=(e,t)=>{let a=0;do{a|=1&e,e>>>=1,a<<=1}while(--t>0);return a>>>1},Re=(e,t,a)=>{const i=new Array(16);let n,r,s=0;for(n=1;n<=me;n++)s=s+a[n-1]<<1,i[n]=s;for(r=0;r<=t;r++){let t=e[2*r+1];0!==t&&(e[2*r]=Le(i[t]++,t))}},Pe=e=>{let t;for(t=0;t<he;t++)e.dyn_ltree[2*t]=0;for(t=0;t<fe;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Oe=e=>{e.bi_valid>8?Fe(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Be=(e,t,a,i)=>{const n=2*t,r=2*a;return e[n]<e[r]||e[n]===e[r]&&i[t]<=i[a]},$e=(e,t,a)=>{const i=e.heap[a];let n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&Be(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!Be(t,i,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=i},je=(e,t,a)=>{let i,n,r,s,o=0;if(0!==e.sym_next)do{i=255&e.pending_buf[e.sym_buf+o++],i+=(255&e.pending_buf[e.sym_buf+o++])<<8,n=e.pending_buf[e.sym_buf+o++],0===i?De(e,n,t):(r=ke[n],De(e,r+pe+1,t),s=ye[r],0!==s&&(n-=Se[r],Ee(e,n,s)),i--,r=Ie(i),De(e,r,a),s=ge[r],0!==s&&(i-=Ne[r],Ee(e,i,s)))}while(o<e.sym_next);De(e,256,t)},Ue=(e,t)=>{const a=t.dyn_tree,i=t.stat_desc.static_tree,n=t.stat_desc.has_stree,r=t.stat_desc.elems;let s,o,l,u=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<r;s++)0!==a[2*s]?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):a[2*s+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,a[2*l]=1,e.depth[l]=0,e.opt_len--,n&&(e.static_len-=i[2*l+1]);for(t.max_code=u,s=e.heap_len>>1;s>=1;s--)$e(e,a,s);l=r;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],$e(e,a,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,a[2*l]=a[2*s]+a[2*o],e.depth[l]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,a[2*s+1]=a[2*o+1]=l,e.heap[1]=l++,$e(e,a,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const a=t.dyn_tree,i=t.max_code,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length;let u,c,d,p,h,f,m=0;for(p=0;p<=me;p++)e.bl_count[p]=0;for(a[2*e.heap[e.heap_max]+1]=0,u=e.heap_max+1;u<573;u++)c=e.heap[u],p=a[2*a[2*c+1]+1]+1,p>l&&(p=l,m++),a[2*c+1]=p,c>i||(e.bl_count[p]++,h=0,c>=o&&(h=s[c-o]),f=a[2*c],e.opt_len+=f*(p+h),r&&(e.static_len+=f*(n[2*c+1]+h)));if(0!==m){do{for(p=l-1;0===e.bl_count[p];)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[l]--,m-=2}while(m>0);for(p=l;0!==p;p--)for(c=e.bl_count[p];0!==c;)d=e.heap[--u],d>i||(a[2*d+1]!==p&&(e.opt_len+=(p-a[2*d+1])*a[2*d],a[2*d+1]=p),c--)}})(e,t),Re(a,u,e.bl_count)},ze=(e,t,a)=>{let i,n,r=-1,s=t[1],o=0,l=7,u=4;for(0===s&&(l=138,u=3),t[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=t[2*(i+1)+1],++o<l&&n===s||(o<u?e.bl_tree[2*n]+=o:0!==n?(n!==r&&e.bl_tree[2*n]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,o=0,r=n,0===s?(l=138,u=3):n===s?(l=6,u=3):(l=7,u=4))},We=(e,t,a)=>{let i,n,r=-1,s=t[1],o=0,l=7,u=4;for(0===s&&(l=138,u=3),i=0;i<=a;i++)if(n=s,s=t[2*(i+1)+1],!(++o<l&&n===s)){if(o<u)do{De(e,n,e.bl_tree)}while(0!=--o);else 0!==n?(n!==r&&(De(e,n,e.bl_tree),o--),De(e,16,e.bl_tree),Ee(e,o-3,2)):o<=10?(De(e,17,e.bl_tree),Ee(e,o-3,3)):(De(e,18,e.bl_tree),Ee(e,o-11,7));o=0,r=n,0===s?(l=138,u=3):n===s?(l=6,u=3):(l=7,u=4)}};let Ye=!1;const He=(e,t,a,i)=>{Ee(e,0+(i?1:0),3),Oe(e),Fe(e,a),Fe(e,~a),a&&e.pending_buf.set(e.window.subarray(t,t+a),e.pending),e.pending+=a};var Ge=e=>{Ye||((()=>{let e,t,a,i,n;const r=new Array(16);for(a=0,i=0;i<28;i++)for(Se[i]=a,e=0;e<1<<ye[i];e++)ke[a++]=i;for(ke[a-1]=i,n=0,i=0;i<16;i++)for(Ne[i]=n,e=0;e<1<<ge[i];e++)Ae[n++]=i;for(n>>=7;i<fe;i++)for(Ne[i]=n<<7,e=0;e<1<<ge[i]-7;e++)Ae[256+n++]=i;for(t=0;t<=me;t++)r[t]=0;for(e=0;e<=143;)_e[2*e+1]=8,e++,r[8]++;for(;e<=255;)_e[2*e+1]=9,e++,r[9]++;for(;e<=279;)_e[2*e+1]=7,e++,r[7]++;for(;e<=287;)_e[2*e+1]=8,e++,r[8]++;for(Re(_e,287,r),e=0;e<fe;e++)we[2*e+1]=5,we[2*e]=Le(e,5);Te=new xe(_e,ye,257,he,me),Me=new xe(we,ge,0,fe,me),Ve=new xe(new Array(0),be,0,19,7)})(),Ye=!0),e.l_desc=new Ce(e.dyn_ltree,Te),e.d_desc=new Ce(e.dyn_dtree,Me),e.bl_desc=new Ce(e.bl_tree,Ve),e.bi_buf=0,e.bi_valid=0,Pe(e)},qe=(e,t,a,i)=>{let n,r,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,a=4093624447;for(t=0;t<=31;t++,a>>>=1)if(1&a&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<pe;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Ue(e,e.l_desc),Ue(e,e.d_desc),s=(e=>{let t;for(ze(e,e.dyn_ltree,e.l_desc.max_code),ze(e,e.dyn_dtree,e.d_desc.max_code),Ue(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*ve[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),n=e.opt_len+3+7>>>3,r=e.static_len+3+7>>>3,r<=n&&(n=r)):n=r=a+5,a+4<=n&&-1!==t?He(e,t,a,i):4===e.strategy||r===n?(Ee(e,2+(i?1:0),3),je(e,_e,we)):(Ee(e,4+(i?1:0),3),((e,t,a,i)=>{let n;for(Ee(e,t-257,5),Ee(e,a-1,5),Ee(e,i-4,4),n=0;n<i;n++)Ee(e,e.bl_tree[2*ve[n]+1],3);We(e,e.dyn_ltree,t-1),We(e,e.dyn_dtree,a-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),je(e,e.dyn_ltree,e.dyn_dtree)),Pe(e),i&&Oe(e)},Ze={_tr_init:Ge,_tr_stored_block:He,_tr_flush_block:qe,_tr_tally:(e,t,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,0===t?e.dyn_ltree[2*a]++:(e.matches++,t--,e.dyn_ltree[2*(ke[a]+pe+1)]++,e.dyn_dtree[2*Ie(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{Ee(e,2,3),De(e,256,_e),(e=>{16===e.bi_valid?(Fe(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var Je=(e,t,a,i)=>{let n=65535&e,r=e>>>16&65535,s=0;for(;0!==a;){s=a>2e3?2e3:a,a-=s;do{n=n+t[i++]|0,r=r+n|0}while(--s);n%=65521,r%=65521}return n|r<<16};const Ke=new Uint32Array((()=>{let e,t=[];for(var a=0;a<256;a++){e=a;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[a]=e}return t})());var Xe=(e,t,a,i)=>{const n=Ke,r=i+a;e^=-1;for(let a=i;a<r;a++)e=e>>>8^n[255&(e^t[a])];return~e},Qe={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},et={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:tt,_tr_stored_block:at,_tr_flush_block:it,_tr_tally:nt,_tr_align:rt}=Ze,{Z_NO_FLUSH:st,Z_PARTIAL_FLUSH:ot,Z_FULL_FLUSH:lt,Z_FINISH:ut,Z_BLOCK:ct,Z_OK:dt,Z_STREAM_END:pt,Z_STREAM_ERROR:ht,Z_DATA_ERROR:ft,Z_BUF_ERROR:mt,Z_DEFAULT_COMPRESSION:yt,Z_FILTERED:gt,Z_HUFFMAN_ONLY:bt,Z_RLE:vt,Z_FIXED:_t,Z_DEFAULT_STRATEGY:wt,Z_UNKNOWN:At,Z_DEFLATED:kt}=et,St=258,Nt=262,xt=42,Tt=113,Mt=666,Vt=(e,t)=>(e.msg=Qe[t],t),Ct=e=>2*e-(e>4?9:0),It=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Ft=e=>{let t,a,i,n=e.w_size;t=e.hash_size,i=t;do{a=e.head[--i],e.head[i]=a>=n?a-n:0}while(--t);t=n,i=t;do{a=e.prev[--i],e.prev[i]=a>=n?a-n:0}while(--t)};let Et=(e,t,a)=>(t<<e.hash_shift^a)&e.hash_mask;const Dt=e=>{const t=e.state;let a=t.pending;a>e.avail_out&&(a=e.avail_out),0!==a&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+a),e.next_out),e.next_out+=a,t.pending_out+=a,e.total_out+=a,e.avail_out-=a,t.pending-=a,0===t.pending&&(t.pending_out=0))},Lt=(e,t)=>{it(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Dt(e.strm)},Rt=(e,t)=>{e.pending_buf[e.pending++]=t},Pt=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ot=(e,t,a,i)=>{let n=e.avail_in;return n>i&&(n=i),0===n?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),a),1===e.state.wrap?e.adler=Je(e.adler,t,n,a):2===e.state.wrap&&(e.adler=Xe(e.adler,t,n,a)),e.next_in+=n,e.total_in+=n,n)},Bt=(e,t)=>{let a,i,n=e.max_chain_length,r=e.strstart,s=e.prev_length,o=e.nice_match;const l=e.strstart>e.w_size-Nt?e.strstart-(e.w_size-Nt):0,u=e.window,c=e.w_mask,d=e.prev,p=e.strstart+St;let h=u[r+s-1],f=u[r+s];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do{if(a=t,u[a+s]===f&&u[a+s-1]===h&&u[a]===u[r]&&u[++a]===u[r+1]){r+=2,a++;do{}while(u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&r<p);if(i=St-(p-r),r=p-St,i>s){if(e.match_start=t,s=i,i>=o)break;h=u[r+s-1],f=u[r+s]}}}while((t=d[t&c])>l&&0!=--n);return s<=e.lookahead?s:e.lookahead},$t=e=>{const t=e.w_size;let a,i,n;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Nt)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Ft(e),i+=t),0===e.strm.avail_in)break;if(a=Ot(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=a,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Et(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Et(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<Nt&&0!==e.strm.avail_in)},jt=(e,t)=>{let a,i,n,r=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,s=0,o=e.strm.avail_in;do{if(a=65535,n=e.bi_valid+42>>3,e.strm.avail_out<n)break;if(n=e.strm.avail_out-n,i=e.strstart-e.block_start,a>i+e.strm.avail_in&&(a=i+e.strm.avail_in),a>n&&(a=n),a<r&&(0===a&&t!==ut||t===st||a!==i+e.strm.avail_in))break;s=t===ut&&a===i+e.strm.avail_in?1:0,at(e,0,0,s),e.pending_buf[e.pending-4]=a,e.pending_buf[e.pending-3]=a>>8,e.pending_buf[e.pending-2]=~a,e.pending_buf[e.pending-1]=~a>>8,Dt(e.strm),i&&(i>a&&(i=a),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,a-=i),a&&(Ot(e.strm,e.strm.output,e.strm.next_out,a),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a)}while(0===s);return o-=e.strm.avail_in,o&&(o>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=o&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?4:t!==st&&t!==ut&&0===e.strm.avail_in&&e.strstart===e.block_start?2:(n=e.window_size-e.strstart,e.strm.avail_in>n&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,n+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),n>e.strm.avail_in&&(n=e.strm.avail_in),n&&(Ot(e.strm,e.window,e.strstart,n),e.strstart+=n,e.insert+=n>e.w_size-e.insert?e.w_size-e.insert:n),e.high_water<e.strstart&&(e.high_water=e.strstart),n=e.bi_valid+42>>3,n=e.pending_buf_size-n>65535?65535:e.pending_buf_size-n,r=n>e.w_size?e.w_size:n,i=e.strstart-e.block_start,(i>=r||(i||t===ut)&&t!==st&&0===e.strm.avail_in&&i<=n)&&(a=i>n?n:i,s=t===ut&&0===e.strm.avail_in&&a===i?1:0,at(e,e.block_start,a,s),e.block_start+=a,Dt(e.strm)),s?3:1)},Ut=(e,t)=>{let a,i;for(;;){if(e.lookahead<Nt){if($t(e),e.lookahead<Nt&&t===st)return 1;if(0===e.lookahead)break}if(a=0,e.lookahead>=3&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==a&&e.strstart-a<=e.w_size-Nt&&(e.match_length=Bt(e,a)),e.match_length>=3)if(i=nt(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Et(e,e.ins_h,e.window[e.strstart+1]);else i=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2},zt=(e,t)=>{let a,i,n;for(;;){if(e.lookahead<Nt){if($t(e),e.lookahead<Nt&&t===st)return 1;if(0===e.lookahead)break}if(a=0,e.lookahead>=3&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==a&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-Nt&&(e.match_length=Bt(e,a),e.match_length<=5&&(e.strategy===gt||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-3,i=nt(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=n&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,i&&(Lt(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(i=nt(e,0,e.window[e.strstart-1]),i&&Lt(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=nt(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2};function Wt(e,t,a,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=a,this.max_chain=i,this.func=n}const Yt=[new Wt(0,0,0,0,jt),new Wt(4,4,8,4,Ut),new Wt(4,5,16,8,Ut),new Wt(4,6,32,32,Ut),new Wt(4,4,16,16,zt),new Wt(8,16,32,32,zt),new Wt(8,16,128,128,zt),new Wt(8,32,128,256,zt),new Wt(32,128,258,1024,zt),new Wt(32,258,258,4096,zt)];function Ht(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=kt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),It(this.dyn_ltree),It(this.dyn_dtree),It(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),It(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),It(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Gt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==xt&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==Tt&&t.status!==Mt?1:0},qt=e=>{if(Gt(e))return Vt(e,ht);e.total_in=e.total_out=0,e.data_type=At;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?xt:Tt,e.adler=2===t.wrap?0:1,t.last_flush=-2,tt(t),dt},Zt=e=>{const t=qt(e);var a;return t===dt&&((a=e.state).window_size=2*a.w_size,It(a.head),a.max_lazy_match=Yt[a.level].max_lazy,a.good_match=Yt[a.level].good_length,a.nice_match=Yt[a.level].nice_length,a.max_chain_length=Yt[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),t},Jt=(e,t,a,i,n,r)=>{if(!e)return ht;let s=1;if(t===yt&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),n<1||n>9||a!==kt||i<8||i>15||t<0||t>9||r<0||r>_t||8===i&&1!==s)return Vt(e,ht);8===i&&(i=9);const o=new Ht;return e.state=o,o.strm=e,o.status=xt,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=t,o.strategy=r,o.method=a,Zt(e)};var Kt=(e,t)=>{if(Gt(e)||t>ct||t<0)return e?Vt(e,ht):ht;const a=e.state;if(!e.output||0!==e.avail_in&&!e.input||a.status===Mt&&t!==ut)return Vt(e,0===e.avail_out?mt:ht);const i=a.last_flush;if(a.last_flush=t,0!==a.pending){if(Dt(e),0===e.avail_out)return a.last_flush=-1,dt}else if(0===e.avail_in&&Ct(t)<=Ct(i)&&t!==ut)return Vt(e,mt);if(a.status===Mt&&0!==e.avail_in)return Vt(e,mt);if(a.status===xt&&0===a.wrap&&(a.status=Tt),a.status===xt){let t=kt+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=bt||a.level<2?0:a.level<6?1:6===a.level?2:3,t|=i<<6,0!==a.strstart&&(t|=32),t+=31-t%31,Pt(a,t),0!==a.strstart&&(Pt(a,e.adler>>>16),Pt(a,65535&e.adler)),e.adler=1,a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt}if(57===a.status)if(e.adler=0,Rt(a,31),Rt(a,139),Rt(a,8),a.gzhead)Rt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Rt(a,255&a.gzhead.time),Rt(a,a.gzhead.time>>8&255),Rt(a,a.gzhead.time>>16&255),Rt(a,a.gzhead.time>>24&255),Rt(a,9===a.level?2:a.strategy>=bt||a.level<2?4:0),Rt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Rt(a,255&a.gzhead.extra.length),Rt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=Xe(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,9===a.level?2:a.strategy>=bt||a.level<2?4:0),Rt(a,3),a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt;if(69===a.status){if(a.gzhead.extra){let t=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let n=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+n),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>t&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex+=n,Dt(e),0!==a.pending)return a.last_flush=-1,dt;t=0,i-=n}let n=new Uint8Array(a.gzhead.extra);a.pending_buf.set(n.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>t&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let t,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),Dt(e),0!==a.pending)return a.last_flush=-1,dt;i=0}t=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,Rt(a,t)}while(0!==t);a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let t,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),Dt(e),0!==a.pending)return a.last_flush=-1,dt;i=0}t=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,Rt(a,t)}while(0!==t);a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(Dt(e),0!==a.pending))return a.last_flush=-1,dt;Rt(a,255&e.adler),Rt(a,e.adler>>8&255),e.adler=0}if(a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt}if(0!==e.avail_in||0!==a.lookahead||t!==st&&a.status!==Mt){let i=0===a.level?jt(a,t):a.strategy===bt?((e,t)=>{let a;for(;;){if(0===e.lookahead&&($t(e),0===e.lookahead)){if(t===st)return 1;break}if(e.match_length=0,a=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,a&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2})(a,t):a.strategy===vt?((e,t)=>{let a,i,n,r;const s=e.window;for(;;){if(e.lookahead<=St){if($t(e),e.lookahead<=St&&t===st)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=e.strstart-1,i=s[n],i===s[++n]&&i===s[++n]&&i===s[++n])){r=e.strstart+St;do{}while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&n<r);e.match_length=St-(r-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(a=nt(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(a=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),a&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2})(a,t):Yt[a.level].func(a,t);if(3!==i&&4!==i||(a.status=Mt),1===i||3===i)return 0===e.avail_out&&(a.last_flush=-1),dt;if(2===i&&(t===ot?rt(a):t!==ct&&(at(a,0,0,!1),t===lt&&(It(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),Dt(e),0===e.avail_out))return a.last_flush=-1,dt}return t!==ut?dt:a.wrap<=0?pt:(2===a.wrap?(Rt(a,255&e.adler),Rt(a,e.adler>>8&255),Rt(a,e.adler>>16&255),Rt(a,e.adler>>24&255),Rt(a,255&e.total_in),Rt(a,e.total_in>>8&255),Rt(a,e.total_in>>16&255),Rt(a,e.total_in>>24&255)):(Pt(a,e.adler>>>16),Pt(a,65535&e.adler)),Dt(e),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?dt:pt)},Xt={deflateInit:(e,t)=>Jt(e,t,kt,15,8,wt),deflateInit2:Jt,deflateReset:Zt,deflateResetKeep:qt,deflateSetHeader:(e,t)=>Gt(e)||2!==e.state.wrap?ht:(e.state.gzhead=t,dt),deflate:Kt,deflateEnd:e=>{if(Gt(e))return ht;const t=e.state.status;return e.state=null,t===Tt?Vt(e,ft):dt},deflateSetDictionary:(e,t)=>{let a=t.length;if(Gt(e))return ht;const i=e.state,n=i.wrap;if(2===n||1===n&&i.status!==xt||i.lookahead)return ht;if(1===n&&(e.adler=Je(e.adler,t,a,0)),i.wrap=0,a>=i.w_size){0===n&&(It(i.head),i.strstart=0,i.block_start=0,i.insert=0);let e=new Uint8Array(i.w_size);e.set(t.subarray(a-i.w_size,a),0),t=e,a=i.w_size}const r=e.avail_in,s=e.next_in,o=e.input;for(e.avail_in=a,e.next_in=0,e.input=t,$t(i);i.lookahead>=3;){let e=i.strstart,t=i.lookahead-2;do{i.ins_h=Et(i,i.ins_h,i.window[e+3-1]),i.prev[e&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=e,e++}while(--t);i.strstart=e,i.lookahead=2,$t(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,e.next_in=s,e.input=o,e.avail_in=r,i.wrap=n,dt},deflateInfo:"pako deflate (from Nodeca project)"};const Qt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var ea=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const a=t.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const t in a)Qt(a,t)&&(e[t]=a[t])}}return e},ta=e=>{let t=0;for(let a=0,i=e.length;a<i;a++)t+=e[a].length;const a=new Uint8Array(t);for(let t=0,i=0,n=e.length;t<n;t++){let n=e[t];a.set(n,i),i+=n.length}return a};let aa=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){aa=!1}const ia=new Uint8Array(256);for(let e=0;e<256;e++)ia[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ia[254]=ia[254]=1;var na=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,a,i,n,r,s=e.length,o=0;for(n=0;n<s;n++)a=e.charCodeAt(n),55296==(64512&a)&&n+1<s&&(i=e.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),o+=a<128?1:a<2048?2:a<65536?3:4;for(t=new Uint8Array(o),r=0,n=0;r<o;n++)a=e.charCodeAt(n),55296==(64512&a)&&n+1<s&&(i=e.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),a<128?t[r++]=a:a<2048?(t[r++]=192|a>>>6,t[r++]=128|63&a):a<65536?(t[r++]=224|a>>>12,t[r++]=128|a>>>6&63,t[r++]=128|63&a):(t[r++]=240|a>>>18,t[r++]=128|a>>>12&63,t[r++]=128|a>>>6&63,t[r++]=128|63&a);return t},ra=(e,t)=>{const a=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let i,n;const r=new Array(2*a);for(n=0,i=0;i<a;){let t=e[i++];if(t<128){r[n++]=t;continue}let s=ia[t];if(s>4)r[n++]=65533,i+=s-1;else{for(t&=2===s?31:3===s?15:7;s>1&&i<a;)t=t<<6|63&e[i++],s--;s>1?r[n++]=65533:t<65536?r[n++]=t:(t-=65536,r[n++]=55296|t>>10&1023,r[n++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&aa)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let a="";for(let i=0;i<t;i++)a+=String.fromCharCode(e[i]);return a})(r,n)},sa=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let a=t-1;for(;a>=0&&128==(192&e[a]);)a--;return a<0||0===a?t:a+ia[e[a]]>t?a:t};var oa=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const la=Object.prototype.toString,{Z_NO_FLUSH:ua,Z_SYNC_FLUSH:ca,Z_FULL_FLUSH:da,Z_FINISH:pa,Z_OK:ha,Z_STREAM_END:fa,Z_DEFAULT_COMPRESSION:ma,Z_DEFAULT_STRATEGY:ya,Z_DEFLATED:ga}=et;function ba(e){this.options=ea({level:ma,method:ga,chunkSize:16384,windowBits:15,memLevel:8,strategy:ya},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new oa,this.strm.avail_out=0;let a=Xt.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(a!==ha)throw new Error(Qe[a]);if(t.header&&Xt.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?na(t.dictionary):"[object ArrayBuffer]"===la.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,a=Xt.deflateSetDictionary(this.strm,e),a!==ha)throw new Error(Qe[a]);this._dict_set=!0}}function va(e,t){const a=new ba(t);if(a.push(e,!0),a.err)throw a.msg||Qe[a.err];return a.result}ba.prototype.push=function(e,t){const a=this.strm,i=this.options.chunkSize;let n,r;if(this.ended)return!1;for(r=t===~~t?t:!0===t?pa:ua,"string"==typeof e?a.input=na(e):"[object ArrayBuffer]"===la.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(r===ca||r===da)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Xt.deflate(a,r),n===fa)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Xt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ha;if(0!==a.avail_out){if(r>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},ba.prototype.onData=function(e){this.chunks.push(e)},ba.prototype.onEnd=function(e){e===ha&&(this.result=ta(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var _a=function(e,t){return(t=t||{}).raw=!0,va(e,t)},wa=function(e,t){return(t=t||{}).gzip=!0,va(e,t)},Aa={Deflate:ba,deflate:va,deflateRaw:_a,gzip:wa};const ka=16209;var Sa=function(e,t){let a,i,n,r,s,o,l,u,c,d,p,h,f,m,y,g,b,v,_,w,A,k,S,N;const x=e.state;a=e.next_in,S=e.input,i=a+(e.avail_in-5),n=e.next_out,N=e.output,r=n-(t-e.avail_out),s=n+(e.avail_out-257),o=x.dmax,l=x.wsize,u=x.whave,c=x.wnext,d=x.window,p=x.hold,h=x.bits,f=x.lencode,m=x.distcode,y=(1<<x.lenbits)-1,g=(1<<x.distbits)-1;e:do{h<15&&(p+=S[a++]<<h,h+=8,p+=S[a++]<<h,h+=8),b=f[p&y];t:for(;;){if(v=b>>>24,p>>>=v,h-=v,v=b>>>16&255,0===v)N[n++]=65535&b;else{if(!(16&v)){if(64&v){if(32&v){x.mode=16191;break e}e.msg="invalid literal/length code",x.mode=ka;break e}b=f[(65535&b)+(p&(1<<v)-1)];continue t}for(_=65535&b,v&=15,v&&(h<v&&(p+=S[a++]<<h,h+=8),_+=p&(1<<v)-1,p>>>=v,h-=v),h<15&&(p+=S[a++]<<h,h+=8,p+=S[a++]<<h,h+=8),b=m[p&g];;){if(v=b>>>24,p>>>=v,h-=v,v=b>>>16&255,16&v){if(w=65535&b,v&=15,h<v&&(p+=S[a++]<<h,h+=8,h<v&&(p+=S[a++]<<h,h+=8)),w+=p&(1<<v)-1,w>o){e.msg="invalid distance too far back",x.mode=ka;break e}if(p>>>=v,h-=v,v=n-r,w>v){if(v=w-v,v>u&&x.sane){e.msg="invalid distance too far back",x.mode=ka;break e}if(A=0,k=d,0===c){if(A+=l-v,v<_){_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}}else if(c<v){if(A+=l+c-v,v-=c,v<_){_-=v;do{N[n++]=d[A++]}while(--v);if(A=0,c<_){v=c,_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}}}else if(A+=c-v,v<_){_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}for(;_>2;)N[n++]=k[A++],N[n++]=k[A++],N[n++]=k[A++],_-=3;_&&(N[n++]=k[A++],_>1&&(N[n++]=k[A++]))}else{A=n-w;do{N[n++]=N[A++],N[n++]=N[A++],N[n++]=N[A++],_-=3}while(_>2);_&&(N[n++]=N[A++],_>1&&(N[n++]=N[A++]))}break}if(64&v){e.msg="invalid distance code",x.mode=ka;break e}b=m[(65535&b)+(p&(1<<v)-1)]}}break}}while(a<i&&n<s);_=h>>3,a-=_,h-=_<<3,p&=(1<<h)-1,e.next_in=a,e.next_out=n,e.avail_in=a<i?i-a+5:5-(a-i),e.avail_out=n<s?s-n+257:257-(n-s),x.hold=p,x.bits=h};const Na=15,xa=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ta=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Ma=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Va=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Ca=(e,t,a,i,n,r,s,o)=>{const l=o.bits;let u,c,d,p,h,f,m=0,y=0,g=0,b=0,v=0,_=0,w=0,A=0,k=0,S=0,N=null;const x=new Uint16Array(16),T=new Uint16Array(16);let M,V,C,I=null;for(m=0;m<=Na;m++)x[m]=0;for(y=0;y<i;y++)x[t[a+y]]++;for(v=l,b=Na;b>=1&&0===x[b];b--);if(v>b&&(v=b),0===b)return n[r++]=20971520,n[r++]=20971520,o.bits=1,0;for(g=1;g<b&&0===x[g];g++);for(v<g&&(v=g),A=1,m=1;m<=Na;m++)if(A<<=1,A-=x[m],A<0)return-1;if(A>0&&(0===e||1!==b))return-1;for(T[1]=0,m=1;m<Na;m++)T[m+1]=T[m]+x[m];for(y=0;y<i;y++)0!==t[a+y]&&(s[T[t[a+y]]++]=y);if(0===e?(N=I=s,f=20):1===e?(N=xa,I=Ta,f=257):(N=Ma,I=Va,f=0),S=0,y=0,m=g,h=r,_=v,w=0,d=-1,k=1<<v,p=k-1,1===e&&k>852||2===e&&k>592)return 1;for(;;){M=m-w,s[y]+1<f?(V=0,C=s[y]):s[y]>=f?(V=I[s[y]-f],C=N[s[y]-f]):(V=96,C=0),u=1<<m-w,c=1<<_,g=c;do{c-=u,n[h+(S>>w)+c]=M<<24|V<<16|C}while(0!==c);for(u=1<<m-1;S&u;)u>>=1;if(0!==u?(S&=u-1,S+=u):S=0,y++,0==--x[m]){if(m===b)break;m=t[a+s[y]]}if(m>v&&(S&p)!==d){for(0===w&&(w=v),h+=g,_=m-w,A=1<<_;_+w<b&&(A-=x[_+w],!(A<=0));)_++,A<<=1;if(k+=1<<_,1===e&&k>852||2===e&&k>592)return 1;d=S&p,n[d]=v<<24|_<<16|h-r}}return 0!==S&&(n[h+S]=m-w<<24|64<<16),o.bits=v,0};const{Z_FINISH:Ia,Z_BLOCK:Fa,Z_TREES:Ea,Z_OK:Da,Z_STREAM_END:La,Z_NEED_DICT:Ra,Z_STREAM_ERROR:Pa,Z_DATA_ERROR:Oa,Z_MEM_ERROR:Ba,Z_BUF_ERROR:$a,Z_DEFLATED:ja}=et,Ua=16180,za=16190,Wa=16191,Ya=16192,Ha=16194,Ga=16199,qa=16200,Za=16206,Ja=16209,Ka=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Xa(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Qa=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Ua||t.mode>16211?1:0},ei=e=>{if(Qa(e))return Pa;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Ua,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,Da},ti=e=>{if(Qa(e))return Pa;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ei(e)},ai=(e,t)=>{let a;if(Qa(e))return Pa;const i=e.state;return t<0?(a=0,t=-t):(a=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Pa:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=a,i.wbits=t,ti(e))},ii=(e,t)=>{if(!e)return Pa;const a=new Xa;e.state=a,a.strm=e,a.window=null,a.mode=Ua;const i=ai(e,t);return i!==Da&&(e.state=null),i};let ni,ri,si=!0;const oi=e=>{if(si){ni=new Int32Array(512),ri=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Ca(1,e.lens,0,288,ni,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Ca(2,e.lens,0,32,ri,0,e.work,{bits:5}),si=!1}e.lencode=ni,e.lenbits=9,e.distcode=ri,e.distbits=5},li=(e,t,a,i)=>{let n;const r=e.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(t.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),r.window.set(t.subarray(a-i,a-i+n),r.wnext),(i-=n)?(r.window.set(t.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=n))),0};var ui=(e,t)=>{let a,i,n,r,s,o,l,u,c,d,p,h,f,m,y,g,b,v,_,w,A,k,S=0;const N=new Uint8Array(4);let x,T;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Qa(e)||!e.output||!e.input&&0!==e.avail_in)return Pa;a=e.state,a.mode===Wa&&(a.mode=Ya),s=e.next_out,n=e.output,l=e.avail_out,r=e.next_in,i=e.input,o=e.avail_in,u=a.hold,c=a.bits,d=o,p=l,k=Da;e:for(;;)switch(a.mode){case Ua:if(0===a.wrap){a.mode=Ya;break}for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(2&a.wrap&&35615===u){0===a.wbits&&(a.wbits=15),a.check=0,N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0),u=0,c=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",a.mode=Ja;break}if((15&u)!==ja){e.msg="unknown compression method",a.mode=Ja;break}if(u>>>=4,c-=4,A=8+(15&u),0===a.wbits&&(a.wbits=A),A>15||A>a.wbits){e.msg="invalid window size",a.mode=Ja;break}a.dmax=1<<a.wbits,a.flags=0,e.adler=a.check=1,a.mode=512&u?16189:Wa,u=0,c=0;break;case 16181:for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(a.flags=u,(255&a.flags)!==ja){e.msg="unknown compression method",a.mode=Ja;break}if(57344&a.flags){e.msg="unknown header flags set",a.mode=Ja;break}a.head&&(a.head.text=u>>8&1),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0,a.mode=16182;case 16182:for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.head&&(a.head.time=u),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,N[2]=u>>>16&255,N[3]=u>>>24&255,a.check=Xe(a.check,N,4,0)),u=0,c=0,a.mode=16183;case 16183:for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.head&&(a.head.xflags=255&u,a.head.os=u>>8),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0,a.mode=16184;case 16184:if(1024&a.flags){for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.length=u,a.head&&(a.head.extra_len=u),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(h=a.length,h>o&&(h=o),h&&(a.head&&(A=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+h),A)),512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,a.length-=h),a.length))break e;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break e;h=0;do{A=i[r+h++],a.head&&A&&a.length<65536&&(a.head.name+=String.fromCharCode(A))}while(A&&h<o);if(512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,A)break e}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break e;h=0;do{A=i[r+h++],a.head&&A&&a.length<65536&&(a.head.comment+=String.fromCharCode(A))}while(A&&h<o);if(512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,A)break e}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(4&a.wrap&&u!==(65535&a.check)){e.msg="header crc mismatch",a.mode=Ja;break}u=0,c=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),e.adler=a.check=0,a.mode=Wa;break;case 16189:for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}e.adler=a.check=Ka(u),u=0,c=0,a.mode=za;case za:if(0===a.havedict)return e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,Ra;e.adler=a.check=1,a.mode=Wa;case Wa:if(t===Fa||t===Ea)break e;case Ya:if(a.last){u>>>=7&c,c-=7&c,a.mode=Za;break}for(;c<3;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}switch(a.last=1&u,u>>>=1,c-=1,3&u){case 0:a.mode=16193;break;case 1:if(oi(a),a.mode=Ga,t===Ea){u>>>=2,c-=2;break e}break;case 2:a.mode=16196;break;case 3:e.msg="invalid block type",a.mode=Ja}u>>>=2,c-=2;break;case 16193:for(u>>>=7&c,c-=7&c;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if((65535&u)!=(u>>>16^65535)){e.msg="invalid stored block lengths",a.mode=Ja;break}if(a.length=65535&u,u=0,c=0,a.mode=Ha,t===Ea)break e;case Ha:a.mode=16195;case 16195:if(h=a.length,h){if(h>o&&(h=o),h>l&&(h=l),0===h)break e;n.set(i.subarray(r,r+h),s),o-=h,r+=h,l-=h,s+=h,a.length-=h;break}a.mode=Wa;break;case 16196:for(;c<14;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(a.nlen=257+(31&u),u>>>=5,c-=5,a.ndist=1+(31&u),u>>>=5,c-=5,a.ncode=4+(15&u),u>>>=4,c-=4,a.nlen>286||a.ndist>30){e.msg="too many length or distance symbols",a.mode=Ja;break}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;c<3;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.lens[M[a.have++]]=7&u,u>>>=3,c-=3}for(;a.have<19;)a.lens[M[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,x={bits:a.lenbits},k=Ca(0,a.lens,0,19,a.lencode,0,a.work,x),a.lenbits=x.bits,k){e.msg="invalid code lengths set",a.mode=Ja;break}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;S=a.lencode[u&(1<<a.lenbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(b<16)u>>>=y,c-=y,a.lens[a.have++]=b;else{if(16===b){for(T=y+2;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(u>>>=y,c-=y,0===a.have){e.msg="invalid bit length repeat",a.mode=Ja;break}A=a.lens[a.have-1],h=3+(3&u),u>>>=2,c-=2}else if(17===b){for(T=y+3;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=y,c-=y,A=0,h=3+(7&u),u>>>=3,c-=3}else{for(T=y+7;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=y,c-=y,A=0,h=11+(127&u),u>>>=7,c-=7}if(a.have+h>a.nlen+a.ndist){e.msg="invalid bit length repeat",a.mode=Ja;break}for(;h--;)a.lens[a.have++]=A}}if(a.mode===Ja)break;if(0===a.lens[256]){e.msg="invalid code -- missing end-of-block",a.mode=Ja;break}if(a.lenbits=9,x={bits:a.lenbits},k=Ca(1,a.lens,0,a.nlen,a.lencode,0,a.work,x),a.lenbits=x.bits,k){e.msg="invalid literal/lengths set",a.mode=Ja;break}if(a.distbits=6,a.distcode=a.distdyn,x={bits:a.distbits},k=Ca(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,x),a.distbits=x.bits,k){e.msg="invalid distances set",a.mode=Ja;break}if(a.mode=Ga,t===Ea)break e;case Ga:a.mode=qa;case qa:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,Sa(e,p),s=e.next_out,n=e.output,l=e.avail_out,r=e.next_in,i=e.input,o=e.avail_in,u=a.hold,c=a.bits,a.mode===Wa&&(a.back=-1);break}for(a.back=0;S=a.lencode[u&(1<<a.lenbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(g&&!(240&g)){for(v=y,_=g,w=b;S=a.lencode[w+((u&(1<<v+_)-1)>>v)],y=S>>>24,g=S>>>16&255,b=65535&S,!(v+y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=v,c-=v,a.back+=v}if(u>>>=y,c-=y,a.back+=y,a.length=b,0===g){a.mode=16205;break}if(32&g){a.back=-1,a.mode=Wa;break}if(64&g){e.msg="invalid literal/length code",a.mode=Ja;break}a.extra=15&g,a.mode=16201;case 16201:if(a.extra){for(T=a.extra;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.length+=u&(1<<a.extra)-1,u>>>=a.extra,c-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;S=a.distcode[u&(1<<a.distbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(!(240&g)){for(v=y,_=g,w=b;S=a.distcode[w+((u&(1<<v+_)-1)>>v)],y=S>>>24,g=S>>>16&255,b=65535&S,!(v+y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=v,c-=v,a.back+=v}if(u>>>=y,c-=y,a.back+=y,64&g){e.msg="invalid distance code",a.mode=Ja;break}a.offset=b,a.extra=15&g,a.mode=16203;case 16203:if(a.extra){for(T=a.extra;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.offset+=u&(1<<a.extra)-1,u>>>=a.extra,c-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){e.msg="invalid distance too far back",a.mode=Ja;break}a.mode=16204;case 16204:if(0===l)break e;if(h=p-l,a.offset>h){if(h=a.offset-h,h>a.whave&&a.sane){e.msg="invalid distance too far back",a.mode=Ja;break}h>a.wnext?(h-=a.wnext,f=a.wsize-h):f=a.wnext-h,h>a.length&&(h=a.length),m=a.window}else m=n,f=s-a.offset,h=a.length;h>l&&(h=l),l-=h,a.length-=h;do{n[s++]=m[f++]}while(--h);0===a.length&&(a.mode=qa);break;case 16205:if(0===l)break e;n[s++]=a.length,l--,a.mode=qa;break;case Za:if(a.wrap){for(;c<32;){if(0===o)break e;o--,u|=i[r++]<<c,c+=8}if(p-=l,e.total_out+=p,a.total+=p,4&a.wrap&&p&&(e.adler=a.check=a.flags?Xe(a.check,n,p,s-p):Je(a.check,n,p,s-p)),p=l,4&a.wrap&&(a.flags?u:Ka(u))!==a.check){e.msg="incorrect data check",a.mode=Ja;break}u=0,c=0}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(4&a.wrap&&u!==(4294967295&a.total)){e.msg="incorrect length check",a.mode=Ja;break}u=0,c=0}a.mode=16208;case 16208:k=La;break e;case Ja:k=Oa;break e;case 16210:return Ba;default:return Pa}return e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,(a.wsize||p!==e.avail_out&&a.mode<Ja&&(a.mode<Za||t!==Ia))&&li(e,e.output,e.next_out,p-e.avail_out),d-=e.avail_in,p-=e.avail_out,e.total_in+=d,e.total_out+=p,a.total+=p,4&a.wrap&&p&&(e.adler=a.check=a.flags?Xe(a.check,n,p,e.next_out-p):Je(a.check,n,p,e.next_out-p)),e.data_type=a.bits+(a.last?64:0)+(a.mode===Wa?128:0)+(a.mode===Ga||a.mode===Ha?256:0),(0===d&&0===p||t===Ia)&&k===Da&&(k=$a),k},ci={inflateReset:ti,inflateReset2:ai,inflateResetKeep:ei,inflateInit:e=>ii(e,15),inflateInit2:ii,inflate:ui,inflateEnd:e=>{if(Qa(e))return Pa;let t=e.state;return t.window&&(t.window=null),e.state=null,Da},inflateGetHeader:(e,t)=>{if(Qa(e))return Pa;const a=e.state;return 2&a.wrap?(a.head=t,t.done=!1,Da):Pa},inflateSetDictionary:(e,t)=>{const a=t.length;let i,n,r;return Qa(e)?Pa:(i=e.state,0!==i.wrap&&i.mode!==za?Pa:i.mode===za&&(n=1,n=Je(n,t,a,0),n!==i.check)?Oa:(r=li(e,t,a,a),r?(i.mode=16210,Ba):(i.havedict=1,Da)))},inflateInfo:"pako inflate (from Nodeca project)"};var di=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const pi=Object.prototype.toString,{Z_NO_FLUSH:hi,Z_FINISH:fi,Z_OK:mi,Z_STREAM_END:yi,Z_NEED_DICT:gi,Z_STREAM_ERROR:bi,Z_DATA_ERROR:vi,Z_MEM_ERROR:_i}=et;function wi(e){this.options=ea({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new oa,this.strm.avail_out=0;let a=ci.inflateInit2(this.strm,t.windowBits);if(a!==mi)throw new Error(Qe[a]);if(this.header=new di,ci.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=na(t.dictionary):"[object ArrayBuffer]"===pi.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(a=ci.inflateSetDictionary(this.strm,t.dictionary),a!==mi)))throw new Error(Qe[a])}function Ai(e,t){const a=new wi(t);if(a.push(e),a.err)throw a.msg||Qe[a.err];return a.result}wi.prototype.push=function(e,t){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let r,s,o;if(this.ended)return!1;for(s=t===~~t?t:!0===t?fi:hi,"[object ArrayBuffer]"===pi.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),r=ci.inflate(a,s),r===gi&&n&&(r=ci.inflateSetDictionary(a,n),r===mi?r=ci.inflate(a,s):r===vi&&(r=gi));a.avail_in>0&&r===yi&&a.state.wrap>0&&0!==e[a.next_in];)ci.inflateReset(a),r=ci.inflate(a,s);switch(r){case bi:case vi:case gi:case _i:return this.onEnd(r),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||r===yi))if("string"===this.options.to){let e=sa(a.output,a.next_out),t=a.next_out-e,n=ra(a.output,e);a.next_out=t,a.avail_out=i-t,t&&a.output.set(a.output.subarray(e,e+t),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==mi||0!==o){if(r===yi)return r=ci.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},wi.prototype.onData=function(e){this.chunks.push(e)},wi.prototype.onEnd=function(e){e===mi&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=ta(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ki=function(e,t){return(t=t||{}).raw=!0,Ai(e,t)},Si={Inflate:wi,inflate:Ai,inflateRaw:ki,ungzip:Ai};const{Deflate:Ni,deflate:xi,deflateRaw:Ti,gzip:Mi}=Aa,{Inflate:Vi,inflate:Ci,inflateRaw:Ii,ungzip:Fi}=Si;var Ei={Deflate:Ni,deflate:xi,deflateRaw:Ti,gzip:Mi,Inflate:Vi,inflate:Ci,inflateRaw:Ii,ungzip:Fi,constants:et};const Di={files:{},items:{},folders:{}};function Li(e){return Di.files[e]}function Ri(){return Di.folders}function Pi(e){return Di.folders[e]}function Oi(e,t){for(const a of Object.values(Di.folders))if(a.name===e&&a.parent===t)return a}function Bi(e,t){for(const a of Object.values(Di.items))if(a.name===e&&a.folder._id===t)return a}function $i(){return Di.items}function ji(e){return Di.items[e]}function Ui(e,t){Di.items[e]=t.rootItem;for(const[e,a]of Object.entries(t.metadata)){if(t.files[e]&&(Di.files[e]={blob:new Blob([t.files[e]],{type:a.mimeType}),hash:a.hash,itemName:a.name,itemType:a.type,mimeType:a.mimeType}),a.attachments)for(const i of a.attachments){const a=Wi(e,i.name,i.queryParam,i.index);Di.files[a]={blob:new Blob([t.files[a]],{type:i.mimeType}),hash:i.hash,itemName:i.name,itemType:i.type,mimeType:i.mimeType}}Di.items[e]=a}for(const a of Object.values(t.folders))a._id=e+":"+a._id,a.parent=e+":"+a.parent,Di.folders[a._id]=a}async function zi(e,t){const a=r.Buffer.from(await e.arrayBuffer());let i=0;i+=8;const n=a.readInt32LE(8);i+=4;const s=new TextDecoder,o=a.subarray(i,i+n);i+=n;const l=JSON.parse(s.decode(o));l.root=t+"/"+l.root;let u=0;const c=Ei.ungzip(a.subarray(i)),d=r.Buffer.from(c),p=d.subarray(u,u+l.metadataSize);u+=l.metadataSize;const h=JSON.parse(s.decode(p)),f={};Object.entries(h).forEach((([e,a])=>{const i=t+"/"+e;a._id=i,f[i]=a,a.folder._id=t+":"+a.folder._id;for(const e of a.links)e.to=t+"/"+e.to}));const m=d.subarray(u,u+l.foldersSize);u+=l.foldersSize;const y=JSON.parse(s.decode(m)),g={};for(const[,e]of Object.entries(f))if(e.filesize&&(g[e._id]={start:u+(e.packageFileOffset||0),end:u+(e.packageFileOffset||0)+e.filesize}),e.attachments)for(const t of e.attachments)g[Wi(e._id,t.name,t.queryParam,t.index)]={start:u+(t.packageFileOffset||0),end:u+(t.packageFileOffset||0)+t.filesize};const b={};for(const[e,t]of Object.entries(g)){const a=d.subarray(t.start,t.end);b[e]=a}const v=f[l.root],_=[],w=e=>{_.push(e._id);for(const t of e.links)t.item=structuredClone(f[t.to]),w(t.item)};return w(v),{rootItem:v,metadata:f,folders:y,files:b}}function Wi(e,t,a,i){return`${e}_${t}`+(null!=a?`_${a}`:"")+(null!=i?`_${i}`:"")}function Yi(e,t,a,i){return Array.isArray(e.attachments)?e.attachments.filter((e=>e.name===t&&(void 0===i||e.index===i))).reduce(((e,t)=>Math.abs(t.queryParam-(a??0))<Math.abs(e.queryParam-(a??0))?t:e),{queryParam:1/0}):null}function Hi(e,t,a,i){const n=ji(e);if(n){const r=Yi(n,t,a,i);if(!r)return null;return Li(Wi(e,r.name,r.queryParam,r.index))}}var Gi=Object.freeze({__proto__:null,addPackageToCache:Ui,createAttachmentID:Wi,findFolder:Oi,findItem:Bi,getAttachmentFromPackageCache:Hi,getFileFromCache:Li,getFolder:Pi,getFolders:Ri,getItemFromCache:ji,getItems:$i,parsePackage:zi,queryAttachments:Yi});class qi{id=_.createGUID();items=[]}class Zi{itemRepo;undoEvents=[];redoEvents=[];maxUndoCount=100;enabled=!0;snapshots=new Map;_undoRedoPromise=Promise.resolve();constructor(e,t=100){this.itemRepo=e,this.maxUndoCount=t,S.instance.setUndoManager(this),y.$on("undoManager:undo",(e=>this.undo(e))),y.$on("undoManager:redo",(e=>this.redo(e)))}clear(){this.undoEvents=[],this.redoEvents=[],this.snapshots.clear(),y.$emit("undoManager:undoStepsChanged",0),y.$emit("undoManager:redoStepsChanged",0)}createSnapshot(){const e=new qi;for(const t of this.itemRepo.itemInstances.values())for(const a of t.values())e.items.push({_id:a._id,instanceId:a.instanceId,data:this._grabSnapshot(a)});return this.snapshots.set(e.id,e),e.id}rollbackFromSnapshot(e){const t=this.snapshots.get(e);if(!t)throw new M("Snapshot not found");for(const e of t.items){const t=this.itemRepo.itemInstances.get(e._id);if(t){const a=t.get(e.instanceId);a?this._rollbackFromSnapshot(a,e.data):console.error(`[SNAPSHOT] - Trying to rollback snapshot for item but did not find the instance: ${e._id} -> ${e.instanceId}`)}else console.error(`[SNAPSHOT] - Trying to rollback snapshot for item but did not find the item map: ${e._id}`)}this.snapshots.delete(e)}_grabSnapshot(e){const t=[];for(const a of e.fieldInstances)try{t.push(a.createSnapshot())}catch(e){const t=`[SNAPSHOT] - Could not grab snapshot of field ${a.name}`;throw console.error(t,e),new Error(e.toString())}const a=[];for(const t of e.customFieldInstances)try{a.push(t.createSnapshot())}catch(e){const a=`[SNAPSHOT] - Could not grab snapshot of custom field ${t.name}`;throw console.error(a,e),new Error(e.toString())}return new G(e._id,"item",{fieldInstances:t,customFieldInstances:a})}_getFieldInstance(e,t){for(const a of e.fieldInstances)if(a.getId()===t)return a;return null}_getCustomFieldInstance(e,t){for(const a of e.customFieldInstances)if(a.getId()===t)return a;return null}_rollbackFromSnapshot(e,t){for(const a of t.data.fieldInstances){const t=this._getFieldInstance(e,a.id);t?t.rollbackFromSnapshot(a):console.warn("[SNAPSHOT] - Could not find field instance in snapshot: "+a.id)}for(const a of t.data.customFieldInstances){const t=this._getCustomFieldInstance(e,a.id);t?t.rollbackFromSnapshot(a):console.warn("[SNAPSHOT] - Could not find custom field instance in snapshot: "+a.id)}}getEnabled(){return this.enabled}setEnabled(e){this.enabled=!!e}ignore(e){const t=this.enabled;let a=!1;try{t&&this.setEnabled(!1);const i=e();if(i&&i.then)return a=!0,i.finally((()=>{t&&this.setEnabled(!0)}))}finally{t&&!a&&this.setEnabled(!0)}}undo(e){return this._undoRedoPromise=this._undoRedoPromise.then((()=>this._performUndo(e))),this._undoRedoPromise}redo(e){return this._undoRedoPromise=this._undoRedoPromise.then((()=>this._performRedo(e))),this._undoRedoPromise}async _performUndo(e){if(this.enabled&&this.undoEvents.length){for(e=e||1;this.undoEvents.length>0&&e>0;){const t=this.spliceLastEventBundle(this.undoEvents).reverse();for(const e of t)await e.undo(),this.redoEvents.push(e);e--}y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()),y.$emit("undoManager:redoStepsChanged",this.getNumberOfRedoBundles())}}async _performRedo(e){if(this.enabled&&this.redoEvents.length){for(e=e||1;this.redoEvents.length>0&&e>0;){const t=this.spliceLastEventBundle(this.redoEvents).reverse();for(const e of t)await e.redo(),this.undoEvents.push(e);e--}y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()),y.$emit("undoManager:redoStepsChanged",this.getNumberOfRedoBundles())}}getUndoSteps(){return this.undoEvents.map((function(e){return{type:e.type,itemId:e.itemId,prop:e.prop}}))}getRedoSteps(){return this.redoEvents.map((e=>({type:e.type,itemId:e.itemId,prop:e.prop})))}event(e){if(this.enabled){if(this.redoEvents=[],y.$emit("undoManager:redoStepsChanged",0),this.assignBundleIndexToEvent(e),0!==this.undoEvents.length){let t=!1;for(let a=this.undoEvents.length-1;a>=0;a--){const i=this.undoEvents[a];if(!e.isWithinMergeDeltaOf(i,300))break;const n=i.merge(e,300);if(n){t=!0,this.undoEvents.splice(a,1),this.undoEvents.push(n);break}}t||(this.undoEvents.push(e),y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()))}else this.undoEvents.push(e),y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles());if(this.getNumberOfUndoBundles()>this.maxUndoCount){this.spliceFirstEventBundle(this.undoEvents);for(const e of this.undoEvents)e.bundleIndex-=1;y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles())}}}getNumberOfUndoBundles(){return 0===this.undoEvents.length?0:this.undoEvents.at(-1).bundleIndex+1}getNumberOfRedoBundles(){if(0===this.redoEvents.length)return 0;const e=this.getNumberOfUndoBundles()-1;return this.redoEvents.at(0).bundleIndex-e}spliceLastEventBundle(e){if(0===e.length)return[];const t=e.at(-1).bundleIndex;let a=e.length-1;for(let i=e.length-1;i>=0&&e[i].bundleIndex===t;i--)a=i;return e.splice(a)}spliceFirstEventBundle(e){if(0===e.length)return[];const t=e.at(0).bundleIndex;for(let a=1;a<e.length;a++)if(e[a].bundleIndex!==t)return e.splice(0,a);return e.splice(0)}assignBundleIndexToEvent(e){if(0===this.undoEvents.length)return void(e.bundleIndex=0);const t=this.undoEvents.at(-1),a=Math.abs(e.createdAt-t.createdAt);e.bundleIndex=a>300?t.bundleIndex+1:t.bundleIndex}}class Ji{updateItemLinksAndAttributes(e,t,a){try{const i=[],n={},r={};this.getLinksAndAttributes(e,i,n,r,t,a),e.attributes=n,e.userAttributes=r,e.links=i}catch(e){throw console.error(e),new C(e)}}getLinksAndAttributes(e,t,a,i,n,r){e.fieldInstances.length&&this.retrieveLinksAndAttributesFromFieldInstances(e.fieldInstances,t,a,n,r),e.userFieldInstances.length&&this.retrieveLinksAndAttributesFromFieldInstances(e.userFieldInstances,t,i,n,r),e.customFieldInstances.length&&(console.log(e.customFieldInstances),this.retrieveLinksAndAttributesFromFieldInstances(e.customFieldInstances,t,i,n,r,"_"))}retrieveLinksAndAttributesFromFieldInstances(e,t,a,i,n,r=""){for(const s of e)switch(s.type){case"Link":if(s.value&&t){if(n&&s.hidden)continue;i?t.push({usage:r+s.name,to:s.value._id,item:s.value}):t.push({usage:r+s.name,to:s.value._id})}break;case"Attribute":a&&(a[r+s.name]=s.value);break;case"List":s.blocks&&this.traverseListFieldInstances(s.blocks,t,a,r+s.name,i);break;case"Tree":if(s.blocks){const e=s.blocks[0];e.blocks&&this.traverseTreeFieldInstance(e.blocks,t,a,r+s.name,i)}break;case"NodeGraph":if(s.blocks&&this.traverseTreeFieldInstance(s.blocks,t,a,r+s.name,i),a&&Array.isArray(s.connections)){let e=0;for(const t of s.connections){a[`${r}${s.name}#connection[${e++}]`]={srcNode:t.srcNode,srcSlot:t.srcSlot,destNode:t.destNode,destSlot:t.destSlot}}}}}traverseTreeFieldInstance(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}[${r}]`,o=e+"#type",l=e+"#id",u=e+"#posx",c=e+"#posy";a&&(a[e+"#usage"]="Block",a[o]=s.type,a[l]=s.id,void 0!==s.posX&&(a[u]=s.posX||0),void 0!==s.posY&&(a[c]=s.posY||0));for(const i of s.fields){const r=`${e}->${i.name}`;switch(i.type){case"Link":i.value&&t&&(n?t.push({usage:r,to:i.value._id,item:i.value}):t.push({usage:r,to:i.value._id}));break;case"List":i.blocks&&this.traverseListFieldInstances(i.blocks,t,a,r,n);break;case"Attribute":a&&(a[r]=i.value)}}s.scripts&&this.processScripts(s.scripts,t,a,e,n),s.blocks&&this.traverseTreeFieldInstance(s.blocks,t,a,e,n),r++}}traverseListFieldInstances(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}[${r}]`;for(const i of s.fields){const r=`${e}->${i.name}`;switch(i.type){case"Link":if(i.value&&t){const e={usage:r,to:"object"==typeof i.value?i.value._id:i.value,item:null};n&&"object"===i.value&&(e.item=i.value),t.push(e)}break;case"Attribute":a&&(a[r]=i.value)}}r++}}processScripts(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}#scripts[${r}]`,o=e+"#id",l=e+"#item";a&&(a[e+"#usage"]="Script",a[o]=s.id),t&&s.item.value&&(n?t.push({usage:l,to:s.item.value._id,item:s.item.value}):t.push({usage:l,to:s.item.value._id}));for(const i of s.fields){const r=`${e}->${i.name}`;if("Link"===i.type)i.value&&t&&(n?t.push({usage:r,to:i.value._id,item:i.value}):t.push({usage:r,to:i.value._id}));else a&&(a[r]=i.value)}r++}}}class Ki{apiClient;activeItem=void 0;rootItemId=void 0;loadingItems=new Map;loadedItems=new Map;itemInstances=new Map;resolvedPaths=new Map;jail;apiGateway;itemCache;undoManager=new Zi(this);itemPreparator=new ue(this);itemChangeProcessor=new Ji;usePublicApi;constructor(e,t){this.apiClient=t,this.apiGateway=new Y(t),this.itemCache=new H(this.apiGateway),this.usePublicApi=!!e,this.jail={active:!1,mountedFolders:[]},y.$on("item:rename",(e=>this.handleRename(e)))}_logGroup(e){}_logGroupEnd(){}_log(e){}getLoadedItems(){return Array.from(this.loadedItems.values())}getItemInstances(){return this.itemInstances}findLoadedItem(e){return this.loadedItems.get(e)}_handleError(e,t){throw console.error(e),new C("ItemRepo: "+t)}getUndoManager(){return this.undoManager}async createFieldsForItem(e,t,a,i=!1){return this.itemPreparator.createFields(e,a,t,"",!1,a.attributes,i)}async createScriptsForItem(e,t=[],a,i=!0){const n=[];for(const i of t){if(!i.item)continue;const t=await this.loadItem(i.item);if(!t)continue;const r=new X(void 0,e,a,t);n.push(r);for(const e of i.fields){const t=new J(r,e.name,e.value,a);r.addField(t)}}e.scripts=i?S.instance.proxyScriptArray(n,e,a):n}clear(){this.rootItemId=void 0,this.activeItem=void 0,this.loadedItems.clear(),this.resolvedPaths.clear(),this.itemInstances.clear(),this.loadingItems.clear();this.apiClient.getCollab().endCollaboration()}removeBlock(e,t){t.blocks.removeObject(e),e.parent=void 0}traverseBlockPairs(e,t,a){a(e,t);for(let i=0;i<e.blocks.length&&i<t.blocks.length;i++)this.traverseBlockPairs(e.blocks[i],t.blocks[i],a)}copyScripts(e,t,a=!1){const i=new Map;this.traverseBlockPairs(e,t,((e,t)=>i.set(e.getId(),t.getId())));const n=[];return this.traverseBlockPairs(e,t,((e,t)=>{for(const r of e.scripts){const e=r.clone(i);a&&(e.deferInitCall=!0),t.scripts.push(e),n.push(e)}})),n}updateScriptFieldReferences(e,t){const a=new Map;this.traverseBlockPairs(e,t,((e,t)=>{a.set(e.id,t.id)})),this.updateScriptFieldReferencesFromMap(a,t)}updateScriptFieldReferencesFromMap(e,t){this.traverseBlocks((t=>{for(const a of t.scripts)for(const t of a.fields)e.has(t.value)&&(t.value=e.get(t.value))}),[t])}async createNewBlock(e,t,a){const i=new ce(void 0,t,e.typeName,void 0,void 0,a),n=await this.createFieldsForItem(i,e.template,a);return i.setFields(n),i.blocks=S.instance.proxyBlockArray(i.blocks,i,a),await this.createScriptsForItem(i,void 0,a),this.addBlockToParent(i,t,a)}addBlockToParent(e,t,a){e.parent=t;const i=S.instance.proxyBlock(e,a);return t.blocks.push(i),i}async createNewListEntry(e,t,a){const i=new ce(void 0,void 0,e.typeName,void 0,void 0,a),n=await this.createFieldsForItem(i,e.template,a);return i.setFields(n),i.blocks=S.instance.proxyListArray(i.blocks,t,a),S.instance.proxyBlock(i,a)}async createNewGraphNode(e,t,a,i,n){const r=new ce(void 0,void 0,e.typeName,void 0,e.displayName,n),s=await this.itemPreparator.createFields(r,n,e.template,"",!0,n.attributes);return r.setFields(s),r.setInputs(e.inputs),r.setOutputs(e.outputs),r.setPosition(a,i),r.blocks=S.instance.proxyGraphBlockArray(r.blocks,t),this.addNodeToGraph(r,t,n),r}addNodeToGraph(e,t,a){const i=S.instance.proxyGraphBlock(e,a);t.blocks.push(i)}removeGraphNode(e,t){const a=[];for(const i of e.connections)i.srcNode!==t.id&&i.destNode!==t.id||a.push(i);for(const t of a)e.connections.removeObject(t);e.blocks.removeObject(t)}addGraphLink(e,t,a,i,n,r){e.connections.push(new Z({srcNode:t,srcSlot:a,destNode:i,destSlot:n},r))}removeGraphLink(e,t,a,i,n){for(const r of e.connections)if(r.srcNode===t&&r.srcSlot===a&&r.destNode===i&&r.destSlot===n)return void e.connections.removeObject(r)}createNewScript(e,t=-1,a){t=t>=0?t:e.scripts.length;const i=new X(void 0,e,a);return e.scripts.splice(t,0,i),i}removeScript(e,t){t.scripts.removeObject(e)}findBlock(e){for(const t of this.itemInstances.values())for(const a of t.values()){const t=a.findBlock(e);if(t)return t}return null}async loadPackage(e,t){const a=await _.downloadFile(e,((e,a,i)=>{t&&t({phase:"Loading",percent:e,bytesTotal:a,bytesLoaded:i})})),i=await a.data;this.apiClient.getCollab().endCollaboration();const n=new re({_id:"root",name:"Root package",type:"Package",links:[],attributes:{},fields:[],readOnly:!0,isPackaged:!1}),r=await zi(i,n._id);Ui(n._id,structuredClone(r));const s=Object.values(r.metadata).reverse();for(const e of s)e._id===r.rootItem._id&&(n.packageContent=e,n.packageType=e.type);return await this._linkAndPrepareItems(s),n.packageContent=this.loadedItems.get(r.rootItem._id),this.activeItem=n,n}createPackageItemUrl(e){const t=Li(e);return t?URL.createObjectURL(t.blob):null}revokePackageItemUrl(e){URL.revokeObjectURL(e)}async _loadPackageContentRecursively(e,t){t("Loading from cache",0);const a=await this.apiClient.itemCache.addItemToCache(e._id,void 0,e.hash,(function(e,a,i){t("Loading from cloud",.9*e,i,a)})),i=await(await fetch(a.objectUrl)).blob();t("Unpacking",90);const n=await zi(i,e._id);Ui(e._id,structuredClone(n));const r=Object.values(n.metadata).reverse();for(const t of r)t._id===n.rootItem._id&&(e.packageContent=t,e.packageType=t.type);return r}createNewItemInstance(e){const t=this.loadedItems.get(e);if(!t)return console.error(`Tried creating new instance of item, but it was not found: ${e}`),null;const a=t.clone(!0);return this._addItemInstance(a),a}_addLoadedItem(e){this.loadedItems.set(e._id,e),this._addItemInstance(e)}_addItemInstance(e){let t=this.itemInstances.get(e._id);t||(t=new Map,this.itemInstances.set(e._id,t)),t.set(e.instanceId,e)}async loadItemByRelativePath(e,t,a={}){try{const i=ji(e);let n;if(i){const e=t.split("/"),a=e.pop();let r=Pi(i.folder._id);for(const t of e)if(r=".."===t?Pi(r.parent):Oi(t,r._id),!r)return;const s=Bi(a,r._id);n=s?._id}else n=await this.resolveRelativePath(t,e);return this.loadItem(n,a)}catch(e){this._handleError(e,`Unable to load item by relative path: ${t}: ${e}`)}}async _loadItemFromApi(e,t={}){let a;if(this.apiGateway.start(),t.recursive)if(this.usePublicApi)a=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e,!0),a.forEach((e=>e.public=!0));else try{a=await this.apiGateway.call("_loadItemFromApi","getItemAggregatedRecursive",e,{withAttachmentInfo:!0,noFields:!0})}catch{a=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e,!0),a.forEach((e=>e.public=!0))}else{let t;if(this.usePublicApi)t=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e),t.public=!0;else try{t=await this.apiGateway.call("_loadItemFromApi","getItemAggregated",e,{noFields:!0})}catch{t=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e),t.public=!0}a=[t]}return this.apiGateway.end(),a}_relinkItems(e,t){for(const a of e){if(Array.isArray(a.links))for(const e of a.links)e.item=t.get(e.to),e.item||e.stopRecursion||console.warn(`Missing link in item '${a.name}' (${a._id}) to: ${e.to} with usage ${e.usage}`);a.packageContent&&(a.packageContent=t.get(a.packageContent._id))}}createItem(e,t){const a={_id:_.createGeneratedItemId(),name:`Generated ${e}`,type:e,attributes:t||{},links:[],fields:[],fieldInstances:[],userFieldInstances:[],isGenerated:!0};return this.itemPreparator.prepare(a)}getLoadedItem(e){return this.loadedItems.get(e)}async loadItem(e,t={}){let a,i,n;if(n=this.loadedItems.get(e),n)return n;if(n=this.loadingItems.get(e),n)return n;try{const r=new Promise(((e,t)=>{a=e,i=t}));return this.loadingItems.set(e,r),n=await this._loadItemInternal(e,t),a(n),!this.activeItem&&n&&(this.rootItemId=e,this.activeItem=n,t.withCollaboration,await y.$emit("itemRepo:itemLoaded",n)),n}catch(t){return this._handleError(t,`Unable to load item ${e}: ${t}`),void i(void 0)}finally{this.loadingItems.delete(e)}}async _loadItemInternal(e,t={}){const a=(e,a,i=0,n=0)=>{"function"==typeof t.progressCallback&&t.progressCallback({phase:e,percent:a,bytesTotal:i,bytesLoaded:n})};a("Fetching metadata",1);let i=await this._loadItemFromApi(e,t);if(i=i.filter((e=>!this.loadedItems.has(e._id))),0===i.length)return console.log("After loading the item, it turns out we have them all already loaded! This should not happen!"),this.loadedItems.get(e);const n=i[0]._id;for(const e of i)if("Package"===e.type){const t=await this._loadPackageContentRecursively(e,a);for(const e of t)i.push(e)}a("Preparing data",100),await this._linkAndPrepareItems(i);return this.loadedItems.get(n)}async _linkAndPrepareItems(e){const t=new Map;for(const a of e)t.set(a._id,a);const a=new Map([...this.loadedItems,...t]);this._relinkItems(e,a);const i=[],n=()=>{const e=t.values().next().value;return t.delete(e._id),this._log(`- Fetched next item ${e.name} (${e._id})`),e},r=async e=>{this._logGroup(`- Preparing item ${e.name} (${e._id})`);const t=await this.itemPreparator.prepare(e);return i.push(t),this._addLoadedItem(t),this._logGroupEnd(),t};for(this.itemPreparator.setItemFetcher((async e=>{this._logGroup(`- Requesting item ${e.name} (${e._id})`);let a=this.loadedItems.get(e._id);if(a)return this._log("- Already prepared. Returning."),this._logGroupEnd(),a;const i=t.get(e._id);return i?(t.delete(e._id),this._log("- Don't have it yet. Preparing..."),a=await r(i),this._log("- Now prepared. Returning."),this._logGroupEnd(),a):(console.error("ItemFetcher: Could not find requested item: "+e._id,t,this.loadedItems),null)}));t.size>0;){let e=n();await r(e)}return this._relinkItems(i,this.loadedItems),i}async resolveRelativePath(e,t=null){if(!(t=t||this.activeItem?._id||null))return null;const a=`${t}#${e}`;let i;return i=this.resolvedPaths.has(a)?this.resolvedPaths.get(a):this.usePublicApi?await this.apiClient.publicResolveRelativeItem(t,e):await this.apiClient.resolveRelativeItem(t,e),this.resolvedPaths.set(a,i),i}async traverseItems(e,t=void 0){if("function"!=typeof e)return;const a=this,i=new Map;await async function t(n){if(!n)return;if(i.has(n._id))return;i.set(n._id,!0);const r=e(n);if(r&&r.then&&await r,Array.isArray(n.links))for(const e of n.links)if(e.item)await t(e.item);else if(e.to)try{const i=await a.loadItem(e.to);await t(i)}catch{console.warn(`Could not load additional item ${e.to} so cannot traverse it. Probably dead link!`)}}(t||this.activeItem)}async traverseBlocks(e,t){for(const a of t){const t=e(a);t&&t.then&&await t,Array.isArray(a.blocks)&&a.blocks?.length&&await this.traverseBlocks(e,a.blocks)}}async traverseFieldInstances(e,t){const a=this;t=t||this.activeItem?.fieldInstances||[];for(const i of t){const t=e(i);t&&t.then&&await t,Array.isArray(i.blocks)&&await this.traverseBlocks((async function(t){Array.isArray(t.fields)&&t.fields?.length&&await a.traverseFieldInstances(e,t.fields)}),i.blocks)}}async _updateLinkReferences(e,t,a,i){t?await this.traverseItems((async n=>{if(Array.isArray(n.fieldInstances)&&n.fieldInstances.length){await this.traverseFieldInstances((async a=>{"Link"===a.type&&a.value&&a.value._id===e&&(i&&(a.value=null),a.value=t)}),n.fieldInstances);for(const a of n.fieldInstances)Array.isArray(a.blocks)&&await this.traverseBlocks((async a=>{if(Array.isArray(a.scripts))for(const n of a.scripts)n.item?.value?._id===e&&(i&&(n.item.value=void 0),n.item.value=t)}),a.blocks)}if(n.links)for(const r of n.links)r.to===e&&(i&&(r.to=null,r.item=null),r.to=a,r.item=t)})):console.warn(`Aborting link update: Could not load item ${a}`)}async replaceLink(e,t){if(this.getLoadedItem(e)){const a=await this.loadItem(t,{recursive:!0});await this._updateLinkReferences(e,a,t,!1)}}async forceUpdateLink(e){const t=await this.loadItem(e,{recursive:!0});await this._updateLinkReferences(e,t,e,!0)}saveItem(e){return e._id&&e.isDirty?(this.itemChangeProcessor.updateItemLinksAndAttributes(e,!1,!0),e.version||(e.version={major:0,minor:0,revision:1}),this.apiClient.updateItem({_id:e._id,name:e.name,attributes:e.attributes,userAttributes:e.userAttributes,links:e.links,tags:e.tags,contributors:e.contributors,description:e.description,shortDescription:e.shortDescription,categories:e.categories,license:e.license,version:e.version,allowConversation:e.allowConversation,visibility:e.visibility}).then((t=>(JSON.stringify(e.version)===JSON.stringify(t.version)?console.log(`Saved item ${e.name}. New version: ${e.version.major}.${e.version.minor}.${e.version.revision}`):console.log(`Saved item ${e.name}. Version ${e.version.major}.${e.version.minor}.${e.version.revision} -> ${t.version.major}.${t.version.minor}.${t.version.revision}`),t&&t.version&&(e.version=t.version),e.isDirty=!1,this.itemChangeProcessor.updateItemLinksAndAttributes(e,!0,!1),e))).catch((function(t){throw console.error(`Error saving item ${e.name}`,t,e),t}))):null}async save(){console.log("Saving changes in loaded items...");const e=[];for(const t of this.loadedItems.values()){const a=this.saveItem(t);a&&e.push(a)}if(0!==e.length){let t=0;for(const a of e)a.then((function(a){y.$emit("itemRepo:itemSaved",{item:a,progress:++t,total:e.length})}));return Promise.all(e).then((function(){console.log("Saved successfully"),y.$emit("itemRepo:itemsSaved")})).catch((function(e){console.error("Error saving:",e)}))}console.log("No changes detected.")}async existsUnsavedChanges(){if(!this.activeItem)return!1;for(const e of this.loadedItems.values())if(e._id&&e.isDirty)return!0;return!1}handleRename({id:e,newName:t}){for(const a of this.itemInstances.values())for(const i of a.values())i._id===e&&(i.name=t)}isItemKnown(e){return this.loadedItems.has(e)||this.itemInstances.has(e)||this.loadingItems.has(e)}invalidateId(e){this.loadedItems.delete(e),this.itemInstances.delete(e),this.loadingItems.delete(e)}}var Xi,Qi={exports:{}};
|
|
12
|
+
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function de(e){let t=e.length;for(;--t>=0;)e[t]=0}const pe=256,he=286,fe=30,me=15,ye=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ge=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),be=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ve=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),_e=new Array(576);de(_e);const we=new Array(60);de(we);const Ae=new Array(512);de(Ae);const ke=new Array(256);de(ke);const Se=new Array(29);de(Se);const Ne=new Array(fe);function xe(e,t,a,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}let Te,Me,Ve;function Ce(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}de(Ne);const Ie=e=>e<256?Ae[e]:Ae[256+(e>>>7)],Fe=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Ee=(e,t,a)=>{e.bi_valid>16-a?(e.bi_buf|=t<<e.bi_valid&65535,Fe(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=a-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=a)},De=(e,t,a)=>{Ee(e,a[2*t],a[2*t+1])},Le=(e,t)=>{let a=0;do{a|=1&e,e>>>=1,a<<=1}while(--t>0);return a>>>1},Re=(e,t,a)=>{const i=new Array(16);let n,r,s=0;for(n=1;n<=me;n++)s=s+a[n-1]<<1,i[n]=s;for(r=0;r<=t;r++){let t=e[2*r+1];0!==t&&(e[2*r]=Le(i[t]++,t))}},Pe=e=>{let t;for(t=0;t<he;t++)e.dyn_ltree[2*t]=0;for(t=0;t<fe;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Oe=e=>{e.bi_valid>8?Fe(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Be=(e,t,a,i)=>{const n=2*t,r=2*a;return e[n]<e[r]||e[n]===e[r]&&i[t]<=i[a]},$e=(e,t,a)=>{const i=e.heap[a];let n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&Be(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!Be(t,i,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=i},je=(e,t,a)=>{let i,n,r,s,o=0;if(0!==e.sym_next)do{i=255&e.pending_buf[e.sym_buf+o++],i+=(255&e.pending_buf[e.sym_buf+o++])<<8,n=e.pending_buf[e.sym_buf+o++],0===i?De(e,n,t):(r=ke[n],De(e,r+pe+1,t),s=ye[r],0!==s&&(n-=Se[r],Ee(e,n,s)),i--,r=Ie(i),De(e,r,a),s=ge[r],0!==s&&(i-=Ne[r],Ee(e,i,s)))}while(o<e.sym_next);De(e,256,t)},Ue=(e,t)=>{const a=t.dyn_tree,i=t.stat_desc.static_tree,n=t.stat_desc.has_stree,r=t.stat_desc.elems;let s,o,l,u=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<r;s++)0!==a[2*s]?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):a[2*s+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,a[2*l]=1,e.depth[l]=0,e.opt_len--,n&&(e.static_len-=i[2*l+1]);for(t.max_code=u,s=e.heap_len>>1;s>=1;s--)$e(e,a,s);l=r;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],$e(e,a,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,a[2*l]=a[2*s]+a[2*o],e.depth[l]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,a[2*s+1]=a[2*o+1]=l,e.heap[1]=l++,$e(e,a,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const a=t.dyn_tree,i=t.max_code,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length;let u,c,d,p,h,f,m=0;for(p=0;p<=me;p++)e.bl_count[p]=0;for(a[2*e.heap[e.heap_max]+1]=0,u=e.heap_max+1;u<573;u++)c=e.heap[u],p=a[2*a[2*c+1]+1]+1,p>l&&(p=l,m++),a[2*c+1]=p,c>i||(e.bl_count[p]++,h=0,c>=o&&(h=s[c-o]),f=a[2*c],e.opt_len+=f*(p+h),r&&(e.static_len+=f*(n[2*c+1]+h)));if(0!==m){do{for(p=l-1;0===e.bl_count[p];)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[l]--,m-=2}while(m>0);for(p=l;0!==p;p--)for(c=e.bl_count[p];0!==c;)d=e.heap[--u],d>i||(a[2*d+1]!==p&&(e.opt_len+=(p-a[2*d+1])*a[2*d],a[2*d+1]=p),c--)}})(e,t),Re(a,u,e.bl_count)},ze=(e,t,a)=>{let i,n,r=-1,s=t[1],o=0,l=7,u=4;for(0===s&&(l=138,u=3),t[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=t[2*(i+1)+1],++o<l&&n===s||(o<u?e.bl_tree[2*n]+=o:0!==n?(n!==r&&e.bl_tree[2*n]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,o=0,r=n,0===s?(l=138,u=3):n===s?(l=6,u=3):(l=7,u=4))},We=(e,t,a)=>{let i,n,r=-1,s=t[1],o=0,l=7,u=4;for(0===s&&(l=138,u=3),i=0;i<=a;i++)if(n=s,s=t[2*(i+1)+1],!(++o<l&&n===s)){if(o<u)do{De(e,n,e.bl_tree)}while(0!=--o);else 0!==n?(n!==r&&(De(e,n,e.bl_tree),o--),De(e,16,e.bl_tree),Ee(e,o-3,2)):o<=10?(De(e,17,e.bl_tree),Ee(e,o-3,3)):(De(e,18,e.bl_tree),Ee(e,o-11,7));o=0,r=n,0===s?(l=138,u=3):n===s?(l=6,u=3):(l=7,u=4)}};let Ye=!1;const He=(e,t,a,i)=>{Ee(e,0+(i?1:0),3),Oe(e),Fe(e,a),Fe(e,~a),a&&e.pending_buf.set(e.window.subarray(t,t+a),e.pending),e.pending+=a};var Ge=e=>{Ye||((()=>{let e,t,a,i,n;const r=new Array(16);for(a=0,i=0;i<28;i++)for(Se[i]=a,e=0;e<1<<ye[i];e++)ke[a++]=i;for(ke[a-1]=i,n=0,i=0;i<16;i++)for(Ne[i]=n,e=0;e<1<<ge[i];e++)Ae[n++]=i;for(n>>=7;i<fe;i++)for(Ne[i]=n<<7,e=0;e<1<<ge[i]-7;e++)Ae[256+n++]=i;for(t=0;t<=me;t++)r[t]=0;for(e=0;e<=143;)_e[2*e+1]=8,e++,r[8]++;for(;e<=255;)_e[2*e+1]=9,e++,r[9]++;for(;e<=279;)_e[2*e+1]=7,e++,r[7]++;for(;e<=287;)_e[2*e+1]=8,e++,r[8]++;for(Re(_e,287,r),e=0;e<fe;e++)we[2*e+1]=5,we[2*e]=Le(e,5);Te=new xe(_e,ye,257,he,me),Me=new xe(we,ge,0,fe,me),Ve=new xe(new Array(0),be,0,19,7)})(),Ye=!0),e.l_desc=new Ce(e.dyn_ltree,Te),e.d_desc=new Ce(e.dyn_dtree,Me),e.bl_desc=new Ce(e.bl_tree,Ve),e.bi_buf=0,e.bi_valid=0,Pe(e)},qe=(e,t,a,i)=>{let n,r,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,a=4093624447;for(t=0;t<=31;t++,a>>>=1)if(1&a&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<pe;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Ue(e,e.l_desc),Ue(e,e.d_desc),s=(e=>{let t;for(ze(e,e.dyn_ltree,e.l_desc.max_code),ze(e,e.dyn_dtree,e.d_desc.max_code),Ue(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*ve[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),n=e.opt_len+3+7>>>3,r=e.static_len+3+7>>>3,r<=n&&(n=r)):n=r=a+5,a+4<=n&&-1!==t?He(e,t,a,i):4===e.strategy||r===n?(Ee(e,2+(i?1:0),3),je(e,_e,we)):(Ee(e,4+(i?1:0),3),((e,t,a,i)=>{let n;for(Ee(e,t-257,5),Ee(e,a-1,5),Ee(e,i-4,4),n=0;n<i;n++)Ee(e,e.bl_tree[2*ve[n]+1],3);We(e,e.dyn_ltree,t-1),We(e,e.dyn_dtree,a-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),je(e,e.dyn_ltree,e.dyn_dtree)),Pe(e),i&&Oe(e)},Ze={_tr_init:Ge,_tr_stored_block:He,_tr_flush_block:qe,_tr_tally:(e,t,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,0===t?e.dyn_ltree[2*a]++:(e.matches++,t--,e.dyn_ltree[2*(ke[a]+pe+1)]++,e.dyn_dtree[2*Ie(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{Ee(e,2,3),De(e,256,_e),(e=>{16===e.bi_valid?(Fe(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var Je=(e,t,a,i)=>{let n=65535&e,r=e>>>16&65535,s=0;for(;0!==a;){s=a>2e3?2e3:a,a-=s;do{n=n+t[i++]|0,r=r+n|0}while(--s);n%=65521,r%=65521}return n|r<<16};const Ke=new Uint32Array((()=>{let e,t=[];for(var a=0;a<256;a++){e=a;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[a]=e}return t})());var Xe=(e,t,a,i)=>{const n=Ke,r=i+a;e^=-1;for(let a=i;a<r;a++)e=e>>>8^n[255&(e^t[a])];return~e},Qe={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},et={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:tt,_tr_stored_block:at,_tr_flush_block:it,_tr_tally:nt,_tr_align:rt}=Ze,{Z_NO_FLUSH:st,Z_PARTIAL_FLUSH:ot,Z_FULL_FLUSH:lt,Z_FINISH:ut,Z_BLOCK:ct,Z_OK:dt,Z_STREAM_END:pt,Z_STREAM_ERROR:ht,Z_DATA_ERROR:ft,Z_BUF_ERROR:mt,Z_DEFAULT_COMPRESSION:yt,Z_FILTERED:gt,Z_HUFFMAN_ONLY:bt,Z_RLE:vt,Z_FIXED:_t,Z_DEFAULT_STRATEGY:wt,Z_UNKNOWN:At,Z_DEFLATED:kt}=et,St=258,Nt=262,xt=42,Tt=113,Mt=666,Vt=(e,t)=>(e.msg=Qe[t],t),Ct=e=>2*e-(e>4?9:0),It=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Ft=e=>{let t,a,i,n=e.w_size;t=e.hash_size,i=t;do{a=e.head[--i],e.head[i]=a>=n?a-n:0}while(--t);t=n,i=t;do{a=e.prev[--i],e.prev[i]=a>=n?a-n:0}while(--t)};let Et=(e,t,a)=>(t<<e.hash_shift^a)&e.hash_mask;const Dt=e=>{const t=e.state;let a=t.pending;a>e.avail_out&&(a=e.avail_out),0!==a&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+a),e.next_out),e.next_out+=a,t.pending_out+=a,e.total_out+=a,e.avail_out-=a,t.pending-=a,0===t.pending&&(t.pending_out=0))},Lt=(e,t)=>{it(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Dt(e.strm)},Rt=(e,t)=>{e.pending_buf[e.pending++]=t},Pt=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ot=(e,t,a,i)=>{let n=e.avail_in;return n>i&&(n=i),0===n?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),a),1===e.state.wrap?e.adler=Je(e.adler,t,n,a):2===e.state.wrap&&(e.adler=Xe(e.adler,t,n,a)),e.next_in+=n,e.total_in+=n,n)},Bt=(e,t)=>{let a,i,n=e.max_chain_length,r=e.strstart,s=e.prev_length,o=e.nice_match;const l=e.strstart>e.w_size-Nt?e.strstart-(e.w_size-Nt):0,u=e.window,c=e.w_mask,d=e.prev,p=e.strstart+St;let h=u[r+s-1],f=u[r+s];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do{if(a=t,u[a+s]===f&&u[a+s-1]===h&&u[a]===u[r]&&u[++a]===u[r+1]){r+=2,a++;do{}while(u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&r<p);if(i=St-(p-r),r=p-St,i>s){if(e.match_start=t,s=i,i>=o)break;h=u[r+s-1],f=u[r+s]}}}while((t=d[t&c])>l&&0!=--n);return s<=e.lookahead?s:e.lookahead},$t=e=>{const t=e.w_size;let a,i,n;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Nt)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Ft(e),i+=t),0===e.strm.avail_in)break;if(a=Ot(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=a,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Et(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Et(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<Nt&&0!==e.strm.avail_in)},jt=(e,t)=>{let a,i,n,r=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,s=0,o=e.strm.avail_in;do{if(a=65535,n=e.bi_valid+42>>3,e.strm.avail_out<n)break;if(n=e.strm.avail_out-n,i=e.strstart-e.block_start,a>i+e.strm.avail_in&&(a=i+e.strm.avail_in),a>n&&(a=n),a<r&&(0===a&&t!==ut||t===st||a!==i+e.strm.avail_in))break;s=t===ut&&a===i+e.strm.avail_in?1:0,at(e,0,0,s),e.pending_buf[e.pending-4]=a,e.pending_buf[e.pending-3]=a>>8,e.pending_buf[e.pending-2]=~a,e.pending_buf[e.pending-1]=~a>>8,Dt(e.strm),i&&(i>a&&(i=a),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,a-=i),a&&(Ot(e.strm,e.strm.output,e.strm.next_out,a),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a)}while(0===s);return o-=e.strm.avail_in,o&&(o>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=o&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?4:t!==st&&t!==ut&&0===e.strm.avail_in&&e.strstart===e.block_start?2:(n=e.window_size-e.strstart,e.strm.avail_in>n&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,n+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),n>e.strm.avail_in&&(n=e.strm.avail_in),n&&(Ot(e.strm,e.window,e.strstart,n),e.strstart+=n,e.insert+=n>e.w_size-e.insert?e.w_size-e.insert:n),e.high_water<e.strstart&&(e.high_water=e.strstart),n=e.bi_valid+42>>3,n=e.pending_buf_size-n>65535?65535:e.pending_buf_size-n,r=n>e.w_size?e.w_size:n,i=e.strstart-e.block_start,(i>=r||(i||t===ut)&&t!==st&&0===e.strm.avail_in&&i<=n)&&(a=i>n?n:i,s=t===ut&&0===e.strm.avail_in&&a===i?1:0,at(e,e.block_start,a,s),e.block_start+=a,Dt(e.strm)),s?3:1)},Ut=(e,t)=>{let a,i;for(;;){if(e.lookahead<Nt){if($t(e),e.lookahead<Nt&&t===st)return 1;if(0===e.lookahead)break}if(a=0,e.lookahead>=3&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==a&&e.strstart-a<=e.w_size-Nt&&(e.match_length=Bt(e,a)),e.match_length>=3)if(i=nt(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Et(e,e.ins_h,e.window[e.strstart+1]);else i=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2},zt=(e,t)=>{let a,i,n;for(;;){if(e.lookahead<Nt){if($t(e),e.lookahead<Nt&&t===st)return 1;if(0===e.lookahead)break}if(a=0,e.lookahead>=3&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==a&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-Nt&&(e.match_length=Bt(e,a),e.match_length<=5&&(e.strategy===gt||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-3,i=nt(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=n&&(e.ins_h=Et(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,i&&(Lt(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(i=nt(e,0,e.window[e.strstart-1]),i&&Lt(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=nt(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2};function Wt(e,t,a,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=a,this.max_chain=i,this.func=n}const Yt=[new Wt(0,0,0,0,jt),new Wt(4,4,8,4,Ut),new Wt(4,5,16,8,Ut),new Wt(4,6,32,32,Ut),new Wt(4,4,16,16,zt),new Wt(8,16,32,32,zt),new Wt(8,16,128,128,zt),new Wt(8,32,128,256,zt),new Wt(32,128,258,1024,zt),new Wt(32,258,258,4096,zt)];function Ht(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=kt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),It(this.dyn_ltree),It(this.dyn_dtree),It(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),It(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),It(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Gt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==xt&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==Tt&&t.status!==Mt?1:0},qt=e=>{if(Gt(e))return Vt(e,ht);e.total_in=e.total_out=0,e.data_type=At;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?xt:Tt,e.adler=2===t.wrap?0:1,t.last_flush=-2,tt(t),dt},Zt=e=>{const t=qt(e);var a;return t===dt&&((a=e.state).window_size=2*a.w_size,It(a.head),a.max_lazy_match=Yt[a.level].max_lazy,a.good_match=Yt[a.level].good_length,a.nice_match=Yt[a.level].nice_length,a.max_chain_length=Yt[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),t},Jt=(e,t,a,i,n,r)=>{if(!e)return ht;let s=1;if(t===yt&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),n<1||n>9||a!==kt||i<8||i>15||t<0||t>9||r<0||r>_t||8===i&&1!==s)return Vt(e,ht);8===i&&(i=9);const o=new Ht;return e.state=o,o.strm=e,o.status=xt,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=t,o.strategy=r,o.method=a,Zt(e)};var Kt=(e,t)=>{if(Gt(e)||t>ct||t<0)return e?Vt(e,ht):ht;const a=e.state;if(!e.output||0!==e.avail_in&&!e.input||a.status===Mt&&t!==ut)return Vt(e,0===e.avail_out?mt:ht);const i=a.last_flush;if(a.last_flush=t,0!==a.pending){if(Dt(e),0===e.avail_out)return a.last_flush=-1,dt}else if(0===e.avail_in&&Ct(t)<=Ct(i)&&t!==ut)return Vt(e,mt);if(a.status===Mt&&0!==e.avail_in)return Vt(e,mt);if(a.status===xt&&0===a.wrap&&(a.status=Tt),a.status===xt){let t=kt+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=bt||a.level<2?0:a.level<6?1:6===a.level?2:3,t|=i<<6,0!==a.strstart&&(t|=32),t+=31-t%31,Pt(a,t),0!==a.strstart&&(Pt(a,e.adler>>>16),Pt(a,65535&e.adler)),e.adler=1,a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt}if(57===a.status)if(e.adler=0,Rt(a,31),Rt(a,139),Rt(a,8),a.gzhead)Rt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Rt(a,255&a.gzhead.time),Rt(a,a.gzhead.time>>8&255),Rt(a,a.gzhead.time>>16&255),Rt(a,a.gzhead.time>>24&255),Rt(a,9===a.level?2:a.strategy>=bt||a.level<2?4:0),Rt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Rt(a,255&a.gzhead.extra.length),Rt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=Xe(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,0),Rt(a,9===a.level?2:a.strategy>=bt||a.level<2?4:0),Rt(a,3),a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt;if(69===a.status){if(a.gzhead.extra){let t=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let n=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+n),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>t&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex+=n,Dt(e),0!==a.pending)return a.last_flush=-1,dt;t=0,i-=n}let n=new Uint8Array(a.gzhead.extra);a.pending_buf.set(n.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>t&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let t,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),Dt(e),0!==a.pending)return a.last_flush=-1,dt;i=0}t=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,Rt(a,t)}while(0!==t);a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let t,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i)),Dt(e),0!==a.pending)return a.last_flush=-1,dt;i=0}t=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,Rt(a,t)}while(0!==t);a.gzhead.hcrc&&a.pending>i&&(e.adler=Xe(e.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(Dt(e),0!==a.pending))return a.last_flush=-1,dt;Rt(a,255&e.adler),Rt(a,e.adler>>8&255),e.adler=0}if(a.status=Tt,Dt(e),0!==a.pending)return a.last_flush=-1,dt}if(0!==e.avail_in||0!==a.lookahead||t!==st&&a.status!==Mt){let i=0===a.level?jt(a,t):a.strategy===bt?((e,t)=>{let a;for(;;){if(0===e.lookahead&&($t(e),0===e.lookahead)){if(t===st)return 1;break}if(e.match_length=0,a=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,a&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2})(a,t):a.strategy===vt?((e,t)=>{let a,i,n,r;const s=e.window;for(;;){if(e.lookahead<=St){if($t(e),e.lookahead<=St&&t===st)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=e.strstart-1,i=s[n],i===s[++n]&&i===s[++n]&&i===s[++n])){r=e.strstart+St;do{}while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&n<r);e.match_length=St-(r-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(a=nt(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(a=nt(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),a&&(Lt(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ut?(Lt(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(Lt(e,!1),0===e.strm.avail_out)?1:2})(a,t):Yt[a.level].func(a,t);if(3!==i&&4!==i||(a.status=Mt),1===i||3===i)return 0===e.avail_out&&(a.last_flush=-1),dt;if(2===i&&(t===ot?rt(a):t!==ct&&(at(a,0,0,!1),t===lt&&(It(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),Dt(e),0===e.avail_out))return a.last_flush=-1,dt}return t!==ut?dt:a.wrap<=0?pt:(2===a.wrap?(Rt(a,255&e.adler),Rt(a,e.adler>>8&255),Rt(a,e.adler>>16&255),Rt(a,e.adler>>24&255),Rt(a,255&e.total_in),Rt(a,e.total_in>>8&255),Rt(a,e.total_in>>16&255),Rt(a,e.total_in>>24&255)):(Pt(a,e.adler>>>16),Pt(a,65535&e.adler)),Dt(e),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?dt:pt)},Xt={deflateInit:(e,t)=>Jt(e,t,kt,15,8,wt),deflateInit2:Jt,deflateReset:Zt,deflateResetKeep:qt,deflateSetHeader:(e,t)=>Gt(e)||2!==e.state.wrap?ht:(e.state.gzhead=t,dt),deflate:Kt,deflateEnd:e=>{if(Gt(e))return ht;const t=e.state.status;return e.state=null,t===Tt?Vt(e,ft):dt},deflateSetDictionary:(e,t)=>{let a=t.length;if(Gt(e))return ht;const i=e.state,n=i.wrap;if(2===n||1===n&&i.status!==xt||i.lookahead)return ht;if(1===n&&(e.adler=Je(e.adler,t,a,0)),i.wrap=0,a>=i.w_size){0===n&&(It(i.head),i.strstart=0,i.block_start=0,i.insert=0);let e=new Uint8Array(i.w_size);e.set(t.subarray(a-i.w_size,a),0),t=e,a=i.w_size}const r=e.avail_in,s=e.next_in,o=e.input;for(e.avail_in=a,e.next_in=0,e.input=t,$t(i);i.lookahead>=3;){let e=i.strstart,t=i.lookahead-2;do{i.ins_h=Et(i,i.ins_h,i.window[e+3-1]),i.prev[e&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=e,e++}while(--t);i.strstart=e,i.lookahead=2,$t(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,e.next_in=s,e.input=o,e.avail_in=r,i.wrap=n,dt},deflateInfo:"pako deflate (from Nodeca project)"};const Qt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var ea=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const a=t.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const t in a)Qt(a,t)&&(e[t]=a[t])}}return e},ta=e=>{let t=0;for(let a=0,i=e.length;a<i;a++)t+=e[a].length;const a=new Uint8Array(t);for(let t=0,i=0,n=e.length;t<n;t++){let n=e[t];a.set(n,i),i+=n.length}return a};let aa=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){aa=!1}const ia=new Uint8Array(256);for(let e=0;e<256;e++)ia[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ia[254]=ia[254]=1;var na=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,a,i,n,r,s=e.length,o=0;for(n=0;n<s;n++)a=e.charCodeAt(n),55296==(64512&a)&&n+1<s&&(i=e.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),o+=a<128?1:a<2048?2:a<65536?3:4;for(t=new Uint8Array(o),r=0,n=0;r<o;n++)a=e.charCodeAt(n),55296==(64512&a)&&n+1<s&&(i=e.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),a<128?t[r++]=a:a<2048?(t[r++]=192|a>>>6,t[r++]=128|63&a):a<65536?(t[r++]=224|a>>>12,t[r++]=128|a>>>6&63,t[r++]=128|63&a):(t[r++]=240|a>>>18,t[r++]=128|a>>>12&63,t[r++]=128|a>>>6&63,t[r++]=128|63&a);return t},ra=(e,t)=>{const a=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let i,n;const r=new Array(2*a);for(n=0,i=0;i<a;){let t=e[i++];if(t<128){r[n++]=t;continue}let s=ia[t];if(s>4)r[n++]=65533,i+=s-1;else{for(t&=2===s?31:3===s?15:7;s>1&&i<a;)t=t<<6|63&e[i++],s--;s>1?r[n++]=65533:t<65536?r[n++]=t:(t-=65536,r[n++]=55296|t>>10&1023,r[n++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&aa)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let a="";for(let i=0;i<t;i++)a+=String.fromCharCode(e[i]);return a})(r,n)},sa=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let a=t-1;for(;a>=0&&128==(192&e[a]);)a--;return a<0||0===a?t:a+ia[e[a]]>t?a:t};var oa=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const la=Object.prototype.toString,{Z_NO_FLUSH:ua,Z_SYNC_FLUSH:ca,Z_FULL_FLUSH:da,Z_FINISH:pa,Z_OK:ha,Z_STREAM_END:fa,Z_DEFAULT_COMPRESSION:ma,Z_DEFAULT_STRATEGY:ya,Z_DEFLATED:ga}=et;function ba(e){this.options=ea({level:ma,method:ga,chunkSize:16384,windowBits:15,memLevel:8,strategy:ya},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new oa,this.strm.avail_out=0;let a=Xt.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(a!==ha)throw new Error(Qe[a]);if(t.header&&Xt.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?na(t.dictionary):"[object ArrayBuffer]"===la.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,a=Xt.deflateSetDictionary(this.strm,e),a!==ha)throw new Error(Qe[a]);this._dict_set=!0}}function va(e,t){const a=new ba(t);if(a.push(e,!0),a.err)throw a.msg||Qe[a.err];return a.result}ba.prototype.push=function(e,t){const a=this.strm,i=this.options.chunkSize;let n,r;if(this.ended)return!1;for(r=t===~~t?t:!0===t?pa:ua,"string"==typeof e?a.input=na(e):"[object ArrayBuffer]"===la.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(r===ca||r===da)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Xt.deflate(a,r),n===fa)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Xt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ha;if(0!==a.avail_out){if(r>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},ba.prototype.onData=function(e){this.chunks.push(e)},ba.prototype.onEnd=function(e){e===ha&&(this.result=ta(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var _a=function(e,t){return(t=t||{}).raw=!0,va(e,t)},wa=function(e,t){return(t=t||{}).gzip=!0,va(e,t)},Aa={Deflate:ba,deflate:va,deflateRaw:_a,gzip:wa};const ka=16209;var Sa=function(e,t){let a,i,n,r,s,o,l,u,c,d,p,h,f,m,y,g,b,v,_,w,A,k,S,N;const x=e.state;a=e.next_in,S=e.input,i=a+(e.avail_in-5),n=e.next_out,N=e.output,r=n-(t-e.avail_out),s=n+(e.avail_out-257),o=x.dmax,l=x.wsize,u=x.whave,c=x.wnext,d=x.window,p=x.hold,h=x.bits,f=x.lencode,m=x.distcode,y=(1<<x.lenbits)-1,g=(1<<x.distbits)-1;e:do{h<15&&(p+=S[a++]<<h,h+=8,p+=S[a++]<<h,h+=8),b=f[p&y];t:for(;;){if(v=b>>>24,p>>>=v,h-=v,v=b>>>16&255,0===v)N[n++]=65535&b;else{if(!(16&v)){if(64&v){if(32&v){x.mode=16191;break e}e.msg="invalid literal/length code",x.mode=ka;break e}b=f[(65535&b)+(p&(1<<v)-1)];continue t}for(_=65535&b,v&=15,v&&(h<v&&(p+=S[a++]<<h,h+=8),_+=p&(1<<v)-1,p>>>=v,h-=v),h<15&&(p+=S[a++]<<h,h+=8,p+=S[a++]<<h,h+=8),b=m[p&g];;){if(v=b>>>24,p>>>=v,h-=v,v=b>>>16&255,16&v){if(w=65535&b,v&=15,h<v&&(p+=S[a++]<<h,h+=8,h<v&&(p+=S[a++]<<h,h+=8)),w+=p&(1<<v)-1,w>o){e.msg="invalid distance too far back",x.mode=ka;break e}if(p>>>=v,h-=v,v=n-r,w>v){if(v=w-v,v>u&&x.sane){e.msg="invalid distance too far back",x.mode=ka;break e}if(A=0,k=d,0===c){if(A+=l-v,v<_){_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}}else if(c<v){if(A+=l+c-v,v-=c,v<_){_-=v;do{N[n++]=d[A++]}while(--v);if(A=0,c<_){v=c,_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}}}else if(A+=c-v,v<_){_-=v;do{N[n++]=d[A++]}while(--v);A=n-w,k=N}for(;_>2;)N[n++]=k[A++],N[n++]=k[A++],N[n++]=k[A++],_-=3;_&&(N[n++]=k[A++],_>1&&(N[n++]=k[A++]))}else{A=n-w;do{N[n++]=N[A++],N[n++]=N[A++],N[n++]=N[A++],_-=3}while(_>2);_&&(N[n++]=N[A++],_>1&&(N[n++]=N[A++]))}break}if(64&v){e.msg="invalid distance code",x.mode=ka;break e}b=m[(65535&b)+(p&(1<<v)-1)]}}break}}while(a<i&&n<s);_=h>>3,a-=_,h-=_<<3,p&=(1<<h)-1,e.next_in=a,e.next_out=n,e.avail_in=a<i?i-a+5:5-(a-i),e.avail_out=n<s?s-n+257:257-(n-s),x.hold=p,x.bits=h};const Na=15,xa=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ta=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Ma=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Va=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Ca=(e,t,a,i,n,r,s,o)=>{const l=o.bits;let u,c,d,p,h,f,m=0,y=0,g=0,b=0,v=0,_=0,w=0,A=0,k=0,S=0,N=null;const x=new Uint16Array(16),T=new Uint16Array(16);let M,V,C,I=null;for(m=0;m<=Na;m++)x[m]=0;for(y=0;y<i;y++)x[t[a+y]]++;for(v=l,b=Na;b>=1&&0===x[b];b--);if(v>b&&(v=b),0===b)return n[r++]=20971520,n[r++]=20971520,o.bits=1,0;for(g=1;g<b&&0===x[g];g++);for(v<g&&(v=g),A=1,m=1;m<=Na;m++)if(A<<=1,A-=x[m],A<0)return-1;if(A>0&&(0===e||1!==b))return-1;for(T[1]=0,m=1;m<Na;m++)T[m+1]=T[m]+x[m];for(y=0;y<i;y++)0!==t[a+y]&&(s[T[t[a+y]]++]=y);if(0===e?(N=I=s,f=20):1===e?(N=xa,I=Ta,f=257):(N=Ma,I=Va,f=0),S=0,y=0,m=g,h=r,_=v,w=0,d=-1,k=1<<v,p=k-1,1===e&&k>852||2===e&&k>592)return 1;for(;;){M=m-w,s[y]+1<f?(V=0,C=s[y]):s[y]>=f?(V=I[s[y]-f],C=N[s[y]-f]):(V=96,C=0),u=1<<m-w,c=1<<_,g=c;do{c-=u,n[h+(S>>w)+c]=M<<24|V<<16|C}while(0!==c);for(u=1<<m-1;S&u;)u>>=1;if(0!==u?(S&=u-1,S+=u):S=0,y++,0==--x[m]){if(m===b)break;m=t[a+s[y]]}if(m>v&&(S&p)!==d){for(0===w&&(w=v),h+=g,_=m-w,A=1<<_;_+w<b&&(A-=x[_+w],!(A<=0));)_++,A<<=1;if(k+=1<<_,1===e&&k>852||2===e&&k>592)return 1;d=S&p,n[d]=v<<24|_<<16|h-r}}return 0!==S&&(n[h+S]=m-w<<24|64<<16),o.bits=v,0};const{Z_FINISH:Ia,Z_BLOCK:Fa,Z_TREES:Ea,Z_OK:Da,Z_STREAM_END:La,Z_NEED_DICT:Ra,Z_STREAM_ERROR:Pa,Z_DATA_ERROR:Oa,Z_MEM_ERROR:Ba,Z_BUF_ERROR:$a,Z_DEFLATED:ja}=et,Ua=16180,za=16190,Wa=16191,Ya=16192,Ha=16194,Ga=16199,qa=16200,Za=16206,Ja=16209,Ka=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Xa(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Qa=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Ua||t.mode>16211?1:0},ei=e=>{if(Qa(e))return Pa;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Ua,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,Da},ti=e=>{if(Qa(e))return Pa;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ei(e)},ai=(e,t)=>{let a;if(Qa(e))return Pa;const i=e.state;return t<0?(a=0,t=-t):(a=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Pa:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=a,i.wbits=t,ti(e))},ii=(e,t)=>{if(!e)return Pa;const a=new Xa;e.state=a,a.strm=e,a.window=null,a.mode=Ua;const i=ai(e,t);return i!==Da&&(e.state=null),i};let ni,ri,si=!0;const oi=e=>{if(si){ni=new Int32Array(512),ri=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Ca(1,e.lens,0,288,ni,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Ca(2,e.lens,0,32,ri,0,e.work,{bits:5}),si=!1}e.lencode=ni,e.lenbits=9,e.distcode=ri,e.distbits=5},li=(e,t,a,i)=>{let n;const r=e.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(t.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),r.window.set(t.subarray(a-i,a-i+n),r.wnext),(i-=n)?(r.window.set(t.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=n))),0};var ui=(e,t)=>{let a,i,n,r,s,o,l,u,c,d,p,h,f,m,y,g,b,v,_,w,A,k,S=0;const N=new Uint8Array(4);let x,T;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Qa(e)||!e.output||!e.input&&0!==e.avail_in)return Pa;a=e.state,a.mode===Wa&&(a.mode=Ya),s=e.next_out,n=e.output,l=e.avail_out,r=e.next_in,i=e.input,o=e.avail_in,u=a.hold,c=a.bits,d=o,p=l,k=Da;e:for(;;)switch(a.mode){case Ua:if(0===a.wrap){a.mode=Ya;break}for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(2&a.wrap&&35615===u){0===a.wbits&&(a.wbits=15),a.check=0,N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0),u=0,c=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",a.mode=Ja;break}if((15&u)!==ja){e.msg="unknown compression method",a.mode=Ja;break}if(u>>>=4,c-=4,A=8+(15&u),0===a.wbits&&(a.wbits=A),A>15||A>a.wbits){e.msg="invalid window size",a.mode=Ja;break}a.dmax=1<<a.wbits,a.flags=0,e.adler=a.check=1,a.mode=512&u?16189:Wa,u=0,c=0;break;case 16181:for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(a.flags=u,(255&a.flags)!==ja){e.msg="unknown compression method",a.mode=Ja;break}if(57344&a.flags){e.msg="unknown header flags set",a.mode=Ja;break}a.head&&(a.head.text=u>>8&1),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0,a.mode=16182;case 16182:for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.head&&(a.head.time=u),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,N[2]=u>>>16&255,N[3]=u>>>24&255,a.check=Xe(a.check,N,4,0)),u=0,c=0,a.mode=16183;case 16183:for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.head&&(a.head.xflags=255&u,a.head.os=u>>8),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0,a.mode=16184;case 16184:if(1024&a.flags){for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.length=u,a.head&&(a.head.extra_len=u),512&a.flags&&4&a.wrap&&(N[0]=255&u,N[1]=u>>>8&255,a.check=Xe(a.check,N,2,0)),u=0,c=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(h=a.length,h>o&&(h=o),h&&(a.head&&(A=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+h),A)),512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,a.length-=h),a.length))break e;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break e;h=0;do{A=i[r+h++],a.head&&A&&a.length<65536&&(a.head.name+=String.fromCharCode(A))}while(A&&h<o);if(512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,A)break e}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break e;h=0;do{A=i[r+h++],a.head&&A&&a.length<65536&&(a.head.comment+=String.fromCharCode(A))}while(A&&h<o);if(512&a.flags&&4&a.wrap&&(a.check=Xe(a.check,i,h,r)),o-=h,r+=h,A)break e}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;c<16;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(4&a.wrap&&u!==(65535&a.check)){e.msg="header crc mismatch",a.mode=Ja;break}u=0,c=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),e.adler=a.check=0,a.mode=Wa;break;case 16189:for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}e.adler=a.check=Ka(u),u=0,c=0,a.mode=za;case za:if(0===a.havedict)return e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,Ra;e.adler=a.check=1,a.mode=Wa;case Wa:if(t===Fa||t===Ea)break e;case Ya:if(a.last){u>>>=7&c,c-=7&c,a.mode=Za;break}for(;c<3;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}switch(a.last=1&u,u>>>=1,c-=1,3&u){case 0:a.mode=16193;break;case 1:if(oi(a),a.mode=Ga,t===Ea){u>>>=2,c-=2;break e}break;case 2:a.mode=16196;break;case 3:e.msg="invalid block type",a.mode=Ja}u>>>=2,c-=2;break;case 16193:for(u>>>=7&c,c-=7&c;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if((65535&u)!=(u>>>16^65535)){e.msg="invalid stored block lengths",a.mode=Ja;break}if(a.length=65535&u,u=0,c=0,a.mode=Ha,t===Ea)break e;case Ha:a.mode=16195;case 16195:if(h=a.length,h){if(h>o&&(h=o),h>l&&(h=l),0===h)break e;n.set(i.subarray(r,r+h),s),o-=h,r+=h,l-=h,s+=h,a.length-=h;break}a.mode=Wa;break;case 16196:for(;c<14;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(a.nlen=257+(31&u),u>>>=5,c-=5,a.ndist=1+(31&u),u>>>=5,c-=5,a.ncode=4+(15&u),u>>>=4,c-=4,a.nlen>286||a.ndist>30){e.msg="too many length or distance symbols",a.mode=Ja;break}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;c<3;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.lens[M[a.have++]]=7&u,u>>>=3,c-=3}for(;a.have<19;)a.lens[M[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,x={bits:a.lenbits},k=Ca(0,a.lens,0,19,a.lencode,0,a.work,x),a.lenbits=x.bits,k){e.msg="invalid code lengths set",a.mode=Ja;break}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;S=a.lencode[u&(1<<a.lenbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(b<16)u>>>=y,c-=y,a.lens[a.have++]=b;else{if(16===b){for(T=y+2;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(u>>>=y,c-=y,0===a.have){e.msg="invalid bit length repeat",a.mode=Ja;break}A=a.lens[a.have-1],h=3+(3&u),u>>>=2,c-=2}else if(17===b){for(T=y+3;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=y,c-=y,A=0,h=3+(7&u),u>>>=3,c-=3}else{for(T=y+7;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=y,c-=y,A=0,h=11+(127&u),u>>>=7,c-=7}if(a.have+h>a.nlen+a.ndist){e.msg="invalid bit length repeat",a.mode=Ja;break}for(;h--;)a.lens[a.have++]=A}}if(a.mode===Ja)break;if(0===a.lens[256]){e.msg="invalid code -- missing end-of-block",a.mode=Ja;break}if(a.lenbits=9,x={bits:a.lenbits},k=Ca(1,a.lens,0,a.nlen,a.lencode,0,a.work,x),a.lenbits=x.bits,k){e.msg="invalid literal/lengths set",a.mode=Ja;break}if(a.distbits=6,a.distcode=a.distdyn,x={bits:a.distbits},k=Ca(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,x),a.distbits=x.bits,k){e.msg="invalid distances set",a.mode=Ja;break}if(a.mode=Ga,t===Ea)break e;case Ga:a.mode=qa;case qa:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,Sa(e,p),s=e.next_out,n=e.output,l=e.avail_out,r=e.next_in,i=e.input,o=e.avail_in,u=a.hold,c=a.bits,a.mode===Wa&&(a.back=-1);break}for(a.back=0;S=a.lencode[u&(1<<a.lenbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(g&&!(240&g)){for(v=y,_=g,w=b;S=a.lencode[w+((u&(1<<v+_)-1)>>v)],y=S>>>24,g=S>>>16&255,b=65535&S,!(v+y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=v,c-=v,a.back+=v}if(u>>>=y,c-=y,a.back+=y,a.length=b,0===g){a.mode=16205;break}if(32&g){a.back=-1,a.mode=Wa;break}if(64&g){e.msg="invalid literal/length code",a.mode=Ja;break}a.extra=15&g,a.mode=16201;case 16201:if(a.extra){for(T=a.extra;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.length+=u&(1<<a.extra)-1,u>>>=a.extra,c-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;S=a.distcode[u&(1<<a.distbits)-1],y=S>>>24,g=S>>>16&255,b=65535&S,!(y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(!(240&g)){for(v=y,_=g,w=b;S=a.distcode[w+((u&(1<<v+_)-1)>>v)],y=S>>>24,g=S>>>16&255,b=65535&S,!(v+y<=c);){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}u>>>=v,c-=v,a.back+=v}if(u>>>=y,c-=y,a.back+=y,64&g){e.msg="invalid distance code",a.mode=Ja;break}a.offset=b,a.extra=15&g,a.mode=16203;case 16203:if(a.extra){for(T=a.extra;c<T;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}a.offset+=u&(1<<a.extra)-1,u>>>=a.extra,c-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){e.msg="invalid distance too far back",a.mode=Ja;break}a.mode=16204;case 16204:if(0===l)break e;if(h=p-l,a.offset>h){if(h=a.offset-h,h>a.whave&&a.sane){e.msg="invalid distance too far back",a.mode=Ja;break}h>a.wnext?(h-=a.wnext,f=a.wsize-h):f=a.wnext-h,h>a.length&&(h=a.length),m=a.window}else m=n,f=s-a.offset,h=a.length;h>l&&(h=l),l-=h,a.length-=h;do{n[s++]=m[f++]}while(--h);0===a.length&&(a.mode=qa);break;case 16205:if(0===l)break e;n[s++]=a.length,l--,a.mode=qa;break;case Za:if(a.wrap){for(;c<32;){if(0===o)break e;o--,u|=i[r++]<<c,c+=8}if(p-=l,e.total_out+=p,a.total+=p,4&a.wrap&&p&&(e.adler=a.check=a.flags?Xe(a.check,n,p,s-p):Je(a.check,n,p,s-p)),p=l,4&a.wrap&&(a.flags?u:Ka(u))!==a.check){e.msg="incorrect data check",a.mode=Ja;break}u=0,c=0}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;c<32;){if(0===o)break e;o--,u+=i[r++]<<c,c+=8}if(4&a.wrap&&u!==(4294967295&a.total)){e.msg="incorrect length check",a.mode=Ja;break}u=0,c=0}a.mode=16208;case 16208:k=La;break e;case Ja:k=Oa;break e;case 16210:return Ba;default:return Pa}return e.next_out=s,e.avail_out=l,e.next_in=r,e.avail_in=o,a.hold=u,a.bits=c,(a.wsize||p!==e.avail_out&&a.mode<Ja&&(a.mode<Za||t!==Ia))&&li(e,e.output,e.next_out,p-e.avail_out),d-=e.avail_in,p-=e.avail_out,e.total_in+=d,e.total_out+=p,a.total+=p,4&a.wrap&&p&&(e.adler=a.check=a.flags?Xe(a.check,n,p,e.next_out-p):Je(a.check,n,p,e.next_out-p)),e.data_type=a.bits+(a.last?64:0)+(a.mode===Wa?128:0)+(a.mode===Ga||a.mode===Ha?256:0),(0===d&&0===p||t===Ia)&&k===Da&&(k=$a),k},ci={inflateReset:ti,inflateReset2:ai,inflateResetKeep:ei,inflateInit:e=>ii(e,15),inflateInit2:ii,inflate:ui,inflateEnd:e=>{if(Qa(e))return Pa;let t=e.state;return t.window&&(t.window=null),e.state=null,Da},inflateGetHeader:(e,t)=>{if(Qa(e))return Pa;const a=e.state;return 2&a.wrap?(a.head=t,t.done=!1,Da):Pa},inflateSetDictionary:(e,t)=>{const a=t.length;let i,n,r;return Qa(e)?Pa:(i=e.state,0!==i.wrap&&i.mode!==za?Pa:i.mode===za&&(n=1,n=Je(n,t,a,0),n!==i.check)?Oa:(r=li(e,t,a,a),r?(i.mode=16210,Ba):(i.havedict=1,Da)))},inflateInfo:"pako inflate (from Nodeca project)"};var di=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const pi=Object.prototype.toString,{Z_NO_FLUSH:hi,Z_FINISH:fi,Z_OK:mi,Z_STREAM_END:yi,Z_NEED_DICT:gi,Z_STREAM_ERROR:bi,Z_DATA_ERROR:vi,Z_MEM_ERROR:_i}=et;function wi(e){this.options=ea({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new oa,this.strm.avail_out=0;let a=ci.inflateInit2(this.strm,t.windowBits);if(a!==mi)throw new Error(Qe[a]);if(this.header=new di,ci.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=na(t.dictionary):"[object ArrayBuffer]"===pi.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(a=ci.inflateSetDictionary(this.strm,t.dictionary),a!==mi)))throw new Error(Qe[a])}function Ai(e,t){const a=new wi(t);if(a.push(e),a.err)throw a.msg||Qe[a.err];return a.result}wi.prototype.push=function(e,t){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let r,s,o;if(this.ended)return!1;for(s=t===~~t?t:!0===t?fi:hi,"[object ArrayBuffer]"===pi.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),r=ci.inflate(a,s),r===gi&&n&&(r=ci.inflateSetDictionary(a,n),r===mi?r=ci.inflate(a,s):r===vi&&(r=gi));a.avail_in>0&&r===yi&&a.state.wrap>0&&0!==e[a.next_in];)ci.inflateReset(a),r=ci.inflate(a,s);switch(r){case bi:case vi:case gi:case _i:return this.onEnd(r),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||r===yi))if("string"===this.options.to){let e=sa(a.output,a.next_out),t=a.next_out-e,n=ra(a.output,e);a.next_out=t,a.avail_out=i-t,t&&a.output.set(a.output.subarray(e,e+t),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==mi||0!==o){if(r===yi)return r=ci.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},wi.prototype.onData=function(e){this.chunks.push(e)},wi.prototype.onEnd=function(e){e===mi&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=ta(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ki=function(e,t){return(t=t||{}).raw=!0,Ai(e,t)},Si={Inflate:wi,inflate:Ai,inflateRaw:ki,ungzip:Ai};const{Deflate:Ni,deflate:xi,deflateRaw:Ti,gzip:Mi}=Aa,{Inflate:Vi,inflate:Ci,inflateRaw:Ii,ungzip:Fi}=Si;var Ei={Deflate:Ni,deflate:xi,deflateRaw:Ti,gzip:Mi,Inflate:Vi,inflate:Ci,inflateRaw:Ii,ungzip:Fi,constants:et};const Di={files:{},items:{},folders:{}};function Li(e){return Di.files[e]}function Ri(){return Di.folders}function Pi(e){return Di.folders[e]}function Oi(e,t){for(const a of Object.values(Di.folders))if(a.name===e&&a.parent===t)return a}function Bi(e,t){for(const a of Object.values(Di.items))if(a.name===e&&a.folder._id===t)return a}function $i(){return Di.items}function ji(e){return Di.items[e]}function Ui(e,t){Di.items[e]=t.rootItem;for(const[e,a]of Object.entries(t.metadata)){if(t.files[e]&&(Di.files[e]={blob:new Blob([new Uint8Array(t.files[e])],{type:a.mimeType}),hash:a.hash,itemName:a.name,itemType:a.type,mimeType:a.mimeType}),a.attachments)for(const i of a.attachments){const a=Wi(e,i.name,i.queryParam,i.index);Di.files[a]={blob:new Blob([new Uint8Array(t.files[a])],{type:i.mimeType}),hash:i.hash,itemName:i.name,itemType:i.type,mimeType:i.mimeType}}Di.items[e]=a}for(const a of Object.values(t.folders))a._id=e+":"+a._id,a.parent=e+":"+a.parent,Di.folders[a._id]=a}async function zi(e,t){const a=r.Buffer.from(await e.arrayBuffer());let i=0;i+=8;const n=a.readInt32LE(8);i+=4;const s=new TextDecoder,o=a.subarray(i,i+n);i+=n;const l=JSON.parse(s.decode(o));l.root=t+"/"+l.root;let u=0;const c=Ei.ungzip(a.subarray(i)),d=r.Buffer.from(c),p=d.subarray(u,u+l.metadataSize);u+=l.metadataSize;const h=JSON.parse(s.decode(p)),f={};Object.entries(h).forEach((([e,a])=>{const i=t+"/"+e;a._id=i,f[i]=a,a.folder._id=t+":"+a.folder._id;for(const e of a.links)e.to=t+"/"+e.to}));const m=d.subarray(u,u+l.foldersSize);u+=l.foldersSize;const y=JSON.parse(s.decode(m)),g={};for(const[,e]of Object.entries(f))if(e.filesize&&(g[e._id]={start:u+(e.packageFileOffset||0),end:u+(e.packageFileOffset||0)+e.filesize}),e.attachments)for(const t of e.attachments)g[Wi(e._id,t.name,t.queryParam,t.index)]={start:u+(t.packageFileOffset||0),end:u+(t.packageFileOffset||0)+t.filesize};const b={};for(const[e,t]of Object.entries(g)){const a=d.subarray(t.start,t.end);b[e]=a}const v=f[l.root],_=[],w=e=>{_.push(e._id);for(const t of e.links)t.item=structuredClone(f[t.to]),w(t.item)};return w(v),{rootItem:v,metadata:f,folders:y,files:b}}function Wi(e,t,a,i){return`${e}_${t}`+(null!=a?`_${a}`:"")+(null!=i?`_${i}`:"")}function Yi(e,t,a,i){return Array.isArray(e.attachments)?e.attachments.filter((e=>e.name===t&&(void 0===i||e.index===i))).reduce(((e,t)=>Math.abs(t.queryParam-(a??0))<Math.abs(e.queryParam-(a??0))?t:e),{queryParam:1/0}):null}function Hi(e,t,a,i){const n=ji(e);if(n){const r=Yi(n,t,a,i);if(!r)return null;return Li(Wi(e,r.name,r.queryParam,r.index))}}var Gi=Object.freeze({__proto__:null,addPackageToCache:Ui,createAttachmentID:Wi,findFolder:Oi,findItem:Bi,getAttachmentFromPackageCache:Hi,getFileFromCache:Li,getFolder:Pi,getFolders:Ri,getItemFromCache:ji,getItems:$i,parsePackage:zi,queryAttachments:Yi});class qi{id=_.createGUID();items=[]}class Zi{itemRepo;undoEvents=[];redoEvents=[];maxUndoCount=100;enabled=!0;snapshots=new Map;_undoRedoPromise=Promise.resolve();constructor(e,t=100){this.itemRepo=e,this.maxUndoCount=t,S.instance.setUndoManager(this),y.$on("undoManager:undo",(e=>this.undo(e))),y.$on("undoManager:redo",(e=>this.redo(e)))}clear(){this.undoEvents=[],this.redoEvents=[],this.snapshots.clear(),y.$emit("undoManager:undoStepsChanged",0),y.$emit("undoManager:redoStepsChanged",0)}createSnapshot(){const e=new qi;for(const t of this.itemRepo.itemInstances.values())for(const a of t.values())e.items.push({_id:a._id,instanceId:a.instanceId,data:this._grabSnapshot(a)});return this.snapshots.set(e.id,e),e.id}rollbackFromSnapshot(e){const t=this.snapshots.get(e);if(!t)throw new M("Snapshot not found");for(const e of t.items){const t=this.itemRepo.itemInstances.get(e._id);if(t){const a=t.get(e.instanceId);a?this._rollbackFromSnapshot(a,e.data):console.error(`[SNAPSHOT] - Trying to rollback snapshot for item but did not find the instance: ${e._id} -> ${e.instanceId}`)}else console.error(`[SNAPSHOT] - Trying to rollback snapshot for item but did not find the item map: ${e._id}`)}this.snapshots.delete(e)}_grabSnapshot(e){const t=[];for(const a of e.fieldInstances)try{t.push(a.createSnapshot())}catch(e){const t=`[SNAPSHOT] - Could not grab snapshot of field ${a.name}`;throw console.error(t,e),new Error(e.toString())}const a=[];for(const t of e.customFieldInstances)try{a.push(t.createSnapshot())}catch(e){const a=`[SNAPSHOT] - Could not grab snapshot of custom field ${t.name}`;throw console.error(a,e),new Error(e.toString())}return new G(e._id,"item",{fieldInstances:t,customFieldInstances:a})}_getFieldInstance(e,t){for(const a of e.fieldInstances)if(a.getId()===t)return a;return null}_getCustomFieldInstance(e,t){for(const a of e.customFieldInstances)if(a.getId()===t)return a;return null}_rollbackFromSnapshot(e,t){for(const a of t.data.fieldInstances){const t=this._getFieldInstance(e,a.id);t?t.rollbackFromSnapshot(a):console.warn("[SNAPSHOT] - Could not find field instance in snapshot: "+a.id)}for(const a of t.data.customFieldInstances){const t=this._getCustomFieldInstance(e,a.id);t?t.rollbackFromSnapshot(a):console.warn("[SNAPSHOT] - Could not find custom field instance in snapshot: "+a.id)}}getEnabled(){return this.enabled}setEnabled(e){this.enabled=!!e}ignore(e){const t=this.enabled;let a=!1;try{t&&this.setEnabled(!1);const i=e();if(i&&i.then)return a=!0,i.finally((()=>{t&&this.setEnabled(!0)}))}finally{t&&!a&&this.setEnabled(!0)}}undo(e){return this._undoRedoPromise=this._undoRedoPromise.then((()=>this._performUndo(e))),this._undoRedoPromise}redo(e){return this._undoRedoPromise=this._undoRedoPromise.then((()=>this._performRedo(e))),this._undoRedoPromise}async _performUndo(e){if(this.enabled&&this.undoEvents.length){for(e=e||1;this.undoEvents.length>0&&e>0;){const t=this.spliceLastEventBundle(this.undoEvents).reverse();for(const e of t)await e.undo(),this.redoEvents.push(e);e--}y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()),y.$emit("undoManager:redoStepsChanged",this.getNumberOfRedoBundles())}}async _performRedo(e){if(this.enabled&&this.redoEvents.length){for(e=e||1;this.redoEvents.length>0&&e>0;){const t=this.spliceLastEventBundle(this.redoEvents).reverse();for(const e of t)await e.redo(),this.undoEvents.push(e);e--}y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()),y.$emit("undoManager:redoStepsChanged",this.getNumberOfRedoBundles())}}getUndoSteps(){return this.undoEvents.map((function(e){return{type:e.type,itemId:e.itemId,prop:e.prop}}))}getRedoSteps(){return this.redoEvents.map((e=>({type:e.type,itemId:e.itemId,prop:e.prop})))}event(e){if(this.enabled){if(this.redoEvents=[],y.$emit("undoManager:redoStepsChanged",0),this.assignBundleIndexToEvent(e),0!==this.undoEvents.length){let t=!1;for(let a=this.undoEvents.length-1;a>=0;a--){const i=this.undoEvents[a];if(!e.isWithinMergeDeltaOf(i,300))break;const n=i.merge(e,300);if(n){t=!0,this.undoEvents.splice(a,1),this.undoEvents.push(n);break}}t||(this.undoEvents.push(e),y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles()))}else this.undoEvents.push(e),y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles());if(this.getNumberOfUndoBundles()>this.maxUndoCount){this.spliceFirstEventBundle(this.undoEvents);for(const e of this.undoEvents)e.bundleIndex-=1;y.$emit("undoManager:undoStepsChanged",this.getNumberOfUndoBundles())}}}getNumberOfUndoBundles(){return 0===this.undoEvents.length?0:this.undoEvents.at(-1).bundleIndex+1}getNumberOfRedoBundles(){if(0===this.redoEvents.length)return 0;const e=this.getNumberOfUndoBundles()-1;return this.redoEvents.at(0).bundleIndex-e}spliceLastEventBundle(e){if(0===e.length)return[];const t=e.at(-1).bundleIndex;let a=e.length-1;for(let i=e.length-1;i>=0&&e[i].bundleIndex===t;i--)a=i;return e.splice(a)}spliceFirstEventBundle(e){if(0===e.length)return[];const t=e.at(0).bundleIndex;for(let a=1;a<e.length;a++)if(e[a].bundleIndex!==t)return e.splice(0,a);return e.splice(0)}assignBundleIndexToEvent(e){if(0===this.undoEvents.length)return void(e.bundleIndex=0);const t=this.undoEvents.at(-1),a=Math.abs(e.createdAt-t.createdAt);e.bundleIndex=a>300?t.bundleIndex+1:t.bundleIndex}}class Ji{updateItemLinksAndAttributes(e,t,a){try{const i=[],n={},r={};this.getLinksAndAttributes(e,i,n,r,t,a),e.attributes=n,e.userAttributes=r,e.links=i}catch(e){throw console.error(e),new C(e)}}getLinksAndAttributes(e,t,a,i,n,r){e.fieldInstances.length&&this.retrieveLinksAndAttributesFromFieldInstances(e.fieldInstances,t,a,n,r),e.userFieldInstances.length&&this.retrieveLinksAndAttributesFromFieldInstances(e.userFieldInstances,t,i,n,r),e.customFieldInstances.length&&(console.log(e.customFieldInstances),this.retrieveLinksAndAttributesFromFieldInstances(e.customFieldInstances,t,i,n,r,"_"))}retrieveLinksAndAttributesFromFieldInstances(e,t,a,i,n,r=""){for(const s of e)switch(s.type){case"Link":if(s.value&&t){if(n&&s.hidden)continue;i?t.push({usage:r+s.name,to:s.value._id,item:s.value}):t.push({usage:r+s.name,to:s.value._id})}break;case"Attribute":a&&(a[r+s.name]=s.value);break;case"List":s.blocks&&this.traverseListFieldInstances(s.blocks,t,a,r+s.name,i);break;case"Tree":if(s.blocks){const e=s.blocks[0];e.blocks&&this.traverseTreeFieldInstance(e.blocks,t,a,r+s.name,i)}break;case"NodeGraph":if(s.blocks&&this.traverseTreeFieldInstance(s.blocks,t,a,r+s.name,i),a&&Array.isArray(s.connections)){let e=0;for(const t of s.connections){a[`${r}${s.name}#connection[${e++}]`]={srcNode:t.srcNode,srcSlot:t.srcSlot,destNode:t.destNode,destSlot:t.destSlot}}}}}traverseTreeFieldInstance(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}[${r}]`,o=e+"#type",l=e+"#id",u=e+"#posx",c=e+"#posy";a&&(a[e+"#usage"]="Block",a[o]=s.type,a[l]=s.id,void 0!==s.posX&&(a[u]=s.posX||0),void 0!==s.posY&&(a[c]=s.posY||0));for(const i of s.fields){const r=`${e}->${i.name}`;switch(i.type){case"Link":i.value&&t&&(n?t.push({usage:r,to:i.value._id,item:i.value}):t.push({usage:r,to:i.value._id}));break;case"List":i.blocks&&this.traverseListFieldInstances(i.blocks,t,a,r,n);break;case"Attribute":a&&(a[r]=i.value)}}s.scripts&&this.processScripts(s.scripts,t,a,e,n),s.blocks&&this.traverseTreeFieldInstance(s.blocks,t,a,e,n),r++}}traverseListFieldInstances(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}[${r}]`;for(const i of s.fields){const r=`${e}->${i.name}`;switch(i.type){case"Link":if(i.value&&t){const e={usage:r,to:"object"==typeof i.value?i.value._id:i.value,item:null};n&&"object"===i.value&&(e.item=i.value),t.push(e)}break;case"Attribute":a&&(a[r]=i.value)}}r++}}processScripts(e,t,a,i,n){let r=0;for(const s of e){const e=`${i}#scripts[${r}]`,o=e+"#id",l=e+"#item";a&&(a[e+"#usage"]="Script",a[o]=s.id),t&&s.item.value&&(n?t.push({usage:l,to:s.item.value._id,item:s.item.value}):t.push({usage:l,to:s.item.value._id}));for(const i of s.fields){const r=`${e}->${i.name}`;if("Link"===i.type)i.value&&t&&(n?t.push({usage:r,to:i.value._id,item:i.value}):t.push({usage:r,to:i.value._id}));else a&&(a[r]=i.value)}r++}}}class Ki{apiClient;activeItem=void 0;rootItemId=void 0;loadingItems=new Map;loadedItems=new Map;itemInstances=new Map;resolvedPaths=new Map;jail;apiGateway;itemCache;undoManager=new Zi(this);itemPreparator=new ue(this);itemChangeProcessor=new Ji;usePublicApi;constructor(e,t){this.apiClient=t,this.apiGateway=new Y(t),this.itemCache=new H(this.apiGateway),this.usePublicApi=!!e,this.jail={active:!1,mountedFolders:[]},y.$on("item:rename",(e=>this.handleRename(e)))}_logGroup(e){}_logGroupEnd(){}_log(e){}getLoadedItems(){return Array.from(this.loadedItems.values())}getItemInstances(){return this.itemInstances}findLoadedItem(e){return this.loadedItems.get(e)}_handleError(e,t){throw console.error(e),new C("ItemRepo: "+t)}getUndoManager(){return this.undoManager}async createFieldsForItem(e,t,a,i=!1){return this.itemPreparator.createFields(e,a,t,"",!1,a.attributes,i)}async createScriptsForItem(e,t=[],a,i=!0){const n=[];for(const i of t){if(!i.item)continue;const t=await this.loadItem(i.item);if(!t)continue;const r=new X(void 0,e,a,t);n.push(r);for(const e of i.fields){const t=new J(r,e.name,e.value,a);r.addField(t)}}e.scripts=i?S.instance.proxyScriptArray(n,e,a):n}clear(){this.rootItemId=void 0,this.activeItem=void 0,this.loadedItems.clear(),this.resolvedPaths.clear(),this.itemInstances.clear(),this.loadingItems.clear();const e=this.apiClient.getCollab();e&&e.endCollaboration()}removeBlock(e,t){t.blocks.removeObject(e),e.parent=void 0}traverseBlockPairs(e,t,a){a(e,t);for(let i=0;i<e.blocks.length&&i<t.blocks.length;i++)this.traverseBlockPairs(e.blocks[i],t.blocks[i],a)}copyScripts(e,t,a=!1){const i=new Map;this.traverseBlockPairs(e,t,((e,t)=>i.set(e.getId(),t.getId())));const n=[];return this.traverseBlockPairs(e,t,((e,t)=>{for(const r of e.scripts){const e=r.clone(i);a&&(e.deferInitCall=!0),t.scripts.push(e),n.push(e)}})),n}updateScriptFieldReferences(e,t){const a=new Map;this.traverseBlockPairs(e,t,((e,t)=>{a.set(e.id,t.id)})),this.updateScriptFieldReferencesFromMap(a,t)}updateScriptFieldReferencesFromMap(e,t){this.traverseBlocks((t=>{for(const a of t.scripts)for(const t of a.fields)e.has(t.value)&&(t.value=e.get(t.value))}),[t])}async createNewBlock(e,t,a){const i=new ce(void 0,t,e.typeName,void 0,void 0,a),n=await this.createFieldsForItem(i,e.template,a);return i.setFields(n),i.blocks=S.instance.proxyBlockArray(i.blocks,i,a),await this.createScriptsForItem(i,void 0,a),this.addBlockToParent(i,t,a)}addBlockToParent(e,t,a){e.parent=t;const i=S.instance.proxyBlock(e,a);return t.blocks.push(i),i}async createNewListEntry(e,t,a){const i=new ce(void 0,void 0,e.typeName,void 0,void 0,a),n=await this.createFieldsForItem(i,e.template,a);return i.setFields(n),i.blocks=S.instance.proxyListArray(i.blocks,t,a),S.instance.proxyBlock(i,a)}async createNewGraphNode(e,t,a,i,n){const r=new ce(void 0,void 0,e.typeName,void 0,e.displayName,n),s=await this.itemPreparator.createFields(r,n,e.template,"",!0,n.attributes);return r.setFields(s),r.setInputs(e.inputs),r.setOutputs(e.outputs),r.setPosition(a,i),r.blocks=S.instance.proxyGraphBlockArray(r.blocks,t),this.addNodeToGraph(r,t,n),r}addNodeToGraph(e,t,a){const i=S.instance.proxyGraphBlock(e,a);t.blocks.push(i)}removeGraphNode(e,t){const a=[];for(const i of e.connections)i.srcNode!==t.id&&i.destNode!==t.id||a.push(i);for(const t of a)e.connections.removeObject(t);e.blocks.removeObject(t)}addGraphLink(e,t,a,i,n,r){e.connections.push(new Z({srcNode:t,srcSlot:a,destNode:i,destSlot:n},r))}removeGraphLink(e,t,a,i,n){for(const r of e.connections)if(r.srcNode===t&&r.srcSlot===a&&r.destNode===i&&r.destSlot===n)return void e.connections.removeObject(r)}createNewScript(e,t=-1,a){t=t>=0?t:e.scripts.length;const i=new X(void 0,e,a);return e.scripts.splice(t,0,i),i}removeScript(e,t){t.scripts.removeObject(e)}findBlock(e){for(const t of this.itemInstances.values())for(const a of t.values()){const t=a.findBlock(e);if(t)return t}return null}async loadPackage(e,t){const a=await _.downloadFile(e,((e,a,i)=>{t&&t({phase:"Loading",percent:e,bytesTotal:a,bytesLoaded:i})})),i=await a.data,n=this.apiClient.getCollab();n&&n.endCollaboration();const r=new re({_id:"root",name:"Root package",type:"Package",links:[],attributes:{},fields:[],readOnly:!0,isPackaged:!1}),s=await zi(i,r._id);Ui(r._id,structuredClone(s));const o=Object.values(s.metadata).reverse();for(const e of o)e._id===s.rootItem._id&&(r.packageContent=e,r.packageType=e.type);return await this._linkAndPrepareItems(o),r.packageContent=this.loadedItems.get(s.rootItem._id),this.activeItem=r,r}createPackageItemUrl(e){const t=Li(e);return t?URL.createObjectURL(t.blob):null}revokePackageItemUrl(e){URL.revokeObjectURL(e)}async _loadPackageContentRecursively(e,t){t("Loading from cache",0);const a=await this.apiClient.itemCache.addItemToCache(e._id,void 0,e.hash,(function(e,a,i){t("Loading from cloud",.9*e,i,a)})),i=await(await fetch(a.objectUrl)).blob();t("Unpacking",90);const n=await zi(i,e._id);Ui(e._id,structuredClone(n));const r=Object.values(n.metadata).reverse();for(const t of r)t._id===n.rootItem._id&&(e.packageContent=t,e.packageType=t.type);return r}createNewItemInstance(e){const t=this.loadedItems.get(e);if(!t)return console.error(`Tried creating new instance of item, but it was not found: ${e}`),null;const a=t.clone(!0);return this._addItemInstance(a),a}_addLoadedItem(e){this.loadedItems.set(e._id,e),this._addItemInstance(e)}_addItemInstance(e){let t=this.itemInstances.get(e._id);t||(t=new Map,this.itemInstances.set(e._id,t)),t.set(e.instanceId,e)}async loadItemByRelativePath(e,t,a={}){try{const i=ji(e);let n;if(i){const e=t.split("/"),a=e.pop();let r=Pi(i.folder._id);for(const t of e)if(r=".."===t?Pi(r.parent):Oi(t,r._id),!r)return;const s=Bi(a,r._id);n=s?._id}else n=await this.resolveRelativePath(t,e);return this.loadItem(n,a)}catch(e){this._handleError(e,`Unable to load item by relative path: ${t}: ${e}`)}}async _loadItemFromApi(e,t={}){let a;if(this.apiGateway.start(),t.recursive)if(this.usePublicApi)a=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e,!0),a.forEach((e=>e.public=!0));else try{a=await this.apiGateway.call("_loadItemFromApi","getItemAggregatedRecursive",e,{withAttachmentInfo:!0,noFields:!0})}catch{a=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e,!0),a.forEach((e=>e.public=!0))}else{let t;if(this.usePublicApi)t=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e),t.public=!0;else try{t=await this.apiGateway.call("_loadItemFromApi","getItemAggregated",e,{noFields:!0})}catch{t=await this.apiGateway.call("_loadItemFromApi","getItemPublicRecursive",e),t.public=!0}a=[t]}return this.apiGateway.end(),a}_relinkItems(e,t){for(const a of e){if(Array.isArray(a.links))for(const e of a.links)e.item=t.get(e.to),e.item||e.stopRecursion||console.warn(`Missing link in item '${a.name}' (${a._id}) to: ${e.to} with usage ${e.usage}`);a.packageContent&&(a.packageContent=t.get(a.packageContent._id))}}createItem(e,t){const a={_id:_.createGeneratedItemId(),name:`Generated ${e}`,type:e,attributes:t||{},links:[],fields:[],fieldInstances:[],userFieldInstances:[],isGenerated:!0};return this.itemPreparator.prepare(a)}getLoadedItem(e){return this.loadedItems.get(e)}async loadItem(e,t={}){let a,i,n;if(n=this.loadedItems.get(e),n)return n;if(n=this.loadingItems.get(e),n)return n;try{const r=new Promise(((e,t)=>{a=e,i=t}));return this.loadingItems.set(e,r),n=await this._loadItemInternal(e,t),a(n),!this.activeItem&&n&&(this.rootItemId=e,this.activeItem=n,t.withCollaboration,await y.$emit("itemRepo:itemLoaded",n)),n}catch(t){return this._handleError(t,`Unable to load item ${e}: ${t}`),void i(void 0)}finally{this.loadingItems.delete(e)}}async _loadItemInternal(e,t={}){const a=(e,a,i=0,n=0)=>{"function"==typeof t.progressCallback&&t.progressCallback({phase:e,percent:a,bytesTotal:i,bytesLoaded:n})};a("Fetching metadata",1);let i=await this._loadItemFromApi(e,t);if(i=i.filter((e=>!this.loadedItems.has(e._id))),0===i.length)return console.log("After loading the item, it turns out we have them all already loaded! This should not happen!"),this.loadedItems.get(e);const n=i[0]._id;for(const e of i)if("Package"===e.type){const t=await this._loadPackageContentRecursively(e,a);for(const e of t)i.push(e)}a("Preparing data",100),await this._linkAndPrepareItems(i);return this.loadedItems.get(n)}async _linkAndPrepareItems(e){const t=new Map;for(const a of e)t.set(a._id,a);const a=new Map([...this.loadedItems,...t]);this._relinkItems(e,a);const i=[],n=()=>{const e=t.values().next().value;return t.delete(e._id),this._log(`- Fetched next item ${e.name} (${e._id})`),e},r=async e=>{this._logGroup(`- Preparing item ${e.name} (${e._id})`);const t=await this.itemPreparator.prepare(e);return i.push(t),this._addLoadedItem(t),this._logGroupEnd(),t};for(this.itemPreparator.setItemFetcher((async e=>{this._logGroup(`- Requesting item ${e.name} (${e._id})`);let a=this.loadedItems.get(e._id);if(a)return this._log("- Already prepared. Returning."),this._logGroupEnd(),a;const i=t.get(e._id);return i?(t.delete(e._id),this._log("- Don't have it yet. Preparing..."),a=await r(i),this._log("- Now prepared. Returning."),this._logGroupEnd(),a):(console.error("ItemFetcher: Could not find requested item: "+e._id,t,this.loadedItems),null)}));t.size>0;){let e=n();await r(e)}return this._relinkItems(i,this.loadedItems),i}async resolveRelativePath(e,t=null){if(!(t=t||this.activeItem?._id||null))return null;const a=`${t}#${e}`;let i;return i=this.resolvedPaths.has(a)?this.resolvedPaths.get(a):this.usePublicApi?await this.apiClient.publicResolveRelativeItem(t,e):await this.apiClient.resolveRelativeItem(t,e),this.resolvedPaths.set(a,i),i}async traverseItems(e,t=void 0){if("function"!=typeof e)return;const a=this,i=new Map;await async function t(n){if(!n)return;if(i.has(n._id))return;i.set(n._id,!0);const r=e(n);if(r&&r.then&&await r,Array.isArray(n.links))for(const e of n.links)if(e.item)await t(e.item);else if(e.to)try{const i=await a.loadItem(e.to);await t(i)}catch{console.warn(`Could not load additional item ${e.to} so cannot traverse it. Probably dead link!`)}}(t||this.activeItem)}async traverseBlocks(e,t){for(const a of t){const t=e(a);t&&t.then&&await t,Array.isArray(a.blocks)&&a.blocks?.length&&await this.traverseBlocks(e,a.blocks)}}async traverseFieldInstances(e,t){const a=this;t=t||this.activeItem?.fieldInstances||[];for(const i of t){const t=e(i);t&&t.then&&await t,Array.isArray(i.blocks)&&await this.traverseBlocks((async function(t){Array.isArray(t.fields)&&t.fields?.length&&await a.traverseFieldInstances(e,t.fields)}),i.blocks)}}async _updateLinkReferences(e,t,a,i){t?await this.traverseItems((async n=>{if(Array.isArray(n.fieldInstances)&&n.fieldInstances.length){await this.traverseFieldInstances((async a=>{"Link"===a.type&&a.value&&a.value._id===e&&(i&&(a.value=null),a.value=t)}),n.fieldInstances);for(const a of n.fieldInstances)Array.isArray(a.blocks)&&await this.traverseBlocks((async a=>{if(Array.isArray(a.scripts))for(const n of a.scripts)n.item?.value?._id===e&&(i&&(n.item.value=void 0),n.item.value=t)}),a.blocks)}if(n.links)for(const r of n.links)r.to===e&&(i&&(r.to=null,r.item=null),r.to=a,r.item=t)})):console.warn(`Aborting link update: Could not load item ${a}`)}async replaceLink(e,t){if(this.getLoadedItem(e)){const a=await this.loadItem(t,{recursive:!0});await this._updateLinkReferences(e,a,t,!1)}}async forceUpdateLink(e){const t=await this.loadItem(e,{recursive:!0});await this._updateLinkReferences(e,t,e,!0)}saveItem(e){return e._id&&e.isDirty?(this.itemChangeProcessor.updateItemLinksAndAttributes(e,!1,!0),e.version||(e.version={major:0,minor:0,revision:1}),this.apiClient.updateItem({_id:e._id,name:e.name,attributes:e.attributes,userAttributes:e.userAttributes,links:e.links,tags:e.tags,contributors:e.contributors,description:e.description,shortDescription:e.shortDescription,categories:e.categories,license:e.license,version:e.version,allowConversation:e.allowConversation,visibility:e.visibility}).then((t=>(JSON.stringify(e.version)===JSON.stringify(t.version)?console.log(`Saved item ${e.name}. New version: ${e.version.major}.${e.version.minor}.${e.version.revision}`):console.log(`Saved item ${e.name}. Version ${e.version.major}.${e.version.minor}.${e.version.revision} -> ${t.version.major}.${t.version.minor}.${t.version.revision}`),t&&t.version&&(e.version=t.version),e.isDirty=!1,this.itemChangeProcessor.updateItemLinksAndAttributes(e,!0,!1),e))).catch((function(t){throw console.error(`Error saving item ${e.name}`,t,e),t}))):null}async save(){console.log("Saving changes in loaded items...");const e=[];for(const t of this.loadedItems.values()){const a=this.saveItem(t);a&&e.push(a)}if(0!==e.length){let t=0;for(const a of e)a.then((function(a){y.$emit("itemRepo:itemSaved",{item:a,progress:++t,total:e.length})}));return Promise.all(e).then((function(){console.log("Saved successfully"),y.$emit("itemRepo:itemsSaved")})).catch((function(e){console.error("Error saving:",e)}))}console.log("No changes detected.")}async existsUnsavedChanges(){if(!this.activeItem)return!1;for(const e of this.loadedItems.values())if(e._id&&e.isDirty)return!0;return!1}handleRename({id:e,newName:t}){for(const a of this.itemInstances.values())for(const i of a.values())i._id===e&&(i.name=t)}isItemKnown(e){return this.loadedItems.has(e)||this.itemInstances.has(e)||this.loadingItems.has(e)}invalidateId(e){this.loadedItems.delete(e),this.itemInstances.delete(e),this.loadingItems.delete(e)}}var Xi,Qi={exports:{}};
|
|
13
13
|
/*!
|
|
14
14
|
localForage -- Offline Storage, Improved
|
|
15
15
|
Version 1.10.0
|
|
16
16
|
https://localforage.github.io/localForage
|
|
17
17
|
(c) 2013-2017 Mozilla, Apache License 2.0
|
|
18
|
-
*/var en=(Xi||(Xi=1,Qi.exports=function e(t,a,i){function n(s,o){if(!a[s]){if(!t[s]){if(!o&&B)return B(s);if(r)return r(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=a[s]={exports:{}};t[s][0].call(u.exports,(function(e){var a=t[s][1][e];return n(a||e)}),u,u.exports,e,t,a,i)}return a[s].exports}for(var r=B,s=0;s<i.length;s++)n(i[s]);return n}({1:[function(e,t,a){(function(e){var a,i,n=e.MutationObserver||e.WebKitMutationObserver;if(n){var r=0,s=new n(c),o=e.document.createTextNode("");s.observe(o,{characterData:!0}),a=function(){o.data=r=++r%2}}else if(e.setImmediate||void 0===e.MessageChannel)a="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){c(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(c,0)};else{var l=new e.MessageChannel;l.port1.onmessage=c,a=function(){l.port2.postMessage(0)}}var u=[];function c(){var e,t;i=!0;for(var a=u.length;a;){for(t=u,u=[],e=-1;++e<a;)t[e]();a=u.length}i=!1}function d(e){1!==u.push(e)||i||a()}t.exports=d}).call(this,void 0!==P?P:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,a){var i=e(1);function n(){}var r={},s=["REJECTED"],o=["FULFILLED"],l=["PENDING"];function u(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==n&&h(this,e)}function c(e,t,a){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof a&&(this.onRejected=a,this.callRejected=this.otherCallRejected)}function d(e,t,a){i((function(){var i;try{i=t(a)}catch(t){return r.reject(e,t)}i===e?r.reject(e,new TypeError("Cannot resolve promise with itself")):r.resolve(e,i)}))}function p(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function h(e,t){var a=!1;function i(t){a||(a=!0,r.reject(e,t))}function n(t){a||(a=!0,r.resolve(e,t))}function s(){t(n,i)}var o=f(s);"error"===o.status&&i(o.value)}function f(e,t){var a={};try{a.value=e(t),a.status="success"}catch(e){a.status="error",a.value=e}return a}function m(e){return e instanceof this?e:r.resolve(new this(n),e)}function y(e){var t=new this(n);return r.reject(t,e)}function g(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var a=e.length,i=!1;if(!a)return this.resolve([]);for(var s=new Array(a),o=0,l=-1,u=new this(n);++l<a;)c(e[l],l);return u;function c(e,n){function l(e){s[n]=e,++o!==a||i||(i=!0,r.resolve(u,s))}t.resolve(e).then(l,(function(e){i||(i=!0,r.reject(u,e))}))}}function b(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var a=e.length,i=!1;if(!a)return this.resolve([]);for(var s=-1,o=new this(n);++s<a;)l(e[s]);return o;function l(e){t.resolve(e).then((function(e){i||(i=!0,r.resolve(o,e))}),(function(e){i||(i=!0,r.reject(o,e))}))}}t.exports=u,u.prototype.catch=function(e){return this.then(null,e)},u.prototype.then=function(e,t){if("function"!=typeof e&&this.state===o||"function"!=typeof t&&this.state===s)return this;var a=new this.constructor(n);return this.state!==l?d(a,this.state===o?e:t,this.outcome):this.queue.push(new c(a,e,t)),a},c.prototype.callFulfilled=function(e){r.resolve(this.promise,e)},c.prototype.otherCallFulfilled=function(e){d(this.promise,this.onFulfilled,e)},c.prototype.callRejected=function(e){r.reject(this.promise,e)},c.prototype.otherCallRejected=function(e){d(this.promise,this.onRejected,e)},r.resolve=function(e,t){var a=f(p,t);if("error"===a.status)return r.reject(e,a.value);var i=a.value;if(i)h(e,i);else{e.state=o,e.outcome=t;for(var n=-1,s=e.queue.length;++n<s;)e.queue[n].callFulfilled(t)}return e},r.reject=function(e,t){e.state=s,e.outcome=t;for(var a=-1,i=e.queue.length;++a<i;)e.queue[a].callRejected(t);return e},u.resolve=m,u.reject=y,u.all=g,u.race=b},{1:1}],3:[function(e,t,a){(function(t){"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,void 0!==P?P:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,a){var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}var s=r();function o(){try{if(!s||!s.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function l(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(n){if("TypeError"!==n.name)throw n;for(var a=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),i=0;i<e.length;i+=1)a.append(e[i]);return a.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var u=Promise;function c(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function d(e,t,a){"function"==typeof t&&e.then(t),"function"==typeof a&&e.catch(a)}function p(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function h(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",m=void 0,y={},g=Object.prototype.toString,b="readonly",v="readwrite";function _(e){for(var t=e.length,a=new ArrayBuffer(t),i=new Uint8Array(a),n=0;n<t;n++)i[n]=e.charCodeAt(n);return a}function w(e){return new u((function(t){var a=e.transaction(f,v),i=l([""]);a.objectStore(f).put(i,"key"),a.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},a.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),a=navigator.userAgent.match(/Edge\//);t(a||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof m?u.resolve(m):w(e).then((function(e){return m=e}))}function k(e){var t=y[e.name],a={};a.promise=new u((function(e,t){a.resolve=e,a.reject=t})),t.deferredOperations.push(a),t.dbReady?t.dbReady=t.dbReady.then((function(){return a.promise})):t.dbReady=a.promise}function S(e){var t=y[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function N(e,t){var a=y[e.name].deferredOperations.pop();if(a)return a.reject(t),a.promise}function x(e,t){return new u((function(a,i){if(y[e.name]=y[e.name]||R(),e.db){if(!t)return a(e.db);k(e),e.db.close()}var n=[e.name];t&&n.push(e.version);var r=s.open.apply(s,n);t&&(r.onupgradeneeded=function(t){var a=r.result;try{a.createObjectStore(e.storeName),t.oldVersion<=1&&a.createObjectStore(f)}catch(a){if("ConstraintError"!==a.name)throw a;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),r.onerror=function(e){e.preventDefault(),i(r.error)},r.onsuccess=function(){var t=r.result;t.onversionchange=function(e){e.target.close()},a(t),S(e)}}))}function T(e){return x(e,!1)}function M(e){return x(e,!0)}function V(e,t){if(!e.db)return!0;var a=!e.db.objectStoreNames.contains(e.storeName),i=e.version<e.db.version,n=e.version>e.db.version;if(i&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),n||a){if(a){var r=e.db.version+1;r>e.version&&(e.version=r)}return!0}return!1}function C(e){return new u((function(t,a){var i=new FileReader;i.onerror=a,i.onloadend=function(a){var i=btoa(a.target.result||"");t({__local_forage_encoded_blob:!0,data:i,type:e.type})},i.readAsBinaryString(e)}))}function I(e){return l([_(atob(e.data))],{type:e.type})}function F(e){return e&&e.__local_forage_encoded_blob}function E(e){var t=this,a=t._initReady().then((function(){var e=y[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return d(a,e,e),a}function D(e){k(e);for(var t=y[e.name],a=t.forages,i=0;i<a.length;i++){var n=a[i];n._dbInfo.db&&(n._dbInfo.db.close(),n._dbInfo.db=null)}return e.db=null,T(e).then((function(t){return e.db=t,V(e)?M(e):t})).then((function(i){e.db=t.db=i;for(var n=0;n<a.length;n++)a[n]._dbInfo.db=i})).catch((function(t){throw N(e,t),t}))}function L(e,t,a,i){void 0===i&&(i=1);try{var n=e.db.transaction(e.storeName,t);a(null,n)}catch(n){if(i>0&&(!e.db||"InvalidStateError"===n.name||"NotFoundError"===n.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===n.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),M(e)})).then((function(){return D(e).then((function(){L(e,t,a,i-1)}))})).catch(a);a(n)}}function R(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function P(e){var t=this,a={db:null};if(e)for(var i in e)a[i]=e[i];var n=y[a.name];n||(n=R(),y[a.name]=n),n.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=E);var r=[];function s(){return u.resolve()}for(var o=0;o<n.forages.length;o++){var l=n.forages[o];l!==t&&r.push(l._initReady().catch(s))}var c=n.forages.slice(0);return u.all(r).then((function(){return a.db=n.db,T(a)})).then((function(e){return a.db=e,V(a,t._defaultConfig.version)?M(a):e})).then((function(e){a.db=n.db=e,t._dbInfo=a;for(var i=0;i<c.length;i++){var r=c[i];r!==t&&(r._dbInfo.db=a.db,r._dbInfo.version=a.version)}}))}function O(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).get(e);s.onsuccess=function(){var e=s.result;void 0===e&&(e=null),F(e)&&(e=I(e)),t(e)},s.onerror=function(){i(s.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function B(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).openCursor(),o=1;s.onsuccess=function(){var a=s.result;if(a){var i=a.value;F(i)&&(i=I(i));var n=e(i,a.key,o++);void 0!==n?t(n):a.continue()}else t()},s.onerror=function(){i(s.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function $(e,t,a){var i=this;e=p(e);var n=new u((function(a,n){var r;i.ready().then((function(){return r=i._dbInfo,"[object Blob]"===g.call(t)?A(r.db).then((function(e){return e?t:C(t)})):t})).then((function(t){L(i._dbInfo,v,(function(r,s){if(r)return n(r);try{var o=s.objectStore(i._dbInfo.storeName);null===t&&(t=void 0);var l=o.put(t,e);s.oncomplete=function(){void 0===t&&(t=null),a(t)},s.onabort=s.onerror=function(){var e=l.error?l.error:l.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return c(n,a),n}function j(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,v,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).delete(e);r.oncomplete=function(){t()},r.onerror=function(){i(s.error)},r.onabort=function(){var e=s.error?s.error:s.transaction.error;i(e)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function U(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,v,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).clear();n.oncomplete=function(){e()},n.onabort=n.onerror=function(){var e=r.error?r.error:r.transaction.error;a(e)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function z(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,b,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).count();r.onsuccess=function(){e(r.result)},r.onerror=function(){a(r.error)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function W(e,t){var a=this,i=new u((function(t,i){e<0?t(null):a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName),o=!1,l=s.openKeyCursor();l.onsuccess=function(){var a=l.result;a?0===e||o?t(a.key):(o=!0,a.advance(e)):t(null)},l.onerror=function(){i(l.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function Y(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,b,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).openKeyCursor(),s=[];r.onsuccess=function(){var t=r.result;t?(s.push(t.key),t.continue()):e(s)},r.onerror=function(){a(r.error)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function H(e,t){t=h.apply(this,arguments);var a=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||a.name,e.storeName=e.storeName||a.storeName);var i,n=this;if(e.name){var r=e.name===a.name&&n._dbInfo.db?u.resolve(n._dbInfo.db):T(e).then((function(t){var a=y[e.name],i=a.forages;a.db=t;for(var n=0;n<i.length;n++)i[n]._dbInfo.db=t;return t}));i=e.storeName?r.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var a=t.version+1;k(e);var i=y[e.name],n=i.forages;t.close();for(var r=0;r<n.length;r++){var o=n[r];o._dbInfo.db=null,o._dbInfo.version=a}var l=new u((function(t,i){var n=s.open(e.name,a);n.onerror=function(e){n.result.close(),i(e)},n.onupgradeneeded=function(){n.result.deleteObjectStore(e.storeName)},n.onsuccess=function(){var e=n.result;e.close(),t(e)}}));return l.then((function(e){i.db=e;for(var t=0;t<n.length;t++){var a=n[t];a._dbInfo.db=e,S(a._dbInfo)}})).catch((function(t){throw(N(e,t)||u.resolve()).catch((function(){})),t}))}})):r.then((function(t){k(e);var a=y[e.name],i=a.forages;t.close();for(var n=0;n<i.length;n++)i[n]._dbInfo.db=null;var r=new u((function(t,a){var i=s.deleteDatabase(e.name);i.onerror=function(){var e=i.result;e&&e.close(),a(i.error)},i.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},i.onsuccess=function(){var e=i.result;e&&e.close(),t(e)}}));return r.then((function(e){a.db=e;for(var t=0;t<i.length;t++)S(i[t]._dbInfo)})).catch((function(t){throw(N(e,t)||u.resolve()).catch((function(){})),t}))}))}else i=u.reject("Invalid arguments");return c(i,t),i}var G={_driver:"asyncStorage",_initStorage:P,_support:o(),iterate:B,getItem:O,setItem:$,removeItem:j,clear:U,length:z,key:W,keys:Y,dropInstance:H};function q(){return"function"==typeof openDatabase}var Z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J="~~local_forage_type~",K=/^~~local_forage_type~([^~]+)~/,X="__lfsc__:",Q=X.length,ee="arbf",te="blob",ae="si08",ie="ui08",ne="uic8",re="si16",se="si32",oe="ur16",le="ui32",ue="fl32",ce="fl64",de=Q+ee.length,pe=Object.prototype.toString;function he(e){var t,a,i,n,r,s=.75*e.length,o=e.length,l=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var u=new ArrayBuffer(s),c=new Uint8Array(u);for(t=0;t<o;t+=4)a=Z.indexOf(e[t]),i=Z.indexOf(e[t+1]),n=Z.indexOf(e[t+2]),r=Z.indexOf(e[t+3]),c[l++]=a<<2|i>>4,c[l++]=(15&i)<<4|n>>2,c[l++]=(3&n)<<6|63&r;return u}function fe(e){var t,a=new Uint8Array(e),i="";for(t=0;t<a.length;t+=3)i+=Z[a[t]>>2],i+=Z[(3&a[t])<<4|a[t+1]>>4],i+=Z[(15&a[t+1])<<2|a[t+2]>>6],i+=Z[63&a[t+2]];return a.length%3==2?i=i.substring(0,i.length-1)+"=":a.length%3==1&&(i=i.substring(0,i.length-2)+"=="),i}function me(e,t){var a="";if(e&&(a=pe.call(e)),e&&("[object ArrayBuffer]"===a||e.buffer&&"[object ArrayBuffer]"===pe.call(e.buffer))){var i,n=X;e instanceof ArrayBuffer?(i=e,n+=ee):(i=e.buffer,"[object Int8Array]"===a?n+=ae:"[object Uint8Array]"===a?n+=ie:"[object Uint8ClampedArray]"===a?n+=ne:"[object Int16Array]"===a?n+=re:"[object Uint16Array]"===a?n+=oe:"[object Int32Array]"===a?n+=se:"[object Uint32Array]"===a?n+=le:"[object Float32Array]"===a?n+=ue:"[object Float64Array]"===a?n+=ce:t(new Error("Failed to get type for BinaryArray"))),t(n+fe(i))}else if("[object Blob]"===a){var r=new FileReader;r.onload=function(){var a=J+e.type+"~"+fe(this.result);t(X+te+a)},r.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(a){console.error("Couldn't convert value into a JSON string: ",e),t(null,a)}}function ye(e){if(e.substring(0,Q)!==X)return JSON.parse(e);var t,a=e.substring(de),i=e.substring(Q,de);if(i===te&&K.test(a)){var n=a.match(K);t=n[1],a=a.substring(n[0].length)}var r=he(a);switch(i){case ee:return r;case te:return l([r],{type:t});case ae:return new Int8Array(r);case ie:return new Uint8Array(r);case ne:return new Uint8ClampedArray(r);case re:return new Int16Array(r);case oe:return new Uint16Array(r);case se:return new Int32Array(r);case le:return new Uint32Array(r);case ue:return new Float32Array(r);case ce:return new Float64Array(r);default:throw new Error("Unkown type: "+i)}}var ge={serialize:me,deserialize:ye,stringToBuffer:he,bufferToString:fe};function be(e,t,a,i){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],a,i)}function ve(e){var t=this,a={db:null};if(e)for(var i in e)a[i]="string"!=typeof e[i]?e[i].toString():e[i];var n=new u((function(e,i){try{a.db=openDatabase(a.name,String(a.version),a.description,a.size)}catch(e){return i(e)}a.db.transaction((function(n){be(n,a,(function(){t._dbInfo=a,e()}),(function(e,t){i(t)}))}),i)}));return a.serializer=ge,n}function _e(e,t,a,i,n,r){e.executeSql(a,i,n,(function(e,s){s.code===s.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,o){o.rows.length?r(e,s):be(e,t,(function(){e.executeSql(a,i,n,r)}),r)}),r):r(e,s)}),r)}function we(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT * FROM "+n.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,a){var i=a.rows.length?a.rows.item(0).value:null;i&&(i=n.serializer.deserialize(i)),t(i)}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function Ae(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT * FROM "+n.storeName,[],(function(a,i){for(var r=i.rows,s=r.length,o=0;o<s;o++){var l=r.item(o),u=l.value;if(u&&(u=n.serializer.deserialize(u)),void 0!==(u=e(u,l.key,o+1)))return void t(u)}t()}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function ke(e,t,a,i){var n=this;e=p(e);var r=new u((function(r,s){n.ready().then((function(){void 0===t&&(t=null);var o=t,l=n._dbInfo;l.serializer.serialize(t,(function(t,u){u?s(u):l.db.transaction((function(a){_e(a,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){r(o)}),(function(e,t){s(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(i>0)return void r(ke.apply(n,[e,o,a,i-1]));s(t)}}))}))})).catch(s)}));return c(r,a),r}function Se(e,t,a){return ke.apply(this,[e,t,a,1])}function Ne(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"DELETE FROM "+n.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function xe(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"DELETE FROM "+i.storeName,[],(function(){e()}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Te(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"SELECT COUNT(key) as c FROM "+i.storeName,[],(function(t,a){var i=a.rows.item(0).c;e(i)}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Me(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT key FROM "+n.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,a){var i=a.rows.length?a.rows.item(0).key:null;t(i)}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function Ve(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"SELECT key FROM "+i.storeName,[],(function(t,a){for(var i=[],n=0;n<a.rows.length;n++)i.push(a.rows.item(n).key);e(i)}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Ce(e){return new u((function(t,a){e.transaction((function(i){i.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(a,i){for(var n=[],r=0;r<i.rows.length;r++)n.push(i.rows.item(r).name);t({db:e,storeNames:n})}),(function(e,t){a(t)}))}),(function(e){a(e)}))}))}function Ie(e,t){t=h.apply(this,arguments);var a=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||a.name,e.storeName=e.storeName||a.storeName);var i,n=this;return c(i=e.name?new u((function(t){var i;i=e.name===a.name?n._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:i,storeNames:[e.storeName]}):t(Ce(i))})).then((function(e){return new u((function(t,a){e.db.transaction((function(i){function n(e){return new u((function(t,a){i.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){a(t)}))}))}for(var r=[],s=0,o=e.storeNames.length;s<o;s++)r.push(n(e.storeNames[s]));u.all(r).then((function(){t()})).catch((function(e){a(e)}))}),(function(e){a(e)}))}))})):u.reject("Invalid arguments"),t),i}var Fe={_driver:"webSQLStorage",_initStorage:ve,_support:q(),iterate:Ae,getItem:we,setItem:Se,removeItem:Ne,clear:xe,length:Te,key:Me,keys:Ve,dropInstance:Ie};function Ee(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function De(e,t){var a=e.name+"/";return e.storeName!==t.storeName&&(a+=e.storeName+"/"),a}function Le(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function Re(){return!Le()||localStorage.length>0}function Pe(e){var t=this,a={};if(e)for(var i in e)a[i]=e[i];return a.keyPrefix=De(e,t._defaultConfig),Re()?(t._dbInfo=a,a.serializer=ge,u.resolve()):u.reject()}function Oe(e){var t=this,a=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,a=localStorage.length-1;a>=0;a--){var i=localStorage.key(a);0===i.indexOf(e)&&localStorage.removeItem(i)}}));return c(a,e),a}function Be(e,t){var a=this;e=p(e);var i=a.ready().then((function(){var t=a._dbInfo,i=localStorage.getItem(t.keyPrefix+e);return i&&(i=t.serializer.deserialize(i)),i}));return c(i,t),i}function $e(e,t){var a=this,i=a.ready().then((function(){for(var t=a._dbInfo,i=t.keyPrefix,n=i.length,r=localStorage.length,s=1,o=0;o<r;o++){var l=localStorage.key(o);if(0===l.indexOf(i)){var u=localStorage.getItem(l);if(u&&(u=t.serializer.deserialize(u)),void 0!==(u=e(u,l.substring(n),s++)))return u}}}));return c(i,t),i}function je(e,t){var a=this,i=a.ready().then((function(){var t,i=a._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(i.keyPrefix.length)),t}));return c(i,t),i}function Ue(e){var t=this,a=t.ready().then((function(){for(var e=t._dbInfo,a=localStorage.length,i=[],n=0;n<a;n++){var r=localStorage.key(n);0===r.indexOf(e.keyPrefix)&&i.push(r.substring(e.keyPrefix.length))}return i}));return c(a,e),a}function ze(e){var t=this.keys().then((function(e){return e.length}));return c(t,e),t}function We(e,t){var a=this;e=p(e);var i=a.ready().then((function(){var t=a._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return c(i,t),i}function Ye(e,t,a){var i=this;e=p(e);var n=i.ready().then((function(){void 0===t&&(t=null);var a=t;return new u((function(n,r){var s=i._dbInfo;s.serializer.serialize(t,(function(t,i){if(i)r(i);else try{localStorage.setItem(s.keyPrefix+e,t),n(a)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||r(e),r(e)}}))}))}));return c(n,a),n}function He(e,t){if(t=h.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var a=this.config();e.name=e.name||a.name,e.storeName=e.storeName||a.storeName}var i,n=this;return i=e.name?new u((function(t){e.storeName?t(De(e,n._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var a=localStorage.key(t);0===a.indexOf(e)&&localStorage.removeItem(a)}})):u.reject("Invalid arguments"),c(i,t),i}var Ge={_driver:"localStorageWrapper",_initStorage:Pe,_support:Ee(),iterate:$e,getItem:Be,setItem:Ye,removeItem:We,clear:Oe,length:ze,key:je,keys:Ue,dropInstance:He},qe=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Ze=function(e,t){for(var a=e.length,i=0;i<a;){if(qe(e[i],t))return!0;i++}return!1},Je=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ke={},Xe={},Qe={INDEXEDDB:G,WEBSQL:Fe,LOCALSTORAGE:Ge},et=[Qe.INDEXEDDB._driver,Qe.WEBSQL._driver,Qe.LOCALSTORAGE._driver],tt=["dropInstance"],at=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(tt),it={description:"",driver:et.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function nt(e,t){e[t]=function(){var a=arguments;return e.ready().then((function(){return e[t].apply(e,a)}))}}function rt(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var a in t)t.hasOwnProperty(a)&&(Je(t[a])?arguments[0][a]=t[a].slice():arguments[0][a]=t[a])}return arguments[0]}var st=function(){function e(t){for(var a in n(this,e),Qe)if(Qe.hasOwnProperty(a)){var i=Qe[a],r=i._driver;this[a]=r,Ke[r]||this.defineDriver(i)}this._defaultConfig=rt({},it),this._config=rt({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":i(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,a){var i=new u((function(t,a){try{var i=e._driver,n=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void a(n);for(var r=at.concat("_initStorage"),s=0,o=r.length;s<o;s++){var l=r[s];if((!Ze(tt,l)||e[l])&&"function"!=typeof e[l])return void a(n)}var d=function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),a=u.reject(t);return c(a,arguments[arguments.length-1]),a}},a=0,i=tt.length;a<i;a++){var n=tt[a];e[n]||(e[n]=t(n))}};d();var p=function(a){Ke[i]&&console.info("Redefining LocalForage driver: "+i),Ke[i]=e,Xe[i]=a,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(p,a):p(!!e._support):p(!0)}catch(e){a(e)}}));return d(i,t,a),i},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,a){var i=Ke[e]?u.resolve(Ke[e]):u.reject(new Error("Driver not found."));return d(i,t,a),i},e.prototype.getSerializer=function(e){var t=u.resolve(ge);return d(t,e),t},e.prototype.ready=function(e){var t=this,a=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return d(a,e,e),a},e.prototype.setDriver=function(e,t,a){var i=this;Je(e)||(e=[e]);var n=this._getSupportedDrivers(e);function r(){i._config.driver=i.driver()}function s(e){return i._extend(e),r(),i._ready=i._initStorage(i._config),i._ready}function o(e){return function(){var t=0;function a(){for(;t<e.length;){var n=e[t];return t++,i._dbInfo=null,i._ready=null,i.getDriver(n).then(s).catch(a)}r();var o=new Error("No available storage method found.");return i._driverSet=u.reject(o),i._driverSet}return a()}}var l=null!==this._driverSet?this._driverSet.catch((function(){return u.resolve()})):u.resolve();return this._driverSet=l.then((function(){var e=n[0];return i._dbInfo=null,i._ready=null,i.getDriver(e).then((function(e){i._driver=e._driver,r(),i._wrapLibraryMethodsWithReady(),i._initDriver=o(n)}))})).catch((function(){r();var e=new Error("No available storage method found.");return i._driverSet=u.reject(e),i._driverSet})),d(this._driverSet,t,a),this._driverSet},e.prototype.supports=function(e){return!!Xe[e]},e.prototype._extend=function(e){rt(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],a=0,i=e.length;a<i;a++){var n=e[a];this.supports(n)&&t.push(n)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=at.length;e<t;e++)nt(this,at[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),ot=new st;t.exports=ot},{3:3}]},{},[4])(4)),Qi.exports),tn=O(en);class an{databaseName;collectionName;size;_store;constructor(e,t,a){tn.config({driver:tn.INDEXEDDB}),this.databaseName=e||"lumino-cache",this.collectionName=t||"data",this.size=a,this._store=tn.createInstance({name:this.databaseName,storeName:this.collectionName})}async init(){}async _keys(){return this._store.keys()}async _set(e,t){return this._store.setItem(e,t)}async _clear(){return this._store.clear()}async _get(e){return this._store.getItem(e)}async _remove(e){return this._store.removeItem(e)}}function nn(e){let t,a,i,n;e.onmessage=async r=>{const s=r.data;try{switch(s.type){case"init":{i=s.databaseName,n=s.collectionName,t=await navigator.storage.getDirectory();const r=await t.getDirectoryHandle(i,{create:!0});a=await r.getDirectoryHandle(n,{create:!0}),e.postMessage({type:s.type,database:i,collection:n,success:!0});break}case"write":{if(!a)throw new Error("OPFS Worker: not initialized yet!");const t=await a.getFileHandle(s.filename,{create:!0}),r=await t.createSyncAccessHandle();let o;if("string"==typeof s.content){o=(new TextEncoder).encode(s.content).buffer}else if(s.content instanceof ArrayBuffer)o=s.content;else{if(!(s.content instanceof Blob))throw new Error("OPFS Worker: Unsupported content type: "+typeof s.content);o=await s.content.arrayBuffer()}r.truncate(o.byteLength),r.write(o,{at:0}),await r.flush(),r.close(),e.postMessage({type:s.type,database:i,collection:n,success:!0});break}}}catch(t){e.postMessage({type:s.type,success:!1,database:i,collection:n,error:t.message})}}}class rn{databaseName;collectionName;size;_worker;_storage;_root;constructor(e,t,a){this.databaseName=e||"lumino-cache",this.collectionName=t||"data",this.size=a}async init(){if("object"==typeof globalThis.navigator&&"storage"in globalThis.navigator&&"function"==typeof globalThis.navigator.storage.getDirectory){this._storage=await navigator.storage.getDirectory();const e=await this._storage.getDirectoryHandle(this.databaseName,{create:!0});let t,a;this._root=await e.getDirectoryHandle(this.collectionName,{create:!0}),this._worker=new Worker(URL.createObjectURL(new Blob(["(",nn.toString(),")(self)"],{type:"application/javascript"})),{type:"module"});let i=new Promise(((e,i)=>{t=e,a=i}));return this._worker.onmessage=e=>{const i=e.data;i.success||console.error("OPFS Worker failed:",i),"init"===i.type&&(i.success?t():a(i.error))},this._worker.postMessage({type:"init",databaseName:this.databaseName,collectionName:this.collectionName}),i}}async _keys(){if(!this._root)return[];const e=[];for await(const t of this._root.values())e.push(t.name);return e}async _set(e,t){if(!this._root)return;let a;if(t instanceof Blob)a=t;else if("object"==typeof t){const e=JSON.stringify(t,null,2);a=new Blob([e],{type:"application/json"})}else a=new Blob([t],{type:"text/plain"});const i=await this._root.getFileHandle(e,{create:!0});if("function"==typeof i.createWritable){const e=await i.createWritable();await e.write(a),await e.close()}else this._worker.postMessage({type:"write",filename:e,content:a})}async _clear(){if(!this._root)return;const e=[];for await(const t of this._root.values())e.push(this._root.removeEntry(t.name));return Promise.all(e)}async _get(e,t){if(!this._root)return null;let a;try{const t=await this._root.getFileHandle(e);a=await t.getFile()}catch(e){return null}switch(t=t||a.type){case"text/plain":return a.text();case"application/json":{const e=await a.text();try{return JSON.parse(e)}catch(t){return console.error("Content was loaded from cache but could not be json parsed: ",e),null}}default:return a}}async _remove(e){if(this._root)return this._root.removeEntry(e)}}class sn{databaseName;collectionName;size;type;_impl;constructor(e,t,a=0,i=1){switch(this.databaseName=e||"lumino",this.collectionName=t||"data",this.size=1048576*(i||1),this.type=a,this.type){case 0:this._impl=new an(this.databaseName,this.collectionName,this.size);break;case 1:this._impl=new rn(this.databaseName,this.collectionName,this.size);break;default:throw"Invalid storage type: "+a}}async init(){return this._impl.init()}async _keys(){return this._impl._keys()}fixKey(e){return e.replaceAll("/","_")}async _set(e,t){return this._impl._set(this.fixKey(e),t)}async _clear(){return this._impl._clear()}async _get(e,t){return this._impl._get(this.fixKey(e),t)}async _remove(e){return this._impl._remove(this.fixKey(e))}}var on,ln,un,cn,dn,pn,hn,fn,mn,yn,gn,bn,vn,_n,wn,An,kn,Sn,Nn,xn,Tn,Mn,Vn,Cn,In,Fn,En,Dn;function Ln(){if(ln)return on;return ln=1,on=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}}function Rn(){if(pn)return dn;pn=1;var e=function(){if(cn)return un;cn=1;var e="object"==typeof P&&P&&P.Object===Object&&P;return un=e}(),t="object"==typeof self&&self&&self.Object===Object&&self,a=e||t||Function("return this")();return dn=a}function Pn(){if(bn)return gn;bn=1;var e=function(){if(yn)return mn;yn=1;var e=/\s/;return mn=function(t){for(var a=t.length;a--&&e.test(t.charAt(a)););return a}}(),t=/^\s+/;return gn=function(a){return a?a.slice(0,e(a)+1).replace(t,""):a}}function On(){if(_n)return vn;_n=1;var e=Rn().Symbol;return vn=e}function Bn(){if(xn)return Nn;xn=1;var e=On(),t=function(){if(An)return wn;An=1;var e=On(),t=Object.prototype,a=t.hasOwnProperty,i=t.toString,n=e?e.toStringTag:void 0;return wn=function(e){var t=a.call(e,n),r=e[n];try{e[n]=void 0;var s=!0}catch(e){}var o=i.call(e);return s&&(t?e[n]=r:delete e[n]),o}}(),a=function(){if(Sn)return kn;Sn=1;var e=Object.prototype.toString;return kn=function(t){return e.call(t)}}(),i=e?e.toStringTag:void 0;return Nn=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?t(e):a(e)}}function $n(){if(Cn)return Vn;Cn=1;var e=Bn(),t=Mn?Tn:(Mn=1,Tn=function(e){return null!=e&&"object"==typeof e});return Vn=function(a){return"symbol"==typeof a||t(a)&&"[object Symbol]"==e(a)}}var jn=function(){if(Dn)return En;Dn=1;var e=Ln(),t=function(){if(fn)return hn;fn=1;var e=Rn();return hn=function(){return e.Date.now()}}(),a=function(){if(Fn)return In;Fn=1;var e=Pn(),t=Ln(),a=$n(),i=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,r=/^0o[0-7]+$/i,s=parseInt;return In=function(o){if("number"==typeof o)return o;if(a(o))return NaN;if(t(o)){var l="function"==typeof o.valueOf?o.valueOf():o;o=t(l)?l+"":l}if("string"!=typeof o)return 0===o?o:+o;o=e(o);var u=n.test(o);return u||r.test(o)?s(o.slice(2),u?2:8):i.test(o)?NaN:+o}}(),i=Math.max,n=Math.min;return En=function(r,s,o){var l,u,c,d,p,h,f=0,m=!1,y=!1,g=!0;if("function"!=typeof r)throw new TypeError("Expected a function");function b(e){var t=l,a=u;return l=u=void 0,f=e,d=r.apply(a,t)}function v(e){var t=e-h;return void 0===h||t>=s||t<0||y&&e-f>=c}function _(){var e=t();if(v(e))return w(e);p=setTimeout(_,function(e){var t=s-(e-h);return y?n(t,c-(e-f)):t}(e))}function w(e){return p=void 0,g&&l?b(e):(l=u=void 0,d)}function A(){var e=t(),a=v(e);if(l=arguments,u=this,h=e,a){if(void 0===p)return function(e){return f=e,p=setTimeout(_,s),m?b(e):d}(h);if(y)return clearTimeout(p),p=setTimeout(_,s),b(h)}return void 0===p&&(p=setTimeout(_,s)),d}return s=a(s)||0,e(o)&&(m=!!o.leading,c=(y="maxWait"in o)?i(a(o.maxWait)||0,s):c,g="trailing"in o?!!o.trailing:g),A.cancel=function(){void 0!==p&&clearTimeout(p),f=0,l=h=u=p=void 0},A.flush=function(){return void 0===p?d:w(t())},A}}(),Un=O(jn);class zn extends sn{apiClient;cache=new Map;urlToIdMap=new Map;logging=!1;ready=!1;usePublicApi=!1;quota=0;size=0;usePersistentStorage=!1;saveIndex;constructor(e,t,a,i){if(super("lumino","items",1),!a)throw"A lumino client needs to be passed.";this.apiClient=a,this.usePublicApi=e,this.quota=1048576*(i||1024),this.usePersistentStorage=t;this.saveIndex=Un((()=>{const e=[];for(const t of this.cache.values())e.push({id:t.id,time:t.time.valueOf(),size:t.size,hash:t.hash,itemType:t.itemType,mimeType:t.mimeType,itemName:t.itemName});this._set("index",e).then((function(){})).catch((function(e){console.error("Error saving cache index: "+e)}))}),1e3)}async init(){return await super.init(),this.initFromStorage()}getQuota(){return this.quota}setQuota(e){this.quota=e,this.checkQuota()}getCount(){return this.cache.size}getSize(){return this.size}async initFromStorage(){if(this.usePersistentStorage){const e=await this._get("index","application/json");if(e&&Array.isArray(e))for(const t of e)t.time=W(t.time),this.cache.set(t.id,t),this.size+=t.size;else await this._clear(),this.saveIndex()}this.ready=!0,y.$emit("itemCache:cacheReady"),y.$emit("itemCache:cacheChange"),y.$on("item:rename",(e=>this.handleRename(e)))}async addToStorage(e,t){if(this.usePersistentStorage){const a={id:e.id,time:W(e.time.toDate()),size:e.size,hash:e.hash,itemType:e.itemType,mimeType:e.mimeType,itemName:e.itemName};await this._set(`blob_${e.id}`,t),this.cache.set(e.id,a),this.saveIndex()}this.size+=e.size}waitUntilReady(){const e=this;return new Promise(((t,a)=>{try{e.ready?t():y.$on("itemCache:cacheReady",(()=>{t()}))}catch(e){a(e)}}))}findObject(e){return this.cache.get(e)}getEntries(){return this.cache.values()}clear(){for(const e of this.cache.values())e.objectUrl&&URL.revokeObjectURL(e.objectUrl);this.cache.clear(),y.$emit("itemCache:cacheChange"),this.usePersistentStorage&&this._clear().then((function(){console.log("Cache storage cleared.")})).catch((function(e){console.error(e)}))}clearMemory(){for(let e of this.cache.values())e.objectUrl&&(URL.revokeObjectURL(e.objectUrl),delete e.objectUrl);y.$emit("itemCache:cacheChange")}checkQuota(e=0){let t=this.size+e;if(t>this.quota){const e=[...this.cache.entries()].sort((function(e,t){return e[1].time.valueOf()-t[1].time.valueOf()}));let a=0;for(;t>this.quota&&a<e.length;){const i=e[a][1];i.objectUrl||(t-=i.size,this.removeObjectFromCache(i.id)),a++}}}removeObjectFromCache(e){const t=this.cache.get(e);t&&(t.objectUrl&&URL.revokeObjectURL(t.objectUrl),this.cache.delete(e),this.size-=t.size,this.usePersistentStorage&&(this._remove(`blob_${t.id}`).then((function(){console.log(`Removed blob for ${e} from cache`)})).catch((function(t){console.error(`Error removing blob for ${e} from cache: ${t}`)})),this.saveIndex()))}getIdFromUrl(e){return this.urlToIdMap.has(e)?this.urlToIdMap.get(e):null}getById(e){const t=this.findObject(e);return t?(this.logging&&console.log("Retrieving from cache: "+e),t.time=W(),t):(this.logging&&console.error("Object not in cache: "+e),null)}getObjectUrl(e){const t=this.getIdFromUrl(e);if(!t)return console.error("Could not find URL in cache: "+e),"";const a=this.getById(t);return a?a.objectUrl:(console.error("Could not find Id in cache: "+t),"")}async getBufferById(e){const t=await this.getBlobById(e);return t?await new Response(t).arrayBuffer():null}async getBlobById(e){const t=this.getById(e);return t?await fetch(t.objectUrl).then((e=>e.blob())):null}async loadFromStorage(e){if(e.objectUrl)return!0;let t=null;return!!this.usePersistentStorage&&(t=await this._get(`blob_${e.id}`),!!t&&(e.objectUrl=URL.createObjectURL(t),e.time=W(),this.saveIndex(),y.$emit("itemCache:cacheChange"),!0))}getCacheKey(e,t){return t&&"item"!==t.type?e+"_lod"+t.index:e}_getLodLevelUrl(e,t){let a;return a=t&&"item"!==t.type?this.apiClient.getAttachmentDownloadUrl(e,"lod",t.index):this.apiClient.getDownloadUrl(e),a}async loadItem(e,t,a){let i=0;for(;;)try{let i;if(this.usePublicApi)i=t&&"item"!==t.type?await this.apiClient.downloadPublicAttachment(e,"lod",t.index,void 0,a):await this.apiClient.publicDownloadItem(e,a);else try{i=t&&"item"!==t.type?await this.apiClient.downloadAttachment(e,"lod",t.index,void 0,a):await this.apiClient.downloadItem(e,a)}catch{i=t&&"item"!==t.type?await this.apiClient.downloadPublicAttachment(e,"lod",t.index,void 0,a):await this.apiClient.publicDownloadItem(e,a)}return i}catch(t){if(console.log(t),i++,!(i<3))return y.$emit("client:fatalError",`Failed to download item ${e}`),null;console.debug(`Failed attempts to download item ${e}: ${i}. Trying again...`)}}async addItemToCache(e,t,a,i){try{const n=this.getCacheKey(e,t),r=this.findObject(n);if(r&&(a||!this.apiClient.getItemHash||this.usePublicApi||(a=await this.apiClient.getItemHash(e)),a&&r.hash===a&&(this.logging&&console.log("Item already in cache: "+e),await this.loadFromStorage(r))))return r.url||(r.url=this._getLodLevelUrl(e,t)),this.urlToIdMap.set(r.url,n),this.cache.set(n,r),r;i&&i(0);let s=await this.loadItem(e,t,i);if(!s)return console.error("Was not able to load object into cache: "+n),null;i&&i(100);const o=this._getLodLevelUrl(e,t),l=URL.createObjectURL(s.blob),u={id:n,url:o,time:W(),objectUrl:l,size:s.blob.size,hash:s.hash,itemType:s.itemType,mimeType:s.mimeType,itemName:s.itemName};return this.checkQuota(u.size),await this.addToStorage(u,s.blob),this.cache.set(n,u),this.urlToIdMap.set(o,n),this.saveIndex(),y.$emit("itemCache:cacheChange"),this.logging&&console.log("Added item to cache: ",u),u}catch(e){return console.error(e),null}}getObjectCount(){return this.cache.size}getObjectSize(){let e=0;for(const t of this.cache.values())e+=t.size;return e}handleRename({id:e,newName:t}){const a=this.cache.get(e);a&&(a.itemName=t,this.saveIndex(),y.$emit("itemCache:cacheChange"))}}class Wn extends sn{apiClient;ready=!1;maxNumItems=1e4;constructor(e){if(super("lumino","folders",1),!e)throw"A lumino client needs to be passed.";this.apiClient=e}async init(){await super.init(),await this.checkStorage(),this.ready=!0}clear(){return this._clear()}async checkStorage(){const e=await this._keys();let t=e.length-this.maxNumItems;if(t>0){t=Math.floor(this.maxNumItems/2);const a=[];for(let i=0;i<t;i++)a.push(this._remove(e[i]));await Promise.all(a)}}async getFolderListing(e){return this.ready?this._get(e,"application/json"):null}async getItemListing(e){if(!this.ready)return null;const t=await this._get("items_"+e,"application/json");if(!t)return null;const a=await this.getFolderListing(e);return a&&a.parent&&new Date(t.cachedAt).getTime()>new Date(a.parent.updatedAt).getTime()?t.data:null}async getFolderACLs(e,t){if(!this.ready)return null;const a=await this._get("acl_"+e,"application/json");return a&&Date.now()-a.cachedAt<t?(delete a.cachedAt,a):null}async refreshCacheForFolder(e){const t=await this.getFolderListing(e);await this.addFolderListing(e,t)}async addFolderListing(e,t){this.ready&&(await this._set(e,{...t,cachedAt:new Date}),await this.checkStorage())}async addItemListing(e,t){this.ready&&(await this._set("items_"+e,{data:t,cachedAt:new Date}),await this.checkStorage())}async addACL(e,t){this.ready&&(await this._set("acl_"+e,{...t,cachedAt:new Date}),await this.checkStorage())}}class Yn extends sn{apiClient;constructor(e){if(super("lumino","thumbs",1),!e)throw"A lumino client needs to be passed.";this.apiClient=e}clear(){this._clear()}async _loadThumbnail(e,t){try{return await this.apiClient.getThumbnail(e,t)}catch{try{return await this.apiClient.getPublicThumbnail(e,t)}catch{return null}}}async get(e,t,a,i){if(!t)throw"Cannot retrieve item thumbnail from cache without knowing size!";let n=await this._get(e,"application/json");if(n&&n.hash===a&&n.timestamp===i){for(const e of n.thumbnails)if(e.size===t){if(e.data)return e.data;n.thumbnails.removeObject(e);break}let a=await this._loadThumbnail(t,e);return a&&(n.thumbnails.push({size:t,data:a}),await this._set(e,n)),a}let r=await this._loadThumbnail(t,e);if(a||i){let s=[];r&&s.push({size:t,data:r}),n={id:e,hash:a,timestamp:i,thumbnails:s},await this._set(e,n)}return r}}class Hn{apiClient;cache=new Map;constructor(e){this.apiClient=e,this.cache=new Map}async resolve(e){let t=this.cache.get(e);if(!t)try{t=this.apiClient.getUserPublicInfo(e,this.apiClient.requestClientId,32),this.cache.set(e,t)}catch(e){console.error(e)}return t}}class Gn{apiClient;cache=new Map;constructor(e){this.apiClient=e}async resolve(e){let t=this.cache.get(e);if(!t)try{t=this.apiClient.getGroupPublicInfo(e,this.apiClient.requestClientId,32),this.cache.set(e,t)}catch(e){console.error(e)}return t}}class qn{apiClient;cache=new Map;constructor(e){this.apiClient=e}async get(e,t,a,i,n=!1){const r=`${e}_${t}_${a}${void 0===i?"":`_${i}`}`,s=this.cache.get(r);if(s)return s;try{const s=new Promise((async r=>{try{let s;s=n?await this.apiClient.downloadPublicAttachment(e,t,a,i,void 0):await this.apiClient.downloadAttachmentPOP(e,t,a,i,void 0);r(URL.createObjectURL(s.blob))}catch(e){r(null)}}));return this.cache.set(r,s),s}catch(e){return console.warn(`Attachment ${r} not available.`),null}}invalidateAttachment(e,t,a,i){let n=`${e}_${t}`;null!=a&&(n+=`_${a}`);for(const e of this.cache.keys()){const t=null==i||e.endsWith(`_${i}`);e.startsWith(n)&&t&&this.cache.delete(e)}}}class Zn{apiClient;itemRepo;jobManager;items=[];hasExternalResources=!1;totalSize=0;affectedFolderIds=new Set;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo(),this.jobManager=e.getJobManager()}_updateQuota(){this.apiClient.eventBus.$emit("quota:update")}async getPreviousVersions(e,t){const a=[];t=t||"published";const i=await this.apiClient.createFolder({name:t,parent:e,returnIfExists:!0}),n=await this.apiClient.getFoldersInFolderList(i,{folderAsItemType:"Package"});for(const e of n.children)e.item&&a.push({itemId:e.item._id,folderId:e._id,version:e.name,name:e.item.name,filesize:0|e.item.filesize,visibility:e.item.visibility});return a}async verify(e){const t=this,a=new Map,i=new Map;e=e?await this.itemRepo.loadItem(e._id,{recursive:!0}):this.itemRepo.activeItem;const n=await r(e.folder);async function r(e){try{if(e){const a=e._id?e._id:e;if(i.has(a))return i.get(a);{const e=(await t.apiClient.getFolderPath(a)).path;return i.set(a,e),e}}return"/"}catch{return""}}await this.itemRepo.traverseItems((async function(e){const t={_id:e._id,name:e.name,type:e.type,size:e.totalSize,path:await r(e.folder),item:e,external:!1};t.path.startsWith(n)?t.path=t.path.slice(n.length):t.external=!0,a.set(e._id,t)})),this.items=Array.from(a.values()),this.hasExternalResources=!1,this.totalSize=0;for(const e of this.items)e.external&&(this.hasExternalResources=!0),this.totalSize+=e.size;return!this.hasExternalResources}getItems(){return this.items}async unpackToProject(e,t,a,i){a&&(t=await this.apiClient.createFolder({name:a,parent:t,returnIfExists:!0}));const n=await this.apiClient.getItem(e);n.folder===t&&await this.apiClient.renameItem(e,n.name+" (Unpackaged)");const r=await this.apiClient.createFolder({name:n.name,parent:t,fixNameCollisions:!0}),s=await this.jobManager.execute("JS:Unpackage",[{_id:e,isFolder:!1}],[{name:"Destination Folder",value:r},{name:"Make Destination Visible",value:!1}],i);if(this._updateQuota(),3===s.state){const t=s.log.trim().split(";");if(2!==t.length||"UNPACKAGED"!==t[0])throw new V("Unpacking failed. Did not get unpackaged item id!");const a=t[1].trim();return await this.apiClient.renameItem(a,n.name),await this.itemRepo.replaceLink(e,a),a}if(2===s.state)throw new V("Unpacking failed: "+s.error)}async copyItemToProject(e,t,a,i){return(await this.copyItemsToProject([{_id:e,isFolder:!1}],t,a,i))[0].newId}async copyItemsToProject(e,t,a,i){a=a||"packages",t=await this.apiClient.createFolder({name:a,parent:t,returnIfExists:!0}),this.affectedFolderIds.add(t);const n=[];if(e.length){const a=await this.jobManager.execute("JS:CloneItem",e,[{name:"Deep Clone",value:!1},{name:"Destination Folder",value:t},{name:"Exclude Types",value:""},{name:"Make Private",value:!0}],i);if(this._updateQuota(),3===a.state){if(!a.log.trim().length)throw new V("Copy job returned no results.");{const e=a.log.split("\n").reverse();for(const t of e){const e=t.trim().split(";");if(3===e.length){const t=e[1],a=e[2];await this.itemRepo.replaceLink(t,a),n.push({oldId:t,newId:a})}}}}else if(2===a.state)throw new V("Copying of items failed: "+a.error)}return n}async copyToProject(e,t,a){const i=[];for(const e of this.items)e.external&&i.push({_id:e._id,isFolder:!1});return this.copyItemsToProject(i,e,t,a)}async unpublish(e){await this.apiClient.makeItemPrivate(e,!1,!1)}async publish(e,t,a,i,n,r,s,o){const l=e.version;i=i||`published/${l.major}.${l.minor}.${l.revision}`,n=void 0===n||n,r=void 0===r||r,this.affectedFolderIds.add(a);let u,c=a;if(i){const e=i.split("/");for(const t of e)c=await this.apiClient.createFolder({name:t,parent:c,returnIfExists:!0}),this.affectedFolderIds.add(c),u||(u=c)}const d=(await this.apiClient.getFoldersInFolderList(a)).children.map((e=>e._id)).filter((e=>e!==u)).join(","),p=await this.jobManager.execute("JS:CreatePackage",[{_id:e._id,isFolder:!1}],[{name:"Folders To Include",value:d},{name:"Destination Folder",value:c},{name:"Item Name",value:t},{name:"Make Public",value:!!n},{name:"Copy External",value:!!r},{name:"Always Create New Package",value:!!s},{name:"Make Cloneable",value:!!o}]);if(this._updateQuota(),2===p.state)throw new V("Packaging failed: "+p.error);this.apiClient.eventBus.$emit("folder:changed",Array.from(this.affectedFolderIds.values()))}}class Jn{id;job;nextCheckMs;constructor(e,t,a){this.id=e,this.job=a,this.nextCheckMs=t}}class Kn{apiClient;jobs=new Map;constructor(e){this.apiClient=e}getJobs(){return Array.from(this.jobs.values())}async execute(e,t,a,i=void 0,n){const r=this;return new Promise((async(s,o)=>{try{const o=async()=>{try{u.job=await r.apiClient.getJobState(l);let e=!1;switch(u.job.state){case 0:case 1:try{i&&i(u.job)}catch(e){console.error("Error calling progress callback: ",e)}break;case 2:case 3:console.log("Job is done."),e=!0,s(u.job)}e?r.jobs.delete(l):(u.nextCheckMs=Math.min(2*u.nextCheckMs,8e3),setTimeout(o,u.nextCheckMs))}catch(e){console.error("Error fetching job state: "+e)}},l=await r.apiClient.createJob({type:e,elements:t,parameters:a,requiredParameters:n}),u=new Jn(l,1e3);r.jobs.set(l,u),setTimeout(o,u.nextCheckMs)}catch(e){o(e)}}))}}const Xn={mp3:{name:"Mpeg Audio Layer 3",itemType:"Audio",itemTypeCollection:"Audio Collection",collectionEntryName:"AudioItems",folderName:"audio",defaultAction:"Use",actions:["Skip","Use"]},hdr:{name:"HDR Image",itemType:"HDR Image",folderName:"envmaps",defaultAction:"Use",actions:["Skip","Use"]},glb:{name:"Gltf Binary",itemType:"Mesh",itemTypeCollection:"Mesh Collection",collectionEntryName:"MeshItems",folderName:"meshes",defaultAction:"Use",actions:["Skip","Use"]},png:{name:"Portable Network Graphics",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},jpg:{name:"JPEG",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},jpeg:{name:"JPEG",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},lua:{name:"Lua",itemType:"Script",folderName:"scripts",defaultAction:"Use",actions:["Skip","Use"]},ttf:{name:"True Type Font",itemType:"Font",folderName:"fonts",defaultAction:"Use",actions:["Skip","Use"]},otf:{name:"Open Type Font",itemType:"Font",folderName:"fonts",defaultAction:"Use",actions:["Skip","Use"]},unknown:{name:"Unsupported",itemType:"Unknown",defaultAction:"Skip",actions:["Skip"],invisible:!0}},Qn={Audio:"audio","Audio Collection":"audio","HDR Image":"envmaps",Mesh:"meshes","Mesh Collection":"",Script:"scripts",Material:"materials","Background Shader":"background shaders","Pixel Shader":"pixel shaders","Vertex Shader":"vertex shaders",Image:"textures",Scene:"prefabs",Font:"fonts"};function er(e,t){let a=Xn[t];a||(a=Xn.unknown),e.size=e.blob?e.blob.size:0,e.type=a.name,e.collectionType=a.itemTypeCollection,e.collectionEntryName=a.collectionEntryName,e.action=a.defaultAction,e.actions=a.actions,e.folderName=a.folderName,e.itemType=a.itemType,e.name=function(e,t){let a=e.lastIndexOf(".");return e.substring(0,a<0?e.length:a)+"."+t}(e.name,t)}class tr{name;blob;processing=!1;progress=0;size=0;type;collectionType;collectionEntryName;action;actions;folderName;itemType;constructor(e,t,a){this.name=e,this.blob=t,er(this,a)}}class ar{apiClient;itemRepo;jobManager;items=[];mainItem;totalSize=0;oldMainItemId;originalItemIds=[];affectedFolderIds=new Set;packageId;converter;supportedExtensions;hasExternalResources=!1;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo(),this.jobManager=e.getJobManager();const t=[];for(const e in Xn)Xn[e].invisible||t.push(`.${e.toUpperCase()}`);this.supportedExtensions=t.sort(((e,t)=>e.localeCompare(t)))}_updateQuota(){this.apiClient.eventBus.$emit("quota:update")}_addAffectedFolder(e){"object"==typeof e&&e._id?this.affectedFolderIds.add(e._id):"string"==typeof e?this.affectedFolderIds.add(e):console.error("Invalid affected folder to add: ",e)}getAffectedFolderIds(){return Array.from(this.affectedFolderIds.values())}getSupportedExtensions(){return this.supportedExtensions}setConverter(e){this.converter=e}setItems(e){this.items=e}async scan(e){const t=this,a=new Map,i=new Map;this.mainItem=await this.itemRepo.loadItem(e,{recursive:!0}),this.oldMainItemId=this.mainItem._id;const n=await r(this.mainItem.folder);async function r(e){try{if(e){const a=e._id?e._id:e;if(i.has(a))return i.get(a);{const e=(await t.apiClient.getFolderPath(a)).path;return i.set(a,e),e}}return"/"}catch(e){return console.error(e),""}}await this.itemRepo.traverseItems((async function(e){const i={_id:e._id,name:e.name,type:e.type,size:e.totalSize,path:await r(e.folder),item:e,external:!1};i.path.startsWith(n)?i.path=i.path.slice(n.length):i.external=!0,t._addAffectedFolder(e.folder),a.set(e._id,i)}),this.mainItem),this.items=Array.from(a.values()),this.originalItemIds=this.items.map((e=>e._id)),this.hasExternalResources=!1,this.totalSize=0;for(const e of this.items)e.external&&(this.hasExternalResources=!0),this.totalSize+=e.size;return this.items}getItems(){return this.items}async saveMainItemChanges(){const e=this.mainItem;await this.apiClient.updateItem({_id:e._id,name:e.name,shortDescription:e.shortDescription,description:e.description,tags:e.tags,categories:e.categories,visibility:e.visibility,contributors:e.contributors,version:e.version})}async createAssetFolder(e,t){let a=e;const i=t.split("/");this._addAffectedFolder(e);for(const e of i)a=await this.apiClient.createFolder({name:e,parent:a,returnIfExists:!0}),this._addAffectedFolder(a);const n=await this.apiClient.getItemsInFolderList(a,!0);if(n&&n.length)throw new Error("Asset folder already exists and is not empty!");return a}createStandardAssetFolderPath(e){let t=Qn[e.type];return t||(t=e.type.toLowerCase()+"s"),`assets/${t}/${e.name}`}async executeActions(){if(!this.converter)throw new Error("No converter is configured. Cannot execute actions on items.");return this.converter(this.items,er)}async createAsset(e,t=!1,a){const i=[];for(const e of this.items)i.push(e._id);if(this._addAffectedFolder(e),i.length)if(t){await this.apiClient.moveItems({items:i,dest:e})!==i.length&&console.warn("Not all items could be moved. Most likely due to permissions."),this.mainItem.folder=e}else{const t=await this.jobManager.execute("JS:CloneItem",[{_id:this.mainItem._id,isFolder:!1}],[{name:"Deep Clone",value:!0},{name:"Destination Folder",value:e},{name:"Exclude Types",value:""}],a);if(3===t.state){const a=t.log.split("\n").reverse()[0].split(";");this.mainItem={...this.mainItem,_id:a[2],folder:e}}else if(2===t.state)throw new V("Copying of items failed: "+t.error)}"Main"!==this.mainItem.name&&(this.mainItem.originalName=this.mainItem.name,this.mainItem.name="Main",await this.apiClient.renameItem(this.mainItem._id,this.mainItem.name));const n=await this.apiClient.getItem(this.mainItem._id);return n.flags||(n.flags=[]),n.flags.includes("original")||n.flags.push("original"),await this.apiClient.updateItem(n),this._updateQuota(),this.mainItem._id}async createPackage(e,t=!1,a=!1){let i,n=this.mainItem.folder;if(this._addAffectedFolder(n),void 0===e){const t=this.mainItem.version||{major:1,minor:0,revision:0};e=`published/${t.major}.${t.minor}.${t.revision}`}if(void 0===t&&(t=!0),e){const t=e.split("/");for(const e of t)n=await this.apiClient.createFolder({name:e,parent:n,returnIfExists:!0}),this._addAffectedFolder(n),i||(i=n)}const r=(await this.apiClient.getFoldersInFolderList(this.mainItem.folder)).children.map((e=>e._id)).filter((e=>e!==i)).join(","),s=await this.jobManager.execute("JS:CreatePackage",[{_id:this.mainItem._id,isFolder:!1}],[{name:"Folders To Include",value:r},{name:"Destination Folder",value:n},{name:"Item Name",value:this.mainItem.originalName||this.mainItem.name},{name:"Make Public",value:!!t},{name:"Copy External",value:!!a}]);if(this._updateQuota(),2===s.state)throw new V("Packaging failed: "+s.error);const o=s.log.split("\n").reverse()[0].split(";");this.packageId=o[2]}async replaceReferences(){await this.itemRepo.replaceLink(this.oldMainItemId,this.packageId)}async deleteOriginalItems(){await this.apiClient.deleteItem(this.originalItemIds)}sendFolderRefreshEvent(){this.apiClient.eventBus.$emit("folder:changed",this.getAffectedFolderIds())}async processUploads(e){const t=[];for(const a of e)if("application/zip"===a.type||"application/x-zip-compressed"===a.type){const e=new h.default;try{const i=[];(await e.loadAsync(a)).forEach(((e,a)=>{const n=a.name.split("/").pop();if(!n.startsWith(".")){const e=n.split(".").pop(),r=a.async("blob");i.push(r),r.then((function(i){const n=new tr(a.name,i,e);t.push(n)}))}})),await Promise.all(i)}catch(e){console.error("Error reading the ZIP file:",e)}}else{const e=a.name.split(".").pop(),i=new tr(a.name,a,e);t.push(i)}return t}detectAssets(e){let t,a,i,n=0;for(const r of e)if("Use"===r.action)if(void 0===t)t=r.itemType,a=r.collectionType,i=r.folderName,n++;else{if(t!==r.itemType)return{valid:!1,reason:"Mixed item types found. To create an asset, upload a single type of file for example only meshes."};n++}return 0===n?{valid:!1,reason:"There are no files we can use to create an asset."}:n>1&&!a?{valid:!1,reason:"Cannot create collections of this type."}:{valid:!0,assetType:n>1?a:t,itemCount:n,folderName:i}}_filterUploadFiles(e){let t=[];for(const a of e)"Use"===a.action&&t.push(a);return t}createNewItem(){return{name:"New asset",type:"",description:"",shortDescription:"",tags:[],flags:["original"],categories:[],license:"CC0",allowConversation:!0,version:{major:1,minor:0,revision:0}}}async createAssetFromFiles(e,t,a,i=!1,n=!1){const r=this.detectAssets(e);if(r.assetType!==a.type)throw new Error("Asset type not valid for these items.");if(!r.valid)throw new Error(r.reason||"No valid asset detected.");let s=await this.apiClient.createFolder({name:r.folderName,parent:t,returnIfExists:!0}),o=await this.apiClient.createFolder({name:a.name,parent:s,returnIfExists:!0}),l=!1;if(0===(await this.apiClient.getItemsInFolderList(o)).length){(await this.apiClient.getFoldersInFolderList(o)).children.length&&(l=!0)}else l=!0;if(l){if(!i)throw new Error("Cannot create asset, target folder is not empty!");await this.apiClient.deleteFolder(o),o=await this.apiClient.createFolder({name:a.name,parent:s})}let u,c=this._filterUploadFiles(e);if(1===c.length){const e=c[0];e.processing=!0,e.progress=0,u=await this.apiClient.uploadAndCreate(o,e.blob,e.name,{nameOverride:"Main",flags:"original"},(function(t){e.progress=t})),this._updateQuota(),e.action="Skip"}else{let e=await this.apiClient.createFolder({name:"resources",parent:o}),t={},a=[],i=0;for(const n of c){n.processing=!0,n.progress=0;const r=await this.apiClient.uploadAndCreate(e,n.blob,n.name,void 0,(function(e){n.progress=e}));this._updateQuota(),n.action="Skip",t[`${n.collectionEntryName}[${i}]->Name`]="",a.push({usage:`MeshItems[${i}]->Mesh`,to:r}),i++}u=await this.apiClient.createItem({type:r.assetType,name:"Main",flags:["original"],folder:o,fixNameCollisions:!0,attributes:t,links:a})}return a._id=u,a.folder=o,this.mainItem=a,n?{assetItemId:u,assetTypeFolderId:s,assetFolderId:o}:u}}class ir{apiClient;itemRepo;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo()}grab(e,t,a,i){i=i||{};const n=[];for(const r of a){const a=this._serializeBlockFields(r),s=this._serializeScripts(r),o={type:"block",item:e._id,field:t.name,path:"",block:{id:r.id,type:r.type||"Group",fields:a,scripts:s,children:[]}};i.omitPath||(o.path=this._getBlockPath(r)),i.withChildren&&(o.block.children=this.grab(e,t,r.blocks||[],{withChildren:!0,returnArray:!0})),n.push(o)}if(i.returnArray)return n;const r={type:"serializedBlocks",data:n};return i.noStringify?r:JSON.stringify(r,null,2)}async put(e,t,a,i={}){e=this.validateMessage(e);const n=[];for(const r of e.data){const e=await this._putBlock(r,t,a,i);e&&n.push(e)}return n}validateMessage(e){if("string"==typeof e&&(e=JSON.parse(e)),"serializedBlocks"!==e.type)throw new Error("Data must be a serialized block message. Format is wrong.");if(!Array.isArray(e.data))throw new Error("The contained data is not an array.");return e}async clone(e,t,a,i,n={}){const r=this.grab(i,t,[e],{withChildren:!0,noStringify:!0});return this.put(r,t,a,n)}_updateScriptFieldReferences(e,t){const a=new Map,i=(e,t)=>{a.set(e.block.id,t.id);const n=e.block.children||[],r=t.blocks||[];for(let e=0;e<n.length;e++)i(n[e],r[e])};i(e,t),this.itemRepo.updateScriptFieldReferencesFromMap(a,t)}async _putBlock(e,t,a,i={},n=!1){if(!e.block||!e.block.type||!e.block.fields)return null;const r=e.block,s=this._findItemById(e.item)??this.itemRepo.activeItem;let o=a;o||(o=this._findParentBlock(s,e.field,e.path));const l={};if(Array.isArray(r.fields))for(const e of r.fields){const{name:t,type:a,value:n,linkto:r}=e;if("Separator"!==a)if(i.fieldOverrides&&t in i.fieldOverrides)l[t]=i.fieldOverrides[t];else if(r){const e=this.itemRepo.getLoadedItem(r);l[t]=e||await this.itemRepo.loadItem(r)}else l[t]=n}const u=i.dontCopyScripts?[]:[...r.scripts],c=await this._createUnproxifiedBlock(r.type,l,u,t,s),d={...i,parentPosition:void 0,fieldOverrides:void 0};if(!c)return console.warn(`Could not create block of type ${r.type}. Skipping.`),null;if(Array.isArray(r.children))for(const e of r.children)await this._putBlock(e,t,c,d,!0);if(n&&o)return"number"==typeof i.parentPosition?o.blocks.splice(i.parentPosition,0,c):o.blocks.push(c),c.parent=o,c;i.dontCopyScripts||this._updateScriptFieldReferences(e,c);return this._proxifyAndAttachTree(c,o,s,i.parentPosition)}async _createUnproxifiedBlock(e,t,a,i,n){let r=le.instance.getTemplate(n.packageType||n.type,i.name,e);if(!r)return null;if(t){const e=r.template.clone().specialize(t);r={displayName:r.displayName,typeName:r.typeName,template:e,inputs:r.inputs,outputs:r.outputs}}const s=new ce(void 0,void 0,r.typeName,void 0,r.displayName,n),o=await this.itemRepo.createFieldsForItem(s,r.template,n,!0);return s.setFields(o),s.blocks=[],await this.itemRepo.createScriptsForItem(s,a,n,!1),s}_proxifyAndAttachTree(e,t,a,i){const n=e=>{if(Array.isArray(e.blocks)&&e.blocks.length)for(const t of e.blocks)n(t);const t=e.blocks.map((e=>S.instance.proxyBlock(e,a)));e.blocks=S.instance.proxyBlockArray(t,e,a),e.scripts=S.instance.proxyScriptArray(e.scripts,e,a)};n(e),e.parent=t;const r=S.instance.proxyBlock(e,a);return"number"==typeof i?t.blocks.splice(i,0,r):t.blocks.push(r),r}_findItemById(e){return this.itemRepo.findLoadedItem(e)}_findItemField(e,t){if(!e.fieldInstances)return null;for(const a of e.fieldInstances)if(a.name===t)return a;return null}_findParentBlock(e,t,a){const i=this._findItemField(e,t);if(!i)return null;const n=a.split("/");let r=i.blocks,s=null;for(const e of n)s=r[e],r=s.blocks;return s}_getBlockIndex(e){if(!e.parent)return 0;let t=0;for(const a of e.parent.blocks){if(e.id===a.id)return t;t++}throw new Error("Could not find block in parent block array!")}_getBlockPath(e){const t=[];let a=e;for(;a;)t.push(this._getBlockIndex(a)),a=a.parent;return"/"+t.reverse().join("/")}_serializeBlockFields(e){const t=[];if(!Array.isArray(e.fields))return t;for(const a of e.fields)switch(a.type){case"Link":t.push({name:a.name,linkto:a.value?._id});break;case"Attribute":t.push({name:a.name,value:a.value});break;case"Separator":t.push({name:a.name,type:"Separator"})}return t}_serializeScripts(e){const t=[];if(!Array.isArray(e.scripts))return t;for(const a of e.scripts){const e=[],i={item:a.item?.value?._id,fields:e};for(const t of a.fields)e.push({name:t.name,value:t.value});t.push(i)}return t}}Array.prototype.pushAll||(Array.prototype.pushAll=function(e){for(const t of e)this.push(t)}),Array.prototype.removeObject||(Array.prototype.removeObject=function(e){const t=this.indexOf(e);return t>-1&&(this.splice(t,1),!0)}),Array.prototype.moveObjectToArray||(Array.prototype.moveObjectToArray=function(e,t,a){const i=this.indexOf(e);if(i>-1){return(0,this.moveToArray)(i,t,a)}return!1}),Array.prototype.removeByFilterFunc||(Array.prototype.removeByFilterFunc=function(e){let t=0;for(let a=0;a<this.length;a++)e(this[a])&&(this.splice(a,1),a--,t++);return t}),Array.prototype.clone||(Array.prototype.clone=function(){const e=[];for(const t of this)e.push(t);return e});const nr=()=>new Map,rr=e=>{const t=nr();return e.forEach(((e,a)=>{t.set(a,e)})),t},sr=(e,t,a)=>{let i=e.get(t);return void 0===i&&e.set(t,i=a()),i},or=()=>new Set,lr=e=>e[e.length-1],ur=(e,t)=>{for(let a=0;a<t.length;a++)e.push(t[a])},cr=Array.from,dr=Array.isArray;class pr{constructor(){this._observers=nr()}on(e,t){return sr(this._observers,e,or).add(t),t}once(e,t){const a=(...i)=>{this.off(e,a),t(...i)};this.on(e,a)}off(e,t){const a=this._observers.get(e);void 0!==a&&(a.delete(t),0===a.size&&this._observers.delete(e))}emit(e,t){return cr((this._observers.get(e)||nr()).values()).forEach((e=>e(...t)))}destroy(){this._observers=nr()}}class hr{constructor(){this._observers=nr()}on(e,t){sr(this._observers,e,or).add(t)}once(e,t){const a=(...i)=>{this.off(e,a),t(...i)};this.on(e,a)}off(e,t){const a=this._observers.get(e);void 0!==a&&(a.delete(t),0===a.size&&this._observers.delete(e))}emit(e,t){return cr((this._observers.get(e)||nr()).values()).forEach((e=>e(...t)))}destroy(){this._observers=nr()}}const fr=Math.floor,mr=Math.abs,yr=(e,t)=>e<t?e:t,gr=(e,t)=>e>t?e:t,br=Math.pow,vr=e=>0!==e?e<0:1/e<0,_r=64,wr=128,Ar=127,kr=Number.MAX_SAFE_INTEGER,Sr=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&fr(e)===e),Nr=String.fromCharCode,xr=/^\s*/g,Tr=/([A-Z])/g,Mr=(e,t)=>(e=>e.replace(xr,""))(e.replace(Tr,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Vr="undefined"!=typeof TextEncoder?new TextEncoder:null,Cr=Vr?e=>Vr.encode(e):e=>{const t=unescape(encodeURIComponent(e)),a=t.length,i=new Uint8Array(a);for(let e=0;e<a;e++)i[e]=t.codePointAt(e);return i};let Ir="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Ir&&1===Ir.decode(new Uint8Array).length&&(Ir=null);class Fr{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Er=()=>new Fr,Dr=e=>{let t=e.cpos;for(let a=0;a<e.bufs.length;a++)t+=e.bufs[a].length;return t},Lr=e=>{const t=new Uint8Array(Dr(e));let a=0;for(let i=0;i<e.bufs.length;i++){const n=e.bufs[i];t.set(n,a),a+=n.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),a),t},Rr=(e,t)=>{const a=e.cbuf.length;e.cpos===a&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*a),e.cpos=0),e.cbuf[e.cpos++]=t},Pr=Rr,Or=(e,t)=>{for(;t>Ar;)Rr(e,wr|Ar&t),t=fr(t/128);Rr(e,Ar&t)},Br=(e,t)=>{const a=vr(t);for(a&&(t=-t),Rr(e,(t>63?wr:0)|(a?_r:0)|63&t),t=fr(t/64);t>0;)Rr(e,(t>Ar?wr:0)|Ar&t),t=fr(t/128)},$r=new Uint8Array(3e4),jr=$r.length/3,Ur=Vr&&Vr.encodeInto?(e,t)=>{if(t.length<jr){const a=Vr.encodeInto(t,$r).written||0;Or(e,a);for(let t=0;t<a;t++)Rr(e,$r[t])}else Wr(e,Cr(t))}:(e,t)=>{const a=unescape(encodeURIComponent(t)),i=a.length;Or(e,i);for(let t=0;t<i;t++)Rr(e,a.codePointAt(t))},zr=(e,t)=>{const a=e.cbuf.length,i=e.cpos,n=yr(a-i,t.length),r=t.length-n;e.cbuf.set(t.subarray(0,n),i),e.cpos+=n,r>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(gr(2*a,r)),e.cbuf.set(t.subarray(n)),e.cpos=r)},Wr=(e,t)=>{Or(e,t.byteLength),zr(e,t)},Yr=(e,t)=>{((e,t)=>{const a=e.cbuf.length;a-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*gr(a,t)),e.cpos=0)})(e,t);const a=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,a},Hr=new DataView(new ArrayBuffer(4)),Gr=(e,t)=>{switch(typeof t){case"string":Rr(e,119),Ur(e,t);break;case"number":Sr(t)&&mr(t)<=2147483647?(Rr(e,125),Br(e,t)):(a=t,Hr.setFloat32(0,a),Hr.getFloat32(0)===a?(Rr(e,124),((e,t)=>{Yr(e,4).setFloat32(0,t,!1)})(e,t)):(Rr(e,123),((e,t)=>{Yr(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Rr(e,122),((e,t)=>{Yr(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Rr(e,126);else if(dr(t)){Rr(e,117),Or(e,t.length);for(let a=0;a<t.length;a++)Gr(e,t[a])}else if(t instanceof Uint8Array)Rr(e,116),Wr(e,t);else{Rr(e,118);const a=Object.keys(t);Or(e,a.length);for(let i=0;i<a.length;i++){const n=a[i];Ur(e,n),Gr(e,t[n])}}break;case"boolean":Rr(e,t?120:121);break;default:Rr(e,127)}var a};class qr extends Fr{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Or(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const Zr=e=>{e.count>0&&(Br(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Or(e.encoder,e.count-2))};class Jr{constructor(){this.encoder=new Fr,this.s=0,this.count=0}write(e){this.s===e?this.count++:(Zr(this),this.count=1,this.s=e)}toUint8Array(){return Zr(this),Lr(this.encoder)}}const Kr=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Br(e.encoder,t),e.count>1&&Or(e.encoder,e.count-2)}};class Xr{constructor(){this.encoder=new Fr,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Kr(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Kr(this),Lr(this.encoder)}}class Qr{constructor(){this.sarr=[],this.s="",this.lensE=new Jr}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Fr;return this.sarr.push(this.s),this.s="",Ur(e,this.sarr.join("")),zr(e,this.lensE.toUint8Array()),Lr(e)}}const es=e=>new Error(e),ts=()=>{throw es("Method unimplemented")},as=()=>{throw es("Unexpected case")},is=es("Unexpected end of array"),ns=es("Integer out of Range");class rs{constructor(e){this.arr=e,this.pos=0}}const ss=e=>new rs(e),os=e=>((e,t)=>{const a=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,a})(e,us(e)),ls=e=>e.arr[e.pos++],us=e=>{let t=0,a=1;const i=e.arr.length;for(;e.pos<i;){const i=e.arr[e.pos++];if(t+=(i&Ar)*a,a*=128,i<wr)return t;if(t>kr)throw ns}throw is},cs=e=>{let t=e.arr[e.pos++],a=63&t,i=64;const n=(t&_r)>0?-1:1;if(!(t&wr))return n*a;const r=e.arr.length;for(;e.pos<r;){if(t=e.arr[e.pos++],a+=(t&Ar)*i,i*=128,t<wr)return n*a;if(a>kr)throw ns}throw is},ds=Ir?e=>Ir.decode(os(e)):e=>{let t=us(e);if(0===t)return"";{let a=String.fromCodePoint(ls(e));if(--t<100)for(;t--;)a+=String.fromCodePoint(ls(e));else for(;t>0;){const i=t<1e4?t:1e4,n=e.arr.subarray(e.pos,e.pos+i);e.pos+=i,a+=String.fromCodePoint.apply(null,n),t-=i}return decodeURIComponent(escape(a))}},ps=(e,t)=>{const a=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,a},hs=[e=>{},e=>null,cs,e=>ps(e,4).getFloat32(0,!1),e=>ps(e,8).getFloat64(0,!1),e=>ps(e,8).getBigInt64(0,!1),e=>!1,e=>!0,ds,e=>{const t=us(e),a={};for(let i=0;i<t;i++){a[ds(e)]=fs(e)}return a},e=>{const t=us(e),a=[];for(let i=0;i<t;i++)a.push(fs(e));return a},os],fs=e=>hs[127-ls(e)](e);class ms extends rs{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=us(this)+1:this.count=-1),this.count--,this.s}}class ys extends rs{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=cs(this);const e=vr(this.s);this.count=1,e&&(this.s=-this.s,this.count=us(this)+2)}return this.count--,this.s}}class gs extends rs{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=cs(this),t=1&e;this.diff=fr(e/2),this.count=1,t&&(this.count=us(this)+2)}return this.s+=this.diff,this.count--,this.s}}class bs{constructor(e){this.decoder=new ys(e),this.str=ds(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const vs=crypto.getRandomValues.bind(crypto),_s=()=>vs(new Uint32Array(1))[0],ws=[1e7]+-1e3+-4e3+-8e3+-1e11,As=()=>ws.replace(/[018]/g,(e=>(e^_s()&15>>e/4).toString(16))),ks=Date.now,Ss=e=>new Promise(e);Promise.all.bind(Promise);const Ns=e=>void 0===e?null:e;let xs=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},Ts=!0;try{"undefined"!=typeof localStorage&&localStorage&&(xs=localStorage,Ts=!1)}catch(e){}const Ms=xs,Vs=Object.assign,Cs=Object.keys,Is=e=>Cs(e).length,Fs=e=>Cs(e).length,Es=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ds=Object.freeze,Ls=e=>{for(const t in e){const a=e[t];"object"!=typeof a&&"function"!=typeof a||Ls(e[t])}return Ds(e)},Rs=Symbol("Equality"),Ps=(e,t,a=0)=>{try{for(;a<e.length;a++)e[a](...t)}finally{a<e.length&&Ps(e,t,a+1)}},Os=e=>e,Bs=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Rs])return e[Rs](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let a=0;a<e.length;a++)if(e[a]!==t[a])return!1;break;case Set:if(e.size!==t.size)return!1;for(const a of e)if(!t.has(a))return!1;break;case Map:if(e.size!==t.size)return!1;for(const a of e.keys())if(!t.has(a)||!Bs(e.get(a),t.get(a)))return!1;break;case Object:if(Is(e)!==Is(t))return!1;for(const a in e)if(!Es(e,a)||!Bs(e[a],t[a]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(!Bs(e[a],t[a]))return!1;break;default:return!1}return!0},$s="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),js="undefined"!=typeof window&&"undefined"!=typeof document&&!$s;let Us;const zs=e=>(()=>{if(void 0===Us)if($s){Us=nr();const e=process.argv;let t=null;for(let a=0;a<e.length;a++){const i=e[a];"-"===i[0]?(null!==t&&Us.set(t,""),t=i):null!==t&&(Us.set(t,i),t=null)}null!==t&&Us.set(t,"")}else"object"==typeof location?(Us=nr(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,a]=e.split("=");Us.set(`--${Mr(t,"-")}`,a),Us.set(`-${Mr(t,"-")}`,a)}}))):Us=nr();return Us})().has(e),Ws=e=>Ns($s?process.env[e.toUpperCase().replaceAll("-","_")]:Ms.getItem(e)),Ys=e=>zs("--"+e)||null!==Ws(e);Ys("production");var Hs;const Gs=$s&&(Hs=process.env.FORCE_COLOR,["true","1","2"].includes(Hs))||!zs("--no-colors")&&!Ys("no-color")&&(!$s||process.stdout.isTTY)&&(!$s||zs("--color")||null!==Ws("COLORTERM")||(Ws("TERM")||"").includes("color")),qs=e=>new Uint8Array(e),Zs=js?e=>{let t="";for(let a=0;a<e.byteLength;a++)t+=Nr(e[a]);return btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),Js=js?e=>{const t=atob(e),a=qs(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);return a}:e=>{const t=Buffer.from(e,"base64");return((e,t,a)=>new Uint8Array(e,t,a))(t.buffer,t.byteOffset,t.byteLength)};class Ks{constructor(e,t){this.left=e,this.right=t}}const Xs=(e,t)=>new Ks(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Qs=Symbol,eo=Qs(),to=Qs(),ao=Qs(),io=Qs(),no=Qs(),ro=Qs(),so=Qs(),oo=Qs(),lo=Qs(),uo={[eo]:Xs("font-weight","bold"),[to]:Xs("font-weight","normal"),[ao]:Xs("color","blue"),[no]:Xs("color","green"),[io]:Xs("color","grey"),[ro]:Xs("color","red"),[so]:Xs("color","purple"),[oo]:Xs("color","orange"),[lo]:Xs("color","black")},co=Gs?e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[],a=[],i=nr();let n=[],r=0;for(;r<e.length;r++){const n=e[r],s=uo[n];if(void 0!==s)i.set(s.left,s.right);else{if(void 0===n)break;if(n.constructor!==String&&n.constructor!==Number)break;{const e=((e,t)=>{const a=[];for(const[i,n]of e)a.push(t(n,i));return a})(i,((e,t)=>`${t}:${e};`)).join("");r>0||e.length>0?(t.push("%c"+n),a.push(e)):t.push(n)}}}for(r>0&&(n=a,n.unshift(t.join("")));r<e.length;r++){const t=e[r];t instanceof Symbol||n.push(t)}return n}:e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[],a=[];let i=0;for(;i<e.length;i++){const a=e[i];if(void 0===a)break;if(a.constructor===String||a.constructor===Number)t.push(a);else if(a.constructor===Object)break}for(i>0&&a.push(t.join(""));i<e.length;i++){const t=e[i];t instanceof Symbol||a.push(t)}return a},po=or(),ho=e=>({[Symbol.iterator](){return this},next:e}),fo=(e,t)=>ho((()=>{const{done:a,value:i}=e.next();return{done:a,value:a?void 0:t(i)}}));class mo{constructor(e,t){this.clock=e,this.len=t}}class yo{constructor(){this.clients=new Map}}const go=(e,t,a)=>t.clients.forEach(((t,i)=>{const n=e.doc.store.clients.get(i);if(null!=n){const i=n[n.length-1],r=i.id.clock+i.length;for(let i=0,s=t[i];i<t.length&&s.clock<r;s=t[++i])ol(e,n,s.clock,s.len,a)}})),bo=(e,t)=>{const a=e.clients.get(t.client);return void 0!==a&&null!==((e,t)=>{let a=0,i=e.length-1;for(;a<=i;){const n=fr((a+i)/2),r=e[n],s=r.clock;if(s<=t){if(t<s+r.len)return n;a=n+1}else i=n-1}return null})(a,t.clock)},vo=e=>{e.clients.forEach((e=>{let t,a;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,a=1;t<e.length;t++){const i=e[a-1],n=e[t];i.clock+i.len>=n.clock?i.len=gr(i.len,n.clock+n.len-i.clock):(a<t&&(e[a]=n),a++)}e.length=a}))},_o=(e,t,a,i)=>{sr(e.clients,t,(()=>[])).push(new mo(a,i))},wo=e=>{const t=new yo;return e.clients.forEach(((e,a)=>{const i=[];for(let t=0;t<e.length;t++){const a=e[t];if(a.deleted){const n=a.id.clock;let r=a.length;if(t+1<e.length)for(let a=e[t+1];t+1<e.length&&a.deleted;a=e[1+ ++t])r+=a.length;i.push(new mo(n,r))}}i.length>0&&t.clients.set(a,i)})),t},Ao=(e,t)=>{Or(e.restEncoder,t.clients.size),cr(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,a])=>{e.resetDsCurVal(),Or(e.restEncoder,t);const i=a.length;Or(e.restEncoder,i);for(let t=0;t<i;t++){const i=a[t];e.writeDsClock(i.clock),e.writeDsLen(i.len)}}))},ko=e=>{const t=new yo,a=us(e.restDecoder);for(let i=0;i<a;i++){e.resetDsCurVal();const a=us(e.restDecoder),i=us(e.restDecoder);if(i>0){const n=sr(t.clients,a,(()=>[]));for(let t=0;t<i;t++)n.push(new mo(e.readDsClock(),e.readDsLen()))}}return t},So=(e,t,a)=>{const i=new yo,n=us(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=us(e.restDecoder),r=us(e.restDecoder),s=a.clients.get(n)||[],o=el(a,n);for(let a=0;a<r;a++){const a=e.readDsClock(),r=a+e.readDsLen();if(a<o){o<r&&_o(i,n,o,r-o);let e=al(s,a),l=s[e];for(!l.deleted&&l.id.clock<a&&(s.splice(e+1,0,Wu(t,l,a-l.id.clock)),e++);e<s.length&&(l=s[e++],l.id.clock<r);)l.deleted||(r<l.id.clock+l.length&&s.splice(e,0,Wu(t,l,r-l.id.clock)),l.delete(t))}else _o(i,n,a,r-a)}}if(i.clients.size>0){const e=new Do;return Or(e.restEncoder,0),Ao(e,i),e.toUint8Array()}return null},No=_s;class xo extends pr{constructor({guid:e=As(),collectionid:t=null,gc:a=!0,gcFilter:i=()=>!0,meta:n=null,autoLoad:r=!1,shouldLoad:s=!0}={}){super(),this.gc=a,this.gcFilter=i,this.clientID=No(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Xo,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=s,this.autoLoad=r,this.meta=n,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Ss((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const o=()=>Ss((e=>{const t=a=>{void 0!==a&&!0!==a||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=o()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=o()}load(){const e=this._item;null===e||this.shouldLoad||hl(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(cr(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return hl(this,e,t)}get(e,t=Dl){const a=sr(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),i=a.constructor;if(t!==Dl&&i!==t){if(i===Dl){const i=new t;i._map=a._map,a._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=i})),i._start=a._start;for(let e=i._start;null!==e;e=e.right)e.parent=i;return i._length=a._length,this.share.set(e,i),i._integrate(this,null),i}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return a}getArray(e=""){return this.get(e,Xl)}getText(e=""){return this.get(e,yu)}getMap(e=""){return this.get(e,eu)}getXmlElement(e=""){return this.get(e,vu)}getXmlFragment(e=""){return this.get(e,bu)}toJSON(){const e={};return this.share.forEach(((t,a)=>{e[a]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,cr(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new xo({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,hl(e.parent.doc,(a=>{const i=t.doc;e.deleted||a.subdocsAdded.add(i),a.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class To{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return us(this.restDecoder)}readDsLen(){return us(this.restDecoder)}}class Mo extends To{readLeftID(){return Zo(us(this.restDecoder),us(this.restDecoder))}readRightID(){return Zo(us(this.restDecoder),us(this.restDecoder))}readClient(){return us(this.restDecoder)}readInfo(){return ls(this.restDecoder)}readString(){return ds(this.restDecoder)}readParentInfo(){return 1===us(this.restDecoder)}readTypeRef(){return us(this.restDecoder)}readLen(){return us(this.restDecoder)}readAny(){return fs(this.restDecoder)}readBuf(){return(e=>{const t=qs(e.byteLength);return t.set(e),t})(os(this.restDecoder))}readJSON(){return JSON.parse(ds(this.restDecoder))}readKey(){return ds(this.restDecoder)}}class Vo{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=us(this.restDecoder),this.dsCurrVal}readDsLen(){const e=us(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Co extends Vo{constructor(e){super(e),this.keys=[],us(e),this.keyClockDecoder=new gs(os(e)),this.clientDecoder=new ys(os(e)),this.leftClockDecoder=new gs(os(e)),this.rightClockDecoder=new gs(os(e)),this.infoDecoder=new ms(os(e),ls),this.stringDecoder=new bs(os(e)),this.parentInfoDecoder=new ms(os(e),ls),this.typeRefDecoder=new ys(os(e)),this.lenDecoder=new ys(os(e))}readLeftID(){return new Go(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Go(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return fs(this.restDecoder)}readBuf(){return os(this.restDecoder)}readJSON(){return fs(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Io{constructor(){this.restEncoder=Er()}toUint8Array(){return Lr(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Or(this.restEncoder,e)}writeDsLen(e){Or(this.restEncoder,e)}}class Fo extends Io{writeLeftID(e){Or(this.restEncoder,e.client),Or(this.restEncoder,e.clock)}writeRightID(e){Or(this.restEncoder,e.client),Or(this.restEncoder,e.clock)}writeClient(e){Or(this.restEncoder,e)}writeInfo(e){Pr(this.restEncoder,e)}writeString(e){Ur(this.restEncoder,e)}writeParentInfo(e){Or(this.restEncoder,e?1:0)}writeTypeRef(e){Or(this.restEncoder,e)}writeLen(e){Or(this.restEncoder,e)}writeAny(e){Gr(this.restEncoder,e)}writeBuf(e){Wr(this.restEncoder,e)}writeJSON(e){Ur(this.restEncoder,JSON.stringify(e))}writeKey(e){Ur(this.restEncoder,e)}}class Eo{constructor(){this.restEncoder=Er(),this.dsCurrVal=0}toUint8Array(){return Lr(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Or(this.restEncoder,t)}writeDsLen(e){0===e&&as(),Or(this.restEncoder,e-1),this.dsCurrVal+=e}}class Do extends Eo{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Xr,this.clientEncoder=new Jr,this.leftClockEncoder=new Xr,this.rightClockEncoder=new Xr,this.infoEncoder=new qr(Pr),this.stringEncoder=new Qr,this.parentInfoEncoder=new qr(Pr),this.typeRefEncoder=new Jr,this.lenEncoder=new Jr}toUint8Array(){const e=Er();return Or(e,0),Wr(e,this.keyClockEncoder.toUint8Array()),Wr(e,this.clientEncoder.toUint8Array()),Wr(e,this.leftClockEncoder.toUint8Array()),Wr(e,this.rightClockEncoder.toUint8Array()),Wr(e,Lr(this.infoEncoder)),Wr(e,this.stringEncoder.toUint8Array()),Wr(e,Lr(this.parentInfoEncoder)),Wr(e,this.typeRefEncoder.toUint8Array()),Wr(e,this.lenEncoder.toUint8Array()),zr(e,Lr(this.restEncoder)),Lr(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){Gr(this.restEncoder,e)}writeBuf(e){Wr(this.restEncoder,e)}writeJSON(e){Gr(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const Lo=(e,t,a)=>{const i=new Map;a.forEach(((e,a)=>{el(t,a)>e&&i.set(a,e)})),Qo(t).forEach(((e,t)=>{a.has(t)||i.set(t,0)})),Or(e.restEncoder,i.size),cr(i.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([a,i])=>{((e,t,a,i)=>{i=gr(i,t[0].id.clock);const n=al(t,i);Or(e.restEncoder,t.length-n),e.writeClient(a),Or(e.restEncoder,i);const r=t[n];r.write(e,i-r.id.clock);for(let a=n+1;a<t.length;a++)t[a].write(e,0)})(e,t.clients.get(a),a,i)}))},Ro=(e,t,a,i=new Co(e))=>hl(t,(e=>{e.local=!1;let t=!1;const a=e.doc,n=a.store,r=((e,t)=>{const a=nr(),i=us(e.restDecoder);for(let n=0;n<i;n++){const i=us(e.restDecoder),n=new Array(i),r=e.readClient();let s=us(e.restDecoder);a.set(r,{i:0,refs:n});for(let a=0;a<i;a++){const i=e.readInfo();switch(31&i){case 0:{const t=e.readLen();n[a]=new Su(Zo(r,s),t),s+=t;break}case 10:{const t=us(e.restDecoder);n[a]=new qu(Zo(r,s),t),s+=t;break}default:{const o=!(192&i),l=new Yu(Zo(r,s),null,(i&wr)===wr?e.readLeftID():null,null,(i&_r)===_r?e.readRightID():null,o?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!o||32&~i?null:e.readString(),Hu(e,i));n[a]=l,s+=l.length}}}}return a})(i,a),s=((e,t,a)=>{const i=[];let n=cr(a.keys()).sort(((e,t)=>e-t));if(0===n.length)return null;const r=()=>{if(0===n.length)return null;let e=a.get(n[n.length-1]);for(;e.refs.length===e.i;){if(n.pop(),!(n.length>0))return null;e=a.get(n[n.length-1])}return e};let s=r();if(null===s)return null;const o=new Xo,l=new Map,u=(e,t)=>{const a=l.get(e);(null==a||a>t)&&l.set(e,t)};let c=s.refs[s.i++];const d=new Map,p=()=>{for(const e of i){const t=e.id.client,i=a.get(t);i?(i.i--,o.clients.set(t,i.refs.slice(i.i)),a.delete(t),i.i=0,i.refs=[]):o.clients.set(t,[e]),n=n.filter((e=>e!==t))}i.length=0};for(;;){if(c.constructor!==qu){const n=sr(d,c.id.client,(()=>el(t,c.id.client)))-c.id.clock;if(n<0)i.push(c),u(c.id.client,c.id.clock-1),p();else{const r=c.getMissing(e,t);if(null!==r){i.push(c);const e=a.get(r)||{refs:[],i:0};if(e.refs.length!==e.i){c=e.refs[e.i++];continue}u(r,el(t,r)),p()}else(0===n||n<c.length)&&(c.integrate(e,n),d.set(c.id.client,c.id.clock+c.length))}}if(i.length>0)c=i.pop();else if(null!==s&&s.i<s.refs.length)c=s.refs[s.i++];else{if(s=r(),null===s)break;c=s.refs[s.i++]}}if(o.clients.size>0){const e=new Do;return Lo(e,o,new Map),Or(e.restEncoder,0),{missing:l,update:e.toUint8Array()}}return null})(e,n,r),o=n.pendingStructs;if(o){for(const[e,a]of o.missing)if(a<el(n,e)){t=!0;break}if(s){for(const[e,t]of s.missing){const a=o.missing.get(e);(null==a||a>t)&&o.missing.set(e,t)}o.update=bl([o.update,s.update])}}else n.pendingStructs=s;const l=So(i,e,n);if(n.pendingDs){const t=new Co(ss(n.pendingDs));us(t.restDecoder);const a=So(t,e,n);n.pendingDs=l&&a?bl([l,a]):l||a}else n.pendingDs=l;if(t){const t=n.pendingStructs.update;n.pendingStructs=null,Po(e.doc,t)}}),a,!1),Po=(e,t,a,i=Co)=>{const n=ss(t);Ro(n,e,a,new i(n))},Oo=(e,t=new Uint8Array([0]),a=new Do)=>{((e,t,a=new Map)=>{Lo(e,t.store,a),Ao(e,wo(t.store))})(a,e,Bo(t));const i=[a.toUint8Array()];if(e.store.pendingDs&&i.push(e.store.pendingDs),e.store.pendingStructs&&i.push(vl(e.store.pendingStructs.update,t)),i.length>1){if(a.constructor===Fo)return yl(i.map(((e,t)=>0===t?e:kl(e))));if(a.constructor===Do)return bl(i)}return i[0]},Bo=e=>(e=>{const t=new Map,a=us(e.restDecoder);for(let i=0;i<a;i++){const a=us(e.restDecoder),i=us(e.restDecoder);t.set(a,i)}return t})(new To(ss(e))),$o=(e,t)=>(Or(e.restEncoder,t.size),cr(t.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,a])=>{Or(e.restEncoder,t),Or(e.restEncoder,a)})),e),jo=(e,t=new Eo)=>(e instanceof Map?$o(t,e):((e,t)=>{$o(e,Qo(t.store))})(t,e),t.toUint8Array());class Uo{constructor(){this.l=[]}}const zo=()=>new Uo,Wo=(e,t)=>e.l.push(t),Yo=(e,t)=>{const a=e.l,i=a.length;e.l=a.filter((e=>t!==e)),i===e.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},Ho=(e,t,a)=>Ps(e.l,[t,a]);class Go{constructor(e,t){this.client=e,this.clock=t}}const qo=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Zo=(e,t)=>new Go(e,t),Jo=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!bo(t.ds,e.id),Ko=(e,t)=>{const a=sr(e.meta,Ko,or),i=e.doc.store;a.has(t)||(t.sv.forEach(((t,a)=>{t<el(i,a)&&rl(e,Zo(a,t))})),go(e,t.ds,(e=>{})),a.add(t))};class Xo{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Qo=e=>{const t=new Map;return e.clients.forEach(((e,a)=>{const i=e[e.length-1];t.set(a,i.id.clock+i.length)})),t},el=(e,t)=>{const a=e.clients.get(t);if(void 0===a)return 0;const i=a[a.length-1];return i.id.clock+i.length},tl=(e,t)=>{let a=e.clients.get(t.id.client);if(void 0===a)a=[],e.clients.set(t.id.client,a);else{const e=a[a.length-1];if(e.id.clock+e.length!==t.id.clock)throw as()}a.push(t)},al=(e,t)=>{let a=0,i=e.length-1,n=e[i],r=n.id.clock;if(r===t)return i;let s=fr(t/(r+n.length-1)*i);for(;a<=i;){if(n=e[s],r=n.id.clock,r<=t){if(t<r+n.length)return s;a=s+1}else i=s-1;s=fr((a+i)/2)}throw as()},il=(e,t)=>{const a=e.clients.get(t.client);return a[al(a,t.clock)]},nl=(e,t,a)=>{const i=al(t,a),n=t[i];return n.id.clock<a&&n instanceof Yu?(t.splice(i+1,0,Wu(e,n,a-n.id.clock)),i+1):i},rl=(e,t)=>{const a=e.doc.store.clients.get(t.client);return a[nl(e,a,t.clock)]},sl=(e,t,a)=>{const i=t.clients.get(a.client),n=al(i,a.clock),r=i[n];return a.clock!==r.id.clock+r.length-1&&r.constructor!==Su&&i.splice(n+1,0,Wu(e,r,a.clock-r.id.clock+1)),r},ol=(e,t,a,i,n)=>{if(0===i)return;const r=a+i;let s,o=nl(e,t,a);do{s=t[o++],r<s.id.clock+s.length&&nl(e,t,r),n(s)}while(o<t.length&&t[o].id.clock<r)};class ll{constructor(e,t,a){this.doc=e,this.deleteSet=new yo,this.beforeState=Qo(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=a,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const ul=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[a,i]of e)if(t(i,a))return!0;return!1})(t.afterState,((e,a)=>t.beforeState.get(a)!==e)))&&(vo(t.deleteSet),((e,t)=>{Lo(e,t.doc.store,t.beforeState)})(e,t),Ao(e,t.deleteSet),!0),cl=(e,t,a)=>{const i=t._item;(null===i||i.id.clock<(e.beforeState.get(i.id.client)||0)&&!i.deleted)&&sr(e.changed,t,or).add(a)},dl=(e,t)=>{let a=e[t],i=e[t-1],n=t;for(;n>0&&(i.deleted===a.deleted&&i.constructor===a.constructor&&i.mergeWith(a));a=i,i=e[--n-1])a instanceof Yu&&null!==a.parentSub&&a.parent._map.get(a.parentSub)===a&&a.parent._map.set(a.parentSub,i);const r=t-n;return r&&e.splice(t+1-r,r),r},pl=(e,t)=>{if(t<e.length){const a=e[t],i=a.doc,n=i.store,r=a.deleteSet,s=a._mergeStructs;try{vo(r),a.afterState=Qo(a.doc.store),i.emit("beforeObserverCalls",[a,i]);const e=[];a.changed.forEach(((t,i)=>e.push((()=>{null!==i._item&&i._item.deleted||i._callObserver(a,t)})))),e.push((()=>{a.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),Ho(t._dEH,e,a))}))})),e.push((()=>i.emit("afterTransaction",[a,i]))),Ps(e,[]),a._needFormattingCleanup&&hu(a)}finally{i.gc&&((e,t,a)=>{for(const[i,n]of e.clients.entries()){const e=t.clients.get(i);for(let i=n.length-1;i>=0;i--){const r=n[i],s=r.clock+r.len;for(let i=al(e,r.clock),n=e[i];i<e.length&&n.id.clock<s;n=e[++i]){const n=e[i];if(r.clock+r.len<=n.id.clock)break;n instanceof Yu&&n.deleted&&!n.keep&&a(n)&&n.gc(t,!1)}}}})(r,n,i.gcFilter),((e,t)=>{e.clients.forEach(((e,a)=>{const i=t.clients.get(a);for(let t=e.length-1;t>=0;t--){const a=e[t];for(let e=yr(i.length-1,1+al(i,a.clock+a.len-1)),t=i[e];e>0&&t.id.clock>=a.clock;t=i[e])e-=1+dl(i,e)}}))})(r,n),a.afterState.forEach(((e,t)=>{const i=a.beforeState.get(t)||0;if(i!==e){const e=n.clients.get(t),a=gr(al(e,i),1);for(let t=e.length-1;t>=a;)t-=1+dl(e,t)}}));for(let e=s.length-1;e>=0;e--){const{client:t,clock:a}=s[e].id,i=n.clients.get(t),r=al(i,a);r+1<i.length&&dl(i,r+1)>1||r>0&&dl(i,r)}if(a.local||a.afterState.get(i.clientID)===a.beforeState.get(i.clientID)||(((...e)=>{console.log(...co(e)),po.forEach((t=>t.print(e)))})(oo,eo,"[yjs] ",to,ro,"Changed the client-id because another client seems to be using it."),i.clientID=No()),i.emit("afterTransactionCleanup",[a,i]),i._observers.has("update")){const e=new Fo;ul(e,a)&&i.emit("update",[e.toUint8Array(),a.origin,i,a])}if(i._observers.has("updateV2")){const e=new Do;ul(e,a)&&i.emit("updateV2",[e.toUint8Array(),a.origin,i,a])}const{subdocsAdded:o,subdocsLoaded:l,subdocsRemoved:u}=a;(o.size>0||u.size>0||l.size>0)&&(o.forEach((e=>{e.clientID=i.clientID,null==e.collectionid&&(e.collectionid=i.collectionid),i.subdocs.add(e)})),u.forEach((e=>i.subdocs.delete(e))),i.emit("subdocs",[{loaded:l,added:o,removed:u},i,a]),u.forEach((e=>e.destroy()))),e.length<=t+1?(i._transactionCleanups=[],i.emit("afterAllTransactions",[i,e])):pl(e,t+1)}}},hl=(e,t,a=null,i=!0)=>{const n=e._transactionCleanups;let r=!1,s=null;null===e._transaction&&(r=!0,e._transaction=new ll(e,a,i),n.push(e._transaction),1===n.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{s=t(e._transaction)}finally{if(r){const t=e._transaction===n[0];e._transaction=null,t&&pl(n,0)}}return s};class fl{constructor(e,t){this.gen=function*(e){const t=us(e.restDecoder);for(let a=0;a<t;a++){const t=us(e.restDecoder),a=e.readClient();let i=us(e.restDecoder);for(let n=0;n<t;n++){const t=e.readInfo();if(10===t){const t=us(e.restDecoder);yield new qu(Zo(a,i),t),i+=t}else if(31&t){const n=!(192&t),r=new Yu(Zo(a,i),null,(t&wr)===wr?e.readLeftID():null,null,(t&_r)===_r?e.readRightID():null,n?e.readParentInfo()?e.readString():e.readLeftID():null,!n||32&~t?null:e.readString(),Hu(e,t));yield r,i+=r.length}else{const t=e.readLen();yield new Su(Zo(a,i),t),i+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===qu);return this.curr}}class ml{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const yl=e=>bl(e,Mo,Fo),gl=(e,t)=>{if(e.constructor===Su){const{client:a,clock:i}=e.id;return new Su(Zo(a,i+t),e.length-t)}if(e.constructor===qu){const{client:a,clock:i}=e.id;return new qu(Zo(a,i+t),e.length-t)}{const a=e,{client:i,clock:n}=a.id;return new Yu(Zo(i,n+t),null,Zo(i,n+t-1),null,a.rightOrigin,a.parent,a.parentSub,a.content.splice(t))}},bl=(e,t=Co,a=Do)=>{if(1===e.length)return e[0];const i=e.map((e=>new t(ss(e))));let n=i.map((e=>new fl(e,!0))),r=null;const s=new a,o=new ml(s);for(;n=n.filter((e=>null!==e.curr)),n.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const a=e.curr.id.clock-t.curr.id.clock;return 0===a?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===qu?1:-1:a}return t.curr.id.client-e.curr.id.client})),0!==n.length;){const e=n[0],t=e.curr.id.client;if(null!==r){let a=e.curr,i=!1;for(;null!==a&&a.id.clock+a.length<=r.struct.id.clock+r.struct.length&&a.id.client>=r.struct.id.client;)a=e.next(),i=!0;if(null===a||a.id.client!==t||i&&a.id.clock>r.struct.id.clock+r.struct.length)continue;if(t!==r.struct.id.client)wl(o,r.struct,r.offset),r={struct:a,offset:0},e.next();else if(r.struct.id.clock+r.struct.length<a.id.clock)if(r.struct.constructor===qu)r.struct.length=a.id.clock+a.length-r.struct.id.clock;else{wl(o,r.struct,r.offset);const e=a.id.clock-r.struct.id.clock-r.struct.length;r={struct:new qu(Zo(t,r.struct.id.clock+r.struct.length),e),offset:0}}else{const t=r.struct.id.clock+r.struct.length-a.id.clock;t>0&&(r.struct.constructor===qu?r.struct.length-=t:a=gl(a,t)),r.struct.mergeWith(a)||(wl(o,r.struct,r.offset),r={struct:a,offset:0},e.next())}}else r={struct:e.curr,offset:0},e.next();for(let a=e.curr;null!==a&&a.id.client===t&&a.id.clock===r.struct.id.clock+r.struct.length&&a.constructor!==qu;a=e.next())wl(o,r.struct,r.offset),r={struct:a,offset:0}}null!==r&&(wl(o,r.struct,r.offset),r=null),Al(o);const l=(e=>{const t=new yo;for(let a=0;a<e.length;a++)e[a].clients.forEach(((i,n)=>{if(!t.clients.has(n)){const r=i.slice();for(let t=a+1;t<e.length;t++)ur(r,e[t].clients.get(n)||[]);t.clients.set(n,r)}}));return vo(t),t})(i.map((e=>ko(e))));return Ao(s,l),s.toUint8Array()},vl=(e,t,a=Co,i=Do)=>{const n=Bo(t),r=new i,s=new ml(r),o=new a(ss(e)),l=new fl(o,!1);for(;l.curr;){const e=l.curr,t=e.id.client,a=n.get(t)||0;if(l.curr.constructor!==qu)if(e.id.clock+e.length>a)for(wl(s,e,gr(a-e.id.clock,0)),l.next();l.curr&&l.curr.id.client===t;)wl(s,l.curr,0),l.next();else for(;l.curr&&l.curr.id.client===t&&l.curr.id.clock+l.curr.length<=a;)l.next();else l.next()}Al(s);const u=ko(o);return Ao(r,u),r.toUint8Array()},_l=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Lr(e.encoder.restEncoder)}),e.encoder.restEncoder=Er(),e.written=0)},wl=(e,t,a)=>{e.written>0&&e.currClient!==t.id.client&&_l(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Or(e.encoder.restEncoder,t.id.clock+a)),t.write(e.encoder,a),e.written++},Al=e=>{_l(e);const t=e.encoder.restEncoder;Or(t,e.clientStructs.length);for(let a=0;a<e.clientStructs.length;a++){const i=e.clientStructs[a];Or(t,i.written),zr(t,i.restEncoder)}},kl=e=>((e,t,a,i)=>{const n=new a(ss(e)),r=new fl(n,!1),s=new i,o=new ml(s);for(let e=r.curr;null!==e;e=r.next())wl(o,t(e),0);Al(o);const l=ko(n);return Ao(s,l),s.toUint8Array()})(e,Os,Co,Fo),Sl="You must not compute changes after the event-handler fired.";class Nl{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=xl(this.currentTarget,this.target))}deletes(e){return bo(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw es(Sl);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((a=>{if(null!==a){const i=t._map.get(a);let n,r;if(this.adds(i)){let e=i.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(i)){if(null===e||!this.deletes(e))return;n="delete",r=lr(e.content.getContent())}else null!==e&&this.deletes(e)?(n="update",r=lr(e.content.getContent())):(n="add",r=void 0)}else{if(!this.deletes(i))return;n="delete",r=lr(i.content.getContent())}e.set(a,{action:n,oldValue:r})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw es(Sl);const t=this.target,a=or(),i=or(),n=[];e={added:a,deleted:i,delta:n,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const r=()=>{e&&n.push(e)};for(let n=t._start;null!==n;n=n.right)n.deleted?this.deletes(n)&&!this.adds(n)&&(null!==e&&void 0!==e.delete||(r(),e={delete:0}),e.delete+=n.length,i.add(n)):this.adds(n)?(null!==e&&void 0!==e.insert||(r(),e={insert:[]}),e.insert=e.insert.concat(n.content.getContent()),a.add(n)):(null!==e&&void 0!==e.retain||(r(),e={retain:0}),e.retain+=n.length);null!==e&&void 0===e.retain&&r()}this._changes=e}return e}}const xl=(e,t)=>{const a=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)a.unshift(t._item.parentSub);else{let e=0,i=t._item.parent._start;for(;i!==t._item&&null!==i;)!i.deleted&&i.countable&&(e+=i.length),i=i.right;a.unshift(e)}t=t._item.parent}return a},Tl=()=>{((...e)=>{console.warn(...co(e)),e.unshift(oo),po.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let Ml=0;class Vl{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Ml++}}const Cl=(e,t,a)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=a,e.timestamp=Ml++},Il=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const a=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,a)=>mr(t-e.index)<mr(t-a.index)?e:a));let i=e._start,n=0;for(null!==a&&(i=a.p,n=a.index,(e=>{e.timestamp=Ml++})(a));null!==i.right&&n<t;){if(!i.deleted&&i.countable){if(t<n+i.length)break;n+=i.length}i=i.right}for(;null!==i.left&&n>t;)i=i.left,!i.deleted&&i.countable&&(n-=i.length);for(;null!==i.left&&i.left.id.client===i.id.client&&i.left.id.clock+i.left.length===i.id.clock;)i=i.left,!i.deleted&&i.countable&&(n-=i.length);return null!==a&&mr(a.index-n)<i.parent.length/80?(Cl(a,i,n),a):((e,t,a)=>{if(e.length>=80){const i=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return Cl(i,t,a),i}{const i=new Vl(t,a);return e.push(i),i}})(e._searchMarker,i,n)},Fl=(e,t,a)=>{for(let i=e.length-1;i>=0;i--){const n=e[i];if(a>0){let t=n.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(n.index-=t.length);if(null===t||!0===t.marker){e.splice(i,1);continue}n.p=t,t.marker=!0}(t<n.index||a>0&&t===n.index)&&(n.index=gr(t,n.index+a))}},El=(e,t,a)=>{const i=e,n=t.changedParentTypes;for(;sr(n,e,(()=>[])).push(a),null!==e._item;)e=e._item.parent;Ho(i._eH,a,t)};class Dl{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=zo(),this._dEH=zo(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ts()}clone(){throw ts()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Wo(this._eH,e)}observeDeep(e){Wo(this._dEH,e)}unobserve(e){Yo(this._eH,e)}unobserveDeep(e){Yo(this._dEH,e)}toJSON(){}}const Ll=(e,t,a)=>{e.doc??Tl(),t<0&&(t=e._length+t),a<0&&(a=e._length+a);let i=a-t;const n=[];let r=e._start;for(;null!==r&&i>0;){if(r.countable&&!r.deleted){const e=r.content.getContent();if(e.length<=t)t-=e.length;else{for(let a=t;a<e.length&&i>0;a++)n.push(e[a]),i--;t=0}}r=r.right}return n},Rl=e=>{e.doc??Tl();const t=[];let a=e._start;for(;null!==a;){if(a.countable&&!a.deleted){const e=a.content.getContent();for(let a=0;a<e.length;a++)t.push(e[a])}a=a.right}return t},Pl=(e,t)=>{let a=0,i=e._start;for(e.doc??Tl();null!==i;){if(i.countable&&!i.deleted){const n=i.content.getContent();for(let i=0;i<n.length;i++)t(n[i],a++,e)}i=i.right}},Ol=(e,t)=>{const a=[];return Pl(e,((i,n)=>{a.push(t(i,n,e))})),a},Bl=e=>{let t=e._start,a=null,i=0;return{[Symbol.iterator](){return this},next:()=>{if(null===a){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};a=t.content.getContent(),i=0,t=t.right}const e=a[i++];return a.length<=i&&(a=null),{done:!1,value:e}}}},$l=(e,t)=>{e.doc??Tl();const a=Il(e,t);let i=e._start;for(null!==a&&(i=a.p,t-=a.index);null!==i;i=i.right)if(!i.deleted&&i.countable){if(t<i.length)return i.content.getContent()[t];t-=i.length}},jl=(e,t,a,i)=>{let n=a;const r=e.doc,s=r.clientID,o=r.store,l=null===a?t._start:a.right;let u=[];const c=()=>{u.length>0&&(n=new Yu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Eu(u)),n.integrate(e,0),u=[])};i.forEach((a=>{if(null===a)u.push(a);else switch(a.constructor){case Number:case Object:case Boolean:case Array:case String:u.push(a);break;default:switch(c(),a.constructor){case Uint8Array:case ArrayBuffer:n=new Yu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Nu(new Uint8Array(a))),n.integrate(e,0);break;case xo:n=new Yu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Mu(a)),n.integrate(e,0);break;default:if(!(a instanceof Dl))throw new Error("Unexpected content type in insert operation");n=new Yu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new zu(a)),n.integrate(e,0)}}})),c()},Ul=()=>es("Length exceeded!"),zl=(e,t,a,i)=>{if(a>t._length)throw Ul();if(0===a)return t._searchMarker&&Fl(t._searchMarker,a,i.length),jl(e,t,null,i);const n=a,r=Il(t,a);let s=t._start;for(null!==r&&(s=r.p,0===(a-=r.index)&&(s=s.prev,a+=s&&s.countable&&!s.deleted?s.length:0));null!==s;s=s.right)if(!s.deleted&&s.countable){if(a<=s.length){a<s.length&&rl(e,Zo(s.id.client,s.id.clock+a));break}a-=s.length}return t._searchMarker&&Fl(t._searchMarker,n,i.length),jl(e,t,s,i)},Wl=(e,t,a,i)=>{if(0===i)return;const n=a,r=i,s=Il(t,a);let o=t._start;for(null!==s&&(o=s.p,a-=s.index);null!==o&&a>0;o=o.right)!o.deleted&&o.countable&&(a<o.length&&rl(e,Zo(o.id.client,o.id.clock+a)),a-=o.length);for(;i>0&&null!==o;)o.deleted||(i<o.length&&rl(e,Zo(o.id.client,o.id.clock+i)),o.delete(e),i-=o.length),o=o.right;if(i>0)throw Ul();t._searchMarker&&Fl(t._searchMarker,n,-r+i)},Yl=(e,t,a)=>{const i=t._map.get(a);void 0!==i&&i.delete(e)},Hl=(e,t,a,i)=>{const n=t._map.get(a)||null,r=e.doc,s=r.clientID;let o;if(null==i)o=new Eu([i]);else switch(i.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:o=new Eu([i]);break;case Uint8Array:o=new Nu(i);break;case xo:o=new Mu(i);break;default:if(!(i instanceof Dl))throw new Error("Unexpected content type");o=new zu(i)}new Yu(Zo(s,el(r.store,s)),n,n&&n.lastId,null,null,t,a,o).integrate(e,0)},Gl=(e,t)=>{e.doc??Tl();const a=e._map.get(t);return void 0===a||a.deleted?void 0:a.content.getContent()[a.length-1]},ql=e=>{const t={};return e.doc??Tl(),e._map.forEach(((e,a)=>{e.deleted||(t[a]=e.content.getContent()[e.length-1])})),t},Zl=(e,t)=>{e.doc??Tl();const a=e._map.get(t);return void 0!==a&&!a.deleted},Jl=e=>{return e.doc??Tl(),t=e._map.entries(),a=e=>!e[1].deleted,ho((()=>{let e;do{e=t.next()}while(!e.done&&!a(e.value));return e}));var t,a};class Kl extends Nl{}class Xl extends Dl{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Xl;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Xl}clone(){const e=new Xl;return e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}get length(){return this.doc??Tl(),this._length}_callObserver(e,t){super._callObserver(e,t),El(this,e,new Kl(this,e))}insert(e,t){null!==this.doc?hl(this.doc,(a=>{zl(a,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?hl(this.doc,(t=>{((e,t,a)=>{let i=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(i)for(;i.right;)i=i.right;jl(e,t,i,a)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?hl(this.doc,(a=>{Wl(a,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return $l(this,e)}toArray(){return Rl(this)}slice(e=0,t=this.length){return Ll(this,e,t)}toJSON(){return this.map((e=>e instanceof Dl?e.toJSON():e))}map(e){return Ol(this,e)}forEach(e){Pl(this,e)}[Symbol.iterator](){return Bl(this)}_write(e){e.writeTypeRef(Ru)}}class Ql extends Nl{constructor(e,t,a){super(e,t),this.keysChanged=a}}class eu extends Dl{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new eu}clone(){const e=new eu;return this.forEach(((t,a)=>{e.set(a,t instanceof Dl?t.clone():t)})),e}_callObserver(e,t){El(this,e,new Ql(this,e,t))}toJSON(){this.doc??Tl();const e={};return this._map.forEach(((t,a)=>{if(!t.deleted){const i=t.content.getContent()[t.length-1];e[a]=i instanceof Dl?i.toJSON():i}})),e}get size(){return[...Jl(this)].length}keys(){return fo(Jl(this),(e=>e[0]))}values(){return fo(Jl(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return fo(Jl(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??Tl(),this._map.forEach(((t,a)=>{t.deleted||e(t.content.getContent()[t.length-1],a,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?hl(this.doc,(t=>{Yl(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?hl(this.doc,(a=>{Hl(a,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return Gl(this,e)}has(e){return Zl(this,e)}clear(){null!==this.doc?hl(this.doc,(e=>{this.forEach((function(t,a,i){Yl(e,i,a)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Pu)}}const tu=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Fs(e)===Fs(t)&&((e,t)=>{for(const a in e)if(!t(e[a],a))return!1;return!0})(e,((e,a)=>(void 0!==e||Es(t,a))&&t[a]===e)))(e,t);class au{constructor(e,t,a,i){this.left=e,this.right=t,this.index=a,this.currentAttributes=i}forward(){if(null===this.right&&as(),this.right.content.constructor===Cu)this.right.deleted||su(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const iu=(e,t,a)=>{for(;null!==t.right&&a>0;){if(t.right.content.constructor===Cu)t.right.deleted||su(t.currentAttributes,t.right.content);else t.right.deleted||(a<t.right.length&&rl(e,Zo(t.right.id.client,t.right.id.clock+a)),t.index+=t.right.length,a-=t.right.length);t.left=t.right,t.right=t.right.right}return t},nu=(e,t,a,i)=>{const n=new Map,r=i?Il(t,a):null;if(r){const t=new au(r.p.left,r.p,r.index,n);return iu(e,t,a-r.index)}{const i=new au(null,t._start,0,n);return iu(e,i,a)}},ru=(e,t,a,i)=>{for(;null!==a.right&&(!0===a.right.deleted||a.right.content.constructor===Cu&&tu(i.get(a.right.content.key),a.right.content.value));)a.right.deleted||i.delete(a.right.content.key),a.forward();const n=e.doc,r=n.clientID;i.forEach(((i,s)=>{const o=a.left,l=a.right,u=new Yu(Zo(r,el(n.store,r)),o,o&&o.lastId,l,l&&l.id,t,null,new Cu(s,i));u.integrate(e,0),a.right=u,a.forward()}))},su=(e,t)=>{const{key:a,value:i}=t;null===i?e.delete(a):e.set(a,i)},ou=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Cu&&tu(t[e.right.content.key]??null,e.right.content.value));)e.forward()},lu=(e,t,a,i)=>{const n=e.doc,r=n.clientID,s=new Map;for(const o in i){const l=i[o],u=a.currentAttributes.get(o)??null;if(!tu(u,l)){s.set(o,u);const{left:i,right:c}=a;a.right=new Yu(Zo(r,el(n.store,r)),i,i&&i.lastId,c,c&&c.id,t,null,new Cu(o,l)),a.right.integrate(e,0),a.forward()}}return s},uu=(e,t,a,i,n)=>{a.currentAttributes.forEach(((e,t)=>{void 0===n[t]&&(n[t]=null)}));const r=e.doc,s=r.clientID;ou(a,n);const o=lu(e,t,a,n),l=i.constructor===String?new Du(i):i instanceof Dl?new zu(i):new Vu(i);let{left:u,right:c,index:d}=a;t._searchMarker&&Fl(t._searchMarker,a.index,l.getLength()),c=new Yu(Zo(s,el(r.store,s)),u,u&&u.lastId,c,c&&c.id,t,null,l),c.integrate(e,0),a.right=c,a.index=d,a.forward(),ru(e,t,a,o)},cu=(e,t,a,i,n)=>{const r=e.doc,s=r.clientID;ou(a,n);const o=lu(e,t,a,n);e:for(;null!==a.right&&(i>0||o.size>0&&(a.right.deleted||a.right.content.constructor===Cu));){if(!a.right.deleted)switch(a.right.content.constructor){case Cu:{const{key:t,value:r}=a.right.content,s=n[t];if(void 0!==s){if(tu(s,r))o.delete(t);else{if(0===i)break e;o.set(t,r)}a.right.delete(e)}else a.currentAttributes.set(t,r);break}default:i<a.right.length&&rl(e,Zo(a.right.id.client,a.right.id.clock+i)),i-=a.right.length}a.forward()}if(i>0){let n="";for(;i>0;i--)n+="\n";a.right=new Yu(Zo(s,el(r.store,s)),a.left,a.left&&a.left.lastId,a.right,a.right&&a.right.id,t,null,new Du(n)),a.right.integrate(e,0),a.forward()}ru(e,t,a,o)},du=(e,t,a,i,n)=>{let r=t;const s=nr();for(;r&&(!r.countable||r.deleted);){if(!r.deleted&&r.content.constructor===Cu){const e=r.content;s.set(e.key,e)}r=r.right}let o=0,l=!1;for(;t!==r;){if(a===t&&(l=!0),!t.deleted){const a=t.content;switch(a.constructor){case Cu:{const{key:r,value:u}=a,c=i.get(r)??null;s.get(r)===a&&c!==u||(t.delete(e),o++,l||(n.get(r)??null)!==u||c===u||(null===c?n.delete(r):n.set(r,c))),l||t.deleted||su(n,a);break}}}t=t.right}return o},pu=e=>{let t=0;return hl(e.doc,(a=>{let i=e._start,n=e._start,r=nr();const s=rr(r);for(;n;){if(!1===n.deleted)if(n.content.constructor===Cu)su(s,n.content);else t+=du(a,i,n,r,s),r=rr(s),i=n;n=n.right}})),t},hu=e=>{const t=new Set,a=e.doc;for(const[i,n]of e.afterState.entries()){const r=e.beforeState.get(i)||0;n!==r&&ol(e,a.store.clients.get(i),r,n,(e=>{e.deleted||e.content.constructor!==Cu||e.constructor===Su||t.add(e.parent)}))}hl(a,(a=>{go(e,e.deleteSet,(e=>{if(e instanceof Su||!e.parent._hasFormatting||t.has(e.parent))return;const i=e.parent;e.content.constructor===Cu?t.add(i):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const a=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===Cu){const i=t.content.key;a.has(i)?t.delete(e):a.add(i)}t=t.left}})(a,e)}));for(const e of t)pu(e)}))},fu=(e,t,a)=>{const i=a,n=rr(t.currentAttributes),r=t.right;for(;a>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case zu:case Vu:case Du:a<t.right.length&&rl(e,Zo(t.right.id.client,t.right.id.clock+a)),a-=t.right.length,t.right.delete(e)}t.forward()}r&&du(e,r,t.right,n,t.currentAttributes);const s=(t.left||t.right).parent;return s._searchMarker&&Fl(s._searchMarker,t.index,-i+a),t};class mu extends Nl{constructor(e,t,a){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,a.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];hl(e,(e=>{const a=new Map,i=new Map;let n=this.target._start,r=null;const s={};let o="",l=0,u=0;const c=()=>{if(null!==r){let e=null;switch(r){case"delete":u>0&&(e={delete:u}),u=0;break;case"insert":("object"==typeof o||o.length>0)&&(e={insert:o},a.size>0&&(e.attributes={},a.forEach(((t,a)=>{null!==t&&(e.attributes[a]=t)})))),o="";break;case"retain":l>0&&(e={retain:l},(e=>{for(const t in e)return!1;return!0})(s)||(e.attributes=Vs({},s))),l=0}e&&t.push(e),r=null}};for(;null!==n;){switch(n.content.constructor){case zu:case Vu:this.adds(n)?this.deletes(n)||(c(),r="insert",o=n.content.getContent()[0],c()):this.deletes(n)?("delete"!==r&&(c(),r="delete"),u+=1):n.deleted||("retain"!==r&&(c(),r="retain"),l+=1);break;case Du:this.adds(n)?this.deletes(n)||("insert"!==r&&(c(),r="insert"),o+=n.content.str):this.deletes(n)?("delete"!==r&&(c(),r="delete"),u+=n.length):n.deleted||("retain"!==r&&(c(),r="retain"),l+=n.length);break;case Cu:{const{key:t,value:o}=n.content;if(this.adds(n)){if(!this.deletes(n)){const l=a.get(t)??null;tu(l,o)?null!==o&&n.delete(e):("retain"===r&&c(),tu(o,i.get(t)??null)?delete s[t]:s[t]=o)}}else if(this.deletes(n)){i.set(t,o);const e=a.get(t)??null;tu(e,o)||("retain"===r&&c(),s[t]=e)}else if(!n.deleted){i.set(t,o);const a=s[t];void 0!==a&&(tu(a,o)?null!==a&&n.delete(e):("retain"===r&&c(),null===o?delete s[t]:s[t]=o))}n.deleted||("insert"===r&&c(),su(a,n.content));break}}n=n.right}for(c();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class yu extends Dl{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Tl(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){console.error(e)}this._pending=null}_copy(){return new yu}clone(){const e=new yu;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const a=new mu(this,e,t);El(this,e,a),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Tl();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Du&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?hl(this.doc,(a=>{const i=new au(null,this._start,0,new Map);for(let n=0;n<e.length;n++){const r=e[n];if(void 0!==r.insert){const s=t||"string"!=typeof r.insert||n!==e.length-1||null!==i.right||"\n"!==r.insert.slice(-1)?r.insert:r.insert.slice(0,-1);("string"!=typeof s||s.length>0)&&uu(a,this,i,s,r.attributes||{})}else void 0!==r.retain?cu(a,this,i,r.retain,r.attributes||{}):void 0!==r.delete&&fu(a,i,r.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,a){this.doc??Tl();const i=[],n=new Map,r=this.doc;let s="",o=this._start;function l(){if(s.length>0){const e={};let t=!1;n.forEach(((a,i)=>{t=!0,e[i]=a}));const a={insert:s};t&&(a.attributes=e),i.push(a),s=""}}const u=()=>{for(;null!==o;){if(Jo(o,e)||void 0!==t&&Jo(o,t))switch(o.content.constructor){case Du:{const i=n.get("ychange");void 0===e||Jo(o,e)?void 0===t||Jo(o,t)?void 0!==i&&(l(),n.delete("ychange")):void 0!==i&&i.user===o.id.client&&"added"===i.type||(l(),n.set("ychange",a?a("added",o.id):{type:"added"})):void 0!==i&&i.user===o.id.client&&"removed"===i.type||(l(),n.set("ychange",a?a("removed",o.id):{type:"removed"})),s+=o.content.str;break}case zu:case Vu:{l();const e={insert:o.content.getContent()[0]};if(n.size>0){const t={};e.attributes=t,n.forEach(((e,a)=>{t[a]=e}))}i.push(e);break}case Cu:Jo(o,e)&&(l(),su(n,o.content))}o=o.right}l()};return e||t?hl(r,(a=>{e&&Ko(a,e),t&&Ko(a,t),u()}),"cleanup"):u(),i}insert(e,t,a){if(t.length<=0)return;const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!a);a||(a={},n.currentAttributes.forEach(((e,t)=>{a[t]=e}))),uu(i,this,n,t,a)})):this._pending.push((()=>this.insert(e,t,a)))}insertEmbed(e,t,a){const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!a);uu(i,this,n,t,a||{})})):this._pending.push((()=>this.insertEmbed(e,t,a||{})))}delete(e,t){if(0===t)return;const a=this.doc;null!==a?hl(a,(a=>{fu(a,nu(a,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,a){if(0===t)return;const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!1);null!==n.right&&cu(i,this,n,t,a)})):this._pending.push((()=>this.format(e,t,a)))}removeAttribute(e){null!==this.doc?hl(this.doc,(t=>{Yl(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?hl(this.doc,(a=>{Hl(a,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return Gl(this,e)}getAttributes(){return ql(this)}_write(e){e.writeTypeRef(Ou)}}class gu{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Tl()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==vu&&t.constructor!==bu||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class bu extends Dl{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new bu}clone(){const e=new bu;return e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}get length(){return this.doc??Tl(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new gu(this,e)}querySelector(e){e=e.toUpperCase();const t=new gu(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),cr(new gu(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){El(this,e,new _u(this,t,e))}toString(){return Ol(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},a){const i=e.createDocumentFragment();return void 0!==a&&a._createAssociation(i,this),Pl(this,(n=>{i.insertBefore(n.toDOM(e,t,a),null)})),i}insert(e,t){null!==this.doc?hl(this.doc,(a=>{zl(a,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)hl(this.doc,(a=>{const i=e&&e instanceof Dl?e._item:e;jl(a,this,i,t)}));else{const a=this._prelimContent,i=null===e?0:a.findIndex((t=>t===e))+1;if(0===i&&null!==e)throw es("Reference item not found");a.splice(i,0,...t)}}delete(e,t=1){null!==this.doc?hl(this.doc,(a=>{Wl(a,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return Rl(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return $l(this,e)}slice(e=0,t=this.length){return Ll(this,e,t)}forEach(e){Pl(this,e)}_write(e){e.writeTypeRef($u)}}class vu extends bu{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new vu(this.nodeName)}clone(){const e=new vu(this.nodeName);return((e,t)=>{for(const a in e)t(e[a],a)})(this.getAttributes(),((t,a)=>{"string"==typeof t&&e.setAttribute(a,t)})),e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],a=[];for(const t in e)a.push(t);a.sort();const i=a.length;for(let n=0;n<i;n++){const i=a[n];t.push(i+'="'+e[i]+'"')}const n=this.nodeName.toLocaleLowerCase();return`<${n}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${n}>`}removeAttribute(e){null!==this.doc?hl(this.doc,(t=>{Yl(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?hl(this.doc,(a=>{Hl(a,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return Gl(this,e)}hasAttribute(e){return Zl(this,e)}getAttributes(e){return e?((e,t)=>{const a={};return e._map.forEach(((e,i)=>{let n=e;for(;null!==n&&(!t.sv.has(n.id.client)||n.id.clock>=(t.sv.get(n.id.client)||0));)n=n.left;null!==n&&Jo(n,t)&&(a[i]=n.content.getContent()[n.length-1])})),a})(this,e):ql(this)}toDOM(e=document,t={},a){const i=e.createElement(this.nodeName),n=this.getAttributes();for(const e in n){const t=n[e];"string"==typeof t&&i.setAttribute(e,t)}return Pl(this,(n=>{i.appendChild(n.toDOM(e,t,a))})),void 0!==a&&a._createAssociation(i,this),i}_write(e){e.writeTypeRef(Bu),e.writeKey(this.nodeName)}}class _u extends Nl{constructor(e,t,a){super(e,a),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class wu extends eu{constructor(e){super(),this.hookName=e}_copy(){return new wu(this.hookName)}clone(){const e=new wu(this.hookName);return this.forEach(((t,a)=>{e.set(a,t)})),e}toDOM(e=document,t={},a){const i=t[this.hookName];let n;return n=void 0!==i?i.createDom(this):document.createElement(this.hookName),n.setAttribute("data-yjs-hook",this.hookName),void 0!==a&&a._createAssociation(n,this),n}_write(e){e.writeTypeRef(ju),e.writeKey(this.hookName)}}class Au extends yu{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Au}clone(){const e=new Au;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,a){const i=e.createTextNode(this.toString());return void 0!==a&&a._createAssociation(i,this),i}toString(){return this.toDelta().map((e=>{const t=[];for(const a in e.attributes){const i=[];for(const t in e.attributes[a])i.push({key:t,value:e.attributes[a][t]});i.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:a,attrs:i})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let a="";for(let e=0;e<t.length;e++){const i=t[e];a+=`<${i.nodeName}`;for(let e=0;e<i.attrs.length;e++){const t=i.attrs[e];a+=` ${t.key}="${t.value}"`}a+=">"}a+=e.insert;for(let e=t.length-1;e>=0;e--)a+=`</${t[e].nodeName}>`;return a})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Uu)}}class ku{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ts()}mergeWith(e){return!1}write(e,t,a){throw ts()}integrate(e,t){throw ts()}}class Su extends ku{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),tl(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Nu{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Nu(this.content)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class xu{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new xu(this.len)}splice(e){const t=new xu(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){_o(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const Tu=(e,t)=>new xo({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Mu{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Mu(Tu(this.doc.guid,this.opts))}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class Vu{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Vu(this.embed)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Cu{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Cu(this.key,this.value)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){const a=t.parent;a._searchMarker=null,a._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Iu{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Iu(this.arr)}splice(e){const t=new Iu(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const a=this.arr.length;e.writeLen(a-t);for(let i=t;i<a;i++){const t=this.arr[i];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Fu="development"===Ws("node_env");class Eu{constructor(e){this.arr=e,Fu&&Ls(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Eu(this.arr)}splice(e){const t=new Eu(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const a=this.arr.length;e.writeLen(a-t);for(let i=t;i<a;i++){const t=this.arr[i];e.writeAny(t)}}getRef(){return 8}}class Du{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Du(this.str)}splice(e){const t=new Du(this.str.slice(e));this.str=this.str.slice(0,e);const a=this.str.charCodeAt(e-1);return a>=55296&&a<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Lu=[e=>new Xl,e=>new eu,e=>new yu,e=>new vu(e.readKey()),e=>new bu,e=>new wu(e.readKey()),e=>new Au],Ru=0,Pu=1,Ou=2,Bu=3,$u=4,ju=5,Uu=6;class zu{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new zu(this.type._copy())}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Wu=(e,t,a)=>{const{client:i,clock:n}=t.id,r=new Yu(Zo(i,n+a),t,Zo(i,n+a-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(a));return t.deleted&&r.markDeleted(),t.keep&&(r.keep=!0),null!==t.redone&&(r.redone=Zo(t.redone.client,t.redone.clock+a)),t.right=r,null!==r.right&&(r.right.left=r),e._mergeStructs.push(r),null!==r.parentSub&&null===r.right&&r.parent._map.set(r.parentSub,r),t.length=a,r};class Yu extends ku{constructor(e,t,a,i,n,r,s,o){super(e,o.getLength()),this.origin=a,this.left=t,this.right=i,this.rightOrigin=n,this.parent=r,this.parentSub=s,this.redone=null,this.content=o,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=el(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=el(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Go&&this.id.client!==this.parent.client&&this.parent.clock>=el(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=sl(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=rl(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Su||this.right&&this.right.constructor===Su)this.parent=null;else if(this.parent){if(this.parent.constructor===Go){const e=il(t,this.parent);e.constructor===Su?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Yu?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Yu&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=sl(e,e.doc.store,Zo(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,a=this.left;if(null!==a)t=a.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const i=new Set,n=new Set;for(;null!==t&&t!==this.right;){if(n.add(t),i.add(t),qo(this.origin,t.origin)){if(t.id.client<this.id.client)a=t,i.clear();else if(qo(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!n.has(il(e.doc.store,t.origin)))break;i.has(il(e.doc.store,t.origin))||(a=t,i.clear())}t=t.right}this.left=a}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),tl(e.doc.store,this),this.content.integrate(e,this),cl(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Su(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:Zo(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&qo(e.origin,this.lastId)&&this.right===e&&qo(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),_o(e.deleteSet,this.id.client,this.id.clock,this.length),cl(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw as();this.content.gc(e),t?((e,t,a)=>{const i=e.clients.get(t.id.client);i[al(i,t.id.clock)]=a})(e,this,new Su(this.id,this.length)):this.content=new xu(this.length)}write(e,t){const a=t>0?Zo(this.id.client,this.id.clock+t-1):this.origin,i=this.rightOrigin,n=this.parentSub,r=31&this.content.getRef()|(null===a?0:wr)|(null===i?0:_r)|(null===n?0:32);if(e.writeInfo(r),null!==a&&e.writeLeftID(a),null!==i&&e.writeRightID(i),null===a&&null===i){const t=this.parent;if(void 0!==t._item){const a=t._item;if(null===a){const a=(e=>{for(const[t,a]of e.doc.share.entries())if(a===e)return t;throw as()})(t);e.writeParentInfo(!0),e.writeString(a)}else e.writeParentInfo(!1),e.writeLeftID(a.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===Go?(e.writeParentInfo(!1),e.writeLeftID(t)):as();null!==n&&e.writeString(n)}this.content.write(e,t)}}const Hu=(e,t)=>Gu[31&t](e),Gu=[()=>{as()},e=>new xu(e.readLen()),e=>{const t=e.readLen(),a=[];for(let i=0;i<t;i++){const t=e.readString();"undefined"===t?a.push(void 0):a.push(JSON.parse(t))}return new Iu(a)},e=>new Nu(e.readBuf()),e=>new Du(e.readString()),e=>new Vu(e.readJSON()),e=>new Cu(e.readKey(),e.readJSON()),e=>new zu(Lu[e.readTypeRef()](e)),e=>{const t=e.readLen(),a=[];for(let i=0;i<t;i++)a.push(e.readAny());return new Eu(a)},e=>new Mu(Tu(e.readString(),e.readAny())),()=>{as()}];class qu extends ku{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){as()}write(e,t){e.writeInfo(10),Or(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Zu="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Ju="__ $YJS$ __";!0===Zu[Ju]&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),Zu[Ju]=!0;const Ku=new Map;const Xu="undefined"==typeof BroadcastChannel?class{constructor(e){var t;this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:Js(t.newValue||"")}),t=this._onChange,Ts||addEventListener("storage",t)}postMessage(e){Ms.setItem(this.room,Zs((e=>new Uint8Array(e))(e)))}close(){var e;e=this._onChange,Ts||removeEventListener("storage",e)}}:BroadcastChannel,Qu=e=>sr(Ku,e,(()=>{const t=or(),a=new Xu(e);return a.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:a,subs:t}})),ec=(e,t,a=null)=>{const i=Qu(e);i.bc.postMessage(t),i.subs.forEach((e=>e(t,a)))},tc=(e,t)=>{Or(e,0);const a=(e=>jo(e,new Io))(t);Wr(e,a)},ac=(e,t,a)=>{Or(e,1),Wr(e,((e,t)=>Oo(e,t,new Fo))(t,a))},ic=(e,t,a)=>{try{((e,t,a)=>{Po(e,t,a,Mo)})(t,os(e),a)}catch(e){console.error("Caught error while handling a Yjs update",e)}},nc=ic,rc=(e,t,a,i)=>{const n=us(e);switch(n){case 0:((e,t,a)=>{ac(t,a,os(e))})(e,t,a);break;case 1:ic(e,a,i);break;case 2:nc(e,a,i);break;default:throw new Error("Unknown message type")}return n},sc=3e4;class oc extends hr{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=ks();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((a,i)=>{i!==this.clientID&&sc<=e-a.lastUpdated&&this.states.has(i)&&t.push(i)})),t.length>0&&lc(this,t,"timeout")}),fr(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,a=this.meta.get(t),i=void 0===a?0:a.clock+1,n=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:i,lastUpdated:ks()});const r=[],s=[],o=[],l=[];null===e?l.push(t):null==n?null!=e&&r.push(t):(s.push(t),Bs(n,e)||o.push(t)),(r.length>0||o.length>0||l.length>0)&&this.emit("change",[{added:r,updated:o,removed:l},"local"]),this.emit("update",[{added:r,updated:s,removed:l},"local"])}setLocalStateField(e,t){const a=this.getLocalState();null!==a&&this.setLocalState({...a,[e]:t})}getStates(){return this.states}}const lc=(e,t,a)=>{const i=[];for(let a=0;a<t.length;a++){const n=t[a];if(e.states.has(n)){if(e.states.delete(n),n===e.clientID){const t=e.meta.get(n);e.meta.set(n,{clock:t.clock+1,lastUpdated:ks()})}i.push(n)}}i.length>0&&(e.emit("change",[{added:[],updated:[],removed:i},a]),e.emit("update",[{added:[],updated:[],removed:i},a]))},uc=(e,t,a=e.states)=>{const i=t.length,n=Er();Or(n,i);for(let r=0;r<i;r++){const i=t[r],s=a.get(i)||null,o=e.meta.get(i).clock;Or(n,i),Or(n,o),Ur(n,JSON.stringify(s))}return Lr(n)},cc=[];cc[0]=(e,t,a,i,n)=>{Or(e,0);const r=rc(t,e,a.doc,a);i&&1===r&&!a.synced&&(a.synced=!0)},cc[3]=(e,t,a,i,n)=>{Or(e,1),Wr(e,uc(a.awareness,Array.from(a.awareness.getStates().keys())))},cc[1]=(e,t,a,i,n)=>{((e,t,a)=>{const i=ss(t),n=ks(),r=[],s=[],o=[],l=[],u=us(i);for(let t=0;t<u;t++){const t=us(i);let a=us(i);const u=JSON.parse(ds(i)),c=e.meta.get(t),d=e.states.get(t),p=void 0===c?0:c.clock;(p<a||p===a&&null===u&&e.states.has(t))&&(null===u?t===e.clientID&&null!=e.getLocalState()?a++:e.states.delete(t):e.states.set(t,u),e.meta.set(t,{clock:a,lastUpdated:n}),void 0===c&&null!==u?r.push(t):void 0!==c&&null===u?l.push(t):null!==u&&(Bs(u,d)||o.push(t),s.push(t)))}(r.length>0||o.length>0||l.length>0)&&e.emit("change",[{added:r,updated:o,removed:l},a]),(r.length>0||s.length>0||l.length>0)&&e.emit("update",[{added:r,updated:s,removed:l},a])})(a.awareness,os(t),a)},cc[2]=(e,t,a,i,n)=>{((e,t,a)=>{0===us(e)&&a(t,ds(e))})(t,a.doc,((e,t)=>dc(a,t)))};const dc=(e,t)=>console.warn(`Permission denied to access ${e.url}.\n${t}`),pc=(e,t,a)=>{const i=ss(t),n=Er(),r=us(i),s=e.messageHandlers[r];return s?s(n,i,e,a,r):console.error("Unable to compute message"),n},hc=(e,t,a)=>{t===e.ws&&(e.emit("connection-close",[a,e]),e.ws=null,t.close(),e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,lc(e.awareness,Array.from(e.awareness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(fc,yr(100*br(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e))},fc=e=>{if(e.shouldConnect&&null===e.ws){const t=new e._WS(e.url,e.protocols);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=a=>{e.wsLastMessageReceived=ks();const i=pc(e,new Uint8Array(a.data),!0);Dr(i)>1&&t.send(Lr(i))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=a=>{hc(e,t,a)},t.onopen=()=>{e.wsLastMessageReceived=ks(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const a=Er();if(Or(a,0),tc(a,e.doc),t.send(Lr(a)),null!==e.awareness.getLocalState()){const a=Er();Or(a,1),Wr(a,uc(e.awareness,[e.doc.clientID])),t.send(Lr(a))}},e.emit("status",[{status:"connecting"}])}},mc=(e,t)=>{const a=e.ws;e.wsconnected&&a&&a.readyState===a.OPEN&&a.send(t),e.bcconnected&&ec(e.bcChannel,t,e)};class yc extends pr{constructor(e,t,a,{connect:i=!0,awareness:n=new oc(a),params:r={},protocols:s=[],WebSocketPolyfill:o=WebSocket,resyncInterval:l=-1,maxBackoffTime:u=2500,disableBc:c=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);this.serverUrl=e,this.bcChannel=e+"/"+t,this.maxBackoffTime=u,this.params=r,this.protocols=s,this.roomname=t,this.doc=a,this._WS=o,this.awareness=n,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=c,this.wsUnsuccessfulReconnects=0,this.messageHandlers=cc.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=i,this._resyncInterval=0,l>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const e=Er();Or(e,0),tc(e,a),this.ws.send(Lr(e))}}),l)),this._bcSubscriber=(e,t)=>{if(t!==this){const t=pc(this,new Uint8Array(e),!1);Dr(t)>1&&ec(this.bcChannel,Lr(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const t=Er();Or(t,0),((e,t)=>{Or(e,2),Wr(e,t)})(t,e),mc(this,Lr(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:a},i)=>{const r=e.concat(t).concat(a),s=Er();Or(s,1),Wr(s,uc(n,r)),mc(this,Lr(s))},this._exitHandler=()=>{lc(this.awareness,[a.clientID],"app closed")},$s&&"undefined"!=typeof process&&process.on("exit",this._exitHandler),n.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<ks()-this.wsLastMessageReceived&&hc(this,this.ws,null)}),3e3),i&&this.connect()}get url(){const e=(e=>((e,t)=>{const a=[];for(const i in e)a.push(t(e[i],i));return a})(e,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))(this.params);return this.serverUrl+"/"+this.roomname+(0===e.length?"":"?"+e)}get synced(){return this._synced}set synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),$s&&"undefined"!=typeof process&&process.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var e,t;this.bcconnected||(e=this.bcChannel,t=this._bcSubscriber,Qu(e).subs.add(t),this.bcconnected=!0);const a=Er();Or(a,0),tc(a,this.doc),ec(this.bcChannel,Lr(a),this);const i=Er();Or(i,0),ac(i,this.doc),ec(this.bcChannel,Lr(i),this);const n=Er();Or(n,3),ec(this.bcChannel,Lr(n),this);const r=Er();Or(r,1),Wr(r,uc(this.awareness,[this.doc.clientID])),ec(this.bcChannel,Lr(r),this)}disconnectBc(){const e=Er();Or(e,1),Wr(e,uc(this.awareness,[this.doc.clientID],new Map)),mc(this,Lr(e)),this.bcconnected&&(((e,t)=>{const a=Qu(e),i=a.subs.delete(t);i&&0===a.subs.size&&(a.bc.close(),Ku.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&hc(this,this.ws,null)}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(fc(this),this.connectBc())}}class gc extends xo{}class bc{apiClient;collabDocument;yWebsocketProvider;item;awareness;users=[];avatars=new Map;constructor(e){this.apiClient=e,this.collabDocument=new gc}isActive(){return void 0!==this.yWebsocketProvider}getAwarenessStates(){return this.awareness?this.awareness.getStates():new Map}getUsersList(){return this.users}_getUser(e){for(const t of this.users)if(e===t.key)return t;return null}getLocalState(){if(!this.awareness)throw new Error("No awareness available. Cannot get state field.");return this.awareness.getLocalState()}setLocalStateField(e,t){if(!this.awareness)throw new Error("No awareness available. Cannot set state field.");this.awareness.setLocalStateField(e,t)}async _updateUsersList(){const e=this.getAwarenessStates(),t=await this.apiClient.me(!0);for(const[a,i]of e.entries()){if(!this._getUser(a)){let e=this.avatars.get(i.user.id);if(!e){e=(await this.apiClient.getAvatar(i.user.id,32)).avatar,this.avatars.set(i.user.id,e)}this.users.push({key:a,id:i.user.id,name:i.user.name,color:i.user.color,avatar:e,itsMe:i.user.id===t._id})}}const a=[];for(const t of this.users)e.has(t.key)&&a.push(t);this.users=a}async startCollaboration(e){try{if(!this.apiClient.isDevOrLocalhost())return!1;this.endCollaboration(),this.item=e;const t=this.apiClient.getCollabUrl(),a=`${this.item.type}.${this.item._id}`;let i=1e3;this.yWebsocketProvider=new yc(t,a,this.collabDocument,{connect:!1}),this.yWebsocketProvider.on("status",(e=>{console.log(`[Collab] ${e.status}`),"disconnected"===e.status&&this.yWebsocketProvider&&(this.yWebsocketProvider.disconnect(),setTimeout(r,i))})),this.yWebsocketProvider.on("sync",(e=>{console.log(`[Collab] synced: ${e}`)})),this.awareness=this.yWebsocketProvider.awareness,this.awareness.on("change",(async e=>{await this._updateUsersList(),y.$emit("collab:awareness:changed",{users:this.users,states:this.getAwarenessStates(),changes:e})}));const n=await this.apiClient.me(!0);this.awareness.setLocalStateField("user",{id:n._id,name:n.name,color:_.colorFromString(n.name)});const r=async()=>{if(!this.yWebsocketProvider)return void console.warn("[Collab] Cannot connect without websocket provider!");console.log("[Collab] reconnecting...");const e=await this.apiClient.getCollabToken();this.yWebsocketProvider.params.token=e,this.yWebsocketProvider.connect()};return await r(),y.$emit("collab:started"),!0}catch(e){return console.error("Error starting collaboration: ",e),!1}}endCollaboration(){this.yWebsocketProvider&&(console.log("Ending collaboration."),y.$emit("collab:ended"),this.yWebsocketProvider.destroy(),this.yWebsocketProvider=void 0,this.awareness=void 0),this.collabDocument=new gc,this.item=void 0}}class vc{apiClient;constructor(e){this.apiClient=e}async testCopyItems(e,t){const a=await this.apiClient.getItemsInFolderList(t,!0),i=await this.apiClient.getFoldersInFolderList(t),n=new Map;for(const e of i.children)n.set(e.name,null);for(const e of a)n.set(e.name,e._id);const r=this.apiClient.getItemRepo(),s=[];for(const t of e){let e,a,i=!1;t.isFolder?a=await this.apiClient.getFolder(t._id):(a=r.getLoadedItem(t._id),a||(a=await this.apiClient.getItem(t._id))),e=a?.name,i=n.has(e),s.push({_id:t._id,isFolder:t.isFolder,data:a,name:e,conflicted:i,conflictedItemId:n.get(e)})}return s}async copyItems(e,t,a=!1,i=!1){const n=e.filter((e=>!e.isFolder)).map((e=>e._id)),r=await this.apiClient.copyItems(n,t,a,i),s=this.apiClient.getItemRepo();for(let t of r){const a=e.filter((e=>e._id===t.original));a.length>0&&(t.replaced=a[0].conflictedItemId),await s.replaceLink(t.original,t.clone)}return await this.apiClient.eventBus.$emit("folder:changed",t),await this.apiClient.eventBus.$emit("items:copied",r),r}}class _c{apiClient;jobManager;constructor(e){this.apiClient=e,this.jobManager=e.getJobManager()}async executeExport(e,t,a,i){const n=await this.jobManager.execute("EXPORT:ExportGame",[{_id:e,isFolder:!1}],[{name:"Destination Folder",value:a},{name:"EngineVersion",value:i}],void 0,{os:t});if(await this.apiClient.eventBus.$emit("quota:update"),2===n.state)throw new V("Export failed: "+n.error);await this.apiClient.eventBus.$emit("folder:changed",[a])}}(c.default.default?c.default.default:c.default)(u.default,{retries:3,retryCondition:e=>e.message.includes("net::ERR_NETWORK_CHANGED")});const wc={Draft:0,Private:1,NotListed:2,Public:3},Ac=[{id:"prod",name:"Production",ssl:!0,apiHost:"api.lumino.cloud",viewerHost:"viewer.lumino.cloud",collabHost:"collab.lumino.cloud"},{id:"dev",name:"Development",ssl:!0,apiHost:"api-dev.lumino.cloud",viewerHost:"viewer-dev.lumino.cloud",collabHost:"collab-dev.lumino.cloud"},{id:"local",name:"Local",ssl:!1,apiHost:"localhost:8081",viewerHost:"localhost:8090",collabHost:"localhost:8200"}];exports.AccessDeniedException=F,exports.AggregatedItem=D,exports.ApiClient=class extends m{accessToken;apiToken;options;forcePublicApi;usePublicApi;usePersistentStorage;storageSizeMib;requestClientId;apiUrl;wsUrl;viewerUrl;collabUrl;itemRepo;itemCache;folderCache;thumbCache;userCache;groupCache;attachmentCache;jobManager;serializer;collab;itemCopier;executableExporter;eventBus;env;api;ws=null;cachedMe;profiler;wsLastPing=null;last2faCode="";constructor(e={}){super(),e=e||{},this.options=Object.assign({environment:"auto",wsAutoReconnect:!0,wsAutoConnect:!1,forcePublicApi:!1,debug:!1,accessToken:null,apiToken:null,usePersistentStorage:!0,storageSizeMib:10240,requestClientId:null},e),this.accessToken=this.options.accessToken,this.apiToken=this.options.apiToken,this.forcePublicApi=this.options.forcePublicApi,this.usePublicApi=!this.accessToken&&!this.apiToken,this.usePersistentStorage=this.options.usePersistentStorage,this.storageSizeMib=this.options.storageSizeMib,this.requestClientId=this.options.requestClientId,this.cachedMe=null,this.itemRepo=new Ki(this.usePublicApi,this),this.itemCache=new zn(this.usePublicApi,this.usePersistentStorage,this,this.storageSizeMib),this.folderCache=new Wn(this),this.thumbCache=new Yn(this),this.userCache=new Hn(this),this.groupCache=new Gn(this),this.attachmentCache=new qn(this),this.jobManager=new Kn(this),this.serializer=new ir(this),this.collab=new bc(this),this.itemCopier=new vc(this),this.executableExporter=new _c(this),this.eventBus=y,this.profiler=null,this.switchEnvironment(this.options.environment),this.setDebugMode(this.options.debug)}detectEnvironment(){const e=this.isOnLocalhost(),t=this.isDevPlatform();return e?this.getEnvironmentById("local"):t?this.getEnvironmentById("dev"):this.getEnvironmentById("prod")}getEnvironmentById(e){return"auto"===e?this.detectEnvironment():Ac.find((t=>t.id===e))}getEnvironments(){return Ac}switchEnvironment(e){let t=this.getEnvironmentById(e);if(!t)throw new Error(`Unknown environment: ${e}`);console.log(`ApiClient switched to env: ${t.name}`);const a=t.ssl?"https":"http",i=t.ssl?"wss":"ws";this.apiUrl=`${a}://${t.apiHost}`,this.wsUrl=`${i}://${t.apiHost}/api/ws`,this.viewerUrl=`${a}://${t.viewerHost}`,this.collabUrl=`${a}://${t.collabHost}`,this.api=u.default.create({baseURL:this.apiUrl}),this.ws=null,this.wsLastPing=null}async initCaches(){return Promise.all([this.itemCache.init(),this.folderCache.init(),this.thumbCache.init()])}clearCaches(){this.itemCache.clear(),this.folderCache.clear(),this.thumbCache.clear()}isDevPlatform(){return"object"==typeof window&&"location"in window&&(window.location.href.includes("dev.lumino.cloud")||window.location.href.includes("taste.lemonate.io"))}isOnLocalhost(){return"object"==typeof window&&"location"in window&&window.location.href.includes("localhost")}isDevOrLocalhost(){return this.isOnLocalhost()||this.isDevPlatform()}async clearIndexedDb(e){return new Promise(((t,a)=>{const i=indexedDB.deleteDatabase(e);i.onsuccess=()=>{t()},i.onerror=e=>{a("An error occured while deleting a IndexedDB database.")},i.onblocked=()=>{a(`Database deletion is blocked. Please close all connections to "${e}".`)}}))}async logout(){return this.clearCaches(),this.clearIndexedDb("lumino")}setDebugMode(e){this.options.debug=!!e,this.eventBus.setDebugMode(this.options.debug)}websocketConnect(e){const t=this;if(this.ws){if(!e)return void console.warn("Websocket is already connected!");this.websocketDisconnect()}this.ws=new d.default(this.wsUrl),this.ws.onerror=function(e){console.error("Websocket error",e),t.$emit("client:websocketError",e)},this.ws.onopen=function(){t.$emit("client:websocketOpen"),t.accessToken&&t.websocketSend(JSON.stringify({type:"auth",subscriptions:["item","folder","job","user","notification"],token:t.accessToken}))},this.ws.onclose=function(){t.$emit("client:websocketClosed"),t.options.wsAutoReconnect&&t.websocketConnect(!0)},this.ws.onmessage=function(e){try{const a=JSON.parse(e.data);switch(a.type){case"ping":t.wsLastPing=new Date,t.ws&&t.ws.send(JSON.stringify({type:"ping"}));break;case"authenticated":t.$emit("client:websocketAuthenticated");break;case"Item":case"Folder":case"Notification":case"Job":case"User":y.$emit("client:elementUpdate",a);break;default:console.warn("Unknown websocket message: ",a)}}catch(e){console.error("Websocket error:",e)}}}websocketDisconnect(){this.ws&&(this.ws.close(),this.ws=null)}websocketSend(e){this.ws?1===this.ws.readyState?this.ws.send(e):console.error("Websocket is not in READY state. Currently in state "+this.ws.readyState):console.error("Websocket is not created")}getItemCopier(){return this.itemCopier}getExecutableExporter(){return this.executableExporter}getCollab(){return this.collab}getCollabUrl(){return this.collabUrl}getPublisher(){return new Zn(this)}getAssetCreator(){return new ar(this)}getJobManager(){return this.jobManager}getThumbCache(){return this.thumbCache}getItemCache(){return this.itemCache}getItemRepo(){return this.itemRepo}getRootVisibility(){return this.itemRepo.activeItem?this.itemRepo.activeItem.visibility:wc.Private}getEventBus(){return this.eventBus}getSerializer(){return this.serializer}setForcePublicApi(e){this.forcePublicApi=e,this._updateUsePublicApi()}_updateUsePublicApi(){this.usePublicApi=this.forcePublicApi||!this.apiToken&&!this.accessToken,this.itemRepo.usePublicApi=this.usePublicApi,this.itemCache.usePublicApi=this.usePublicApi}setApiToken(e){this.apiToken=e,this._updateUsePublicApi()}setAccessToken(e){this.accessToken=e,this._updateUsePublicApi(),this.accessToken&&this.options.wsAutoConnect&&this.websocketConnect()}getApiToken(){return this.apiToken}getAccessToken(){return this.accessToken}setApiBaseUrl(e){this.apiUrl=e,this.api=u.default.create({baseURL:this.apiUrl})}setWsBaseUrl(e){this.wsUrl=e,this.accessToken&&this.options.wsAutoConnect&&(this.websocketDisconnect(),this.websocketConnect())}setRequestClientId(e){this.requestClientId=e}getApiBaseUrl(){return this.apiUrl}getWsBaseUrl(){return this.wsUrl}getViewerBaseUrl(){return this.viewerUrl}setProfiler(e){if(!e||"function"!=typeof e.start)throw new Error("Profiler needs to be an object providing a start function.");this.profiler=e}async login2FA(e,t,a){return console.log("Running Login..."),this.execute("post","/api/auth/login2fa",{account:e,password:t,client:a}).then((e=>{this.last2faCode=e,this.eventBus.$emit("login.2facode",e)}))}async confirm2FA(e,t){return this.execute("post","/api/auth/confirm2fa",{account:e,code:t})}isAuthenticated(){return!!this.accessToken||!!this.apiToken}isFeatureEnabled(e){return!!this.cachedMe&&this.cachedMe.features.includes(e)}async resolveUserOrGroupInfoForItem(e){return e.quotaUser?this.userCache.resolve(e.quotaUser):e.quotaGroup?this.groupCache.resolve(e.quotaGroup):e.createdBy?this.userCache.resolve(e.createdBy):{name:"?",initials:"?",avatar:null}}_startOp(e){const t=this,a={id:_.createGUID(),name:e,startTimeMs:performance.now(),runningMs:0,percent:0,reportProgress:function(e){a.percent=e},interval:null,finish:function(){if(a.interval&&clearInterval(a.interval),a.runningMs>1e3)try{t.$emit("client:longRunningOpFinished",a.id)}catch(e){console.error(e)}}};return a.interval=setInterval((function(){if(a.runningMs=performance.now()-a.startTimeMs,a.runningMs>1e3)try{t.$emit("client:longRunningOp",a.id,a.name,a.percent)}catch(e){console.error(e)}}),100),a}_createOpName(e,t){try{const a=t.split("/");switch(e.toLowerCase()){case"get":e="Fetching";break;case"post":e="Creating";break;case"put":e="Updating";break;case"delete":e="Deleting"}a.shift(),a.shift();const i=a.shift();let n=a.join("/");return n.length&&(n=` [${n}]`),`${e} ${i} data ${n}`}catch{return`${e} ${t}`}}addAuthenticationHeaders(e){this.accessToken&&(e["x-access-token"]=this.accessToken),this.apiToken&&(e["x-api-token"]=this.apiToken),this.requestClientId&&(e["x-request-client"]=this.requestClientId)}async execute(e,t,a,i){let n=this,r={};(i=i||{}).headers?r=i.headers:a&&"object"==typeof a&&"getHeaders"in a&&"function"==typeof a.getHeaders&&(r=a.getHeaders()),this.addAuthenticationHeaders(r);const s=this.profiler?this.profiler.start("ApiClient",`${e} ${t}`):null,o=this._startOp(i.opName||n._createOpName(e,t));return this.api({method:e,url:t,data:a,responseType:i.responseType,headers:r,signal:i.controller?i.controller.signal:void 0,onUploadProgress:function(e){if(e.total){const t=Math.min(100,Math.round(100*e.loaded/e.total));o.reportProgress(t),n.$emit("client:progress",{type:"upload",percent:t}),"function"==typeof i.progressCallback&&i.progressCallback(t,e.loaded,e.total)}},onDownloadProgress:function(e){if(e.total){const t=Math.min(100,Math.round(100*e.loaded/e.total));o.reportProgress(t),n.$emit("client:progress",{type:"download",percent:t}),"function"==typeof i.progressCallback&&i.progressCallback(t,e.loaded,e.total)}}}).then((e=>{if(s&&s.done(),o.finish(),n.$emit("client:progress",{type:"done"}),e.headers["content-type"].startsWith("application/json")){if("success"===e.data.result){let t;return t=i.withNext?{data:e.data.data,next:e.data.next}:e.data.data,i.emitOnSuccess&&this.eventBus.$emit(i.emitOnSuccess,t),t}throw e.data.redirect&&this.$emit("client:redirect",e.data.redirect),e.data.error?e.data.error:"API response seems to be json but does not contain result type!"}return i.emitOnSuccess&&this.eventBus.$emit(i.emitOnSuccess),{blob:new Blob([e.data],{type:e.headers["content-type"]}),hash:e.headers["sha256-hash"],itemName:e.headers["lumino-itemname"],itemType:e.headers["lumino-itemtype"],mimeType:e.headers["content-type"]}})).catch((e=>{if(s&&s.done(),o.finish(),n.$emit("client:progress",{type:"done"}),e.response){if(401===e.response.status)throw this.$emit("client:unauthorized"),new F("Access denied. Please login again.");if(413===e.response.status)throw new I;if(e.response.data&&e.response.data.error)throw new Error(e.response.data.error)}throw e}))}_createFormData(e,t){let a=new p.default;if("function"==typeof File&&e instanceof Blob)a.append("file",e,t);else{const i=new Blob([e]);try{a.append("file",i,t)}catch{a=new p.default,a.append("file",e,t)}}return a}async me(e){return e&&this.cachedMe||(this.cachedMe=await this.execute("get","/api/auth/me")),this.cachedMe}async getHomeFolder(){return this.execute("get","/api/auth/homefolder")}async myClients(){return this.execute("get","/api/auth/myclients")}async getCollabToken(){return this.execute("get","/api/auth/collabtoken")}async checkCollabToken(e){return this.execute("post","/api/auth/collabtoken",{token:e})}async register(e){return this.execute("post","/api/auth/register",e)}async deleteMyAccount(e){return this.execute("post","/api/auth/deletemyaccount",{password:e})}async confirmEmail(e){return this.execute("get","/api/auth/confirmemail/"+e)}async confirmEmailChange(e){return this.execute("get","/api/auth/confirmchangedemail/"+e)}async forgotPassword(e,t){return this.execute("post","/api/auth/forgotpassword",{account:e,client:t})}async setNewPassword(e,t){return this.execute("post","/api/auth/setnewpassword",{token:e,password:t})}async accountExists(e){return this.execute("post","/api/auth/accountExists",e)}async getItemsInFolderList(e,t=!1){if(e&&!t){const t=await this.folderCache.getItemListing(e);if(t)return t}const a=await this.execute("get","/api/item/infolder/"+(e||"0"));return await this.folderCache.addItemListing(e,a),a}async getItem(e,t){const a=[];t&&(t.returnClonedFrom&&a.push("returnClonedFrom=true"),t.withThumbnails&&a.push("withThumbnails=true"));let i="";return a.length&&(i=`?${a.join("&")}`),this.execute("get",`/api/item/${e}${i}`)}getItemAggregatedPOP(e,t){return this.usePublicApi?this.getItemPublicAggregated(e,t):this.getItemAggregated(e,t)}async getItemPublicAggregated(e,t){const a=ji(e);if(a)return a;const i=[];t&&(t.withFieldInstances&&i.push("withFieldInstances"),t.withAttachmentInfo&&i.push("withAttachmentInfo"),t.noAttributes&&i.push("noAttributes"),t.noUserAttributes&&i.push("noUserAttributes"),t.noFields&&i.push("noFields"),t.noThumbnails&&i.push("noThumbnails"),t.noLinks&&i.push("noLinks"));let n="";return i.length&&(n=`?${i.join("&")}`),ji(e)?ji(e):this.execute("get","/api/item/publicaggregate/"+e+n)}async getItemAggregated(e,t){const a=ji(e);if(a)return a;const i=[];t&&(t.withFieldInstances&&i.push("withFieldInstances"),t.withAttachmentInfo&&i.push("withAttachmentInfo"),t.noAttributes&&i.push("noAttributes"),t.noUserAttributes&&i.push("noUserAttributes"),t.noFields&&i.push("noFields"),t.noThumbnails&&i.push("noThumbnails"),t.noLinks&&i.push("noLinks"));let n="";return i.length&&(n=`?${i.join("&")}`),ji(e)?ji(e):this.execute("get",`/api/item/aggregate/${e}${n}`)}async getItemAggregatedRecursive(e,t){const a=[];t&&(t.withFieldInstances&&a.push("withFieldInstances"),t.withAttachmentInfo&&a.push("withAttachmentInfo"),t.noAttributes&&a.push("noAttributes"),t.noUserAttributes&&a.push("noUserAttributes"),t.noFields&&a.push("noFields"),t.noThumbnails&&a.push("noThumbnails"));let i="";return a.length&&(i=`?${a.join("&")}`),this.execute("get",`/api/item/aggregaterecursive/${e}${i}`)}async getItemPublicRecursive(e,t){return this.execute("get","/api/item/publicrecursive/"+e+(t?"?withFeatures":""))}async getItemPublic(e,t){return this.execute("get","/api/item/public/"+e+(t?"?returnClonedFrom=true":""))}async getItemHistory(e){return this.execute("get","/api/item/history/"+e)}async copyItems(e,t,a,i){return this.execute("post","/api/item/copy",{sourceItemIds:e,destFolderId:t,deepCopy:a,overwrite:i})}async createItem(e){return this.execute("post","/api/item",e)}async updateItem(e){return this.execute("put","/api/item",e)}async deleteItem(e){return this.execute("delete","/api/item",{id:e})}async renameItem(e,t){return this.updateItem({_id:e,name:t})}async queryPublicItemsList(e){return this.execute("post","/api/item/publicquery",e)}async queryItemsListPOP(e){return this.usePublicApi?this.queryPublicItemsList(e):this.queryItemsList(e)}async queryItemsList(e){return this.execute("post","/api/item/query",e)}async queryItemsListAsExcel(e){e.exportAsExcel=!0;const t=await this.execute("post","/api/item/query",e,{responseType:"arraybuffer"}),a=window.URL.createObjectURL(t.blob),i=document.createElement("a");i.href=a,i.setAttribute("download","export.xlsx"),i.click()}async moveItems(e){return this.execute("post","/api/item/move",e)}async downloadItem(e,t){const a=Li(e);return a||this.execute("get",`/api/item/download/${e}`,null,{responseType:"arraybuffer",progressCallback:t,opName:`Downloading item ${e}`})}async publicDownloadItem(e,t){const a=Li(e);return a||this.execute("get",`/api/item/publicdownload/${e}`,null,{responseType:"arraybuffer",progressCallback:t})}async getItemHash(e){const t=ji(e);return t?t.hash:this.execute("get",`/api/item/hash/${e}`)}async requestSecureDownload(e){return this.execute("get","/api/item/requestsecuredownload/"+e)}async getThumbnail(e,t){return this.execute("get",`/api/item/thumbnail/${e}/${t}`)}async uploadThumbnail(e,t,a,i,n,r){const s=this._createFormData(a,i);return this.execute("post",`/api/item/thumbnail/${t}/${e}`,s,{progressCallback:n,controller:r})}async getPublicThumbnail(e,t){return this.execute("get",`/api/item/publicthumbnail/${e}/${t}`)}async makeItemPublic(e,t,a){return this.execute("put","/api/item/makepublic",{id:e,recursive:t,inSubfolders:a})}async setVisibility(e,t,a,i){return this.execute("put","/api/item/setvisibility",{id:e,visibility:t,recursive:a,inSubfolders:i})}async makeItemPrivate(e,t,a){return this.execute("put","/api/item/makeprivate",{id:e,recursive:t,inSubfolders:a})}async setOmitLodGeneration(e,t){return this.execute("get",`/api/item/setOmitLodGeneration/${e}/${t}`)}async setOmitThumbnailGeneration(e,t){return this.execute("get",`/api/item/setOmitThumbnailGeneration/${e}/${t}`)}async setOmitPreviewGeneration(e,t){return this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/${t}`)}async uploadAndCreate(e,t,a,i,n,r){const s=this._createFormData(t,a);let o=`/api/item/uploadAndCreate/${e}`,l={};return i&&("object"==typeof i?(i.autoDestructIn&&(o+="?autoDestructIn="+i.autoDestructIn),i.visibility&&(o+="?visibility="+i.visibility),i.flags&&(o+="?flags="+i.flags),i.overwrite&&(o+="?overwrite="+(i.overwrite?"true":"false")),i.nameOverride&&(l["x-override-name"]=i.nameOverride)):o+="?autoDestructIn="+i),this.execute("post",o,s,{progressCallback:n,controller:r,headers:l})}async upload(e,t,a,i,n,r){const s=[];r&&(r.omitHandleDependencyChange&&s.push("omitHandleDependencyChange=true"),r.keepThumbnails&&s.push("keepThumbnails=true"));let o="";s.length&&(o=`?${s.join("&")}`);const l=this._createFormData(t,a);return this.execute("post",`/api/item/upload/${e}${o}`,l,{progressCallback:i,controller:n})}resetPreview(e){const t=this.execute("delete",`/api/item/attachment/${e}/preview`),a=this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/false`);return Promise.all([t,a])}clearPreview(e){const t=this.execute("delete",`/api/item/attachment/${e}/preview`),a=this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/true`);return Promise.all([t,a])}async clearThumbnail(e){return this.execute("get",`/api/item/clearThumbnail/${e}`)}async resetThumbnail(e){return this.execute("get",`/api/item/resetThumbnail/${e}`)}async downloadAttachmentPOP(e,t,a,i,n){return this.usePublicApi?this.downloadPublicAttachment(e,t,a,i,n):this.downloadAttachment(e,t,a,i,n)}_getAttachmentUrlPath(e,t,a,i,n){return`/api/item/${n?"public":""}attachment/${e}/${t}${null!=a?`/${a}`:"/undefined"}${null!=i?`/${i}`:""}`}async downloadAttachment(e,t,a,i=0,n){const r=Hi(e,t,a,i);return r||this.execute("get",this._getAttachmentUrlPath(e,t,a,i),null,{responseType:"arraybuffer",progressCallback:n})}async downloadPublicAttachment(e,t,a,i,n){const r=Hi(e,t,a,i);return r||this.execute("get",this._getAttachmentUrlPath(e,t,a,i,!0),null,{responseType:"arraybuffer",progressCallback:n})}async uploadAttachment(e,t,a,i,n,r,s,o){const l=this._createFormData(n,r);return this.execute("post",this._getAttachmentUrlPath(e,t,a,i),l,{progressCallback:s,controller:o})}async deleteAttachment(e,t,a,i){return this.attachmentCache.invalidateAttachment(e,t,a,i),this.execute("delete",this._getAttachmentUrlPath(e,t,a,i))}setPerceptiveHashOnAttachment(e,t,a){return this.execute("get",`/api/item/setPerceptiveHashAttachment/${e}/${t}/${a}`)}setPerceptiveHash(e,t){return this.execute("get",`/api/item/setPerceptiveHash/${e}/${t}`)}async getItemClient(e){return this.execute("get",`/api/item/getClient/${e}`)}async getItemAcl(e){return this.execute("get",`/api/item/acl/${e}`)}async getItemsLinking(e){return this.execute("get",`/api/item/linking/${e}`)}async setAttributes(e,t){return this.execute("put","/api/item/setAttributes",{id:e,attributes:t})}async getItemSyncList(e){const t=W(e).format("YYYYMMDDHHmmss");return this.execute("get",`/api/item/synclist/${t}`)}async increaseViews(e){return this.execute("get",`/api/item/increaseViews/${e}`)}async getViews(e){return this.execute("get",`/api/item/views/${e}`)}async getPublicItemCounts(e){return this.execute("get",`/api/item/publiccounts/${e}`)}async getItemCounts(e){return this.execute("get",`/api/item/counts/${e}`)}async likeItem(e){return this.execute("get",`/api/item/like/${e}`)}async unlikeItem(e){return this.execute("get",`/api/item/unlike/${e}`)}async doILike(e){return this.execute("get",`/api/item/doILike/${e}`)}async setItemAutoDestruct(e,t){const a=W(t).format("YYYYMMDDHHmmss");return this.execute("get",`/api/item/setAutoDestruct/${e}/${a}`)}async clearItemAutoDestruct(e){return this.execute("get",`/api/item/clearAutoDestruct/${e}`)}async resolveRelativeItem(e,t){const a=ji(e);if(!a)return this.execute("post","/api/item/resolve/"+e,{path:t});t.startsWith("/")&&(t=t.substring(1));const i=t.split("/"),n=i.pop();let r=a.folder._id;for(const e of i){let t=!1;for(const[a,i]of Object.entries(Ri()))if(i.parent===r&&i.name===e){r=a,t=!0;break}if(!t)break}for(const e of Object.values($i()))if(e.folder._id===r&&e.name===n)return e._id;return console.error(`Could not resolve path ${t} for item ${e}`),null}async publicResolveRelativeItem(e,t){const a=ji(e);if(!a)return this.execute("post","/api/item/publicResolve/"+e,{path:t});t.startsWith("/")&&(t=t.substring(1));const i=t.split("/"),n=i.pop();let r=Pi(a.folder._id);for(const e of i)if(".."===e)r=Pi(r.parent);else{const t=Oi(e,r._id);if(!t)throw new Error("Can't find folder while loading folder from package");r=t}const s=Bi(n,r._id);if(s)return s._id;throw new Error("Can't load item from package.")}async rewireItems(e){return this.execute("post","/api/item/rewire",{items:e})}async getFolder(e){return this.execute("get","/api/folder/"+e)}async getFullFolderTree(e){return this.execute("get",`/api/folder/fulltree/${e||"0"}`)}async getFoldersInFolderList(e,t){e=e||"0";const a=[];let i="";if(t){if(t.resolveNames&&!t.folderAsItemType&&"0"!==e){if(i=await this.folderCache.getFolderListing(e),i&&Date.now()-new Date(i.cachedAt).getTime()<1e4)return i;i&&i.parent&&a.push(`lastUpdatedAt=${i.parent.updatedAt}`)}t.resolveNames&&a.push("resolve"),t.folderAsItemType&&a.push(`folderAsItemType=${t.folderAsItemType}`),t.folderAsItemName&&a.push(`folderAsItemName=${t.folderAsItemName}`),t.folderAsItemFlag&&a.push(`folderAsItemFlag=${t.folderAsItemFlag}`),t.withStats&&a.push("withStats=true"),t.returnLatestPackage&&a.push("returnLatestPackage=true")}let n="";a.length&&(n="?"+a.join("&"));const r=await this.execute("get",`/api/folder/infolder/${e}${n}`);if(!0===r.notModified)return i;if(!t||t.resolveNames&&!t.folderAsItemType){const t=await this.getFolderAclList([e,...r.children.map((e=>e._id))]);for(const e of t)await this.folderCache.addACL(e.id,e.acl);return await this.folderCache.addFolderListing(e,r),r}return r}async updateFolderCache(e){const t=[];for(const a of e){if(!a)continue;const e=await this.folderCache.getFolderListing(a);e&&e.parent?t.push({id:a,lastUpdatedAt:e.parent.updatedAt}):t.push({id:a})}const a=await this.execute("post","/api/folder/infolderquery",{folders:t});for(const e of a)!0===e.data.notModified?await this.folderCache.refreshCacheForFolder(e.id):await this.folderCache.addFolderListing(e.id,e.data)}async createFolder(e){return this.execute("post","/api/folder",e)}async updateFolder(e){return this.execute("put","/api/folder",e)}async deleteFolder(e){return this.execute("delete","/api/folder",{id:e})}async renameFolder(e,t){return this.updateFolder({_id:e,name:t})}async moveFolders(e){return this.execute("post","/api/folder/move",e)}async getFolderPath(e){return e?("object"==typeof e&&(e=e._id),this.execute("get","/api/folder/path/"+e)):{path:"/",elements:[]}}async resolveFolderPath(e){return"/"===(e=e.trim())?null:this.execute("post","/api/folder/resolve",{path:e})}async getFolderClient(e){return this.execute("get",`/api/folder/getClient/${e}`)}async getFolderAcl(e){const t=await this.folderCache.getFolderACLs(e||"0",1e4);if(t&&e)return t;{const t=await this.execute("get",`/api/folder/acl/${e||"0"}`);return await this.folderCache.addACL(e||"0",t),t}}async getFolderAclList(e){return this.execute("post","/api/folder/aclquery",{ids:e})}async getUser(e){return this.execute("get","/api/user/"+e)}async getUsersList(){return this.execute("get","/api/user")}async createUser(e){return this.execute("post","/api/user",e)}async queryUser(e,t,a){return this.execute("post","/api/user/query",{searchQuery:e,groupID:t,cursor:a},{withNext:!0})}async updateUser(e){return this.execute("put","/api/user",e)}async deleteUser(e){return this.execute("delete","/api/user",{id:e})}async updateMyProfile(e){return this.execute("put","/api/user/myprofile",e)}async switchClient(e){return this.execute("get",`/api/user/switchclient/${e}`)}async activateUser(e,t){return this.execute("post","/api/user/activate",{token:t,password:e})}async getUsersToApprove(){return this.execute("get","/api/user/approvals")}async approveUserRegistration(e){return this.execute("get",`/api/user/approveuserregistration/${e}`)}async rejectUserRegistration(e){return this.execute("get",`/api/user/rejectuserregistration/${e}`)}async uploadAvatar(e){const t=new p.default;if(e instanceof Blob)t.append("file",e);else{const a=new Blob([new Uint8Array(e)]);t.append("file",a,"avatar.jpg")}return this.execute("post","/api/user/uploadAvatar",t)}async clearAvatar(){return this.execute("get","/api/user/clearAvatar")}async getAvatar(e,t){return this.execute("get",`/api/user/avatar/${t}/${e}`)}async getUserPublicInfo(e,t,a){return this.execute("get",`/api/user/publicinfo/${e}/${t}/${a}`)}async getUserAttribute(e){return this.execute("get",`/api/user/attribute/${e}`)}async clearUserAttribute(e){return this.execute("delete",`/api/user/attribute/${e}`)}async setUserAttribute(e,t){return this.execute("post",`/api/user/attribute/${e}`,t)}async getGroup(e){return this.execute("get","/api/group/"+e)}async getGroupFolder(e){return this.execute("get","/api/group/folder/"+e)}async getGroupsList(){return this.execute("get","/api/group")}async createGroup(e){return this.execute("post","/api/group",e)}async queryGroup(e,t){return this.execute("post","/api/group/query",{searchQuery:e,cursor:t},{withNext:!0})}async updateGroup(e){return this.execute("put","/api/group",e)}async deleteGroup(e){return this.execute("delete","/api/group",{id:e})}async getGroupQuotaInfo(e){return this.execute("get","/api/group/quota/"+e)}async getGroupPublicInfo(e,t,a){return this.execute("get",`/api/group/publicinfo/${e}/${t}/${a}`)}async getGroupUsers(e){return this.execute("get","/api/group/users/"+e)}async uploadGroupAvatar(e,t){const a=new p.default;if(t instanceof Blob)a.append("file",t);else{const e=new Blob([new Uint8Array(t)]);a.append("file",e,"avatar.jpg")}return this.execute("post","/api/group/"+e+"/uploadAvatar",a)}async getClientsList(){return this.execute("get","/api/client")}async getClient(e){return this.execute("get",`/api/client/${e}`)}async createClient(e){return this.execute("post","/api/client",e)}async queryClient(e,t){return this.execute("post","/api/client/query",{searchQuery:e,cursor:t},{withNext:!0})}async updateClient(e){return this.execute("put","/api/client",e)}async deleteClient(e){return this.execute("delete","/api/client",{id:e})}async getClientMetrics(e,t,a){return this.execute("get",`/api/client/metrics/${t}/${a}/${e}`)}async joinClient(e){return this.execute("get",`/api/client/join/${e}`)}async leaveClient(e){return this.execute("get",`/api/client/leave/${e}`)}async myClient(){return this.execute("get","/api/client/my")}async saveMyClient(e){return this.execute("put","/api/client/my",e)}async getPublicCategories(e){return this.execute("get",`/api/client/publiccategories/${e}`)}async getCategories(){return this.execute("get","/api/client/categories")}async getCategoriesInClient(e){return this.execute("get",`/api/client/categories/${e}`)}async updateCategoriesInClient(e,t){return this.execute("post",`/api/client/categories/${e}`,t)}async getLicenses(){return this.execute("get","/api/license")}async getLicensesInClient(e){return this.execute("get",`/api/license/inclient/${e}`)}async getLicense(e){return this.execute("get",`/api/license/${e}`)}async createLicense(e){return this.execute("post","/api/license",e)}async updateLicense(e){return this.execute("put","/api/license",e)}async deleteLicense(e,t){return this.execute("delete","/api/license",{_id:e,client:t})}async getPublicLicenses(e){return this.execute("get",`/api/license/publiclist/${e}`)}async getPublicLicense(e){return this.execute("get",`/api/license/public/${e}`)}async getDatatypesList(){return this.execute("get","/api/datatype")}async getPublicDatatypesList(e){return this.execute("get",`/api/datatype/public/${e}`)}async getDatatypesListOnClient(){return this.execute("get","/api/datatype/onclient")}async getDatatypesListOnClientForAll(){return this.execute("get","/api/datatype/onclientforall")}async getAllDatatypesList(){return this.execute("get","/api/datatype/all")}async getDatatype(e){return this.execute("get",`/api/datatype/${e}`)}async createDatatype(e){return this.execute("post","/api/datatype",e)}async updateDatatype(e){return this.execute("put","/api/datatype",e)}async deleteDatatype(e){return this.execute("delete","/api/datatype",{id:e})}async getMyNotifications(e){return this.execute("get","/api/notification"+(e?`?maxCount=${e}`:""))}async markNotificationAsRead(e){return this.execute("get",`/api/notification/markasread/${e}`)}async markAllNotificationsAsRead(){return this.execute("get","/api/notification/markallasread")}async createJob(e){return this.execute("post","/api/job",e,{emitOnSuccess:"job:created"})}async getManualJobTypes(){return this.execute("get","/api/job/manualtypes")}async getManualJobTypesOnClient(){return this.execute("get","/api/job/manualtypes/onclient")}async getManualJobTypesOnClientForAll(){return this.execute("get","/api/job/manualtypes/onclientforall")}async getAllManualJobTypes(){return this.execute("get","/api/job/manualtypes/all")}async getAllManualJobTypesForClient(e){return this.execute("get",`/api/job/manualtypes/all/${e}`)}async getClientJobTypes(){return this.execute("get","/api/job/clientTypes")}async getMyJobs(){return this.execute("get","/api/job/mine")}async getJobs(){return this.execute("get","/api/job")}async getJobsAggregated(){return this.execute("get","/api/job/aggregated")}async getJobsTimeframe(e,t){return this.execute("get",`/api/job/all/${e}/${t}`)}async getJob(e){return this.execute("get",`/api/job/${e}`)}async getJobState(e){return this.execute("get",`/api/job/state/${e}`)}async getAgents(){return this.execute("get","/api/jobagent")}async getAgentsAggregated(){return this.execute("get","/api/jobagent/aggregated")}async enableJobAgent(e){return this.execute("get",`/api/jobagent/enable/${e}`)}async disableJobAgent(e){return this.execute("get",`/api/jobagent/disable/${e}`)}async restartJobAgent(e){return this.execute("get",`/api/jobagent/restart/${e}`)}async getPermissionsList(){return this.execute("get","/api/permission")}async getPlugins(){return this.execute("get","/api/plugin")}async getPlans(){return this.execute("get","/api/plan")}async getPlan(e){return this.execute("get",`/api/plan/${e}`)}async createPlan(e){return this.execute("post","/api/plan",e)}async updatePlan(e){return this.execute("put","/api/plan",e)}async deletePlan(e){return this.execute("delete","/api/plan",{id:e})}async getWorkflows(){return this.execute("get","/api/workflow")}async getWorkflow(e){return this.execute("get",`/api/workflow/${e}`)}async createWorkflow(e){return this.execute("post","/api/workflow",e)}async updateWorkflow(e){return this.execute("put","/api/workflow",e)}async deleteWorkflow(e){return this.execute("delete","/api/workflow",{id:e})}async startWorkflow(e){return this.execute("post","/api/workflow/start",e)}async getAccessTokens(){return this.execute("get","/api/accesstoken")}async getClientAccessTokens(){return this.execute("get","/api/accesstoken/client")}async createAccessToken(e){return this.execute("post","/api/accesstoken",e)}async createClientAccessToken(e){return this.execute("post","/api/accesstoken/client",e)}async deleteAccessToken(e){return this.execute("delete","/api/accesstoken",{id:e})}async deleteClientAccessToken(e){return this.execute("delete","/api/accesstoken/client",{id:e})}async enableAccessToken(e){return this.execute("get",`/api/accesstoken/enable/${e}`)}async disableAccessToken(e){return this.execute("get",`/api/accesstoken/disable/${e}`)}async getApiTokens(){return this.execute("get","/api/apitoken")}async createApiToken(e){return this.execute("post","/api/apitoken",e)}async deleteApiToken(e){return this.execute("delete","/api/apitoken",{id:e})}async getMyClientInvoices(){return this.execute("get","/api/invoice")}async getMyUserInvoices(){return this.execute("get","/api/invoice/my")}async getClientInvoices(e){return this.execute("get",`/api/invoice/client/${e}`)}async downloadInvoice(e,t){const a=await this.execute("get",`/api/invoice/download/${e}`,null,{responseType:"arraybuffer"}),i=window.URL.createObjectURL(a.blob),n=document.createElement("a");n.href=i,n.setAttribute("download",t||"invoice.pdf"),document.body.appendChild(n),n.click()}async regenerateInvoice(e){return this.execute("get",`/api/invoice/regenerate/${e}`)}async getInvoicesForMonth(e,t){return this.execute("get",`/api/invoice/month/${t}/${e}`)}async refundInvoice(e,t,a){return this.execute("post","/api/invoice/refund",{invoice:e,amount:t,reason:a})}async paymentStartCheckout(e,t){return this.execute("post","/api/payment/checkout",{successUrl:e,cancelUrl:t})}async paymentStartUserCheckout(e,t){return this.execute("post","/api/payment/usercheckout",{successUrl:e,cancelUrl:t})}async getSupportedCurrencies(){return this.execute("get","/api/payment/supportedCurrencies")}async getPurchasables(){return this.execute("get","/api/purchasable")}async getPurchasable(e){return this.execute("get",`/api/purchasable/${e}`)}async createPurchasable(e){return this.execute("post","/api/purchasable",e)}async updatePurchasable(e){return this.execute("put","/api/purchasable",e)}async deletePurchasable(e){return this.execute("delete","/api/purchasable",{id:e})}async getPublicPurchasables(e){return this.execute("get",`/api/purchasable/public/${e}`)}async getPurchases(){return this.execute("get","/api/purchase")}async getMyActivePurchases(){return this.execute("get","/api/purchase/active")}async purchase(e){return this.execute("post","/api/purchase",e)}async changePurchaseProduct(e,t,a){return this.execute("post","/api/purchase/change",{purchaseID:e,purchasableID:t,optionID:a})}async cancelPurchase(e){return this.execute("delete","/api/purchase",{id:e})}async uncancelPurchase(e){return this.execute("post","/api/purchase/uncancel",{id:e})}async getSecureSessionPayload(e,t){return this.execute("get","/api/payment/secureSessionPayload?purchasableID="+e+"&optionID="+t)}async queryPurchases(e,t,a,i,n,r){return this.execute("post","/api/purchase/query",{startDate:e,endDate:t,email:a,invoice:i,cursor:n,limit:r})}async getAttributeTemplates(){return this.execute("get","/api/attributetemplate")}async getAttributeTemplate(e){return this.execute("get",`/api/attributetemplate/${e}`)}async createAttributeTemplate(e){return this.execute("post","/api/attributetemplate",e)}async updateAttributeTemplate(e){return this.execute("put","/api/attributetemplate",e)}async deleteAttributeTemplate(e){return this.execute("delete","/api/attributetemplate",{id:e})}async getStorages(){return this.execute("get","/api/storage")}async getConversation(e){return this.execute("get",`/api/conversation/${e}`)}async getPublicConversation(e){return this.execute("get",`/api/conversation/public/${e}`)}async createConversation(e,t){return this.execute("post","/api/conversation",{parentId:e,parentType:t})}async postConversationMessage(e,t,a){return this.execute("post","/api/conversation/post",{id:e,text:t,replyTo:a})}async editConversationMessage(e,t){return this.execute("put","/api/conversation/post",{id:e,text:t})}async deleteConversationMessage(e){return this.execute("delete","/api/conversation/post",{id:e})}async subscribeToConversation(e){return this.execute("post","/api/conversation/subscribe",{id:e})}async unsubscribeFromConversation(e){return this.execute("post","/api/conversation/unsubscribe",{id:e})}async likeConversationEntry(e){return this.execute("post","/api/conversation/like",{id:e})}async unlikeConversationEntry(e){return this.execute("post","/api/conversation/unlike",{id:e})}async command(e){return this.execute("post","/api/command",e)}async getMailTemplates(){return this.execute("get","/api/mailtemplate")}async getMailTemplate(e){return this.execute("get",`/api/mailtemplate/${e}`)}async createMailTemplate(e){return this.execute("post","/api/mailtemplate",e)}async updateMailTemplate(e){return this.execute("put","/api/mailtemplate",e)}async deleteMailTemplate(e){return this.execute("delete","/api/mailtemplate",{id:e})}async addMailTemplateImage(e,t,a){const i=this._createFormData(a,"image.jpg");return this.execute("post",`/api/mailtemplate/image/${e}/${t}`,i)}async deleteMailTemplateImage(e,t){return this.execute("delete",`/api/mailtemplate/image/${e}/${t}`)}async getMailTemplateNames(){return this.execute("get","/api/mailtemplate/names")}async getMailQuery(e,t,a,i){return this.execute("post","/api/email/query",{templateName:e,dateStart:t,dateEnd:a,success:i},{withNext:!0})}async getMail(e){return this.execute("get","/api/email/get?token="+e)}async getInvoiceTemplates(){return this.execute("get","/api/invoicetemplate")}async getInvoiceTemplate(e){return this.execute("get",`/api/invoicetemplate/${e}`)}async createInvoiceTemplate(e){return this.execute("post","/api/invoicetemplate",e)}async updateInvoiceTemplate(e){return this.execute("put","/api/invoicetemplate",e)}async deleteInvoiceTemplate(e){return this.execute("delete","/api/invoicetemplate",{id:e})}async addInvoiceTemplateImage(e,t,a){const i=this._createFormData(a,"image.jpg");return this.execute("post",`/api/invoicetemplate/image/${e}/${t}`,i)}async deleteInvoiceTemplateImage(e,t){return this.execute("delete",`/api/invoicetemplate/image/${e}/${t}`)}async getItemTemplatesList(){return this.execute("get","/api/itemtemplate/list")}async getItemTemplates(){return this.execute("get","/api/itemtemplate")}async createItemTemplate(e){return this.execute("post","/api/itemtemplate",e)}async updateItemTemplate(e){return this.execute("put","/api/itemtemplate",e)}async deleteItemTemplate(e){return this.execute("delete","/api/itemtemplate",{id:e})}async getFeatures(){return this.execute("get","/api/feature")}async getFeaturesOnClient(){return this.execute("get","/api/feature/onclient")}async getFeaturesOnClientForAll(){return this.execute("get","/api/feature/onclientforall")}async getAllFeatures(){return this.execute("get","/api/feature/all")}async getBlogs(){return this.execute("get","/api/blog")}async getBlog(e){return this.execute("get","/api/blog/"+e)}async getPublicBlog(e){return this.execute("get","/api/blog/"+e+"/public")}async createBlog(e,t,a,i){return this.execute("post","/api/blog",{name:e,public:t,commentsEnabled:a,editors:i})}async saveBlog(e,t,a,i,n){return this.execute("put","/api/blog",{_id:e,name:t,public:a,commentsEnabled:i,editors:n})}async deleteBlog(e){return this.execute("delete","/api/blog",{_id:e})}async getBlogOverview(e){return this.execute("get","/api/blog/"+e+"/overview")}async queryBlog(e,t,a,i,n,r,s){return this.execute("post","/api/blog/"+e+"/query",{tag:t,text:a,limit:i,previousArticle:n,searchTag:r,sortBy:s})}async getArticles(e){return this.execute("get","/api/blog/"+e+"/article")}async getArticle(e,t){return this.execute("get","/api/blog/"+e+"/article/"+t)}async getArticleBySlug(e,t){return this.execute("get","/api/blog/article/"+e+"/"+t)}async createArticle(e,t,a){return this.execute("post","/api/blog/"+e+"/article",{title:t,slug:a})}async saveArticle(e,t,a,i,n,r,s,o){return this.execute("put","/api/blog/"+e+"/article",{_id:t,title:a,slug:i,content:o,tags:r,public:n,author:s})}async deleteArticle(e,t){return this.execute("delete","/api/blog/"+e+"/article",{_id:t})}async getNewsletters(){return this.execute("get","/api/newsletter")}async createNewsletter(e,t){return this.execute("post","/api/newsletter",{name:e,editors:t})}async getNewsletter(e){return this.execute("get","/api/newsletter/"+e)}async updateNewsletter(e,t,a,i){return this.execute("put","/api/newsletter/"+e,{name:t,sender:a,editors:i})}async deleteNewsletter(e){return this.execute("delete","/api/newsletter/"+e)}async joinNewsletter(e,t){return this.execute("post","/api/newsletter/join",{id:e,email:t})}async confirmNewsletter(e){return this.execute("post","/api/newsletter/confirm",{token:e})}async unsubscribeFromNewsletter(e){return this.execute("post","/api/newsletter/unsubscribe",{token:e})}async getNewsletterBlocks(){return this.execute("get","/api/newsletterblock")}async getNewsletterBlock(e){return this.execute("get","/api/newsletterblock/"+e)}async createNewsletterBlock(e){return this.execute("post","/api/newsletterblock",{name:e})}async updateNewsletterBlock(e,t,a,i,n,r){return this.execute("put","/api/newsletterblock/"+e,{name:t,inputs:a,html:i,css:n,acceptsChildren:r})}async deleteNewsletterBlock(e){return this.execute("delete","/api/newsletterblock/"+e)}async getNewsletterMails(e){return this.execute("get","/api/newslettermail/"+e)}async getNewsletterMail(e,t){return this.execute("get","/api/newslettermail/"+e+"/"+t)}async createNewsletterMail(e,t){return this.execute("post","/api/newslettermail/"+e,{title:t})}async updateNewsletterMail(e,t,a,i,n){return this.execute("put","/api/newslettermail/"+e+"/"+t,{title:a,blocks:i,parentBlock:n})}async generatePreviewNewsletterMail(e,t){return this.execute("post","/api/newslettermail/render",{blocks:e,parentBlock:t})}async sendTestNewsletter(e,t,a){return this.execute("post","/api/newslettermail/"+e+"/"+t+"/sendTest",{email:a})}async sendOutNewsletter(e,t){return this.execute("post","/api/newslettermail/"+e+"/"+t+"/send",{})}async getPages(){return this.execute("get","/api/page")}async createPage(e,t){return this.execute("post","/api/page",{title:e,slug:t})}async getPage(e){return this.execute("get","/api/page/"+e)}async updatePage(e,t,a,i,n){return this.execute("put","/api/page",{_id:e,title:t,slug:a,public:i,content:n})}async deletePage(e){return this.execute("delete","/api/page",{_id:e})}async getPublicPage(e,t){return this.execute("get","/api/page/public/"+e+"/"+t)}async setItemFlag(e,t,a,i,n,r){return this.execute("post","/api/itemflag",{item:e,isStaffPick:t,featureWeight:a,isGame:i,replaceIndex:n,internalRating:r})}getDownloadUrl(e){return`${this.getApiBaseUrl()}/api/item/download/${e}`}getAttachmentDownloadUrl(e,t,a,i){return`${this.getApiBaseUrl()}${this._getAttachmentUrlPath(e,t,a,i)}`}getPublicAttachmentDownloadUrl(e,t,a,i){return`${this.getApiBaseUrl()}${this._getAttachmentUrlPath(e,t,a,i,!0)}`}getPublicDownloadUrl(e){return`${this.getApiBaseUrl()}/api/item/publicdownload/${e}`}async postFeedback(e){return this.execute("post","/api/feedback",{text:e})}},exports.ApiGateway=Y,exports.Block=ce,exports.CustomField=ne,exports.EventEmitter=m,exports.Field=ie,exports.InvalidArgumentException=M,exports.InvalidStateException=class extends T{constructor(e){super(e,"InvalidStateException")}},exports.Item=E,exports.ItemCache=zn,exports.ItemRepo=Ki,exports.ItemVisibility=wc,exports.LinkableItemsCache=class{linkableItemsCache;apiGateway;itemCache;usePublicApi;constructor(e,t,a=!1){this.linkableItemsCache=new Map,this.apiGateway=e,this.itemCache=t,this.usePublicApi=a}clear(){this.linkableItemsCache.clear()}resolveItem(e,t){for(const a of t)if(a._id===e)return a;return null}async loadLinkableItems(e,t){if(!e)throw"loadLinkableItems(): Item cannot be null!";let a=[];if(t.linkableTypes&&t.linkableTypes.length){if(!this.usePublicApi){const i=t.linkableTypes.join("#")+(e.folder?e.folder._id:"");if(this.linkableItemsCache.has(i))return this.linkableItemsCache.get(i);const n=[...t.linkableTypes];n.includes("Package")||n.push("Package");const r={types:n,folder:e.folder?e.folder._id:null};a=(await this.apiGateway.call("LinkableItemsCache::loadLinkableItems","queryItemsList",r)).filter((e=>"Package"!==e.type||t.linkableTypes.includes(e.packageType)));for(const i of e.links)if(null==this.resolveItem(i.to,a))try{const e=await this.itemCache.getItem(i.to);t.linkableTypes.includes(e.type)&&a.push(e)}catch(e){console.error(`Link item ${i.to} not found. Dead link? (${e})`)}this.linkableItemsCache.set(i,a)}}else{for(const t of e.links){const e=await this.itemCache.getItem(t.to);a.push(e)}const i=t.name+"#CurrentLinks";this.linkableItemsCache.set(i,a)}return a}},exports.LoaderException=C,exports.PackageTools=Gi,exports.PreparedItem=re,exports.Profiler=x,exports.Proxifier=S,exports.ProxyEvent=g,exports.QuotaExceededException=I,exports.Script=X,exports.ScriptField=J,exports.Snapshot=G,exports.Storage=sn,exports.Template=oe,exports.TemplateFactory=le,exports.ThumbCache=Yn,exports.UndoManager=Zi,exports.eventBus=y,exports.getDatatypeByName=R,exports.getDatatypes=function(){return structuredClone(L)},exports.hasPermission=function(e,t,a){if(e.admin&&!a)return!0;if(e.superadmin)return!0;if(Array.isArray(e.permissions))if(Array.isArray(t)){for(const a of e.permissions)for(const e of t)if(a===e)return!0}else for(const a of e.permissions)if(a===t)return!0;return!1},exports.profileAsyncBlock=async function(e,t){return x.instance.asyncBlock(e,t)},exports.profileBlock=function(e,t){return x.instance.block(e,t)},exports.tools=_,exports.verifyAcl=se;
|
|
18
|
+
*/var en=(Xi||(Xi=1,Qi.exports=function e(t,a,i){function n(s,o){if(!a[s]){if(!t[s]){if(!o&&B)return B(s);if(r)return r(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=a[s]={exports:{}};t[s][0].call(u.exports,(function(e){var a=t[s][1][e];return n(a||e)}),u,u.exports,e,t,a,i)}return a[s].exports}for(var r=B,s=0;s<i.length;s++)n(i[s]);return n}({1:[function(e,t,a){(function(e){var a,i,n=e.MutationObserver||e.WebKitMutationObserver;if(n){var r=0,s=new n(c),o=e.document.createTextNode("");s.observe(o,{characterData:!0}),a=function(){o.data=r=++r%2}}else if(e.setImmediate||void 0===e.MessageChannel)a="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){c(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(c,0)};else{var l=new e.MessageChannel;l.port1.onmessage=c,a=function(){l.port2.postMessage(0)}}var u=[];function c(){var e,t;i=!0;for(var a=u.length;a;){for(t=u,u=[],e=-1;++e<a;)t[e]();a=u.length}i=!1}function d(e){1!==u.push(e)||i||a()}t.exports=d}).call(this,void 0!==P?P:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,a){var i=e(1);function n(){}var r={},s=["REJECTED"],o=["FULFILLED"],l=["PENDING"];function u(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==n&&h(this,e)}function c(e,t,a){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof a&&(this.onRejected=a,this.callRejected=this.otherCallRejected)}function d(e,t,a){i((function(){var i;try{i=t(a)}catch(t){return r.reject(e,t)}i===e?r.reject(e,new TypeError("Cannot resolve promise with itself")):r.resolve(e,i)}))}function p(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function h(e,t){var a=!1;function i(t){a||(a=!0,r.reject(e,t))}function n(t){a||(a=!0,r.resolve(e,t))}function s(){t(n,i)}var o=f(s);"error"===o.status&&i(o.value)}function f(e,t){var a={};try{a.value=e(t),a.status="success"}catch(e){a.status="error",a.value=e}return a}function m(e){return e instanceof this?e:r.resolve(new this(n),e)}function y(e){var t=new this(n);return r.reject(t,e)}function g(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var a=e.length,i=!1;if(!a)return this.resolve([]);for(var s=new Array(a),o=0,l=-1,u=new this(n);++l<a;)c(e[l],l);return u;function c(e,n){function l(e){s[n]=e,++o!==a||i||(i=!0,r.resolve(u,s))}t.resolve(e).then(l,(function(e){i||(i=!0,r.reject(u,e))}))}}function b(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var a=e.length,i=!1;if(!a)return this.resolve([]);for(var s=-1,o=new this(n);++s<a;)l(e[s]);return o;function l(e){t.resolve(e).then((function(e){i||(i=!0,r.resolve(o,e))}),(function(e){i||(i=!0,r.reject(o,e))}))}}t.exports=u,u.prototype.catch=function(e){return this.then(null,e)},u.prototype.then=function(e,t){if("function"!=typeof e&&this.state===o||"function"!=typeof t&&this.state===s)return this;var a=new this.constructor(n);return this.state!==l?d(a,this.state===o?e:t,this.outcome):this.queue.push(new c(a,e,t)),a},c.prototype.callFulfilled=function(e){r.resolve(this.promise,e)},c.prototype.otherCallFulfilled=function(e){d(this.promise,this.onFulfilled,e)},c.prototype.callRejected=function(e){r.reject(this.promise,e)},c.prototype.otherCallRejected=function(e){d(this.promise,this.onRejected,e)},r.resolve=function(e,t){var a=f(p,t);if("error"===a.status)return r.reject(e,a.value);var i=a.value;if(i)h(e,i);else{e.state=o,e.outcome=t;for(var n=-1,s=e.queue.length;++n<s;)e.queue[n].callFulfilled(t)}return e},r.reject=function(e,t){e.state=s,e.outcome=t;for(var a=-1,i=e.queue.length;++a<i;)e.queue[a].callRejected(t);return e},u.resolve=m,u.reject=y,u.all=g,u.race=b},{1:1}],3:[function(e,t,a){(function(t){"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,void 0!==P?P:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,a){var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}var s=r();function o(){try{if(!s||!s.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function l(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(n){if("TypeError"!==n.name)throw n;for(var a=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),i=0;i<e.length;i+=1)a.append(e[i]);return a.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var u=Promise;function c(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function d(e,t,a){"function"==typeof t&&e.then(t),"function"==typeof a&&e.catch(a)}function p(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function h(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",m=void 0,y={},g=Object.prototype.toString,b="readonly",v="readwrite";function _(e){for(var t=e.length,a=new ArrayBuffer(t),i=new Uint8Array(a),n=0;n<t;n++)i[n]=e.charCodeAt(n);return a}function w(e){return new u((function(t){var a=e.transaction(f,v),i=l([""]);a.objectStore(f).put(i,"key"),a.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},a.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),a=navigator.userAgent.match(/Edge\//);t(a||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof m?u.resolve(m):w(e).then((function(e){return m=e}))}function k(e){var t=y[e.name],a={};a.promise=new u((function(e,t){a.resolve=e,a.reject=t})),t.deferredOperations.push(a),t.dbReady?t.dbReady=t.dbReady.then((function(){return a.promise})):t.dbReady=a.promise}function S(e){var t=y[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function N(e,t){var a=y[e.name].deferredOperations.pop();if(a)return a.reject(t),a.promise}function x(e,t){return new u((function(a,i){if(y[e.name]=y[e.name]||R(),e.db){if(!t)return a(e.db);k(e),e.db.close()}var n=[e.name];t&&n.push(e.version);var r=s.open.apply(s,n);t&&(r.onupgradeneeded=function(t){var a=r.result;try{a.createObjectStore(e.storeName),t.oldVersion<=1&&a.createObjectStore(f)}catch(a){if("ConstraintError"!==a.name)throw a;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),r.onerror=function(e){e.preventDefault(),i(r.error)},r.onsuccess=function(){var t=r.result;t.onversionchange=function(e){e.target.close()},a(t),S(e)}}))}function T(e){return x(e,!1)}function M(e){return x(e,!0)}function V(e,t){if(!e.db)return!0;var a=!e.db.objectStoreNames.contains(e.storeName),i=e.version<e.db.version,n=e.version>e.db.version;if(i&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),n||a){if(a){var r=e.db.version+1;r>e.version&&(e.version=r)}return!0}return!1}function C(e){return new u((function(t,a){var i=new FileReader;i.onerror=a,i.onloadend=function(a){var i=btoa(a.target.result||"");t({__local_forage_encoded_blob:!0,data:i,type:e.type})},i.readAsBinaryString(e)}))}function I(e){return l([_(atob(e.data))],{type:e.type})}function F(e){return e&&e.__local_forage_encoded_blob}function E(e){var t=this,a=t._initReady().then((function(){var e=y[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return d(a,e,e),a}function D(e){k(e);for(var t=y[e.name],a=t.forages,i=0;i<a.length;i++){var n=a[i];n._dbInfo.db&&(n._dbInfo.db.close(),n._dbInfo.db=null)}return e.db=null,T(e).then((function(t){return e.db=t,V(e)?M(e):t})).then((function(i){e.db=t.db=i;for(var n=0;n<a.length;n++)a[n]._dbInfo.db=i})).catch((function(t){throw N(e,t),t}))}function L(e,t,a,i){void 0===i&&(i=1);try{var n=e.db.transaction(e.storeName,t);a(null,n)}catch(n){if(i>0&&(!e.db||"InvalidStateError"===n.name||"NotFoundError"===n.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===n.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),M(e)})).then((function(){return D(e).then((function(){L(e,t,a,i-1)}))})).catch(a);a(n)}}function R(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function P(e){var t=this,a={db:null};if(e)for(var i in e)a[i]=e[i];var n=y[a.name];n||(n=R(),y[a.name]=n),n.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=E);var r=[];function s(){return u.resolve()}for(var o=0;o<n.forages.length;o++){var l=n.forages[o];l!==t&&r.push(l._initReady().catch(s))}var c=n.forages.slice(0);return u.all(r).then((function(){return a.db=n.db,T(a)})).then((function(e){return a.db=e,V(a,t._defaultConfig.version)?M(a):e})).then((function(e){a.db=n.db=e,t._dbInfo=a;for(var i=0;i<c.length;i++){var r=c[i];r!==t&&(r._dbInfo.db=a.db,r._dbInfo.version=a.version)}}))}function O(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).get(e);s.onsuccess=function(){var e=s.result;void 0===e&&(e=null),F(e)&&(e=I(e)),t(e)},s.onerror=function(){i(s.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function B(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).openCursor(),o=1;s.onsuccess=function(){var a=s.result;if(a){var i=a.value;F(i)&&(i=I(i));var n=e(i,a.key,o++);void 0!==n?t(n):a.continue()}else t()},s.onerror=function(){i(s.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function $(e,t,a){var i=this;e=p(e);var n=new u((function(a,n){var r;i.ready().then((function(){return r=i._dbInfo,"[object Blob]"===g.call(t)?A(r.db).then((function(e){return e?t:C(t)})):t})).then((function(t){L(i._dbInfo,v,(function(r,s){if(r)return n(r);try{var o=s.objectStore(i._dbInfo.storeName);null===t&&(t=void 0);var l=o.put(t,e);s.oncomplete=function(){void 0===t&&(t=null),a(t)},s.onabort=s.onerror=function(){var e=l.error?l.error:l.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return c(n,a),n}function j(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){L(a._dbInfo,v,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName).delete(e);r.oncomplete=function(){t()},r.onerror=function(){i(s.error)},r.onabort=function(){var e=s.error?s.error:s.transaction.error;i(e)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function U(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,v,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).clear();n.oncomplete=function(){e()},n.onabort=n.onerror=function(){var e=r.error?r.error:r.transaction.error;a(e)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function z(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,b,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).count();r.onsuccess=function(){e(r.result)},r.onerror=function(){a(r.error)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function W(e,t){var a=this,i=new u((function(t,i){e<0?t(null):a.ready().then((function(){L(a._dbInfo,b,(function(n,r){if(n)return i(n);try{var s=r.objectStore(a._dbInfo.storeName),o=!1,l=s.openKeyCursor();l.onsuccess=function(){var a=l.result;a?0===e||o?t(a.key):(o=!0,a.advance(e)):t(null)},l.onerror=function(){i(l.error)}}catch(e){i(e)}}))})).catch(i)}));return c(i,t),i}function Y(e){var t=this,a=new u((function(e,a){t.ready().then((function(){L(t._dbInfo,b,(function(i,n){if(i)return a(i);try{var r=n.objectStore(t._dbInfo.storeName).openKeyCursor(),s=[];r.onsuccess=function(){var t=r.result;t?(s.push(t.key),t.continue()):e(s)},r.onerror=function(){a(r.error)}}catch(e){a(e)}}))})).catch(a)}));return c(a,e),a}function H(e,t){t=h.apply(this,arguments);var a=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||a.name,e.storeName=e.storeName||a.storeName);var i,n=this;if(e.name){var r=e.name===a.name&&n._dbInfo.db?u.resolve(n._dbInfo.db):T(e).then((function(t){var a=y[e.name],i=a.forages;a.db=t;for(var n=0;n<i.length;n++)i[n]._dbInfo.db=t;return t}));i=e.storeName?r.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var a=t.version+1;k(e);var i=y[e.name],n=i.forages;t.close();for(var r=0;r<n.length;r++){var o=n[r];o._dbInfo.db=null,o._dbInfo.version=a}var l=new u((function(t,i){var n=s.open(e.name,a);n.onerror=function(e){n.result.close(),i(e)},n.onupgradeneeded=function(){n.result.deleteObjectStore(e.storeName)},n.onsuccess=function(){var e=n.result;e.close(),t(e)}}));return l.then((function(e){i.db=e;for(var t=0;t<n.length;t++){var a=n[t];a._dbInfo.db=e,S(a._dbInfo)}})).catch((function(t){throw(N(e,t)||u.resolve()).catch((function(){})),t}))}})):r.then((function(t){k(e);var a=y[e.name],i=a.forages;t.close();for(var n=0;n<i.length;n++)i[n]._dbInfo.db=null;var r=new u((function(t,a){var i=s.deleteDatabase(e.name);i.onerror=function(){var e=i.result;e&&e.close(),a(i.error)},i.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},i.onsuccess=function(){var e=i.result;e&&e.close(),t(e)}}));return r.then((function(e){a.db=e;for(var t=0;t<i.length;t++)S(i[t]._dbInfo)})).catch((function(t){throw(N(e,t)||u.resolve()).catch((function(){})),t}))}))}else i=u.reject("Invalid arguments");return c(i,t),i}var G={_driver:"asyncStorage",_initStorage:P,_support:o(),iterate:B,getItem:O,setItem:$,removeItem:j,clear:U,length:z,key:W,keys:Y,dropInstance:H};function q(){return"function"==typeof openDatabase}var Z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J="~~local_forage_type~",K=/^~~local_forage_type~([^~]+)~/,X="__lfsc__:",Q=X.length,ee="arbf",te="blob",ae="si08",ie="ui08",ne="uic8",re="si16",se="si32",oe="ur16",le="ui32",ue="fl32",ce="fl64",de=Q+ee.length,pe=Object.prototype.toString;function he(e){var t,a,i,n,r,s=.75*e.length,o=e.length,l=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var u=new ArrayBuffer(s),c=new Uint8Array(u);for(t=0;t<o;t+=4)a=Z.indexOf(e[t]),i=Z.indexOf(e[t+1]),n=Z.indexOf(e[t+2]),r=Z.indexOf(e[t+3]),c[l++]=a<<2|i>>4,c[l++]=(15&i)<<4|n>>2,c[l++]=(3&n)<<6|63&r;return u}function fe(e){var t,a=new Uint8Array(e),i="";for(t=0;t<a.length;t+=3)i+=Z[a[t]>>2],i+=Z[(3&a[t])<<4|a[t+1]>>4],i+=Z[(15&a[t+1])<<2|a[t+2]>>6],i+=Z[63&a[t+2]];return a.length%3==2?i=i.substring(0,i.length-1)+"=":a.length%3==1&&(i=i.substring(0,i.length-2)+"=="),i}function me(e,t){var a="";if(e&&(a=pe.call(e)),e&&("[object ArrayBuffer]"===a||e.buffer&&"[object ArrayBuffer]"===pe.call(e.buffer))){var i,n=X;e instanceof ArrayBuffer?(i=e,n+=ee):(i=e.buffer,"[object Int8Array]"===a?n+=ae:"[object Uint8Array]"===a?n+=ie:"[object Uint8ClampedArray]"===a?n+=ne:"[object Int16Array]"===a?n+=re:"[object Uint16Array]"===a?n+=oe:"[object Int32Array]"===a?n+=se:"[object Uint32Array]"===a?n+=le:"[object Float32Array]"===a?n+=ue:"[object Float64Array]"===a?n+=ce:t(new Error("Failed to get type for BinaryArray"))),t(n+fe(i))}else if("[object Blob]"===a){var r=new FileReader;r.onload=function(){var a=J+e.type+"~"+fe(this.result);t(X+te+a)},r.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(a){console.error("Couldn't convert value into a JSON string: ",e),t(null,a)}}function ye(e){if(e.substring(0,Q)!==X)return JSON.parse(e);var t,a=e.substring(de),i=e.substring(Q,de);if(i===te&&K.test(a)){var n=a.match(K);t=n[1],a=a.substring(n[0].length)}var r=he(a);switch(i){case ee:return r;case te:return l([r],{type:t});case ae:return new Int8Array(r);case ie:return new Uint8Array(r);case ne:return new Uint8ClampedArray(r);case re:return new Int16Array(r);case oe:return new Uint16Array(r);case se:return new Int32Array(r);case le:return new Uint32Array(r);case ue:return new Float32Array(r);case ce:return new Float64Array(r);default:throw new Error("Unkown type: "+i)}}var ge={serialize:me,deserialize:ye,stringToBuffer:he,bufferToString:fe};function be(e,t,a,i){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],a,i)}function ve(e){var t=this,a={db:null};if(e)for(var i in e)a[i]="string"!=typeof e[i]?e[i].toString():e[i];var n=new u((function(e,i){try{a.db=openDatabase(a.name,String(a.version),a.description,a.size)}catch(e){return i(e)}a.db.transaction((function(n){be(n,a,(function(){t._dbInfo=a,e()}),(function(e,t){i(t)}))}),i)}));return a.serializer=ge,n}function _e(e,t,a,i,n,r){e.executeSql(a,i,n,(function(e,s){s.code===s.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,o){o.rows.length?r(e,s):be(e,t,(function(){e.executeSql(a,i,n,r)}),r)}),r):r(e,s)}),r)}function we(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT * FROM "+n.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,a){var i=a.rows.length?a.rows.item(0).value:null;i&&(i=n.serializer.deserialize(i)),t(i)}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function Ae(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT * FROM "+n.storeName,[],(function(a,i){for(var r=i.rows,s=r.length,o=0;o<s;o++){var l=r.item(o),u=l.value;if(u&&(u=n.serializer.deserialize(u)),void 0!==(u=e(u,l.key,o+1)))return void t(u)}t()}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function ke(e,t,a,i){var n=this;e=p(e);var r=new u((function(r,s){n.ready().then((function(){void 0===t&&(t=null);var o=t,l=n._dbInfo;l.serializer.serialize(t,(function(t,u){u?s(u):l.db.transaction((function(a){_e(a,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){r(o)}),(function(e,t){s(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(i>0)return void r(ke.apply(n,[e,o,a,i-1]));s(t)}}))}))})).catch(s)}));return c(r,a),r}function Se(e,t,a){return ke.apply(this,[e,t,a,1])}function Ne(e,t){var a=this;e=p(e);var i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"DELETE FROM "+n.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function xe(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"DELETE FROM "+i.storeName,[],(function(){e()}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Te(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"SELECT COUNT(key) as c FROM "+i.storeName,[],(function(t,a){var i=a.rows.item(0).c;e(i)}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Me(e,t){var a=this,i=new u((function(t,i){a.ready().then((function(){var n=a._dbInfo;n.db.transaction((function(a){_e(a,n,"SELECT key FROM "+n.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,a){var i=a.rows.length?a.rows.item(0).key:null;t(i)}),(function(e,t){i(t)}))}))})).catch(i)}));return c(i,t),i}function Ve(e){var t=this,a=new u((function(e,a){t.ready().then((function(){var i=t._dbInfo;i.db.transaction((function(t){_e(t,i,"SELECT key FROM "+i.storeName,[],(function(t,a){for(var i=[],n=0;n<a.rows.length;n++)i.push(a.rows.item(n).key);e(i)}),(function(e,t){a(t)}))}))})).catch(a)}));return c(a,e),a}function Ce(e){return new u((function(t,a){e.transaction((function(i){i.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(a,i){for(var n=[],r=0;r<i.rows.length;r++)n.push(i.rows.item(r).name);t({db:e,storeNames:n})}),(function(e,t){a(t)}))}),(function(e){a(e)}))}))}function Ie(e,t){t=h.apply(this,arguments);var a=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||a.name,e.storeName=e.storeName||a.storeName);var i,n=this;return c(i=e.name?new u((function(t){var i;i=e.name===a.name?n._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:i,storeNames:[e.storeName]}):t(Ce(i))})).then((function(e){return new u((function(t,a){e.db.transaction((function(i){function n(e){return new u((function(t,a){i.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){a(t)}))}))}for(var r=[],s=0,o=e.storeNames.length;s<o;s++)r.push(n(e.storeNames[s]));u.all(r).then((function(){t()})).catch((function(e){a(e)}))}),(function(e){a(e)}))}))})):u.reject("Invalid arguments"),t),i}var Fe={_driver:"webSQLStorage",_initStorage:ve,_support:q(),iterate:Ae,getItem:we,setItem:Se,removeItem:Ne,clear:xe,length:Te,key:Me,keys:Ve,dropInstance:Ie};function Ee(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function De(e,t){var a=e.name+"/";return e.storeName!==t.storeName&&(a+=e.storeName+"/"),a}function Le(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function Re(){return!Le()||localStorage.length>0}function Pe(e){var t=this,a={};if(e)for(var i in e)a[i]=e[i];return a.keyPrefix=De(e,t._defaultConfig),Re()?(t._dbInfo=a,a.serializer=ge,u.resolve()):u.reject()}function Oe(e){var t=this,a=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,a=localStorage.length-1;a>=0;a--){var i=localStorage.key(a);0===i.indexOf(e)&&localStorage.removeItem(i)}}));return c(a,e),a}function Be(e,t){var a=this;e=p(e);var i=a.ready().then((function(){var t=a._dbInfo,i=localStorage.getItem(t.keyPrefix+e);return i&&(i=t.serializer.deserialize(i)),i}));return c(i,t),i}function $e(e,t){var a=this,i=a.ready().then((function(){for(var t=a._dbInfo,i=t.keyPrefix,n=i.length,r=localStorage.length,s=1,o=0;o<r;o++){var l=localStorage.key(o);if(0===l.indexOf(i)){var u=localStorage.getItem(l);if(u&&(u=t.serializer.deserialize(u)),void 0!==(u=e(u,l.substring(n),s++)))return u}}}));return c(i,t),i}function je(e,t){var a=this,i=a.ready().then((function(){var t,i=a._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(i.keyPrefix.length)),t}));return c(i,t),i}function Ue(e){var t=this,a=t.ready().then((function(){for(var e=t._dbInfo,a=localStorage.length,i=[],n=0;n<a;n++){var r=localStorage.key(n);0===r.indexOf(e.keyPrefix)&&i.push(r.substring(e.keyPrefix.length))}return i}));return c(a,e),a}function ze(e){var t=this.keys().then((function(e){return e.length}));return c(t,e),t}function We(e,t){var a=this;e=p(e);var i=a.ready().then((function(){var t=a._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return c(i,t),i}function Ye(e,t,a){var i=this;e=p(e);var n=i.ready().then((function(){void 0===t&&(t=null);var a=t;return new u((function(n,r){var s=i._dbInfo;s.serializer.serialize(t,(function(t,i){if(i)r(i);else try{localStorage.setItem(s.keyPrefix+e,t),n(a)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||r(e),r(e)}}))}))}));return c(n,a),n}function He(e,t){if(t=h.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var a=this.config();e.name=e.name||a.name,e.storeName=e.storeName||a.storeName}var i,n=this;return i=e.name?new u((function(t){e.storeName?t(De(e,n._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var a=localStorage.key(t);0===a.indexOf(e)&&localStorage.removeItem(a)}})):u.reject("Invalid arguments"),c(i,t),i}var Ge={_driver:"localStorageWrapper",_initStorage:Pe,_support:Ee(),iterate:$e,getItem:Be,setItem:Ye,removeItem:We,clear:Oe,length:ze,key:je,keys:Ue,dropInstance:He},qe=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Ze=function(e,t){for(var a=e.length,i=0;i<a;){if(qe(e[i],t))return!0;i++}return!1},Je=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ke={},Xe={},Qe={INDEXEDDB:G,WEBSQL:Fe,LOCALSTORAGE:Ge},et=[Qe.INDEXEDDB._driver,Qe.WEBSQL._driver,Qe.LOCALSTORAGE._driver],tt=["dropInstance"],at=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(tt),it={description:"",driver:et.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function nt(e,t){e[t]=function(){var a=arguments;return e.ready().then((function(){return e[t].apply(e,a)}))}}function rt(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var a in t)t.hasOwnProperty(a)&&(Je(t[a])?arguments[0][a]=t[a].slice():arguments[0][a]=t[a])}return arguments[0]}var st=function(){function e(t){for(var a in n(this,e),Qe)if(Qe.hasOwnProperty(a)){var i=Qe[a],r=i._driver;this[a]=r,Ke[r]||this.defineDriver(i)}this._defaultConfig=rt({},it),this._config=rt({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":i(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,a){var i=new u((function(t,a){try{var i=e._driver,n=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void a(n);for(var r=at.concat("_initStorage"),s=0,o=r.length;s<o;s++){var l=r[s];if((!Ze(tt,l)||e[l])&&"function"!=typeof e[l])return void a(n)}var d=function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),a=u.reject(t);return c(a,arguments[arguments.length-1]),a}},a=0,i=tt.length;a<i;a++){var n=tt[a];e[n]||(e[n]=t(n))}};d();var p=function(a){Ke[i]&&console.info("Redefining LocalForage driver: "+i),Ke[i]=e,Xe[i]=a,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(p,a):p(!!e._support):p(!0)}catch(e){a(e)}}));return d(i,t,a),i},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,a){var i=Ke[e]?u.resolve(Ke[e]):u.reject(new Error("Driver not found."));return d(i,t,a),i},e.prototype.getSerializer=function(e){var t=u.resolve(ge);return d(t,e),t},e.prototype.ready=function(e){var t=this,a=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return d(a,e,e),a},e.prototype.setDriver=function(e,t,a){var i=this;Je(e)||(e=[e]);var n=this._getSupportedDrivers(e);function r(){i._config.driver=i.driver()}function s(e){return i._extend(e),r(),i._ready=i._initStorage(i._config),i._ready}function o(e){return function(){var t=0;function a(){for(;t<e.length;){var n=e[t];return t++,i._dbInfo=null,i._ready=null,i.getDriver(n).then(s).catch(a)}r();var o=new Error("No available storage method found.");return i._driverSet=u.reject(o),i._driverSet}return a()}}var l=null!==this._driverSet?this._driverSet.catch((function(){return u.resolve()})):u.resolve();return this._driverSet=l.then((function(){var e=n[0];return i._dbInfo=null,i._ready=null,i.getDriver(e).then((function(e){i._driver=e._driver,r(),i._wrapLibraryMethodsWithReady(),i._initDriver=o(n)}))})).catch((function(){r();var e=new Error("No available storage method found.");return i._driverSet=u.reject(e),i._driverSet})),d(this._driverSet,t,a),this._driverSet},e.prototype.supports=function(e){return!!Xe[e]},e.prototype._extend=function(e){rt(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],a=0,i=e.length;a<i;a++){var n=e[a];this.supports(n)&&t.push(n)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=at.length;e<t;e++)nt(this,at[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),ot=new st;t.exports=ot},{3:3}]},{},[4])(4)),Qi.exports),tn=O(en);class an{databaseName;collectionName;size;_store;constructor(e,t,a){tn.config({driver:tn.INDEXEDDB}),this.databaseName=e||"lumino-cache",this.collectionName=t||"data",this.size=a,this._store=tn.createInstance({name:this.databaseName,storeName:this.collectionName})}async init(){}async _keys(){return this._store.keys()}async _set(e,t){return this._store.setItem(e,t)}async _clear(){return this._store.clear()}async _get(e){return this._store.getItem(e)}async _remove(e){return this._store.removeItem(e)}}function nn(e){let t,a,i,n;e.onmessage=async r=>{const s=r.data;try{switch(s.type){case"init":{i=s.databaseName,n=s.collectionName,t=await navigator.storage.getDirectory();const r=await t.getDirectoryHandle(i,{create:!0});a=await r.getDirectoryHandle(n,{create:!0}),e.postMessage({type:s.type,database:i,collection:n,success:!0});break}case"write":{if(!a)throw new Error("OPFS Worker: not initialized yet!");const t=await a.getFileHandle(s.filename,{create:!0}),r=await t.createSyncAccessHandle();let o;if("string"==typeof s.content){o=(new TextEncoder).encode(s.content).buffer}else if(s.content instanceof ArrayBuffer)o=s.content;else{if(!(s.content instanceof Blob))throw new Error("OPFS Worker: Unsupported content type: "+typeof s.content);o=await s.content.arrayBuffer()}r.truncate(o.byteLength),r.write(o,{at:0}),await r.flush(),r.close(),e.postMessage({type:s.type,database:i,collection:n,success:!0});break}}}catch(t){e.postMessage({type:s.type,success:!1,database:i,collection:n,error:t.message})}}}class rn{databaseName;collectionName;size;_worker;_storage;_root;constructor(e,t,a){this.databaseName=e||"lumino-cache",this.collectionName=t||"data",this.size=a}async init(){if("object"==typeof globalThis.navigator&&"storage"in globalThis.navigator&&"function"==typeof globalThis.navigator.storage.getDirectory){this._storage=await navigator.storage.getDirectory();const e=await this._storage.getDirectoryHandle(this.databaseName,{create:!0});let t,a;this._root=await e.getDirectoryHandle(this.collectionName,{create:!0}),this._worker=new Worker(URL.createObjectURL(new Blob(["(",nn.toString(),")(self)"],{type:"application/javascript"})),{type:"module"});let i=new Promise(((e,i)=>{t=e,a=i}));return this._worker.onmessage=e=>{const i=e.data;i.success||console.error("OPFS Worker failed:",i),"init"===i.type&&(i.success?t():a(i.error))},this._worker.postMessage({type:"init",databaseName:this.databaseName,collectionName:this.collectionName}),i}}async _keys(){if(!this._root)return[];const e=[];for await(const t of this._root.values())e.push(t.name);return e}async _set(e,t){if(!this._root)return;let a;if(t instanceof Blob)a=t;else if("object"==typeof t){const e=JSON.stringify(t,null,2);a=new Blob([e],{type:"application/json"})}else a=new Blob([t],{type:"text/plain"});const i=await this._root.getFileHandle(e,{create:!0});if("function"==typeof i.createWritable){const e=await i.createWritable();await e.write(a),await e.close()}else this._worker.postMessage({type:"write",filename:e,content:a})}async _clear(){if(!this._root)return;const e=[];for await(const t of this._root.values())e.push(this._root.removeEntry(t.name));return Promise.all(e)}async _get(e,t){if(!this._root)return null;let a;try{const t=await this._root.getFileHandle(e);a=await t.getFile()}catch(e){return null}switch(t=t||a.type){case"text/plain":return a.text();case"application/json":{const e=await a.text();try{return JSON.parse(e)}catch(t){return console.error("Content was loaded from cache but could not be json parsed: ",e),null}}default:return a}}async _remove(e){if(this._root)return this._root.removeEntry(e)}}class sn{databaseName;collectionName;size;type;_impl;constructor(e,t,a=0,i=1){switch(this.databaseName=e||"lumino",this.collectionName=t||"data",this.size=1048576*(i||1),this.type=a,this.type){case 0:this._impl=new an(this.databaseName,this.collectionName,this.size);break;case 1:this._impl=new rn(this.databaseName,this.collectionName,this.size);break;default:throw"Invalid storage type: "+a}}async init(){return this._impl.init()}async _keys(){return this._impl._keys()}fixKey(e){return e.replaceAll("/","_")}async _set(e,t){return this._impl._set(this.fixKey(e),t)}async _clear(){return this._impl._clear()}async _get(e,t){return this._impl._get(this.fixKey(e),t)}async _remove(e){return this._impl._remove(this.fixKey(e))}}var on,ln,un,cn,dn,pn,hn,fn,mn,yn,gn,bn,vn,_n,wn,An,kn,Sn,Nn,xn,Tn,Mn,Vn,Cn,In,Fn,En,Dn;function Ln(){if(ln)return on;return ln=1,on=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}}function Rn(){if(pn)return dn;pn=1;var e=function(){if(cn)return un;cn=1;var e="object"==typeof P&&P&&P.Object===Object&&P;return un=e}(),t="object"==typeof self&&self&&self.Object===Object&&self,a=e||t||Function("return this")();return dn=a}function Pn(){if(bn)return gn;bn=1;var e=function(){if(yn)return mn;yn=1;var e=/\s/;return mn=function(t){for(var a=t.length;a--&&e.test(t.charAt(a)););return a}}(),t=/^\s+/;return gn=function(a){return a?a.slice(0,e(a)+1).replace(t,""):a}}function On(){if(_n)return vn;_n=1;var e=Rn().Symbol;return vn=e}function Bn(){if(xn)return Nn;xn=1;var e=On(),t=function(){if(An)return wn;An=1;var e=On(),t=Object.prototype,a=t.hasOwnProperty,i=t.toString,n=e?e.toStringTag:void 0;return wn=function(e){var t=a.call(e,n),r=e[n];try{e[n]=void 0;var s=!0}catch(e){}var o=i.call(e);return s&&(t?e[n]=r:delete e[n]),o}}(),a=function(){if(Sn)return kn;Sn=1;var e=Object.prototype.toString;return kn=function(t){return e.call(t)}}(),i=e?e.toStringTag:void 0;return Nn=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?t(e):a(e)}}function $n(){if(Cn)return Vn;Cn=1;var e=Bn(),t=Mn?Tn:(Mn=1,Tn=function(e){return null!=e&&"object"==typeof e});return Vn=function(a){return"symbol"==typeof a||t(a)&&"[object Symbol]"==e(a)}}var jn=function(){if(Dn)return En;Dn=1;var e=Ln(),t=function(){if(fn)return hn;fn=1;var e=Rn();return hn=function(){return e.Date.now()}}(),a=function(){if(Fn)return In;Fn=1;var e=Pn(),t=Ln(),a=$n(),i=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,r=/^0o[0-7]+$/i,s=parseInt;return In=function(o){if("number"==typeof o)return o;if(a(o))return NaN;if(t(o)){var l="function"==typeof o.valueOf?o.valueOf():o;o=t(l)?l+"":l}if("string"!=typeof o)return 0===o?o:+o;o=e(o);var u=n.test(o);return u||r.test(o)?s(o.slice(2),u?2:8):i.test(o)?NaN:+o}}(),i=Math.max,n=Math.min;return En=function(r,s,o){var l,u,c,d,p,h,f=0,m=!1,y=!1,g=!0;if("function"!=typeof r)throw new TypeError("Expected a function");function b(e){var t=l,a=u;return l=u=void 0,f=e,d=r.apply(a,t)}function v(e){var t=e-h;return void 0===h||t>=s||t<0||y&&e-f>=c}function _(){var e=t();if(v(e))return w(e);p=setTimeout(_,function(e){var t=s-(e-h);return y?n(t,c-(e-f)):t}(e))}function w(e){return p=void 0,g&&l?b(e):(l=u=void 0,d)}function A(){var e=t(),a=v(e);if(l=arguments,u=this,h=e,a){if(void 0===p)return function(e){return f=e,p=setTimeout(_,s),m?b(e):d}(h);if(y)return clearTimeout(p),p=setTimeout(_,s),b(h)}return void 0===p&&(p=setTimeout(_,s)),d}return s=a(s)||0,e(o)&&(m=!!o.leading,c=(y="maxWait"in o)?i(a(o.maxWait)||0,s):c,g="trailing"in o?!!o.trailing:g),A.cancel=function(){void 0!==p&&clearTimeout(p),f=0,l=h=u=p=void 0},A.flush=function(){return void 0===p?d:w(t())},A}}(),Un=O(jn);class zn extends sn{apiClient;cache=new Map;urlToIdMap=new Map;logging=!1;ready=!1;usePublicApi=!1;quota=0;size=0;usePersistentStorage=!1;saveIndex;constructor(e,t,a,i){if(super("lumino","items",1),!a)throw"A lumino client needs to be passed.";this.apiClient=a,this.usePublicApi=e,this.quota=1048576*(i||1024),this.usePersistentStorage=t;this.saveIndex=Un((()=>{const e=[];for(const t of this.cache.values())e.push({id:t.id,time:t.time.valueOf(),size:t.size,hash:t.hash,itemType:t.itemType,mimeType:t.mimeType,itemName:t.itemName});this._set("index",e).then((function(){})).catch((function(e){console.error("Error saving cache index: "+e)}))}),1e3)}async init(){return await super.init(),this.initFromStorage()}getQuota(){return this.quota}setQuota(e){this.quota=e,this.checkQuota()}getCount(){return this.cache.size}getSize(){return this.size}async initFromStorage(){if(this.usePersistentStorage){const e=await this._get("index","application/json");if(e&&Array.isArray(e))for(const t of e)t.time=W(t.time),this.cache.set(t.id,t),this.size+=t.size;else await this._clear(),this.saveIndex()}this.ready=!0,y.$emit("itemCache:cacheReady"),y.$emit("itemCache:cacheChange"),y.$on("item:rename",(e=>this.handleRename(e)))}async addToStorage(e,t){if(this.usePersistentStorage){const a={id:e.id,time:W(e.time.toDate()),size:e.size,hash:e.hash,itemType:e.itemType,mimeType:e.mimeType,itemName:e.itemName};await this._set(`blob_${e.id}`,t),this.cache.set(e.id,a),this.saveIndex()}this.size+=e.size}waitUntilReady(){const e=this;return new Promise(((t,a)=>{try{e.ready?t():y.$on("itemCache:cacheReady",(()=>{t()}))}catch(e){a(e)}}))}findObject(e){return this.cache.get(e)}getEntries(){return this.cache.values()}clear(){for(const e of this.cache.values())e.objectUrl&&URL.revokeObjectURL(e.objectUrl);this.cache.clear(),y.$emit("itemCache:cacheChange"),this.usePersistentStorage&&this._clear().then((function(){console.log("Cache storage cleared.")})).catch((function(e){console.error(e)}))}clearMemory(){for(let e of this.cache.values())e.objectUrl&&(URL.revokeObjectURL(e.objectUrl),delete e.objectUrl);y.$emit("itemCache:cacheChange")}checkQuota(e=0){let t=this.size+e;if(t>this.quota){const e=[...this.cache.entries()].sort((function(e,t){return e[1].time.valueOf()-t[1].time.valueOf()}));let a=0;for(;t>this.quota&&a<e.length;){const i=e[a][1];i.objectUrl||(t-=i.size,this.removeObjectFromCache(i.id)),a++}}}removeObjectFromCache(e){const t=this.cache.get(e);t&&(t.objectUrl&&URL.revokeObjectURL(t.objectUrl),this.cache.delete(e),this.size-=t.size,this.usePersistentStorage&&(this._remove(`blob_${t.id}`).then((function(){console.log(`Removed blob for ${e} from cache`)})).catch((function(t){console.error(`Error removing blob for ${e} from cache: ${t}`)})),this.saveIndex()))}getIdFromUrl(e){return this.urlToIdMap.has(e)?this.urlToIdMap.get(e):null}getById(e){const t=this.findObject(e);return t?(this.logging&&console.log("Retrieving from cache: "+e),t.time=W(),t):(this.logging&&console.error("Object not in cache: "+e),null)}getObjectUrl(e){const t=this.getIdFromUrl(e);if(!t)return console.error("Could not find URL in cache: "+e),"";const a=this.getById(t);return a?a.objectUrl:(console.error("Could not find Id in cache: "+t),"")}async getBufferById(e){const t=await this.getBlobById(e);return t?await new Response(t).arrayBuffer():null}async getBlobById(e){const t=this.getById(e);return t?await fetch(t.objectUrl).then((e=>e.blob())):null}async loadFromStorage(e){if(e.objectUrl)return!0;let t=null;return!!this.usePersistentStorage&&(t=await this._get(`blob_${e.id}`),!!t&&(e.objectUrl=URL.createObjectURL(t),e.time=W(),this.saveIndex(),y.$emit("itemCache:cacheChange"),!0))}getCacheKey(e,t){return t&&"item"!==t.type?e+"_lod"+t.index:e}_getLodLevelUrl(e,t){let a;return a=t&&"item"!==t.type?this.apiClient.getAttachmentDownloadUrl(e,"lod",t.index):this.apiClient.getDownloadUrl(e),a}async loadItem(e,t,a){let i=0;for(;;)try{let i;if(this.usePublicApi)i=t&&"item"!==t.type?await this.apiClient.downloadPublicAttachment(e,"lod",t.index,void 0,a):await this.apiClient.publicDownloadItem(e,a);else try{i=t&&"item"!==t.type?await this.apiClient.downloadAttachment(e,"lod",t.index,void 0,a):await this.apiClient.downloadItem(e,a)}catch{i=t&&"item"!==t.type?await this.apiClient.downloadPublicAttachment(e,"lod",t.index,void 0,a):await this.apiClient.publicDownloadItem(e,a)}return i}catch(t){if(console.log(t),i++,!(i<3))return y.$emit("client:fatalError",`Failed to download item ${e}`),null;console.debug(`Failed attempts to download item ${e}: ${i}. Trying again...`)}}async addItemToCache(e,t,a,i){try{const n=this.getCacheKey(e,t),r=this.findObject(n);if(r&&(a||!this.apiClient.getItemHash||this.usePublicApi||(a=await this.apiClient.getItemHash(e)),a&&r.hash===a&&(this.logging&&console.log("Item already in cache: "+e),await this.loadFromStorage(r))))return r.url||(r.url=this._getLodLevelUrl(e,t)),this.urlToIdMap.set(r.url,n),this.cache.set(n,r),r;i&&i(0);let s=await this.loadItem(e,t,i);if(!s)return console.error("Was not able to load object into cache: "+n),null;i&&i(100);const o=this._getLodLevelUrl(e,t),l=URL.createObjectURL(s.blob),u={id:n,url:o,time:W(),objectUrl:l,size:s.blob.size,hash:s.hash,itemType:s.itemType,mimeType:s.mimeType,itemName:s.itemName};return this.checkQuota(u.size),await this.addToStorage(u,s.blob),this.cache.set(n,u),this.urlToIdMap.set(o,n),this.saveIndex(),y.$emit("itemCache:cacheChange"),this.logging&&console.log("Added item to cache: ",u),u}catch(e){return console.error(e),null}}getObjectCount(){return this.cache.size}getObjectSize(){let e=0;for(const t of this.cache.values())e+=t.size;return e}handleRename({id:e,newName:t}){const a=this.cache.get(e);a&&(a.itemName=t,this.saveIndex(),y.$emit("itemCache:cacheChange"))}}class Wn extends sn{apiClient;ready=!1;maxNumItems=1e4;constructor(e){if(super("lumino","folders",1),!e)throw"A lumino client needs to be passed.";this.apiClient=e}async init(){await super.init(),await this.checkStorage(),this.ready=!0}clear(){return this._clear()}async checkStorage(){const e=await this._keys();let t=e.length-this.maxNumItems;if(t>0){t=Math.floor(this.maxNumItems/2);const a=[];for(let i=0;i<t;i++)a.push(this._remove(e[i]));await Promise.all(a)}}async getFolderListing(e){return this.ready?this._get(e,"application/json"):null}async getItemListing(e){if(!this.ready)return null;const t=await this._get("items_"+e,"application/json");if(!t)return null;const a=await this.getFolderListing(e);return a&&a.parent&&new Date(t.cachedAt).getTime()>new Date(a.parent.updatedAt).getTime()?t.data:null}async getFolderACLs(e,t){if(!this.ready)return null;const a=await this._get("acl_"+e,"application/json");return a&&Date.now()-a.cachedAt<t?(delete a.cachedAt,a):null}async refreshCacheForFolder(e){const t=await this.getFolderListing(e);await this.addFolderListing(e,t)}async addFolderListing(e,t){this.ready&&(await this._set(e,{...t,cachedAt:new Date}),await this.checkStorage())}async addItemListing(e,t){this.ready&&(await this._set("items_"+e,{data:t,cachedAt:new Date}),await this.checkStorage())}async addACL(e,t){this.ready&&(await this._set("acl_"+e,{...t,cachedAt:new Date}),await this.checkStorage())}}class Yn extends sn{apiClient;constructor(e){if(super("lumino","thumbs",1),!e)throw"A lumino client needs to be passed.";this.apiClient=e}clear(){this._clear()}async _loadThumbnail(e,t){try{return await this.apiClient.getThumbnail(e,t)}catch{try{return await this.apiClient.getPublicThumbnail(e,t)}catch{return null}}}async get(e,t,a,i){if(!t)throw"Cannot retrieve item thumbnail from cache without knowing size!";let n=await this._get(e,"application/json");if(n&&n.hash===a&&n.timestamp===i){for(const e of n.thumbnails)if(e.size===t){if(e.data)return e.data;n.thumbnails.removeObject(e);break}let a=await this._loadThumbnail(t,e);return a&&(n.thumbnails.push({size:t,data:a}),await this._set(e,n)),a}let r=await this._loadThumbnail(t,e);if(a||i){let s=[];r&&s.push({size:t,data:r}),n={id:e,hash:a,timestamp:i,thumbnails:s},await this._set(e,n)}return r}}class Hn{apiClient;cache=new Map;constructor(e){this.apiClient=e,this.cache=new Map}async resolve(e){let t=this.cache.get(e);if(!t)try{t=this.apiClient.getUserPublicInfo(e,this.apiClient.requestClientId,32),this.cache.set(e,t)}catch(e){console.error(e)}return t}}class Gn{apiClient;cache=new Map;constructor(e){this.apiClient=e}async resolve(e){let t=this.cache.get(e);if(!t)try{t=this.apiClient.getGroupPublicInfo(e,this.apiClient.requestClientId,32),this.cache.set(e,t)}catch(e){console.error(e)}return t}}class qn{apiClient;cache=new Map;constructor(e){this.apiClient=e}async get(e,t,a,i,n=!1){const r=`${e}_${t}_${a}${void 0===i?"":`_${i}`}`,s=this.cache.get(r);if(s)return s;try{const s=new Promise((async r=>{try{let s;s=n?await this.apiClient.downloadPublicAttachment(e,t,a,i,void 0):await this.apiClient.downloadAttachmentPOP(e,t,a,i,void 0);r(URL.createObjectURL(s.blob))}catch(e){r(null)}}));return this.cache.set(r,s),s}catch(e){return console.warn(`Attachment ${r} not available.`),null}}invalidateAttachment(e,t,a,i){let n=`${e}_${t}`;null!=a&&(n+=`_${a}`);for(const e of this.cache.keys()){const t=null==i||e.endsWith(`_${i}`);e.startsWith(n)&&t&&this.cache.delete(e)}}}class Zn{apiClient;itemRepo;jobManager;items=[];hasExternalResources=!1;totalSize=0;affectedFolderIds=new Set;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo(),this.jobManager=e.getJobManager()}_updateQuota(){this.apiClient.eventBus.$emit("quota:update")}async getPreviousVersions(e,t){const a=[];t=t||"published";const i=await this.apiClient.createFolder({name:t,parent:e,returnIfExists:!0}),n=await this.apiClient.getFoldersInFolderList(i,{folderAsItemType:"Package"});for(const e of n.children)e.item&&a.push({itemId:e.item._id,folderId:e._id,version:e.name,name:e.item.name,filesize:0|e.item.filesize,visibility:e.item.visibility});return a}async verify(e){const t=this,a=new Map,i=new Map;e=e?await this.itemRepo.loadItem(e._id,{recursive:!0}):this.itemRepo.activeItem;const n=await r(e.folder);async function r(e){try{if(e){const a=e._id?e._id:e;if(i.has(a))return i.get(a);{const e=(await t.apiClient.getFolderPath(a)).path;return i.set(a,e),e}}return"/"}catch{return""}}await this.itemRepo.traverseItems((async function(e){const t={_id:e._id,name:e.name,type:e.type,size:e.totalSize,path:await r(e.folder),item:e,external:!1};t.path.startsWith(n)?t.path=t.path.slice(n.length):t.external=!0,a.set(e._id,t)})),this.items=Array.from(a.values()),this.hasExternalResources=!1,this.totalSize=0;for(const e of this.items)e.external&&(this.hasExternalResources=!0),this.totalSize+=e.size;return!this.hasExternalResources}getItems(){return this.items}async unpackToProject(e,t,a,i){a&&(t=await this.apiClient.createFolder({name:a,parent:t,returnIfExists:!0}));const n=await this.apiClient.getItem(e);n.folder===t&&await this.apiClient.renameItem(e,n.name+" (Unpackaged)");const r=await this.apiClient.createFolder({name:n.name,parent:t,fixNameCollisions:!0}),s=await this.jobManager.execute("JS:Unpackage",[{_id:e,isFolder:!1}],[{name:"Destination Folder",value:r},{name:"Make Destination Visible",value:!1}],i);if(this._updateQuota(),3===s.state){const t=s.log.trim().split(";");if(2!==t.length||"UNPACKAGED"!==t[0])throw new V("Unpacking failed. Did not get unpackaged item id!");const a=t[1].trim();return await this.apiClient.renameItem(a,n.name),await this.itemRepo.replaceLink(e,a),a}if(2===s.state)throw new V("Unpacking failed: "+s.error)}async copyItemToProject(e,t,a,i){return(await this.copyItemsToProject([{_id:e,isFolder:!1}],t,a,i))[0].newId}async copyItemsToProject(e,t,a,i){a=a||"packages",t=await this.apiClient.createFolder({name:a,parent:t,returnIfExists:!0}),this.affectedFolderIds.add(t);const n=[];if(e.length){const a=await this.jobManager.execute("JS:CloneItem",e,[{name:"Deep Clone",value:!1},{name:"Destination Folder",value:t},{name:"Exclude Types",value:""},{name:"Make Private",value:!0}],i);if(this._updateQuota(),3===a.state){if(!a.log.trim().length)throw new V("Copy job returned no results.");{const e=a.log.split("\n").reverse();for(const t of e){const e=t.trim().split(";");if(3===e.length){const t=e[1],a=e[2];await this.itemRepo.replaceLink(t,a),n.push({oldId:t,newId:a})}}}}else if(2===a.state)throw new V("Copying of items failed: "+a.error)}return n}async copyToProject(e,t,a){const i=[];for(const e of this.items)e.external&&i.push({_id:e._id,isFolder:!1});return this.copyItemsToProject(i,e,t,a)}async unpublish(e){await this.apiClient.makeItemPrivate(e,!1,!1)}async publish(e,t,a,i,n,r,s,o){const l=e.version;i=i||`published/${l.major}.${l.minor}.${l.revision}`,n=void 0===n||n,r=void 0===r||r,this.affectedFolderIds.add(a);let u,c=a;if(i){const e=i.split("/");for(const t of e)c=await this.apiClient.createFolder({name:t,parent:c,returnIfExists:!0}),this.affectedFolderIds.add(c),u||(u=c)}const d=(await this.apiClient.getFoldersInFolderList(a)).children.map((e=>e._id)).filter((e=>e!==u)).join(","),p=await this.jobManager.execute("JS:CreatePackage",[{_id:e._id,isFolder:!1}],[{name:"Folders To Include",value:d},{name:"Destination Folder",value:c},{name:"Item Name",value:t},{name:"Make Public",value:!!n},{name:"Copy External",value:!!r},{name:"Always Create New Package",value:!!s},{name:"Make Cloneable",value:!!o}]);if(this._updateQuota(),2===p.state)throw new V("Packaging failed: "+p.error);this.apiClient.eventBus.$emit("folder:changed",Array.from(this.affectedFolderIds.values()))}}class Jn{id;job;nextCheckMs;constructor(e,t,a){this.id=e,this.job=a,this.nextCheckMs=t}}class Kn{apiClient;jobs=new Map;constructor(e){this.apiClient=e}getJobs(){return Array.from(this.jobs.values())}async execute(e,t,a,i=void 0,n=void 0){const r=this;return new Promise((async(s,o)=>{try{const o=async()=>{try{u.job=await r.apiClient.getJobState(l);let e=!1;switch(u.job.state){case 0:case 1:try{i&&i(u.job)}catch(e){console.error("Error calling progress callback: ",e)}break;case 2:case 3:console.log("Job is done."),e=!0,s(u.job)}e?r.jobs.delete(l):(u.nextCheckMs=Math.min(2*u.nextCheckMs,8e3),setTimeout(o,u.nextCheckMs))}catch(e){console.error("Error fetching job state: "+e)}},l=await r.apiClient.createJob({type:e,elements:t,parameters:a,requiredParameters:n}),u=new Jn(l,1e3);r.jobs.set(l,u),setTimeout(o,u.nextCheckMs)}catch(e){o(e)}}))}}const Xn={mp3:{name:"Mpeg Audio Layer 3",itemType:"Audio",itemTypeCollection:"Audio Collection",collectionEntryName:"AudioItems",folderName:"audio",defaultAction:"Use",actions:["Skip","Use"]},hdr:{name:"HDR Image",itemType:"HDR Image",folderName:"envmaps",defaultAction:"Use",actions:["Skip","Use"]},glb:{name:"Gltf Binary",itemType:"Mesh",itemTypeCollection:"Mesh Collection",collectionEntryName:"MeshItems",folderName:"meshes",defaultAction:"Use",actions:["Skip","Use"]},png:{name:"Portable Network Graphics",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},jpg:{name:"JPEG",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},jpeg:{name:"JPEG",itemType:"Image",folderName:"textures",defaultAction:"Use",actions:["Skip","Use"]},lua:{name:"Lua",itemType:"Script",folderName:"scripts",defaultAction:"Use",actions:["Skip","Use"]},ttf:{name:"True Type Font",itemType:"Font",folderName:"fonts",defaultAction:"Use",actions:["Skip","Use"]},otf:{name:"Open Type Font",itemType:"Font",folderName:"fonts",defaultAction:"Use",actions:["Skip","Use"]},unknown:{name:"Unsupported",itemType:"Unknown",defaultAction:"Skip",actions:["Skip"],invisible:!0}},Qn={Audio:"audio","Audio Collection":"audio","HDR Image":"envmaps",Mesh:"meshes","Mesh Collection":"",Script:"scripts",Material:"materials","Background Shader":"background shaders","Pixel Shader":"pixel shaders","Vertex Shader":"vertex shaders",Image:"textures",Scene:"prefabs",Font:"fonts"};function er(e,t){let a=Xn[t];a||(a=Xn.unknown),e.size=e.blob?e.blob.size:0,e.type=a.name,e.collectionType=a.itemTypeCollection,e.collectionEntryName=a.collectionEntryName,e.action=a.defaultAction,e.actions=a.actions,e.folderName=a.folderName,e.itemType=a.itemType,e.name=function(e,t){let a=e.lastIndexOf(".");return e.substring(0,a<0?e.length:a)+"."+t}(e.name,t)}class tr{name;blob;processing=!1;progress=0;size=0;type;collectionType;collectionEntryName;action;actions;folderName;itemType;constructor(e,t,a){this.name=e,this.blob=t,er(this,a)}}class ar{apiClient;itemRepo;jobManager;items=[];mainItem;totalSize=0;oldMainItemId;originalItemIds=[];affectedFolderIds=new Set;packageId;converter;supportedExtensions;hasExternalResources=!1;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo(),this.jobManager=e.getJobManager();const t=[];for(const e in Xn)Xn[e].invisible||t.push(`.${e.toUpperCase()}`);this.supportedExtensions=t.sort(((e,t)=>e.localeCompare(t)))}_updateQuota(){this.apiClient.eventBus.$emit("quota:update")}_addAffectedFolder(e){"object"==typeof e&&e._id?this.affectedFolderIds.add(e._id):"string"==typeof e?this.affectedFolderIds.add(e):console.error("Invalid affected folder to add: ",e)}getAffectedFolderIds(){return Array.from(this.affectedFolderIds.values())}getSupportedExtensions(){return this.supportedExtensions}setConverter(e){this.converter=e}setItems(e){this.items=e}async scan(e){const t=this,a=new Map,i=new Map;this.mainItem=await this.itemRepo.loadItem(e,{recursive:!0}),this.oldMainItemId=this.mainItem._id;const n=await r(this.mainItem.folder);async function r(e){try{if(e){const a=e._id?e._id:e;if(i.has(a))return i.get(a);{const e=(await t.apiClient.getFolderPath(a)).path;return i.set(a,e),e}}return"/"}catch(e){return console.error(e),""}}await this.itemRepo.traverseItems((async function(e){const i={_id:e._id,name:e.name,type:e.type,size:e.totalSize,path:await r(e.folder),item:e,external:!1};i.path.startsWith(n)?i.path=i.path.slice(n.length):i.external=!0,t._addAffectedFolder(e.folder),a.set(e._id,i)}),this.mainItem),this.items=Array.from(a.values()),this.originalItemIds=this.items.map((e=>e._id)),this.hasExternalResources=!1,this.totalSize=0;for(const e of this.items)e.external&&(this.hasExternalResources=!0),this.totalSize+=e.size;return this.items}getItems(){return this.items}async saveMainItemChanges(){const e=this.mainItem;await this.apiClient.updateItem({_id:e._id,name:e.name,shortDescription:e.shortDescription,description:e.description,tags:e.tags,categories:e.categories,visibility:e.visibility,contributors:e.contributors,version:e.version})}async createAssetFolder(e,t){let a=e;const i=t.split("/");this._addAffectedFolder(e);for(const e of i)a=await this.apiClient.createFolder({name:e,parent:a,returnIfExists:!0}),this._addAffectedFolder(a);const n=await this.apiClient.getItemsInFolderList(a,!0);if(n&&n.length)throw new Error("Asset folder already exists and is not empty!");return a}createStandardAssetFolderPath(e){let t=Qn[e.type];return t||(t=e.type.toLowerCase()+"s"),`assets/${t}/${e.name}`}async executeActions(){if(!this.converter)throw new Error("No converter is configured. Cannot execute actions on items.");return this.converter(this.items,er)}async createAsset(e,t=!1,a){const i=[];for(const e of this.items)i.push(e._id);if(this._addAffectedFolder(e),i.length)if(t){await this.apiClient.moveItems({items:i,dest:e})!==i.length&&console.warn("Not all items could be moved. Most likely due to permissions."),this.mainItem.folder=e}else{const t=await this.jobManager.execute("JS:CloneItem",[{_id:this.mainItem._id,isFolder:!1}],[{name:"Deep Clone",value:!0},{name:"Destination Folder",value:e},{name:"Exclude Types",value:""}],a);if(3===t.state){const a=t.log.split("\n").reverse()[0].split(";");this.mainItem={...this.mainItem,_id:a[2],folder:e}}else if(2===t.state)throw new V("Copying of items failed: "+t.error)}"Main"!==this.mainItem.name&&(this.mainItem.originalName=this.mainItem.name,this.mainItem.name="Main",await this.apiClient.renameItem(this.mainItem._id,this.mainItem.name));const n=await this.apiClient.getItem(this.mainItem._id);return n.flags||(n.flags=[]),n.flags.includes("original")||n.flags.push("original"),await this.apiClient.updateItem(n),this._updateQuota(),this.mainItem._id}async createPackage(e,t=!1,a=!1){let i,n=this.mainItem.folder;if(this._addAffectedFolder(n),void 0===e){const t=this.mainItem.version||{major:1,minor:0,revision:0};e=`published/${t.major}.${t.minor}.${t.revision}`}if(void 0===t&&(t=!0),e){const t=e.split("/");for(const e of t)n=await this.apiClient.createFolder({name:e,parent:n,returnIfExists:!0}),this._addAffectedFolder(n),i||(i=n)}const r=(await this.apiClient.getFoldersInFolderList(this.mainItem.folder)).children.map((e=>e._id)).filter((e=>e!==i)).join(","),s=await this.jobManager.execute("JS:CreatePackage",[{_id:this.mainItem._id,isFolder:!1}],[{name:"Folders To Include",value:r},{name:"Destination Folder",value:n},{name:"Item Name",value:this.mainItem.originalName||this.mainItem.name},{name:"Make Public",value:!!t},{name:"Copy External",value:!!a}]);if(this._updateQuota(),2===s.state)throw new V("Packaging failed: "+s.error);const o=s.log.split("\n").reverse()[0].split(";");this.packageId=o[2]}async replaceReferences(){await this.itemRepo.replaceLink(this.oldMainItemId,this.packageId)}async deleteOriginalItems(){await this.apiClient.deleteItem(this.originalItemIds)}sendFolderRefreshEvent(){this.apiClient.eventBus.$emit("folder:changed",this.getAffectedFolderIds())}async processUploads(e){const t=[];for(const a of e)if("application/zip"===a.type||"application/x-zip-compressed"===a.type){const e=new h.default;try{const i=[];(await e.loadAsync(a)).forEach(((e,a)=>{const n=a.name.split("/").pop();if(!n.startsWith(".")){const e=n.split(".").pop(),r=a.async("blob");i.push(r),r.then((function(i){const n=new tr(a.name,i,e);t.push(n)}))}})),await Promise.all(i)}catch(e){console.error("Error reading the ZIP file:",e)}}else{const e=a.name.split(".").pop(),i=new tr(a.name,a,e);t.push(i)}return t}detectAssets(e){let t,a,i,n=0;for(const r of e)if("Use"===r.action)if(void 0===t)t=r.itemType,a=r.collectionType,i=r.folderName,n++;else{if(t!==r.itemType)return{valid:!1,reason:"Mixed item types found. To create an asset, upload a single type of file for example only meshes."};n++}return 0===n?{valid:!1,reason:"There are no files we can use to create an asset."}:n>1&&!a?{valid:!1,reason:"Cannot create collections of this type."}:{valid:!0,assetType:n>1?a:t,itemCount:n,folderName:i}}_filterUploadFiles(e){let t=[];for(const a of e)"Use"===a.action&&t.push(a);return t}createNewItem(){return{name:"New asset",type:"",description:"",shortDescription:"",tags:[],flags:["original"],categories:[],license:"CC0",allowConversation:!0,version:{major:1,minor:0,revision:0}}}async createAssetFromFiles(e,t,a,i=!1,n=!1){const r=this.detectAssets(e);if(r.assetType!==a.type)throw new Error("Asset type not valid for these items.");if(!r.valid)throw new Error(r.reason||"No valid asset detected.");let s=await this.apiClient.createFolder({name:r.folderName,parent:t,returnIfExists:!0}),o=await this.apiClient.createFolder({name:a.name,parent:s,returnIfExists:!0}),l=!1;if(0===(await this.apiClient.getItemsInFolderList(o)).length){(await this.apiClient.getFoldersInFolderList(o)).children.length&&(l=!0)}else l=!0;if(l){if(!i)throw new Error("Cannot create asset, target folder is not empty!");await this.apiClient.deleteFolder(o),o=await this.apiClient.createFolder({name:a.name,parent:s})}let u,c=this._filterUploadFiles(e);if(1===c.length){const e=c[0];e.processing=!0,e.progress=0,u=await this.apiClient.uploadAndCreate(o,e.blob,e.name,{nameOverride:"Main",flags:"original"},(function(t){e.progress=t})),this._updateQuota(),e.action="Skip"}else{let e=await this.apiClient.createFolder({name:"resources",parent:o}),t={},a=[],i=0;for(const n of c){n.processing=!0,n.progress=0;const r=await this.apiClient.uploadAndCreate(e,n.blob,n.name,void 0,(function(e){n.progress=e}));this._updateQuota(),n.action="Skip",t[`${n.collectionEntryName}[${i}]->Name`]="",a.push({usage:`MeshItems[${i}]->Mesh`,to:r}),i++}u=await this.apiClient.createItem({type:r.assetType,name:"Main",flags:["original"],folder:o,fixNameCollisions:!0,attributes:t,links:a})}return a._id=u,a.folder=o,this.mainItem=a,n?{assetItemId:u,assetTypeFolderId:s,assetFolderId:o}:u}}class ir{apiClient;itemRepo;constructor(e){this.apiClient=e,this.itemRepo=e.getItemRepo()}grab(e,t,a,i){i=i||{};const n=[];for(const r of a){const a=this._serializeBlockFields(r),s=this._serializeScripts(r),o={type:"block",item:e._id,field:t.name,path:"",block:{id:r.id,type:r.type||"Group",fields:a,scripts:s,children:[]}};i.omitPath||(o.path=this._getBlockPath(r)),i.withChildren&&(o.block.children=this.grab(e,t,r.blocks||[],{withChildren:!0,returnArray:!0})),n.push(o)}if(i.returnArray)return n;const r={type:"serializedBlocks",data:n};return i.noStringify?r:JSON.stringify(r,null,2)}async put(e,t,a,i={}){e=this.validateMessage(e);const n=[];for(const r of e.data){const e=await this._putBlock(r,t,a,i);e&&n.push(e)}return n}validateMessage(e){if("string"==typeof e&&(e=JSON.parse(e)),"serializedBlocks"!==e.type)throw new Error("Data must be a serialized block message. Format is wrong.");if(!Array.isArray(e.data))throw new Error("The contained data is not an array.");return e}async clone(e,t,a,i,n={}){const r=this.grab(i,t,[e],{withChildren:!0,noStringify:!0});return this.put(r,t,a,n)}_updateScriptFieldReferences(e,t){const a=new Map,i=(e,t)=>{a.set(e.block.id,t.id);const n=e.block.children||[],r=t.blocks||[];for(let e=0;e<n.length;e++)i(n[e],r[e])};i(e,t),this.itemRepo.updateScriptFieldReferencesFromMap(a,t)}async _putBlock(e,t,a,i={},n=!1){if(!e.block||!e.block.type||!e.block.fields)return null;const r=e.block,s=this._findItemById(e.item)??this.itemRepo.activeItem;let o=a;o||(o=this._findParentBlock(s,e.field,e.path));const l={};if(Array.isArray(r.fields))for(const e of r.fields){const{name:t,type:a,value:n,linkto:r}=e;if("Separator"!==a)if(i.fieldOverrides&&t in i.fieldOverrides)l[t]=i.fieldOverrides[t];else if(r){const e=this.itemRepo.getLoadedItem(r);l[t]=e||await this.itemRepo.loadItem(r)}else l[t]=n}const u=i.dontCopyScripts?[]:[...r.scripts],c=await this._createUnproxifiedBlock(r.type,l,u,t,s),d={...i,parentPosition:void 0,fieldOverrides:void 0};if(!c)return console.warn(`Could not create block of type ${r.type}. Skipping.`),null;if(Array.isArray(r.children))for(const e of r.children)await this._putBlock(e,t,c,d,!0);if(n&&o)return"number"==typeof i.parentPosition?o.blocks.splice(i.parentPosition,0,c):o.blocks.push(c),c.parent=o,c;i.dontCopyScripts||this._updateScriptFieldReferences(e,c);return this._proxifyAndAttachTree(c,o,s,i.parentPosition)}async _createUnproxifiedBlock(e,t,a,i,n){let r=le.instance.getTemplate(n.packageType||n.type,i.name,e);if(!r)return null;if(t){const e=r.template.clone().specialize(t);r={displayName:r.displayName,typeName:r.typeName,template:e,inputs:r.inputs,outputs:r.outputs}}const s=new ce(void 0,void 0,r.typeName,void 0,r.displayName,n),o=await this.itemRepo.createFieldsForItem(s,r.template,n,!0);return s.setFields(o),s.blocks=[],await this.itemRepo.createScriptsForItem(s,a,n,!1),s}_proxifyAndAttachTree(e,t,a,i){const n=e=>{if(Array.isArray(e.blocks)&&e.blocks.length)for(const t of e.blocks)n(t);const t=e.blocks.map((e=>S.instance.proxyBlock(e,a)));e.blocks=S.instance.proxyBlockArray(t,e,a),e.scripts=S.instance.proxyScriptArray(e.scripts,e,a)};n(e),e.parent=t;const r=S.instance.proxyBlock(e,a);return"number"==typeof i?t.blocks.splice(i,0,r):t.blocks.push(r),r}_findItemById(e){return this.itemRepo.findLoadedItem(e)}_findItemField(e,t){if(!e.fieldInstances)return null;for(const a of e.fieldInstances)if(a.name===t)return a;return null}_findParentBlock(e,t,a){const i=this._findItemField(e,t);if(!i)return null;const n=a.split("/");let r=i.blocks,s=null;for(const e of n)s=r[e],r=s.blocks;return s}_getBlockIndex(e){if(!e.parent)return 0;let t=0;for(const a of e.parent.blocks){if(e.id===a.id)return t;t++}throw new Error("Could not find block in parent block array!")}_getBlockPath(e){const t=[];let a=e;for(;a;)t.push(this._getBlockIndex(a)),a=a.parent;return"/"+t.reverse().join("/")}_serializeBlockFields(e){const t=[];if(!Array.isArray(e.fields))return t;for(const a of e.fields)switch(a.type){case"Link":t.push({name:a.name,linkto:a.value?._id});break;case"Attribute":t.push({name:a.name,value:a.value});break;case"Separator":t.push({name:a.name,type:"Separator"})}return t}_serializeScripts(e){const t=[];if(!Array.isArray(e.scripts))return t;for(const a of e.scripts){const e=[],i={item:a.item?.value?._id,fields:e};for(const t of a.fields)e.push({name:t.name,value:t.value});t.push(i)}return t}}Array.prototype.pushAll||(Array.prototype.pushAll=function(e){for(const t of e)this.push(t)}),Array.prototype.removeObject||(Array.prototype.removeObject=function(e){const t=this.indexOf(e);return t>-1&&(this.splice(t,1),!0)}),Array.prototype.moveObjectToArray||(Array.prototype.moveObjectToArray=function(e,t,a){const i=this.indexOf(e);if(i>-1){return(0,this.moveToArray)(i,t,a)}return!1}),Array.prototype.removeByFilterFunc||(Array.prototype.removeByFilterFunc=function(e){let t=0;for(let a=0;a<this.length;a++)e(this[a])&&(this.splice(a,1),a--,t++);return t}),Array.prototype.clone||(Array.prototype.clone=function(){const e=[];for(const t of this)e.push(t);return e});const nr=()=>new Map,rr=e=>{const t=nr();return e.forEach(((e,a)=>{t.set(a,e)})),t},sr=(e,t,a)=>{let i=e.get(t);return void 0===i&&e.set(t,i=a()),i},or=()=>new Set,lr=e=>e[e.length-1],ur=(e,t)=>{for(let a=0;a<t.length;a++)e.push(t[a])},cr=Array.from,dr=Array.isArray;class pr{constructor(){this._observers=nr()}on(e,t){return sr(this._observers,e,or).add(t),t}once(e,t){const a=(...i)=>{this.off(e,a),t(...i)};this.on(e,a)}off(e,t){const a=this._observers.get(e);void 0!==a&&(a.delete(t),0===a.size&&this._observers.delete(e))}emit(e,t){return cr((this._observers.get(e)||nr()).values()).forEach((e=>e(...t)))}destroy(){this._observers=nr()}}class hr{constructor(){this._observers=nr()}on(e,t){sr(this._observers,e,or).add(t)}once(e,t){const a=(...i)=>{this.off(e,a),t(...i)};this.on(e,a)}off(e,t){const a=this._observers.get(e);void 0!==a&&(a.delete(t),0===a.size&&this._observers.delete(e))}emit(e,t){return cr((this._observers.get(e)||nr()).values()).forEach((e=>e(...t)))}destroy(){this._observers=nr()}}const fr=Math.floor,mr=Math.abs,yr=(e,t)=>e<t?e:t,gr=(e,t)=>e>t?e:t,br=Math.pow,vr=e=>0!==e?e<0:1/e<0,_r=64,wr=128,Ar=127,kr=Number.MAX_SAFE_INTEGER,Sr=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&fr(e)===e),Nr=String.fromCharCode,xr=/^\s*/g,Tr=/([A-Z])/g,Mr=(e,t)=>(e=>e.replace(xr,""))(e.replace(Tr,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),Vr="undefined"!=typeof TextEncoder?new TextEncoder:null,Cr=Vr?e=>Vr.encode(e):e=>{const t=unescape(encodeURIComponent(e)),a=t.length,i=new Uint8Array(a);for(let e=0;e<a;e++)i[e]=t.codePointAt(e);return i};let Ir="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Ir&&1===Ir.decode(new Uint8Array).length&&(Ir=null);class Fr{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Er=()=>new Fr,Dr=e=>{let t=e.cpos;for(let a=0;a<e.bufs.length;a++)t+=e.bufs[a].length;return t},Lr=e=>{const t=new Uint8Array(Dr(e));let a=0;for(let i=0;i<e.bufs.length;i++){const n=e.bufs[i];t.set(n,a),a+=n.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),a),t},Rr=(e,t)=>{const a=e.cbuf.length;e.cpos===a&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*a),e.cpos=0),e.cbuf[e.cpos++]=t},Pr=Rr,Or=(e,t)=>{for(;t>Ar;)Rr(e,wr|Ar&t),t=fr(t/128);Rr(e,Ar&t)},Br=(e,t)=>{const a=vr(t);for(a&&(t=-t),Rr(e,(t>63?wr:0)|(a?_r:0)|63&t),t=fr(t/64);t>0;)Rr(e,(t>Ar?wr:0)|Ar&t),t=fr(t/128)},$r=new Uint8Array(3e4),jr=$r.length/3,Ur=Vr&&Vr.encodeInto?(e,t)=>{if(t.length<jr){const a=Vr.encodeInto(t,$r).written||0;Or(e,a);for(let t=0;t<a;t++)Rr(e,$r[t])}else Wr(e,Cr(t))}:(e,t)=>{const a=unescape(encodeURIComponent(t)),i=a.length;Or(e,i);for(let t=0;t<i;t++)Rr(e,a.codePointAt(t))},zr=(e,t)=>{const a=e.cbuf.length,i=e.cpos,n=yr(a-i,t.length),r=t.length-n;e.cbuf.set(t.subarray(0,n),i),e.cpos+=n,r>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(gr(2*a,r)),e.cbuf.set(t.subarray(n)),e.cpos=r)},Wr=(e,t)=>{Or(e,t.byteLength),zr(e,t)},Yr=(e,t)=>{((e,t)=>{const a=e.cbuf.length;a-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*gr(a,t)),e.cpos=0)})(e,t);const a=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,a},Hr=new DataView(new ArrayBuffer(4)),Gr=(e,t)=>{switch(typeof t){case"string":Rr(e,119),Ur(e,t);break;case"number":Sr(t)&&mr(t)<=2147483647?(Rr(e,125),Br(e,t)):(a=t,Hr.setFloat32(0,a),Hr.getFloat32(0)===a?(Rr(e,124),((e,t)=>{Yr(e,4).setFloat32(0,t,!1)})(e,t)):(Rr(e,123),((e,t)=>{Yr(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":Rr(e,122),((e,t)=>{Yr(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)Rr(e,126);else if(dr(t)){Rr(e,117),Or(e,t.length);for(let a=0;a<t.length;a++)Gr(e,t[a])}else if(t instanceof Uint8Array)Rr(e,116),Wr(e,t);else{Rr(e,118);const a=Object.keys(t);Or(e,a.length);for(let i=0;i<a.length;i++){const n=a[i];Ur(e,n),Gr(e,t[n])}}break;case"boolean":Rr(e,t?120:121);break;default:Rr(e,127)}var a};class qr extends Fr{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Or(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const Zr=e=>{e.count>0&&(Br(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Or(e.encoder,e.count-2))};class Jr{constructor(){this.encoder=new Fr,this.s=0,this.count=0}write(e){this.s===e?this.count++:(Zr(this),this.count=1,this.s=e)}toUint8Array(){return Zr(this),Lr(this.encoder)}}const Kr=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);Br(e.encoder,t),e.count>1&&Or(e.encoder,e.count-2)}};class Xr{constructor(){this.encoder=new Fr,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Kr(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Kr(this),Lr(this.encoder)}}class Qr{constructor(){this.sarr=[],this.s="",this.lensE=new Jr}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Fr;return this.sarr.push(this.s),this.s="",Ur(e,this.sarr.join("")),zr(e,this.lensE.toUint8Array()),Lr(e)}}const es=e=>new Error(e),ts=()=>{throw es("Method unimplemented")},as=()=>{throw es("Unexpected case")},is=es("Unexpected end of array"),ns=es("Integer out of Range");class rs{constructor(e){this.arr=e,this.pos=0}}const ss=e=>new rs(e),os=e=>((e,t)=>{const a=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,a})(e,us(e)),ls=e=>e.arr[e.pos++],us=e=>{let t=0,a=1;const i=e.arr.length;for(;e.pos<i;){const i=e.arr[e.pos++];if(t+=(i&Ar)*a,a*=128,i<wr)return t;if(t>kr)throw ns}throw is},cs=e=>{let t=e.arr[e.pos++],a=63&t,i=64;const n=(t&_r)>0?-1:1;if(!(t&wr))return n*a;const r=e.arr.length;for(;e.pos<r;){if(t=e.arr[e.pos++],a+=(t&Ar)*i,i*=128,t<wr)return n*a;if(a>kr)throw ns}throw is},ds=Ir?e=>Ir.decode(os(e)):e=>{let t=us(e);if(0===t)return"";{let a=String.fromCodePoint(ls(e));if(--t<100)for(;t--;)a+=String.fromCodePoint(ls(e));else for(;t>0;){const i=t<1e4?t:1e4,n=e.arr.subarray(e.pos,e.pos+i);e.pos+=i,a+=String.fromCodePoint.apply(null,n),t-=i}return decodeURIComponent(escape(a))}},ps=(e,t)=>{const a=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,a},hs=[e=>{},e=>null,cs,e=>ps(e,4).getFloat32(0,!1),e=>ps(e,8).getFloat64(0,!1),e=>ps(e,8).getBigInt64(0,!1),e=>!1,e=>!0,ds,e=>{const t=us(e),a={};for(let i=0;i<t;i++){a[ds(e)]=fs(e)}return a},e=>{const t=us(e),a=[];for(let i=0;i<t;i++)a.push(fs(e));return a},os],fs=e=>hs[127-ls(e)](e);class ms extends rs{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){var e;return 0===this.count&&(this.s=this.reader(this),(e=this).pos!==e.arr.length?this.count=us(this)+1:this.count=-1),this.count--,this.s}}class ys extends rs{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=cs(this);const e=vr(this.s);this.count=1,e&&(this.s=-this.s,this.count=us(this)+2)}return this.count--,this.s}}class gs extends rs{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=cs(this),t=1&e;this.diff=fr(e/2),this.count=1,t&&(this.count=us(this)+2)}return this.s+=this.diff,this.count--,this.s}}class bs{constructor(e){this.decoder=new ys(e),this.str=ds(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const vs=crypto.getRandomValues.bind(crypto),_s=()=>vs(new Uint32Array(1))[0],ws=[1e7]+-1e3+-4e3+-8e3+-1e11,As=()=>ws.replace(/[018]/g,(e=>(e^_s()&15>>e/4).toString(16))),ks=Date.now,Ss=e=>new Promise(e);Promise.all.bind(Promise);const Ns=e=>void 0===e?null:e;let xs=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},Ts=!0;try{"undefined"!=typeof localStorage&&localStorage&&(xs=localStorage,Ts=!1)}catch(e){}const Ms=xs,Vs=Object.assign,Cs=Object.keys,Is=e=>Cs(e).length,Fs=e=>Cs(e).length,Es=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ds=Object.freeze,Ls=e=>{for(const t in e){const a=e[t];"object"!=typeof a&&"function"!=typeof a||Ls(e[t])}return Ds(e)},Rs=Symbol("Equality"),Ps=(e,t,a=0)=>{try{for(;a<e.length;a++)e[a](...t)}finally{a<e.length&&Ps(e,t,a+1)}},Os=e=>e,Bs=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor)return!1;if(null!=e[Rs])return e[Rs](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let a=0;a<e.length;a++)if(e[a]!==t[a])return!1;break;case Set:if(e.size!==t.size)return!1;for(const a of e)if(!t.has(a))return!1;break;case Map:if(e.size!==t.size)return!1;for(const a of e.keys())if(!t.has(a)||!Bs(e.get(a),t.get(a)))return!1;break;case Object:if(Is(e)!==Is(t))return!1;for(const a in e)if(!Es(e,a)||!Bs(e[a],t[a]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(!Bs(e[a],t[a]))return!1;break;default:return!1}return!0},$s="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),js="undefined"!=typeof window&&"undefined"!=typeof document&&!$s;let Us;const zs=e=>(()=>{if(void 0===Us)if($s){Us=nr();const e=process.argv;let t=null;for(let a=0;a<e.length;a++){const i=e[a];"-"===i[0]?(null!==t&&Us.set(t,""),t=i):null!==t&&(Us.set(t,i),t=null)}null!==t&&Us.set(t,"")}else"object"==typeof location?(Us=nr(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,a]=e.split("=");Us.set(`--${Mr(t,"-")}`,a),Us.set(`-${Mr(t,"-")}`,a)}}))):Us=nr();return Us})().has(e),Ws=e=>Ns($s?process.env[e.toUpperCase().replaceAll("-","_")]:Ms.getItem(e)),Ys=e=>zs("--"+e)||null!==Ws(e);Ys("production");var Hs;const Gs=$s&&(Hs=process.env.FORCE_COLOR,["true","1","2"].includes(Hs))||!zs("--no-colors")&&!Ys("no-color")&&(!$s||process.stdout.isTTY)&&(!$s||zs("--color")||null!==Ws("COLORTERM")||(Ws("TERM")||"").includes("color")),qs=e=>new Uint8Array(e),Zs=js?e=>{let t="";for(let a=0;a<e.byteLength;a++)t+=Nr(e[a]);return btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),Js=js?e=>{const t=atob(e),a=qs(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);return a}:e=>{const t=Buffer.from(e,"base64");return((e,t,a)=>new Uint8Array(e,t,a))(t.buffer,t.byteOffset,t.byteLength)};class Ks{constructor(e,t){this.left=e,this.right=t}}const Xs=(e,t)=>new Ks(e,t);"undefined"!=typeof DOMParser&&new DOMParser;const Qs=Symbol,eo=Qs(),to=Qs(),ao=Qs(),io=Qs(),no=Qs(),ro=Qs(),so=Qs(),oo=Qs(),lo=Qs(),uo={[eo]:Xs("font-weight","bold"),[to]:Xs("font-weight","normal"),[ao]:Xs("color","blue"),[no]:Xs("color","green"),[io]:Xs("color","grey"),[ro]:Xs("color","red"),[so]:Xs("color","purple"),[oo]:Xs("color","orange"),[lo]:Xs("color","black")},co=Gs?e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[],a=[],i=nr();let n=[],r=0;for(;r<e.length;r++){const n=e[r],s=uo[n];if(void 0!==s)i.set(s.left,s.right);else{if(void 0===n)break;if(n.constructor!==String&&n.constructor!==Number)break;{const e=((e,t)=>{const a=[];for(const[i,n]of e)a.push(t(n,i));return a})(i,((e,t)=>`${t}:${e};`)).join("");r>0||e.length>0?(t.push("%c"+n),a.push(e)):t.push(n)}}}for(r>0&&(n=a,n.unshift(t.join("")));r<e.length;r++){const t=e[r];t instanceof Symbol||n.push(t)}return n}:e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[],a=[];let i=0;for(;i<e.length;i++){const a=e[i];if(void 0===a)break;if(a.constructor===String||a.constructor===Number)t.push(a);else if(a.constructor===Object)break}for(i>0&&a.push(t.join(""));i<e.length;i++){const t=e[i];t instanceof Symbol||a.push(t)}return a},po=or(),ho=e=>({[Symbol.iterator](){return this},next:e}),fo=(e,t)=>ho((()=>{const{done:a,value:i}=e.next();return{done:a,value:a?void 0:t(i)}}));class mo{constructor(e,t){this.clock=e,this.len=t}}class yo{constructor(){this.clients=new Map}}const go=(e,t,a)=>t.clients.forEach(((t,i)=>{const n=e.doc.store.clients.get(i);if(null!=n){const i=n[n.length-1],r=i.id.clock+i.length;for(let i=0,s=t[i];i<t.length&&s.clock<r;s=t[++i])ol(e,n,s.clock,s.len,a)}})),bo=(e,t)=>{const a=e.clients.get(t.client);return void 0!==a&&null!==((e,t)=>{let a=0,i=e.length-1;for(;a<=i;){const n=fr((a+i)/2),r=e[n],s=r.clock;if(s<=t){if(t<s+r.len)return n;a=n+1}else i=n-1}return null})(a,t.clock)},vo=e=>{e.clients.forEach((e=>{let t,a;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,a=1;t<e.length;t++){const i=e[a-1],n=e[t];i.clock+i.len>=n.clock?i.len=gr(i.len,n.clock+n.len-i.clock):(a<t&&(e[a]=n),a++)}e.length=a}))},_o=(e,t,a,i)=>{sr(e.clients,t,(()=>[])).push(new mo(a,i))},wo=e=>{const t=new yo;return e.clients.forEach(((e,a)=>{const i=[];for(let t=0;t<e.length;t++){const a=e[t];if(a.deleted){const n=a.id.clock;let r=a.length;if(t+1<e.length)for(let a=e[t+1];t+1<e.length&&a.deleted;a=e[1+ ++t])r+=a.length;i.push(new mo(n,r))}}i.length>0&&t.clients.set(a,i)})),t},Ao=(e,t)=>{Or(e.restEncoder,t.clients.size),cr(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,a])=>{e.resetDsCurVal(),Or(e.restEncoder,t);const i=a.length;Or(e.restEncoder,i);for(let t=0;t<i;t++){const i=a[t];e.writeDsClock(i.clock),e.writeDsLen(i.len)}}))},ko=e=>{const t=new yo,a=us(e.restDecoder);for(let i=0;i<a;i++){e.resetDsCurVal();const a=us(e.restDecoder),i=us(e.restDecoder);if(i>0){const n=sr(t.clients,a,(()=>[]));for(let t=0;t<i;t++)n.push(new mo(e.readDsClock(),e.readDsLen()))}}return t},So=(e,t,a)=>{const i=new yo,n=us(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();const n=us(e.restDecoder),r=us(e.restDecoder),s=a.clients.get(n)||[],o=el(a,n);for(let a=0;a<r;a++){const a=e.readDsClock(),r=a+e.readDsLen();if(a<o){o<r&&_o(i,n,o,r-o);let e=al(s,a),l=s[e];for(!l.deleted&&l.id.clock<a&&(s.splice(e+1,0,Wu(t,l,a-l.id.clock)),e++);e<s.length&&(l=s[e++],l.id.clock<r);)l.deleted||(r<l.id.clock+l.length&&s.splice(e,0,Wu(t,l,r-l.id.clock)),l.delete(t))}else _o(i,n,a,r-a)}}if(i.clients.size>0){const e=new Do;return Or(e.restEncoder,0),Ao(e,i),e.toUint8Array()}return null},No=_s;class xo extends pr{constructor({guid:e=As(),collectionid:t=null,gc:a=!0,gcFilter:i=()=>!0,meta:n=null,autoLoad:r=!1,shouldLoad:s=!0}={}){super(),this.gc=a,this.gcFilter=i,this.clientID=No(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Xo,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=s,this.autoLoad=r,this.meta=n,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Ss((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const o=()=>Ss((e=>{const t=a=>{void 0!==a&&!0!==a||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=o()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=o()}load(){const e=this._item;null===e||this.shouldLoad||hl(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(cr(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return hl(this,e,t)}get(e,t=Dl){const a=sr(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),i=a.constructor;if(t!==Dl&&i!==t){if(i===Dl){const i=new t;i._map=a._map,a._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=i})),i._start=a._start;for(let e=i._start;null!==e;e=e.right)e.parent=i;return i._length=a._length,this.share.set(e,i),i._integrate(this,null),i}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return a}getArray(e=""){return this.get(e,Xl)}getText(e=""){return this.get(e,yu)}getMap(e=""){return this.get(e,eu)}getXmlElement(e=""){return this.get(e,vu)}getXmlFragment(e=""){return this.get(e,bu)}toJSON(){const e={};return this.share.forEach(((t,a)=>{e[a]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,cr(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new xo({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,hl(e.parent.doc,(a=>{const i=t.doc;e.deleted||a.subdocsAdded.add(i),a.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class To{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return us(this.restDecoder)}readDsLen(){return us(this.restDecoder)}}class Mo extends To{readLeftID(){return Zo(us(this.restDecoder),us(this.restDecoder))}readRightID(){return Zo(us(this.restDecoder),us(this.restDecoder))}readClient(){return us(this.restDecoder)}readInfo(){return ls(this.restDecoder)}readString(){return ds(this.restDecoder)}readParentInfo(){return 1===us(this.restDecoder)}readTypeRef(){return us(this.restDecoder)}readLen(){return us(this.restDecoder)}readAny(){return fs(this.restDecoder)}readBuf(){return(e=>{const t=qs(e.byteLength);return t.set(e),t})(os(this.restDecoder))}readJSON(){return JSON.parse(ds(this.restDecoder))}readKey(){return ds(this.restDecoder)}}class Vo{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=us(this.restDecoder),this.dsCurrVal}readDsLen(){const e=us(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Co extends Vo{constructor(e){super(e),this.keys=[],us(e),this.keyClockDecoder=new gs(os(e)),this.clientDecoder=new ys(os(e)),this.leftClockDecoder=new gs(os(e)),this.rightClockDecoder=new gs(os(e)),this.infoDecoder=new ms(os(e),ls),this.stringDecoder=new bs(os(e)),this.parentInfoDecoder=new ms(os(e),ls),this.typeRefDecoder=new ys(os(e)),this.lenDecoder=new ys(os(e))}readLeftID(){return new Go(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new Go(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return fs(this.restDecoder)}readBuf(){return os(this.restDecoder)}readJSON(){return fs(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class Io{constructor(){this.restEncoder=Er()}toUint8Array(){return Lr(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Or(this.restEncoder,e)}writeDsLen(e){Or(this.restEncoder,e)}}class Fo extends Io{writeLeftID(e){Or(this.restEncoder,e.client),Or(this.restEncoder,e.clock)}writeRightID(e){Or(this.restEncoder,e.client),Or(this.restEncoder,e.clock)}writeClient(e){Or(this.restEncoder,e)}writeInfo(e){Pr(this.restEncoder,e)}writeString(e){Ur(this.restEncoder,e)}writeParentInfo(e){Or(this.restEncoder,e?1:0)}writeTypeRef(e){Or(this.restEncoder,e)}writeLen(e){Or(this.restEncoder,e)}writeAny(e){Gr(this.restEncoder,e)}writeBuf(e){Wr(this.restEncoder,e)}writeJSON(e){Ur(this.restEncoder,JSON.stringify(e))}writeKey(e){Ur(this.restEncoder,e)}}class Eo{constructor(){this.restEncoder=Er(),this.dsCurrVal=0}toUint8Array(){return Lr(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,Or(this.restEncoder,t)}writeDsLen(e){0===e&&as(),Or(this.restEncoder,e-1),this.dsCurrVal+=e}}class Do extends Eo{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Xr,this.clientEncoder=new Jr,this.leftClockEncoder=new Xr,this.rightClockEncoder=new Xr,this.infoEncoder=new qr(Pr),this.stringEncoder=new Qr,this.parentInfoEncoder=new qr(Pr),this.typeRefEncoder=new Jr,this.lenEncoder=new Jr}toUint8Array(){const e=Er();return Or(e,0),Wr(e,this.keyClockEncoder.toUint8Array()),Wr(e,this.clientEncoder.toUint8Array()),Wr(e,this.leftClockEncoder.toUint8Array()),Wr(e,this.rightClockEncoder.toUint8Array()),Wr(e,Lr(this.infoEncoder)),Wr(e,this.stringEncoder.toUint8Array()),Wr(e,Lr(this.parentInfoEncoder)),Wr(e,this.typeRefEncoder.toUint8Array()),Wr(e,this.lenEncoder.toUint8Array()),zr(e,Lr(this.restEncoder)),Lr(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){Gr(this.restEncoder,e)}writeBuf(e){Wr(this.restEncoder,e)}writeJSON(e){Gr(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const Lo=(e,t,a)=>{const i=new Map;a.forEach(((e,a)=>{el(t,a)>e&&i.set(a,e)})),Qo(t).forEach(((e,t)=>{a.has(t)||i.set(t,0)})),Or(e.restEncoder,i.size),cr(i.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([a,i])=>{((e,t,a,i)=>{i=gr(i,t[0].id.clock);const n=al(t,i);Or(e.restEncoder,t.length-n),e.writeClient(a),Or(e.restEncoder,i);const r=t[n];r.write(e,i-r.id.clock);for(let a=n+1;a<t.length;a++)t[a].write(e,0)})(e,t.clients.get(a),a,i)}))},Ro=(e,t,a,i=new Co(e))=>hl(t,(e=>{e.local=!1;let t=!1;const a=e.doc,n=a.store,r=((e,t)=>{const a=nr(),i=us(e.restDecoder);for(let n=0;n<i;n++){const i=us(e.restDecoder),n=new Array(i),r=e.readClient();let s=us(e.restDecoder);a.set(r,{i:0,refs:n});for(let a=0;a<i;a++){const i=e.readInfo();switch(31&i){case 0:{const t=e.readLen();n[a]=new Su(Zo(r,s),t),s+=t;break}case 10:{const t=us(e.restDecoder);n[a]=new qu(Zo(r,s),t),s+=t;break}default:{const o=!(192&i),l=new Yu(Zo(r,s),null,(i&wr)===wr?e.readLeftID():null,null,(i&_r)===_r?e.readRightID():null,o?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,!o||32&~i?null:e.readString(),Hu(e,i));n[a]=l,s+=l.length}}}}return a})(i,a),s=((e,t,a)=>{const i=[];let n=cr(a.keys()).sort(((e,t)=>e-t));if(0===n.length)return null;const r=()=>{if(0===n.length)return null;let e=a.get(n[n.length-1]);for(;e.refs.length===e.i;){if(n.pop(),!(n.length>0))return null;e=a.get(n[n.length-1])}return e};let s=r();if(null===s)return null;const o=new Xo,l=new Map,u=(e,t)=>{const a=l.get(e);(null==a||a>t)&&l.set(e,t)};let c=s.refs[s.i++];const d=new Map,p=()=>{for(const e of i){const t=e.id.client,i=a.get(t);i?(i.i--,o.clients.set(t,i.refs.slice(i.i)),a.delete(t),i.i=0,i.refs=[]):o.clients.set(t,[e]),n=n.filter((e=>e!==t))}i.length=0};for(;;){if(c.constructor!==qu){const n=sr(d,c.id.client,(()=>el(t,c.id.client)))-c.id.clock;if(n<0)i.push(c),u(c.id.client,c.id.clock-1),p();else{const r=c.getMissing(e,t);if(null!==r){i.push(c);const e=a.get(r)||{refs:[],i:0};if(e.refs.length!==e.i){c=e.refs[e.i++];continue}u(r,el(t,r)),p()}else(0===n||n<c.length)&&(c.integrate(e,n),d.set(c.id.client,c.id.clock+c.length))}}if(i.length>0)c=i.pop();else if(null!==s&&s.i<s.refs.length)c=s.refs[s.i++];else{if(s=r(),null===s)break;c=s.refs[s.i++]}}if(o.clients.size>0){const e=new Do;return Lo(e,o,new Map),Or(e.restEncoder,0),{missing:l,update:e.toUint8Array()}}return null})(e,n,r),o=n.pendingStructs;if(o){for(const[e,a]of o.missing)if(a<el(n,e)){t=!0;break}if(s){for(const[e,t]of s.missing){const a=o.missing.get(e);(null==a||a>t)&&o.missing.set(e,t)}o.update=bl([o.update,s.update])}}else n.pendingStructs=s;const l=So(i,e,n);if(n.pendingDs){const t=new Co(ss(n.pendingDs));us(t.restDecoder);const a=So(t,e,n);n.pendingDs=l&&a?bl([l,a]):l||a}else n.pendingDs=l;if(t){const t=n.pendingStructs.update;n.pendingStructs=null,Po(e.doc,t)}}),a,!1),Po=(e,t,a,i=Co)=>{const n=ss(t);Ro(n,e,a,new i(n))},Oo=(e,t=new Uint8Array([0]),a=new Do)=>{((e,t,a=new Map)=>{Lo(e,t.store,a),Ao(e,wo(t.store))})(a,e,Bo(t));const i=[a.toUint8Array()];if(e.store.pendingDs&&i.push(e.store.pendingDs),e.store.pendingStructs&&i.push(vl(e.store.pendingStructs.update,t)),i.length>1){if(a.constructor===Fo)return yl(i.map(((e,t)=>0===t?e:kl(e))));if(a.constructor===Do)return bl(i)}return i[0]},Bo=e=>(e=>{const t=new Map,a=us(e.restDecoder);for(let i=0;i<a;i++){const a=us(e.restDecoder),i=us(e.restDecoder);t.set(a,i)}return t})(new To(ss(e))),$o=(e,t)=>(Or(e.restEncoder,t.size),cr(t.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,a])=>{Or(e.restEncoder,t),Or(e.restEncoder,a)})),e),jo=(e,t=new Eo)=>(e instanceof Map?$o(t,e):((e,t)=>{$o(e,Qo(t.store))})(t,e),t.toUint8Array());class Uo{constructor(){this.l=[]}}const zo=()=>new Uo,Wo=(e,t)=>e.l.push(t),Yo=(e,t)=>{const a=e.l,i=a.length;e.l=a.filter((e=>t!==e)),i===e.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},Ho=(e,t,a)=>Ps(e.l,[t,a]);class Go{constructor(e,t){this.client=e,this.clock=t}}const qo=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,Zo=(e,t)=>new Go(e,t),Jo=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!bo(t.ds,e.id),Ko=(e,t)=>{const a=sr(e.meta,Ko,or),i=e.doc.store;a.has(t)||(t.sv.forEach(((t,a)=>{t<el(i,a)&&rl(e,Zo(a,t))})),go(e,t.ds,(e=>{})),a.add(t))};class Xo{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Qo=e=>{const t=new Map;return e.clients.forEach(((e,a)=>{const i=e[e.length-1];t.set(a,i.id.clock+i.length)})),t},el=(e,t)=>{const a=e.clients.get(t);if(void 0===a)return 0;const i=a[a.length-1];return i.id.clock+i.length},tl=(e,t)=>{let a=e.clients.get(t.id.client);if(void 0===a)a=[],e.clients.set(t.id.client,a);else{const e=a[a.length-1];if(e.id.clock+e.length!==t.id.clock)throw as()}a.push(t)},al=(e,t)=>{let a=0,i=e.length-1,n=e[i],r=n.id.clock;if(r===t)return i;let s=fr(t/(r+n.length-1)*i);for(;a<=i;){if(n=e[s],r=n.id.clock,r<=t){if(t<r+n.length)return s;a=s+1}else i=s-1;s=fr((a+i)/2)}throw as()},il=(e,t)=>{const a=e.clients.get(t.client);return a[al(a,t.clock)]},nl=(e,t,a)=>{const i=al(t,a),n=t[i];return n.id.clock<a&&n instanceof Yu?(t.splice(i+1,0,Wu(e,n,a-n.id.clock)),i+1):i},rl=(e,t)=>{const a=e.doc.store.clients.get(t.client);return a[nl(e,a,t.clock)]},sl=(e,t,a)=>{const i=t.clients.get(a.client),n=al(i,a.clock),r=i[n];return a.clock!==r.id.clock+r.length-1&&r.constructor!==Su&&i.splice(n+1,0,Wu(e,r,a.clock-r.id.clock+1)),r},ol=(e,t,a,i,n)=>{if(0===i)return;const r=a+i;let s,o=nl(e,t,a);do{s=t[o++],r<s.id.clock+s.length&&nl(e,t,r),n(s)}while(o<t.length&&t[o].id.clock<r)};class ll{constructor(e,t,a){this.doc=e,this.deleteSet=new yo,this.beforeState=Qo(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=a,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const ul=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[a,i]of e)if(t(i,a))return!0;return!1})(t.afterState,((e,a)=>t.beforeState.get(a)!==e)))&&(vo(t.deleteSet),((e,t)=>{Lo(e,t.doc.store,t.beforeState)})(e,t),Ao(e,t.deleteSet),!0),cl=(e,t,a)=>{const i=t._item;(null===i||i.id.clock<(e.beforeState.get(i.id.client)||0)&&!i.deleted)&&sr(e.changed,t,or).add(a)},dl=(e,t)=>{let a=e[t],i=e[t-1],n=t;for(;n>0&&(i.deleted===a.deleted&&i.constructor===a.constructor&&i.mergeWith(a));a=i,i=e[--n-1])a instanceof Yu&&null!==a.parentSub&&a.parent._map.get(a.parentSub)===a&&a.parent._map.set(a.parentSub,i);const r=t-n;return r&&e.splice(t+1-r,r),r},pl=(e,t)=>{if(t<e.length){const a=e[t],i=a.doc,n=i.store,r=a.deleteSet,s=a._mergeStructs;try{vo(r),a.afterState=Qo(a.doc.store),i.emit("beforeObserverCalls",[a,i]);const e=[];a.changed.forEach(((t,i)=>e.push((()=>{null!==i._item&&i._item.deleted||i._callObserver(a,t)})))),e.push((()=>{a.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),Ho(t._dEH,e,a))}))})),e.push((()=>i.emit("afterTransaction",[a,i]))),Ps(e,[]),a._needFormattingCleanup&&hu(a)}finally{i.gc&&((e,t,a)=>{for(const[i,n]of e.clients.entries()){const e=t.clients.get(i);for(let i=n.length-1;i>=0;i--){const r=n[i],s=r.clock+r.len;for(let i=al(e,r.clock),n=e[i];i<e.length&&n.id.clock<s;n=e[++i]){const n=e[i];if(r.clock+r.len<=n.id.clock)break;n instanceof Yu&&n.deleted&&!n.keep&&a(n)&&n.gc(t,!1)}}}})(r,n,i.gcFilter),((e,t)=>{e.clients.forEach(((e,a)=>{const i=t.clients.get(a);for(let t=e.length-1;t>=0;t--){const a=e[t];for(let e=yr(i.length-1,1+al(i,a.clock+a.len-1)),t=i[e];e>0&&t.id.clock>=a.clock;t=i[e])e-=1+dl(i,e)}}))})(r,n),a.afterState.forEach(((e,t)=>{const i=a.beforeState.get(t)||0;if(i!==e){const e=n.clients.get(t),a=gr(al(e,i),1);for(let t=e.length-1;t>=a;)t-=1+dl(e,t)}}));for(let e=s.length-1;e>=0;e--){const{client:t,clock:a}=s[e].id,i=n.clients.get(t),r=al(i,a);r+1<i.length&&dl(i,r+1)>1||r>0&&dl(i,r)}if(a.local||a.afterState.get(i.clientID)===a.beforeState.get(i.clientID)||(((...e)=>{console.log(...co(e)),po.forEach((t=>t.print(e)))})(oo,eo,"[yjs] ",to,ro,"Changed the client-id because another client seems to be using it."),i.clientID=No()),i.emit("afterTransactionCleanup",[a,i]),i._observers.has("update")){const e=new Fo;ul(e,a)&&i.emit("update",[e.toUint8Array(),a.origin,i,a])}if(i._observers.has("updateV2")){const e=new Do;ul(e,a)&&i.emit("updateV2",[e.toUint8Array(),a.origin,i,a])}const{subdocsAdded:o,subdocsLoaded:l,subdocsRemoved:u}=a;(o.size>0||u.size>0||l.size>0)&&(o.forEach((e=>{e.clientID=i.clientID,null==e.collectionid&&(e.collectionid=i.collectionid),i.subdocs.add(e)})),u.forEach((e=>i.subdocs.delete(e))),i.emit("subdocs",[{loaded:l,added:o,removed:u},i,a]),u.forEach((e=>e.destroy()))),e.length<=t+1?(i._transactionCleanups=[],i.emit("afterAllTransactions",[i,e])):pl(e,t+1)}}},hl=(e,t,a=null,i=!0)=>{const n=e._transactionCleanups;let r=!1,s=null;null===e._transaction&&(r=!0,e._transaction=new ll(e,a,i),n.push(e._transaction),1===n.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{s=t(e._transaction)}finally{if(r){const t=e._transaction===n[0];e._transaction=null,t&&pl(n,0)}}return s};class fl{constructor(e,t){this.gen=function*(e){const t=us(e.restDecoder);for(let a=0;a<t;a++){const t=us(e.restDecoder),a=e.readClient();let i=us(e.restDecoder);for(let n=0;n<t;n++){const t=e.readInfo();if(10===t){const t=us(e.restDecoder);yield new qu(Zo(a,i),t),i+=t}else if(31&t){const n=!(192&t),r=new Yu(Zo(a,i),null,(t&wr)===wr?e.readLeftID():null,null,(t&_r)===_r?e.readRightID():null,n?e.readParentInfo()?e.readString():e.readLeftID():null,!n||32&~t?null:e.readString(),Hu(e,t));yield r,i+=r.length}else{const t=e.readLen();yield new Su(Zo(a,i),t),i+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===qu);return this.curr}}class ml{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const yl=e=>bl(e,Mo,Fo),gl=(e,t)=>{if(e.constructor===Su){const{client:a,clock:i}=e.id;return new Su(Zo(a,i+t),e.length-t)}if(e.constructor===qu){const{client:a,clock:i}=e.id;return new qu(Zo(a,i+t),e.length-t)}{const a=e,{client:i,clock:n}=a.id;return new Yu(Zo(i,n+t),null,Zo(i,n+t-1),null,a.rightOrigin,a.parent,a.parentSub,a.content.splice(t))}},bl=(e,t=Co,a=Do)=>{if(1===e.length)return e[0];const i=e.map((e=>new t(ss(e))));let n=i.map((e=>new fl(e,!0))),r=null;const s=new a,o=new ml(s);for(;n=n.filter((e=>null!==e.curr)),n.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const a=e.curr.id.clock-t.curr.id.clock;return 0===a?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===qu?1:-1:a}return t.curr.id.client-e.curr.id.client})),0!==n.length;){const e=n[0],t=e.curr.id.client;if(null!==r){let a=e.curr,i=!1;for(;null!==a&&a.id.clock+a.length<=r.struct.id.clock+r.struct.length&&a.id.client>=r.struct.id.client;)a=e.next(),i=!0;if(null===a||a.id.client!==t||i&&a.id.clock>r.struct.id.clock+r.struct.length)continue;if(t!==r.struct.id.client)wl(o,r.struct,r.offset),r={struct:a,offset:0},e.next();else if(r.struct.id.clock+r.struct.length<a.id.clock)if(r.struct.constructor===qu)r.struct.length=a.id.clock+a.length-r.struct.id.clock;else{wl(o,r.struct,r.offset);const e=a.id.clock-r.struct.id.clock-r.struct.length;r={struct:new qu(Zo(t,r.struct.id.clock+r.struct.length),e),offset:0}}else{const t=r.struct.id.clock+r.struct.length-a.id.clock;t>0&&(r.struct.constructor===qu?r.struct.length-=t:a=gl(a,t)),r.struct.mergeWith(a)||(wl(o,r.struct,r.offset),r={struct:a,offset:0},e.next())}}else r={struct:e.curr,offset:0},e.next();for(let a=e.curr;null!==a&&a.id.client===t&&a.id.clock===r.struct.id.clock+r.struct.length&&a.constructor!==qu;a=e.next())wl(o,r.struct,r.offset),r={struct:a,offset:0}}null!==r&&(wl(o,r.struct,r.offset),r=null),Al(o);const l=(e=>{const t=new yo;for(let a=0;a<e.length;a++)e[a].clients.forEach(((i,n)=>{if(!t.clients.has(n)){const r=i.slice();for(let t=a+1;t<e.length;t++)ur(r,e[t].clients.get(n)||[]);t.clients.set(n,r)}}));return vo(t),t})(i.map((e=>ko(e))));return Ao(s,l),s.toUint8Array()},vl=(e,t,a=Co,i=Do)=>{const n=Bo(t),r=new i,s=new ml(r),o=new a(ss(e)),l=new fl(o,!1);for(;l.curr;){const e=l.curr,t=e.id.client,a=n.get(t)||0;if(l.curr.constructor!==qu)if(e.id.clock+e.length>a)for(wl(s,e,gr(a-e.id.clock,0)),l.next();l.curr&&l.curr.id.client===t;)wl(s,l.curr,0),l.next();else for(;l.curr&&l.curr.id.client===t&&l.curr.id.clock+l.curr.length<=a;)l.next();else l.next()}Al(s);const u=ko(o);return Ao(r,u),r.toUint8Array()},_l=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Lr(e.encoder.restEncoder)}),e.encoder.restEncoder=Er(),e.written=0)},wl=(e,t,a)=>{e.written>0&&e.currClient!==t.id.client&&_l(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Or(e.encoder.restEncoder,t.id.clock+a)),t.write(e.encoder,a),e.written++},Al=e=>{_l(e);const t=e.encoder.restEncoder;Or(t,e.clientStructs.length);for(let a=0;a<e.clientStructs.length;a++){const i=e.clientStructs[a];Or(t,i.written),zr(t,i.restEncoder)}},kl=e=>((e,t,a,i)=>{const n=new a(ss(e)),r=new fl(n,!1),s=new i,o=new ml(s);for(let e=r.curr;null!==e;e=r.next())wl(o,t(e),0);Al(o);const l=ko(n);return Ao(s,l),s.toUint8Array()})(e,Os,Co,Fo),Sl="You must not compute changes after the event-handler fired.";class Nl{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=xl(this.currentTarget,this.target))}deletes(e){return bo(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw es(Sl);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((a=>{if(null!==a){const i=t._map.get(a);let n,r;if(this.adds(i)){let e=i.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(i)){if(null===e||!this.deletes(e))return;n="delete",r=lr(e.content.getContent())}else null!==e&&this.deletes(e)?(n="update",r=lr(e.content.getContent())):(n="add",r=void 0)}else{if(!this.deletes(i))return;n="delete",r=lr(i.content.getContent())}e.set(a,{action:n,oldValue:r})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw es(Sl);const t=this.target,a=or(),i=or(),n=[];e={added:a,deleted:i,delta:n,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const r=()=>{e&&n.push(e)};for(let n=t._start;null!==n;n=n.right)n.deleted?this.deletes(n)&&!this.adds(n)&&(null!==e&&void 0!==e.delete||(r(),e={delete:0}),e.delete+=n.length,i.add(n)):this.adds(n)?(null!==e&&void 0!==e.insert||(r(),e={insert:[]}),e.insert=e.insert.concat(n.content.getContent()),a.add(n)):(null!==e&&void 0!==e.retain||(r(),e={retain:0}),e.retain+=n.length);null!==e&&void 0===e.retain&&r()}this._changes=e}return e}}const xl=(e,t)=>{const a=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)a.unshift(t._item.parentSub);else{let e=0,i=t._item.parent._start;for(;i!==t._item&&null!==i;)!i.deleted&&i.countable&&(e+=i.length),i=i.right;a.unshift(e)}t=t._item.parent}return a},Tl=()=>{((...e)=>{console.warn(...co(e)),e.unshift(oo),po.forEach((t=>t.print(e)))})("Invalid access: Add Yjs type to a document before reading data.")};let Ml=0;class Vl{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Ml++}}const Cl=(e,t,a)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=a,e.timestamp=Ml++},Il=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const a=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,a)=>mr(t-e.index)<mr(t-a.index)?e:a));let i=e._start,n=0;for(null!==a&&(i=a.p,n=a.index,(e=>{e.timestamp=Ml++})(a));null!==i.right&&n<t;){if(!i.deleted&&i.countable){if(t<n+i.length)break;n+=i.length}i=i.right}for(;null!==i.left&&n>t;)i=i.left,!i.deleted&&i.countable&&(n-=i.length);for(;null!==i.left&&i.left.id.client===i.id.client&&i.left.id.clock+i.left.length===i.id.clock;)i=i.left,!i.deleted&&i.countable&&(n-=i.length);return null!==a&&mr(a.index-n)<i.parent.length/80?(Cl(a,i,n),a):((e,t,a)=>{if(e.length>=80){const i=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return Cl(i,t,a),i}{const i=new Vl(t,a);return e.push(i),i}})(e._searchMarker,i,n)},Fl=(e,t,a)=>{for(let i=e.length-1;i>=0;i--){const n=e[i];if(a>0){let t=n.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(n.index-=t.length);if(null===t||!0===t.marker){e.splice(i,1);continue}n.p=t,t.marker=!0}(t<n.index||a>0&&t===n.index)&&(n.index=gr(t,n.index+a))}},El=(e,t,a)=>{const i=e,n=t.changedParentTypes;for(;sr(n,e,(()=>[])).push(a),null!==e._item;)e=e._item.parent;Ho(i._eH,a,t)};class Dl{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=zo(),this._dEH=zo(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ts()}clone(){throw ts()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){Wo(this._eH,e)}observeDeep(e){Wo(this._dEH,e)}unobserve(e){Yo(this._eH,e)}unobserveDeep(e){Yo(this._dEH,e)}toJSON(){}}const Ll=(e,t,a)=>{e.doc??Tl(),t<0&&(t=e._length+t),a<0&&(a=e._length+a);let i=a-t;const n=[];let r=e._start;for(;null!==r&&i>0;){if(r.countable&&!r.deleted){const e=r.content.getContent();if(e.length<=t)t-=e.length;else{for(let a=t;a<e.length&&i>0;a++)n.push(e[a]),i--;t=0}}r=r.right}return n},Rl=e=>{e.doc??Tl();const t=[];let a=e._start;for(;null!==a;){if(a.countable&&!a.deleted){const e=a.content.getContent();for(let a=0;a<e.length;a++)t.push(e[a])}a=a.right}return t},Pl=(e,t)=>{let a=0,i=e._start;for(e.doc??Tl();null!==i;){if(i.countable&&!i.deleted){const n=i.content.getContent();for(let i=0;i<n.length;i++)t(n[i],a++,e)}i=i.right}},Ol=(e,t)=>{const a=[];return Pl(e,((i,n)=>{a.push(t(i,n,e))})),a},Bl=e=>{let t=e._start,a=null,i=0;return{[Symbol.iterator](){return this},next:()=>{if(null===a){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};a=t.content.getContent(),i=0,t=t.right}const e=a[i++];return a.length<=i&&(a=null),{done:!1,value:e}}}},$l=(e,t)=>{e.doc??Tl();const a=Il(e,t);let i=e._start;for(null!==a&&(i=a.p,t-=a.index);null!==i;i=i.right)if(!i.deleted&&i.countable){if(t<i.length)return i.content.getContent()[t];t-=i.length}},jl=(e,t,a,i)=>{let n=a;const r=e.doc,s=r.clientID,o=r.store,l=null===a?t._start:a.right;let u=[];const c=()=>{u.length>0&&(n=new Yu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Eu(u)),n.integrate(e,0),u=[])};i.forEach((a=>{if(null===a)u.push(a);else switch(a.constructor){case Number:case Object:case Boolean:case Array:case String:u.push(a);break;default:switch(c(),a.constructor){case Uint8Array:case ArrayBuffer:n=new Yu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Nu(new Uint8Array(a))),n.integrate(e,0);break;case xo:n=new Yu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new Mu(a)),n.integrate(e,0);break;default:if(!(a instanceof Dl))throw new Error("Unexpected content type in insert operation");n=new Yu(Zo(s,el(o,s)),n,n&&n.lastId,l,l&&l.id,t,null,new zu(a)),n.integrate(e,0)}}})),c()},Ul=()=>es("Length exceeded!"),zl=(e,t,a,i)=>{if(a>t._length)throw Ul();if(0===a)return t._searchMarker&&Fl(t._searchMarker,a,i.length),jl(e,t,null,i);const n=a,r=Il(t,a);let s=t._start;for(null!==r&&(s=r.p,0===(a-=r.index)&&(s=s.prev,a+=s&&s.countable&&!s.deleted?s.length:0));null!==s;s=s.right)if(!s.deleted&&s.countable){if(a<=s.length){a<s.length&&rl(e,Zo(s.id.client,s.id.clock+a));break}a-=s.length}return t._searchMarker&&Fl(t._searchMarker,n,i.length),jl(e,t,s,i)},Wl=(e,t,a,i)=>{if(0===i)return;const n=a,r=i,s=Il(t,a);let o=t._start;for(null!==s&&(o=s.p,a-=s.index);null!==o&&a>0;o=o.right)!o.deleted&&o.countable&&(a<o.length&&rl(e,Zo(o.id.client,o.id.clock+a)),a-=o.length);for(;i>0&&null!==o;)o.deleted||(i<o.length&&rl(e,Zo(o.id.client,o.id.clock+i)),o.delete(e),i-=o.length),o=o.right;if(i>0)throw Ul();t._searchMarker&&Fl(t._searchMarker,n,-r+i)},Yl=(e,t,a)=>{const i=t._map.get(a);void 0!==i&&i.delete(e)},Hl=(e,t,a,i)=>{const n=t._map.get(a)||null,r=e.doc,s=r.clientID;let o;if(null==i)o=new Eu([i]);else switch(i.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:o=new Eu([i]);break;case Uint8Array:o=new Nu(i);break;case xo:o=new Mu(i);break;default:if(!(i instanceof Dl))throw new Error("Unexpected content type");o=new zu(i)}new Yu(Zo(s,el(r.store,s)),n,n&&n.lastId,null,null,t,a,o).integrate(e,0)},Gl=(e,t)=>{e.doc??Tl();const a=e._map.get(t);return void 0===a||a.deleted?void 0:a.content.getContent()[a.length-1]},ql=e=>{const t={};return e.doc??Tl(),e._map.forEach(((e,a)=>{e.deleted||(t[a]=e.content.getContent()[e.length-1])})),t},Zl=(e,t)=>{e.doc??Tl();const a=e._map.get(t);return void 0!==a&&!a.deleted},Jl=e=>{return e.doc??Tl(),t=e._map.entries(),a=e=>!e[1].deleted,ho((()=>{let e;do{e=t.next()}while(!e.done&&!a(e.value));return e}));var t,a};class Kl extends Nl{}class Xl extends Dl{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Xl;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Xl}clone(){const e=new Xl;return e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}get length(){return this.doc??Tl(),this._length}_callObserver(e,t){super._callObserver(e,t),El(this,e,new Kl(this,e))}insert(e,t){null!==this.doc?hl(this.doc,(a=>{zl(a,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?hl(this.doc,(t=>{((e,t,a)=>{let i=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(i)for(;i.right;)i=i.right;jl(e,t,i,a)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?hl(this.doc,(a=>{Wl(a,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return $l(this,e)}toArray(){return Rl(this)}slice(e=0,t=this.length){return Ll(this,e,t)}toJSON(){return this.map((e=>e instanceof Dl?e.toJSON():e))}map(e){return Ol(this,e)}forEach(e){Pl(this,e)}[Symbol.iterator](){return Bl(this)}_write(e){e.writeTypeRef(Ru)}}class Ql extends Nl{constructor(e,t,a){super(e,t),this.keysChanged=a}}class eu extends Dl{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new eu}clone(){const e=new eu;return this.forEach(((t,a)=>{e.set(a,t instanceof Dl?t.clone():t)})),e}_callObserver(e,t){El(this,e,new Ql(this,e,t))}toJSON(){this.doc??Tl();const e={};return this._map.forEach(((t,a)=>{if(!t.deleted){const i=t.content.getContent()[t.length-1];e[a]=i instanceof Dl?i.toJSON():i}})),e}get size(){return[...Jl(this)].length}keys(){return fo(Jl(this),(e=>e[0]))}values(){return fo(Jl(this),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return fo(Jl(this),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this.doc??Tl(),this._map.forEach(((t,a)=>{t.deleted||e(t.content.getContent()[t.length-1],a,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?hl(this.doc,(t=>{Yl(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?hl(this.doc,(a=>{Hl(a,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return Gl(this,e)}has(e){return Zl(this,e)}clear(){null!==this.doc?hl(this.doc,(e=>{this.forEach((function(t,a,i){Yl(e,i,a)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Pu)}}const tu=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Fs(e)===Fs(t)&&((e,t)=>{for(const a in e)if(!t(e[a],a))return!1;return!0})(e,((e,a)=>(void 0!==e||Es(t,a))&&t[a]===e)))(e,t);class au{constructor(e,t,a,i){this.left=e,this.right=t,this.index=a,this.currentAttributes=i}forward(){if(null===this.right&&as(),this.right.content.constructor===Cu)this.right.deleted||su(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const iu=(e,t,a)=>{for(;null!==t.right&&a>0;){if(t.right.content.constructor===Cu)t.right.deleted||su(t.currentAttributes,t.right.content);else t.right.deleted||(a<t.right.length&&rl(e,Zo(t.right.id.client,t.right.id.clock+a)),t.index+=t.right.length,a-=t.right.length);t.left=t.right,t.right=t.right.right}return t},nu=(e,t,a,i)=>{const n=new Map,r=i?Il(t,a):null;if(r){const t=new au(r.p.left,r.p,r.index,n);return iu(e,t,a-r.index)}{const i=new au(null,t._start,0,n);return iu(e,i,a)}},ru=(e,t,a,i)=>{for(;null!==a.right&&(!0===a.right.deleted||a.right.content.constructor===Cu&&tu(i.get(a.right.content.key),a.right.content.value));)a.right.deleted||i.delete(a.right.content.key),a.forward();const n=e.doc,r=n.clientID;i.forEach(((i,s)=>{const o=a.left,l=a.right,u=new Yu(Zo(r,el(n.store,r)),o,o&&o.lastId,l,l&&l.id,t,null,new Cu(s,i));u.integrate(e,0),a.right=u,a.forward()}))},su=(e,t)=>{const{key:a,value:i}=t;null===i?e.delete(a):e.set(a,i)},ou=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Cu&&tu(t[e.right.content.key]??null,e.right.content.value));)e.forward()},lu=(e,t,a,i)=>{const n=e.doc,r=n.clientID,s=new Map;for(const o in i){const l=i[o],u=a.currentAttributes.get(o)??null;if(!tu(u,l)){s.set(o,u);const{left:i,right:c}=a;a.right=new Yu(Zo(r,el(n.store,r)),i,i&&i.lastId,c,c&&c.id,t,null,new Cu(o,l)),a.right.integrate(e,0),a.forward()}}return s},uu=(e,t,a,i,n)=>{a.currentAttributes.forEach(((e,t)=>{void 0===n[t]&&(n[t]=null)}));const r=e.doc,s=r.clientID;ou(a,n);const o=lu(e,t,a,n),l=i.constructor===String?new Du(i):i instanceof Dl?new zu(i):new Vu(i);let{left:u,right:c,index:d}=a;t._searchMarker&&Fl(t._searchMarker,a.index,l.getLength()),c=new Yu(Zo(s,el(r.store,s)),u,u&&u.lastId,c,c&&c.id,t,null,l),c.integrate(e,0),a.right=c,a.index=d,a.forward(),ru(e,t,a,o)},cu=(e,t,a,i,n)=>{const r=e.doc,s=r.clientID;ou(a,n);const o=lu(e,t,a,n);e:for(;null!==a.right&&(i>0||o.size>0&&(a.right.deleted||a.right.content.constructor===Cu));){if(!a.right.deleted)switch(a.right.content.constructor){case Cu:{const{key:t,value:r}=a.right.content,s=n[t];if(void 0!==s){if(tu(s,r))o.delete(t);else{if(0===i)break e;o.set(t,r)}a.right.delete(e)}else a.currentAttributes.set(t,r);break}default:i<a.right.length&&rl(e,Zo(a.right.id.client,a.right.id.clock+i)),i-=a.right.length}a.forward()}if(i>0){let n="";for(;i>0;i--)n+="\n";a.right=new Yu(Zo(s,el(r.store,s)),a.left,a.left&&a.left.lastId,a.right,a.right&&a.right.id,t,null,new Du(n)),a.right.integrate(e,0),a.forward()}ru(e,t,a,o)},du=(e,t,a,i,n)=>{let r=t;const s=nr();for(;r&&(!r.countable||r.deleted);){if(!r.deleted&&r.content.constructor===Cu){const e=r.content;s.set(e.key,e)}r=r.right}let o=0,l=!1;for(;t!==r;){if(a===t&&(l=!0),!t.deleted){const a=t.content;switch(a.constructor){case Cu:{const{key:r,value:u}=a,c=i.get(r)??null;s.get(r)===a&&c!==u||(t.delete(e),o++,l||(n.get(r)??null)!==u||c===u||(null===c?n.delete(r):n.set(r,c))),l||t.deleted||su(n,a);break}}}t=t.right}return o},pu=e=>{let t=0;return hl(e.doc,(a=>{let i=e._start,n=e._start,r=nr();const s=rr(r);for(;n;){if(!1===n.deleted)if(n.content.constructor===Cu)su(s,n.content);else t+=du(a,i,n,r,s),r=rr(s),i=n;n=n.right}})),t},hu=e=>{const t=new Set,a=e.doc;for(const[i,n]of e.afterState.entries()){const r=e.beforeState.get(i)||0;n!==r&&ol(e,a.store.clients.get(i),r,n,(e=>{e.deleted||e.content.constructor!==Cu||e.constructor===Su||t.add(e.parent)}))}hl(a,(a=>{go(e,e.deleteSet,(e=>{if(e instanceof Su||!e.parent._hasFormatting||t.has(e.parent))return;const i=e.parent;e.content.constructor===Cu?t.add(i):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const a=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===Cu){const i=t.content.key;a.has(i)?t.delete(e):a.add(i)}t=t.left}})(a,e)}));for(const e of t)pu(e)}))},fu=(e,t,a)=>{const i=a,n=rr(t.currentAttributes),r=t.right;for(;a>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case zu:case Vu:case Du:a<t.right.length&&rl(e,Zo(t.right.id.client,t.right.id.clock+a)),a-=t.right.length,t.right.delete(e)}t.forward()}r&&du(e,r,t.right,n,t.currentAttributes);const s=(t.left||t.right).parent;return s._searchMarker&&Fl(s._searchMarker,t.index,-i+a),t};class mu extends Nl{constructor(e,t,a){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,a.forEach((e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=this.target.doc,t=[];hl(e,(e=>{const a=new Map,i=new Map;let n=this.target._start,r=null;const s={};let o="",l=0,u=0;const c=()=>{if(null!==r){let e=null;switch(r){case"delete":u>0&&(e={delete:u}),u=0;break;case"insert":("object"==typeof o||o.length>0)&&(e={insert:o},a.size>0&&(e.attributes={},a.forEach(((t,a)=>{null!==t&&(e.attributes[a]=t)})))),o="";break;case"retain":l>0&&(e={retain:l},(e=>{for(const t in e)return!1;return!0})(s)||(e.attributes=Vs({},s))),l=0}e&&t.push(e),r=null}};for(;null!==n;){switch(n.content.constructor){case zu:case Vu:this.adds(n)?this.deletes(n)||(c(),r="insert",o=n.content.getContent()[0],c()):this.deletes(n)?("delete"!==r&&(c(),r="delete"),u+=1):n.deleted||("retain"!==r&&(c(),r="retain"),l+=1);break;case Du:this.adds(n)?this.deletes(n)||("insert"!==r&&(c(),r="insert"),o+=n.content.str):this.deletes(n)?("delete"!==r&&(c(),r="delete"),u+=n.length):n.deleted||("retain"!==r&&(c(),r="retain"),l+=n.length);break;case Cu:{const{key:t,value:o}=n.content;if(this.adds(n)){if(!this.deletes(n)){const l=a.get(t)??null;tu(l,o)?null!==o&&n.delete(e):("retain"===r&&c(),tu(o,i.get(t)??null)?delete s[t]:s[t]=o)}}else if(this.deletes(n)){i.set(t,o);const e=a.get(t)??null;tu(e,o)||("retain"===r&&c(),s[t]=e)}else if(!n.deleted){i.set(t,o);const a=s[t];void 0!==a&&(tu(a,o)?null!==a&&n.delete(e):("retain"===r&&c(),null===o?delete s[t]:s[t]=o))}n.deleted||("insert"===r&&c(),su(a,n.content));break}}n=n.right}for(c();t.length>0;){const e=t[t.length-1];if(void 0===e.retain||void 0!==e.attributes)break;t.pop()}})),this._delta=t}return this._delta}}class yu extends Dl{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Tl(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){console.error(e)}this._pending=null}_copy(){return new yu}clone(){const e=new yu;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const a=new mu(this,e,t);El(this,e,a),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Tl();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Du&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?hl(this.doc,(a=>{const i=new au(null,this._start,0,new Map);for(let n=0;n<e.length;n++){const r=e[n];if(void 0!==r.insert){const s=t||"string"!=typeof r.insert||n!==e.length-1||null!==i.right||"\n"!==r.insert.slice(-1)?r.insert:r.insert.slice(0,-1);("string"!=typeof s||s.length>0)&&uu(a,this,i,s,r.attributes||{})}else void 0!==r.retain?cu(a,this,i,r.retain,r.attributes||{}):void 0!==r.delete&&fu(a,i,r.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,a){this.doc??Tl();const i=[],n=new Map,r=this.doc;let s="",o=this._start;function l(){if(s.length>0){const e={};let t=!1;n.forEach(((a,i)=>{t=!0,e[i]=a}));const a={insert:s};t&&(a.attributes=e),i.push(a),s=""}}const u=()=>{for(;null!==o;){if(Jo(o,e)||void 0!==t&&Jo(o,t))switch(o.content.constructor){case Du:{const i=n.get("ychange");void 0===e||Jo(o,e)?void 0===t||Jo(o,t)?void 0!==i&&(l(),n.delete("ychange")):void 0!==i&&i.user===o.id.client&&"added"===i.type||(l(),n.set("ychange",a?a("added",o.id):{type:"added"})):void 0!==i&&i.user===o.id.client&&"removed"===i.type||(l(),n.set("ychange",a?a("removed",o.id):{type:"removed"})),s+=o.content.str;break}case zu:case Vu:{l();const e={insert:o.content.getContent()[0]};if(n.size>0){const t={};e.attributes=t,n.forEach(((e,a)=>{t[a]=e}))}i.push(e);break}case Cu:Jo(o,e)&&(l(),su(n,o.content))}o=o.right}l()};return e||t?hl(r,(a=>{e&&Ko(a,e),t&&Ko(a,t),u()}),"cleanup"):u(),i}insert(e,t,a){if(t.length<=0)return;const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!a);a||(a={},n.currentAttributes.forEach(((e,t)=>{a[t]=e}))),uu(i,this,n,t,a)})):this._pending.push((()=>this.insert(e,t,a)))}insertEmbed(e,t,a){const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!a);uu(i,this,n,t,a||{})})):this._pending.push((()=>this.insertEmbed(e,t,a||{})))}delete(e,t){if(0===t)return;const a=this.doc;null!==a?hl(a,(a=>{fu(a,nu(a,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,a){if(0===t)return;const i=this.doc;null!==i?hl(i,(i=>{const n=nu(i,this,e,!1);null!==n.right&&cu(i,this,n,t,a)})):this._pending.push((()=>this.format(e,t,a)))}removeAttribute(e){null!==this.doc?hl(this.doc,(t=>{Yl(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?hl(this.doc,(a=>{Hl(a,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return Gl(this,e)}getAttributes(){return ql(this)}_write(e){e.writeTypeRef(Ou)}}class gu{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Tl()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==vu&&t.constructor!==bu||null===t._start)for(;null!==e;){const t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class bu extends Dl{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new bu}clone(){const e=new bu;return e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}get length(){return this.doc??Tl(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new gu(this,e)}querySelector(e){e=e.toUpperCase();const t=new gu(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),cr(new gu(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){El(this,e,new _u(this,t,e))}toString(){return Ol(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},a){const i=e.createDocumentFragment();return void 0!==a&&a._createAssociation(i,this),Pl(this,(n=>{i.insertBefore(n.toDOM(e,t,a),null)})),i}insert(e,t){null!==this.doc?hl(this.doc,(a=>{zl(a,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)hl(this.doc,(a=>{const i=e&&e instanceof Dl?e._item:e;jl(a,this,i,t)}));else{const a=this._prelimContent,i=null===e?0:a.findIndex((t=>t===e))+1;if(0===i&&null!==e)throw es("Reference item not found");a.splice(i,0,...t)}}delete(e,t=1){null!==this.doc?hl(this.doc,(a=>{Wl(a,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return Rl(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return $l(this,e)}slice(e=0,t=this.length){return Ll(this,e,t)}forEach(e){Pl(this,e)}_write(e){e.writeTypeRef($u)}}class vu extends bu{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new vu(this.nodeName)}clone(){const e=new vu(this.nodeName);return((e,t)=>{for(const a in e)t(e[a],a)})(this.getAttributes(),((t,a)=>{"string"==typeof t&&e.setAttribute(a,t)})),e.insert(0,this.toArray().map((e=>e instanceof Dl?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],a=[];for(const t in e)a.push(t);a.sort();const i=a.length;for(let n=0;n<i;n++){const i=a[n];t.push(i+'="'+e[i]+'"')}const n=this.nodeName.toLocaleLowerCase();return`<${n}${t.length>0?" "+t.join(" "):""}>${super.toString()}</${n}>`}removeAttribute(e){null!==this.doc?hl(this.doc,(t=>{Yl(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?hl(this.doc,(a=>{Hl(a,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return Gl(this,e)}hasAttribute(e){return Zl(this,e)}getAttributes(e){return e?((e,t)=>{const a={};return e._map.forEach(((e,i)=>{let n=e;for(;null!==n&&(!t.sv.has(n.id.client)||n.id.clock>=(t.sv.get(n.id.client)||0));)n=n.left;null!==n&&Jo(n,t)&&(a[i]=n.content.getContent()[n.length-1])})),a})(this,e):ql(this)}toDOM(e=document,t={},a){const i=e.createElement(this.nodeName),n=this.getAttributes();for(const e in n){const t=n[e];"string"==typeof t&&i.setAttribute(e,t)}return Pl(this,(n=>{i.appendChild(n.toDOM(e,t,a))})),void 0!==a&&a._createAssociation(i,this),i}_write(e){e.writeTypeRef(Bu),e.writeKey(this.nodeName)}}class _u extends Nl{constructor(e,t,a){super(e,a),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class wu extends eu{constructor(e){super(),this.hookName=e}_copy(){return new wu(this.hookName)}clone(){const e=new wu(this.hookName);return this.forEach(((t,a)=>{e.set(a,t)})),e}toDOM(e=document,t={},a){const i=t[this.hookName];let n;return n=void 0!==i?i.createDom(this):document.createElement(this.hookName),n.setAttribute("data-yjs-hook",this.hookName),void 0!==a&&a._createAssociation(n,this),n}_write(e){e.writeTypeRef(ju),e.writeKey(this.hookName)}}class Au extends yu{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Au}clone(){const e=new Au;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,a){const i=e.createTextNode(this.toString());return void 0!==a&&a._createAssociation(i,this),i}toString(){return this.toDelta().map((e=>{const t=[];for(const a in e.attributes){const i=[];for(const t in e.attributes[a])i.push({key:t,value:e.attributes[a][t]});i.sort(((e,t)=>e.key<t.key?-1:1)),t.push({nodeName:a,attrs:i})}t.sort(((e,t)=>e.nodeName<t.nodeName?-1:1));let a="";for(let e=0;e<t.length;e++){const i=t[e];a+=`<${i.nodeName}`;for(let e=0;e<i.attrs.length;e++){const t=i.attrs[e];a+=` ${t.key}="${t.value}"`}a+=">"}a+=e.insert;for(let e=t.length-1;e>=0;e--)a+=`</${t[e].nodeName}>`;return a})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Uu)}}class ku{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ts()}mergeWith(e){return!1}write(e,t,a){throw ts()}integrate(e,t){throw ts()}}class Su extends ku{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),tl(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class Nu{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Nu(this.content)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class xu{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new xu(this.len)}splice(e){const t=new xu(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){_o(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const Tu=(e,t)=>new xo({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Mu{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Mu(Tu(this.doc.guid,this.opts))}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class Vu{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Vu(this.embed)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Cu{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Cu(this.key,this.value)}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){const a=t.parent;a._searchMarker=null,a._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Iu{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Iu(this.arr)}splice(e){const t=new Iu(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const a=this.arr.length;e.writeLen(a-t);for(let i=t;i<a;i++){const t=this.arr[i];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}const Fu="development"===Ws("node_env");class Eu{constructor(e){this.arr=e,Fu&&Ls(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Eu(this.arr)}splice(e){const t=new Eu(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const a=this.arr.length;e.writeLen(a-t);for(let i=t;i<a;i++){const t=this.arr[i];e.writeAny(t)}}getRef(){return 8}}class Du{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new Du(this.str)}splice(e){const t=new Du(this.str.slice(e));this.str=this.str.slice(0,e);const a=this.str.charCodeAt(e-1);return a>=55296&&a<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const Lu=[e=>new Xl,e=>new eu,e=>new yu,e=>new vu(e.readKey()),e=>new bu,e=>new wu(e.readKey()),e=>new Au],Ru=0,Pu=1,Ou=2,Bu=3,$u=4,ju=5,Uu=6;class zu{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new zu(this.type._copy())}splice(e){throw ts()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const Wu=(e,t,a)=>{const{client:i,clock:n}=t.id,r=new Yu(Zo(i,n+a),t,Zo(i,n+a-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(a));return t.deleted&&r.markDeleted(),t.keep&&(r.keep=!0),null!==t.redone&&(r.redone=Zo(t.redone.client,t.redone.clock+a)),t.right=r,null!==r.right&&(r.right.left=r),e._mergeStructs.push(r),null!==r.parentSub&&null===r.right&&r.parent._map.set(r.parentSub,r),t.length=a,r};class Yu extends ku{constructor(e,t,a,i,n,r,s,o){super(e,o.getLength()),this.origin=a,this.left=t,this.right=i,this.rightOrigin=n,this.parent=r,this.parentSub=s,this.redone=null,this.content=o,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=el(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=el(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===Go&&this.id.client!==this.parent.client&&this.parent.clock>=el(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=sl(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=rl(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Su||this.right&&this.right.constructor===Su)this.parent=null;else if(this.parent){if(this.parent.constructor===Go){const e=il(t,this.parent);e.constructor===Su?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===Yu?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===Yu&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=sl(e,e.doc.store,Zo(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,a=this.left;if(null!==a)t=a.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const i=new Set,n=new Set;for(;null!==t&&t!==this.right;){if(n.add(t),i.add(t),qo(this.origin,t.origin)){if(t.id.client<this.id.client)a=t,i.clear();else if(qo(this.rightOrigin,t.rightOrigin))break}else{if(null===t.origin||!n.has(il(e.doc.store,t.origin)))break;i.has(il(e.doc.store,t.origin))||(a=t,i.clear())}t=t.right}this.left=a}if(null!==this.left){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),tl(e.doc.store,this),this.content.integrate(e,this),cl(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new Su(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:Zo(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&qo(e.origin,this.lastId)&&this.right===e&&qo(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){const t=this.parent._searchMarker;return t&&t.forEach((t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),_o(e.deleteSet,this.id.client,this.id.clock,this.length),cl(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw as();this.content.gc(e),t?((e,t,a)=>{const i=e.clients.get(t.id.client);i[al(i,t.id.clock)]=a})(e,this,new Su(this.id,this.length)):this.content=new xu(this.length)}write(e,t){const a=t>0?Zo(this.id.client,this.id.clock+t-1):this.origin,i=this.rightOrigin,n=this.parentSub,r=31&this.content.getRef()|(null===a?0:wr)|(null===i?0:_r)|(null===n?0:32);if(e.writeInfo(r),null!==a&&e.writeLeftID(a),null!==i&&e.writeRightID(i),null===a&&null===i){const t=this.parent;if(void 0!==t._item){const a=t._item;if(null===a){const a=(e=>{for(const[t,a]of e.doc.share.entries())if(a===e)return t;throw as()})(t);e.writeParentInfo(!0),e.writeString(a)}else e.writeParentInfo(!1),e.writeLeftID(a.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===Go?(e.writeParentInfo(!1),e.writeLeftID(t)):as();null!==n&&e.writeString(n)}this.content.write(e,t)}}const Hu=(e,t)=>Gu[31&t](e),Gu=[()=>{as()},e=>new xu(e.readLen()),e=>{const t=e.readLen(),a=[];for(let i=0;i<t;i++){const t=e.readString();"undefined"===t?a.push(void 0):a.push(JSON.parse(t))}return new Iu(a)},e=>new Nu(e.readBuf()),e=>new Du(e.readString()),e=>new Vu(e.readJSON()),e=>new Cu(e.readKey(),e.readJSON()),e=>new zu(Lu[e.readTypeRef()](e)),e=>{const t=e.readLen(),a=[];for(let i=0;i<t;i++)a.push(e.readAny());return new Eu(a)},e=>new Mu(Tu(e.readString(),e.readAny())),()=>{as()}];class qu extends ku{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){as()}write(e,t){e.writeInfo(10),Or(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const Zu="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Ju="__ $YJS$ __";!0===Zu[Ju]&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),Zu[Ju]=!0;const Ku=new Map;const Xu="undefined"==typeof BroadcastChannel?class{constructor(e){var t;this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:Js(t.newValue||"")}),t=this._onChange,Ts||addEventListener("storage",t)}postMessage(e){Ms.setItem(this.room,Zs((e=>new Uint8Array(e))(e)))}close(){var e;e=this._onChange,Ts||removeEventListener("storage",e)}}:BroadcastChannel,Qu=e=>sr(Ku,e,(()=>{const t=or(),a=new Xu(e);return a.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:a,subs:t}})),ec=(e,t,a=null)=>{const i=Qu(e);i.bc.postMessage(t),i.subs.forEach((e=>e(t,a)))},tc=(e,t)=>{Or(e,0);const a=(e=>jo(e,new Io))(t);Wr(e,a)},ac=(e,t,a)=>{Or(e,1),Wr(e,((e,t)=>Oo(e,t,new Fo))(t,a))},ic=(e,t,a)=>{try{((e,t,a)=>{Po(e,t,a,Mo)})(t,os(e),a)}catch(e){console.error("Caught error while handling a Yjs update",e)}},nc=ic,rc=(e,t,a,i)=>{const n=us(e);switch(n){case 0:((e,t,a)=>{ac(t,a,os(e))})(e,t,a);break;case 1:ic(e,a,i);break;case 2:nc(e,a,i);break;default:throw new Error("Unknown message type")}return n},sc=3e4;class oc extends hr{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=ks();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((a,i)=>{i!==this.clientID&&sc<=e-a.lastUpdated&&this.states.has(i)&&t.push(i)})),t.length>0&&lc(this,t,"timeout")}),fr(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,a=this.meta.get(t),i=void 0===a?0:a.clock+1,n=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:i,lastUpdated:ks()});const r=[],s=[],o=[],l=[];null===e?l.push(t):null==n?null!=e&&r.push(t):(s.push(t),Bs(n,e)||o.push(t)),(r.length>0||o.length>0||l.length>0)&&this.emit("change",[{added:r,updated:o,removed:l},"local"]),this.emit("update",[{added:r,updated:s,removed:l},"local"])}setLocalStateField(e,t){const a=this.getLocalState();null!==a&&this.setLocalState({...a,[e]:t})}getStates(){return this.states}}const lc=(e,t,a)=>{const i=[];for(let a=0;a<t.length;a++){const n=t[a];if(e.states.has(n)){if(e.states.delete(n),n===e.clientID){const t=e.meta.get(n);e.meta.set(n,{clock:t.clock+1,lastUpdated:ks()})}i.push(n)}}i.length>0&&(e.emit("change",[{added:[],updated:[],removed:i},a]),e.emit("update",[{added:[],updated:[],removed:i},a]))},uc=(e,t,a=e.states)=>{const i=t.length,n=Er();Or(n,i);for(let r=0;r<i;r++){const i=t[r],s=a.get(i)||null,o=e.meta.get(i).clock;Or(n,i),Or(n,o),Ur(n,JSON.stringify(s))}return Lr(n)},cc=[];cc[0]=(e,t,a,i,n)=>{Or(e,0);const r=rc(t,e,a.doc,a);i&&1===r&&!a.synced&&(a.synced=!0)},cc[3]=(e,t,a,i,n)=>{Or(e,1),Wr(e,uc(a.awareness,Array.from(a.awareness.getStates().keys())))},cc[1]=(e,t,a,i,n)=>{((e,t,a)=>{const i=ss(t),n=ks(),r=[],s=[],o=[],l=[],u=us(i);for(let t=0;t<u;t++){const t=us(i);let a=us(i);const u=JSON.parse(ds(i)),c=e.meta.get(t),d=e.states.get(t),p=void 0===c?0:c.clock;(p<a||p===a&&null===u&&e.states.has(t))&&(null===u?t===e.clientID&&null!=e.getLocalState()?a++:e.states.delete(t):e.states.set(t,u),e.meta.set(t,{clock:a,lastUpdated:n}),void 0===c&&null!==u?r.push(t):void 0!==c&&null===u?l.push(t):null!==u&&(Bs(u,d)||o.push(t),s.push(t)))}(r.length>0||o.length>0||l.length>0)&&e.emit("change",[{added:r,updated:o,removed:l},a]),(r.length>0||s.length>0||l.length>0)&&e.emit("update",[{added:r,updated:s,removed:l},a])})(a.awareness,os(t),a)},cc[2]=(e,t,a,i,n)=>{((e,t,a)=>{0===us(e)&&a(t,ds(e))})(t,a.doc,((e,t)=>dc(a,t)))};const dc=(e,t)=>console.warn(`Permission denied to access ${e.url}.\n${t}`),pc=(e,t,a)=>{const i=ss(t),n=Er(),r=us(i),s=e.messageHandlers[r];return s?s(n,i,e,a,r):console.error("Unable to compute message"),n},hc=(e,t,a)=>{t===e.ws&&(e.emit("connection-close",[a,e]),e.ws=null,t.close(),e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,lc(e.awareness,Array.from(e.awareness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(fc,yr(100*br(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e))},fc=e=>{if(e.shouldConnect&&null===e.ws){const t=new e._WS(e.url,e.protocols);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=a=>{e.wsLastMessageReceived=ks();const i=pc(e,new Uint8Array(a.data),!0);Dr(i)>1&&t.send(Lr(i))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=a=>{hc(e,t,a)},t.onopen=()=>{e.wsLastMessageReceived=ks(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const a=Er();if(Or(a,0),tc(a,e.doc),t.send(Lr(a)),null!==e.awareness.getLocalState()){const a=Er();Or(a,1),Wr(a,uc(e.awareness,[e.doc.clientID])),t.send(Lr(a))}},e.emit("status",[{status:"connecting"}])}},mc=(e,t)=>{const a=e.ws;e.wsconnected&&a&&a.readyState===a.OPEN&&a.send(t),e.bcconnected&&ec(e.bcChannel,t,e)};class yc extends pr{constructor(e,t,a,{connect:i=!0,awareness:n=new oc(a),params:r={},protocols:s=[],WebSocketPolyfill:o=WebSocket,resyncInterval:l=-1,maxBackoffTime:u=2500,disableBc:c=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);this.serverUrl=e,this.bcChannel=e+"/"+t,this.maxBackoffTime=u,this.params=r,this.protocols=s,this.roomname=t,this.doc=a,this._WS=o,this.awareness=n,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=c,this.wsUnsuccessfulReconnects=0,this.messageHandlers=cc.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=i,this._resyncInterval=0,l>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const e=Er();Or(e,0),tc(e,a),this.ws.send(Lr(e))}}),l)),this._bcSubscriber=(e,t)=>{if(t!==this){const t=pc(this,new Uint8Array(e),!1);Dr(t)>1&&ec(this.bcChannel,Lr(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const t=Er();Or(t,0),((e,t)=>{Or(e,2),Wr(e,t)})(t,e),mc(this,Lr(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:a},i)=>{const r=e.concat(t).concat(a),s=Er();Or(s,1),Wr(s,uc(n,r)),mc(this,Lr(s))},this._exitHandler=()=>{lc(this.awareness,[a.clientID],"app closed")},$s&&"undefined"!=typeof process&&process.on("exit",this._exitHandler),n.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<ks()-this.wsLastMessageReceived&&hc(this,this.ws,null)}),3e3),i&&this.connect()}get url(){const e=(e=>((e,t)=>{const a=[];for(const i in e)a.push(t(e[i],i));return a})(e,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))(this.params);return this.serverUrl+"/"+this.roomname+(0===e.length?"":"?"+e)}get synced(){return this._synced}set synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),$s&&"undefined"!=typeof process&&process.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var e,t;this.bcconnected||(e=this.bcChannel,t=this._bcSubscriber,Qu(e).subs.add(t),this.bcconnected=!0);const a=Er();Or(a,0),tc(a,this.doc),ec(this.bcChannel,Lr(a),this);const i=Er();Or(i,0),ac(i,this.doc),ec(this.bcChannel,Lr(i),this);const n=Er();Or(n,3),ec(this.bcChannel,Lr(n),this);const r=Er();Or(r,1),Wr(r,uc(this.awareness,[this.doc.clientID])),ec(this.bcChannel,Lr(r),this)}disconnectBc(){const e=Er();Or(e,1),Wr(e,uc(this.awareness,[this.doc.clientID],new Map)),mc(this,Lr(e)),this.bcconnected&&(((e,t)=>{const a=Qu(e),i=a.subs.delete(t);i&&0===a.subs.size&&(a.bc.close(),Ku.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&hc(this,this.ws,null)}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(fc(this),this.connectBc())}}class gc extends xo{}class bc{apiClient;collabDocument;yWebsocketProvider;item;awareness;users=[];avatars=new Map;constructor(e){this.apiClient=e,this.collabDocument=new gc}isActive(){return void 0!==this.yWebsocketProvider}getAwarenessStates(){return this.awareness?this.awareness.getStates():new Map}getUsersList(){return this.users}_getUser(e){for(const t of this.users)if(e===t.key)return t;return null}getLocalState(){if(!this.awareness)throw new Error("No awareness available. Cannot get state field.");return this.awareness.getLocalState()}setLocalStateField(e,t){if(!this.awareness)throw new Error("No awareness available. Cannot set state field.");this.awareness.setLocalStateField(e,t)}async _updateUsersList(){const e=this.getAwarenessStates(),t=await this.apiClient.me(!0);for(const[a,i]of e.entries()){if(!this._getUser(a)){let e=this.avatars.get(i.user.id);if(!e){e=(await this.apiClient.getAvatar(i.user.id,32)).avatar,this.avatars.set(i.user.id,e)}this.users.push({key:a,id:i.user.id,name:i.user.name,color:i.user.color,avatar:e,itsMe:i.user.id===t._id})}}const a=[];for(const t of this.users)e.has(t.key)&&a.push(t);this.users=a}async startCollaboration(e){try{if(!this.apiClient.isDevOrLocalhost())return!1;this.endCollaboration(),this.item=e;const t=this.apiClient.getCollabUrl(),a=`${this.item.type}.${this.item._id}`;let i=1e3;this.yWebsocketProvider=new yc(t,a,this.collabDocument,{connect:!1}),this.yWebsocketProvider.on("status",(e=>{console.log(`[Collab] ${e.status}`),"disconnected"===e.status&&this.yWebsocketProvider&&(this.yWebsocketProvider.disconnect(),setTimeout(r,i))})),this.yWebsocketProvider.on("sync",(e=>{console.log(`[Collab] synced: ${e}`)})),this.awareness=this.yWebsocketProvider.awareness,this.awareness.on("change",(async e=>{await this._updateUsersList(),y.$emit("collab:awareness:changed",{users:this.users,states:this.getAwarenessStates(),changes:e})}));const n=await this.apiClient.me(!0);this.awareness.setLocalStateField("user",{id:n._id,name:n.name,color:_.colorFromString(n.name)});const r=async()=>{if(!this.yWebsocketProvider)return void console.warn("[Collab] Cannot connect without websocket provider!");console.log("[Collab] reconnecting...");const e=await this.apiClient.getCollabToken();this.yWebsocketProvider.params.token=e,this.yWebsocketProvider.connect()};return await r(),y.$emit("collab:started"),!0}catch(e){return console.error("Error starting collaboration: ",e),!1}}endCollaboration(){this.yWebsocketProvider&&(console.log("Ending collaboration."),y.$emit("collab:ended"),this.yWebsocketProvider.destroy(),this.yWebsocketProvider=void 0,this.awareness=void 0),this.collabDocument=new gc,this.item=void 0}}class vc{apiClient;constructor(e){this.apiClient=e}async testCopyItems(e,t){const a=await this.apiClient.getItemsInFolderList(t,!0),i=await this.apiClient.getFoldersInFolderList(t),n=new Map;for(const e of i.children)n.set(e.name,null);for(const e of a)n.set(e.name,e._id);const r=this.apiClient.getItemRepo(),s=[];for(const t of e){let e,a,i=!1;t.isFolder?a=await this.apiClient.getFolder(t._id):(a=r.getLoadedItem(t._id),a||(a=await this.apiClient.getItem(t._id))),e=a?.name,i=n.has(e),s.push({_id:t._id,isFolder:t.isFolder,data:a,name:e,conflicted:i,conflictedItemId:n.get(e)})}return s}async copyItems(e,t,a=!1,i=!1){const n=e.filter((e=>!e.isFolder)).map((e=>e._id)),r=await this.apiClient.copyItems(n,t,a,i),s=this.apiClient.getItemRepo();for(let t of r){const a=e.filter((e=>e._id===t.original));a.length>0&&(t.replaced=a[0].conflictedItemId),await s.replaceLink(t.original,t.clone)}return await this.apiClient.eventBus.$emit("folder:changed",t),await this.apiClient.eventBus.$emit("items:copied",r),r}}class _c{apiClient;jobManager;constructor(e){this.apiClient=e,this.jobManager=e.getJobManager()}async executeExport(e,t,a,i){const n=await this.jobManager.execute("EXPORT:ExportGame",[{_id:e,isFolder:!1}],[{name:"Destination Folder",value:a},{name:"EngineVersion",value:i}],void 0,{os:t});if(await this.apiClient.eventBus.$emit("quota:update"),2===n.state)throw new V("Export failed: "+n.error);await this.apiClient.eventBus.$emit("folder:changed",[a])}}(c.default.default?c.default.default:c.default)(u.default,{retries:3,retryCondition:e=>e.message.includes("net::ERR_NETWORK_CHANGED")});const wc={Draft:0,Private:1,NotListed:2,Public:3},Ac=[{id:"prod",name:"Production",ssl:!0,apiHost:"api.lumino.cloud",viewerHost:"viewer.lumino.cloud",collabHost:"collab.lumino.cloud"},{id:"dev",name:"Development",ssl:!0,apiHost:"api-dev.lumino.cloud",viewerHost:"viewer-dev.lumino.cloud",collabHost:"collab-dev.lumino.cloud"},{id:"local",name:"Local",ssl:!1,apiHost:"localhost:8081",viewerHost:"localhost:8090",collabHost:"localhost:8200"}];exports.AccessDeniedException=F,exports.AggregatedItem=D,exports.ApiClient=class extends m{accessToken;apiToken;options;forcePublicApi;usePublicApi;usePersistentStorage;storageSizeMib;requestClientId;apiUrl;wsUrl;viewerUrl;collabUrl;itemRepo;itemCache;folderCache;thumbCache;userCache;groupCache;attachmentCache;jobManager;serializer;collab;itemCopier;executableExporter;eventBus;env;api;ws=null;cachedMe;profiler;wsLastPing=null;last2faCode="";constructor(e={}){super(),e=e||{},this.options=Object.assign({environment:"auto",wsAutoReconnect:!0,wsAutoConnect:!1,forcePublicApi:!1,debug:!1,accessToken:null,apiToken:null,usePersistentStorage:!0,storageSizeMib:10240,requestClientId:null,withCollaboration:!1},e),this.accessToken=this.options.accessToken,this.apiToken=this.options.apiToken,this.forcePublicApi=this.options.forcePublicApi,this.usePublicApi=!this.accessToken&&!this.apiToken,this.usePersistentStorage=this.options.usePersistentStorage,this.storageSizeMib=this.options.storageSizeMib,this.requestClientId=this.options.requestClientId,this.cachedMe=null,this.itemRepo=new Ki(this.usePublicApi,this),this.itemCache=new zn(this.usePublicApi,this.usePersistentStorage,this,this.storageSizeMib),this.folderCache=new Wn(this),this.thumbCache=new Yn(this),this.userCache=new Hn(this),this.groupCache=new Gn(this),this.attachmentCache=new qn(this),this.jobManager=new Kn(this),this.serializer=new ir(this),this.itemCopier=new vc(this),this.executableExporter=new _c(this),this.eventBus=y,this.profiler=null,this.options.withCollaboration&&(this.collab=new bc(this)),this.switchEnvironment(this.options.environment),this.setDebugMode(this.options.debug)}detectEnvironment(){const e=this.isOnLocalhost(),t=this.isDevPlatform();return e?this.getEnvironmentById("local"):t?this.getEnvironmentById("dev"):this.getEnvironmentById("prod")}getEnvironmentById(e){return"auto"===e?this.detectEnvironment():Ac.find((t=>t.id===e))}getEnvironments(){return Ac}switchEnvironment(e){let t=this.getEnvironmentById(e);if(!t)throw new Error(`Unknown environment: ${e}`);console.log(`ApiClient switched to env: ${t.name}`);const a=t.ssl?"https":"http",i=t.ssl?"wss":"ws";this.apiUrl=`${a}://${t.apiHost}`,this.wsUrl=`${i}://${t.apiHost}/api/ws`,this.viewerUrl=`${a}://${t.viewerHost}`,this.collabUrl=`${a}://${t.collabHost}`,this.api=u.default.create({baseURL:this.apiUrl}),this.ws=null,this.wsLastPing=null}async initCaches(){return Promise.all([this.itemCache.init(),this.folderCache.init(),this.thumbCache.init()])}clearCaches(){this.itemCache.clear(),this.folderCache.clear(),this.thumbCache.clear()}isDevPlatform(){return"object"==typeof window&&"location"in window&&(window.location.href.includes("dev.lumino.cloud")||window.location.href.includes("taste.lemonate.io"))}isOnLocalhost(){return"object"==typeof window&&"location"in window&&window.location.href.includes("localhost")}isDevOrLocalhost(){return this.isOnLocalhost()||this.isDevPlatform()}async clearIndexedDb(e){return new Promise(((t,a)=>{const i=indexedDB.deleteDatabase(e);i.onsuccess=()=>{t()},i.onerror=e=>{a("An error occured while deleting a IndexedDB database.")},i.onblocked=()=>{a(`Database deletion is blocked. Please close all connections to "${e}".`)}}))}async logout(){return this.clearCaches(),this.clearIndexedDb("lumino")}setDebugMode(e){this.options.debug=!!e,this.eventBus.setDebugMode(this.options.debug)}websocketConnect(e){const t=this;if(this.ws){if(!e)return void console.warn("Websocket is already connected!");this.websocketDisconnect()}this.ws=new d.default(this.wsUrl),this.ws.onerror=function(e){console.error("Websocket error",e),t.$emit("client:websocketError",e)},this.ws.onopen=function(){t.$emit("client:websocketOpen"),t.accessToken&&t.websocketSend(JSON.stringify({type:"auth",subscriptions:["item","folder","job","user","notification"],token:t.accessToken}))},this.ws.onclose=function(){t.$emit("client:websocketClosed"),t.options.wsAutoReconnect&&t.websocketConnect(!0)},this.ws.onmessage=function(e){try{const a=JSON.parse(e.data);switch(a.type){case"ping":t.wsLastPing=new Date,t.ws&&t.ws.send(JSON.stringify({type:"ping"}));break;case"authenticated":t.$emit("client:websocketAuthenticated");break;case"Item":case"Folder":case"Notification":case"Job":case"User":y.$emit("client:elementUpdate",a);break;default:console.warn("Unknown websocket message: ",a)}}catch(e){console.error("Websocket error:",e)}}}websocketDisconnect(){this.ws&&(this.ws.close(),this.ws=null)}websocketSend(e){this.ws?1===this.ws.readyState?this.ws.send(e):console.error("Websocket is not in READY state. Currently in state "+this.ws.readyState):console.error("Websocket is not created")}getItemCopier(){return this.itemCopier}getExecutableExporter(){return this.executableExporter}getCollab(){return this.collab}getCollabUrl(){return this.collabUrl}getPublisher(){return new Zn(this)}getAssetCreator(){return new ar(this)}getJobManager(){return this.jobManager}getThumbCache(){return this.thumbCache}getItemCache(){return this.itemCache}getItemRepo(){return this.itemRepo}getRootVisibility(){return this.itemRepo.activeItem?this.itemRepo.activeItem.visibility:wc.Private}getEventBus(){return this.eventBus}getSerializer(){return this.serializer}setForcePublicApi(e){this.forcePublicApi=e,this._updateUsePublicApi()}_updateUsePublicApi(){this.usePublicApi=this.forcePublicApi||!this.apiToken&&!this.accessToken,this.itemRepo.usePublicApi=this.usePublicApi,this.itemCache.usePublicApi=this.usePublicApi}setApiToken(e){this.apiToken=e,this._updateUsePublicApi()}setAccessToken(e){this.accessToken=e,this._updateUsePublicApi(),this.accessToken&&this.options.wsAutoConnect&&this.websocketConnect()}getApiToken(){return this.apiToken}getAccessToken(){return this.accessToken}setApiBaseUrl(e){this.apiUrl=e,this.api=u.default.create({baseURL:this.apiUrl})}setWsBaseUrl(e){this.wsUrl=e,this.accessToken&&this.options.wsAutoConnect&&(this.websocketDisconnect(),this.websocketConnect())}setRequestClientId(e){this.requestClientId=e}getApiBaseUrl(){return this.apiUrl}getWsBaseUrl(){return this.wsUrl}getViewerBaseUrl(){return this.viewerUrl}setProfiler(e){if(!e||"function"!=typeof e.start)throw new Error("Profiler needs to be an object providing a start function.");this.profiler=e}async login2FA(e,t,a){return console.log("Running Login..."),this.execute("post","/api/auth/login2fa",{account:e,password:t,client:a}).then((e=>{this.last2faCode=e,this.eventBus.$emit("login.2facode",e)}))}async confirm2FA(e,t){return this.execute("post","/api/auth/confirm2fa",{account:e,code:t})}isAuthenticated(){return!!this.accessToken||!!this.apiToken}isFeatureEnabled(e){return!!this.cachedMe&&this.cachedMe.features.includes(e)}async resolveUserOrGroupInfoForItem(e){return e.quotaUser?this.userCache.resolve(e.quotaUser):e.quotaGroup?this.groupCache.resolve(e.quotaGroup):e.createdBy?this.userCache.resolve(e.createdBy):{name:"?",initials:"?",avatar:null}}_startOp(e){const t=this,a={id:_.createGUID(),name:e,startTimeMs:performance.now(),runningMs:0,percent:0,reportProgress:function(e){a.percent=e},interval:null,finish:function(){if(a.interval&&clearInterval(a.interval),a.runningMs>1e3)try{t.$emit("client:longRunningOpFinished",a.id)}catch(e){console.error(e)}}};return a.interval=setInterval((function(){if(a.runningMs=performance.now()-a.startTimeMs,a.runningMs>1e3)try{t.$emit("client:longRunningOp",a.id,a.name,a.percent)}catch(e){console.error(e)}}),100),a}_createOpName(e,t){try{const a=t.split("/");switch(e.toLowerCase()){case"get":e="Fetching";break;case"post":e="Creating";break;case"put":e="Updating";break;case"delete":e="Deleting"}a.shift(),a.shift();const i=a.shift();let n=a.join("/");return n.length&&(n=` [${n}]`),`${e} ${i} data ${n}`}catch{return`${e} ${t}`}}addAuthenticationHeaders(e){this.accessToken&&(e["x-access-token"]=this.accessToken),this.apiToken&&(e["x-api-token"]=this.apiToken),this.requestClientId&&(e["x-request-client"]=this.requestClientId)}async execute(e,t,a,i){let n=this,r={};(i=i||{}).headers?r=i.headers:a&&"object"==typeof a&&"getHeaders"in a&&"function"==typeof a.getHeaders&&(r=a.getHeaders()),this.addAuthenticationHeaders(r);const s=this.profiler?this.profiler.start("ApiClient",`${e} ${t}`):null,o=this._startOp(i.opName||n._createOpName(e,t));return this.api({method:e,url:t,data:a,responseType:i.responseType,headers:r,signal:i.controller?i.controller.signal:void 0,onUploadProgress:function(e){if(e.total){const t=Math.min(100,Math.round(100*e.loaded/e.total));o.reportProgress(t),n.$emit("client:progress",{type:"upload",percent:t}),"function"==typeof i.progressCallback&&i.progressCallback(t,e.loaded,e.total)}},onDownloadProgress:function(e){if(e.total){const t=Math.min(100,Math.round(100*e.loaded/e.total));o.reportProgress(t),n.$emit("client:progress",{type:"download",percent:t}),"function"==typeof i.progressCallback&&i.progressCallback(t,e.loaded,e.total)}}}).then((e=>{if(s&&s.done(),o.finish(),n.$emit("client:progress",{type:"done"}),e.headers["content-type"].startsWith("application/json")){if("success"===e.data.result){let t;return t=i.withNext?{data:e.data.data,next:e.data.next}:e.data.data,i.emitOnSuccess&&this.eventBus.$emit(i.emitOnSuccess,t),t}throw e.data.redirect&&this.$emit("client:redirect",e.data.redirect),e.data.error?e.data.error:"API response seems to be json but does not contain result type!"}return i.emitOnSuccess&&this.eventBus.$emit(i.emitOnSuccess),{blob:new Blob([e.data],{type:e.headers["content-type"]}),hash:e.headers["sha256-hash"],itemName:e.headers["lumino-itemname"],itemType:e.headers["lumino-itemtype"],mimeType:e.headers["content-type"]}})).catch((e=>{if(s&&s.done(),o.finish(),n.$emit("client:progress",{type:"done"}),e.response){if(401===e.response.status)throw this.$emit("client:unauthorized"),new F("Access denied. Please login again.");if(413===e.response.status)throw new I;if(e.response.data&&e.response.data.error)throw new Error(e.response.data.error)}throw e}))}_createFormData(e,t){let a=new p.default;if("function"==typeof File&&e instanceof Blob)a.append("file",e,t);else{const i=new Blob([e]);try{a.append("file",i,t)}catch{a=new p.default,a.append("file",e,t)}}return a}async me(e){return e&&this.cachedMe||(this.cachedMe=await this.execute("get","/api/auth/me")),this.cachedMe}async getHomeFolder(){return this.execute("get","/api/auth/homefolder")}async myClients(){return this.execute("get","/api/auth/myclients")}async getCollabToken(){return this.execute("get","/api/auth/collabtoken")}async checkCollabToken(e){return this.execute("post","/api/auth/collabtoken",{token:e})}async register(e){return this.execute("post","/api/auth/register",e)}async deleteMyAccount(e){return this.execute("post","/api/auth/deletemyaccount",{password:e})}async confirmEmail(e){return this.execute("get","/api/auth/confirmemail/"+e)}async confirmEmailChange(e){return this.execute("get","/api/auth/confirmchangedemail/"+e)}async forgotPassword(e,t){return this.execute("post","/api/auth/forgotpassword",{account:e,client:t})}async setNewPassword(e,t){return this.execute("post","/api/auth/setnewpassword",{token:e,password:t})}async accountExists(e){return this.execute("post","/api/auth/accountExists",e)}async getItemsInFolderList(e,t=!1){if(e&&!t){const t=await this.folderCache.getItemListing(e);if(t)return t}const a=await this.execute("get","/api/item/infolder/"+(e||"0"));return await this.folderCache.addItemListing(e,a),a}async getItem(e,t){const a=[];t&&(t.returnClonedFrom&&a.push("returnClonedFrom=true"),t.withThumbnails&&a.push("withThumbnails=true"));let i="";return a.length&&(i=`?${a.join("&")}`),this.execute("get",`/api/item/${e}${i}`)}getItemAggregatedPOP(e,t){return this.usePublicApi?this.getItemPublicAggregated(e,t):this.getItemAggregated(e,t)}async getItemPublicAggregated(e,t){const a=ji(e);if(a)return a;const i=[];t&&(t.withFieldInstances&&i.push("withFieldInstances"),t.withAttachmentInfo&&i.push("withAttachmentInfo"),t.noAttributes&&i.push("noAttributes"),t.noUserAttributes&&i.push("noUserAttributes"),t.noFields&&i.push("noFields"),t.noThumbnails&&i.push("noThumbnails"),t.noLinks&&i.push("noLinks"));let n="";return i.length&&(n=`?${i.join("&")}`),ji(e)?ji(e):this.execute("get","/api/item/publicaggregate/"+e+n)}async getItemAggregated(e,t){const a=ji(e);if(a)return a;const i=[];t&&(t.withFieldInstances&&i.push("withFieldInstances"),t.withAttachmentInfo&&i.push("withAttachmentInfo"),t.noAttributes&&i.push("noAttributes"),t.noUserAttributes&&i.push("noUserAttributes"),t.noFields&&i.push("noFields"),t.noThumbnails&&i.push("noThumbnails"),t.noLinks&&i.push("noLinks"));let n="";return i.length&&(n=`?${i.join("&")}`),ji(e)?ji(e):this.execute("get",`/api/item/aggregate/${e}${n}`)}async getItemAggregatedRecursive(e,t){const a=[];t&&(t.withFieldInstances&&a.push("withFieldInstances"),t.withAttachmentInfo&&a.push("withAttachmentInfo"),t.noAttributes&&a.push("noAttributes"),t.noUserAttributes&&a.push("noUserAttributes"),t.noFields&&a.push("noFields"),t.noThumbnails&&a.push("noThumbnails"));let i="";return a.length&&(i=`?${a.join("&")}`),this.execute("get",`/api/item/aggregaterecursive/${e}${i}`)}async getItemPublicRecursive(e,t){return this.execute("get","/api/item/publicrecursive/"+e+(t?"?withFeatures":""))}async getItemPublic(e,t){return this.execute("get","/api/item/public/"+e+(t?"?returnClonedFrom=true":""))}async getItemHistory(e){return this.execute("get","/api/item/history/"+e)}async copyItems(e,t,a,i){return this.execute("post","/api/item/copy",{sourceItemIds:e,destFolderId:t,deepCopy:a,overwrite:i})}async createItem(e){return this.execute("post","/api/item",e)}async updateItem(e){return this.execute("put","/api/item",e)}async deleteItem(e){return this.execute("delete","/api/item",{id:e})}async renameItem(e,t){return this.updateItem({_id:e,name:t})}async queryPublicItemsList(e){return this.execute("post","/api/item/publicquery",e)}async queryItemsListPOP(e){return this.usePublicApi?this.queryPublicItemsList(e):this.queryItemsList(e)}async queryItemsList(e){return this.execute("post","/api/item/query",e)}async queryItemsListAsExcel(e){e.exportAsExcel=!0;const t=await this.execute("post","/api/item/query",e,{responseType:"arraybuffer"}),a=window.URL.createObjectURL(t.blob),i=document.createElement("a");i.href=a,i.setAttribute("download","export.xlsx"),i.click()}async moveItems(e){return this.execute("post","/api/item/move",e)}async downloadItem(e,t){const a=Li(e);return a||this.execute("get",`/api/item/download/${e}`,null,{responseType:"arraybuffer",progressCallback:t,opName:`Downloading item ${e}`})}async publicDownloadItem(e,t){const a=Li(e);return a||this.execute("get",`/api/item/publicdownload/${e}`,null,{responseType:"arraybuffer",progressCallback:t})}async getItemHash(e){const t=ji(e);return t?t.hash:this.execute("get",`/api/item/hash/${e}`)}async requestSecureDownload(e){return this.execute("get","/api/item/requestsecuredownload/"+e)}async getThumbnail(e,t){return this.execute("get",`/api/item/thumbnail/${e}/${t}`)}async uploadThumbnail(e,t,a,i,n,r){const s=this._createFormData(a,i);return this.execute("post",`/api/item/thumbnail/${t}/${e}`,s,{progressCallback:n,controller:r})}async getPublicThumbnail(e,t){return this.execute("get",`/api/item/publicthumbnail/${e}/${t}`)}async makeItemPublic(e,t,a){return this.execute("put","/api/item/makepublic",{id:e,recursive:t,inSubfolders:a})}async setVisibility(e,t,a,i){return this.execute("put","/api/item/setvisibility",{id:e,visibility:t,recursive:a,inSubfolders:i})}async makeItemPrivate(e,t,a){return this.execute("put","/api/item/makeprivate",{id:e,recursive:t,inSubfolders:a})}async setOmitLodGeneration(e,t){return this.execute("get",`/api/item/setOmitLodGeneration/${e}/${t}`)}async setOmitThumbnailGeneration(e,t){return this.execute("get",`/api/item/setOmitThumbnailGeneration/${e}/${t}`)}async setOmitPreviewGeneration(e,t){return this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/${t}`)}async uploadAndCreate(e,t,a,i,n,r){const s=this._createFormData(t,a);let o=`/api/item/uploadAndCreate/${e}`,l={};return i&&("object"==typeof i?(i.autoDestructIn&&(o+="?autoDestructIn="+i.autoDestructIn),i.visibility&&(o+="?visibility="+i.visibility),i.flags&&(o+="?flags="+i.flags),i.overwrite&&(o+="?overwrite="+(i.overwrite?"true":"false")),i.nameOverride&&(l["x-override-name"]=i.nameOverride)):o+="?autoDestructIn="+i),this.execute("post",o,s,{progressCallback:n,controller:r,headers:l})}async upload(e,t,a,i,n,r){const s=[];r&&(r.omitHandleDependencyChange&&s.push("omitHandleDependencyChange=true"),r.keepThumbnails&&s.push("keepThumbnails=true"));let o="";s.length&&(o=`?${s.join("&")}`);const l=this._createFormData(t,a);return this.execute("post",`/api/item/upload/${e}${o}`,l,{progressCallback:i,controller:n})}resetPreview(e){const t=this.execute("delete",`/api/item/attachment/${e}/preview`),a=this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/false`);return Promise.all([t,a])}clearPreview(e){const t=this.execute("delete",`/api/item/attachment/${e}/preview`),a=this.execute("get",`/api/item/setOmitPreviewGeneration/${e}/true`);return Promise.all([t,a])}async clearThumbnail(e){return this.execute("get",`/api/item/clearThumbnail/${e}`)}async resetThumbnail(e){return this.execute("get",`/api/item/resetThumbnail/${e}`)}async downloadAttachmentPOP(e,t,a,i,n){return this.usePublicApi?this.downloadPublicAttachment(e,t,a,i,n):this.downloadAttachment(e,t,a,i,n)}_getAttachmentUrlPath(e,t,a,i,n){return`/api/item/${n?"public":""}attachment/${e}/${t}${null!=a?`/${a}`:"/undefined"}${null!=i?`/${i}`:""}`}async downloadAttachment(e,t,a,i=0,n){const r=Hi(e,t,a,i);return r||this.execute("get",this._getAttachmentUrlPath(e,t,a,i),null,{responseType:"arraybuffer",progressCallback:n})}async downloadPublicAttachment(e,t,a,i,n){const r=Hi(e,t,a,i);return r||this.execute("get",this._getAttachmentUrlPath(e,t,a,i,!0),null,{responseType:"arraybuffer",progressCallback:n})}async uploadAttachment(e,t,a,i,n,r,s,o){const l=this._createFormData(n,r);return this.execute("post",this._getAttachmentUrlPath(e,t,a,i),l,{progressCallback:s,controller:o})}async deleteAttachment(e,t,a,i){return this.attachmentCache.invalidateAttachment(e,t,a,i),this.execute("delete",this._getAttachmentUrlPath(e,t,a,i))}setPerceptiveHashOnAttachment(e,t,a){return this.execute("get",`/api/item/setPerceptiveHashAttachment/${e}/${t}/${a}`)}setPerceptiveHash(e,t){return this.execute("get",`/api/item/setPerceptiveHash/${e}/${t}`)}async getItemClient(e){return this.execute("get",`/api/item/getClient/${e}`)}async getItemAcl(e){return this.execute("get",`/api/item/acl/${e}`)}async getItemsLinking(e){return this.execute("get",`/api/item/linking/${e}`)}async setAttributes(e,t){return this.execute("put","/api/item/setAttributes",{id:e,attributes:t})}async getItemSyncList(e){const t=W(e).format("YYYYMMDDHHmmss");return this.execute("get",`/api/item/synclist/${t}`)}async increaseViews(e){return this.execute("get",`/api/item/increaseViews/${e}`)}async getViews(e){return this.execute("get",`/api/item/views/${e}`)}async getPublicItemCounts(e){return this.execute("get",`/api/item/publiccounts/${e}`)}async getItemCounts(e){return this.execute("get",`/api/item/counts/${e}`)}async likeItem(e){return this.execute("get",`/api/item/like/${e}`)}async unlikeItem(e){return this.execute("get",`/api/item/unlike/${e}`)}async doILike(e){return this.execute("get",`/api/item/doILike/${e}`)}async setItemAutoDestruct(e,t){const a=W(t).format("YYYYMMDDHHmmss");return this.execute("get",`/api/item/setAutoDestruct/${e}/${a}`)}async clearItemAutoDestruct(e){return this.execute("get",`/api/item/clearAutoDestruct/${e}`)}async resolveRelativeItem(e,t){const a=ji(e);if(!a)return this.execute("post","/api/item/resolve/"+e,{path:t});t.startsWith("/")&&(t=t.substring(1));const i=t.split("/"),n=i.pop();let r=a.folder._id;for(const e of i){let t=!1;for(const[a,i]of Object.entries(Ri()))if(i.parent===r&&i.name===e){r=a,t=!0;break}if(!t)break}for(const e of Object.values($i()))if(e.folder._id===r&&e.name===n)return e._id;return console.error(`Could not resolve path ${t} for item ${e}`),null}async publicResolveRelativeItem(e,t){const a=ji(e);if(!a)return this.execute("post","/api/item/publicResolve/"+e,{path:t});t.startsWith("/")&&(t=t.substring(1));const i=t.split("/"),n=i.pop();let r=Pi(a.folder._id);for(const e of i)if(".."===e)r=Pi(r.parent);else{const t=Oi(e,r._id);if(!t)throw new Error("Can't find folder while loading folder from package");r=t}const s=Bi(n,r._id);if(s)return s._id;throw new Error("Can't load item from package.")}async rewireItems(e){return this.execute("post","/api/item/rewire",{items:e})}async getFolder(e){return this.execute("get","/api/folder/"+e)}async getFullFolderTree(e){return this.execute("get",`/api/folder/fulltree/${e||"0"}`)}async getFoldersInFolderList(e,t){e=e||"0";const a=[];let i="";if(t){if(t.resolveNames&&!t.folderAsItemType&&"0"!==e){if(i=await this.folderCache.getFolderListing(e),i&&Date.now()-new Date(i.cachedAt).getTime()<1e4)return i;i&&i.parent&&a.push(`lastUpdatedAt=${i.parent.updatedAt}`)}t.resolveNames&&a.push("resolve"),t.folderAsItemType&&a.push(`folderAsItemType=${t.folderAsItemType}`),t.folderAsItemName&&a.push(`folderAsItemName=${t.folderAsItemName}`),t.folderAsItemFlag&&a.push(`folderAsItemFlag=${t.folderAsItemFlag}`),t.withStats&&a.push("withStats=true"),t.returnLatestPackage&&a.push("returnLatestPackage=true")}let n="";a.length&&(n="?"+a.join("&"));const r=await this.execute("get",`/api/folder/infolder/${e}${n}`);if(!0===r.notModified)return i;if(!t||t.resolveNames&&!t.folderAsItemType){const t=await this.getFolderAclList([e,...r.children.map((e=>e._id))]);for(const e of t)await this.folderCache.addACL(e.id,e.acl);return await this.folderCache.addFolderListing(e,r),r}return r}async updateFolderCache(e){const t=[];for(const a of e){if(!a)continue;const e=await this.folderCache.getFolderListing(a);e&&e.parent?t.push({id:a,lastUpdatedAt:e.parent.updatedAt}):t.push({id:a})}const a=await this.execute("post","/api/folder/infolderquery",{folders:t});for(const e of a)!0===e.data.notModified?await this.folderCache.refreshCacheForFolder(e.id):await this.folderCache.addFolderListing(e.id,e.data)}async createFolder(e){return this.execute("post","/api/folder",e)}async updateFolder(e){return this.execute("put","/api/folder",e)}async deleteFolder(e){return this.execute("delete","/api/folder",{id:e})}async renameFolder(e,t){return this.updateFolder({_id:e,name:t})}async moveFolders(e){return this.execute("post","/api/folder/move",e)}async getFolderPath(e){return e?("object"==typeof e&&(e=e._id),this.execute("get","/api/folder/path/"+e)):{path:"/",elements:[]}}async resolveFolderPath(e){return"/"===(e=e.trim())?null:this.execute("post","/api/folder/resolve",{path:e})}async getFolderClient(e){return this.execute("get",`/api/folder/getClient/${e}`)}async getFolderAcl(e){const t=await this.folderCache.getFolderACLs(e||"0",1e4);if(t&&e)return t;{const t=await this.execute("get",`/api/folder/acl/${e||"0"}`);return await this.folderCache.addACL(e||"0",t),t}}async getFolderAclList(e){return this.execute("post","/api/folder/aclquery",{ids:e})}async getUser(e){return this.execute("get","/api/user/"+e)}async getUsersList(){return this.execute("get","/api/user")}async createUser(e){return this.execute("post","/api/user",e)}async queryUser(e,t,a){return this.execute("post","/api/user/query",{searchQuery:e,groupID:t,cursor:a},{withNext:!0})}async updateUser(e){return this.execute("put","/api/user",e)}async deleteUser(e){return this.execute("delete","/api/user",{id:e})}async updateMyProfile(e){return this.execute("put","/api/user/myprofile",e)}async switchClient(e){return this.execute("get",`/api/user/switchclient/${e}`)}async activateUser(e,t){return this.execute("post","/api/user/activate",{token:t,password:e})}async getUsersToApprove(){return this.execute("get","/api/user/approvals")}async approveUserRegistration(e){return this.execute("get",`/api/user/approveuserregistration/${e}`)}async rejectUserRegistration(e){return this.execute("get",`/api/user/rejectuserregistration/${e}`)}async uploadAvatar(e){const t=new p.default;if(e instanceof Blob)t.append("file",e);else{const a=new Blob([new Uint8Array(e)]);t.append("file",a,"avatar.jpg")}return this.execute("post","/api/user/uploadAvatar",t)}async clearAvatar(){return this.execute("get","/api/user/clearAvatar")}async getAvatar(e,t){return this.execute("get",`/api/user/avatar/${t}/${e}`)}async getUserPublicInfo(e,t,a){return this.execute("get",`/api/user/publicinfo/${e}/${t}/${a}`)}async getUserAttribute(e){return this.execute("get",`/api/user/attribute/${e}`)}async clearUserAttribute(e){return this.execute("delete",`/api/user/attribute/${e}`)}async setUserAttribute(e,t){return this.execute("post",`/api/user/attribute/${e}`,t)}async getGroup(e){return this.execute("get","/api/group/"+e)}async getGroupFolder(e){return this.execute("get","/api/group/folder/"+e)}async getGroupsList(){return this.execute("get","/api/group")}async createGroup(e){return this.execute("post","/api/group",e)}async queryGroup(e,t){return this.execute("post","/api/group/query",{searchQuery:e,cursor:t},{withNext:!0})}async updateGroup(e){return this.execute("put","/api/group",e)}async deleteGroup(e){return this.execute("delete","/api/group",{id:e})}async getGroupQuotaInfo(e){return this.execute("get","/api/group/quota/"+e)}async getGroupPublicInfo(e,t,a){return this.execute("get",`/api/group/publicinfo/${e}/${t}/${a}`)}async getGroupUsers(e){return this.execute("get","/api/group/users/"+e)}async uploadGroupAvatar(e,t){const a=new p.default;if(t instanceof Blob)a.append("file",t);else{const e=new Blob([new Uint8Array(t)]);a.append("file",e,"avatar.jpg")}return this.execute("post","/api/group/"+e+"/uploadAvatar",a)}async getClientsList(){return this.execute("get","/api/client")}async getClient(e){return this.execute("get",`/api/client/${e}`)}async createClient(e){return this.execute("post","/api/client",e)}async queryClient(e,t){return this.execute("post","/api/client/query",{searchQuery:e,cursor:t},{withNext:!0})}async updateClient(e){return this.execute("put","/api/client",e)}async deleteClient(e){return this.execute("delete","/api/client",{id:e})}async getClientMetrics(e,t,a){return this.execute("get",`/api/client/metrics/${t}/${a}/${e}`)}async joinClient(e){return this.execute("get",`/api/client/join/${e}`)}async leaveClient(e){return this.execute("get",`/api/client/leave/${e}`)}async myClient(){return this.execute("get","/api/client/my")}async saveMyClient(e){return this.execute("put","/api/client/my",e)}async getPublicCategories(e){return this.execute("get",`/api/client/publiccategories/${e}`)}async getCategories(){return this.execute("get","/api/client/categories")}async getCategoriesInClient(e){return this.execute("get",`/api/client/categories/${e}`)}async updateCategoriesInClient(e,t){return this.execute("post",`/api/client/categories/${e}`,t)}async getLicenses(){return this.execute("get","/api/license")}async getLicensesInClient(e){return this.execute("get",`/api/license/inclient/${e}`)}async getLicense(e){return this.execute("get",`/api/license/${e}`)}async createLicense(e){return this.execute("post","/api/license",e)}async updateLicense(e){return this.execute("put","/api/license",e)}async deleteLicense(e,t){return this.execute("delete","/api/license",{_id:e,client:t})}async getPublicLicenses(e){return this.execute("get",`/api/license/publiclist/${e}`)}async getPublicLicense(e){return this.execute("get",`/api/license/public/${e}`)}async getDatatypesList(){return this.execute("get","/api/datatype")}async getPublicDatatypesList(e){return this.execute("get",`/api/datatype/public/${e}`)}async getDatatypesListOnClient(){return this.execute("get","/api/datatype/onclient")}async getDatatypesListOnClientForAll(){return this.execute("get","/api/datatype/onclientforall")}async getAllDatatypesList(){return this.execute("get","/api/datatype/all")}async getDatatype(e){return this.execute("get",`/api/datatype/${e}`)}async createDatatype(e){return this.execute("post","/api/datatype",e)}async updateDatatype(e){return this.execute("put","/api/datatype",e)}async deleteDatatype(e){return this.execute("delete","/api/datatype",{id:e})}async getMyNotifications(e){return this.execute("get","/api/notification"+(e?`?maxCount=${e}`:""))}async markNotificationAsRead(e){return this.execute("get",`/api/notification/markasread/${e}`)}async markAllNotificationsAsRead(){return this.execute("get","/api/notification/markallasread")}async createJob(e){return this.execute("post","/api/job",e,{emitOnSuccess:"job:created"})}async getManualJobTypes(){return this.execute("get","/api/job/manualtypes")}async getManualJobTypesOnClient(){return this.execute("get","/api/job/manualtypes/onclient")}async getManualJobTypesOnClientForAll(){return this.execute("get","/api/job/manualtypes/onclientforall")}async getAllManualJobTypes(){return this.execute("get","/api/job/manualtypes/all")}async getAllManualJobTypesForClient(e){return this.execute("get",`/api/job/manualtypes/all/${e}`)}async getClientJobTypes(){return this.execute("get","/api/job/clientTypes")}async getMyJobs(){return this.execute("get","/api/job/mine")}async getJobs(){return this.execute("get","/api/job")}async getJobsAggregated(){return this.execute("get","/api/job/aggregated")}async getJobsTimeframe(e,t){return this.execute("get",`/api/job/all/${e}/${t}`)}async getJob(e){return this.execute("get",`/api/job/${e}`)}async getJobState(e){return this.execute("get",`/api/job/state/${e}`)}async getAgents(){return this.execute("get","/api/jobagent")}async getAgentsAggregated(){return this.execute("get","/api/jobagent/aggregated")}async enableJobAgent(e){return this.execute("get",`/api/jobagent/enable/${e}`)}async disableJobAgent(e){return this.execute("get",`/api/jobagent/disable/${e}`)}async restartJobAgent(e){return this.execute("get",`/api/jobagent/restart/${e}`)}async getPermissionsList(){return this.execute("get","/api/permission")}async getPlugins(){return this.execute("get","/api/plugin")}async getPlans(){return this.execute("get","/api/plan")}async getPlan(e){return this.execute("get",`/api/plan/${e}`)}async createPlan(e){return this.execute("post","/api/plan",e)}async updatePlan(e){return this.execute("put","/api/plan",e)}async deletePlan(e){return this.execute("delete","/api/plan",{id:e})}async getWorkflows(){return this.execute("get","/api/workflow")}async getWorkflow(e){return this.execute("get",`/api/workflow/${e}`)}async createWorkflow(e){return this.execute("post","/api/workflow",e)}async updateWorkflow(e){return this.execute("put","/api/workflow",e)}async deleteWorkflow(e){return this.execute("delete","/api/workflow",{id:e})}async startWorkflow(e){return this.execute("post","/api/workflow/start",e)}async getAccessTokens(){return this.execute("get","/api/accesstoken")}async getClientAccessTokens(){return this.execute("get","/api/accesstoken/client")}async createAccessToken(e){return this.execute("post","/api/accesstoken",e)}async createClientAccessToken(e){return this.execute("post","/api/accesstoken/client",e)}async deleteAccessToken(e){return this.execute("delete","/api/accesstoken",{id:e})}async deleteClientAccessToken(e){return this.execute("delete","/api/accesstoken/client",{id:e})}async enableAccessToken(e){return this.execute("get",`/api/accesstoken/enable/${e}`)}async disableAccessToken(e){return this.execute("get",`/api/accesstoken/disable/${e}`)}async getApiTokens(){return this.execute("get","/api/apitoken")}async createApiToken(e){return this.execute("post","/api/apitoken",e)}async deleteApiToken(e){return this.execute("delete","/api/apitoken",{id:e})}async getMyClientInvoices(){return this.execute("get","/api/invoice")}async getMyUserInvoices(){return this.execute("get","/api/invoice/my")}async getClientInvoices(e){return this.execute("get",`/api/invoice/client/${e}`)}async downloadInvoice(e,t){const a=await this.execute("get",`/api/invoice/download/${e}`,null,{responseType:"arraybuffer"}),i=window.URL.createObjectURL(a.blob),n=document.createElement("a");n.href=i,n.setAttribute("download",t||"invoice.pdf"),document.body.appendChild(n),n.click()}async regenerateInvoice(e){return this.execute("get",`/api/invoice/regenerate/${e}`)}async getInvoicesForMonth(e,t){return this.execute("get",`/api/invoice/month/${t}/${e}`)}async refundInvoice(e,t,a){return this.execute("post","/api/invoice/refund",{invoice:e,amount:t,reason:a})}async paymentStartCheckout(e,t){return this.execute("post","/api/payment/checkout",{successUrl:e,cancelUrl:t})}async paymentStartUserCheckout(e,t){return this.execute("post","/api/payment/usercheckout",{successUrl:e,cancelUrl:t})}async getSupportedCurrencies(){return this.execute("get","/api/payment/supportedCurrencies")}async getPurchasables(){return this.execute("get","/api/purchasable")}async getPurchasable(e){return this.execute("get",`/api/purchasable/${e}`)}async createPurchasable(e){return this.execute("post","/api/purchasable",e)}async updatePurchasable(e){return this.execute("put","/api/purchasable",e)}async deletePurchasable(e){return this.execute("delete","/api/purchasable",{id:e})}async getPublicPurchasables(e){return this.execute("get",`/api/purchasable/public/${e}`)}async getPurchases(){return this.execute("get","/api/purchase")}async getMyActivePurchases(){return this.execute("get","/api/purchase/active")}async purchase(e){return this.execute("post","/api/purchase",e)}async changePurchaseProduct(e,t,a){return this.execute("post","/api/purchase/change",{purchaseID:e,purchasableID:t,optionID:a})}async cancelPurchase(e){return this.execute("delete","/api/purchase",{id:e})}async uncancelPurchase(e){return this.execute("post","/api/purchase/uncancel",{id:e})}async getSecureSessionPayload(e,t){return this.execute("get","/api/payment/secureSessionPayload?purchasableID="+e+"&optionID="+t)}async queryPurchases(e,t,a,i,n,r){return this.execute("post","/api/purchase/query",{startDate:e,endDate:t,email:a,invoice:i,cursor:n,limit:r})}async getAttributeTemplates(){return this.execute("get","/api/attributetemplate")}async getAttributeTemplate(e){return this.execute("get",`/api/attributetemplate/${e}`)}async createAttributeTemplate(e){return this.execute("post","/api/attributetemplate",e)}async updateAttributeTemplate(e){return this.execute("put","/api/attributetemplate",e)}async deleteAttributeTemplate(e){return this.execute("delete","/api/attributetemplate",{id:e})}async getStorages(){return this.execute("get","/api/storage")}async getConversation(e){return this.execute("get",`/api/conversation/${e}`)}async getPublicConversation(e){return this.execute("get",`/api/conversation/public/${e}`)}async createConversation(e,t){return this.execute("post","/api/conversation",{parentId:e,parentType:t})}async postConversationMessage(e,t,a){return this.execute("post","/api/conversation/post",{id:e,text:t,replyTo:a})}async editConversationMessage(e,t){return this.execute("put","/api/conversation/post",{id:e,text:t})}async deleteConversationMessage(e){return this.execute("delete","/api/conversation/post",{id:e})}async subscribeToConversation(e){return this.execute("post","/api/conversation/subscribe",{id:e})}async unsubscribeFromConversation(e){return this.execute("post","/api/conversation/unsubscribe",{id:e})}async likeConversationEntry(e){return this.execute("post","/api/conversation/like",{id:e})}async unlikeConversationEntry(e){return this.execute("post","/api/conversation/unlike",{id:e})}async command(e){return this.execute("post","/api/command",e)}async getMailTemplates(){return this.execute("get","/api/mailtemplate")}async getMailTemplate(e){return this.execute("get",`/api/mailtemplate/${e}`)}async createMailTemplate(e){return this.execute("post","/api/mailtemplate",e)}async updateMailTemplate(e){return this.execute("put","/api/mailtemplate",e)}async deleteMailTemplate(e){return this.execute("delete","/api/mailtemplate",{id:e})}async addMailTemplateImage(e,t,a){const i=this._createFormData(a,"image.jpg");return this.execute("post",`/api/mailtemplate/image/${e}/${t}`,i)}async deleteMailTemplateImage(e,t){return this.execute("delete",`/api/mailtemplate/image/${e}/${t}`)}async getMailTemplateNames(){return this.execute("get","/api/mailtemplate/names")}async getMailQuery(e,t,a,i){return this.execute("post","/api/email/query",{templateName:e,dateStart:t,dateEnd:a,success:i},{withNext:!0})}async getMail(e){return this.execute("get","/api/email/get?token="+e)}async getInvoiceTemplates(){return this.execute("get","/api/invoicetemplate")}async getInvoiceTemplate(e){return this.execute("get",`/api/invoicetemplate/${e}`)}async createInvoiceTemplate(e){return this.execute("post","/api/invoicetemplate",e)}async updateInvoiceTemplate(e){return this.execute("put","/api/invoicetemplate",e)}async deleteInvoiceTemplate(e){return this.execute("delete","/api/invoicetemplate",{id:e})}async addInvoiceTemplateImage(e,t,a){const i=this._createFormData(a,"image.jpg");return this.execute("post",`/api/invoicetemplate/image/${e}/${t}`,i)}async deleteInvoiceTemplateImage(e,t){return this.execute("delete",`/api/invoicetemplate/image/${e}/${t}`)}async getItemTemplatesList(){return this.execute("get","/api/itemtemplate/list")}async getItemTemplates(){return this.execute("get","/api/itemtemplate")}async createItemTemplate(e){return this.execute("post","/api/itemtemplate",e)}async updateItemTemplate(e){return this.execute("put","/api/itemtemplate",e)}async deleteItemTemplate(e){return this.execute("delete","/api/itemtemplate",{id:e})}async getFeatures(){return this.execute("get","/api/feature")}async getFeaturesOnClient(){return this.execute("get","/api/feature/onclient")}async getFeaturesOnClientForAll(){return this.execute("get","/api/feature/onclientforall")}async getAllFeatures(){return this.execute("get","/api/feature/all")}async getBlogs(){return this.execute("get","/api/blog")}async getBlog(e){return this.execute("get","/api/blog/"+e)}async getPublicBlog(e){return this.execute("get","/api/blog/"+e+"/public")}async createBlog(e,t,a,i){return this.execute("post","/api/blog",{name:e,public:t,commentsEnabled:a,editors:i})}async saveBlog(e,t,a,i,n){return this.execute("put","/api/blog",{_id:e,name:t,public:a,commentsEnabled:i,editors:n})}async deleteBlog(e){return this.execute("delete","/api/blog",{_id:e})}async getBlogOverview(e){return this.execute("get","/api/blog/"+e+"/overview")}async queryBlog(e,t,a,i,n,r,s){return this.execute("post","/api/blog/"+e+"/query",{tag:t,text:a,limit:i,previousArticle:n,searchTag:r,sortBy:s})}async getArticles(e){return this.execute("get","/api/blog/"+e+"/article")}async getArticle(e,t){return this.execute("get","/api/blog/"+e+"/article/"+t)}async getArticleBySlug(e,t){return this.execute("get","/api/blog/article/"+e+"/"+t)}async createArticle(e,t,a){return this.execute("post","/api/blog/"+e+"/article",{title:t,slug:a})}async saveArticle(e,t,a,i,n,r,s,o){return this.execute("put","/api/blog/"+e+"/article",{_id:t,title:a,slug:i,content:o,tags:r,public:n,author:s})}async deleteArticle(e,t){return this.execute("delete","/api/blog/"+e+"/article",{_id:t})}async getNewsletters(){return this.execute("get","/api/newsletter")}async createNewsletter(e,t){return this.execute("post","/api/newsletter",{name:e,editors:t})}async getNewsletter(e){return this.execute("get","/api/newsletter/"+e)}async updateNewsletter(e,t,a,i){return this.execute("put","/api/newsletter/"+e,{name:t,sender:a,editors:i})}async deleteNewsletter(e){return this.execute("delete","/api/newsletter/"+e)}async joinNewsletter(e,t){return this.execute("post","/api/newsletter/join",{id:e,email:t})}async confirmNewsletter(e){return this.execute("post","/api/newsletter/confirm",{token:e})}async unsubscribeFromNewsletter(e){return this.execute("post","/api/newsletter/unsubscribe",{token:e})}async getNewsletterBlocks(){return this.execute("get","/api/newsletterblock")}async getNewsletterBlock(e){return this.execute("get","/api/newsletterblock/"+e)}async createNewsletterBlock(e){return this.execute("post","/api/newsletterblock",{name:e})}async updateNewsletterBlock(e,t,a,i,n,r){return this.execute("put","/api/newsletterblock/"+e,{name:t,inputs:a,html:i,css:n,acceptsChildren:r})}async deleteNewsletterBlock(e){return this.execute("delete","/api/newsletterblock/"+e)}async getNewsletterMails(e){return this.execute("get","/api/newslettermail/"+e)}async getNewsletterMail(e,t){return this.execute("get","/api/newslettermail/"+e+"/"+t)}async createNewsletterMail(e,t){return this.execute("post","/api/newslettermail/"+e,{title:t})}async updateNewsletterMail(e,t,a,i,n){return this.execute("put","/api/newslettermail/"+e+"/"+t,{title:a,blocks:i,parentBlock:n})}async generatePreviewNewsletterMail(e,t){return this.execute("post","/api/newslettermail/render",{blocks:e,parentBlock:t})}async sendTestNewsletter(e,t,a){return this.execute("post","/api/newslettermail/"+e+"/"+t+"/sendTest",{email:a})}async sendOutNewsletter(e,t){return this.execute("post","/api/newslettermail/"+e+"/"+t+"/send",{})}async getPages(){return this.execute("get","/api/page")}async createPage(e,t){return this.execute("post","/api/page",{title:e,slug:t})}async getPage(e){return this.execute("get","/api/page/"+e)}async updatePage(e,t,a,i,n){return this.execute("put","/api/page",{_id:e,title:t,slug:a,public:i,content:n})}async deletePage(e){return this.execute("delete","/api/page",{_id:e})}async getPublicPage(e,t){return this.execute("get","/api/page/public/"+e+"/"+t)}async setItemFlag(e,t,a,i,n,r){return this.execute("post","/api/itemflag",{item:e,isStaffPick:t,featureWeight:a,isGame:i,replaceIndex:n,internalRating:r})}getDownloadUrl(e){return`${this.getApiBaseUrl()}/api/item/download/${e}`}getAttachmentDownloadUrl(e,t,a,i){return`${this.getApiBaseUrl()}${this._getAttachmentUrlPath(e,t,a,i)}`}getPublicAttachmentDownloadUrl(e,t,a,i){return`${this.getApiBaseUrl()}${this._getAttachmentUrlPath(e,t,a,i,!0)}`}getPublicDownloadUrl(e){return`${this.getApiBaseUrl()}/api/item/publicdownload/${e}`}async postFeedback(e){return this.execute("post","/api/feedback",{text:e})}},exports.ApiGateway=Y,exports.Block=ce,exports.CustomField=ne,exports.EventEmitter=m,exports.Field=ie,exports.InvalidArgumentException=M,exports.InvalidStateException=class extends T{constructor(e){super(e,"InvalidStateException")}},exports.Item=E,exports.ItemCache=zn,exports.ItemRepo=Ki,exports.ItemVisibility=wc,exports.LinkableItemsCache=class{linkableItemsCache;apiGateway;itemCache;usePublicApi;constructor(e,t,a=!1){this.linkableItemsCache=new Map,this.apiGateway=e,this.itemCache=t,this.usePublicApi=a}clear(){this.linkableItemsCache.clear()}resolveItem(e,t){for(const a of t)if(a._id===e)return a;return null}async loadLinkableItems(e,t){if(!e)throw"loadLinkableItems(): Item cannot be null!";let a=[];if(t.linkableTypes&&t.linkableTypes.length){if(!this.usePublicApi){const i=t.linkableTypes.join("#")+(e.folder?e.folder._id:"");if(this.linkableItemsCache.has(i))return this.linkableItemsCache.get(i);const n=[...t.linkableTypes];n.includes("Package")||n.push("Package");const r={types:n,folder:e.folder?e.folder._id:null};a=(await this.apiGateway.call("LinkableItemsCache::loadLinkableItems","queryItemsList",r)).filter((e=>"Package"!==e.type||t.linkableTypes.includes(e.packageType)));for(const i of e.links)if(null==this.resolveItem(i.to,a))try{const e=await this.itemCache.getItem(i.to);t.linkableTypes.includes(e.type)&&a.push(e)}catch(e){console.error(`Link item ${i.to} not found. Dead link? (${e})`)}this.linkableItemsCache.set(i,a)}}else{for(const t of e.links){const e=await this.itemCache.getItem(t.to);a.push(e)}const i=t.name+"#CurrentLinks";this.linkableItemsCache.set(i,a)}return a}},exports.LoaderException=C,exports.PackageTools=Gi,exports.PreparedItem=re,exports.Profiler=x,exports.Proxifier=S,exports.ProxyEvent=g,exports.QuotaExceededException=I,exports.Script=X,exports.ScriptField=J,exports.Snapshot=G,exports.Storage=sn,exports.Template=oe,exports.TemplateFactory=le,exports.ThumbCache=Yn,exports.UndoManager=Zi,exports.eventBus=y,exports.getDatatypeByName=R,exports.getDatatypes=function(){return structuredClone(L)},exports.hasPermission=function(e,t,a){if(e.admin&&!a)return!0;if(e.superadmin)return!0;if(Array.isArray(e.permissions))if(Array.isArray(t)){for(const a of e.permissions)for(const e of t)if(a===e)return!0}else for(const a of e.permissions)if(a===t)return!0;return!1},exports.profileAsyncBlock=async function(e,t){return x.instance.asyncBlock(e,t)},exports.profileBlock=function(e,t){return x.instance.block(e,t)},exports.tools=_,exports.verifyAcl=se;
|
|
19
19
|
//# sourceMappingURL=lemonate-gateway.cjs.js.map
|