@iebh/tera-fy 2.3.7 → 2.3.9
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/CHANGELOG.md +35 -0
- package/dist/lib/projectFile.js +118 -6
- package/dist/lib/projectFile.js.map +1 -1
- package/dist/lib/syncro/entities.d.ts +7 -1
- package/dist/lib/syncro/entities.js +79 -95
- package/dist/lib/syncro/entities.js.map +1 -1
- package/dist/lib/syncro/keyed.js +24 -23
- package/dist/lib/syncro/keyed.js.map +1 -1
- package/dist/lib/syncro/syncro.d.ts +15 -2
- package/dist/lib/syncro/syncro.js +124 -43
- package/dist/lib/syncro/syncro.js.map +1 -1
- package/dist/lib/terafy.bootstrapper.js +11 -11
- package/dist/lib/terafy.bootstrapper.js.map +1 -1
- package/dist/lib/terafy.client.js +157 -158
- package/dist/lib/terafy.client.js.map +1 -1
- package/dist/lib/terafy.proxy.js +32 -27
- package/dist/lib/terafy.proxy.js.map +1 -1
- package/dist/lib/terafy.server.js +52 -54
- package/dist/lib/terafy.server.js.map +1 -1
- package/dist/plugin.vue2.es2019.js +27 -27
- package/dist/plugins/firebase.js +22 -10
- package/dist/plugins/firebase.js.map +1 -1
- package/dist/plugins/vue2.d.ts +1 -2
- package/dist/plugins/vue2.js +24 -17
- package/dist/plugins/vue2.js.map +1 -1
- package/dist/plugins/vue3.d.ts +1 -2
- package/dist/plugins/vue3.js +7 -11
- package/dist/plugins/vue3.js.map +1 -1
- package/dist/terafy.bootstrapper.es2019.js +2 -2
- package/dist/terafy.bootstrapper.js +2 -2
- package/dist/terafy.es2019.js +2 -2
- package/dist/terafy.js +1 -1
- package/lib/syncro/entities.ts +94 -103
- package/lib/syncro/keyed.ts +1 -0
- package/lib/syncro/syncro.ts +44 -8
- package/lib/terafy.client.ts +0 -1
- package/lib/terafy.server.ts +6 -7
- package/package.json +4 -3
- package/plugins/vue2.ts +2 -3
- package/plugins/vue3.ts +2 -4
- package/tsconfig.json +3 -3
package/dist/terafy.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Oo=typeof global=="object"&&global&&global.Object===Object&&global,mt=Oo;var jo=typeof self=="object"&&self&&self.Object===Object&&self,Ao=mt||jo||Function("return this")(),c=Ao;var So=c.Symbol,x=So;var Qt=Object.prototype,Io=Qt.hasOwnProperty,_o=Qt.toString,at=x?x.toStringTag:void 0;function Eo(t){var e=Io.call(t,at),r=t[at];try{t[at]=void 0;var o=!0}catch{}var a=_o.call(t);return o&&(e?t[at]=r:delete t[at]),a}var te=Eo;var Fo=Object.prototype,Co=Fo.toString;function Mo(t){return Co.call(t)}var ee=Mo;var No="[object Null]",Ro="[object Undefined]",re=x?x.toStringTag:void 0;function Lo(t){return t==null?t===void 0?Ro:No:re&&re in Object(t)?te(t):ee(t)}var w=Lo;function Bo(t){return t!=null&&typeof t=="object"}var v=Bo;var Do="[object Symbol]";function ko(t){return typeof t=="symbol"||v(t)&&w(t)==Do}var D=ko;function Uo(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r<o;)a[r]=e(t[r],r,t);return a}var ut=Uo;var Go=Array.isArray,g=Go;var zo=1/0,oe=x?x.prototype:void 0,ae=oe?oe.toString:void 0;function ie(t){if(typeof t=="string")return t;if(g(t))return ut(t,ie)+"";if(D(t))return ae?ae.call(t):"";var e=t+"";return e=="0"&&1/t==-zo?"-0":e}var ne=ie;function Ko(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var P=Ko;function Wo(t){return t}var se=Wo;var Yo="[object AsyncFunction]",$o="[object Function]",Ho="[object GeneratorFunction]",Vo="[object Proxy]";function qo(t){if(!P(t))return!1;var e=w(t);return e==$o||e==Ho||e==Yo||e==Vo}var dt=qo;var Zo=c["__core-js_shared__"],ct=Zo;var fe=(function(){var t=/[^.]+$/.exec(ct&&ct.keys&&ct.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function Jo(t){return!!fe&&fe in t}var pe=Jo;var Xo=Function.prototype,Qo=Xo.toString;function ta(t){if(t!=null){try{return Qo.call(t)}catch{}try{return t+""}catch{}}return""}var A=ta;var ea=/[\\^$.*+?()[\]{}|]/g,ra=/^\[object .+?Constructor\]$/,oa=Function.prototype,aa=Object.prototype,ia=oa.toString,na=aa.hasOwnProperty,sa=RegExp("^"+ia.call(na).replace(ea,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fa(t){if(!P(t)||pe(t))return!1;var e=dt(t)?sa:ra;return e.test(A(t))}var le=fa;function pa(t,e){return t?.[e]}var me=pa;function la(t,e){var r=me(t,e);return le(r)?r:void 0}var T=la;var ma=T(c,"WeakMap"),ht=ma;var ue=Object.create,ua=(function(){function t(){}return function(e){if(!P(e))return{};if(ue)return ue(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}})(),de=ua;function da(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var ce=da;function ca(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r<o;)e[r]=t[r];return e}var he=ca;var ha=800,ga=16,xa=Date.now;function ya(t){var e=0,r=0;return function(){var o=xa(),a=ga-(o-r);if(r=o,a>0){if(++e>=ha)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var ge=ya;function ba(t){return function(){return t}}var xe=ba;var va=(function(){try{var t=T(Object,"defineProperty");return t({},"",{}),t}catch{}})(),k=va;var Ta=k?function(t,e){return k(t,"toString",{configurable:!0,enumerable:!1,value:xe(e),writable:!0})}:se,ye=Ta;var wa=ge(ye),be=wa;function Pa(t,e){for(var r=-1,o=t==null?0:t.length;++r<o&&e(t[r],r,t)!==!1;);return t}var ve=Pa;var Oa=9007199254740991,ja=/^(?:0|[1-9]\d*)$/;function Aa(t,e){var r=typeof t;return e=e??Oa,!!e&&(r=="number"||r!="symbol"&&ja.test(t))&&t>-1&&t%1==0&&t<e}var U=Aa;function Sa(t,e,r){e=="__proto__"&&k?k(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var gt=Sa;function Ia(t,e){return t===e||t!==t&&e!==e}var xt=Ia;var _a=Object.prototype,Ea=_a.hasOwnProperty;function Fa(t,e,r){var o=t[e];(!(Ea.call(t,e)&&xt(o,r))||r===void 0&&!(e in t))&>(t,e,r)}var G=Fa;function Ca(t,e,r,o){var a=!r;r||(r={});for(var n=-1,i=e.length;++n<i;){var s=e[n],f=o?o(r[s],t[s],s,r,t):void 0;f===void 0&&(f=t[s]),a?gt(r,s,f):G(r,s,f)}return r}var j=Ca;var Te=Math.max;function Ma(t,e,r){return e=Te(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=Te(o.length-e,0),i=Array(n);++a<n;)i[a]=o[e+a];a=-1;for(var s=Array(e+1);++a<e;)s[a]=o[a];return s[e]=r(i),ce(t,this,s)}}var we=Ma;var Na=9007199254740991;function Ra(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Na}var z=Ra;function La(t){return t!=null&&z(t.length)&&!dt(t)}var yt=La;var Ba=Object.prototype;function Da(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||Ba;return t===r}var K=Da;function ka(t,e){for(var r=-1,o=Array(t);++r<t;)o[r]=e(r);return o}var Pe=ka;var Ua="[object Arguments]";function Ga(t){return v(t)&&w(t)==Ua}var Ut=Ga;var Oe=Object.prototype,za=Oe.hasOwnProperty,Ka=Oe.propertyIsEnumerable,Wa=Ut((function(){return arguments})())?Ut:function(t){return v(t)&&za.call(t,"callee")&&!Ka.call(t,"callee")},W=Wa;function Ya(){return!1}var je=Ya;var Ie=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ae=Ie&&typeof module=="object"&&module&&!module.nodeType&&module,$a=Ae&&Ae.exports===Ie,Se=$a?c.Buffer:void 0,Ha=Se?Se.isBuffer:void 0,Va=Ha||je,bt=Va;var qa="[object Arguments]",Za="[object Array]",Ja="[object Boolean]",Xa="[object Date]",Qa="[object Error]",ti="[object Function]",ei="[object Map]",ri="[object Number]",oi="[object Object]",ai="[object RegExp]",ii="[object Set]",ni="[object String]",si="[object WeakMap]",fi="[object ArrayBuffer]",pi="[object DataView]",li="[object Float32Array]",mi="[object Float64Array]",ui="[object Int8Array]",di="[object Int16Array]",ci="[object Int32Array]",hi="[object Uint8Array]",gi="[object Uint8ClampedArray]",xi="[object Uint16Array]",yi="[object Uint32Array]",u={};u[li]=u[mi]=u[ui]=u[di]=u[ci]=u[hi]=u[gi]=u[xi]=u[yi]=!0;u[qa]=u[Za]=u[fi]=u[Ja]=u[pi]=u[Xa]=u[Qa]=u[ti]=u[ei]=u[ri]=u[oi]=u[ai]=u[ii]=u[ni]=u[si]=!1;function bi(t){return v(t)&&z(t.length)&&!!u[w(t)]}var _e=bi;function vi(t){return function(e){return t(e)}}var Y=vi;var Ee=typeof exports=="object"&&exports&&!exports.nodeType&&exports,it=Ee&&typeof module=="object"&&module&&!module.nodeType&&module,Ti=it&&it.exports===Ee,Gt=Ti&&mt.process,wi=(function(){try{var t=it&&it.require&&it.require("util").types;return t||Gt&&Gt.binding&&Gt.binding("util")}catch{}})(),S=wi;var Fe=S&&S.isTypedArray,Pi=Fe?Y(Fe):_e,Ce=Pi;var Oi=Object.prototype,ji=Oi.hasOwnProperty;function Ai(t,e){var r=g(t),o=!r&&W(t),a=!r&&!o&&bt(t),n=!r&&!o&&!a&&Ce(t),i=r||o||a||n,s=i?Pe(t.length,String):[],f=s.length;for(var p in t)(e||ji.call(t,p))&&!(i&&(p=="length"||a&&(p=="offset"||p=="parent")||n&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||U(p,f)))&&s.push(p);return s}var vt=Ai;function Si(t,e){return function(r){return t(e(r))}}var Tt=Si;var Ii=Tt(Object.keys,Object),Me=Ii;var _i=Object.prototype,Ei=_i.hasOwnProperty;function Fi(t){if(!K(t))return Me(t);var e=[];for(var r in Object(t))Ei.call(t,r)&&r!="constructor"&&e.push(r);return e}var Ne=Fi;function Ci(t){return yt(t)?vt(t):Ne(t)}var $=Ci;function Mi(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var Re=Mi;var Ni=Object.prototype,Ri=Ni.hasOwnProperty;function Li(t){if(!P(t))return Re(t);var e=K(t),r=[];for(var o in t)o=="constructor"&&(e||!Ri.call(t,o))||r.push(o);return r}var Le=Li;function Bi(t){return yt(t)?vt(t,!0):Le(t)}var H=Bi;var Di=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ki=/^\w*$/;function Ui(t,e){if(g(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||D(t)?!0:ki.test(t)||!Di.test(t)||e!=null&&t in Object(e)}var Be=Ui;var Gi=T(Object,"create"),I=Gi;function zi(){this.__data__=I?I(null):{},this.size=0}var De=zi;function Ki(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ke=Ki;var Wi="__lodash_hash_undefined__",Yi=Object.prototype,$i=Yi.hasOwnProperty;function Hi(t){var e=this.__data__;if(I){var r=e[t];return r===Wi?void 0:r}return $i.call(e,t)?e[t]:void 0}var Ue=Hi;var Vi=Object.prototype,qi=Vi.hasOwnProperty;function Zi(t){var e=this.__data__;return I?e[t]!==void 0:qi.call(e,t)}var Ge=Zi;var Ji="__lodash_hash_undefined__";function Xi(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=I&&e===void 0?Ji:e,this}var ze=Xi;function V(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}V.prototype.clear=De;V.prototype.delete=ke;V.prototype.get=Ue;V.prototype.has=Ge;V.prototype.set=ze;var zt=V;function Qi(){this.__data__=[],this.size=0}var Ke=Qi;function tn(t,e){for(var r=t.length;r--;)if(xt(t[r][0],e))return r;return-1}var F=tn;var en=Array.prototype,rn=en.splice;function on(t){var e=this.__data__,r=F(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():rn.call(e,r,1),--this.size,!0}var We=on;function an(t){var e=this.__data__,r=F(e,t);return r<0?void 0:e[r][1]}var Ye=an;function nn(t){return F(this.__data__,t)>-1}var $e=nn;function sn(t,e){var r=this.__data__,o=F(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}var He=sn;function q(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}q.prototype.clear=Ke;q.prototype.delete=We;q.prototype.get=Ye;q.prototype.has=$e;q.prototype.set=He;var C=q;var fn=T(c,"Map"),M=fn;function pn(){this.size=0,this.__data__={hash:new zt,map:new(M||C),string:new zt}}var Ve=pn;function ln(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var qe=ln;function mn(t,e){var r=t.__data__;return qe(e)?r[typeof e=="string"?"string":"hash"]:r.map}var N=mn;function un(t){var e=N(this,t).delete(t);return this.size-=e?1:0,e}var Ze=un;function dn(t){return N(this,t).get(t)}var Je=dn;function cn(t){return N(this,t).has(t)}var Xe=cn;function hn(t,e){var r=N(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}var Qe=hn;function Z(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}Z.prototype.clear=Ve;Z.prototype.delete=Ze;Z.prototype.get=Je;Z.prototype.has=Xe;Z.prototype.set=Qe;var nt=Z;var gn="Expected a function";function Kt(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(gn);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var i=t.apply(this,o);return r.cache=n.set(a,i)||n,i};return r.cache=new(Kt.Cache||nt),r}Kt.Cache=nt;var tr=Kt;var xn=500;function yn(t){var e=tr(t,function(o){return r.size===xn&&r.clear(),o}),r=e.cache;return e}var er=yn;var bn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,vn=/\\(\\)?/g,Tn=er(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(bn,function(r,o,a,n){e.push(a?n.replace(vn,"$1"):o||r)}),e}),rr=Tn;function wn(t){return t==null?"":ne(t)}var or=wn;function Pn(t,e){return g(t)?t:Be(t,e)?[t]:rr(or(t))}var O=Pn;var On=1/0;function jn(t){if(typeof t=="string"||D(t))return t;var e=t+"";return e=="0"&&1/t==-On?"-0":e}var R=jn;function An(t,e){e=O(e,t);for(var r=0,o=e.length;t!=null&&r<o;)t=t[R(e[r++])];return r&&r==o?t:void 0}var wt=An;function Sn(t,e){for(var r=-1,o=e.length,a=t.length;++r<o;)t[a+r]=e[r];return t}var J=Sn;var ar=x?x.isConcatSpreadable:void 0;function In(t){return g(t)||W(t)||!!(ar&&t&&t[ar])}var ir=In;function nr(t,e,r,o,a){var n=-1,i=t.length;for(r||(r=ir),a||(a=[]);++n<i;){var s=t[n];e>0&&r(s)?e>1?nr(s,e-1,r,o,a):J(a,s):o||(a[a.length]=s)}return a}var sr=nr;function _n(t){var e=t==null?0:t.length;return e?sr(t,1):[]}var fr=_n;function En(t){return be(we(t,void 0,fr),t+"")}var Pt=En;var Fn=Tt(Object.getPrototypeOf,Object),X=Fn;var Cn="[object Object]",Mn=Function.prototype,Nn=Object.prototype,pr=Mn.toString,Rn=Nn.hasOwnProperty,Ln=pr.call(Object);function Bn(t){if(!v(t)||w(t)!=Cn)return!1;var e=X(t);if(e===null)return!0;var r=Rn.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&pr.call(r)==Ln}var lr=Bn;function Dn(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o<a;)n[o]=t[o+e];return n}var mr=Dn;function kn(){this.__data__=new C,this.size=0}var ur=kn;function Un(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var dr=Un;function Gn(t){return this.__data__.get(t)}var cr=Gn;function zn(t){return this.__data__.has(t)}var hr=zn;var Kn=200;function Wn(t,e){var r=this.__data__;if(r instanceof C){var o=r.__data__;if(!M||o.length<Kn-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new nt(o)}return r.set(t,e),this.size=r.size,this}var gr=Wn;function Q(t){var e=this.__data__=new C(t);this.size=e.size}Q.prototype.clear=ur;Q.prototype.delete=dr;Q.prototype.get=cr;Q.prototype.has=hr;Q.prototype.set=gr;var xr=Q;function Yn(t,e){return t&&j(e,$(e),t)}var yr=Yn;function $n(t,e){return t&&j(e,H(e),t)}var br=$n;var Pr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vr=Pr&&typeof module=="object"&&module&&!module.nodeType&&module,Hn=vr&&vr.exports===Pr,Tr=Hn?c.Buffer:void 0,wr=Tr?Tr.allocUnsafe:void 0;function Vn(t,e){if(e)return t.slice();var r=t.length,o=wr?wr(r):new t.constructor(r);return t.copy(o),o}var Or=Vn;function qn(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r<o;){var i=t[r];e(i,r,t)&&(n[a++]=i)}return n}var jr=qn;function Zn(){return[]}var Ot=Zn;var Jn=Object.prototype,Xn=Jn.propertyIsEnumerable,Ar=Object.getOwnPropertySymbols,Qn=Ar?function(t){return t==null?[]:(t=Object(t),jr(Ar(t),function(e){return Xn.call(t,e)}))}:Ot,tt=Qn;function ts(t,e){return j(t,tt(t),e)}var Sr=ts;var es=Object.getOwnPropertySymbols,rs=es?function(t){for(var e=[];t;)J(e,tt(t)),t=X(t);return e}:Ot,jt=rs;function os(t,e){return j(t,jt(t),e)}var Ir=os;function as(t,e,r){var o=e(t);return g(t)?o:J(o,r(t))}var At=as;function is(t){return At(t,$,tt)}var _r=is;function ns(t){return At(t,H,jt)}var St=ns;var ss=T(c,"DataView"),It=ss;var fs=T(c,"Promise"),_t=fs;var ps=T(c,"Set"),Et=ps;var Er="[object Map]",ls="[object Object]",Fr="[object Promise]",Cr="[object Set]",Mr="[object WeakMap]",Nr="[object DataView]",ms=A(It),us=A(M),ds=A(_t),cs=A(Et),hs=A(ht),L=w;(It&&L(new It(new ArrayBuffer(1)))!=Nr||M&&L(new M)!=Er||_t&&L(_t.resolve())!=Fr||Et&&L(new Et)!=Cr||ht&&L(new ht)!=Mr)&&(L=function(t){var e=w(t),r=e==ls?t.constructor:void 0,o=r?A(r):"";if(o)switch(o){case ms:return Nr;case us:return Er;case ds:return Fr;case cs:return Cr;case hs:return Mr}return e});var et=L;var gs=Object.prototype,xs=gs.hasOwnProperty;function ys(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&xs.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var Rr=ys;var bs=c.Uint8Array,Wt=bs;function vs(t){var e=new t.constructor(t.byteLength);return new Wt(e).set(new Wt(t)),e}var rt=vs;function Ts(t,e){var r=e?rt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var Lr=Ts;var ws=/\w*$/;function Ps(t){var e=new t.constructor(t.source,ws.exec(t));return e.lastIndex=t.lastIndex,e}var Br=Ps;var Dr=x?x.prototype:void 0,kr=Dr?Dr.valueOf:void 0;function Os(t){return kr?Object(kr.call(t)):{}}var Ur=Os;function js(t,e){var r=e?rt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var Gr=js;var As="[object Boolean]",Ss="[object Date]",Is="[object Map]",_s="[object Number]",Es="[object RegExp]",Fs="[object Set]",Cs="[object String]",Ms="[object Symbol]",Ns="[object ArrayBuffer]",Rs="[object DataView]",Ls="[object Float32Array]",Bs="[object Float64Array]",Ds="[object Int8Array]",ks="[object Int16Array]",Us="[object Int32Array]",Gs="[object Uint8Array]",zs="[object Uint8ClampedArray]",Ks="[object Uint16Array]",Ws="[object Uint32Array]";function Ys(t,e,r){var o=t.constructor;switch(e){case Ns:return rt(t);case As:case Ss:return new o(+t);case Rs:return Lr(t,r);case Ls:case Bs:case Ds:case ks:case Us:case Gs:case zs:case Ks:case Ws:return Gr(t,r);case Is:return new o;case _s:case Cs:return new o(t);case Es:return Br(t);case Fs:return new o;case Ms:return Ur(t)}}var zr=Ys;function $s(t){return typeof t.constructor=="function"&&!K(t)?de(X(t)):{}}var Kr=$s;var Hs="[object Map]";function Vs(t){return v(t)&&et(t)==Hs}var Wr=Vs;var Yr=S&&S.isMap,qs=Yr?Y(Yr):Wr,$r=qs;var Zs="[object Set]";function Js(t){return v(t)&&et(t)==Zs}var Hr=Js;var Vr=S&&S.isSet,Xs=Vr?Y(Vr):Hr,qr=Xs;var Qs=1,tf=2,ef=4,Zr="[object Arguments]",rf="[object Array]",of="[object Boolean]",af="[object Date]",nf="[object Error]",Jr="[object Function]",sf="[object GeneratorFunction]",ff="[object Map]",pf="[object Number]",Xr="[object Object]",lf="[object RegExp]",mf="[object Set]",uf="[object String]",df="[object Symbol]",cf="[object WeakMap]",hf="[object ArrayBuffer]",gf="[object DataView]",xf="[object Float32Array]",yf="[object Float64Array]",bf="[object Int8Array]",vf="[object Int16Array]",Tf="[object Int32Array]",wf="[object Uint8Array]",Pf="[object Uint8ClampedArray]",Of="[object Uint16Array]",jf="[object Uint32Array]",m={};m[Zr]=m[rf]=m[hf]=m[gf]=m[of]=m[af]=m[xf]=m[yf]=m[bf]=m[vf]=m[Tf]=m[ff]=m[pf]=m[Xr]=m[lf]=m[mf]=m[uf]=m[df]=m[wf]=m[Pf]=m[Of]=m[jf]=!0;m[nf]=m[Jr]=m[cf]=!1;function Ft(t,e,r,o,a,n){var i,s=e&Qs,f=e&tf,p=e&ef;if(r&&(i=a?r(t,o,a,n):r(t)),i!==void 0)return i;if(!P(t))return t;var y=g(t);if(y){if(i=Rr(t),!s)return he(t,i)}else{var h=et(t),B=h==Jr||h==sf;if(bt(t))return Or(t,s);if(h==Xr||h==Zr||B&&!a){if(i=f||B?{}:Kr(t),!s)return f?Ir(t,br(i,t)):Sr(t,yr(i,t))}else{if(!m[h])return a?t:{};i=zr(t,h,s)}}n||(n=new xr);var ot=n.get(t);if(ot)return ot;n.set(t,i),qr(t)?t.forEach(function(b){i.add(Ft(b,e,r,b,t,n))}):$r(t)&&t.forEach(function(b,l){i.set(l,Ft(b,e,r,l,t,n))});var st=p?f?St:_r:f?H:$,ft=y?void 0:st(t);return ve(ft||t,function(b,l){ft&&(l=b,b=t[l]),G(i,l,Ft(b,e,r,l,t,n))}),i}var Ct=Ft;var Af=1,Sf=4;function If(t){return Ct(t,Af|Sf)}var Yt=If;function _f(t,e){return t!=null&&e in Object(t)}var Qr=_f;function Ef(t,e,r){e=O(e,t);for(var o=-1,a=e.length,n=!1;++o<a;){var i=R(e[o]);if(!(n=t!=null&&r(t,i)))break;t=t[i]}return n||++o!=a?n:(a=t==null?0:t.length,!!a&&z(a)&&U(i,a)&&(g(t)||W(t)))}var to=Ef;function Ff(t,e){return t!=null&&to(t,e,Qr)}var eo=Ff;function Cf(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ro=Cf;function Mf(t,e){return e.length<2?t:wt(t,mr(e,0,-1))}var oo=Mf;var Nf=Object.prototype,Rf=Nf.hasOwnProperty;function Lf(t,e){e=O(e,t);var r=-1,o=e.length;if(!o)return!0;for(var a=t==null||typeof t!="object"&&typeof t!="function";++r<o;){var n=e[r];if(typeof n=="string"){if(n==="__proto__"&&!Rf.call(t,"__proto__"))return!1;if(n==="constructor"&&r+1<o&&typeof e[r+1]=="string"&&e[r+1]==="prototype"){if(a&&r===0)continue;return!1}}}var i=oo(t,e);return i==null||delete i[R(ro(e))]}var ao=Lf;function Bf(t){return lr(t)?void 0:t}var io=Bf;var Df=1,kf=2,Uf=4,Gf=Pt(function(t,e){var r={};if(t==null)return r;var o=!1;e=ut(e,function(n){return n=O(n,t),o||(o=n.length>1),n}),j(t,St(t),r),o&&(r=Ct(r,Df|kf|Uf,io));for(var a=e.length;a--;)ao(r,e[a]);return r}),$t=Gf;function zf(t,e,r,o){if(!P(t))return t;e=O(e,t);for(var a=-1,n=e.length,i=n-1,s=t;s!=null&&++a<n;){var f=R(e[a]),p=r;if(f==="__proto__"||f==="constructor"||f==="prototype")return t;if(a!=i){var y=s[f];p=o?o(y,f,s):void 0,p===void 0&&(p=P(y)?y:U(e[a+1])?[]:{})}G(s,f,p),s=s[f]}return t}var no=zf;function Kf(t,e,r){for(var o=-1,a=e.length,n={};++o<a;){var i=e[o],s=wt(t,i);r(s,i)&&no(n,O(i,t),s)}return n}var so=Kf;function Wf(t,e){return so(t,e,function(r,o){return eo(t,o)})}var fo=Wf;var Yf=Pt(function(t,e){return t==null?{}:fo(t,e)}),Mt=Yf;function po(t){return{all:t=t||new Map,on:function(e,r){var o=t.get(e);o?o.push(r):t.set(e,[r])},off:function(e,r){var o=t.get(e);o&&(r?o.splice(o.indexOf(r)>>>0,1):t.set(e,[]))},emit:function(e,r){var o=t.get(e);o&&o.slice().map(function(a){a(r)}),(o=t.get("*"))&&o.slice().map(function(a){a(e,r)})}}}var lo="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Ht=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=lo[r[t]&63];return e};var $f="Invalid number",Hf="Invalid rounding method";var Nt="jedec";var uo="bits",co="byte",ho="bytes",Vf="kbit";var go="array",qf="function",xo="object",Zf="string",yo="exponent",Jf="round";var Rt={symbol:{iec:{bits:["bit","Kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["bit","Kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},fullform:{iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]}},Xf=[1,1024,1048576,1073741824,1099511627776,0x4000000000000,1152921504606847e3,11805916207174113e5,12089258196146292e8],Qf=[1,1e3,1e6,1e9,1e12,1e15,1e18,1e21,1e24],tp=Math.log(1024),ep=Math.log(1e3),mo={si:{isDecimal:!0,ceil:1e3,actualStandard:Nt},iec:{isDecimal:!1,ceil:1024,actualStandard:"iec"},[Nt]:{isDecimal:!1,ceil:1024,actualStandard:Nt}};function rp(t,e){return mo[t]?mo[t]:e===2?{isDecimal:!1,ceil:1024,actualStandard:"iec"}:{isDecimal:!0,ceil:1e3,actualStandard:Nt}}function op(t,e,r,o,a,n,i,s){let f=[];f[0]=t>0?0 .toPrecision(t):0;let p=f[1]=Rt.symbol[e][r?uo:ho][0];return i===yo?0:(o[f[1]]&&(f[1]=o[f[1]]),a&&(f[1]=n[0]||Rt.fullform[e][0]+(r?"bit":co)),i===go?f:i===xo?{value:f[0],symbol:f[1],exponent:0,unit:p}:f.join(s))}function bo(t,e,r,o,a){let n=r?Qf[e]:Xf[e],i=t/n;return o&&(i*=8,i>=a&&e<8&&(i/=a,e++)),{result:i,e}}function ap(t,e,r,o,a,n,i,s,f){let p=t.toPrecision(e);if(p.includes("e")&&r<8){r++;let{result:y}=bo(o,r,a,n,i),h=f>0?Math.pow(10,f):1;p=(h===1?s(y):s(y*h)/h).toPrecision(e)}return{value:p,e:r}}function ip(t,e,r,o,a,n){let i=t;if(e===!0?i=i.toLocaleString():e.length>0?i=i.toLocaleString(e,r):o.length>0&&(i=i.toString().replace(".",o)),a&&n>0){let s=i.toString(),f=o||(s.match(/(\D)/g)||[]).pop()||".",p=s.split(f),y=p[1]||"",h=y.length,B=n-h;i=`${p[0]}${f}${y.padEnd(h+B,"0")}`}return i}function vo(t,{bits:e=!1,pad:r=!1,base:o=-1,round:a=2,locale:n="",localeOptions:i={},separator:s="",spacer:f=" ",symbols:p={},standard:y="",output:h=Zf,fullform:B=!1,fullforms:ot=[],exponent:st=-1,roundingMethod:ft=Jf,precision:b=0}={}){let l=st,E=Number(t),d=[],Lt=0,qt="",{isDecimal:pt,ceil:Bt,actualStandard:Dt}=rp(y,o),Zt=B===!0,Jt=E<0,lt=Math[ft];if(typeof t!="bigint"&&isNaN(t))throw new TypeError($f);if(typeof lt!==qf)throw new TypeError(Hf);if(Jt&&(E=-E),E===0)return op(b,Dt,e,p,Zt,ot,h,f);if((l===-1||isNaN(l))&&(l=Math.floor(pt?Math.log(E)/ep:Math.log(E)/tp),l<0&&(l=0)),l>8&&(b>0&&(b+=8-l),l=8),h===yo)return l;let{result:To,e:wo}=bo(E,l,pt,e,Bt);Lt=To,l=wo;let kt=l>0&&a>0?Math.pow(10,a):1;if(d[0]=kt===1?lt(Lt):lt(Lt*kt)/kt,d[0]===Bt&&l<8&&st===-1&&(d[0]=1,l++),b>0){let Xt=ap(d[0],b,l,E,pt,e,Bt,lt,a);d[0]=Xt.value,l=Xt.e}let Po=Rt.symbol[Dt][e?uo:ho];return qt=d[1]=pt&&l===1?e?Vf:"kB":Po[l],Jt&&(d[0]=-d[0]),p[d[1]]&&(d[1]=p[d[1]]),d[0]=ip(d[0],n,i,s,r,a),Zt&&(d[1]=ot[l]||Rt.fullform[Dt][l]+(e?"bit":co)+(d[0]===1?"":"s")),h===go?d:h===xo?{value:d[0],symbol:d[1],exponent:l,unit:qt}:f===" "?`${d[0]} ${d[1]}`:d.join(f)}var _=class t{constructor(e){this.meta={};if(!e.tera)throw new Error("Basic file requires a `tera` key to access the Tera instance");Object.assign(this,$t(e,"encodeIdFunction")),e.encodeIdFunction&&typeof e.encodeIdFunction=="function"&&(this.id=e.encodeIdFunction(this.id));let r=this.tera;Object.defineProperty(this,"_tera",{enumerable:!1,configurable:!1,get(){return r}}),delete this.tera,this.created&&typeof this.created=="string"&&(this.created=new Date(this.created)),this.modified&&typeof this.modified=="string"&&(this.modified=new Date(this.modified)),this.accessed&&typeof this.accessed=="string"&&(this.accessed=new Date(this.accessed)),this.isFolder&&(this.files=this.files?.map(o=>{let a=o.path.split(/\//).slice(3).join("/"),n=this.url+"/"+o.name;return o.meta.reflib&&(n=n.replace(/\/project\/download\//,"/project/library/")),new t({tera:this._tera,...o,sbId:o.id,id:o.path,encodeIdFunction:e.encodeIdFunction,path:a,url:n})})),this.teraUrl=this.url.replace(/^https?:\/\/(?:.+?)\/projects\/(?:.+?)\/project\/(.+)$/,"/project/$1"),this.sizeFormatted=vo(this.size||0,{spacer:""}),this.createdFormatted=this.created?this.created.toLocaleDateString():"Unknown created date",this.modifiedFormatted=this.modified?this.modified.toLocaleDateString():"Unknown modified date",this.accessedFormatted=this.accessed?this.accessed.toLocaleDateString():"Unknown access date"}getContents(e){return this._tera.getProjectFileContents(this.id,e)}setContents(e){return this._tera.setProjectFileContents(this.id,e,{})}getRefs(){return this._tera.getProjectLibrary(this.id)}setRefs(e){return this._tera.setProjectLibrary(this.id,e)}serialize(){return Mt(this,["id","sbId","name","icon","path","url","parsedName","created","modified","accessed","size","mime","meta"])}static deserialize(e){let r=Mt(e,["tera","id","sbId","name","icon","path","url","parsedName","created","modified","accessed","size","mime","meta"]);return new t(r)}};var Vt=class{constructor(e){this.settings={session:null,devMode:!1,verbosity:1,mode:"detect",modeTimeout:300,modeFallback:"child",modeOverrides:{child(e){e.siteUrl=="https://tera-tools.com/embed"&&(e.siteUrl="https://dev.tera-tools.com/embed")}},siteUrl:"https://tera-tools.com/embed",restrictOrigin:"*",frameSandbox:["allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-same-origin","allow-scripts","allow-top-navigation"],handshakeInterval:1e3,handshakeTimeout:1e4,debugPaths:null};this.events=po();this.dom={el:null,iframe:null,popup:null,stylesheet:null};this.methods=["handshake","setServerVerbosity","getUser","requireUser","getCredentials","getKindeToken","bindProject","getProject","getProjects","setActiveProject","requireProject","selectProject","getNamespace","setNamespace","listNamespaces","getProjectState","setProjectState","setProjectStateDefaults","setProjectStateRefresh","getProjectFileContents","deleteProjectFile","setProjectFileContents","createProjectFolder","deleteProjectFolder","selectProjectLibrary","getProjectLibrary","setProjectLibrary","projectLog","setPage","uiAlert","uiConfirm","uiJson","uiPanic","uiProgress","uiPrompt","uiThrow","uiSplat","uiWindow"];this.plugins=[];this.namespaces={};this.acceptPostboxes={};this.initPromise=null;e&&this.set(e)}send(e){let r=Ht();return this.acceptPostboxes[r]={},this.acceptPostboxes[r].promise=new Promise((o,a)=>{Object.assign(this.acceptPostboxes[r],{resolve:o,reject:a}),this.sendRaw({id:r,...e})}),this.acceptPostboxes[r].promise}sendRaw(e){let r;try{if(r={TERA:1,id:e.id||Ht(),...Yt(e)},this.settings.mode=="parent")window.parent.postMessage(r,this.settings.restrictOrigin);else if(this.settings.mode=="child")this.dom.iframe.contentWindow.postMessage(r,this.settings.restrictOrigin);else if(this.settings.mode=="popup")this.dom.popup.postMessage(r,this.settings.restrictOrigin);else throw this.settings.mode=="detect"?new Error("Call init() or detectMode() before trying to send data to determine the mode"):new Error(`Unknown TERA communication mode "${this.settings.mode}"`)}catch(o){throw this.debug("ERROR",1,"Message compose client->server:",o),this.debug("ERROR",1,"Attempted to dispatch payload client->server",r),o}}rpc(e,...r){return this.send({action:"rpc",method:e,args:r})}acceptMessage(e){if(e.origin==window.location.origin)return Promise.resolve();let r=e.data;return!r.TERA||!r.id?Promise.resolve():(this.debug("INFO",3,"Received message",r),r?.action=="response"&&this.acceptPostboxes[r.id]?(r.isError===!0?this.acceptPostboxes[r.id].reject(r.response):this.acceptPostboxes[r.id].resolve(r.response),Promise.resolve()):r?.action=="rpc"?Promise.resolve().then(()=>this[r.method].apply(this,r.args)).then(o=>this.sendRaw({id:r.id,action:"response",response:o})).catch(o=>{console.warn(`TERA-FY client threw on RPC:${r.method}:`,o),this.sendRaw({id:r.id,action:"response",isError:!0,response:o&&o.toString()})}):r?.action=="event"?Promise.resolve().then(()=>this.events.emit(r.event,...r.payload)).catch(o=>{throw console.warn(`TERA-FY client threw while handling emitted event "${r.event}"`,{message:r}),o}):r?.id?(this.debug("INFO",3,`Ignoring message ID ${r.id} - was meant for someone else?`),Promise.resolve()):(this.debug("INFO",3,"Unexpected incoming TERA-FY CLIENT message",{message:r}),Promise.resolve()))}mountNamespace(e){if(!/^[\w-]+$/.test(e))throw new Error("Namespaces must be alphanumeric + hyphens + underscores");return this.namespaces[e]?Promise.resolve(this.namespaces[e]):Promise.resolve().then(()=>this._mountNamespace(e)).then(()=>this.namespaces[e]||Promise.reject(`teraFy.mountNamespace('${e}') resolved but no namespace has been mounted`))}_mountNamespace(e){throw console.warn(`teraFy._mountNamespace() for ${e} has not been overridden by a TERA-fy plugin, load one to add this functionality for your preferred framework`),new Error("teraFy._mountNamespace() is not supported")}unmountNamespace(e){return this.namespaces[e]?this._unmountNamespace(e):Promise.resolve()}_unmountNamespace(e){console.warn(`teraFy.unbindNamespace() for ${e} has not been overridden by a TERA-fy plugin, load one to add this functionality for your preferred framework`)}init(e){if(e&&this.set(e),this.initPromise)return this.initPromise;window.addEventListener("message",this.acceptMessage.bind(this));let r=this;return this.initPromise=Promise.resolve().then(()=>this.settings.session||="tfy-"+this.getEntropicString(16)).then(()=>this.debug("INFO",4,"[0/6] Init","Session",this.settings.session,"against",this.settings.siteUrl)).then(()=>{this.settings.devMode&&(this.settings.debugPaths?this.settings.debugPaths=this.settings.debugPaths.map(o=>Array.isArray(o)?o.join("."):typeof o=="string"?o:(()=>{throw new Error("Unknown path type - should be an array or string in dotted notation")})()):this.settings.debugPaths=null,this.debug("INFO",0,"Watching state paths",this.settings.debugPaths))}).then(()=>this.detectMode()).then(o=>{if(this.debug("INFO",4,"[1/6] Setting client mode to",o),this.settings.mode=o,this.settings.modeOverrides[o])return this.debug("INFO",4,"[1/6] Applying specific config overrides for mode",o),this.settings.modeOverrides[o](this.settings)}).then(()=>this.debug("INFO",4,"[2/6] Injecting comms + styles + methods")).then(()=>Promise.all([this.injectComms(),this.injectStylesheet(),this.injectMethods()])).then(()=>{if(this.settings.verbosity<=1){this.debug("INFO",4,"[3/6] Skip - Server verbosity is already at 1");return}else return this.debug("INFO",4,`[3/6] Set server verbosity to ${this.settings.verbosity}`),this.rpc("setServerVerbosity",this.settings.verbosity)}).then(()=>this.debug("INFO",4,`[4/6] Set server mode to "${this.settings.mode}"`)).then(()=>this.rpc("setServerMode",this.settings.mode=="child"?"embedded":this.settings.mode=="parent"?"frame":this.settings.mode=="popup"?"popup":(()=>{throw new Error(`Unknown server mode "${this.settings.mode}"`)})())).then(()=>this.debug("INFO",4,"[5/6] Run client plugins")).then(()=>Promise.all(this.plugins.map(o=>o.init.call(r,this.settings)))).then(()=>(this.debug("INFO",4,"[6/6] Init complete"),r)).catch(o=>{throw this.debug("WARN",0,"Init process fault",o),o}),this.initPromise}detectMode(){return this.settings.mode!="detect"?Promise.resolve(this.settings.mode):window.self===window.parent?Promise.resolve(this.settings.modeFallback):Promise.resolve().then(()=>this.settings.mode="parent").then(()=>new Promise((e,r)=>{let o=setTimeout(()=>r("TIMEOUT"),this.settings.modeTimeout);this.rpc("handshake").then(()=>clearTimeout(o)).then(()=>e()).catch(r)})).then(()=>"parent").catch(()=>this.settings.modeFallback)}injectComms(){switch(this.settings.mode){case"child":return Promise.resolve().then(()=>new Promise(e=>{this.debug("INFO",2,"Injecting TERA site as iFrame child"),this.dom.el=document.createElement("div"),this.dom.el.id="tera-fy",this.dom.el.classList.toggle("dev-mode",this.settings.devMode),this.dom.el.classList.add("minimized"),document.body.append(this.dom.el),this.dom.el.addEventListener("click",()=>this.dom.el.classList.toggle("minimized")),this.dom.iframe=document.createElement("iframe"),this.dom.iframe.setAttribute("sandbox",this.settings.frameSandbox.join(" ")),this.dom.iframe.addEventListener("load",()=>{this.debug("INFO",3,"Embedded iframe ready"),e()}),this.dom.iframe.src=this.settings.siteUrl,this.dom.el.append(this.dom.iframe)})).then(()=>this.handshakeLoop());case"parent":return this.debug("INFO",2,"Using TERA window parent"),Promise.resolve();case"popup":return this.debug("INFO",2,"Injecting TERA site as a popup window"),this.dom.popup=window.open(this.settings.siteUrl,"_blank","popup=1, location=0, menubar=0, status=0, scrollbars=0, width=500, height=600"),this.handshakeLoop().then(()=>this.debug("INFO",3,"Popup window accepted handshake"));default:throw new Error(`Unsupported mode "${this.settings.mode}" when calling injectComms()`)}}handshakeLoop(e){let r={handshakeInterval:this.settings.handshakeInterval,handshakeTimeout:this.settings.handshakeTimeout,...e};return new Promise((o,a)=>{let n=0,i,s=setTimeout(()=>{clearTimeout(i),a("TIMEOUT")},r.handshakeTimeout),f=()=>{this.debug("INFO",4,"Trying handshake",++n),clearTimeout(i),i=setTimeout(f,r.handshakeInterval),this.rpc("handshake").then(()=>{clearTimeout(s),clearTimeout(i)}).then(()=>o()).catch(a)};f()})}injectStylesheet(){switch(this.settings.mode){case"child":this.dom.stylesheet=document.createElement("style"),this.dom.stylesheet.innerHTML=[":root {","--TERA-accent: #4d659c;","}","#tera-fy {","display: none;","position: fixed;","right: 50px;","bottom: 50px;","width: 300px;","height: 150px;","background: transparent;","body:not(.tera-fy-focus) &.minimized.dev-mode {","background: var(--TERA-accent) !important;","opacity: 0.5;","right: 0px;","bottom: 0px;","width: 30px;","height: 30px;","transition: opacity 0.2s ease-out;","cursor: pointer;","border: none;","border-top-left-radius: 30px;","border-top: 2px solid var(--TERA-accent);","border-left: 2px solid var(--TERA-accent);","display: flex;","justify-content: center;","align-items: center;","&::before {","margin: 2px 0 0 0;",'content: "\u{1F300}";',"color: #FFF;","}","&:hover {","opacity: 1;","}","& > iframe {","display: none;","}","}","body:not(.tera-fy-focus) &:not(.minimized) {","&::before {","display: flex;","align-items: center;","justify-content: center;","cursor: pointer;","background: var(--TERA-accent) !important;","opacity: 0.5;","transition: opacity 0.2s ease-out;","position: absolute;","right: 0px;","bottom: 0px;","width: 20px;","height: 20px;","margin: 2px 0 0 0;",'content: "\u2B68";',"color: #FFF;","border: none;","border-top-left-radius: 30px;","border-top: 2px solid var(--TERA-accent);","border-left: 2px solid var(--TERA-accent);","}","&:hover::before {","opacity: 1;","}","}","&.dev-mode {","display: flex;","border: 5px solid var(--TERA-accent);","background: #FFF;","}","& > iframe {","width: 100%;","height: 100%;","}","}","body.tera-fy-focus {","overflow: hidden;","& #tera-fy {","display: flex !important;","position: fixed !important;","top: 0px !important;","width: 100vw !important;","height: 100vh !important;","left: 0px !important;","z-index: 10000 !important;","}","}"].join(`
|
|
1
|
+
var Oo=typeof global=="object"&&global&&global.Object===Object&&global,mt=Oo;var jo=typeof self=="object"&&self&&self.Object===Object&&self,Ao=mt||jo||Function("return this")(),c=Ao;var So=c.Symbol,x=So;var Qt=Object.prototype,Io=Qt.hasOwnProperty,_o=Qt.toString,at=x?x.toStringTag:void 0;function Eo(t){var e=Io.call(t,at),r=t[at];try{t[at]=void 0;var o=!0}catch{}var a=_o.call(t);return o&&(e?t[at]=r:delete t[at]),a}var te=Eo;var Fo=Object.prototype,Co=Fo.toString;function Mo(t){return Co.call(t)}var ee=Mo;var No="[object Null]",Ro="[object Undefined]",re=x?x.toStringTag:void 0;function Lo(t){return t==null?t===void 0?Ro:No:re&&re in Object(t)?te(t):ee(t)}var w=Lo;function Bo(t){return t!=null&&typeof t=="object"}var v=Bo;var Do="[object Symbol]";function ko(t){return typeof t=="symbol"||v(t)&&w(t)==Do}var D=ko;function Uo(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r<o;)a[r]=e(t[r],r,t);return a}var ut=Uo;var Go=Array.isArray,g=Go;var zo=1/0,oe=x?x.prototype:void 0,ae=oe?oe.toString:void 0;function ie(t){if(typeof t=="string")return t;if(g(t))return ut(t,ie)+"";if(D(t))return ae?ae.call(t):"";var e=t+"";return e=="0"&&1/t==-zo?"-0":e}var ne=ie;function Ko(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var P=Ko;function Wo(t){return t}var se=Wo;var Yo="[object AsyncFunction]",$o="[object Function]",Ho="[object GeneratorFunction]",Vo="[object Proxy]";function qo(t){if(!P(t))return!1;var e=w(t);return e==$o||e==Ho||e==Yo||e==Vo}var dt=qo;var Zo=c["__core-js_shared__"],ct=Zo;var fe=(function(){var t=/[^.]+$/.exec(ct&&ct.keys&&ct.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function Jo(t){return!!fe&&fe in t}var pe=Jo;var Xo=Function.prototype,Qo=Xo.toString;function ta(t){if(t!=null){try{return Qo.call(t)}catch{}try{return t+""}catch{}}return""}var A=ta;var ea=/[\\^$.*+?()[\]{}|]/g,ra=/^\[object .+?Constructor\]$/,oa=Function.prototype,aa=Object.prototype,ia=oa.toString,na=aa.hasOwnProperty,sa=RegExp("^"+ia.call(na).replace(ea,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fa(t){if(!P(t)||pe(t))return!1;var e=dt(t)?sa:ra;return e.test(A(t))}var le=fa;function pa(t,e){return t?.[e]}var me=pa;function la(t,e){var r=me(t,e);return le(r)?r:void 0}var T=la;var ma=T(c,"WeakMap"),ht=ma;var ue=Object.create,ua=(function(){function t(){}return function(e){if(!P(e))return{};if(ue)return ue(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}})(),de=ua;function da(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var ce=da;function ca(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r<o;)e[r]=t[r];return e}var he=ca;var ha=800,ga=16,xa=Date.now;function ya(t){var e=0,r=0;return function(){var o=xa(),a=ga-(o-r);if(r=o,a>0){if(++e>=ha)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var ge=ya;function ba(t){return function(){return t}}var xe=ba;var va=(function(){try{var t=T(Object,"defineProperty");return t({},"",{}),t}catch{}})(),k=va;var Ta=k?function(t,e){return k(t,"toString",{configurable:!0,enumerable:!1,value:xe(e),writable:!0})}:se,ye=Ta;var wa=ge(ye),be=wa;function Pa(t,e){for(var r=-1,o=t==null?0:t.length;++r<o&&e(t[r],r,t)!==!1;);return t}var ve=Pa;var Oa=9007199254740991,ja=/^(?:0|[1-9]\d*)$/;function Aa(t,e){var r=typeof t;return e=e??Oa,!!e&&(r=="number"||r!="symbol"&&ja.test(t))&&t>-1&&t%1==0&&t<e}var U=Aa;function Sa(t,e,r){e=="__proto__"&&k?k(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var gt=Sa;function Ia(t,e){return t===e||t!==t&&e!==e}var xt=Ia;var _a=Object.prototype,Ea=_a.hasOwnProperty;function Fa(t,e,r){var o=t[e];(!(Ea.call(t,e)&&xt(o,r))||r===void 0&&!(e in t))&>(t,e,r)}var G=Fa;function Ca(t,e,r,o){var a=!r;r||(r={});for(var n=-1,i=e.length;++n<i;){var s=e[n],f=o?o(r[s],t[s],s,r,t):void 0;f===void 0&&(f=t[s]),a?gt(r,s,f):G(r,s,f)}return r}var j=Ca;var Te=Math.max;function Ma(t,e,r){return e=Te(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=Te(o.length-e,0),i=Array(n);++a<n;)i[a]=o[e+a];a=-1;for(var s=Array(e+1);++a<e;)s[a]=o[a];return s[e]=r(i),ce(t,this,s)}}var we=Ma;var Na=9007199254740991;function Ra(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Na}var z=Ra;function La(t){return t!=null&&z(t.length)&&!dt(t)}var yt=La;var Ba=Object.prototype;function Da(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||Ba;return t===r}var K=Da;function ka(t,e){for(var r=-1,o=Array(t);++r<t;)o[r]=e(r);return o}var Pe=ka;var Ua="[object Arguments]";function Ga(t){return v(t)&&w(t)==Ua}var Ut=Ga;var Oe=Object.prototype,za=Oe.hasOwnProperty,Ka=Oe.propertyIsEnumerable,Wa=Ut((function(){return arguments})())?Ut:function(t){return v(t)&&za.call(t,"callee")&&!Ka.call(t,"callee")},W=Wa;function Ya(){return!1}var je=Ya;var Ie=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ae=Ie&&typeof module=="object"&&module&&!module.nodeType&&module,$a=Ae&&Ae.exports===Ie,Se=$a?c.Buffer:void 0,Ha=Se?Se.isBuffer:void 0,Va=Ha||je,bt=Va;var qa="[object Arguments]",Za="[object Array]",Ja="[object Boolean]",Xa="[object Date]",Qa="[object Error]",ti="[object Function]",ei="[object Map]",ri="[object Number]",oi="[object Object]",ai="[object RegExp]",ii="[object Set]",ni="[object String]",si="[object WeakMap]",fi="[object ArrayBuffer]",pi="[object DataView]",li="[object Float32Array]",mi="[object Float64Array]",ui="[object Int8Array]",di="[object Int16Array]",ci="[object Int32Array]",hi="[object Uint8Array]",gi="[object Uint8ClampedArray]",xi="[object Uint16Array]",yi="[object Uint32Array]",u={};u[li]=u[mi]=u[ui]=u[di]=u[ci]=u[hi]=u[gi]=u[xi]=u[yi]=!0;u[qa]=u[Za]=u[fi]=u[Ja]=u[pi]=u[Xa]=u[Qa]=u[ti]=u[ei]=u[ri]=u[oi]=u[ai]=u[ii]=u[ni]=u[si]=!1;function bi(t){return v(t)&&z(t.length)&&!!u[w(t)]}var _e=bi;function vi(t){return function(e){return t(e)}}var Y=vi;var Ee=typeof exports=="object"&&exports&&!exports.nodeType&&exports,it=Ee&&typeof module=="object"&&module&&!module.nodeType&&module,Ti=it&&it.exports===Ee,Gt=Ti&&mt.process,wi=(function(){try{var t=it&&it.require&&it.require("util").types;return t||Gt&&Gt.binding&&Gt.binding("util")}catch{}})(),S=wi;var Fe=S&&S.isTypedArray,Pi=Fe?Y(Fe):_e,Ce=Pi;var Oi=Object.prototype,ji=Oi.hasOwnProperty;function Ai(t,e){var r=g(t),o=!r&&W(t),a=!r&&!o&&bt(t),n=!r&&!o&&!a&&Ce(t),i=r||o||a||n,s=i?Pe(t.length,String):[],f=s.length;for(var p in t)(e||ji.call(t,p))&&!(i&&(p=="length"||a&&(p=="offset"||p=="parent")||n&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||U(p,f)))&&s.push(p);return s}var vt=Ai;function Si(t,e){return function(r){return t(e(r))}}var Tt=Si;var Ii=Tt(Object.keys,Object),Me=Ii;var _i=Object.prototype,Ei=_i.hasOwnProperty;function Fi(t){if(!K(t))return Me(t);var e=[];for(var r in Object(t))Ei.call(t,r)&&r!="constructor"&&e.push(r);return e}var Ne=Fi;function Ci(t){return yt(t)?vt(t):Ne(t)}var $=Ci;function Mi(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var Re=Mi;var Ni=Object.prototype,Ri=Ni.hasOwnProperty;function Li(t){if(!P(t))return Re(t);var e=K(t),r=[];for(var o in t)o=="constructor"&&(e||!Ri.call(t,o))||r.push(o);return r}var Le=Li;function Bi(t){return yt(t)?vt(t,!0):Le(t)}var H=Bi;var Di=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ki=/^\w*$/;function Ui(t,e){if(g(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||D(t)?!0:ki.test(t)||!Di.test(t)||e!=null&&t in Object(e)}var Be=Ui;var Gi=T(Object,"create"),I=Gi;function zi(){this.__data__=I?I(null):{},this.size=0}var De=zi;function Ki(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ke=Ki;var Wi="__lodash_hash_undefined__",Yi=Object.prototype,$i=Yi.hasOwnProperty;function Hi(t){var e=this.__data__;if(I){var r=e[t];return r===Wi?void 0:r}return $i.call(e,t)?e[t]:void 0}var Ue=Hi;var Vi=Object.prototype,qi=Vi.hasOwnProperty;function Zi(t){var e=this.__data__;return I?e[t]!==void 0:qi.call(e,t)}var Ge=Zi;var Ji="__lodash_hash_undefined__";function Xi(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=I&&e===void 0?Ji:e,this}var ze=Xi;function V(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}V.prototype.clear=De;V.prototype.delete=ke;V.prototype.get=Ue;V.prototype.has=Ge;V.prototype.set=ze;var zt=V;function Qi(){this.__data__=[],this.size=0}var Ke=Qi;function tn(t,e){for(var r=t.length;r--;)if(xt(t[r][0],e))return r;return-1}var F=tn;var en=Array.prototype,rn=en.splice;function on(t){var e=this.__data__,r=F(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():rn.call(e,r,1),--this.size,!0}var We=on;function an(t){var e=this.__data__,r=F(e,t);return r<0?void 0:e[r][1]}var Ye=an;function nn(t){return F(this.__data__,t)>-1}var $e=nn;function sn(t,e){var r=this.__data__,o=F(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}var He=sn;function q(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}q.prototype.clear=Ke;q.prototype.delete=We;q.prototype.get=Ye;q.prototype.has=$e;q.prototype.set=He;var C=q;var fn=T(c,"Map"),M=fn;function pn(){this.size=0,this.__data__={hash:new zt,map:new(M||C),string:new zt}}var Ve=pn;function ln(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var qe=ln;function mn(t,e){var r=t.__data__;return qe(e)?r[typeof e=="string"?"string":"hash"]:r.map}var N=mn;function un(t){var e=N(this,t).delete(t);return this.size-=e?1:0,e}var Ze=un;function dn(t){return N(this,t).get(t)}var Je=dn;function cn(t){return N(this,t).has(t)}var Xe=cn;function hn(t,e){var r=N(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}var Qe=hn;function Z(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}Z.prototype.clear=Ve;Z.prototype.delete=Ze;Z.prototype.get=Je;Z.prototype.has=Xe;Z.prototype.set=Qe;var nt=Z;var gn="Expected a function";function Kt(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(gn);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var i=t.apply(this,o);return r.cache=n.set(a,i)||n,i};return r.cache=new(Kt.Cache||nt),r}Kt.Cache=nt;var tr=Kt;var xn=500;function yn(t){var e=tr(t,function(o){return r.size===xn&&r.clear(),o}),r=e.cache;return e}var er=yn;var bn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,vn=/\\(\\)?/g,Tn=er(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(bn,function(r,o,a,n){e.push(a?n.replace(vn,"$1"):o||r)}),e}),rr=Tn;function wn(t){return t==null?"":ne(t)}var or=wn;function Pn(t,e){return g(t)?t:Be(t,e)?[t]:rr(or(t))}var O=Pn;var On=1/0;function jn(t){if(typeof t=="string"||D(t))return t;var e=t+"";return e=="0"&&1/t==-On?"-0":e}var R=jn;function An(t,e){e=O(e,t);for(var r=0,o=e.length;t!=null&&r<o;)t=t[R(e[r++])];return r&&r==o?t:void 0}var wt=An;function Sn(t,e){for(var r=-1,o=e.length,a=t.length;++r<o;)t[a+r]=e[r];return t}var J=Sn;var ar=x?x.isConcatSpreadable:void 0;function In(t){return g(t)||W(t)||!!(ar&&t&&t[ar])}var ir=In;function nr(t,e,r,o,a){var n=-1,i=t.length;for(r||(r=ir),a||(a=[]);++n<i;){var s=t[n];e>0&&r(s)?e>1?nr(s,e-1,r,o,a):J(a,s):o||(a[a.length]=s)}return a}var sr=nr;function _n(t){var e=t==null?0:t.length;return e?sr(t,1):[]}var fr=_n;function En(t){return be(we(t,void 0,fr),t+"")}var Pt=En;var Fn=Tt(Object.getPrototypeOf,Object),X=Fn;var Cn="[object Object]",Mn=Function.prototype,Nn=Object.prototype,pr=Mn.toString,Rn=Nn.hasOwnProperty,Ln=pr.call(Object);function Bn(t){if(!v(t)||w(t)!=Cn)return!1;var e=X(t);if(e===null)return!0;var r=Rn.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&pr.call(r)==Ln}var lr=Bn;function Dn(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o<a;)n[o]=t[o+e];return n}var mr=Dn;function kn(){this.__data__=new C,this.size=0}var ur=kn;function Un(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var dr=Un;function Gn(t){return this.__data__.get(t)}var cr=Gn;function zn(t){return this.__data__.has(t)}var hr=zn;var Kn=200;function Wn(t,e){var r=this.__data__;if(r instanceof C){var o=r.__data__;if(!M||o.length<Kn-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new nt(o)}return r.set(t,e),this.size=r.size,this}var gr=Wn;function Q(t){var e=this.__data__=new C(t);this.size=e.size}Q.prototype.clear=ur;Q.prototype.delete=dr;Q.prototype.get=cr;Q.prototype.has=hr;Q.prototype.set=gr;var xr=Q;function Yn(t,e){return t&&j(e,$(e),t)}var yr=Yn;function $n(t,e){return t&&j(e,H(e),t)}var br=$n;var Pr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vr=Pr&&typeof module=="object"&&module&&!module.nodeType&&module,Hn=vr&&vr.exports===Pr,Tr=Hn?c.Buffer:void 0,wr=Tr?Tr.allocUnsafe:void 0;function Vn(t,e){if(e)return t.slice();var r=t.length,o=wr?wr(r):new t.constructor(r);return t.copy(o),o}var Or=Vn;function qn(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r<o;){var i=t[r];e(i,r,t)&&(n[a++]=i)}return n}var jr=qn;function Zn(){return[]}var Ot=Zn;var Jn=Object.prototype,Xn=Jn.propertyIsEnumerable,Ar=Object.getOwnPropertySymbols,Qn=Ar?function(t){return t==null?[]:(t=Object(t),jr(Ar(t),function(e){return Xn.call(t,e)}))}:Ot,tt=Qn;function ts(t,e){return j(t,tt(t),e)}var Sr=ts;var es=Object.getOwnPropertySymbols,rs=es?function(t){for(var e=[];t;)J(e,tt(t)),t=X(t);return e}:Ot,jt=rs;function os(t,e){return j(t,jt(t),e)}var Ir=os;function as(t,e,r){var o=e(t);return g(t)?o:J(o,r(t))}var At=as;function is(t){return At(t,$,tt)}var _r=is;function ns(t){return At(t,H,jt)}var St=ns;var ss=T(c,"DataView"),It=ss;var fs=T(c,"Promise"),_t=fs;var ps=T(c,"Set"),Et=ps;var Er="[object Map]",ls="[object Object]",Fr="[object Promise]",Cr="[object Set]",Mr="[object WeakMap]",Nr="[object DataView]",ms=A(It),us=A(M),ds=A(_t),cs=A(Et),hs=A(ht),L=w;(It&&L(new It(new ArrayBuffer(1)))!=Nr||M&&L(new M)!=Er||_t&&L(_t.resolve())!=Fr||Et&&L(new Et)!=Cr||ht&&L(new ht)!=Mr)&&(L=function(t){var e=w(t),r=e==ls?t.constructor:void 0,o=r?A(r):"";if(o)switch(o){case ms:return Nr;case us:return Er;case ds:return Fr;case cs:return Cr;case hs:return Mr}return e});var et=L;var gs=Object.prototype,xs=gs.hasOwnProperty;function ys(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&xs.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var Rr=ys;var bs=c.Uint8Array,Wt=bs;function vs(t){var e=new t.constructor(t.byteLength);return new Wt(e).set(new Wt(t)),e}var rt=vs;function Ts(t,e){var r=e?rt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var Lr=Ts;var ws=/\w*$/;function Ps(t){var e=new t.constructor(t.source,ws.exec(t));return e.lastIndex=t.lastIndex,e}var Br=Ps;var Dr=x?x.prototype:void 0,kr=Dr?Dr.valueOf:void 0;function Os(t){return kr?Object(kr.call(t)):{}}var Ur=Os;function js(t,e){var r=e?rt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var Gr=js;var As="[object Boolean]",Ss="[object Date]",Is="[object Map]",_s="[object Number]",Es="[object RegExp]",Fs="[object Set]",Cs="[object String]",Ms="[object Symbol]",Ns="[object ArrayBuffer]",Rs="[object DataView]",Ls="[object Float32Array]",Bs="[object Float64Array]",Ds="[object Int8Array]",ks="[object Int16Array]",Us="[object Int32Array]",Gs="[object Uint8Array]",zs="[object Uint8ClampedArray]",Ks="[object Uint16Array]",Ws="[object Uint32Array]";function Ys(t,e,r){var o=t.constructor;switch(e){case Ns:return rt(t);case As:case Ss:return new o(+t);case Rs:return Lr(t,r);case Ls:case Bs:case Ds:case ks:case Us:case Gs:case zs:case Ks:case Ws:return Gr(t,r);case Is:return new o;case _s:case Cs:return new o(t);case Es:return Br(t);case Fs:return new o;case Ms:return Ur(t)}}var zr=Ys;function $s(t){return typeof t.constructor=="function"&&!K(t)?de(X(t)):{}}var Kr=$s;var Hs="[object Map]";function Vs(t){return v(t)&&et(t)==Hs}var Wr=Vs;var Yr=S&&S.isMap,qs=Yr?Y(Yr):Wr,$r=qs;var Zs="[object Set]";function Js(t){return v(t)&&et(t)==Zs}var Hr=Js;var Vr=S&&S.isSet,Xs=Vr?Y(Vr):Hr,qr=Xs;var Qs=1,tf=2,ef=4,Zr="[object Arguments]",rf="[object Array]",of="[object Boolean]",af="[object Date]",nf="[object Error]",Jr="[object Function]",sf="[object GeneratorFunction]",ff="[object Map]",pf="[object Number]",Xr="[object Object]",lf="[object RegExp]",mf="[object Set]",uf="[object String]",df="[object Symbol]",cf="[object WeakMap]",hf="[object ArrayBuffer]",gf="[object DataView]",xf="[object Float32Array]",yf="[object Float64Array]",bf="[object Int8Array]",vf="[object Int16Array]",Tf="[object Int32Array]",wf="[object Uint8Array]",Pf="[object Uint8ClampedArray]",Of="[object Uint16Array]",jf="[object Uint32Array]",m={};m[Zr]=m[rf]=m[hf]=m[gf]=m[of]=m[af]=m[xf]=m[yf]=m[bf]=m[vf]=m[Tf]=m[ff]=m[pf]=m[Xr]=m[lf]=m[mf]=m[uf]=m[df]=m[wf]=m[Pf]=m[Of]=m[jf]=!0;m[nf]=m[Jr]=m[cf]=!1;function Ft(t,e,r,o,a,n){var i,s=e&Qs,f=e&tf,p=e&ef;if(r&&(i=a?r(t,o,a,n):r(t)),i!==void 0)return i;if(!P(t))return t;var y=g(t);if(y){if(i=Rr(t),!s)return he(t,i)}else{var h=et(t),B=h==Jr||h==sf;if(bt(t))return Or(t,s);if(h==Xr||h==Zr||B&&!a){if(i=f||B?{}:Kr(t),!s)return f?Ir(t,br(i,t)):Sr(t,yr(i,t))}else{if(!m[h])return a?t:{};i=zr(t,h,s)}}n||(n=new xr);var ot=n.get(t);if(ot)return ot;n.set(t,i),qr(t)?t.forEach(function(b){i.add(Ft(b,e,r,b,t,n))}):$r(t)&&t.forEach(function(b,l){i.set(l,Ft(b,e,r,l,t,n))});var st=p?f?St:_r:f?H:$,ft=y?void 0:st(t);return ve(ft||t,function(b,l){ft&&(l=b,b=t[l]),G(i,l,Ft(b,e,r,l,t,n))}),i}var Ct=Ft;var Af=1,Sf=4;function If(t){return Ct(t,Af|Sf)}var Yt=If;function _f(t,e){return t!=null&&e in Object(t)}var Qr=_f;function Ef(t,e,r){e=O(e,t);for(var o=-1,a=e.length,n=!1;++o<a;){var i=R(e[o]);if(!(n=t!=null&&r(t,i)))break;t=t[i]}return n||++o!=a?n:(a=t==null?0:t.length,!!a&&z(a)&&U(i,a)&&(g(t)||W(t)))}var to=Ef;function Ff(t,e){return t!=null&&to(t,e,Qr)}var eo=Ff;function Cf(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ro=Cf;function Mf(t,e){return e.length<2?t:wt(t,mr(e,0,-1))}var oo=Mf;var Nf=Object.prototype,Rf=Nf.hasOwnProperty;function Lf(t,e){e=O(e,t);var r=-1,o=e.length;if(!o)return!0;for(var a=t==null||typeof t!="object"&&typeof t!="function";++r<o;){var n=e[r];if(typeof n=="string"){if(n==="__proto__"&&!Rf.call(t,"__proto__"))return!1;if(n==="constructor"&&r+1<o&&typeof e[r+1]=="string"&&e[r+1]==="prototype"){if(a&&r===0)continue;return!1}}}var i=oo(t,e);return i==null||delete i[R(ro(e))]}var ao=Lf;function Bf(t){return lr(t)?void 0:t}var io=Bf;var Df=1,kf=2,Uf=4,Gf=Pt(function(t,e){var r={};if(t==null)return r;var o=!1;e=ut(e,function(n){return n=O(n,t),o||(o=n.length>1),n}),j(t,St(t),r),o&&(r=Ct(r,Df|kf|Uf,io));for(var a=e.length;a--;)ao(r,e[a]);return r}),$t=Gf;function zf(t,e,r,o){if(!P(t))return t;e=O(e,t);for(var a=-1,n=e.length,i=n-1,s=t;s!=null&&++a<n;){var f=R(e[a]),p=r;if(f==="__proto__"||f==="constructor"||f==="prototype")return t;if(a!=i){var y=s[f];p=o?o(y,f,s):void 0,p===void 0&&(p=P(y)?y:U(e[a+1])?[]:{})}G(s,f,p),s=s[f]}return t}var no=zf;function Kf(t,e,r){for(var o=-1,a=e.length,n={};++o<a;){var i=e[o],s=wt(t,i);r(s,i)&&no(n,O(i,t),s)}return n}var so=Kf;function Wf(t,e){return so(t,e,function(r,o){return eo(t,o)})}var fo=Wf;var Yf=Pt(function(t,e){return t==null?{}:fo(t,e)}),Mt=Yf;function po(t){return{all:t=t||new Map,on:function(e,r){var o=t.get(e);o?o.push(r):t.set(e,[r])},off:function(e,r){var o=t.get(e);o&&(r?o.splice(o.indexOf(r)>>>0,1):t.set(e,[]))},emit:function(e,r){var o=t.get(e);o&&o.slice().map(function(a){a(r)}),(o=t.get("*"))&&o.slice().map(function(a){a(e,r)})}}}var lo="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Ht=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=lo[r[t]&63];return e};var $f="Invalid number",Hf="Invalid rounding method";var Nt="jedec";var uo="bits",co="byte",ho="bytes",Vf="kbit";var go="array",qf="function",xo="object",Zf="string",yo="exponent",Jf="round";var Rt={symbol:{iec:{bits:["bit","Kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["bit","Kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},fullform:{iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]}},Xf=[1,1024,1048576,1073741824,1099511627776,0x4000000000000,1152921504606847e3,11805916207174113e5,12089258196146292e8],Qf=[1,1e3,1e6,1e9,1e12,1e15,1e18,1e21,1e24],tp=Math.log(1024),ep=Math.log(1e3),mo={si:{isDecimal:!0,ceil:1e3,actualStandard:Nt},iec:{isDecimal:!1,ceil:1024,actualStandard:"iec"},[Nt]:{isDecimal:!1,ceil:1024,actualStandard:Nt}};function rp(t,e){return mo[t]?mo[t]:e===2?{isDecimal:!1,ceil:1024,actualStandard:"iec"}:{isDecimal:!0,ceil:1e3,actualStandard:Nt}}function op(t,e,r,o,a,n,i,s){let f=[];f[0]=t>0?0 .toPrecision(t):0;let p=f[1]=Rt.symbol[e][r?uo:ho][0];return i===yo?0:(o[f[1]]&&(f[1]=o[f[1]]),a&&(f[1]=n[0]||Rt.fullform[e][0]+(r?"bit":co)),i===go?f:i===xo?{value:f[0],symbol:f[1],exponent:0,unit:p}:f.join(s))}function bo(t,e,r,o,a){let n=r?Qf[e]:Xf[e],i=t/n;return o&&(i*=8,i>=a&&e<8&&(i/=a,e++)),{result:i,e}}function ap(t,e,r,o,a,n,i,s,f){let p=t.toPrecision(e);if(p.includes("e")&&r<8){r++;let{result:y}=bo(o,r,a,n,i),h=f>0?Math.pow(10,f):1;p=(h===1?s(y):s(y*h)/h).toPrecision(e)}return{value:p,e:r}}function ip(t,e,r,o,a,n){let i=t;if(e===!0?i=i.toLocaleString():e.length>0?i=i.toLocaleString(e,r):o.length>0&&(i=i.toString().replace(".",o)),a&&n>0){let s=i.toString(),f=o||(s.match(/(\D)/g)||[]).pop()||".",p=s.split(f),y=p[1]||"",h=y.length,B=n-h;i=`${p[0]}${f}${y.padEnd(h+B,"0")}`}return i}function vo(t,{bits:e=!1,pad:r=!1,base:o=-1,round:a=2,locale:n="",localeOptions:i={},separator:s="",spacer:f=" ",symbols:p={},standard:y="",output:h=Zf,fullform:B=!1,fullforms:ot=[],exponent:st=-1,roundingMethod:ft=Jf,precision:b=0}={}){let l=st,E=Number(t),d=[],Lt=0,qt="",{isDecimal:pt,ceil:Bt,actualStandard:Dt}=rp(y,o),Zt=B===!0,Jt=E<0,lt=Math[ft];if(typeof t!="bigint"&&isNaN(t))throw new TypeError($f);if(typeof lt!==qf)throw new TypeError(Hf);if(Jt&&(E=-E),E===0)return op(b,Dt,e,p,Zt,ot,h,f);if((l===-1||isNaN(l))&&(l=Math.floor(pt?Math.log(E)/ep:Math.log(E)/tp),l<0&&(l=0)),l>8&&(b>0&&(b+=8-l),l=8),h===yo)return l;let{result:To,e:wo}=bo(E,l,pt,e,Bt);Lt=To,l=wo;let kt=l>0&&a>0?Math.pow(10,a):1;if(d[0]=kt===1?lt(Lt):lt(Lt*kt)/kt,d[0]===Bt&&l<8&&st===-1&&(d[0]=1,l++),b>0){let Xt=ap(d[0],b,l,E,pt,e,Bt,lt,a);d[0]=Xt.value,l=Xt.e}let Po=Rt.symbol[Dt][e?uo:ho];return qt=d[1]=pt&&l===1?e?Vf:"kB":Po[l],Jt&&(d[0]=-d[0]),p[d[1]]&&(d[1]=p[d[1]]),d[0]=ip(d[0],n,i,s,r,a),Zt&&(d[1]=ot[l]||Rt.fullform[Dt][l]+(e?"bit":co)+(d[0]===1?"":"s")),h===go?d:h===xo?{value:d[0],symbol:d[1],exponent:l,unit:qt}:f===" "?`${d[0]} ${d[1]}`:d.join(f)}var _=class t{_tera;id;sbId;name;icon;path;url;teraUrl;parsedName;created;createdFormatted;modified;modifiedFormatted;accessed;accessedFormatted;size;sizeFormatted;mime;meta={};isFolder;files;constructor(e){if(!e.tera)throw new Error("Basic file requires a `tera` key to access the Tera instance");Object.assign(this,$t(e,"encodeIdFunction")),e.encodeIdFunction&&typeof e.encodeIdFunction=="function"&&(this.id=e.encodeIdFunction(this.id));let r=this.tera;Object.defineProperty(this,"_tera",{enumerable:!1,configurable:!1,get(){return r}}),delete this.tera,this.created&&typeof this.created=="string"&&(this.created=new Date(this.created)),this.modified&&typeof this.modified=="string"&&(this.modified=new Date(this.modified)),this.accessed&&typeof this.accessed=="string"&&(this.accessed=new Date(this.accessed)),this.isFolder&&(this.files=this.files?.map(o=>{let a=o.path.split(/\//).slice(3).join("/"),n=this.url+"/"+o.name;return o.meta.reflib&&(n=n.replace(/\/project\/download\//,"/project/library/")),new t({tera:this._tera,...o,sbId:o.id,id:o.path,encodeIdFunction:e.encodeIdFunction,path:a,url:n})})),this.teraUrl=this.url.replace(/^https?:\/\/(?:.+?)\/projects\/(?:.+?)\/project\/(.+)$/,"/project/$1"),this.sizeFormatted=vo(this.size||0,{spacer:""}),this.createdFormatted=this.created?this.created.toLocaleDateString():"Unknown created date",this.modifiedFormatted=this.modified?this.modified.toLocaleDateString():"Unknown modified date",this.accessedFormatted=this.accessed?this.accessed.toLocaleDateString():"Unknown access date"}getContents(e){return this._tera.getProjectFileContents(this.id,e)}setContents(e){return this._tera.setProjectFileContents(this.id,e,{})}getRefs(){return this._tera.getProjectLibrary(this.id)}setRefs(e){return this._tera.setProjectLibrary(this.id,e)}serialize(){return Mt(this,["id","sbId","name","icon","path","url","parsedName","created","modified","accessed","size","mime","meta"])}static deserialize(e){let r=Mt(e,["tera","id","sbId","name","icon","path","url","parsedName","created","modified","accessed","size","mime","meta"]);return new t(r)}};var Vt=class{settings={session:null,devMode:!1,verbosity:1,mode:"detect",modeTimeout:300,modeFallback:"child",modeOverrides:{child(e){e.siteUrl=="https://tera-tools.com/embed"&&(e.siteUrl="https://dev.tera-tools.com/embed")}},siteUrl:"https://tera-tools.com/embed",restrictOrigin:"*",frameSandbox:["allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-same-origin","allow-scripts","allow-top-navigation"],handshakeInterval:1e3,handshakeTimeout:1e4,debugPaths:null};events=po();dom={el:null,iframe:null,popup:null,stylesheet:null};methods=["handshake","setServerVerbosity","getUser","requireUser","getCredentials","getKindeToken","bindProject","getProject","getProjects","setActiveProject","requireProject","selectProject","getNamespace","setNamespace","listNamespaces","getProjectState","setProjectState","setProjectStateDefaults","setProjectStateRefresh","getProjectFileContents","deleteProjectFile","setProjectFileContents","createProjectFolder","deleteProjectFolder","selectProjectLibrary","getProjectLibrary","setProjectLibrary","projectLog","setPage","uiAlert","uiConfirm","uiJson","uiPanic","uiProgress","uiPrompt","uiThrow","uiSplat","uiWindow"];plugins=[];namespaces={};send(e){let r=Ht();return this.acceptPostboxes[r]={},this.acceptPostboxes[r].promise=new Promise((o,a)=>{Object.assign(this.acceptPostboxes[r],{resolve:o,reject:a}),this.sendRaw({id:r,...e})}),this.acceptPostboxes[r].promise}sendRaw(e){let r;try{if(r={TERA:1,id:e.id||Ht(),...Yt(e)},this.settings.mode=="parent")window.parent.postMessage(r,this.settings.restrictOrigin);else if(this.settings.mode=="child")this.dom.iframe.contentWindow.postMessage(r,this.settings.restrictOrigin);else if(this.settings.mode=="popup")this.dom.popup.postMessage(r,this.settings.restrictOrigin);else throw this.settings.mode=="detect"?new Error("Call init() or detectMode() before trying to send data to determine the mode"):new Error(`Unknown TERA communication mode "${this.settings.mode}"`)}catch(o){throw this.debug("ERROR",1,"Message compose client->server:",o),this.debug("ERROR",1,"Attempted to dispatch payload client->server",r),o}}rpc(e,...r){return this.send({action:"rpc",method:e,args:r})}acceptMessage(e){if(e.origin==window.location.origin)return Promise.resolve();let r=e.data;return!r.TERA||!r.id?Promise.resolve():(this.debug("INFO",3,"Received message",r),r?.action=="response"&&this.acceptPostboxes[r.id]?(r.isError===!0?this.acceptPostboxes[r.id].reject(r.response):this.acceptPostboxes[r.id].resolve(r.response),Promise.resolve()):r?.action=="rpc"?Promise.resolve().then(()=>this[r.method].apply(this,r.args)).then(o=>this.sendRaw({id:r.id,action:"response",response:o})).catch(o=>{console.warn(`TERA-FY client threw on RPC:${r.method}:`,o),this.sendRaw({id:r.id,action:"response",isError:!0,response:o&&o.toString()})}):r?.action=="event"?Promise.resolve().then(()=>this.events.emit(r.event,...r.payload)).catch(o=>{throw console.warn(`TERA-FY client threw while handling emitted event "${r.event}"`,{message:r}),o}):r?.id?(this.debug("INFO",3,`Ignoring message ID ${r.id} - was meant for someone else?`),Promise.resolve()):(this.debug("INFO",3,"Unexpected incoming TERA-FY CLIENT message",{message:r}),Promise.resolve()))}acceptPostboxes={};mountNamespace(e){if(!/^[\w-]+$/.test(e))throw new Error("Namespaces must be alphanumeric + hyphens + underscores");return this.namespaces[e]?Promise.resolve(this.namespaces[e]):Promise.resolve().then(()=>this._mountNamespace(e)).then(()=>this.namespaces[e]||Promise.reject(`teraFy.mountNamespace('${e}') resolved but no namespace has been mounted`))}_mountNamespace(e){throw console.warn(`teraFy._mountNamespace() for ${e} has not been overridden by a TERA-fy plugin, load one to add this functionality for your preferred framework`),new Error("teraFy._mountNamespace() is not supported")}unmountNamespace(e){return this.namespaces[e]?this._unmountNamespace(e):Promise.resolve()}_unmountNamespace(e){console.warn(`teraFy.unbindNamespace() for ${e} has not been overridden by a TERA-fy plugin, load one to add this functionality for your preferred framework`)}constructor(e){e&&this.set(e)}initPromise=null;init(e){if(e&&this.set(e),this.initPromise)return this.initPromise;window.addEventListener("message",this.acceptMessage.bind(this));let r=this;return this.initPromise=Promise.resolve().then(()=>this.settings.session||="tfy-"+this.getEntropicString(16)).then(()=>this.debug("INFO",4,"[0/6] Init","Session",this.settings.session,"against",this.settings.siteUrl)).then(()=>{this.settings.devMode&&(this.settings.debugPaths?this.settings.debugPaths=this.settings.debugPaths.map(o=>Array.isArray(o)?o.join("."):typeof o=="string"?o:(()=>{throw new Error("Unknown path type - should be an array or string in dotted notation")})()):this.settings.debugPaths=null,this.debug("INFO",0,"Watching state paths",this.settings.debugPaths))}).then(()=>this.detectMode()).then(o=>{if(this.debug("INFO",4,"[1/6] Setting client mode to",o),this.settings.mode=o,this.settings.modeOverrides[o])return this.debug("INFO",4,"[1/6] Applying specific config overrides for mode",o),this.settings.modeOverrides[o](this.settings)}).then(()=>this.debug("INFO",4,"[2/6] Injecting comms + styles + methods")).then(()=>Promise.all([this.injectComms(),this.injectStylesheet(),this.injectMethods()])).then(()=>{if(this.settings.verbosity<=1){this.debug("INFO",4,"[3/6] Skip - Server verbosity is already at 1");return}else return this.debug("INFO",4,`[3/6] Set server verbosity to ${this.settings.verbosity}`),this.rpc("setServerVerbosity",this.settings.verbosity)}).then(()=>this.debug("INFO",4,`[4/6] Set server mode to "${this.settings.mode}"`)).then(()=>this.rpc("setServerMode",this.settings.mode=="child"?"embedded":this.settings.mode=="parent"?"frame":this.settings.mode=="popup"?"popup":(()=>{throw new Error(`Unknown server mode "${this.settings.mode}"`)})())).then(()=>this.debug("INFO",4,"[5/6] Run client plugins")).then(()=>Promise.all(this.plugins.map(o=>o.init.call(r,this.settings)))).then(()=>(this.debug("INFO",4,"[6/6] Init complete"),r)).catch(o=>{throw this.debug("WARN",0,"Init process fault",o),o}),this.initPromise}detectMode(){return this.settings.mode!="detect"?Promise.resolve(this.settings.mode):window.self===window.parent?Promise.resolve(this.settings.modeFallback):Promise.resolve().then(()=>this.settings.mode="parent").then(()=>new Promise((e,r)=>{let o=setTimeout(()=>r("TIMEOUT"),this.settings.modeTimeout);this.rpc("handshake").then(()=>clearTimeout(o)).then(()=>e()).catch(r)})).then(()=>"parent").catch(()=>this.settings.modeFallback)}injectComms(){switch(this.settings.mode){case"child":return Promise.resolve().then(()=>new Promise(e=>{this.debug("INFO",2,"Injecting TERA site as iFrame child"),this.dom.el=document.createElement("div"),this.dom.el.id="tera-fy",this.dom.el.classList.toggle("dev-mode",this.settings.devMode),this.dom.el.classList.add("minimized"),document.body.append(this.dom.el),this.dom.el.addEventListener("click",()=>this.dom.el.classList.toggle("minimized")),this.dom.iframe=document.createElement("iframe"),this.dom.iframe.setAttribute("sandbox",this.settings.frameSandbox.join(" ")),this.dom.iframe.addEventListener("load",()=>{this.debug("INFO",3,"Embedded iframe ready"),e()}),this.dom.iframe.src=this.settings.siteUrl,this.dom.el.append(this.dom.iframe)})).then(()=>this.handshakeLoop());case"parent":return this.debug("INFO",2,"Using TERA window parent"),Promise.resolve();case"popup":return this.debug("INFO",2,"Injecting TERA site as a popup window"),this.dom.popup=window.open(this.settings.siteUrl,"_blank","popup=1, location=0, menubar=0, status=0, scrollbars=0, width=500, height=600"),this.handshakeLoop().then(()=>this.debug("INFO",3,"Popup window accepted handshake"));default:throw new Error(`Unsupported mode "${this.settings.mode}" when calling injectComms()`)}}handshakeLoop(e){let r={handshakeInterval:this.settings.handshakeInterval,handshakeTimeout:this.settings.handshakeTimeout,...e};return new Promise((o,a)=>{let n=0,i,s=setTimeout(()=>{clearTimeout(i),a("TIMEOUT")},r.handshakeTimeout),f=()=>{this.debug("INFO",4,"Trying handshake",++n),clearTimeout(i),i=setTimeout(f,r.handshakeInterval),this.rpc("handshake").then(()=>{clearTimeout(s),clearTimeout(i)}).then(()=>o()).catch(a)};f()})}injectStylesheet(){switch(this.settings.mode){case"child":this.dom.stylesheet=document.createElement("style"),this.dom.stylesheet.innerHTML=[":root {","--TERA-accent: #4d659c;","}","#tera-fy {","display: none;","position: fixed;","right: 50px;","bottom: 50px;","width: 300px;","height: 150px;","background: transparent;","body:not(.tera-fy-focus) &.minimized.dev-mode {","background: var(--TERA-accent) !important;","opacity: 0.5;","right: 0px;","bottom: 0px;","width: 30px;","height: 30px;","transition: opacity 0.2s ease-out;","cursor: pointer;","border: none;","border-top-left-radius: 30px;","border-top: 2px solid var(--TERA-accent);","border-left: 2px solid var(--TERA-accent);","display: flex;","justify-content: center;","align-items: center;","&::before {","margin: 2px 0 0 0;",'content: "\u{1F300}";',"color: #FFF;","}","&:hover {","opacity: 1;","}","& > iframe {","display: none;","}","}","body:not(.tera-fy-focus) &:not(.minimized) {","&::before {","display: flex;","align-items: center;","justify-content: center;","cursor: pointer;","background: var(--TERA-accent) !important;","opacity: 0.5;","transition: opacity 0.2s ease-out;","position: absolute;","right: 0px;","bottom: 0px;","width: 20px;","height: 20px;","margin: 2px 0 0 0;",'content: "\u2B68";',"color: #FFF;","border: none;","border-top-left-radius: 30px;","border-top: 2px solid var(--TERA-accent);","border-left: 2px solid var(--TERA-accent);","}","&:hover::before {","opacity: 1;","}","}","&.dev-mode {","display: flex;","border: 5px solid var(--TERA-accent);","background: #FFF;","}","& > iframe {","width: 100%;","height: 100%;","}","}","body.tera-fy-focus {","overflow: hidden;","& #tera-fy {","display: flex !important;","position: fixed !important;","top: 0px !important;","width: 100vw !important;","height: 100vh !important;","left: 0px !important;","z-index: 10000 !important;","}","}"].join(`
|
|
2
2
|
`),document.head.append(this.dom.stylesheet);break;case"parent":case"popup":break;default:throw new Error(`Unsupported mode "${this.settings.mode}" when injectStylesheet()`)}return Promise.resolve()}injectMethods(){return this.methods.forEach(e=>this[e]=this.rpc.bind(this,e)),Promise.resolve()}debug(...e){if(!this.settings.devMode||this.settings.verbosity<1)return;let r="log",o=1;typeof e[0]=="string"&&["INFO","LOG","WARN","ERROR"].includes(e[0])&&(r=e.shift().toLowerCase()),typeof e[0]=="number"&&(o=e[0],e.shift()),!(this.settings.verbosity<o)&&console[r]("%c[TERA-FY CLIENT]","font-weight: bold; color: #ff5722;",...e)}set(e,r,o){let a={ignoreNullish:!0,...o};return typeof e=="string"?(!a.ignoreNullish||r!=null)&&(this.settings[e]=r):Object.assign(this.settings,e),this.toggleDevMode(this.settings.devMode)}setIfDev(e,r,o){return!this.settings.devMode||r===void 0?this:this.set(e,r,o)}use(e,r){let o=typeof e=="function"?new e(this,r):typeof e=="object"?e:typeof e=="string"?(()=>{throw new Error("use(String) is not yet supported")})():(()=>{throw new Error("Expected use() call to be provided with a class initializer")})();return this.mixin(this,o),this.plugins.push(o),this}mixin(e,r){let o=[],a=r;do o.unshift(a);while(a=Object.getPrototypeOf(a));o.forEach(n=>Object.getOwnPropertyNames(n).filter(i=>!["constructor","init","prototype","name"].includes(i)&&!i.startsWith("__")).forEach(i=>{typeof r[i]=="function"?Object.defineProperty(e,i,{enumerable:!1,value:r[i].bind(e)}):e[i]=r[i]}))}toggleDevMode(e="toggle"){return e==="toggle"?this.settings.devMode=!this.settings.devMode:e==="proxy"?Object.assign(this.settings,{devMode:!0,siteUrl:"http://localhost:7334/embed",mode:"child"}):this.settings.devMode=!!e,this.settings.devMode&&(this.settings.restrictOrigin="*"),this.dom?.el&&this.dom.el.classList.toggle("dev-mode",this.settings.devMode),this}toggleFocus(e="toggle"){this.debug("INFO",2,"Request focus",{isFocused:e}),globalThis.document.body.classList.toggle("tera-fy-focus",e==="toggle"?void 0:e)}getEntropicString(e=32){let r=new Uint32Array(4);return window.crypto.getRandomValues(r),btoa(String.fromCodePoint(...new Uint8Array(r.buffer))).replace(/[+/]/g,"").slice(0,e)}selectProjectFile(e){return this.rpc("selectProjectFile",e).then(r=>r&&new _({tera:this,...r}))}getProjectFiles(e){return this.rpc("getProjectFiles",e).then(r=>r.map(o=>new _({tera:this,...o})))}getProjectFile(e,r){return this.rpc("getProjectFile",e,r).then(o=>o&&new _({tera:this,...o}))}createProjectFile(e){return this.rpc("createProjectFile",e).then(r=>r&&new _({tera:this,...r}))}moveProjectFile(e,r,o){return this.rpc("moveProjectFile",e,r,o).then(a=>a?new _({tera:this,...a}):null)}};export{Vt as default};
|
|
3
3
|
/*! Bundled license information:
|
|
4
4
|
|
package/lib/syncro/entities.ts
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
|
-
/* eslint-disable no-unused-vars */
|
|
1
|
+
/* eslint-disable jsdoc/reject-function-type, no-unused-vars */
|
|
2
2
|
// @ts-expect-error TODO: Remove when reflib gets declaration file
|
|
3
3
|
import Reflib from '@iebh/reflib';
|
|
4
4
|
import {v4 as uuid4} from 'uuid';
|
|
5
5
|
import {nanoid} from 'nanoid';
|
|
6
|
-
import {
|
|
6
|
+
import {BoundSupabaseyFunction} from '@iebh/supabasey';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// Minimal interface for a postgres-npm Sql instance (HYPERDRIVE is injected by the Cloudflare Worker runtime)
|
|
10
|
+
export interface PostgresSql {
|
|
11
|
+
(strings: TemplateStringsArray, ...values: any[]): Promise<any[]>;
|
|
12
|
+
json(value: any): any;
|
|
13
|
+
}
|
|
14
|
+
|
|
7
15
|
|
|
8
16
|
// DATABASE TABLE TYPE DEFINITIONS {{{
|
|
9
17
|
interface ProjectRow {
|
|
10
|
-
|
|
11
|
-
|
|
18
|
+
data: {
|
|
19
|
+
id: string;
|
|
12
20
|
// TODO: add other properties in project data
|
|
13
21
|
};
|
|
14
22
|
// TODO: Define other columns in project table
|
|
15
23
|
}
|
|
16
24
|
|
|
17
25
|
interface InstituteRow {
|
|
18
|
-
|
|
26
|
+
data: any;
|
|
19
27
|
}
|
|
20
28
|
|
|
21
29
|
interface UserRow {
|
|
@@ -36,20 +44,22 @@ interface NamespaceRow {
|
|
|
36
44
|
[key: string]: any;
|
|
37
45
|
// TODO: add other properties in namespace data
|
|
38
46
|
};
|
|
39
|
-
// TODO: Define other
|
|
47
|
+
// TODO: Define other columns in namespace table
|
|
40
48
|
}
|
|
41
49
|
// }}}
|
|
42
50
|
|
|
43
|
-
|
|
51
|
+
|
|
52
|
+
// Interface for each syncro entity config
|
|
44
53
|
interface SyncroEntityConfig {
|
|
45
54
|
singular: string;
|
|
46
55
|
initState: (args: {
|
|
56
|
+
HYPERDRIVE: PostgresSql;
|
|
47
57
|
supabasey: BoundSupabaseyFunction;
|
|
48
58
|
id: string; // Primary ID for the entity
|
|
49
59
|
relation?: string; // Optional relation identifier (for namespaces, libraries)
|
|
50
60
|
}) => Promise<any>;
|
|
51
|
-
|
|
52
61
|
flushState: (args: {
|
|
62
|
+
HYPERDRIVE?: PostgresSql;
|
|
53
63
|
supabasey: BoundSupabaseyFunction;
|
|
54
64
|
state: any; // The state object to flush
|
|
55
65
|
id?: string; // Primary ID (used in some lookups like namespaces)
|
|
@@ -58,49 +68,56 @@ interface SyncroEntityConfig {
|
|
|
58
68
|
}) => Promise<any>; // Return type signifies completion/result of flush
|
|
59
69
|
}
|
|
60
70
|
|
|
71
|
+
|
|
61
72
|
type SyncroConfig = Record<string, SyncroEntityConfig>;
|
|
62
73
|
|
|
74
|
+
|
|
63
75
|
/**
|
|
64
76
|
* Entities we support Syncro paths for, each should correspond directly with a Firebase/Firestore collection name
|
|
65
77
|
*
|
|
66
78
|
* @type {Object} An object lookup of entities
|
|
67
79
|
*
|
|
68
80
|
* @property {String} singular The singular noun for the item
|
|
69
|
-
* @property {Function} initState Function called to initialize state when Firestore has no existing document. Called as `({
|
|
81
|
+
* @property {Function} initState Function called to initialize state when Firestore has no existing document. Called as `({HYPERDRIVE:PostgresSql, supabasey:BoundSupabaseyFunction, id:String, relation?:string})` and expected to return the initial data object state
|
|
70
82
|
* @property {Function} flushState Function called to flush state from Firebase to Supabase. Called the same as `initState` + `{state:Object}`
|
|
71
83
|
*/
|
|
72
84
|
const syncroConfig: SyncroConfig = {
|
|
73
85
|
institutes: { // {{{
|
|
74
86
|
singular: 'institute',
|
|
75
|
-
async initState({
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (institute
|
|
87
|
+
async initState({HYPERDRIVE, id}: {HYPERDRIVE: PostgresSql, id: string}) {
|
|
88
|
+
let institute = await HYPERDRIVE`
|
|
89
|
+
SELECT data
|
|
90
|
+
FROM institutes
|
|
91
|
+
WHERE id = ${id}
|
|
92
|
+
LIMIT 1
|
|
93
|
+
`;
|
|
94
|
+
if (institute.length > 0) {
|
|
95
|
+
return institute[0].data; // institute is valid and already exists
|
|
96
|
+
} else {
|
|
97
|
+
throw new Error(`Syncro institute "${id}" not found`);
|
|
98
|
+
}
|
|
83
99
|
},
|
|
84
100
|
flushState({supabasey, state, id}) {
|
|
85
|
-
//
|
|
86
|
-
return supabasey.rpc('syncro_merge_data', {
|
|
101
|
+
// FIXME: Better to reuse `env.HYPERDRIVE` instead of supabasey here in future
|
|
102
|
+
return supabasey((supabase) => supabase.rpc('syncro_merge_data', {
|
|
87
103
|
table_name: 'institutes',
|
|
88
104
|
entity_id: id,
|
|
89
105
|
new_data: state,
|
|
90
|
-
});
|
|
106
|
+
}));
|
|
91
107
|
},
|
|
92
108
|
}, // }}}
|
|
93
109
|
projects: { // {{{
|
|
94
110
|
singular: 'project',
|
|
95
|
-
async initState({supabasey, id}) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (
|
|
103
|
-
|
|
111
|
+
async initState({HYPERDRIVE, supabasey, id}: {HYPERDRIVE: PostgresSql, supabasey: BoundSupabaseyFunction, id: string}) {
|
|
112
|
+
let projects = await HYPERDRIVE`
|
|
113
|
+
SELECT data
|
|
114
|
+
FROM projects
|
|
115
|
+
WHERE id = ${id}
|
|
116
|
+
LIMIT 1
|
|
117
|
+
`;
|
|
118
|
+
if (projects.length == 0) throw new Error(`Syncro project "${id}" not found`);
|
|
119
|
+
|
|
120
|
+
const data = projects[0].data;
|
|
104
121
|
|
|
105
122
|
// MIGRATION - Move data.temp{} into Supabase files + add pointer to filename {{{
|
|
106
123
|
if (
|
|
@@ -113,7 +130,7 @@ const syncroConfig: SyncroConfig = {
|
|
|
113
130
|
await Promise.all(
|
|
114
131
|
Object.entries(data.temp)
|
|
115
132
|
.filter(([, branch]) => typeof branch == 'object')
|
|
116
|
-
.map(([toolKey
|
|
133
|
+
.map(([toolKey]) => {
|
|
117
134
|
console.log(`[MIGRATION] Converting data.temp[${toolKey}]...`);
|
|
118
135
|
|
|
119
136
|
const toolName = toolKey.split('-')[0];
|
|
@@ -161,8 +178,8 @@ const syncroConfig: SyncroConfig = {
|
|
|
161
178
|
return data;
|
|
162
179
|
},
|
|
163
180
|
flushState({supabasey, state, fsId}) {
|
|
164
|
-
//
|
|
165
|
-
return supabasey(supabase => supabase.rpc('syncro_merge_data', {
|
|
181
|
+
// FIXME: Better to reuse `env.HYPERDRIVE` instead of supabasey here in future
|
|
182
|
+
return supabasey((supabase) => supabase.rpc('syncro_merge_data', {
|
|
166
183
|
table_name: 'projects',
|
|
167
184
|
entity_id: fsId,
|
|
168
185
|
new_data: state,
|
|
@@ -171,7 +188,7 @@ const syncroConfig: SyncroConfig = {
|
|
|
171
188
|
}, // }}}
|
|
172
189
|
project_libraries: { // {{{
|
|
173
190
|
singular: 'project library',
|
|
174
|
-
async initState({supabasey, id, relation}) {
|
|
191
|
+
async initState({id, relation, supabasey}: {HYPERDRIVE: PostgresSql, id: string, relation?: string, supabasey: BoundSupabaseyFunction}) {
|
|
175
192
|
if (!relation || !/_\*$/.test(relation)) throw new Error('Project library relation missing, path should resemble "project_library::${PROJECT}::${LIBRARY_FILE_ID}_*"');
|
|
176
193
|
|
|
177
194
|
const fileId = relation.replace(/_\*$/, '');
|
|
@@ -209,63 +226,33 @@ const syncroConfig: SyncroConfig = {
|
|
|
209
226
|
throw new Error('Flushing project_libraries::* namespace is not yet supported');
|
|
210
227
|
},
|
|
211
228
|
}, // }}}
|
|
212
|
-
project_namespaces: { // {{{
|
|
229
|
+
project_namespaces: { // NOT YET SUPPORTED {{{
|
|
213
230
|
singular: 'project namespace',
|
|
214
|
-
async initState(
|
|
215
|
-
|
|
216
|
-
const rows = await supabasey((supabase) => supabase
|
|
217
|
-
.from('project_namespaces')
|
|
218
|
-
.select('data')
|
|
219
|
-
.eq('project', id)
|
|
220
|
-
.eq('name', relation)
|
|
221
|
-
.limit(1)
|
|
222
|
-
);
|
|
223
|
-
|
|
224
|
-
if (rows && rows.length == 1) {
|
|
225
|
-
return rows[0].data;
|
|
226
|
-
} else {
|
|
227
|
-
const newItem = await supabasey((supabase) => supabase
|
|
228
|
-
.from('project_namespaces') // Doesn't exist - create it
|
|
229
|
-
.insert<NamespaceRow>({
|
|
230
|
-
project: id,
|
|
231
|
-
name: relation,
|
|
232
|
-
data: {},
|
|
233
|
-
})
|
|
234
|
-
.select('data')
|
|
235
|
-
.single<NamespaceRow>() // Assuming insert returns the single inserted row
|
|
236
|
-
);
|
|
237
|
-
|
|
238
|
-
if (!newItem) throw new Error('Failed to create project namespace');
|
|
239
|
-
return newItem.data;
|
|
240
|
-
}
|
|
231
|
+
async initState() {
|
|
232
|
+
throw new Error('Updating project_namespaces is not yet supported');
|
|
241
233
|
},
|
|
242
|
-
flushState(
|
|
243
|
-
|
|
244
|
-
.from('project_namespaces')
|
|
245
|
-
.update({
|
|
246
|
-
edited_at: new Date().toISOString(),
|
|
247
|
-
data: state,
|
|
248
|
-
})
|
|
249
|
-
.eq('project', id)
|
|
250
|
-
.eq('name', relation)
|
|
251
|
-
);
|
|
234
|
+
async flushState() {
|
|
235
|
+
throw new Error('Updating project_namespaces is not yet supported');
|
|
252
236
|
},
|
|
253
237
|
}, // }}}
|
|
254
238
|
test: { // {{{
|
|
255
239
|
singular: 'test',
|
|
256
|
-
async initState({
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
240
|
+
async initState({HYPERDRIVE, id}: {HYPERDRIVE: PostgresSql, id: string}) {
|
|
241
|
+
let rows = await HYPERDRIVE`
|
|
242
|
+
SELECT data
|
|
243
|
+
FROM test
|
|
244
|
+
WHERE id = ${id}
|
|
245
|
+
LIMIT 1
|
|
246
|
+
`;
|
|
247
|
+
if (rows.length > 0) {
|
|
248
|
+
return rows[0].data; // User is valid and already exists
|
|
249
|
+
} else {
|
|
250
|
+
throw new Error(`Syncro test "${id}" not found`);
|
|
251
|
+
}
|
|
266
252
|
},
|
|
267
253
|
flushState({supabasey, state, fsId}) {
|
|
268
|
-
|
|
254
|
+
// FIXME: Better to reuse `env.HYPERDRIVE` instead of supabasey here in future
|
|
255
|
+
return supabasey((supabase) => supabase.rpc('syncro_merge_data', {
|
|
269
256
|
table_name: 'test',
|
|
270
257
|
entity_id: fsId,
|
|
271
258
|
new_data: state,
|
|
@@ -274,34 +261,38 @@ const syncroConfig: SyncroConfig = {
|
|
|
274
261
|
}, // }}}
|
|
275
262
|
users: { // {{{
|
|
276
263
|
singular: 'user',
|
|
277
|
-
async initState({
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
if (user) return user.data; // User is valid and already exists
|
|
264
|
+
async initState({HYPERDRIVE, id}: {HYPERDRIVE: PostgresSql, id: string}) {
|
|
265
|
+
let user = await HYPERDRIVE`
|
|
266
|
+
SELECT data
|
|
267
|
+
FROM users
|
|
268
|
+
WHERE id = ${id}
|
|
269
|
+
LIMIT 1
|
|
270
|
+
`;
|
|
271
|
+
if (user.length > 0) return user[0].data; // User is valid and already exists
|
|
285
272
|
|
|
286
|
-
// User row doesn't already exist -
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
273
|
+
// User row doesn't already exist - this shouldn't happen if the user has correctly gone through the onboarding process
|
|
274
|
+
// but... *shrugs*, who knows
|
|
275
|
+
let newUser = await HYPERDRIVE`
|
|
276
|
+
INSERT INTO users
|
|
277
|
+
(
|
|
290
278
|
id,
|
|
291
|
-
data
|
|
279
|
+
data
|
|
280
|
+
)
|
|
281
|
+
VALUES (
|
|
282
|
+
${id},
|
|
283
|
+
${HYPERDRIVE.json({
|
|
292
284
|
id,
|
|
293
285
|
credits: 1000,
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
if (!newUser) throw new Error('Failed to create user');
|
|
300
|
-
return newUser.data; // Return back the data that eventually got created - allowing for database triggers, default field values etc.
|
|
286
|
+
})}::JSONB
|
|
287
|
+
)
|
|
288
|
+
`;
|
|
289
|
+
if (!newUser?.length) throw new Error(`Failed to create new user "${id}"`);
|
|
290
|
+
return newUser[0].data; // Return back the data that eventually got created - allowing for database triggers, default field values etc.
|
|
301
291
|
|
|
302
292
|
},
|
|
303
293
|
flushState({supabasey, state, fsId}) {
|
|
304
|
-
|
|
294
|
+
// FIXME: Better to reuse `env.HYPERDRIVE` instead of supabasey here in future
|
|
295
|
+
return supabasey((supabase) => supabase.rpc('syncro_merge_data', {
|
|
305
296
|
table_name: 'users',
|
|
306
297
|
entity_id: fsId,
|
|
307
298
|
new_data: state,
|
package/lib/syncro/keyed.ts
CHANGED