@dbml/parse 8.2.4 → 8.3.0-alpha.0

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.
@@ -1,31 +1,28 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=Symbol(`PASS_THROUGH`),t=Symbol(`UNHANDLED`);var n=class e{static create(t,n,r){return new e(t,n,r)}constructor(e,t,n){this.value=e,this.errors=t===void 0?[]:t,n?.length&&(this.warnings=n)}filter(t){return this.value===t?new e(void 0,this.errors,this.warnings):this}hasValue(e){return this.value===e}getFiltered(...e){return e.includes(this.value)?void 0:this.value}getValue(){return this.value}getErrors(){return this.errors}getWarnings(){return this.warnings||[]}chainFiltered(t,...n){if(n.includes(this.value))return new e(void 0,this.errors,this.warnings);let r=t(this.value),i=[...this.errors,...r.errors],a=[...this.getWarnings(),...r.getWarnings()];return new e(r.value,i,a)}chain(t){let n=t(this.value),r=[...this.errors,...n.errors],i=[...this.getWarnings(),...n.getWarnings()];return new e(n.value,r,i)}mapFiltered(t,...n){return n.includes(this.value)?new e(void 0,this.errors,this.warnings):new e(t(this.value),this.errors,this.warnings)}map(t){return new e(t(this.value),this.errors,this.warnings)}};let r=function(e){return e.Table=`table`,e.Enum=`enum`,e.Ref=`ref`,e.Note=`note`,e.Project=`project`,e.Indexes=`indexes`,e.TableGroup=`tablegroup`,e.TablePartial=`tablepartial`,e.Checks=`checks`,e.Records=`records`,e.DiagramView=`diagramview`,e.DiagramViewTables=`tables`,e.DiagramViewNotes=`notes`,e.DiagramViewTableGroups=`tablegroups`,e.DiagramViewSchemas=`schemas`,e}({}),i=function(e){return e.Color=`color`,e.HeaderColor=`headercolor`,e.Note=`note`,e.PK=`pk`,e.PrimaryKey=`primary key`,e.Unique=`unique`,e.Ref=`ref`,e.NotNull=`not null`,e.Null=`null`,e.Increment=`increment`,e.Default=`default`,e.Name=`name`,e.Type=`type`,e.Check=`check`,e.Update=`update`,e.Delete=`delete`,e.Inactive=`inactive`,e}({});var a=typeof global==`object`&&global&&global.Object===Object&&global,o=a,s=typeof self==`object`&&self&&self.Object===Object&&self,c=o||s||Function(`return this`)(),l=c,u=l.Symbol,d=u,f=Object.prototype,p=f.hasOwnProperty,m=f.toString,h=d?d.toStringTag:void 0;function ee(e){var t=p.call(e,h),n=e[h];try{e[h]=void 0;var r=!0}catch{}var i=m.call(e);return r&&(t?e[h]=n:delete e[h]),i}var te=ee,ne=Object.prototype.toString;function re(e){return ne.call(e)}var ie=re,ae=`[object Null]`,oe=`[object Undefined]`,se=d?d.toStringTag:void 0;function ce(e){return e==null?e===void 0?oe:ae:se&&se in Object(e)?te(e):ie(e)}var le=ce;function ue(e){return typeof e==`object`&&!!e}var de=ue,fe=`[object Symbol]`;function pe(e){return typeof e==`symbol`||de(e)&&le(e)==fe}var me=pe;function he(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var ge=he,_e=Array.isArray,ve=_e,ye=1/0,be=d?d.prototype:void 0,xe=be?be.toString:void 0;function Se(e){if(typeof e==`string`)return e;if(ve(e))return ge(e,Se)+``;if(me(e))return xe?xe.call(e):``;var t=e+``;return t==`0`&&1/e==-ye?`-0`:t}var Ce=Se,we=/\s/;function Te(e){for(var t=e.length;t--&&we.test(e.charAt(t)););return t}var Ee=Te,De=/^\s+/;function Oe(e){return e&&e.slice(0,Ee(e)+1).replace(De,``)}var ke=Oe;function Ae(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var je=Ae,Me=NaN,Ne=/^[-+]0x[0-9a-f]+$/i,Pe=/^0b[01]+$/i,Fe=/^0o[0-7]+$/i,Ie=parseInt;function Le(e){if(typeof e==`number`)return e;if(me(e))return Me;if(je(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=je(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=ke(e);var n=Pe.test(e);return n||Fe.test(e)?Ie(e.slice(2),n?2:8):Ne.test(e)?Me:+e}var Re=Le,ze=1/0,Be=17976931348623157e292;function Ve(e){return e?(e=Re(e),e===ze||e===-ze?(e<0?-1:1)*Be:e===e?e:0):e===0?e:0}var He=Ve;function Ue(e){var t=He(e),n=t%1;return t===t?n?t-n:t:0}var We=Ue;function Ge(e){return e}var Ke=Ge,qe=`[object AsyncFunction]`,Je=`[object Function]`,Ye=`[object GeneratorFunction]`,Xe=`[object Proxy]`;function Ze(e){if(!je(e))return!1;var t=le(e);return t==Je||t==Ye||t==qe||t==Xe}var Qe=Ze,$e=l[`__core-js_shared__`],et=$e,tt=function(){var e=/[^.]+$/.exec(et&&et.keys&&et.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function nt(e){return!!tt&&tt in e}var rt=nt,it=Function.prototype.toString;function at(e){if(e!=null){try{return it.call(e)}catch{}try{return e+``}catch{}}return``}var ot=at,st=/[\\^$.*+?()[\]{}|]/g,ct=/^\[object .+?Constructor\]$/,lt=Function.prototype,ut=Object.prototype,dt=lt.toString,ft=ut.hasOwnProperty,pt=RegExp(`^`+dt.call(ft).replace(st,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function mt(e){return!je(e)||rt(e)?!1:(Qe(e)?pt:ct).test(ot(e))}var ht=mt;function gt(e,t){return e?.[t]}var _t=gt;function vt(e,t){var n=_t(e,t);return ht(n)?n:void 0}var yt=vt,bt=yt(l,`WeakMap`),xt=bt;function St(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var Ct=St;function wt(){}var Tt=wt,Et=800,Dt=16,Ot=Date.now;function kt(e){var t=0,n=0;return function(){var r=Ot(),i=Dt-(r-n);if(n=r,i>0){if(++t>=Et)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var At=kt;function jt(e){return function(){return e}}var Mt=jt,Nt=function(){try{var e=yt(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),Pt=Nt,Ft=Pt?function(e,t){return Pt(e,`toString`,{configurable:!0,enumerable:!1,value:Mt(t),writable:!0})}:Ke,It=Ft,Lt=At(It),Rt=Lt;function zt(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}var Bt=zt;function Vt(e){return e!==e}var Ht=Vt;function Ut(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}var Wt=Ut;function Gt(e,t,n){return t===t?Wt(e,t,n):Bt(e,Ht,n)}var Kt=Gt;function qt(e,t){return!!(e!=null&&e.length)&&Kt(e,t,0)>-1}var Jt=qt,Yt=9007199254740991,Xt=/^(?:0|[1-9]\d*)$/;function Zt(e,t){var n=typeof e;return t??=Yt,!!t&&(n==`number`||n!=`symbol`&&Xt.test(e))&&e>-1&&e%1==0&&e<t}var Qt=Zt;function $t(e,t,n){t==`__proto__`&&Pt?Pt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var en=$t;function tn(e,t){return e===t||e!==e&&t!==t}var nn=tn,rn=Math.max;function an(e,t,n){return t=rn(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=rn(r.length-t,0),o=Array(a);++i<a;)o[i]=r[t+i];i=-1;for(var s=Array(t+1);++i<t;)s[i]=r[i];return s[t]=n(o),Ct(e,this,s)}}var on=an;function sn(e,t){return Rt(on(e,t,Ke),e+``)}var cn=sn,ln=9007199254740991;function un(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=ln}var dn=un;function fn(e){return e!=null&&dn(e.length)&&!Qe(e)}var pn=fn,mn=Object.prototype;function hn(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||mn)}var gn=hn;function _n(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var vn=_n,yn=`[object Arguments]`;function bn(e){return de(e)&&le(e)==yn}var xn=bn,Sn=Object.prototype,Cn=Sn.hasOwnProperty,wn=Sn.propertyIsEnumerable,Tn=xn(function(){return arguments}())?xn:function(e){return de(e)&&Cn.call(e,`callee`)&&!wn.call(e,`callee`)},En=Tn;function Dn(){return!1}var On=Dn,kn=typeof exports==`object`&&exports&&!exports.nodeType&&exports,An=kn&&typeof module==`object`&&module&&!module.nodeType&&module,jn=An&&An.exports===kn?l.Buffer:void 0,Mn=(jn?jn.isBuffer:void 0)||On,Nn=Mn,Pn=`[object Arguments]`,Fn=`[object Array]`,In=`[object Boolean]`,Ln=`[object Date]`,Rn=`[object Error]`,zn=`[object Function]`,Bn=`[object Map]`,Vn=`[object Number]`,Hn=`[object Object]`,Un=`[object RegExp]`,Wn=`[object Set]`,Gn=`[object String]`,Kn=`[object WeakMap]`,qn=`[object ArrayBuffer]`,Jn=`[object DataView]`,Yn=`[object Float32Array]`,Xn=`[object Float64Array]`,Zn=`[object Int8Array]`,Qn=`[object Int16Array]`,$n=`[object Int32Array]`,er=`[object Uint8Array]`,tr=`[object Uint8ClampedArray]`,nr=`[object Uint16Array]`,rr=`[object Uint32Array]`,g={};g[Yn]=g[Xn]=g[Zn]=g[Qn]=g[$n]=g[er]=g[tr]=g[nr]=g[rr]=!0,g[Pn]=g[Fn]=g[qn]=g[In]=g[Jn]=g[Ln]=g[Rn]=g[zn]=g[Bn]=g[Vn]=g[Hn]=g[Un]=g[Wn]=g[Gn]=g[Kn]=!1;function ir(e){return de(e)&&dn(e.length)&&!!g[le(e)]}var ar=ir;function or(e){return function(t){return e(t)}}var sr=or,cr=typeof exports==`object`&&exports&&!exports.nodeType&&exports,lr=cr&&typeof module==`object`&&module&&!module.nodeType&&module,ur=lr&&lr.exports===cr&&o.process,dr=function(){try{return lr&&lr.require&&lr.require(`util`).types||ur&&ur.binding&&ur.binding(`util`)}catch{}}(),fr=dr,pr=fr&&fr.isTypedArray,mr=pr?sr(pr):ar,hr=mr,gr=Object.prototype.hasOwnProperty;function _r(e,t){var n=ve(e),r=!n&&En(e),i=!n&&!r&&Nn(e),a=!n&&!r&&!i&&hr(e),o=n||r||i||a,s=o?vn(e.length,String):[],c=s.length;for(var l in e)(t||gr.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||Qt(l,c)))&&s.push(l);return s}var vr=_r;function yr(e,t){return function(n){return e(t(n))}}var br=yr,xr=br(Object.keys,Object),Sr=xr,Cr=Object.prototype.hasOwnProperty;function wr(e){if(!gn(e))return Sr(e);var t=[];for(var n in Object(e))Cr.call(e,n)&&n!=`constructor`&&t.push(n);return t}var Tr=wr;function Er(e){return pn(e)?vr(e):Tr(e)}var Dr=Er;function Or(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var kr=Or,Ar=Object.prototype.hasOwnProperty;function jr(e){if(!je(e))return kr(e);var t=gn(e),n=[];for(var r in e)r==`constructor`&&(t||!Ar.call(e,r))||n.push(r);return n}var Mr=jr;function Nr(e){return pn(e)?vr(e,!0):Mr(e)}var Pr=Nr,Fr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ir=/^\w*$/;function Lr(e,t){if(ve(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||me(e)?!0:Ir.test(e)||!Fr.test(e)||t!=null&&e in Object(t)}var Rr=Lr,zr=yt(Object,`create`),Br=zr;function Vr(){this.__data__=Br?Br(null):{},this.size=0}var Hr=Vr;function Ur(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Wr=Ur,Gr=`__lodash_hash_undefined__`,Kr=Object.prototype.hasOwnProperty;function qr(e){var t=this.__data__;if(Br){var n=t[e];return n===Gr?void 0:n}return Kr.call(t,e)?t[e]:void 0}var Jr=qr,Yr=Object.prototype.hasOwnProperty;function Xr(e){var t=this.__data__;return Br?t[e]!==void 0:Yr.call(t,e)}var Zr=Xr,Qr=`__lodash_hash_undefined__`;function $r(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Br&&t===void 0?Qr:t,this}var ei=$r;function ti(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ti.prototype.clear=Hr,ti.prototype.delete=Wr,ti.prototype.get=Jr,ti.prototype.has=Zr,ti.prototype.set=ei;var ni=ti;function ri(){this.__data__=[],this.size=0}var ii=ri;function ai(e,t){for(var n=e.length;n--;)if(nn(e[n][0],t))return n;return-1}var oi=ai,si=Array.prototype.splice;function ci(e){var t=this.__data__,n=oi(t,e);return n<0?!1:(n==t.length-1?t.pop():si.call(t,n,1),--this.size,!0)}var li=ci;function ui(e){var t=this.__data__,n=oi(t,e);return n<0?void 0:t[n][1]}var di=ui;function fi(e){return oi(this.__data__,e)>-1}var pi=fi;function mi(e,t){var n=this.__data__,r=oi(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var hi=mi;function gi(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}gi.prototype.clear=ii,gi.prototype.delete=li,gi.prototype.get=di,gi.prototype.has=pi,gi.prototype.set=hi;var _i=gi,vi=yt(l,`Map`),yi=vi;function bi(){this.size=0,this.__data__={hash:new ni,map:new(yi||_i),string:new ni}}var xi=bi;function Si(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}var Ci=Si;function wi(e,t){var n=e.__data__;return Ci(t)?n[typeof t==`string`?`string`:`hash`]:n.map}var Ti=wi;function Ei(e){var t=Ti(this,e).delete(e);return this.size-=t?1:0,t}var Di=Ei;function Oi(e){return Ti(this,e).get(e)}var ki=Oi;function Ai(e){return Ti(this,e).has(e)}var ji=Ai;function Mi(e,t){var n=Ti(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Ni=Mi;function Pi(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Pi.prototype.clear=xi,Pi.prototype.delete=Di,Pi.prototype.get=ki,Pi.prototype.has=ji,Pi.prototype.set=Ni;var Fi=Pi,Ii=`Expected a function`;function Li(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(Ii);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(Li.Cache||Fi),n}Li.Cache=Fi;var Ri=Li,zi=500;function Bi(e){var t=Ri(e,function(e){return n.size===zi&&n.clear(),e}),n=t.cache;return t}var Vi=Bi,Hi=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ui=/\\(\\)?/g,Wi=Vi(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(Hi,function(e,n,r,i){t.push(r?i.replace(Ui,`$1`):n||e)}),t}),Gi=Wi;function Ki(e){return e==null?``:Ce(e)}var qi=Ki;function Ji(e,t){return ve(e)?e:Rr(e,t)?[e]:Gi(qi(e))}var Yi=Ji,Xi=1/0;function Zi(e){if(typeof e==`string`||me(e))return e;var t=e+``;return t==`0`&&1/e==-Xi?`-0`:t}var Qi=Zi;function $i(e,t){t=Yi(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[Qi(t[n++])];return n&&n==r?e:void 0}var ea=$i;function ta(e,t,n){var r=e==null?void 0:ea(e,t);return r===void 0?n:r}var na=ta;function ra(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var ia=ra,aa=d?d.isConcatSpreadable:void 0;function oa(e){return ve(e)||En(e)||!!(aa&&e&&e[aa])}var sa=oa;function ca(e,t,n,r,i){var a=-1,o=e.length;for(n||=sa,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?ca(s,t-1,n,r,i):ia(i,s):r||(i[i.length]=s)}return i}var la=ca;function ua(e){return e!=null&&e.length?la(e,1):[]}var da=ua;function fa(){this.__data__=new _i,this.size=0}var pa=fa;function ma(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var ha=ma;function ga(e){return this.__data__.get(e)}var _a=ga;function va(e){return this.__data__.has(e)}var ya=va,ba=200;function xa(e,t){var n=this.__data__;if(n instanceof _i){var r=n.__data__;if(!yi||r.length<ba-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Fi(r)}return n.set(e,t),this.size=n.size,this}var Sa=xa;function Ca(e){this.size=(this.__data__=new _i(e)).size}Ca.prototype.clear=pa,Ca.prototype.delete=ha,Ca.prototype.get=_a,Ca.prototype.has=ya,Ca.prototype.set=Sa;var wa=Ca;function Ta(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}var Ea=Ta;function Da(){return[]}var Oa=Da,ka=Object.prototype.propertyIsEnumerable,Aa=Object.getOwnPropertySymbols,ja=Aa?function(e){return e==null?[]:(e=Object(e),Ea(Aa(e),function(t){return ka.call(e,t)}))}:Oa,Ma=ja;function Na(e,t,n){var r=t(e);return ve(e)?r:ia(r,n(e))}var Pa=Na;function Fa(e){return Pa(e,Dr,Ma)}var Ia=Fa,La=yt(l,`DataView`),Ra=La,za=yt(l,`Promise`),Ba=za,Va=yt(l,`Set`),Ha=Va,Ua=`[object Map]`,Wa=`[object Object]`,Ga=`[object Promise]`,Ka=`[object Set]`,qa=`[object WeakMap]`,Ja=`[object DataView]`,Ya=ot(Ra),Xa=ot(yi),Za=ot(Ba),Qa=ot(Ha),$a=ot(xt),eo=le;(Ra&&eo(new Ra(new ArrayBuffer(1)))!=Ja||yi&&eo(new yi)!=Ua||Ba&&eo(Ba.resolve())!=Ga||Ha&&eo(new Ha)!=Ka||xt&&eo(new xt)!=qa)&&(eo=function(e){var t=le(e),n=t==Wa?e.constructor:void 0,r=n?ot(n):``;if(r)switch(r){case Ya:return Ja;case Xa:return Ua;case Za:return Ga;case Qa:return Ka;case $a:return qa}return t});var to=eo,no=l.Uint8Array,ro=no;function io(e){for(var t=-1,n=e==null?0:e.length,r=0,i=[];++t<n;){var a=e[t];a&&(i[r++]=a)}return i}var ao=io,oo=`__lodash_hash_undefined__`;function so(e){return this.__data__.set(e,oo),this}var co=so;function lo(e){return this.__data__.has(e)}var uo=lo;function fo(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Fi;++t<n;)this.add(e[t])}fo.prototype.add=fo.prototype.push=co,fo.prototype.has=uo;var po=fo;function mo(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var ho=mo;function go(e,t){return e.has(t)}var _o=go,vo=1,yo=2;function bo(e,t,n,r,i,a){var o=n&vo,s=e.length,c=t.length;if(s!=c&&!(o&&c>s))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&yo?new po:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],h=t[d];if(r)var ee=o?r(h,m,d,t,e,a):r(m,h,d,e,t,a);if(ee!==void 0){if(ee)continue;f=!1;break}if(p){if(!ho(t,function(e,t){if(!_o(p,t)&&(m===e||i(m,e,n,r,a)))return p.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,n,r,a))){f=!1;break}}return a.delete(e),a.delete(t),f}var xo=bo;function So(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}var Co=So;function wo(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var To=wo,Eo=1,Do=2,Oo=`[object Boolean]`,ko=`[object Date]`,Ao=`[object Error]`,jo=`[object Map]`,Mo=`[object Number]`,No=`[object RegExp]`,Po=`[object Set]`,Fo=`[object String]`,Io=`[object Symbol]`,Lo=`[object ArrayBuffer]`,Ro=`[object DataView]`,zo=d?d.prototype:void 0,Bo=zo?zo.valueOf:void 0;function Vo(e,t,n,r,i,a,o){switch(n){case Ro:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Lo:return!(e.byteLength!=t.byteLength||!a(new ro(e),new ro(t)));case Oo:case ko:case Mo:return nn(+e,+t);case Ao:return e.name==t.name&&e.message==t.message;case No:case Fo:return e==t+``;case jo:var s=Co;case Po:var c=r&Eo;if(s||=To,e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=Do,o.set(e,t);var u=xo(s(e),s(t),r,i,a,o);return o.delete(e),u;case Io:if(Bo)return Bo.call(e)==Bo.call(t)}return!1}var Ho=Vo,Uo=1,Wo=Object.prototype.hasOwnProperty;function Go(e,t,n,r,i,a){var o=n&Uo,s=Ia(e),c=s.length;if(c!=Ia(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:Wo.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l<c;){u=s[l];var h=e[u],ee=t[u];if(r)var te=o?r(ee,h,u,t,e,a):r(h,ee,u,e,t,a);if(!(te===void 0?h===ee||i(h,ee,n,r,a):te)){p=!1;break}m||=u==`constructor`}if(p&&!m){var ne=e.constructor,re=t.constructor;ne!=re&&`constructor`in e&&`constructor`in t&&!(typeof ne==`function`&&ne instanceof ne&&typeof re==`function`&&re instanceof re)&&(p=!1)}return a.delete(e),a.delete(t),p}var Ko=Go,qo=1,Jo=`[object Arguments]`,Yo=`[object Array]`,Xo=`[object Object]`,Zo=Object.prototype.hasOwnProperty;function Qo(e,t,n,r,i,a){var o=ve(e),s=ve(t),c=o?Yo:to(e),l=s?Yo:to(t);c=c==Jo?Xo:c,l=l==Jo?Xo:l;var u=c==Xo,d=l==Xo,f=c==l;if(f&&Nn(e)){if(!Nn(t))return!1;o=!0,u=!1}if(f&&!u)return a||=new wa,o||hr(e)?xo(e,t,n,r,i,a):Ho(e,t,c,n,r,i,a);if(!(n&qo)){var p=u&&Zo.call(e,`__wrapped__`),m=d&&Zo.call(t,`__wrapped__`);if(p||m){var h=p?e.value():e,ee=m?t.value():t;return a||=new wa,i(h,ee,n,r,a)}}return f?(a||=new wa,Ko(e,t,n,r,i,a)):!1}var $o=Qo;function es(e,t,n,r,i){return e===t?!0:e==null||t==null||!de(e)&&!de(t)?e!==e&&t!==t:$o(e,t,n,r,es,i)}var ts=es,ns=1,rs=2;function is(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new wa;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?ts(u,l,ns|rs,r,d):f))return!1}}return!0}var as=is;function os(e){return e===e&&!je(e)}var ss=os;function cs(e){for(var t=Dr(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,ss(i)]}return t}var ls=cs;function us(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}var ds=us;function fs(e){var t=ls(e);return t.length==1&&t[0][2]?ds(t[0][0],t[0][1]):function(n){return n===e||as(n,e,t)}}var ps=fs;function ms(e,t){return e!=null&&t in Object(e)}var hs=ms;function gs(e,t,n){t=Yi(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=Qi(t[r]);if(!(a=e!=null&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=e==null?0:e.length,!!i&&dn(i)&&Qt(o,i)&&(ve(e)||En(e)))}var _s=gs;function vs(e,t){return e!=null&&_s(e,t,hs)}var ys=vs,bs=1,xs=2;function Ss(e,t){return Rr(e)&&ss(t)?ds(Qi(e),t):function(n){var r=na(n,e);return r===void 0&&r===t?ys(n,e):ts(t,r,bs|xs)}}var Cs=Ss;function ws(e){return function(t){return t?.[e]}}var Ts=ws;function Es(e){return function(t){return ea(t,e)}}var Ds=Es;function Os(e){return Rr(e)?Ts(Qi(e)):Ds(e)}var ks=Os;function As(e){return typeof e==`function`?e:e==null?Ke:typeof e==`object`?ve(e)?Cs(e[0],e[1]):ps(e):ks(e)}var js=As;function Ms(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}var Ns=Ms;function Ps(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}var Fs=Ps,Is=Fs(),Ls=Is;function Rs(e,t){return e&&Ls(e,t,Dr)}var zs=Rs;function Bs(e,t){return function(n,r){if(n==null)return n;if(!pn(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var Vs=Bs,Hs=Vs(zs),Us=Hs;function Ws(e,t,n,r){return Us(e,function(e,i,a){t(r,e,n(e),a)}),r}var Gs=Ws;function Ks(e,t){return function(n,r){var i=ve(n)?Ns:Gs,a=t?t():{};return i(n,e,js(r,2),a)}}var qs=Ks;function Js(e){return de(e)&&pn(e)}var Ys=Js;function Xs(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}var Zs=Xs,Qs=200;function $s(e,t,n,r){var i=-1,a=Jt,o=!0,s=e.length,c=[],l=t.length;if(!s)return c;n&&(t=ge(t,sr(n))),r?(a=Zs,o=!1):t.length>=Qs&&(a=_o,o=!1,t=new po(t));outer:for(;++i<s;){var u=e[i],d=n==null?u:n(u);if(u=r||u!==0?u:0,o&&d===d){for(var f=l;f--;)if(t[f]===d)continue outer;c.push(u)}else a(t,d,r)||c.push(u)}return c}var ec=$s,tc=cn(function(e,t){return Ys(e)?ec(e,la(t,1,Ys,!0)):[]}),nc=tc;function rc(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var _=rc;function ic(e){return typeof e==`function`?e:Ke}var ac=ic;function oc(e,t){var n=[];return Us(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}var sc=oc;function cc(e,t){return(ve(e)?Ea:sc)(e,js(t,3))}var lc=cc,uc=Math.max,dc=Math.min;function fc(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=r-1;return n!==void 0&&(i=We(n),i=n<0?uc(r+i,0):dc(i,r-1)),Bt(e,js(t,3),i,!0)}var pc=fc;function mc(e){return e&&e.length?e[0]:void 0}var hc=mc;function gc(e,t){var n=-1,r=pn(e)?Array(e.length):[];return Us(e,function(e,i,a){r[++n]=t(e,i,a)}),r}var _c=gc;function vc(e,t){return(ve(e)?ge:_c)(e,js(t,3))}var yc=vc;function bc(e,t){return la(yc(e,t),1)}var xc=bc;function Sc(e,t){return e==null?e:Ls(e,ac(t),Pr)}var Cc=Sc,wc=Object.prototype.hasOwnProperty,Tc=qs(function(e,t,n){wc.call(e,n)?e[n].push(t):en(e,n,[t])}),Ec=Tc,Dc=`[object Map]`,Oc=`[object Set]`,kc=Object.prototype.hasOwnProperty;function Ac(e){if(e==null)return!0;if(pn(e)&&(ve(e)||typeof e==`string`||typeof e.splice==`function`||Nn(e)||hr(e)||En(e)))return!e.length;var t=to(e);if(t==Dc||t==Oc)return!e.size;if(gn(e))return!Tr(e).length;for(var n in e)if(kc.call(e,n))return!1;return!0}var jc=Ac,Mc=qs(function(e,t,n){en(e,n,t)}),Nc=Mc,Pc=qs(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),v=Pc,Fc=Ha&&1/To(new Ha([,-0]))[1]==1/0?function(e){return new Ha(e)}:Tt,Ic=Fc,Lc=200;function Rc(e,t,n){var r=-1,i=Jt,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=Zs;else if(a>=Lc){var l=t?null:Ic(e);if(l)return To(l);o=!1,i=_o,c=new po}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}var zc=Rc;function Bc(e){return e&&e.length?zc(e):[]}var Vc=Bc;function Hc(e,t){return e&&e.length?zc(e,js(t,2)):[]}var Uc=Hc,Wc=Math.max;function Gc(e){if(!(e&&e.length))return[];var t=0;return e=Ea(e,function(e){if(Ys(e))return t=Wc(e.length,t),!0}),vn(t,function(t){return ge(e,Ts(t))})}var Kc=Gc,qc=cn(Kc),Jc=qc;let y=function(e){return e.SPACE=`<space>`,e.TAB=`<tab>`,e.NEWLINE=`<newline>`,e.COMMA=`<comma>`,e.LPAREN=`<lparen>`,e.RPAREN=`<rparen>`,e.LBRACE=`<lbrace>`,e.RBRACE=`<rbrace>`,e.LBRACKET=`<lbracket>`,e.RBRACKET=`<rbracket>`,e.LANGLE=`<langle>`,e.RANGLE=`<rangle>`,e.OP=`<op>`,e.EOF=`<eof>`,e.NUMERIC_LITERAL=`<number>`,e.STRING_LITERAL=`<string>`,e.COLOR_LITERAL=`<color>`,e.FUNCTION_EXPRESSION=`<function-expression>`,e.QUOTED_STRING=`<variable>`,e.IDENTIFIER=`<identifier>`,e.SEMICOLON=`<semicolon>`,e.COLON=`<colon>`,e.SINGLE_LINE_COMMENT=`<single-line-comment>`,e.MULTILINE_COMMENT=`<multiline-comment>`,e.WILDCARD=`<wildcard>`,e}({});function Yc(e){switch(e.kind){case y.NEWLINE:case y.SPACE:case y.TAB:case y.SINGLE_LINE_COMMENT:case y.MULTILINE_COMMENT:return!0;default:return!1}}function Xc(e){if(!e)return!1;switch(e){case`+`:case`-`:case`/`:case`%`:case`<`:case`>`:case`=`:case`!`:case`.`:case`&`:case`|`:case`~`:return!0;default:return!1}}function Zc(e){return e!==void 0&&e.kind===y.OP}var Qc=class e{constructor(e,t,n,r,i,a){this.kind=e,this.filepath=t,this.startPos=n,this.endPos=r,this.value=i,this.leadingTrivia=[],this.trailingTrivia=[],this.leadingInvalid=[],this.trailingInvalid=[],this.isInvalid=a,this.start=n.offset,this.end=r.offset}static create(t,n,r,i,a,o){return new e(t,n,r,i,a,o)}};function $c(e){return e.trailingTrivia.find(({kind:e})=>e===y.NEWLINE)!==void 0}function el(e,t){return t.leadingTrivia.find(({kind:e})=>e===y.NEWLINE)!==void 0||$c(e)}function tl(e){return e.trailingTrivia.find(({kind:e})=>[y.SPACE,y.TAB].includes(e))!==void 0}function nl(e){return e.trailingTrivia.length===0?e.end:nl(_(e.trailingTrivia))}function rl(e){return e.leadingTrivia.length===0?e.start:rl(e.leadingTrivia[0])}function il(e){return[y.SINGLE_LINE_COMMENT,y.MULTILINE_COMMENT].includes(e.kind)}function al(e){return e?.kind===y.IDENTIFIER&&e.value.toLowerCase()===`as`}function ol(e){return e?.kind===y.IDENTIFIER&&e.value.toLowerCase()===`use`}function sl(e){return e?.kind===y.IDENTIFIER&&e.value.toLowerCase()===`from`}function cl(e){return e?.kind===y.IDENTIFIER&&e.value.toLowerCase()===`reuse`}function ll(e){return!!e?.isInvalid}var ul=class{constructor(e){this.generator=e}create(e,t,n){return new e(t,this.generator.nextId(),n)}},dl=/^[A-Za-z]:\//;function fl(e=``){return e&&e.replace(/\\/g,`/`).replace(dl,e=>e.toUpperCase())}var pl=/^[/\\]{2}/,ml=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,hl=/^[A-Za-z]:$/,gl=/^\/([A-Za-z]:)?$/,_l=/.(\.[^./]+|\.)$/,vl=function(e){if(e.length===0)return`.`;e=fl(e);let t=e.match(pl),n=Cl(e),r=e[e.length-1]===`/`;return e=Sl(e,!n),e.length===0?n?`/`:r?`./`:`.`:(r&&(e+=`/`),hl.test(e)&&(e+=`/`),t?n?`//${e}`:`//./${e}`:n&&!Cl(e)?`/${e}`:e)},yl=function(...e){let t=``;for(let n of e)if(n)if(t.length>0){let e=t[t.length-1]===`/`,r=n[0]===`/`;e&&r?t+=n.slice(1):t+=e||r?n:`/${n}`}else t+=n;return vl(t)};function bl(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}var xl=function(...e){e=e.map(e=>fl(e));let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:bl();!i||i.length===0||(t=`${i}/${t}`,n=Cl(i))}return t=Sl(t,!n),n&&!Cl(t)?`/${t}`:t.length>0?t:`.`};function Sl(e,t){let n=``,r=0,i=-1,a=0,o=null;for(let s=0;s<=e.length;++s){if(s<e.length)o=e[s];else if(o===`/`)break;else o=`/`;if(o===`/`){if(!(i===s-1||a===1))if(a===2){if(n.length<2||r!==2||n[n.length-1]!==`.`||n[n.length-2]!==`.`){if(n.length>2){let e=n.lastIndexOf(`/`);e===-1?(n=``,r=0):(n=n.slice(0,e),r=n.length-1-n.lastIndexOf(`/`)),i=s,a=0;continue}else if(n.length>0){n=``,r=0,i=s,a=0;continue}}t&&(n+=n.length>0?`/..`:`..`,r=2)}else n.length>0?n+=`/${e.slice(i+1,s)}`:n=e.slice(i+1,s),r=s-i-1;i=s,a=0}else o===`.`&&a!==-1?++a:a=-1}return n}var Cl=function(e){return ml.test(e)},wl=function(e){if(e===`..`)return``;let t=_l.exec(fl(e));return t&&t[1]||``},Tl=function(e,t){let n=xl(e).replace(gl,`$1`).split(`/`),r=xl(t).replace(gl,`$1`).split(`/`);if(r[0][1]===`:`&&n[0][1]===`:`&&n[0]!==r[0])return r.join(`/`);let i=[...n];for(let e of i){if(r[0]!==e)break;n.shift(),r.shift()}return[...n.map(()=>`..`),...r].join(`/`)},El=function(e){let t=fl(e).replace(/\/$/,``).split(`/`).slice(0,-1);return t.length===1&&hl.test(t[0])&&(t[0]+=`/`),t.join(`/`)||(Cl(e)?`/`:`.`)},Dl=function(e,t){let n=fl(e).split(`/`),r=``;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t){r=t;break}}return t&&r.endsWith(t)?r.slice(0,-t.length):r},Ol=/^[a-zA-Z]:\//,kl=class e{constructor(e,t={}){let n=vl(e);if(!Cl(n))throw Error(`FilePath requires an absolute path, got: "${e}"`);this.path=n,this.protocol=t.protocol}intern(){return this.protocol,`filepath@${this.path}`}static from(t){return new e(t)}static resolve(t,n){return new e(xl(t,n))}static fromUri(t){try{let n=new URL(t);return new e(vl(n.host?`/${n.host}${n.pathname}`:n.pathname),{protocol:n.protocol})}catch{return new e(vl(t))}}get absolute(){return this.path}get dirname(){return El(this.path)}get basename(){return Dl(this.path)}get extname(){return wl(this.path)}resolve(t){return new e(xl(this.dirname,t))}join(...t){return new e(yl(this.path,...t))}relativeTo(e){let t=Tl(e,this.path);return!t.startsWith(`./`)&&!t.startsWith(`../`)&&![`.`,`..`].includes(t)?`./${t}`:t}toString(){return this.path}equals(e){return this.path===e.path}isParentOf(e){if(this.path===e.path)return!1;let t=this.path.endsWith(`/`)?this.path:`${this.path}/`;return e.path.startsWith(t)}toUri(e={}){let t=e.protocol||this.protocol;if(!t)return this.path;let n=Ol.test(this.path)?`${t}:///`:`${t}://`;return new URL(n+this.path).href}static isRelative(e){return!Cl(vl(e))}};function Al(e,t){if(!kl.isRelative(t))return;let n=kl.resolve(e.dirname,t);return n.absolute.endsWith(`.dbml`)?n:kl.from(n.absolute+`.dbml`)}const jl=[`null`,`true`,`false`],Ml=`.dbml`,Nl=[`-`,`+`],Pl=`public`,Fl=kl.from(`/main.dbml`);let b=function(e){return e[e.UNKNOWN_SYMBOL=1e3]=`UNKNOWN_SYMBOL`,e[e.UNEXPECTED_SYMBOL=1001]=`UNEXPECTED_SYMBOL`,e[e.UNEXPECTED_EOF=1002]=`UNEXPECTED_EOF`,e[e.UNEXPECTED_NEWLINE=1003]=`UNEXPECTED_NEWLINE`,e[e.UNKNOWN_TOKEN=1004]=`UNKNOWN_TOKEN`,e[e.UNEXPECTED_TOKEN=1005]=`UNEXPECTED_TOKEN`,e[e.UNEXPECTED_ELEMENT_DECLARATION=1006]=`UNEXPECTED_ELEMENT_DECLARATION`,e[e.MISSING_SPACES=1007]=`MISSING_SPACES`,e[e.UNKNOWN_PREFIX_OP=1008]=`UNKNOWN_PREFIX_OP`,e[e.INVALID_OPERAND=1009]=`INVALID_OPERAND`,e[e.EMPTY_ATTRIBUTE_NAME=1010]=`EMPTY_ATTRIBUTE_NAME`,e[e.INVALID_ESCAPE_SEQUENCE=1011]=`INVALID_ESCAPE_SEQUENCE`,e[e.INVALID_NAME=3e3]=`INVALID_NAME`,e[e.UNEXPECTED_NAME=3001]=`UNEXPECTED_NAME`,e[e.NAME_NOT_FOUND=3002]=`NAME_NOT_FOUND`,e[e.DUPLICATE_NAME=3003]=`DUPLICATE_NAME`,e[e.INVALID_ALIAS=3004]=`INVALID_ALIAS`,e[e.UNEXPECTED_ALIAS=3005]=`UNEXPECTED_ALIAS`,e[e.UNEXPECTED_SETTINGS=3006]=`UNEXPECTED_SETTINGS`,e[e.INVALID_SETTINGS=3007]=`INVALID_SETTINGS`,e[e.UNEXPECTED_SIMPLE_BODY=3008]=`UNEXPECTED_SIMPLE_BODY`,e[e.UNEXPECTED_COMPLEX_BODY=3009]=`UNEXPECTED_COMPLEX_BODY`,e[e.INVALID_TABLE_CONTEXT=3010]=`INVALID_TABLE_CONTEXT`,e[e.UNKNOWN_TABLE_SETTING=3011]=`UNKNOWN_TABLE_SETTING`,e[e.DUPLICATE_TABLE_SETTING=3012]=`DUPLICATE_TABLE_SETTING`,e[e.INVALID_TABLEGROUP_CONTEXT=3013]=`INVALID_TABLEGROUP_CONTEXT`,e[e.INVALID_TABLEGROUP_ELEMENT_NAME=3014]=`INVALID_TABLEGROUP_ELEMENT_NAME`,e[e.DUPLICATE_TABLEGROUP_ELEMENT_NAME=3015]=`DUPLICATE_TABLEGROUP_ELEMENT_NAME`,e[e.DUPLICATE_TABLEGROUP_FIELD_NAME=3016]=`DUPLICATE_TABLEGROUP_FIELD_NAME`,e[e.INVALID_TABLEGROUP_FIELD=3017]=`INVALID_TABLEGROUP_FIELD`,e[e.EMPTY_TABLE=3018]=`EMPTY_TABLE`,e[e.INVALID_COLUMN=3019]=`INVALID_COLUMN`,e[e.INVALID_COLUMN_NAME=3020]=`INVALID_COLUMN_NAME`,e[e.UNKNOWN_COLUMN_SETTING=3021]=`UNKNOWN_COLUMN_SETTING`,e[e.INVALID_COLUMN_TYPE=3022]=`INVALID_COLUMN_TYPE`,e[e.DUPLICATE_COLUMN_NAME=3023]=`DUPLICATE_COLUMN_NAME`,e[e.DUPLICATE_COLUMN_SETTING=3024]=`DUPLICATE_COLUMN_SETTING`,e[e.INVALID_COLUMN_SETTING_VALUE=3025]=`INVALID_COLUMN_SETTING_VALUE`,e[e.INVALID_ENUM_CONTEXT=3026]=`INVALID_ENUM_CONTEXT`,e[e.INVALID_ENUM_ELEMENT_NAME=3027]=`INVALID_ENUM_ELEMENT_NAME`,e[e.INVALID_ENUM_ELEMENT=3028]=`INVALID_ENUM_ELEMENT`,e[e.DUPLICATE_ENUM_ELEMENT_NAME=3029]=`DUPLICATE_ENUM_ELEMENT_NAME`,e[e.UNKNOWN_ENUM_ELEMENT_SETTING=3030]=`UNKNOWN_ENUM_ELEMENT_SETTING`,e[e.DUPLICATE_ENUM_ELEMENT_SETTING=3031]=`DUPLICATE_ENUM_ELEMENT_SETTING`,e[e.INVALID_ENUM_ELEMENT_SETTING=3032]=`INVALID_ENUM_ELEMENT_SETTING`,e[e.EMPTY_ENUM=3033]=`EMPTY_ENUM`,e[e.INVALID_REF_CONTEXT=3034]=`INVALID_REF_CONTEXT`,e[e.UNKNOWN_REF_SETTING=3035]=`UNKNOWN_REF_SETTING`,e[e.DUPLICATE_REF_SETTING=3036]=`DUPLICATE_REF_SETTING`,e[e.INVALID_REF_SETTING_VALUE=3037]=`INVALID_REF_SETTING_VALUE`,e[e.INVALID_REF_RELATIONSHIP=3038]=`INVALID_REF_RELATIONSHIP`,e[e.INVALID_REF_FIELD=3039]=`INVALID_REF_FIELD`,e[e.EMPTY_REF=3040]=`EMPTY_REF`,e[e.REF_REDEFINED=3041]=`REF_REDEFINED`,e[e.INVALID_NOTE_CONTEXT=3042]=`INVALID_NOTE_CONTEXT`,e[e.INVALID_NOTE=3043]=`INVALID_NOTE`,e[e.NOTE_REDEFINED=3044]=`NOTE_REDEFINED`,e[e.NOTE_CONTENT_REDEFINED=3045]=`NOTE_CONTENT_REDEFINED`,e[e.EMPTY_NOTE=3046]=`EMPTY_NOTE`,e[e.INVALID_INDEXES_CONTEXT=3047]=`INVALID_INDEXES_CONTEXT`,e[e.INVALID_INDEXES_FIELD=3048]=`INVALID_INDEXES_FIELD`,e[e.INVALID_INDEX=3049]=`INVALID_INDEX`,e[e.UNKNOWN_INDEX_SETTING=3050]=`UNKNOWN_INDEX_SETTING`,e[e.DUPLICATE_INDEX_SETTING=3051]=`DUPLICATE_INDEX_SETTING`,e[e.UNEXPECTED_INDEX_SETTING_VALUE=3052]=`UNEXPECTED_INDEX_SETTING_VALUE`,e[e.INVALID_INDEX_SETTING_VALUE=3053]=`INVALID_INDEX_SETTING_VALUE`,e[e.INVALID_PROJECT_CONTEXT=3054]=`INVALID_PROJECT_CONTEXT`,e[e.PROJECT_REDEFINED=3055]=`PROJECT_REDEFINED`,e[e.INVALID_PROJECT_FIELD=3056]=`INVALID_PROJECT_FIELD`,e[e.INVALID_CUSTOM_CONTEXT=3057]=`INVALID_CUSTOM_CONTEXT`,e[e.INVALID_CUSTOM_ELEMENT_VALUE=3058]=`INVALID_CUSTOM_ELEMENT_VALUE`,e[e.INVALID_ELEMENT_IN_SIMPLE_BODY=3059]=`INVALID_ELEMENT_IN_SIMPLE_BODY`,e[e.INVALID_TABLE_PARTIAL_CONTEXT=3060]=`INVALID_TABLE_PARTIAL_CONTEXT`,e[e.INVALID_TABLE_PARTIAL_ELEMENT_NAME=3061]=`INVALID_TABLE_PARTIAL_ELEMENT_NAME`,e[e.INVALID_TABLE_PARTIAL_SETTING_VALUE=3062]=`INVALID_TABLE_PARTIAL_SETTING_VALUE`,e[e.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME=3063]=`DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME`,e[e.DUPLICATE_TABLE_PARTIAL_SETTING=3064]=`DUPLICATE_TABLE_PARTIAL_SETTING`,e[e.INVALID_TABLE_PARTIAL_INJECTION=3065]=`INVALID_TABLE_PARTIAL_INJECTION`,e[e.INVALID_TABLE_PARTIAL_INJECTION_OP=3066]=`INVALID_TABLE_PARTIAL_INJECTION_OP`,e[e.INVALID_TABLE_PARTIAL_INJECTION_NAME=3067]=`INVALID_TABLE_PARTIAL_INJECTION_NAME`,e[e.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME=3068]=`DUPLICATE_TABLE_PARTIAL_INJECTION_NAME`,e[e.UNKNOWN_TABLE_PARTIAL_SETTING=3069]=`UNKNOWN_TABLE_PARTIAL_SETTING`,e[e.INVALID_TABLE_SETTING_VALUE=3070]=`INVALID_TABLE_SETTING_VALUE`,e[e.INVALID_CHECKS_CONTEXT=3071]=`INVALID_CHECKS_CONTEXT`,e[e.INVALID_CHECKS_FIELD=3072]=`INVALID_CHECKS_FIELD`,e[e.INVALID_CHECK=3073]=`INVALID_CHECK`,e[e.UNKNOWN_CHECK_SETTING=3074]=`UNKNOWN_CHECK_SETTING`,e[e.DUPLICATE_CHECK_SETTING=3075]=`DUPLICATE_CHECK_SETTING`,e[e.INVALID_CHECK_SETTING_VALUE=3076]=`INVALID_CHECK_SETTING_VALUE`,e[e.INVALID_RECORDS_CONTEXT=3077]=`INVALID_RECORDS_CONTEXT`,e[e.INVALID_RECORDS_NAME=3078]=`INVALID_RECORDS_NAME`,e[e.INVALID_RECORDS_FIELD=3079]=`INVALID_RECORDS_FIELD`,e[e.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS=3080]=`DUPLICATE_COLUMN_REFERENCES_IN_RECORDS`,e[e.DUPLICATE_RECORDS_FOR_TABLE=3081]=`DUPLICATE_RECORDS_FOR_TABLE`,e[e.INVALID_USE_CONTEXT=3082]=`INVALID_USE_CONTEXT`,e[e.INVALID_USE_SPECIFIER_KIND=3083]=`INVALID_USE_SPECIFIER_KIND`,e[e.INVALID_USE_SPECIFIER_NAME=3084]=`INVALID_USE_SPECIFIER_NAME`,e[e.INVALID_DIAGRAMVIEW_CONTEXT=3085]=`INVALID_DIAGRAMVIEW_CONTEXT`,e[e.DUPLICATE_DIAGRAMVIEW_NAME=3086]=`DUPLICATE_DIAGRAMVIEW_NAME`,e[e.INVALID_DIAGRAMVIEW_FIELD=3087]=`INVALID_DIAGRAMVIEW_FIELD`,e[e.DUPLICATE_DIAGRAMVIEW_FIELD=3088]=`DUPLICATE_DIAGRAMVIEW_FIELD`,e[e.BINDING_ERROR=4e3]=`BINDING_ERROR`,e[e.NONEXISTENT_MODULE=4001]=`NONEXISTENT_MODULE`,e[e.UNSUPPORTED=5e3]=`UNSUPPORTED`,e[e.CIRCULAR_REF=5001]=`CIRCULAR_REF`,e[e.SAME_ENDPOINT=5002]=`SAME_ENDPOINT`,e[e.UNEQUAL_FIELDS_BINARY_REF=5003]=`UNEQUAL_FIELDS_BINARY_REF`,e[e.CONFLICTING_SETTING=5004]=`CONFLICTING_SETTING`,e[e.TABLE_REAPPEAR_IN_TABLEGROUP=5005]=`TABLE_REAPPEAR_IN_TABLEGROUP`,e}({});var x=class e extends Error{constructor(t,n,r){super(n),this.code=t,this.diagnostic=n,this.nodeOrToken=r,this.start=r.start,this.end=r.end,this.name=this.constructor.name,Object.setPrototypeOf(this,e.prototype)}toWarning(){return new Il(this.code,this.message,this.nodeOrToken)}get filepath(){return this.nodeOrToken.filepath}},Il=class extends Error{constructor(e,t,n){super(t),this.code=e,this.diagnostic=t,this.nodeOrToken=n,this.start=n.start,this.end=n.end,this.name=this.constructor.name,Object.setPrototypeOf(this,x.prototype)}get filepath(){return this.nodeOrToken.filepath}};function Ll(e){return!!e.match(/(\p{L}|_|\p{M})/gu)}function Rl(e){if(!e)return!1;let t=e[0];return t>=`0`&&t<=`9`}function zl(e){let[t]=e;return Rl(t)||Ll(t)&&t.toLowerCase()>=`a`&&t.toLowerCase()<=`f`}function Bl(e){return Ll(e)||Rl(e)}function Vl(e){let t=O(e);return t!==void 0&&t.length>0}function Hl(e){return Ul(e)}function Ul(e){return e instanceof gd&&e.expression instanceof hd}function Wl(e){return!!e.bodyColon}function Gl(e){return e instanceof L&&e.op?.value===`~`&&w(e.expression)}function Kl(e){return e===`-`||e===`<>`||e===`>`||e===`<`}function ql(e){if(!(e instanceof gd)||!(e.expression instanceof pd)||e.expression.literal?.kind!==y.COLOR_LITERAL)return!1;let t=e.expression.literal.value;if(t.length!==4&&t.length!==7||t[0]!==`#`)return!1;for(let e=1;e<t.length;e+=1)if(!zl(t[e]))return!1;return!0}function Jl(e){if(C(e)||Yl(e)||eu(e)&&[`true`,`false`,`null`].includes(e.expression.variable.value.toLowerCase())||e instanceof L&&Nl.includes(e.op?.value)&&Yl(e.expression)||e instanceof ld)return!0;if(!e||!tu(e))return!1;let t=yu(e);return t.length===2||t.length===3}function Yl(e){return e instanceof L?Nl.includes(e.op.value)?Yl(e.expression):!1:e instanceof gd&&e.expression instanceof pd&&e.expression.literal?.kind===y.NUMERIC_LITERAL}function Xl(e){if(!(e instanceof L)||!Kl(e.op?.value))return!1;let t=O(e.expression);return t!==void 0&&t.length>0}function Zl(e){return e instanceof ud&&e.elementList.every(w)}function Ql(e){if(!(e instanceof V||T(e)||e instanceof gd||e instanceof vd))return!1;for(;e instanceof V||e instanceof vd;)if(e instanceof V){if(e.callee===void 0||e.argumentList===void 0||!e.argumentList.elementList.every(e=>Yl(e)||C(e)||eu(e)))return!1;e=e.callee}else if(e instanceof vd){if(e.array===void 0||e.indexer===void 0||!e.indexer.elementList.every(e=>!e.colon&&!e.value&&Yl(e.name)))return!1;e=e.array}let t=O(e);return t!==void 0&&t.length>0}function S(e){let t={},r=[];return e?(e.elementList.forEach(e=>{if(!e.name)return;if(e.name instanceof gd){r.push(new x(b.INVALID_SETTINGS,`A setting name must be a stream of identifiers`,e.name));return}let n=hu(e.name)?.toLowerCase();if(!n)return;let i=t[n];i?i.push(e):t[n]=[e]}),new n(t,r)):new n(t)}function C(e){return e instanceof gd&&(e.expression instanceof hd&&e.expression.variable instanceof Qc&&e.expression.variable.kind===y.QUOTED_STRING||e.expression instanceof pd&&e.expression.literal?.kind===y.STRING_LITERAL)}function w(e){return e instanceof gd&&e.expression instanceof hd&&e.expression.variable instanceof Qc}function $l(e){return e?e instanceof md:!1}function eu(e){return e instanceof gd&&e.expression instanceof hd&&e.expression.variable?.kind===y.IDENTIFIER}function T(e){return e instanceof sd&&e.leftExpression instanceof N&&e.rightExpression instanceof N&&e.op?.value===`.`}function tu(e){return w(e)?!0:T(e)&&w(e.rightExpression)&&tu(e.leftExpression)}function E(e,t){return e instanceof F&&e.isKind(t)}function nu(e){return e instanceof rd}function ru(e,t){return e instanceof id&&(t===void 0||e.isKind(t))}function iu(e){return e instanceof nd}function D(e,...t){return e instanceof R&&e.parent instanceof F&&e.parent.isKind(...t)}function au(e,t){let n=e.parent;return n instanceof F&&n.isKind(t)&&!!n.body&&n.body.strictlyContains(e)}function ou(e,t){let n=e.parentOfKind(R);if(!n||t<0)return!1;if(t===0)return n.callee?n.callee.containsEq(e):!1;let r=n.args[t-1];return r?r.containsEq(e):!1}function su(e){return!!e.parentOfKind(B)}function cu(e,t){let n=e.parentOfKind(I);return!n||(n.name instanceof gd?A(n.name):hu(n.name))?.toLowerCase()!==t?!1:!!n.value?.containsEq(e)}function lu(e){return!(e instanceof sd)||!Kl(e.op?.value)?!1:bu(e.leftExpression)!==void 0&&bu(e.rightExpression)!==void 0}function uu(e){let t=bu(e.leftExpression),n=bu(e.rightExpression);if(t===void 0||n===void 0)return!1;let{tupleElements:r}=t,{tupleElements:i}=n;return r?.length===i?.length}function du(e){return e instanceof gd&&e.expression instanceof hd||e instanceof ld}function fu(e){if(w(e))return e;if(T(e)){let t=e.rightExpression;if(t&&w(t))return t}}function pu(e){let t=e.parentNode;return!T(t)||t.rightExpression!==e?!1:!(T(t.parentNode)&&t.parentNode.leftExpression===t)}function mu(e){if(w(e))return e.expression.variable}function hu(e){if(e===void 0)return;let t=e.identifiers.map(e=>e.value).join(` `);if(t!==``)return t}function gu(e){if(!(e instanceof F))return;let t=O(e?.name);return t===void 0?void 0:t.join(`.`)}function _u(e){return e.elementList.length===0}function vu(e){return e?.body?e.body instanceof z?e.body.body:[e.body]:[]}function yu(e){if(!e)return;if(!T(e))return[e];let t=yu(e.leftExpression);if(t)return t.push(e.rightExpression),t}function O(e){if(e===void 0)return;let t=yu(e);if(!t)return;let n=[];for(let e of t){let t=A(e);if(typeof t!=`string`)return;n.push(t)}return n}function bu(e){if(e===void 0)return;let t=yu(e);if(!t||t.length===0)return;let n=[];if(!w(_(t))){let e=t.pop();if(Zl(e))n=e.elementList;else return}let r=t;if(r.every(w))return{variables:r,tupleElements:n}}function xu(e){if(du(e))return e instanceof ld?{functional:[e],nonFunctional:[]}:{functional:[],nonFunctional:[e]};if(e instanceof ud&&e.elementList.every(du))return{functional:e.elementList.filter(e=>e instanceof ld),nonFunctional:e.elementList.filter(w)}}function k(e){if(C(e))return e.expression instanceof hd?e?.expression?.variable?.value:e.expression.literal.value}function Su(e){return e instanceof gd&&e.expression instanceof pd&&e.expression.literal?.kind===y.NUMERIC_LITERAL?Number(e.expression.literal.value):null}function Cu(e){if(!(e instanceof V)||!e.callee)return;let t=yu(e.callee);if(!t||t.length===0||!t.every(w))return;let n=[];return Zl(e.argumentList)&&(n=[...e.argumentList.elementList]),{variables:t,args:n}}function A(e){if(w(e))return e.expression.variable.value}function wu(e){let t=e?.expression.variable?.value;return t===void 0?void 0:t}function Tu(e){return e instanceof L?`${e.op?.value}${Tu(e.expression)}`:e.expression.literal.value}function Eu(e){return e instanceof L?e.op?.value===`-`?-Eu(e.expression):Eu(e.expression):Number.parseFloat(e.expression.literal.value)}function j(e){return{start:{offset:e.startPos.offset,line:e.startPos.line+1,column:e.startPos.column+1},end:{offset:e.endPos.offset,line:e.endPos.line+1,column:e.endPos.column+1},filepath:e.filepath}}function Du(e){let t=e.split(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=Symbol(`PASS_THROUGH`),t=Symbol(`UNHANDLED`);var n=class e{static create(t,n,r){return new e(t,n,r)}constructor(e,t,n){this.value=e,this.errors=t===void 0?[]:t,n?.length&&(this.warnings=n)}filter(t){return this.value===t?new e(void 0,this.errors,this.warnings):this}hasValue(e){return this.value===e}getFiltered(...e){return e.includes(this.value)?void 0:this.value}getValue(){return this.value}getErrors(){return this.errors}getWarnings(){return this.warnings||[]}chainFiltered(t,...n){if(n.includes(this.value))return new e(void 0,this.errors,this.warnings);let r=t(this.value),i=[...this.errors,...r.errors],a=[...this.getWarnings(),...r.getWarnings()];return new e(r.value,i,a)}chain(t){let n=t(this.value),r=[...this.errors,...n.errors],i=[...this.getWarnings(),...n.getWarnings()];return new e(n.value,r,i)}mapFiltered(t,...n){return n.includes(this.value)?new e(void 0,this.errors,this.warnings):new e(t(this.value),this.errors,this.warnings)}map(t){return new e(t(this.value),this.errors,this.warnings)}};let r=function(e){return e.Table=`table`,e.Enum=`enum`,e.Ref=`ref`,e.Note=`note`,e.Project=`project`,e.Indexes=`indexes`,e.TableGroup=`tablegroup`,e.TablePartial=`tablepartial`,e.Checks=`checks`,e.Records=`records`,e.DiagramView=`diagramview`,e.DiagramViewTables=`tables`,e.DiagramViewNotes=`notes`,e.DiagramViewTableGroups=`tablegroups`,e.DiagramViewSchemas=`schemas`,e}({}),i=function(e){return e.Color=`color`,e.HeaderColor=`headercolor`,e.Note=`note`,e.PK=`pk`,e.PrimaryKey=`primary key`,e.Unique=`unique`,e.Ref=`ref`,e.NotNull=`not null`,e.Null=`null`,e.Increment=`increment`,e.Default=`default`,e.Name=`name`,e.Type=`type`,e.Check=`check`,e.Update=`update`,e.Delete=`delete`,e.Inactive=`inactive`,e}({});var a=typeof global==`object`&&global&&global.Object===Object&&global,o=a,s=typeof self==`object`&&self&&self.Object===Object&&self,c=o||s||Function(`return this`)(),l=c,u=l.Symbol,d=u,f=Object.prototype,p=f.hasOwnProperty,m=f.toString,ee=d?d.toStringTag:void 0;function te(e){var t=p.call(e,ee),n=e[ee];try{e[ee]=void 0;var r=!0}catch{}var i=m.call(e);return r&&(t?e[ee]=n:delete e[ee]),i}var ne=te,re=Object.prototype.toString;function ie(e){return re.call(e)}var ae=ie,oe=`[object Null]`,se=`[object Undefined]`,ce=d?d.toStringTag:void 0;function le(e){return e==null?e===void 0?se:oe:ce&&ce in Object(e)?ne(e):ae(e)}var ue=le;function de(e){return typeof e==`object`&&!!e}var fe=de,pe=`[object Symbol]`;function me(e){return typeof e==`symbol`||fe(e)&&ue(e)==pe}var he=me;function ge(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var _e=ge,ve=Array.isArray,ye=ve,be=1/0,xe=d?d.prototype:void 0,Se=xe?xe.toString:void 0;function Ce(e){if(typeof e==`string`)return e;if(ye(e))return _e(e,Ce)+``;if(he(e))return Se?Se.call(e):``;var t=e+``;return t==`0`&&1/e==-be?`-0`:t}var we=Ce,Te=/\s/;function Ee(e){for(var t=e.length;t--&&Te.test(e.charAt(t)););return t}var De=Ee,Oe=/^\s+/;function ke(e){return e&&e.slice(0,De(e)+1).replace(Oe,``)}var Ae=ke;function je(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var Me=je,Ne=NaN,Pe=/^[-+]0x[0-9a-f]+$/i,Fe=/^0b[01]+$/i,Ie=/^0o[0-7]+$/i,Le=parseInt;function Re(e){if(typeof e==`number`)return e;if(he(e))return Ne;if(Me(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=Me(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=Ae(e);var n=Fe.test(e);return n||Ie.test(e)?Le(e.slice(2),n?2:8):Pe.test(e)?Ne:+e}var ze=Re,Be=1/0,Ve=17976931348623157e292;function He(e){return e?(e=ze(e),e===Be||e===-Be?(e<0?-1:1)*Ve:e===e?e:0):e===0?e:0}var Ue=He;function We(e){var t=Ue(e),n=t%1;return t===t?n?t-n:t:0}var Ge=We;function Ke(e){return e}var qe=Ke,Je=`[object AsyncFunction]`,Ye=`[object Function]`,Xe=`[object GeneratorFunction]`,Ze=`[object Proxy]`;function Qe(e){if(!Me(e))return!1;var t=ue(e);return t==Ye||t==Xe||t==Je||t==Ze}var $e=Qe,et=l[`__core-js_shared__`],tt=et,nt=function(){var e=/[^.]+$/.exec(tt&&tt.keys&&tt.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function rt(e){return!!nt&&nt in e}var it=rt,at=Function.prototype.toString;function ot(e){if(e!=null){try{return at.call(e)}catch{}try{return e+``}catch{}}return``}var st=ot,ct=/[\\^$.*+?()[\]{}|]/g,lt=/^\[object .+?Constructor\]$/,ut=Function.prototype,dt=Object.prototype,ft=ut.toString,pt=dt.hasOwnProperty,mt=RegExp(`^`+ft.call(pt).replace(ct,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function ht(e){return!Me(e)||it(e)?!1:($e(e)?mt:lt).test(st(e))}var gt=ht;function _t(e,t){return e?.[t]}var vt=_t;function yt(e,t){var n=vt(e,t);return gt(n)?n:void 0}var bt=yt,xt=bt(l,`WeakMap`),St=xt;function Ct(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var wt=Ct;function Tt(){}var Et=Tt,Dt=800,Ot=16,kt=Date.now;function At(e){var t=0,n=0;return function(){var r=kt(),i=Ot-(r-n);if(n=r,i>0){if(++t>=Dt)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var jt=At;function Mt(e){return function(){return e}}var Nt=Mt,Pt=function(){try{var e=bt(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),Ft=Pt,It=Ft?function(e,t){return Ft(e,`toString`,{configurable:!0,enumerable:!1,value:Nt(t),writable:!0})}:qe,Lt=It,Rt=jt(Lt),zt=Rt;function Bt(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}var Vt=Bt;function Ht(e){return e!==e}var Ut=Ht;function Wt(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}var Gt=Wt;function Kt(e,t,n){return t===t?Gt(e,t,n):Vt(e,Ut,n)}var qt=Kt;function Jt(e,t){return!!(e!=null&&e.length)&&qt(e,t,0)>-1}var Yt=Jt,Xt=9007199254740991,Zt=/^(?:0|[1-9]\d*)$/;function Qt(e,t){var n=typeof e;return t??=Xt,!!t&&(n==`number`||n!=`symbol`&&Zt.test(e))&&e>-1&&e%1==0&&e<t}var $t=Qt;function en(e,t,n){t==`__proto__`&&Ft?Ft(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var tn=en;function nn(e,t){return e===t||e!==e&&t!==t}var rn=nn,an=Math.max;function on(e,t,n){return t=an(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=an(r.length-t,0),o=Array(a);++i<a;)o[i]=r[t+i];i=-1;for(var s=Array(t+1);++i<t;)s[i]=r[i];return s[t]=n(o),wt(e,this,s)}}var sn=on;function cn(e,t){return zt(sn(e,t,qe),e+``)}var ln=cn,un=9007199254740991;function dn(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=un}var fn=dn;function pn(e){return e!=null&&fn(e.length)&&!$e(e)}var mn=pn,hn=Object.prototype;function gn(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||hn)}var _n=gn;function vn(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var yn=vn,bn=`[object Arguments]`;function xn(e){return fe(e)&&ue(e)==bn}var Sn=xn,Cn=Object.prototype,wn=Cn.hasOwnProperty,Tn=Cn.propertyIsEnumerable,En=Sn(function(){return arguments}())?Sn:function(e){return fe(e)&&wn.call(e,`callee`)&&!Tn.call(e,`callee`)},Dn=En;function On(){return!1}var kn=On,An=typeof exports==`object`&&exports&&!exports.nodeType&&exports,jn=An&&typeof module==`object`&&module&&!module.nodeType&&module,Mn=jn&&jn.exports===An?l.Buffer:void 0,Nn=(Mn?Mn.isBuffer:void 0)||kn,Pn=Nn,Fn=`[object Arguments]`,In=`[object Array]`,Ln=`[object Boolean]`,Rn=`[object Date]`,zn=`[object Error]`,Bn=`[object Function]`,Vn=`[object Map]`,Hn=`[object Number]`,Un=`[object Object]`,Wn=`[object RegExp]`,Gn=`[object Set]`,Kn=`[object String]`,qn=`[object WeakMap]`,Jn=`[object ArrayBuffer]`,Yn=`[object DataView]`,Xn=`[object Float32Array]`,Zn=`[object Float64Array]`,Qn=`[object Int8Array]`,$n=`[object Int16Array]`,er=`[object Int32Array]`,tr=`[object Uint8Array]`,nr=`[object Uint8ClampedArray]`,rr=`[object Uint16Array]`,ir=`[object Uint32Array]`,ar={};ar[Xn]=ar[Zn]=ar[Qn]=ar[$n]=ar[er]=ar[tr]=ar[nr]=ar[rr]=ar[ir]=!0,ar[Fn]=ar[In]=ar[Jn]=ar[Ln]=ar[Yn]=ar[Rn]=ar[zn]=ar[Bn]=ar[Vn]=ar[Hn]=ar[Un]=ar[Wn]=ar[Gn]=ar[Kn]=ar[qn]=!1;function or(e){return fe(e)&&fn(e.length)&&!!ar[ue(e)]}var sr=or;function cr(e){return function(t){return e(t)}}var lr=cr,ur=typeof exports==`object`&&exports&&!exports.nodeType&&exports,dr=ur&&typeof module==`object`&&module&&!module.nodeType&&module,fr=dr&&dr.exports===ur&&o.process,pr=function(){try{return dr&&dr.require&&dr.require(`util`).types||fr&&fr.binding&&fr.binding(`util`)}catch{}}(),mr=pr,hr=mr&&mr.isTypedArray,gr=hr?lr(hr):sr,_r=gr,vr=Object.prototype.hasOwnProperty;function yr(e,t){var n=ye(e),r=!n&&Dn(e),i=!n&&!r&&Pn(e),a=!n&&!r&&!i&&_r(e),o=n||r||i||a,s=o?yn(e.length,String):[],c=s.length;for(var l in e)(t||vr.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||$t(l,c)))&&s.push(l);return s}var br=yr;function xr(e,t){return function(n){return e(t(n))}}var Sr=xr,Cr=Sr(Object.keys,Object),wr=Cr,Tr=Object.prototype.hasOwnProperty;function Er(e){if(!_n(e))return wr(e);var t=[];for(var n in Object(e))Tr.call(e,n)&&n!=`constructor`&&t.push(n);return t}var Dr=Er;function Or(e){return mn(e)?br(e):Dr(e)}var kr=Or;function Ar(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var jr=Ar,Mr=Object.prototype.hasOwnProperty;function Nr(e){if(!Me(e))return jr(e);var t=_n(e),n=[];for(var r in e)r==`constructor`&&(t||!Mr.call(e,r))||n.push(r);return n}var Pr=Nr;function Fr(e){return mn(e)?br(e,!0):Pr(e)}var Ir=Fr,Lr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rr=/^\w*$/;function zr(e,t){if(ye(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||he(e)?!0:Rr.test(e)||!Lr.test(e)||t!=null&&e in Object(t)}var Br=zr,Vr=bt(Object,`create`),Hr=Vr;function Ur(){this.__data__=Hr?Hr(null):{},this.size=0}var Wr=Ur;function Gr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Kr=Gr,qr=`__lodash_hash_undefined__`,Jr=Object.prototype.hasOwnProperty;function Yr(e){var t=this.__data__;if(Hr){var n=t[e];return n===qr?void 0:n}return Jr.call(t,e)?t[e]:void 0}var Xr=Yr,Zr=Object.prototype.hasOwnProperty;function Qr(e){var t=this.__data__;return Hr?t[e]!==void 0:Zr.call(t,e)}var $r=Qr,ei=`__lodash_hash_undefined__`;function ti(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Hr&&t===void 0?ei:t,this}var ni=ti;function ri(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ri.prototype.clear=Wr,ri.prototype.delete=Kr,ri.prototype.get=Xr,ri.prototype.has=$r,ri.prototype.set=ni;var ii=ri;function ai(){this.__data__=[],this.size=0}var oi=ai;function si(e,t){for(var n=e.length;n--;)if(rn(e[n][0],t))return n;return-1}var ci=si,li=Array.prototype.splice;function ui(e){var t=this.__data__,n=ci(t,e);return n<0?!1:(n==t.length-1?t.pop():li.call(t,n,1),--this.size,!0)}var di=ui;function fi(e){var t=this.__data__,n=ci(t,e);return n<0?void 0:t[n][1]}var pi=fi;function mi(e){return ci(this.__data__,e)>-1}var hi=mi;function gi(e,t){var n=this.__data__,r=ci(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var _i=gi;function vi(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}vi.prototype.clear=oi,vi.prototype.delete=di,vi.prototype.get=pi,vi.prototype.has=hi,vi.prototype.set=_i;var yi=vi,bi=bt(l,`Map`),xi=bi;function Si(){this.size=0,this.__data__={hash:new ii,map:new(xi||yi),string:new ii}}var Ci=Si;function wi(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}var Ti=wi;function Ei(e,t){var n=e.__data__;return Ti(t)?n[typeof t==`string`?`string`:`hash`]:n.map}var Di=Ei;function Oi(e){var t=Di(this,e).delete(e);return this.size-=t?1:0,t}var ki=Oi;function Ai(e){return Di(this,e).get(e)}var ji=Ai;function Mi(e){return Di(this,e).has(e)}var Ni=Mi;function Pi(e,t){var n=Di(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Fi=Pi;function Ii(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ii.prototype.clear=Ci,Ii.prototype.delete=ki,Ii.prototype.get=ji,Ii.prototype.has=Ni,Ii.prototype.set=Fi;var Li=Ii,Ri=`Expected a function`;function zi(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(Ri);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(zi.Cache||Li),n}zi.Cache=Li;var Bi=zi,Vi=500;function Hi(e){var t=Bi(e,function(e){return n.size===Vi&&n.clear(),e}),n=t.cache;return t}var Ui=Hi,Wi=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Gi=/\\(\\)?/g,Ki=Ui(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(Wi,function(e,n,r,i){t.push(r?i.replace(Gi,`$1`):n||e)}),t}),qi=Ki;function Ji(e){return e==null?``:we(e)}var Yi=Ji;function Xi(e,t){return ye(e)?e:Br(e,t)?[e]:qi(Yi(e))}var Zi=Xi,Qi=1/0;function $i(e){if(typeof e==`string`||he(e))return e;var t=e+``;return t==`0`&&1/e==-Qi?`-0`:t}var ea=$i;function ta(e,t){t=Zi(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[ea(t[n++])];return n&&n==r?e:void 0}var na=ta;function ra(e,t,n){var r=e==null?void 0:na(e,t);return r===void 0?n:r}var ia=ra;function aa(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var oa=aa,sa=d?d.isConcatSpreadable:void 0;function ca(e){return ye(e)||Dn(e)||!!(sa&&e&&e[sa])}var la=ca;function ua(e,t,n,r,i){var a=-1,o=e.length;for(n||=la,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?ua(s,t-1,n,r,i):oa(i,s):r||(i[i.length]=s)}return i}var da=ua;function fa(e){return e!=null&&e.length?da(e,1):[]}var pa=fa;function ma(){this.__data__=new yi,this.size=0}var ha=ma;function ga(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var _a=ga;function va(e){return this.__data__.get(e)}var ya=va;function ba(e){return this.__data__.has(e)}var xa=ba,Sa=200;function Ca(e,t){var n=this.__data__;if(n instanceof yi){var r=n.__data__;if(!xi||r.length<Sa-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Li(r)}return n.set(e,t),this.size=n.size,this}var wa=Ca;function Ta(e){this.size=(this.__data__=new yi(e)).size}Ta.prototype.clear=ha,Ta.prototype.delete=_a,Ta.prototype.get=ya,Ta.prototype.has=xa,Ta.prototype.set=wa;var Ea=Ta;function Da(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}var Oa=Da;function ka(){return[]}var Aa=ka,ja=Object.prototype.propertyIsEnumerable,Ma=Object.getOwnPropertySymbols,Na=Ma?function(e){return e==null?[]:(e=Object(e),Oa(Ma(e),function(t){return ja.call(e,t)}))}:Aa,Pa=Na;function Fa(e,t,n){var r=t(e);return ye(e)?r:oa(r,n(e))}var Ia=Fa;function La(e){return Ia(e,kr,Pa)}var Ra=La,za=bt(l,`DataView`),Ba=za,Va=bt(l,`Promise`),Ha=Va,Ua=bt(l,`Set`),Wa=Ua,Ga=`[object Map]`,Ka=`[object Object]`,qa=`[object Promise]`,Ja=`[object Set]`,Ya=`[object WeakMap]`,Xa=`[object DataView]`,Za=st(Ba),Qa=st(xi),$a=st(Ha),eo=st(Wa),to=st(St),no=ue;(Ba&&no(new Ba(new ArrayBuffer(1)))!=Xa||xi&&no(new xi)!=Ga||Ha&&no(Ha.resolve())!=qa||Wa&&no(new Wa)!=Ja||St&&no(new St)!=Ya)&&(no=function(e){var t=ue(e),n=t==Ka?e.constructor:void 0,r=n?st(n):``;if(r)switch(r){case Za:return Xa;case Qa:return Ga;case $a:return qa;case eo:return Ja;case to:return Ya}return t});var ro=no,io=l.Uint8Array,ao=io;function oo(e){for(var t=-1,n=e==null?0:e.length,r=0,i=[];++t<n;){var a=e[t];a&&(i[r++]=a)}return i}var so=oo,co=`__lodash_hash_undefined__`;function lo(e){return this.__data__.set(e,co),this}var uo=lo;function fo(e){return this.__data__.has(e)}var po=fo;function mo(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Li;++t<n;)this.add(e[t])}mo.prototype.add=mo.prototype.push=uo,mo.prototype.has=po;var ho=mo;function go(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var _o=go;function vo(e,t){return e.has(t)}var yo=vo,bo=1,xo=2;function So(e,t,n,r,i,a){var o=n&bo,s=e.length,c=t.length;if(s!=c&&!(o&&c>s))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&xo?new ho:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],ee=t[d];if(r)var te=o?r(ee,m,d,t,e,a):r(m,ee,d,e,t,a);if(te!==void 0){if(te)continue;f=!1;break}if(p){if(!_o(t,function(e,t){if(!yo(p,t)&&(m===e||i(m,e,n,r,a)))return p.push(t)})){f=!1;break}}else if(!(m===ee||i(m,ee,n,r,a))){f=!1;break}}return a.delete(e),a.delete(t),f}var Co=So;function wo(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}var To=wo;function Eo(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var Do=Eo,Oo=1,ko=2,Ao=`[object Boolean]`,jo=`[object Date]`,Mo=`[object Error]`,No=`[object Map]`,Po=`[object Number]`,Fo=`[object RegExp]`,Io=`[object Set]`,Lo=`[object String]`,Ro=`[object Symbol]`,zo=`[object ArrayBuffer]`,Bo=`[object DataView]`,Vo=d?d.prototype:void 0,Ho=Vo?Vo.valueOf:void 0;function Uo(e,t,n,r,i,a,o){switch(n){case Bo:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case zo:return!(e.byteLength!=t.byteLength||!a(new ao(e),new ao(t)));case Ao:case jo:case Po:return rn(+e,+t);case Mo:return e.name==t.name&&e.message==t.message;case Fo:case Lo:return e==t+``;case No:var s=To;case Io:var c=r&Oo;if(s||=Do,e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=ko,o.set(e,t);var u=Co(s(e),s(t),r,i,a,o);return o.delete(e),u;case Ro:if(Ho)return Ho.call(e)==Ho.call(t)}return!1}var Wo=Uo,Go=1,Ko=Object.prototype.hasOwnProperty;function qo(e,t,n,r,i,a){var o=n&Go,s=Ra(e),c=s.length;if(c!=Ra(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:Ko.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l<c;){u=s[l];var ee=e[u],te=t[u];if(r)var ne=o?r(te,ee,u,t,e,a):r(ee,te,u,e,t,a);if(!(ne===void 0?ee===te||i(ee,te,n,r,a):ne)){p=!1;break}m||=u==`constructor`}if(p&&!m){var re=e.constructor,ie=t.constructor;re!=ie&&`constructor`in e&&`constructor`in t&&!(typeof re==`function`&&re instanceof re&&typeof ie==`function`&&ie instanceof ie)&&(p=!1)}return a.delete(e),a.delete(t),p}var Jo=qo,Yo=1,Xo=`[object Arguments]`,Zo=`[object Array]`,Qo=`[object Object]`,$o=Object.prototype.hasOwnProperty;function es(e,t,n,r,i,a){var o=ye(e),s=ye(t),c=o?Zo:ro(e),l=s?Zo:ro(t);c=c==Xo?Qo:c,l=l==Xo?Qo:l;var u=c==Qo,d=l==Qo,f=c==l;if(f&&Pn(e)){if(!Pn(t))return!1;o=!0,u=!1}if(f&&!u)return a||=new Ea,o||_r(e)?Co(e,t,n,r,i,a):Wo(e,t,c,n,r,i,a);if(!(n&Yo)){var p=u&&$o.call(e,`__wrapped__`),m=d&&$o.call(t,`__wrapped__`);if(p||m){var ee=p?e.value():e,te=m?t.value():t;return a||=new Ea,i(ee,te,n,r,a)}}return f?(a||=new Ea,Jo(e,t,n,r,i,a)):!1}var ts=es;function ns(e,t,n,r,i){return e===t?!0:e==null||t==null||!fe(e)&&!fe(t)?e!==e&&t!==t:ts(e,t,n,r,ns,i)}var rs=ns,is=1,as=2;function os(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new Ea;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?rs(u,l,is|as,r,d):f))return!1}}return!0}var ss=os;function cs(e){return e===e&&!Me(e)}var ls=cs;function us(e){for(var t=kr(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,ls(i)]}return t}var ds=us;function fs(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}var ps=fs;function ms(e){var t=ds(e);return t.length==1&&t[0][2]?ps(t[0][0],t[0][1]):function(n){return n===e||ss(n,e,t)}}var hs=ms;function gs(e,t){return e!=null&&t in Object(e)}var _s=gs;function vs(e,t,n){t=Zi(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=ea(t[r]);if(!(a=e!=null&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=e==null?0:e.length,!!i&&fn(i)&&$t(o,i)&&(ye(e)||Dn(e)))}var ys=vs;function bs(e,t){return e!=null&&ys(e,t,_s)}var xs=bs,Ss=1,Cs=2;function ws(e,t){return Br(e)&&ls(t)?ps(ea(e),t):function(n){var r=ia(n,e);return r===void 0&&r===t?xs(n,e):rs(t,r,Ss|Cs)}}var Ts=ws;function Es(e){return function(t){return t?.[e]}}var Ds=Es;function Os(e){return function(t){return na(t,e)}}var ks=Os;function As(e){return Br(e)?Ds(ea(e)):ks(e)}var js=As;function Ms(e){return typeof e==`function`?e:e==null?qe:typeof e==`object`?ye(e)?Ts(e[0],e[1]):hs(e):js(e)}var Ns=Ms;function Ps(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}var Fs=Ps;function Is(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}var Ls=Is,Rs=Ls(),zs=Rs;function Bs(e,t){return e&&zs(e,t,kr)}var Vs=Bs;function Hs(e,t){return function(n,r){if(n==null)return n;if(!mn(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var Us=Hs,Ws=Us(Vs),Gs=Ws;function Ks(e,t,n,r){return Gs(e,function(e,i,a){t(r,e,n(e),a)}),r}var qs=Ks;function Js(e,t){return function(n,r){var i=ye(n)?Fs:qs,a=t?t():{};return i(n,e,Ns(r,2),a)}}var Ys=Js;function Xs(e){return fe(e)&&mn(e)}var Zs=Xs;function Qs(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}var $s=Qs,ec=200;function tc(e,t,n,r){var i=-1,a=Yt,o=!0,s=e.length,c=[],l=t.length;if(!s)return c;n&&(t=_e(t,lr(n))),r?(a=$s,o=!1):t.length>=ec&&(a=yo,o=!1,t=new ho(t));outer:for(;++i<s;){var u=e[i],d=n==null?u:n(u);if(u=r||u!==0?u:0,o&&d===d){for(var f=l;f--;)if(t[f]===d)continue outer;c.push(u)}else a(t,d,r)||c.push(u)}return c}var nc=tc,rc=ln(function(e,t){return Zs(e)?nc(e,da(t,1,Zs,!0)):[]}),ic=rc;function ac(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var h=ac;function oc(e){return typeof e==`function`?e:qe}var sc=oc;function cc(e,t){var n=[];return Gs(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}var lc=cc;function uc(e,t){return(ye(e)?Oa:lc)(e,Ns(t,3))}var dc=uc,fc=Math.max,pc=Math.min;function mc(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=r-1;return n!==void 0&&(i=Ge(n),i=n<0?fc(r+i,0):pc(i,r-1)),Vt(e,Ns(t,3),i,!0)}var hc=mc;function gc(e){return e&&e.length?e[0]:void 0}var _c=gc;function vc(e,t){var n=-1,r=mn(e)?Array(e.length):[];return Gs(e,function(e,i,a){r[++n]=t(e,i,a)}),r}var yc=vc;function bc(e,t){return(ye(e)?_e:yc)(e,Ns(t,3))}var xc=bc;function Sc(e,t){return da(xc(e,t),1)}var Cc=Sc;function wc(e,t){return e==null?e:zs(e,sc(t),Ir)}var Tc=wc,Ec=Object.prototype.hasOwnProperty,Dc=Ys(function(e,t,n){Ec.call(e,n)?e[n].push(t):tn(e,n,[t])}),Oc=Dc,kc=`[object Map]`,Ac=`[object Set]`,jc=Object.prototype.hasOwnProperty;function Mc(e){if(e==null)return!0;if(mn(e)&&(ye(e)||typeof e==`string`||typeof e.splice==`function`||Pn(e)||_r(e)||Dn(e)))return!e.length;var t=ro(e);if(t==kc||t==Ac)return!e.size;if(_n(e))return!Dr(e).length;for(var n in e)if(jc.call(e,n))return!1;return!0}var Nc=Mc,Pc=Ys(function(e,t,n){tn(e,n,t)}),Fc=Pc,Ic=Ys(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),g=Ic,Lc=Wa&&1/Do(new Wa([,-0]))[1]==1/0?function(e){return new Wa(e)}:Et,Rc=Lc,zc=200;function Bc(e,t,n){var r=-1,i=Yt,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=$s;else if(a>=zc){var l=t?null:Rc(e);if(l)return Do(l);o=!1,i=yo,c=new ho}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}var Vc=Bc;function Hc(e){return e&&e.length?Vc(e):[]}var Uc=Hc;function Wc(e,t){return e&&e.length?Vc(e,Ns(t,2)):[]}var Gc=Wc,Kc=Math.max;function qc(e){if(!(e&&e.length))return[];var t=0;return e=Oa(e,function(e){if(Zs(e))return t=Kc(e.length,t),!0}),yn(t,function(t){return _e(e,Ds(t))})}var Jc=qc,Yc=ln(Jc),Xc=Yc;let _=function(e){return e.SPACE=`<space>`,e.TAB=`<tab>`,e.NEWLINE=`<newline>`,e.COMMA=`<comma>`,e.LPAREN=`<lparen>`,e.RPAREN=`<rparen>`,e.LBRACE=`<lbrace>`,e.RBRACE=`<rbrace>`,e.LBRACKET=`<lbracket>`,e.RBRACKET=`<rbracket>`,e.LANGLE=`<langle>`,e.RANGLE=`<rangle>`,e.OP=`<op>`,e.EOF=`<eof>`,e.NUMERIC_LITERAL=`<number>`,e.STRING_LITERAL=`<string>`,e.COLOR_LITERAL=`<color>`,e.FUNCTION_EXPRESSION=`<function-expression>`,e.QUOTED_STRING=`<variable>`,e.IDENTIFIER=`<identifier>`,e.SEMICOLON=`<semicolon>`,e.COLON=`<colon>`,e.SINGLE_LINE_COMMENT=`<single-line-comment>`,e.MULTILINE_COMMENT=`<multiline-comment>`,e.WILDCARD=`<wildcard>`,e}({});function Zc(e){switch(e.kind){case _.NEWLINE:case _.SPACE:case _.TAB:case _.SINGLE_LINE_COMMENT:case _.MULTILINE_COMMENT:return!0;default:return!1}}function Qc(e){if(!e)return!1;switch(e){case`+`:case`-`:case`/`:case`%`:case`<`:case`>`:case`=`:case`!`:case`.`:case`&`:case`|`:case`~`:return!0;default:return!1}}function $c(e){return e!==void 0&&e.kind===_.OP}var el=class e{constructor(e,t,n,r,i,a){this.kind=e,this.filepath=t,this.startPos=n,this.endPos=r,this.value=i,this.leadingTrivia=[],this.trailingTrivia=[],this.leadingInvalid=[],this.trailingInvalid=[],this.isInvalid=a,this.start=n.offset,this.end=r.offset}static create(t,n,r,i,a,o){return new e(t,n,r,i,a,o)}};function tl(e){return e.trailingTrivia.find(({kind:e})=>e===_.NEWLINE)!==void 0}function nl(e,t){return t.leadingTrivia.find(({kind:e})=>e===_.NEWLINE)!==void 0||tl(e)}function rl(e){return e.trailingTrivia.find(({kind:e})=>[_.SPACE,_.TAB].includes(e))!==void 0}function il(e){return e.trailingTrivia.length===0?e.end:il(h(e.trailingTrivia))}function al(e){return e.leadingTrivia.length===0?e.start:al(e.leadingTrivia[0])}function ol(e){return[_.SINGLE_LINE_COMMENT,_.MULTILINE_COMMENT].includes(e.kind)}function sl(e){return e?.kind===_.IDENTIFIER&&e.value.toLowerCase()===`as`}function cl(e){return e?.kind===_.IDENTIFIER&&e.value.toLowerCase()===`use`}function ll(e){return e?.kind===_.IDENTIFIER&&e.value.toLowerCase()===`from`}function ul(e){return e?.kind===_.IDENTIFIER&&e.value.toLowerCase()===`reuse`}function dl(e){return!!e?.isInvalid}var fl=class{constructor(e){this.generator=e}create(e,t,n){return new e(t,this.generator.nextId(),n)}},pl=/^[A-Za-z]:\//;function ml(e=``){return e&&e.replace(/\\/g,`/`).replace(pl,e=>e.toUpperCase())}var hl=/^[/\\]{2}/,gl=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,_l=/^[A-Za-z]:$/,vl=/^\/([A-Za-z]:)?$/,yl=/.(\.[^./]+|\.)$/,bl=function(e){if(e.length===0)return`.`;e=ml(e);let t=e.match(hl),n=Tl(e),r=e[e.length-1]===`/`;return e=wl(e,!n),e.length===0?n?`/`:r?`./`:`.`:(r&&(e+=`/`),_l.test(e)&&(e+=`/`),t?n?`//${e}`:`//./${e}`:n&&!Tl(e)?`/${e}`:e)},xl=function(...e){let t=``;for(let n of e)if(n)if(t.length>0){let e=t[t.length-1]===`/`,r=n[0]===`/`;e&&r?t+=n.slice(1):t+=e||r?n:`/${n}`}else t+=n;return bl(t)};function Sl(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}var Cl=function(...e){e=e.map(e=>ml(e));let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:Sl();!i||i.length===0||(t=`${i}/${t}`,n=Tl(i))}return t=wl(t,!n),n&&!Tl(t)?`/${t}`:t.length>0?t:`.`};function wl(e,t){let n=``,r=0,i=-1,a=0,o=null;for(let s=0;s<=e.length;++s){if(s<e.length)o=e[s];else if(o===`/`)break;else o=`/`;if(o===`/`){if(!(i===s-1||a===1))if(a===2){if(n.length<2||r!==2||n[n.length-1]!==`.`||n[n.length-2]!==`.`){if(n.length>2){let e=n.lastIndexOf(`/`);e===-1?(n=``,r=0):(n=n.slice(0,e),r=n.length-1-n.lastIndexOf(`/`)),i=s,a=0;continue}else if(n.length>0){n=``,r=0,i=s,a=0;continue}}t&&(n+=n.length>0?`/..`:`..`,r=2)}else n.length>0?n+=`/${e.slice(i+1,s)}`:n=e.slice(i+1,s),r=s-i-1;i=s,a=0}else o===`.`&&a!==-1?++a:a=-1}return n}var Tl=function(e){return gl.test(e)},El=function(e){if(e===`..`)return``;let t=yl.exec(ml(e));return t&&t[1]||``},Dl=function(e,t){let n=Cl(e).replace(vl,`$1`).split(`/`),r=Cl(t).replace(vl,`$1`).split(`/`);if(r[0][1]===`:`&&n[0][1]===`:`&&n[0]!==r[0])return r.join(`/`);let i=[...n];for(let e of i){if(r[0]!==e)break;n.shift(),r.shift()}return[...n.map(()=>`..`),...r].join(`/`)},Ol=function(e){let t=ml(e).replace(/\/$/,``).split(`/`).slice(0,-1);return t.length===1&&_l.test(t[0])&&(t[0]+=`/`),t.join(`/`)||(Tl(e)?`/`:`.`)},kl=function(e,t){let n=ml(e).split(`/`),r=``;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t){r=t;break}}return t&&r.endsWith(t)?r.slice(0,-t.length):r},Al=/^[a-zA-Z]:\//,jl=class e{constructor(e,t={}){let n=bl(e);if(!Tl(n))throw Error(`FilePath requires an absolute path, got: "${e}"`);this.path=n,this.protocol=t.protocol}intern(){return this.protocol,`filepath@${this.path}`}static from(t){return new e(t)}static resolve(t,n){return new e(Cl(t,n))}static fromUri(t){try{let n=new URL(t);return new e(bl(n.host?`/${n.host}${n.pathname}`:n.pathname),{protocol:n.protocol})}catch{return new e(bl(t))}}get absolute(){return this.path}get dirname(){return Ol(this.path)}get basename(){return kl(this.path)}get extname(){return El(this.path)}resolve(t){return new e(Cl(this.dirname,t))}join(...t){return new e(xl(this.path,...t))}relativeTo(e){let t=Dl(e,this.path);return!t.startsWith(`./`)&&!t.startsWith(`../`)&&![`.`,`..`].includes(t)?`./${t}`:t}toString(){return this.path}equals(e){return this.path===e.path}isParentOf(e){if(this.path===e.path)return!1;let t=this.path.endsWith(`/`)?this.path:`${this.path}/`;return e.path.startsWith(t)}toUri(e={}){let t=e.protocol||this.protocol;if(!t)return this.path;let n=Al.test(this.path)?`${t}:///`:`${t}://`;return new URL(n+this.path).href}static isRelative(e){return!Tl(bl(e))}};function Ml(e,t){if(!jl.isRelative(t))return;let n=jl.resolve(e.dirname,t);return n.absolute.endsWith(`.dbml`)?n:jl.from(n.absolute+`.dbml`)}const Nl=[`null`,`true`,`false`],Pl=`none`,Fl=`.dbml`,Il=[`-`,`+`],v=`public`,Ll=jl.from(`/main.dbml`);let y=function(e){return e[e.UNKNOWN_SYMBOL=1e3]=`UNKNOWN_SYMBOL`,e[e.UNEXPECTED_SYMBOL=1001]=`UNEXPECTED_SYMBOL`,e[e.UNEXPECTED_EOF=1002]=`UNEXPECTED_EOF`,e[e.UNEXPECTED_NEWLINE=1003]=`UNEXPECTED_NEWLINE`,e[e.UNKNOWN_TOKEN=1004]=`UNKNOWN_TOKEN`,e[e.UNEXPECTED_TOKEN=1005]=`UNEXPECTED_TOKEN`,e[e.UNEXPECTED_ELEMENT_DECLARATION=1006]=`UNEXPECTED_ELEMENT_DECLARATION`,e[e.MISSING_SPACES=1007]=`MISSING_SPACES`,e[e.UNKNOWN_PREFIX_OP=1008]=`UNKNOWN_PREFIX_OP`,e[e.INVALID_OPERAND=1009]=`INVALID_OPERAND`,e[e.EMPTY_ATTRIBUTE_NAME=1010]=`EMPTY_ATTRIBUTE_NAME`,e[e.INVALID_ESCAPE_SEQUENCE=1011]=`INVALID_ESCAPE_SEQUENCE`,e[e.INVALID_NAME=3e3]=`INVALID_NAME`,e[e.UNEXPECTED_NAME=3001]=`UNEXPECTED_NAME`,e[e.NAME_NOT_FOUND=3002]=`NAME_NOT_FOUND`,e[e.DUPLICATE_NAME=3003]=`DUPLICATE_NAME`,e[e.INVALID_ALIAS=3004]=`INVALID_ALIAS`,e[e.UNEXPECTED_ALIAS=3005]=`UNEXPECTED_ALIAS`,e[e.UNEXPECTED_SETTINGS=3006]=`UNEXPECTED_SETTINGS`,e[e.INVALID_SETTINGS=3007]=`INVALID_SETTINGS`,e[e.UNEXPECTED_SIMPLE_BODY=3008]=`UNEXPECTED_SIMPLE_BODY`,e[e.UNEXPECTED_COMPLEX_BODY=3009]=`UNEXPECTED_COMPLEX_BODY`,e[e.INVALID_TABLE_CONTEXT=3010]=`INVALID_TABLE_CONTEXT`,e[e.UNKNOWN_TABLE_SETTING=3011]=`UNKNOWN_TABLE_SETTING`,e[e.DUPLICATE_TABLE_SETTING=3012]=`DUPLICATE_TABLE_SETTING`,e[e.INVALID_TABLEGROUP_CONTEXT=3013]=`INVALID_TABLEGROUP_CONTEXT`,e[e.INVALID_TABLEGROUP_ELEMENT_NAME=3014]=`INVALID_TABLEGROUP_ELEMENT_NAME`,e[e.DUPLICATE_TABLEGROUP_ELEMENT_NAME=3015]=`DUPLICATE_TABLEGROUP_ELEMENT_NAME`,e[e.DUPLICATE_TABLEGROUP_FIELD_NAME=3016]=`DUPLICATE_TABLEGROUP_FIELD_NAME`,e[e.INVALID_TABLEGROUP_FIELD=3017]=`INVALID_TABLEGROUP_FIELD`,e[e.EMPTY_TABLE=3018]=`EMPTY_TABLE`,e[e.INVALID_COLUMN=3019]=`INVALID_COLUMN`,e[e.INVALID_COLUMN_NAME=3020]=`INVALID_COLUMN_NAME`,e[e.UNKNOWN_COLUMN_SETTING=3021]=`UNKNOWN_COLUMN_SETTING`,e[e.INVALID_COLUMN_TYPE=3022]=`INVALID_COLUMN_TYPE`,e[e.DUPLICATE_COLUMN_NAME=3023]=`DUPLICATE_COLUMN_NAME`,e[e.DUPLICATE_COLUMN_SETTING=3024]=`DUPLICATE_COLUMN_SETTING`,e[e.INVALID_COLUMN_SETTING_VALUE=3025]=`INVALID_COLUMN_SETTING_VALUE`,e[e.INVALID_ENUM_CONTEXT=3026]=`INVALID_ENUM_CONTEXT`,e[e.INVALID_ENUM_ELEMENT_NAME=3027]=`INVALID_ENUM_ELEMENT_NAME`,e[e.INVALID_ENUM_ELEMENT=3028]=`INVALID_ENUM_ELEMENT`,e[e.DUPLICATE_ENUM_ELEMENT_NAME=3029]=`DUPLICATE_ENUM_ELEMENT_NAME`,e[e.UNKNOWN_ENUM_ELEMENT_SETTING=3030]=`UNKNOWN_ENUM_ELEMENT_SETTING`,e[e.DUPLICATE_ENUM_ELEMENT_SETTING=3031]=`DUPLICATE_ENUM_ELEMENT_SETTING`,e[e.INVALID_ENUM_ELEMENT_SETTING=3032]=`INVALID_ENUM_ELEMENT_SETTING`,e[e.EMPTY_ENUM=3033]=`EMPTY_ENUM`,e[e.INVALID_REF_CONTEXT=3034]=`INVALID_REF_CONTEXT`,e[e.UNKNOWN_REF_SETTING=3035]=`UNKNOWN_REF_SETTING`,e[e.DUPLICATE_REF_SETTING=3036]=`DUPLICATE_REF_SETTING`,e[e.INVALID_REF_SETTING_VALUE=3037]=`INVALID_REF_SETTING_VALUE`,e[e.INVALID_REF_RELATIONSHIP=3038]=`INVALID_REF_RELATIONSHIP`,e[e.INVALID_REF_FIELD=3039]=`INVALID_REF_FIELD`,e[e.EMPTY_REF=3040]=`EMPTY_REF`,e[e.REF_REDEFINED=3041]=`REF_REDEFINED`,e[e.INVALID_NOTE_CONTEXT=3042]=`INVALID_NOTE_CONTEXT`,e[e.INVALID_NOTE=3043]=`INVALID_NOTE`,e[e.NOTE_REDEFINED=3044]=`NOTE_REDEFINED`,e[e.NOTE_CONTENT_REDEFINED=3045]=`NOTE_CONTENT_REDEFINED`,e[e.EMPTY_NOTE=3046]=`EMPTY_NOTE`,e[e.UNKNOWN_NOTE_SETTING=3047]=`UNKNOWN_NOTE_SETTING`,e[e.DUPLICATE_NOTE_SETTING=3048]=`DUPLICATE_NOTE_SETTING`,e[e.INVALID_NOTE_SETTING_VALUE=3049]=`INVALID_NOTE_SETTING_VALUE`,e[e.INVALID_INDEXES_CONTEXT=3050]=`INVALID_INDEXES_CONTEXT`,e[e.INVALID_INDEXES_FIELD=3051]=`INVALID_INDEXES_FIELD`,e[e.INVALID_INDEX=3052]=`INVALID_INDEX`,e[e.UNKNOWN_INDEX_SETTING=3053]=`UNKNOWN_INDEX_SETTING`,e[e.DUPLICATE_INDEX_SETTING=3054]=`DUPLICATE_INDEX_SETTING`,e[e.UNEXPECTED_INDEX_SETTING_VALUE=3055]=`UNEXPECTED_INDEX_SETTING_VALUE`,e[e.INVALID_INDEX_SETTING_VALUE=3056]=`INVALID_INDEX_SETTING_VALUE`,e[e.INVALID_PROJECT_CONTEXT=3057]=`INVALID_PROJECT_CONTEXT`,e[e.PROJECT_REDEFINED=3058]=`PROJECT_REDEFINED`,e[e.INVALID_PROJECT_FIELD=3059]=`INVALID_PROJECT_FIELD`,e[e.INVALID_CUSTOM_CONTEXT=3060]=`INVALID_CUSTOM_CONTEXT`,e[e.INVALID_CUSTOM_ELEMENT_VALUE=3061]=`INVALID_CUSTOM_ELEMENT_VALUE`,e[e.INVALID_ELEMENT_IN_SIMPLE_BODY=3062]=`INVALID_ELEMENT_IN_SIMPLE_BODY`,e[e.INVALID_TABLE_PARTIAL_CONTEXT=3063]=`INVALID_TABLE_PARTIAL_CONTEXT`,e[e.INVALID_TABLE_PARTIAL_ELEMENT_NAME=3064]=`INVALID_TABLE_PARTIAL_ELEMENT_NAME`,e[e.INVALID_TABLE_PARTIAL_SETTING_VALUE=3065]=`INVALID_TABLE_PARTIAL_SETTING_VALUE`,e[e.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME=3066]=`DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME`,e[e.DUPLICATE_TABLE_PARTIAL_SETTING=3067]=`DUPLICATE_TABLE_PARTIAL_SETTING`,e[e.INVALID_TABLE_PARTIAL_INJECTION=3068]=`INVALID_TABLE_PARTIAL_INJECTION`,e[e.INVALID_TABLE_PARTIAL_INJECTION_OP=3069]=`INVALID_TABLE_PARTIAL_INJECTION_OP`,e[e.INVALID_TABLE_PARTIAL_INJECTION_NAME=3070]=`INVALID_TABLE_PARTIAL_INJECTION_NAME`,e[e.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME=3071]=`DUPLICATE_TABLE_PARTIAL_INJECTION_NAME`,e[e.UNKNOWN_TABLE_PARTIAL_SETTING=3072]=`UNKNOWN_TABLE_PARTIAL_SETTING`,e[e.INVALID_TABLE_SETTING_VALUE=3073]=`INVALID_TABLE_SETTING_VALUE`,e[e.INVALID_CHECKS_CONTEXT=3074]=`INVALID_CHECKS_CONTEXT`,e[e.INVALID_CHECKS_FIELD=3075]=`INVALID_CHECKS_FIELD`,e[e.INVALID_CHECK=3076]=`INVALID_CHECK`,e[e.UNKNOWN_CHECK_SETTING=3077]=`UNKNOWN_CHECK_SETTING`,e[e.DUPLICATE_CHECK_SETTING=3078]=`DUPLICATE_CHECK_SETTING`,e[e.INVALID_CHECK_SETTING_VALUE=3079]=`INVALID_CHECK_SETTING_VALUE`,e[e.INVALID_RECORDS_CONTEXT=3080]=`INVALID_RECORDS_CONTEXT`,e[e.INVALID_RECORDS_NAME=3081]=`INVALID_RECORDS_NAME`,e[e.INVALID_RECORDS_FIELD=3082]=`INVALID_RECORDS_FIELD`,e[e.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS=3083]=`DUPLICATE_COLUMN_REFERENCES_IN_RECORDS`,e[e.DUPLICATE_RECORDS_FOR_TABLE=3084]=`DUPLICATE_RECORDS_FOR_TABLE`,e[e.INVALID_USE_CONTEXT=3085]=`INVALID_USE_CONTEXT`,e[e.INVALID_USE_SPECIFIER_KIND=3086]=`INVALID_USE_SPECIFIER_KIND`,e[e.INVALID_USE_SPECIFIER_NAME=3087]=`INVALID_USE_SPECIFIER_NAME`,e[e.INVALID_DIAGRAMVIEW_CONTEXT=3088]=`INVALID_DIAGRAMVIEW_CONTEXT`,e[e.DUPLICATE_DIAGRAMVIEW_NAME=3089]=`DUPLICATE_DIAGRAMVIEW_NAME`,e[e.INVALID_DIAGRAMVIEW_FIELD=3090]=`INVALID_DIAGRAMVIEW_FIELD`,e[e.DUPLICATE_DIAGRAMVIEW_FIELD=3091]=`DUPLICATE_DIAGRAMVIEW_FIELD`,e[e.BINDING_ERROR=4e3]=`BINDING_ERROR`,e[e.NONEXISTENT_MODULE=4001]=`NONEXISTENT_MODULE`,e[e.UNSUPPORTED=5e3]=`UNSUPPORTED`,e[e.CIRCULAR_REF=5001]=`CIRCULAR_REF`,e[e.SAME_ENDPOINT=5002]=`SAME_ENDPOINT`,e[e.UNEQUAL_FIELDS_BINARY_REF=5003]=`UNEQUAL_FIELDS_BINARY_REF`,e[e.CONFLICTING_SETTING=5004]=`CONFLICTING_SETTING`,e[e.TABLE_REAPPEAR_IN_TABLEGROUP=5005]=`TABLE_REAPPEAR_IN_TABLEGROUP`,e}({});var b=class e extends Error{constructor(t,n,r){super(n),this.code=t,this.diagnostic=n,this.nodeOrToken=r,this.start=r.start,this.end=r.end,this.name=this.constructor.name,Object.setPrototypeOf(this,e.prototype)}toWarning(){return new Rl(this.code,this.message,this.nodeOrToken)}get filepath(){return this.nodeOrToken.filepath}},Rl=class extends Error{constructor(e,t,n){super(t),this.code=e,this.diagnostic=t,this.nodeOrToken=n,this.start=n.start,this.end=n.end,this.name=this.constructor.name,Object.setPrototypeOf(this,b.prototype)}get filepath(){return this.nodeOrToken.filepath}};function zl(e){return!!e.match(/(\p{L}|_|\p{M})/gu)}function Bl(e){if(!e)return!1;let t=e[0];return t>=`0`&&t<=`9`}function Vl(e){let[t]=e;return Bl(t)||zl(t)&&t.toLowerCase()>=`a`&&t.toLowerCase()<=`f`}function Hl(e){return zl(e)||Bl(e)}function Ul(e){let t=D(e);return t!==void 0&&t.length>0}function Wl(e){return Gl(e)}function Gl(e){return e instanceof _d&&e.expression instanceof gd}function Kl(e){return!!e.bodyColon}function ql(e){return e instanceof L&&e.op?.value===`~`&&C(e.expression)}function Jl(e){return e===`-`||e===`<>`||e===`>`||e===`<`}function Yl(e){if(!(e instanceof _d)||!(e.expression instanceof md)||e.expression.literal?.kind!==_.COLOR_LITERAL)return!1;let t=e.expression.literal.value;if(t.length!==4&&t.length!==7||t[0]!==`#`)return!1;for(let e=1;e<t.length;e+=1)if(!Vl(t[e]))return!1;return!0}function Xl(e){if(S(e)||Zl(e)||nu(e)&&[`true`,`false`,`null`].includes(e.expression.variable.value.toLowerCase())||e instanceof L&&Il.includes(e.op?.value)&&Zl(e.expression)||e instanceof ud)return!0;if(!e||!ru(e))return!1;let t=xu(e);return t.length===2||t.length===3}function Zl(e){return e instanceof L?Il.includes(e.op.value)?Zl(e.expression):!1:e instanceof _d&&e.expression instanceof md&&e.expression.literal?.kind===_.NUMERIC_LITERAL}function Ql(e){if(!(e instanceof L)||!Jl(e.op?.value))return!1;let t=D(e.expression);return t!==void 0&&t.length>0}function $l(e){return e instanceof dd&&e.elementList.every(C)}function eu(e){if(!(e instanceof V||w(e)||e instanceof _d||e instanceof yd))return!1;for(;e instanceof V||e instanceof yd;)if(e instanceof V){if(e.callee===void 0||e.argumentList===void 0||!e.argumentList.elementList.every(e=>Zl(e)||S(e)||nu(e)))return!1;e=e.callee}else if(e instanceof yd){if(e.array===void 0||e.indexer===void 0||!e.indexer.elementList.every(e=>!e.colon&&!e.value&&Zl(e.name)))return!1;e=e.array}let t=D(e);return t!==void 0&&t.length>0}function x(e){let t={},r=[];return e?(e.elementList.forEach(e=>{if(!e.name)return;if(e.name instanceof _d){r.push(new b(y.INVALID_SETTINGS,`A setting name must be a stream of identifiers`,e.name));return}let n=_u(e.name)?.toLowerCase();if(!n)return;let i=t[n];i?i.push(e):t[n]=[e]}),new n(t,r)):new n(t)}function S(e){return e instanceof _d&&(e.expression instanceof gd&&e.expression.variable instanceof el&&e.expression.variable.kind===_.QUOTED_STRING||e.expression instanceof md&&e.expression.literal?.kind===_.STRING_LITERAL)}function C(e){return e instanceof _d&&e.expression instanceof gd&&e.expression.variable instanceof el}function tu(e){return e?e instanceof hd:!1}function nu(e){return e instanceof _d&&e.expression instanceof gd&&e.expression.variable?.kind===_.IDENTIFIER}function w(e){return e instanceof cd&&e.leftExpression instanceof M&&e.rightExpression instanceof M&&e.op?.value===`.`}function ru(e){return C(e)?!0:w(e)&&C(e.rightExpression)&&ru(e.leftExpression)}function T(e,t){return e instanceof F&&e.isKind(t)}function iu(e){return e instanceof id}function au(e,t){return e instanceof ad&&(t===void 0||e.isKind(t))}function ou(e){return e instanceof P}function E(e,...t){return e instanceof R&&e.parent instanceof F&&e.parent.isKind(...t)}function su(e,t){let n=e.parent;return n instanceof F&&n.isKind(t)&&!!n.body&&n.body.strictlyContains(e)}function cu(e,t){let n=e.parentOfKind(R);if(!n||t<0)return!1;if(t===0)return n.callee?n.callee.containsEq(e):!1;let r=n.args[t-1];return r?r.containsEq(e):!1}function lu(e){return!!e.parentOfKind(B)}function uu(e,t){let n=e.parentOfKind(I);return!n||(n.name instanceof _d?k(n.name):_u(n.name))?.toLowerCase()!==t?!1:!!n.value?.containsEq(e)}function du(e){return!(e instanceof cd)||!Jl(e.op?.value)?!1:Su(e.leftExpression)!==void 0&&Su(e.rightExpression)!==void 0}function fu(e){let t=Su(e.leftExpression),n=Su(e.rightExpression);if(t===void 0||n===void 0)return!1;let{tupleElements:r}=t,{tupleElements:i}=n;return r?.length===i?.length}function pu(e){return e instanceof _d&&e.expression instanceof gd||e instanceof ud}function mu(e){if(C(e))return e;if(w(e)){let t=e.rightExpression;if(t&&C(t))return t}}function hu(e){let t=e.parentNode;return!w(t)||t.rightExpression!==e?!1:!(w(t.parentNode)&&t.parentNode.leftExpression===t)}function gu(e){if(C(e))return e.expression.variable}function _u(e){if(e===void 0)return;let t=e.identifiers.map(e=>e.value).join(` `);if(t!==``)return t}function vu(e){if(!(e instanceof F))return;let t=D(e?.name);return t===void 0?void 0:t.join(`.`)}function yu(e){return e.elementList.length===0}function bu(e){return e?.body?e.body instanceof z?e.body.body:[e.body]:[]}function xu(e){if(!e)return;if(!w(e))return[e];let t=xu(e.leftExpression);if(t)return t.push(e.rightExpression),t}function D(e){if(e===void 0)return;let t=xu(e);if(!t)return;let n=[];for(let e of t){let t=k(e);if(typeof t!=`string`)return;n.push(t)}return n}function Su(e){if(e===void 0)return;let t=xu(e);if(!t||t.length===0)return;let n=[];if(!C(h(t))){let e=t.pop();if($l(e))n=e.elementList;else return}let r=t;if(r.every(C))return{variables:r,tupleElements:n}}function Cu(e){if(pu(e))return e instanceof ud?{functional:[e],nonFunctional:[]}:{functional:[],nonFunctional:[e]};if(e instanceof dd&&e.elementList.every(pu))return{functional:e.elementList.filter(e=>e instanceof ud),nonFunctional:e.elementList.filter(C)}}function O(e){if(S(e))return e.expression instanceof gd?e?.expression?.variable?.value:e.expression.literal.value}function wu(e){return e instanceof _d&&e.expression instanceof md&&e.expression.literal?.kind===_.NUMERIC_LITERAL?Number(e.expression.literal.value):null}function Tu(e){if(!(e instanceof V)||!e.callee)return;let t=xu(e.callee);if(!t||t.length===0||!t.every(C))return;let n=[];return $l(e.argumentList)&&(n=[...e.argumentList.elementList]),{variables:t,args:n}}function k(e){if(C(e))return e.expression.variable.value}function Eu(e){let t=e?.expression.variable?.value;return t===void 0?void 0:t}function Du(e){return e instanceof L?`${e.op?.value}${Du(e.expression)}`:e.expression.literal.value}function Ou(e){return e instanceof L?e.op?.value===`-`?-Ou(e.expression):Ou(e.expression):Number.parseFloat(e.expression.literal.value)}function A(e){return{start:{offset:e.startPos.offset,line:e.startPos.line+1,column:e.startPos.column+1},end:{offset:e.endPos.offset,line:e.endPos.line+1,column:e.endPos.column+1},filepath:e.filepath}}function ku(e){let t=e.split(`
2
2
  `),n=t.slice(t.findIndex(e=>e.trimStart()!==``)),r=n.filter(e=>e.trimStart());if(r.length===0)return n.join(`
3
3
  `);let i=Math.min(...r.map(e=>e.length-e.trimStart().length));return n.map(e=>e.slice(i)).join(`
4
- `)}function Ou(e){let t=O(e);return!t||t.length===0?{schemaName:[],name:``}:{name:t[t.length-1],schemaName:t.slice(0,-1)}}function ku(e){if(e instanceof gd&&e.expression instanceof pd&&e.expression.literal?.kind===y.COLOR_LITERAL)return e.expression.literal.value}function Au(e){if(e){if(C(e)){let t=k(e);if(t!==void 0)return{value:t,type:`string`}}if(Yl(e))return{type:`number`,value:Eu(e)};if(eu(e))return{value:e.expression.variable.value.toLowerCase(),type:`boolean`};if(e instanceof ld&&e.value)return{value:e.value.value,type:`expression`};if(tu(e)){let t=yu(e)?.at(-1),n=t?A(t):void 0;if(n!==void 0)return{value:n,type:`string`}}}}function ju(e,t){let r=``,i=null;if(t instanceof V){if(i=(t.argumentList?.elementList??[]).map(e=>Yl(e)?Tu(e):C(e)?k(e):A(e)).join(`,`),r=`(${i})`,!t.callee)return new n({schemaName:null,type_name:``,args:i});t=t.callee}for(;t instanceof V||t instanceof vd;)if(t instanceof V){if(r=`(${(t.argumentList?.elementList??[]).map(e=>Yl(e)?Tu(e):C(e)?k(e):A(e)).join(`,`)})${r}`,!t.callee)break;t=t.callee}else if(t instanceof vd){if(r=`${`[${(t.indexer?.elementList??[]).map(e=>e?.name?.expression?.literal?.value??``).join(`,`)}]`}${r}`,!t.array)break;t=t.array}let{name:a,schemaName:o}=Ou(t);return o.length>1?new n({schemaName:o[0]??null,type_name:`${a}${r}`,args:i},[new x(b.UNSUPPORTED,`Nested schema is not supported`,t)]):new n({schemaName:o.length===0?null:o[0],type_name:`${a}${r}`,args:i})}let M=function(e){return e.Schema=`Schema`,e.Table=`Table`,e.Column=`Column`,e.TableGroup=`TableGroup`,e.TableGroupField=`TableGroup field`,e.Enum=`Enum`,e.EnumField=`Enum field`,e.StickyNote=`Note`,e.TablePartial=`TablePartial`,e.PartialInjection=`PartialInjection`,e.DiagramView=`DiagramView`,e.DiagramViewTopLevelWildcard=`DiagramView top-level wildcard`,e.DiagramViewTable=`DiagramView table`,e.DiagramViewTableGroup=`DiagramView tablegroup`,e.DiagramViewNote=`DiagramView note`,e.DiagramViewSchema=`DiagramView schema`,e.Program=`Program`,e}({});const Mu={Table:M.Table,Enum:M.Enum,TableGroup:M.TableGroup,TablePartial:M.TablePartial,Note:M.StickyNote,Schema:M.Schema};var Nu=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},Pu=class{constructor({kind:e,declaration:t,name:n},r,i){this.id=r,this.kind=e,this.declaration=t,this.filepath=i,this.name=n}get originalFilepath(){return this.originalSymbol.filepath}intern(){return`symbol@${this.filepath.intern()}:${this.id}`}isKind(...e){return e.includes(this.kind)}canonicalName(e,t){return e.canonicalName(t,this).getValue()}interpretedName(e,t){if(!t)return{schema:null,name:this.name??``};let n=this.canonicalName(e,t);return n?{schema:n.schema===`public`?null:n.schema,name:n.name}:{schema:null,name:this.name??``}}settings(e){if(this.declaration)return e.nodeSettings(this.declaration).getFiltered(t)}get token(){if(this.declaration)return j(this.declaration)}references(e){return e.symbolReferences(this)}metadata(e){return e.symbolMetadata(this)}members(e){let n=e.symbolMembers(this);return n.hasValue(t)?[]:n.getValue()}},Fu=class e extends Pu{constructor({name:e,parent:t},n,r){super({kind:M.Schema},n,r),this.name=e??``,this.parent=t}get canBeImported(){return!0}get originalSymbol(){return this}get qualifiedName(){return this.parent?[...this.parent.qualifiedName,this.name]:[this.name]}isPublicSchema(){return this.qualifiedName.join(`.`)===Pl}inNestedSchema(t,n){let r=this.members(t);if(r.some(e=>e.originalSymbol===n.originalSymbol))return!0;for(let i of r)if(i instanceof e&&i.inNestedSchema(t,n))return!0;return!1}},Iu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.Enum,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Lu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.EnumField,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}note(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(!n?.note?.length)return;let r=n.note[0],i=r?.value;if(!i)return;let a=Du(k(i));if(a)return{value:a,token:j(r)}}},Ru=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.Table,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}schema(e){let t=this.canonicalName(e,this.filepath);return t?t.schema===`public`?null:t.schema:null}columns(e){return this.mergedColumns(e).filter(e=>!(e instanceof ed))}mergedColumns(e){return this.members(e).filter(e=>e.isKind(M.Column))}partialInjections(e){return this.members(e).filter(e=>e.isKind(M.PartialInjection))}note(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(!n?.note?.length)return;let r=n.note[0],i=r?.value;if(!i)return;let a=Du(k(i));if(a)return{value:a,token:j(r)}}headercolor(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.[i.HeaderColor]?.length?ku(n[i.HeaderColor].at(0)?.value):void 0}refs(e){return this.metadata(e).filter(e=>e.kind===bd.Ref)}checks(e){return this.metadata(e).filter(e=>e.kind===bd.TableChecks)}indexes(e){return this.metadata(e).filter(e=>e.kind===bd.Indexes)}records(e){return this.metadata(e).filter(e=>e.kind===bd.Records)}resolvedPartials(e){return this.partialInjections(e).flatMap(n=>{if(!(n.declaration instanceof R)||!Gl(n.declaration.callee))return[];let r=n.declaration.callee.expression;if(!r)return[];let i=e.nodeReferee(r).getFiltered(t);return i?[i]:[]})}mergedIndexes(e){let t=this.indexes(e),n=this.resolvedPartials(e).flatMap(t=>t.metadata(e).filter(e=>e.kind===bd.Indexes));return[...t,...n]}mergedChecks(e){let t=this.checks(e),n=this.resolvedPartials(e).flatMap(t=>t.metadata(e).filter(e=>e.kind===bd.TableChecks));return[...t,...n]}mergedHeadercolor(e){let n=this.headercolor(e);for(let r of this.resolvedPartials(e)){if(!r.declaration)continue;let a=e.nodeSettings(r.declaration).getFiltered(t);a?.[i.HeaderColor]?.length&&(n=ku(a[i.HeaderColor].at(0)?.value))}return n}mergedNote(e){let n=n=>{if(!n.declaration)return;let r=e.nodeSettings(n.declaration).getFiltered(t);if(!r?.note?.length)return;let i=r.note[0],a=i?.value;if(!a)return;let o=Du(k(a));if(o)return{value:o,token:j(i)}},r=n(this);for(let t of this.resolvedPartials(e)){let e=n(t);e&&(r=e)}return r}},zu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.Column,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}pk(e){if(!this.declaration)return!1;let n=e.nodeSettings(this.declaration).getFiltered(t);return!!(n?.[i.PK]?.length||n?.[i.PrimaryKey]?.length)}unique(e){return this.declaration?!!e.nodeSettings(this.declaration).getFiltered(t)?.[i.Unique]?.length:!1}nullable(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(n?.[i.NotNull]?.length)return!1;if(n?.[i.Null]?.length)return!0}increment(e){return this.declaration?!!e.nodeSettings(this.declaration).getFiltered(t)?.[i.Increment]?.length:!1}default(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t)?.[i.Default]?.at(0)?.value;if(n)return Au(n)}type(e){if(!(this.declaration instanceof R))return;let n=ju(e,this.declaration.args[0]).getValue();if(!n)return;let r=n.args?n.args.split(`,`).map(e=>{let t=Number(e);return Number.isNaN(t)?e:t}):void 0,i=[],a=/\[([^\]]*)\]/g,o,s=n.type_name;for(;(o=a.exec(s))!==null;){let e=o[1];if(e===``)i.push(void 0);else{let t=Number(e);i.push(Number.isNaN(t)?e:t)}}let c=s.replace(/\[[^\]]*\]/g,``),l=e.nodeReferee(this.declaration.args[0]).getFiltered(t);return{name:c,enumSymbol:l instanceof Iu?l:void 0,args:r?.length?r:void 0,schema:n.schemaName??void 0,array:i.length?i:void 0}}checks(e){return this.metadata(e).filter(e=>e.kind===bd.TableChecks)}note(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(!n?.note?.length)return;let r=n.note[0],i=r?.value;if(!i)return;let a=Du(k(i));if(a)return{value:a,token:j(r)}}},Bu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.TableGroup,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}fields(e){return this.members(e).filter(e=>e.isKind(M.TableGroupField))}color(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.color?.length?ku(n.color.at(0)?.value):void 0}note(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(!n?.note?.length)return;let r=n.note[0],i=r?.value;if(!i)return;let a=Du(k(i));if(a)return{value:a,token:j(r)}}},Vu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.TableGroupField,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Hu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.StickyNote,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Uu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.TablePartial,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Wu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.PartialInjection,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Gu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.DiagramView,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Ku=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.DiagramViewTopLevelWildcard,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},qu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.DiagramViewTable,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Ju=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.DiagramViewTableGroup,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Yu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.DiagramViewNote,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Xu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.DiagramViewSchema,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Zu=class extends Pu{constructor({declaration:e,name:t},n,r){super({kind:M.Program,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}inNestedSchema(e,t){let n=this.members(e);if(n.some(e=>e.originalSymbol===t.originalSymbol))return!0;for(let r of n)if(r instanceof Fu&&r.inNestedSchema(e,t))return!0;return!1}},Qu=class extends Pu{constructor({kind:e,declaration:t,aliasedSymbol:n,name:r},i,a){super({kind:e,declaration:t,name:r},i,a),this.aliasedSymbol=n}get canBeImported(){return this.aliasedSymbol.canBeImported}get originalSymbol(){return this.aliasedSymbol.originalSymbol}},$u=class extends Pu{constructor({kind:e,declaration:t,useSpecifierDeclaration:n,usedSymbol:r,name:i},a,o){super({kind:e,declaration:t,name:i},a,o),this.useSpecifierDeclaration=n,this.usedSymbol=r}get canBeImported(){let e=this.useSpecifierDeclaration?.parentOfKind(rd);return!e||e.isReuse}get originalSymbol(){return this.usedSymbol?this.usedSymbol.originalSymbol:this}},ed=class extends zu{constructor({declaration:e,name:t,injectionDeclaration:n},r,i){super({declaration:e,name:t},r,i),this.injectionDeclaration=n,this.name=t}},td=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},N=class{constructor(e,t,n,r){this.id=e,this.kind=t,this.filepath=n;let i=r.find(e=>e!==void 0&&!Number.isNaN(e.start));i?(this.startPos=i.startPos,this.fullStart=i instanceof Qc?rl(i):i.fullStart):(this.startPos={offset:NaN,column:NaN,line:NaN},this.fullStart=NaN);let a=[...r].reverse().find(e=>e!==void 0&&!Number.isNaN(e.end));a?(this.endPos=a.endPos,this.fullEnd=a instanceof Qc?nl(a):a.fullEnd):(this.endPos={offset:NaN,column:NaN,line:NaN},this.fullEnd=NaN),this.start=this.startPos.offset,this.end=this.endPos.offset}intern(){return`node@${this.filepath.intern()}:${this.id}`}get parent(){let e=this.parentNode;for(;e;){if(e instanceof F||e instanceof nd)return e;e=e.parentNode}}parentOfKind(e){let t=this;for(;t;){if(t instanceof e)return t;t=t.parentNode}}strictlyContains(e){if(typeof e==`number`)return this.start<e&&this.end>e;let{start:t,end:n}=e,r=this.start<t,i=r||this.start===t,a=this.end>n,o=a||this.end===n;return r&&o||i&&a}containsEq(e){if(typeof e==`number`)return this.start<=e&&this.end>=e;let{start:t,end:n}=e;return this.start<=t&&this.end>=n}};let P=function(e){return e.PROGRAM=`<program>`,e.ELEMENT_DECLARATION=`<element-declaration>`,e.USE_DECLARATION=`<use-declaration>`,e.USE_SPECIFIER=`<use-specifier>`,e.USE_SPECIFIER_LIST=`<use-specifier-list>`,e.ATTRIBUTE=`<attribute>`,e.IDENTIFIER_STREAM=`<identifier-stream>`,e.LITERAL=`<literal>`,e.VARIABLE=`<variable>`,e.PREFIX_EXPRESSION=`<prefix-expression>`,e.INFIX_EXPRESSION=`<infix-expression>`,e.POSTFIX_EXPRESSION=`<postfix-expression>`,e.FUNCTION_EXPRESSION=`<function-expression>`,e.FUNCTION_APPLICATION=`<function-application>`,e.BLOCK_EXPRESSION=`<block-expression>`,e.LIST_EXPRESSION=`<list-expression>`,e.TUPLE_EXPRESSION=`<tuple-expression>`,e.CALL_EXPRESSION=`<call-expression>`,e.PRIMARY_EXPRESSION=`<primary-expression>`,e.GROUP_EXPRESSION=`<group-expression>`,e.COMMA_EXPRESSION=`<comma-expression>`,e.EMPTY=`<dummy>`,e.ARRAY=`<array>`,e.WILDCARD=`<wildcard>`,e}({});var nd=class extends N{constructor({body:e=[],eof:t,source:n},r,i){super(r,P.PROGRAM,i,[...e,t]),this.source=n,this.body=e,this.eof=t}get declarations(){return this.body.filter(e=>e.kind===P.ELEMENT_DECLARATION)}get uses(){return this.body.filter(e=>e.kind===P.USE_DECLARATION)}},rd=class extends N{constructor({useKeyword:e,specifiers:t,fromKeyword:n,importPath:r},i,a){super(i,P.USE_DECLARATION,a,[e,t,n,r]),this.useKeyword=e,this.specifiers=t,this.fromKeyword=n,this.importPath=r}get isReuse(){return cl(this.useKeyword)}},id=class extends N{constructor({importKind:e,name:t,asKeyword:n,alias:r},i,a){super(i,P.USE_SPECIFIER,a,[e,t,n,r]),this.importKind=e,this.name=t,this.asKeyword=n,this.alias=r}isKind(...e){return this.importKind?.value!==void 0&&e.map(e=>e.toLowerCase()).includes(this.importKind.value.toLowerCase())}getSymbolKind(){let e=this.importKind?.value?.toLowerCase();if(e!==void 0)return Object.values(M).find(t=>t.toLowerCase()===e)}},ad=class extends N{constructor({openBrace:e,specifiers:t=[],closeBrace:n},r,i){super(r,P.USE_SPECIFIER_LIST,i,[e,...t,n]),this.openBrace=e,this.specifiers=t,this.closeBrace=n}},F=class e extends N{constructor({type:t,name:n,as:r,alias:i,attributeList:a,bodyColon:o,body:s},c,l){if(super(c,P.ELEMENT_DECLARATION,l,[t,n,r,i,a,o,s]),s&&o&&!(s instanceof R||s instanceof e))throw Error(`If an element has a simple body, it must be a function application node`);this.type=t,this.name=n,this.as=r,this.alias=i,this.attributeList=a,this.bodyColon=o,this.body=s}isKind(...e){return e.some(e=>this.type?.value.toLowerCase()===e)}getElementKind(){return Object.values(r).find(e=>this.isKind(e))}},od=class extends N{constructor({identifiers:e=[]},t,n){super(t,P.IDENTIFIER_STREAM,n,e||[]),this.identifiers=e}},I=class extends N{constructor({name:e,colon:t,value:n},r,i){super(r,P.ATTRIBUTE,i,[e,t,n]),this.name=e,this.value=n,this.colon=t}},L=class extends N{constructor({op:e,expression:t},n,r){super(n,P.PREFIX_EXPRESSION,r,[e,t]),this.op=e,this.expression=t}},sd=class extends N{constructor({op:e,leftExpression:t,rightExpression:n},r,i){super(r,P.INFIX_EXPRESSION,i,[t,e,n]),this.op=e,this.leftExpression=t,this.rightExpression=n}},cd=class extends N{constructor({op:e,expression:t},n,r){super(n,P.POSTFIX_EXPRESSION,r,[t,e]),this.op=e,this.expression=t}},ld=class extends N{constructor({value:e},t,n){super(t,P.FUNCTION_EXPRESSION,n,[e]),this.value=e}},R=class extends N{constructor({callee:e,args:t=[]},n,r){super(n,P.FUNCTION_APPLICATION,r,[e,...t]),this.callee=e,this.args=t}},z=class extends N{constructor({blockOpenBrace:e,body:t=[],blockCloseBrace:n},r,i){super(r,P.BLOCK_EXPRESSION,i,[e,...t,n]),this.blockOpenBrace=e,this.body=t,this.blockCloseBrace=n}},B=class extends N{constructor({listOpenBracket:e,elementList:t=[],commaList:n=[],listCloseBracket:r},i,a){super(i,P.LIST_EXPRESSION,a,[e,...yd(t,n),r]),this.listOpenBracket=e,this.elementList=t,this.commaList=n,this.listCloseBracket=r}},ud=class extends N{constructor({tupleOpenParen:e,elementList:t=[],commaList:n=[],tupleCloseParen:r},i,a){super(i,P.TUPLE_EXPRESSION,a,[e,...yd(t,n),r]),this.tupleOpenParen=e,this.elementList=t,this.commaList=n,this.tupleCloseParen=r}},dd=class extends N{constructor({elementList:e=[],commaList:t=[]},n,r){super(n,P.COMMA_EXPRESSION,r,[...yd(e,t)]),this.elementList=e,this.commaList=t}},fd=class extends ud{constructor({groupOpenParen:e,expression:t,groupCloseParen:n},r,i){super({tupleOpenParen:e,elementList:t&&[t],commaList:[],tupleCloseParen:n},r,i),this.kind=P.GROUP_EXPRESSION}},V=class extends N{constructor({callee:e,argumentList:t},n,r){super(n,P.CALL_EXPRESSION,r,[e,t]),this.callee=e,this.argumentList=t}},pd=class extends N{constructor({literal:e},t,n){super(t,P.LITERAL,n,[e]),this.literal=e}},md=class extends N{constructor({token:e},t,n){super(t,P.WILDCARD,n,[e]),this.token=e}},hd=class extends N{constructor({variable:e},t,n){super(t,P.VARIABLE,n,[e]),this.variable=e}},gd=class extends N{constructor({expression:e},t,n){super(t,P.PRIMARY_EXPRESSION,n,[e]),this.expression=e}},_d=class extends N{constructor({prevToken:e},t,n){let r=Qc.create(y.SPACE,n,e.endPos,e.endPos,` `,!1);super(t,P.EMPTY,n,[r])}},vd=class extends N{constructor({expression:e,indexer:t},n,r){super(n,P.ARRAY,r,[e,t]),this.array=e,this.indexer=t}};function yd(e,t){if(!e||e.length===0)return t||[];if(!t||t.length===0)return e||[];let[n]=e,[r]=t;return(n.start<r.start?da(Jc(e,t)):da(Jc(t,e))).filter(e=>e!==null)}let bd=function(e){return e.Ref=`ref`,e.PartialRef=`partial ref`,e.TableChecks=`table checks`,e.Indexes=`indexes`,e.Records=`records`,e.Project=`project`,e}({});var xd=class e{static#e=this.id=0;constructor(t){this.declaration=t,this.id=++e.id}intern(){return`metadata@${this.declaration.filepath.intern()}:${this.id}`}},Sd=class extends xd{constructor(e){super(e),this.kind=bd.Ref}container(e){let n=this.declaration.parentOfKind(F);if(n?.isKind(r.Table))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(this.declaration instanceof F){let t=vu(this.declaration)[0];if(!(t instanceof R))return[];let n=t.callee;return n instanceof sd?Od(e,n.leftExpression):[]}if(this.declaration instanceof I){let n=this.declaration.parentOfKind(R);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}return[]}rightColumns(e){if(this.declaration instanceof F){let t=vu(this.declaration)[0];if(!(t instanceof R))return[];let n=t.callee;return n instanceof sd?Od(e,n.rightExpression):[]}if(this.declaration instanceof I){let t=this.declaration.value;return t instanceof L?Od(e,t.expression):[]}return[]}leftTable(e){if(this.declaration instanceof F){let t=vu(this.declaration)[0];if(!(t instanceof R))return;let n=t.callee;return n instanceof sd?kd(e,n.leftExpression):void 0}if(this.declaration instanceof I)return this.container(e)}rightTable(e){if(this.declaration instanceof F){let t=vu(this.declaration)[0];if(!(t instanceof R))return;let n=t.callee;return n instanceof sd?kd(e,n.rightExpression):void 0}if(this.declaration instanceof I){let t=this.declaration.value;return t instanceof L?kd(e,t.expression)??this.container(e):void 0}}op(e){if(this.declaration instanceof F){let e=vu(this.declaration)[0];if(!(e instanceof R))return;let t=e.callee;return t instanceof sd?t.op?.value:void 0}if(this.declaration instanceof I){let e=this.declaration.value;return e instanceof L?e.op?.value:void 0}}active(e){if(!(this.declaration instanceof F))return!0;let n=vu(this.declaration)[0];return n?!e.nodeSettings(n).getFiltered(t)?.[i.Inactive]?.length:!0}leftToken(){if(this.declaration instanceof F){let e=vu(this.declaration)[0];if(e instanceof R){let t=e.callee;if(t instanceof sd&&t.leftExpression)return t.leftExpression}}if(this.declaration instanceof I){let e=this.declaration.parentOfKind(R);if(e)return e}return this.declaration}rightToken(){if(this.declaration instanceof F){let e=vu(this.declaration)[0];if(e instanceof R){let t=e.callee;if(t instanceof sd&&t.rightExpression)return t.rightExpression}}return this.declaration instanceof I,this.declaration}owners(e){let n=this.leftTable(e),r=this.rightTable(e);if(!n||!r)return[];let i=this.declaration.filepath;return e.reachableFiles().flatMap(n=>e.nodeSymbol(e.parseFile(n).getValue().ast).getFiltered(t)||[]).filter(t=>e.reachableFiles(t.filepath).some(e=>e.equals(i))&&t.inNestedSchema(e,n)&&t.inNestedSchema(e,r))}},Cd=class extends xd{constructor(e){super(e),this.kind=bd.PartialRef}container(e){let n=this.declaration.parentOfKind(F);if(n?.isKind(r.TablePartial))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(!(this.declaration instanceof I))return[];let n=this.declaration.parentOfKind(R);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}rightColumns(e){if(!(this.declaration instanceof I))return[];let t=this.declaration.value;return t instanceof L?Od(e,t.expression):[]}leftTablePartial(e){if(this.declaration instanceof I)return this.container(e)}rightTable(e){if(!(this.declaration instanceof I))return;let t=this.declaration.value;if(t instanceof L)return kd(e,t.expression)??this.container(e)}op(e){if(!(this.declaration instanceof I))return;let t=this.declaration.value;if(t instanceof L)return t.op?.value}leftToken(){if(this.declaration instanceof I){let e=this.declaration.parentOfKind(R);if(e)return e}return this.declaration}rightToken(){return this.declaration instanceof I,this.declaration}owners(e){let n=this.leftTablePartial(e),r=this.rightTable(e);return!n||!r?[]:e.reachableFiles().flatMap(n=>e.nodeSymbol(e.parseFile(n).getValue().ast).getFiltered(t)||[]).filter(t=>t.inNestedSchema(e,n)&&t.inNestedSchema(e,r))}},wd=class extends xd{constructor(e){super(e),this.kind=bd.TableChecks,this.ownerTable=e.parentNode?.parentOfKind(F)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},Td=class extends xd{constructor(e){super(e),this.kind=bd.Indexes,this.ownerTable=e.parentNode?.parentOfKind(F)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},Ed=class extends xd{constructor(e){super(e),this.kind=bd.Records}table(e){let n=this.declaration,i=n.parent;if(i instanceof F&&i.isKind(r.Table))return e.nodeSymbol(i).getFiltered(t);let a=n.name;if(!(a instanceof V))return;let o=Cu(a);if(!o)return;let s=o.variables.at(-1);if(s)return e.nodeReferee(s).getFiltered(t)?.originalSymbol}owners(e){let n=this.table(e);return n?e.reachableFiles().flatMap(n=>e.nodeSymbol(e.parseFile(n).getValue().ast).getFiltered(t)||[]).filter(t=>t.inNestedSchema(e,n)):[]}},Dd=class extends xd{constructor(e){super(e),this.kind=bd.Project}owners(e){let n=this.declaration.filepath,r=e.parseFile(n).getValue().ast,i=e.nodeSymbol(r).getFiltered(t);return i?[i]:[]}};function Od(e,n){if(!n)return[];let r=bu(n);return r?(r.tupleElements.length>0?r.tupleElements:r.variables.at(-1)?[r.variables.at(-1)]:[]).flatMap(n=>{let r=e.nodeReferee(n).getFiltered(t);return r?[r]:[]}):[]}function kd(e,n){if(!n)return;let r=bu(n);if(!r)return;let i=r.tupleElements.length>0?r.variables.at(-1):r.variables.at(-2);if(i)return e.nodeReferee(i).getFiltered(t)}var Ad=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return[]}},jd=class{constructor(e,t){this.compiler=e,this.declarationNode=t}interpret(){let e=this.declarationNode.body;return e instanceof z?new n(e.body.flatMap(e=>{if(!(e instanceof R))return[];let t=j(e),n=e.callee instanceof ld?e.callee.value?.value??``:``,r,a=e.args.find(e=>e instanceof B);return a&&(r=k(S(a).getValue()[i.Name]?.at(0)?.value)),{expression:n,name:r,token:t}})):new n([])}};const Md={nodeMetadata(t,i){if(E(i,r.Checks)){let t=i.parent;return!t||!E(t,r.Table)&&!E(t,r.TablePartial)?n.create(e):n.create(new wd(i))}return n.create(e)},bindNode(t,i){return E(i,r.Checks)?n.create(void 0,new Ad(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===bd.TableChecks?r.declaration instanceof F?new jd(t,r.declaration).interpret():n.create(void 0):n.create(e)}};function Nd(e,t,n){let r=t,i=e;if(i instanceof V&&i.argumentList&&(r=[i.argumentList,...r],i=i.callee),!i||!eu(i)||r.length===0)return;let a=[...r],o=mu(i),s=a.pop();if(!(s instanceof z))return;let c=_(a)instanceof B?a.pop():void 0;if(a.length===3){let e=mu(a[1]);return!e||!al(e)?void 0:n.create(F,{type:o,name:a[0],as:e,alias:a[2],attributeList:c,body:s})}if(a.length===1)return n.create(F,{type:o,name:a[0],attributeList:c,body:s});if(a.length===0)return n.create(F,{type:o,attributeList:c,body:s})}function H(e){e&&(e instanceof Qc?Pd(e):Fd(e))}function Pd(e){e.kind!==y.EOF&&(e.isInvalid=!0)}function Fd(e){if(e instanceof F)H(e.type),H(e.name),H(e.as),H(e.alias),H(e.bodyColon),H(e.attributeList),H(e.body);else if(e instanceof od)e.identifiers.forEach(H);else if(e instanceof I)H(e.name),H(e.colon),H(e.value);else if(e instanceof L)H(e.op),H(e.expression);else if(e instanceof sd)H(e.leftExpression),H(e.op),H(e.rightExpression);else if(e instanceof cd)H(e.op),H(e.expression);else if(e instanceof z)H(e.blockOpenBrace),e.body.forEach(H),H(e.blockCloseBrace);else if(e instanceof B)H(e.listOpenBracket),e.commaList.forEach(H),e.elementList.forEach(H),H(e.listCloseBracket);else if(e instanceof ud)H(e.tupleOpenParen),e.commaList.forEach(H),e.elementList.forEach(H),H(e.tupleCloseParen);else if(e instanceof dd)e.commaList.forEach(H),e.elementList.forEach(H);else if(e instanceof V)H(e.callee),H(e.argumentList);else if(e instanceof R)H(e.callee),e.args.forEach(H);else if(e instanceof gd)H(e.expression);else if(e instanceof ld)H(e.value);else if(e instanceof hd)H(e.variable);else if(e instanceof pd)H(e.literal);else if(e instanceof fd)throw Error(`This case is handled by the TupleExpressionNode case`);else if(e instanceof vd)H(e.array),H(e.indexer);else if(e instanceof nd)e.body.forEach(H),H(e.eof);else if(!(e instanceof _d))if(e instanceof rd)H(e.useKeyword),H(e.specifiers),H(e.fromKeyword),H(e.importPath);else if(e instanceof ad)H(e.openBrace),e.specifiers.forEach(H),H(e.closeBrace);else if(e instanceof id)H(e.importKind),H(e.name),H(e.asKeyword),H(e.alias);else if(e instanceof md)H(e.token);else throw Error(`Unreachable case in markInvalidNode`)}function Id(...e){return e.filter(e=>e!==void 0)}function Ld(e){if(e instanceof nd)return Id(...e.body,e.eof);if(e instanceof F)return Id(e.type,e.name,e.as,e.alias,e.attributeList,e.bodyColon,e.body);if(e instanceof I)return Id(e.name,e.colon,e.value);if(e instanceof od)return e.identifiers;if(e instanceof pd)return e.literal?[e.literal]:[];if(e instanceof hd)return Id(e.variable);if(e instanceof L)return Id(e.op,e.expression);if(e instanceof sd)return Id(e.leftExpression,e.op,e.rightExpression);if(e instanceof cd)return Id(e.expression,e.op);if(e instanceof ld)return Id(e.value);if(e instanceof R)return Id(e.callee,...e.args);if(e instanceof z)return Id(e.blockOpenBrace,...e.body,e.blockCloseBrace);if(e instanceof B)return Id(e.listOpenBracket,...Rd(e.elementList,e.commaList),e.listCloseBracket);if(e instanceof ud)return Id(e.tupleOpenParen,...Rd(e.elementList,e.commaList),e.tupleCloseParen);if(e instanceof dd)return Id(...Rd(e.elementList,e.commaList));if(e instanceof V)return Id(e.callee,e.argumentList);if(e instanceof gd)return Id(e.expression);if(e instanceof vd)return Id(e.array,e.indexer);if(e instanceof _d)return[];if(e instanceof rd)return Id(e.useKeyword,e.specifiers,e.fromKeyword,e.importPath);if(e instanceof ad)return Id(e.openBrace,...e.specifiers,e.closeBrace);if(e instanceof id)return Id(e.importKind,e.name,e.asKeyword,e.alias);if(e instanceof md)return Id(e.token);throw e instanceof fd?Error(`This case is already handled by TupleExpressionNode`):Error(`Unreachable - no other possible cases`)}function Rd(e,t){let n=[],r=Math.min(e.length,t.length);for(let i=0;i<r;i+=1)n.push(e[i],t[i]);return n.push(...e.slice(r),...t.slice(r)),n}function zd(e,t){return e.reachableFiles(t.filepath).every(t=>e.bindFile(t).getErrors().length===0)}function Bd(e){if(!e)return[];if(w(e))return[{variables:[e],tupleElements:[]}];if(e instanceof sd){let t=bu(e);return t?[t]:[...Bd(e.leftExpression),...Bd(e.rightExpression)]}if(e instanceof L||e instanceof cd)return Bd(e.expression);if(e instanceof ud){let t=bu(e);return t?[t]:e.elementList.flatMap(Bd)}return[]}function Vd(e,n){let r=n.parentNode;if(!r||!T(r)||r.rightExpression!==n)return;let i=r.leftExpression;for(;T(i);)i=i.rightExpression;return e.nodeReferee(i).getFiltered(t)??void 0}function Hd(e){switch(e){case`<`:return[`1`,`*`];case`<>`:return[`*`,`*`];case`>`:return[`*`,`1`];case`-`:return[`1`,`1`];default:return}}var Ud=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){let[,t]=v(e.body,e=>e instanceof R);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>!e.type||!(e.body instanceof z)?[]:e.isKind(r.DiagramViewTables)?this.bindTableReferences(e.body):e.isKind(r.DiagramViewNotes)?this.bindNoteReferences(e.body):e.isKind(r.DiagramViewTableGroups)?this.bindTableGroupReferences(e.body):e.isKind(r.DiagramViewSchemas)?this.bindSchemaReferences(e.body):[])}bindTableReferences(e){let[t]=v(e.body,e=>e instanceof R);return t.flatMap(e=>!e.callee||$l(e.callee)?[]:[e.callee,...e.args].flatMap(Bd).flatMap(e=>{let t=e.variables.pop();if(!t)return[];let n=e.variables.pop();return[...n?this.compiler.nodeReferee(n).getErrors():[],...this.compiler.nodeReferee(t).getErrors()]}))}bindNoteReferences(e){let[t]=v(e.body,e=>e instanceof R);return t.flatMap(e=>!e.callee||$l(e.callee)?[]:Bd(e.callee).flatMap(e=>{let t=e.variables.pop();return t?this.compiler.nodeReferee(t).getErrors():[]}))}bindTableGroupReferences(e){let[t]=v(e.body,e=>e instanceof R);return t.flatMap(e=>!e.callee||$l(e.callee)?[]:Bd(e.callee).flatMap(e=>{let t=e.variables.pop();return t?this.compiler.nodeReferee(t).getErrors():[]}))}bindSchemaReferences(e){let[t]=v(e.body,e=>e instanceof R);return t.flatMap(e=>!e.callee||$l(e.callee)?[]:Bd(e.callee).flatMap(e=>e.variables.flatMap(e=>this.compiler.nodeReferee(e).getErrors())))}},Wd=class{constructor(e,t,n,r){this.diagramViewWildcards=new Set,this.diagramViewExplicitlySet=new Set,this.compiler=e,this.declarationNode=t,this.symbol=n,this.filepath=r??t.filepath,this.diagramView={visibleEntities:{tables:null,stickyNotes:null,tableGroups:null,schemas:null}}}interpret(){let e=[];this.diagramView.token=this.symbol.token;let{name:t,schema:r}=this.symbol.interpretedName(this.compiler,this.filepath);return this.diagramView.name=t,this.diagramView.schemaName=r,this.declarationNode.body instanceof z&&e.push(...this.interpretBody(this.declarationNode.body)),this.expandDiagramViewWildcards(),new n(this.diagramView,e)}interpretBody(e){if(e.body.length===1){let t=e.body[0];if(t instanceof R&&$l(t.callee))return this.diagramView.visibleEntities={tables:[],stickyNotes:[],tableGroups:[],schemas:[]},this.diagramViewWildcards=new Set([`tables`,`stickyNotes`,`tableGroups`,`schemas`]),this.diagramViewExplicitlySet=new Set([`tables`,`stickyNotes`,`tableGroups`,`schemas`]),[]}let[t]=v(e.body,e=>e instanceof F),n=new Set;for(let e of t){let t=e.type?.value.toLowerCase();t&&n.add(t),e.body instanceof z&&this.interpretSubBlock(e.body,t)}let i=this.diagramView.visibleEntities;return(n.has(`tables`)&&i.tables!==null||n.has(`tablegroups`)&&i.tableGroups!==null||n.has(`schemas`)&&i.schemas!==null)&&(n.has(`tables`)||(i.tables=[]),n.has(`tablegroups`)||(i.tableGroups=[]),n.has(`schemas`)||(i.schemas=[])),n.has(r.DiagramViewTables)&&this.diagramViewExplicitlySet.add(`tables`),n.has(r.DiagramViewTableGroups)&&this.diagramViewExplicitlySet.add(`tableGroups`),n.has(r.DiagramViewSchemas)&&this.diagramViewExplicitlySet.add(`schemas`),n.has(r.DiagramViewNotes)&&this.diagramViewExplicitlySet.add(`stickyNotes`),[]}interpretSubBlock(e,n){if(!n)return;if(e.body.some(e=>e instanceof R&&$l(e.callee))){let e=this.diagramViewWildcards;switch(n){case r.DiagramViewTables:this.diagramView.visibleEntities.tables=[],e.add(`tables`);break;case r.DiagramViewNotes:this.diagramView.visibleEntities.stickyNotes=[],e.add(`stickyNotes`);break;case r.DiagramViewTableGroups:this.diagramView.visibleEntities.tableGroups=[],e.add(`tableGroups`);break;case r.DiagramViewSchemas:this.diagramView.visibleEntities.schemas=[],e.add(`schemas`);break}return}if(e.body.length===0)return;let i=[];for(let n of e.body){if(!(n instanceof R))continue;let e=n.callee&&fu(n.callee),r=e&&this.compiler.nodeReferee(e).getFiltered(t);if(r?.declaration instanceof F){let e=O(r.declaration.name)??[];if(e.length>0){let t=e[e.length-1],n=e.length>1?e.slice(0,-1).join(`.`):Pl;i.push({name:t,schemaName:n});continue}}let a=O(n.callee)??[];if(a.length===0)continue;let o=a[a.length-1],s=a.length>1?a[0]:Pl;i.push({name:o,schemaName:s})}switch(n){case r.DiagramViewTables:this.diagramView.visibleEntities.tables=i.length>0?i:null;break;case r.DiagramViewNotes:this.diagramView.visibleEntities.stickyNotes=i.length>0?i.map(e=>({name:e.name})):null;break;case r.DiagramViewTableGroups:this.diagramView.visibleEntities.tableGroups=i.length>0?i.map(e=>({name:e.name})):null;break;case r.DiagramViewSchemas:this.diagramView.visibleEntities.schemas=i.length>0?i.map(e=>({name:e.name})):null;break}}expandDiagramViewWildcards(){let e=this.diagramView.visibleEntities,t=this.diagramViewWildcards;if(!(!t||!e)){if(t.has(`tables`)||t.has(`schemas`)){e.tables=[],e.tableGroups=[],e.schemas=[];return}t.has(`tableGroups`)&&e.tableGroups&&e.tableGroups.length===0&&(e.tableGroups=this.getAllTableGroupNames())}}getAllTableGroupNames(){let e=this.compiler.parseFile(this.declarationNode.filepath).getValue().ast,n=this.compiler.nodeSymbol(e).getFiltered(t);if(!n)return[];let r=this.compiler.symbolMembers(n).getFiltered(t);return r?Uc(r.filter(e=>e.isKind(M.TableGroup)),e=>e.originalSymbol.intern()).flatMap(e=>e.name===void 0?[]:{name:e.name}):[]}};function Gd(e){return e==null?e:Array.isArray(e)?e.map(String).join(`\0`):typeof e==`object`&&`intern`in e?e.intern():e}let Kd=function(e){return e.Table=`table`,e}({});const qd={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`DiagramView '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t,n){return new x(b.DUPLICATE_DIAGRAMVIEW_FIELD,`Duplicate ${t} ${e}`,n)}},Jd={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return E(a,r.DiagramView)?new n(i.symbolFactory.create(Gu,{declaration:a,name:o},a.filepath)):D(a,r.DiagramView)&&a instanceof md?new n(i.symbolFactory.create(Ku,{declaration:a,name:o},a.filepath)):D(a,r.DiagramViewNotes)?new n(i.symbolFactory.create(Yu,{declaration:a,name:o},a.filepath)):D(a,r.DiagramViewTables)?new n(i.symbolFactory.create(qu,{declaration:a,name:o},a.filepath)):D(a,r.DiagramViewTableGroups)?new n(i.symbolFactory.create(Ju,{declaration:a,name:o},a.filepath)):D(a,r.DiagramViewSchemas)?new n(i.symbolFactory.create(Xu,{declaration:a,name:o},a.filepath)):n.create(e)},nodeReferee(i,a){if(a.parent&&su(a))return n.create(e);let o=Yd(a);if(!o)return n.create(e);let s=i.parseFile(a.filepath).getValue().ast,c=i.nodeSymbol(s).getFiltered(t);return c?o.isKind(r.DiagramViewTables)?Xd(i,c,a):o.isKind(r.DiagramViewNotes)?Zd(i,c,a,M.StickyNote):o.isKind(r.DiagramViewTableGroups)?Zd(i,c,a,M.TableGroup):o.isKind(r.DiagramViewSchemas)?Qd(i,c,a):n.create(e):n.create(void 0)},symbolMembers(i,a){if(!a.isKind(M.DiagramView))return n.create(e);if(!a.declaration)return n.create([]);let o=a.declaration;if(!E(o,r.DiagramView))return n.create([]);let s=[],c=[];for(let e of vu(o))if(e instanceof R){let n=i.nodeSymbol(e).getFiltered(t);n&&c.push(n)}else e instanceof F&&c.push(...vu(e).flatMap(e=>i.nodeSymbol(e).getFiltered(t)??[]));let l=new Map;for(let e of c){if(!e.isKind(M.DiagramViewSchema,M.DiagramViewTableGroup,M.DiagramViewTable,M.DiagramViewNote)||!e.declaration)continue;let n=(i.nodeFullname(e.declaration).getFiltered(t)||[]).map(_y).join(`.`),r=`${e.kind}:${n}`;if(n!==void 0){let t=e.declaration,i=l.get(r);i?(s.push(qd.getFieldDuplicateError(n,e.kind,i)),s.push(qd.getFieldDuplicateError(n,e.kind,t))):l.set(r,t)}}return n.create(c,s)},bindNode(i,a){if(!E(a,r.DiagramView))return n.create(e);let o=new Ud(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,r,i){return r instanceof Gu?r.declaration instanceof F?new Wd(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function Yd(e){let t=e.parentOfKind(R);if(!t)return;let n=t.parentNode;if(!(n instanceof z))return;let i=n.parentNode;if(!(i instanceof F)||!i.isKind(r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewTableGroups,r.DiagramViewSchemas))return;let a=i.parentNode;if(!(a instanceof z))return;let o=a.parentNode;if(!(!(o instanceof F)||!o.isKind(r.DiagramView)))return i}function Xd(e,r,i){let a=wu(i);if(a===void 0)return n.create(void 0);if(T(i.parentNode)){let t=Vd(e,i);if(t){if(t.isKind(M.Schema)){let r=pu(i),o=e.lookupMembers(t,r?M.Table:M.Schema,a);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,`Could not find ${r?`table`:`schema`} '${a}'`,i)])}return new n(void 0)}let o=e.lookupMembers(r,M.Schema,a);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,`Could not find schema '${a}'`,i)])}let o=e.symbolMembers(r).getFiltered(t)||[];for(let e of o){let t=e.name;if(e.isKind(M.Table)&&a===t)return n.create(e)}let s=e.lookupMembers(r,M.Table,a);return s?n.create(s):new n(void 0,[new x(b.BINDING_ERROR,`Could not find table '${a}'`,i)])}function Zd(e,t,r,i){let a=wu(r);if(a===void 0)return n.create(void 0);let o=e.lookupMembers(t,i,a);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,`Could not find ${i===M.StickyNote?`note`:`tablegroup`} '${a}'`,r)])}function Qd(e,t,r){let i=wu(r);if(i===void 0)return n.create(void 0);let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Could not find schema '${i}'`,r)])}var $d=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof R)return[];let t=e.body.filter(e=>e instanceof F);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},ef=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.symbol=t,this.filepath=n,this.enum={values:[]}}interpret(){this.enum.token=j(this.declarationNode);let e=[...this.interpretName(),...this.interpretBody(this.declarationNode.body)];return n.create(this.enum,e)}interpretName(){let{name:e,schema:t}=this.symbol.interpretedName(this.compiler,this.filepath);return this.enum.name=e,this.enum.schemaName=t,[]}interpretBody(e){return e.body.flatMap(e=>{let t=e,n={};n.token=j(t),n.name=A(t.callee);let r=S(t.args[0]).getValue().note?.at(0);return n.note=r&&{value:Du(k(r.value)),token:j(r)},this.enum.values.push(n),[]})}};const tf={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`Enum '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new x(b.DUPLICATE_COLUMN_NAME,`Duplicate enum field '${e}'`,t)}},nf={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return E(a,r.Enum)?new n(i.symbolFactory.create(Iu,{declaration:a,name:o},a.filepath)):D(a,r.Enum)?new n(i.symbolFactory.create(Lu,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(M.Enum))return n.create(e);let a=i.declaration;if(!(a instanceof F))return new n([]);let o=vu(a),s=[],c=[];for(let e of o){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(s.push(i),c.push(...n.getErrors()))}let l=new Map;for(let e of s){if(!e.isKind(M.EnumField)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration,r=l.get(t);r?(c.push(tf.getFieldDuplicateError(t,r)),c.push(tf.getFieldDuplicateError(t,n))):l.set(t,n)}}return new n(s,c)},bindNode(i,a){if(!E(a,r.Enum))return n.create(e);let o=new $d(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,r,i){return r instanceof Iu?new ef(t,r,i).interpret():n.create(e)}};var rf=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof F)||!this.declarationNode.parent.isKind(r.Table)&&!this.declarationNode.parent.isKind(r.TablePartial)||!(this.declarationNode.body instanceof z)?[]:this.bindBody(this.declarationNode.body)}get ownerContainerKind(){return this.declarationNode.parent.isKind(r.TablePartial)?`TablePartial`:`Table`}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=v(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let n=O(this.declarationNode.parent.name)?.join(`.`)??`<unnamed>`;return[e.callee,...e.args].flatMap(Bd).flatMap(e=>e.variables.length>1?[]:e.variables.length?e.variables[0]:e.tupleElements).flatMap(e=>{let r=wu(e);if(r===void 0)return[];let i=this.compiler.nodeReferee(e);return!i.getValue()||i.hasValue(t)?new x(b.BINDING_ERROR,`No column named '${r}' inside ${this.ownerContainerKind} '${n}'`,e):[]})})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},af=class{constructor(e,t){this.compiler=e,this.node=t}interpret(){let e=this.node.body;return e instanceof z?new n(e.body.flatMap(e=>{if(!(e instanceof R)||!e.callee)return[];let n=[],r=j(e),a=[e.callee,...e.args],o,s,c,l,u;_(a)instanceof B&&a.pop();let d=this.compiler.nodeSettings(e).getFiltered(t);if(d){o=!!d[i.PK]?.length||void 0,s=!!d[i.Unique]?.length||void 0,c=k(d[i.Name]?.at(0)?.value);let e=d[i.Note]?.at(0);if(e){let t=k(e.value);t!==void 0&&(l={value:t,token:j(e)})}u=A(d[i.Type]?.at(0)?.value)}let f=a.flatMap(e=>{if(!(e instanceof V))return e;let t=[],n=e;for(;n instanceof V&&(n.argumentList&&t.push(n.argumentList),n.callee);)n=n.callee;return t.push(n),t});for(let e of f){let t=xu(e);if(t){for(let e of t.functional)n.push({value:e.value?.value??``,type:`expression`,token:j(e)});for(let e of t.nonFunctional)n.push({value:wu(e)??``,type:`column`,token:j(e)})}}return[{columns:n,pk:o,unique:s,name:c,note:l,type:u,token:r}]})):new n([])}};const of={nodeMetadata(t,i){if(!E(i,r.Indexes))return n.create(e);let a=i.parent;return!a||!E(a,r.Table)&&!E(a,r.TablePartial)?n.create(e):n.create(new Td(i))},nodeReferee(i,a){if(!w(a)||su(a))return n.create(e);let o=a;for(;o&&!E(o,r.Indexes);)o=o.parent;if(!o)return n.create(e);let s=o.parent;if(!s||!E(s,r.Table)&&!E(s,r.TablePartial))return n.create(e);let c=i.nodeSymbol(s).getFiltered(t);if(!c)return new n(void 0);let l=w(a)?a.expression.variable?.value??``:``,u=i.lookupMembers(c,M.Column,l);if(u)return n.create(u);let d=E(s,r.TablePartial)?`TablePartial`:`Table`;return new n(void 0,[new x(b.BINDING_ERROR,`Column '${l}' does not exist in ${d} 'public.${c.name}'`,a)])},bindNode(t,i){return E(i,r.Indexes)?n.create(void 0,new rf(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===bd.Indexes?r.declaration instanceof F?new af(t,r.declaration).interpret():n.create(void 0):n.create(e)}};function sf(e,n){let r=yu(n);if(!r||r.length===0)return;let i=r[r.length-1];if(i instanceof ud){let n=[];for(let r of i.elementList){let i=e.nodeReferee(r).getFiltered(t);if(!i)return;n.push(i.originalSymbol)}return n}let a=r[r.length-1];if(!a||a instanceof ud)return;let o=e.nodeReferee(a).getFiltered(t);if(o)return[o.originalSymbol]}function cf(e,t,n,r){let i=e.map(e=>e.intern()).sort().join(`,`),a=t.map(e=>e.intern()).sort().join(`,`);if(i===a)return[new x(b.SAME_ENDPOINT,`Two endpoints are the same`,n)];let o=i<a?`${i}-${a}`:`${a}-${i}`,s=r.get(o);return s?[new x(b.CIRCULAR_REF,`References with same endpoints exist`,n),new x(b.CIRCULAR_REF,`References with same endpoints exist`,s)]:(r.set(o,n),[])}var lf=class{constructor(e,t){this.compiler=t,this.ast=e}resolve(){let e=[],i=this.compiler.reachableFiles(this.ast.filepath);for(let n of i){let{ast:i}=this.compiler.parseFile(n).getFiltered(t)||{ast:void 0};if(!i)continue;let a=i.body.filter(e=>e instanceof F&&e.isKind(r.Project));a.length>1&&a.forEach(t=>e.push(new x(b.PROJECT_REDEFINED,`Only one project can exist`,t)));for(let t of i.body)if(t instanceof F&&t.type){let n=t;e.push(...this.compiler.bindNode(n).getErrors())}else e.push(...this.compiler.bindNode(t).getErrors())}let a=this.compiler.nodeSymbol(this.ast).getFiltered(t);return a&&e.push(...uf(this.compiler,a)),e.push(...this.checkDuplicateRefs()),e.push(...this.checkTableGroups()),new n(void 0,e)}checkDuplicateRefs(){let e=[],n=new Map,i=this.compiler.reachableFiles(this.ast.filepath);for(let a of i){let i=this.compiler.parseFile(a).getFiltered(t);if(!i)continue;let{ast:o}=i;for(let t of o.body){if(!(t instanceof F)||!t.type)continue;let i=t;E(i,r.Ref)&&e.push(...this.checkStandaloneRefs(i,n)),E(i,r.Table)&&e.push(...this.checkInlineRefs(i,n)),E(i,r.TablePartial)&&e.push(...this.checkTablePartialSelfRefs(i))}}return e}checkStandaloneRefs(e,t){let n=[];for(let r of vu(e)){if(!(r instanceof R)||!r.callee||!lu(r.callee))continue;let i=r.callee;if(!i.leftExpression||!i.rightExpression)continue;let a=sf(this.compiler,i.leftExpression),o=sf(this.compiler,i.rightExpression);!a||!o||n.push(...cf(a,o,e,t))}return n}checkInlineRefs(e,n){let r=[];for(let a of vu(e)){if(!(a instanceof R)||!a.callee)continue;let e=this.compiler.nodeSymbol(a).getFiltered(t);if(!e)continue;let o=this.compiler.nodeSettings(a).getFiltered(t);if(!o)continue;let s=o[i.Ref];if(!(!s||s.length===0))for(let t of s){let i=t.value;if(!(i instanceof L)||!i.op||!Kl(i.op.value)||!i.expression)continue;let a=sf(this.compiler,i.expression);if(!a)continue;let o=[e.originalSymbol];r.push(...cf(o,a,t,n))}}return r}checkTablePartialSelfRefs(e){let n=[];for(let r of vu(e)){if(!(r instanceof R)||!r.callee)continue;let e=A(r.callee);if(!e)continue;let a=this.compiler.nodeSettings(r).getFiltered(t);if(!a)continue;let o=a[i.Ref];if(!(!o||o.length===0))for(let t of o){let r=t.value;r instanceof L&&(!r.op||!Kl(r.op.value)||r.expression&&w(r.expression)&&r.expression.expression.variable?.value===e&&n.push(new x(b.SAME_ENDPOINT,`Two endpoints are the same`,t)))}}return n}checkTableGroups(){let e=[],n=new Map,i=this.compiler.reachableFiles(this.ast.filepath);for(let a of i){let i=this.compiler.parseFile(a).getFiltered(t);if(!i)continue;let{ast:o}=i;for(let i of o.body){if(!(i instanceof F)||!i.type)continue;let a=i;if(!E(a,r.TableGroup))continue;let o=a.name?O(a.name):void 0,s=o?o.join(`.`):`<unknown>`,c=vu(a);for(let r of c){if(!(r instanceof R)||!r.callee)continue;let i=yu(r.callee);if(!i||i.length===0)continue;let a=i[i.length-1],o=this.compiler.nodeReferee(a).getFiltered(t)?.originalSymbol;if(!o)continue;let c=n.get(o.id);if(c){let t=O(r.callee),n=t?t.join(`.`):`<unknown>`;e.push(new x(b.TABLE_REAPPEAR_IN_TABLEGROUP,`Table "${n}" already appears in group "${c.groupName}"`,r))}else n.set(o.id,{groupName:s,node:r})}}}return e}};function uf(e,n,r=new Set){if(r.has(n.id))return[];r.add(n.id);let i=e.symbolMembers(n),a=[...i.getErrors()],o=i.getFiltered(t);if(!o)return a;for(let t of o)t instanceof Fu&&a.push(...uf(e,t,r));return a}function df(e,t,n){t.isKind(M.Table)?e.externals.tables.push(n):t.isKind(M.Enum)?e.externals.enums.push(n):t.isKind(M.TableGroup)?e.externals.tableGroups.push(n):t.isKind(M.TablePartial)?e.externals.tablePartials.push(n):t.isKind(M.StickyNote)&&e.externals.notes.push(n)}var ff={mysql:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`,`mediumint`]),postgres:new Set([`int`,`integer`,`smallint`,`bigint`,`serial`,`bigserial`,`smallserial`]),mssql:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`]),oracle:new Set([`int`,`integer`,`smallint`]),snowflake:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`])},pf={mysql:new Set([`decimal`,`numeric`,`float`,`double`,`real`]),postgres:new Set([`decimal`,`numeric`,`real`,`float`,`double precision`]),mssql:new Set([`decimal`,`numeric`,`real`,`float`]),oracle:new Set([`number`,`decimal`,`numeric`,`float`,`real`]),snowflake:new Set([`number`,`decimal`,`numeric`,`float`,`double`,`real`])},mf={mysql:new Set([`bool`,`boolean`,`bit`]),postgres:new Set([`bool`,`boolean`]),mssql:new Set([`bit`]),oracle:new Set([]),snowflake:new Set([`boolean`])},hf={mysql:new Set([`varchar`,`char`,`text`,`tinytext`,`mediumtext`,`longtext`,`string`]),postgres:new Set([`varchar`,`char`,`character`,`character varying`,`text`,`string`]),mssql:new Set([`varchar`,`char`,`nvarchar`,`nchar`,`text`,`ntext`,`string`]),oracle:new Set([`varchar`,`varchar2`,`char`,`nvarchar2`,`nchar`,`string`]),snowflake:new Set([`varchar`,`char`,`text`,`string`])},gf={mysql:new Set([`binary`,`varbinary`,`blob`,`tinyblob`,`mediumblob`,`longblob`]),postgres:new Set([`bytea`]),mssql:new Set([`binary`,`varbinary`]),oracle:new Set([`blob`,`raw`]),snowflake:new Set([`binary`,`varbinary`])},_f={mysql:new Set([`date`,`datetime`,`timestamp`,`time`]),postgres:new Set([`date`,`timestamp`,`timestamptz`,`timestamp with time zone`,`timestamp without time zone`,`time`,`timetz`,`time with time zone`,`time without time zone`]),mssql:new Set([`date`,`datetime`,`datetime2`,`smalldatetime`,`time`]),oracle:new Set([`date`,`timestamp`,`timestamp with time zone`,`timestamp with local time zone`]),snowflake:new Set([`date`,`datetime`,`timestamp`,`time`])},vf={mysql:new Set([]),postgres:new Set([`serial`,`smallserial`,`bigserial`]),mssql:new Set([]),oracle:new Set([]),snowflake:new Set([])};function yf(e){return e.toLowerCase().trim().replace(/\s+/g,` `)}function bf(e,t){let n=yf(e);return t?ff[t].has(n):Object.values(ff).some(e=>e.has(n))}function xf(e,t){let n=yf(e);return t?pf[t].has(n):Object.values(pf).some(e=>e.has(n))}function Sf(e,t){return bf(e,t)||xf(e,t)}function Cf(e,t){let n=yf(e);return t?mf[t].has(n):Object.values(mf).some(e=>e.has(n))}function wf(e,t){let n=yf(e);return t?hf[t].has(n):Object.values(hf).some(e=>e.has(n))}function Tf(e,t){let n=yf(e);return t?gf[t].has(n):Object.values(gf).some(e=>e.has(n))}function Ef(e,t){let n=yf(e);return t?_f[t].has(n):Object.values(_f).some(e=>e.has(n))}function Df(e,t){let n=yf(e);return t?vf[t].has(n):Object.values(vf).some(e=>e.has(n))}function Of(e,t){if(t)return`string`;if(bf(e))return`integer`;if(xf(e))return`real`;if(Cf(e))return`bool`;if(wf(e))return`string`;let n=yf(e);return n===`date`?`date`:n===`time`||n===`timetz`||n===`time with time zone`||n===`time without time zone`?`time`:Ef(e)?`datetime`:e}var kf=class extends Error{},Af=class extends kf{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},jf=class extends kf{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Mf=class extends kf{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Nf=class extends kf{},Pf=class extends kf{constructor(e){super(`Invalid unit ${e}`)}},Ff=class extends kf{},If=class extends kf{constructor(){super(`Zone is an abstract class`)}},U=`numeric`,Lf=`short`,Rf=`long`,zf={year:U,month:U,day:U},Bf={year:U,month:Lf,day:U},Vf={year:U,month:Lf,day:U,weekday:Lf},Hf={year:U,month:Rf,day:U},Uf={year:U,month:Rf,day:U,weekday:Rf},Wf={hour:U,minute:U},Gf={hour:U,minute:U,second:U},Kf={hour:U,minute:U,second:U,timeZoneName:Lf},qf={hour:U,minute:U,second:U,timeZoneName:Rf},Jf={hour:U,minute:U,hourCycle:`h23`},Yf={hour:U,minute:U,second:U,hourCycle:`h23`},Xf={hour:U,minute:U,second:U,hourCycle:`h23`,timeZoneName:Lf},Zf={hour:U,minute:U,second:U,hourCycle:`h23`,timeZoneName:Rf},Qf={year:U,month:U,day:U,hour:U,minute:U},$f={year:U,month:U,day:U,hour:U,minute:U,second:U},ep={year:U,month:Lf,day:U,hour:U,minute:U},tp={year:U,month:Lf,day:U,hour:U,minute:U,second:U},np={year:U,month:Lf,day:U,weekday:Lf,hour:U,minute:U},rp={year:U,month:Rf,day:U,hour:U,minute:U,timeZoneName:Lf},ip={year:U,month:Rf,day:U,hour:U,minute:U,second:U,timeZoneName:Lf},ap={year:U,month:Rf,day:U,weekday:Rf,hour:U,minute:U,timeZoneName:Rf},op={year:U,month:Rf,day:U,weekday:Rf,hour:U,minute:U,second:U,timeZoneName:Rf},sp=class{get type(){throw new If}get name(){throw new If}get ianaName(){return this.name}get isUniversal(){throw new If}offsetName(e,t){throw new If}formatOffset(e,t){throw new If}offset(e){throw new If}equals(e){throw new If}get isValid(){throw new If}},cp=null,lp=class e extends sp{static get instance(){return cp===null&&(cp=new e),cp}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Ym(e,t,n)}formatOffset(e,t){return $m(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},up=new Map;function dp(e){let t=up.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,era:`short`}),up.set(e,t)),t}var fp={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function pp(e,t){let n=e.format(t).replace(/\u200E/g,``),[,r,i,a,o,s,c,l]=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n);return[a,r,i,o,s,c,l]}function mp(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=fp[t];t===`era`?r[a]=i:G(a)||(r[a]=parseInt(i,10))}return r}var hp=new Map,gp=class e extends sp{static create(t){let n=hp.get(t);return n===void 0&&hp.set(t,n=new e(t)),n}static resetCache(){hp.clear(),up.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e}).format(),!0}catch{return!1}}constructor(t){super(),this.zoneName=t,this.valid=e.isValidZone(t)}get type(){return`iana`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Ym(e,t,n,this.name)}formatOffset(e,t){return $m(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=dp(this.name),[r,i,a,o,s,c,l]=n.formatToParts?mp(n,t):pp(n,t);o===`BC`&&(r=-Math.abs(r)+1);let u=Gm({year:r,month:i,day:a,hour:s===24?0:s,minute:c,second:l,millisecond:0}),d=+t,f=d%1e3;return d-=f>=0?f:1e3+f,(u-d)/(60*1e3)}equals(e){return e.type===`iana`&&e.name===this.name}get isValid(){return this.valid}},_p={};function vp(e,t={}){let n=JSON.stringify([e,t]),r=_p[n];return r||(r=new Intl.ListFormat(e,t),_p[n]=r),r}var yp=new Map;function bp(e,t={}){let n=JSON.stringify([e,t]),r=yp.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),yp.set(n,r)),r}var xp=new Map;function Sp(e,t={}){let n=JSON.stringify([e,t]),r=xp.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),xp.set(n,r)),r}var Cp=new Map;function wp(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=Cp.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),Cp.set(i,a)),a}var Tp=null;function Ep(){return Tp||(Tp=new Intl.DateTimeFormat().resolvedOptions().locale,Tp)}var Dp=new Map;function Op(e){let t=Dp.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),Dp.set(e,t)),t}var kp=new Map;function Ap(e){let t=kp.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...Bp,...t}),kp.set(e,t)}return t}function jp(e){let t=e.indexOf(`-x-`);t!==-1&&(e=e.substring(0,t));let n=e.indexOf(`-u-`);if(n===-1)return[e];{let t,r;try{t=bp(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=bp(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function Mp(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function Np(e){let t=[];for(let n=1;n<=12;n++){let r=z_.utc(2009,n,1);t.push(e(r))}return t}function Pp(e){let t=[];for(let n=1;n<=7;n++){let r=z_.utc(2016,11,13+n);t.push(e(r))}return t}function Fp(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function Ip(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||Op(e.locale).numberingSystem===`latn`}var Lp=class{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:r,floor:i,...a}=n;if(!t||Object.keys(a).length>0){let t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=Sp(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return Lm(this.floor?Math.floor(e):Vm(e,3),this.padTo)}},Rp=class{constructor(e,t,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type===`fixed`){let t=-1*(e.offset/60),n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;e.offset!==0&&gp.create(n).valid?(r=n,this.dt=e):(r=`UTC`,this.dt=e.offset===0?e:e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type===`system`?this.dt=e:e.zone.type===`iana`?(this.dt=e,r=e.zone.name):(r=`UTC`,this.dt=e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone);let i={...this.opts};i.timeZone=i.timeZone||r,this.dtf=bp(t,i)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(``):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(e=>{if(e.type===`timeZoneName`){let t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}else return e}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},zp=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&Om()&&(this.rtf=wp(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):vh(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Bp={firstDay:1,minimalDays:4,weekend:[6,7]},W=class e{static fromOpts(t){return e.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,a=!1){let o=t||om.defaultLocale;return new e(o||(a?`en-US`:Ep()),n||om.defaultNumberingSystem,r||om.defaultOutputCalendar,Pm(i)||om.defaultWeekSettings,o)}static resetCache(){Tp=null,yp.clear(),xp.clear(),Cp.clear(),Dp.clear(),kp.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return e.create(t,n,r,i)}constructor(e,t,n,r,i){let[a,o,s]=jp(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=Mp(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached??=Ip(this),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem===`latn`)&&(this.outputCalendar===null||this.outputCalendar===`gregory`);return e&&t?`en`:`intl`}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:e.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,Pm(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return Fp(this,e,ih,()=>{let n=this.intl===`ja`||this.intl.startsWith(`ja-`);t&=!n;let r=t?{month:e,day:`numeric`}:{month:e},i=t?`format`:`standalone`;if(!this.monthsCache[i][e]){let t=n?e=>this.dtFormatter(e,r).format():e=>this.extract(e,r,`month`);this.monthsCache[i][e]=Np(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return Fp(this,e,ch,()=>{let n=t?{weekday:e,year:`numeric`,month:`long`,day:`numeric`}:{weekday:e},r=t?`format`:`standalone`;return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=Pp(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return Fp(this,void 0,()=>lh,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[z_.utc(2016,11,13,9),z_.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return Fp(this,e,ph,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[z_.utc(-40,1,1),z_.utc(2017,1,1)].map(e=>this.extract(e,t,`era`))),this.eraCache[e]})}extract(e,t,n){let r=this.dtFormatter(e,t).formatToParts().find(e=>e.type.toLowerCase()===n);return r?r.value:null}numberFormatter(e={}){return new Lp(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new Rp(e,this.intl,t)}relFormatter(e={}){return new zp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return vp(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||Op(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:km()?Ap(this.locale):Bp}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Vp=null,Hp=class e extends sp{static get utcInstance(){return Vp===null&&(Vp=new e(0)),Vp}static instance(t){return t===0?e.utcInstance:new e(t)}static parseSpecifier(t){if(t){let n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new e(Xm(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${$m(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${$m(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return $m(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type===`fixed`&&e.fixed===this.fixed}get isValid(){return!0}},Up=class extends sp{constructor(e){super(),this.zoneName=e}get type(){return`invalid`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return``}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Wp(e,t){if(G(e)||e===null)return t;if(e instanceof sp)return e;if(Em(e)){let n=e.toLowerCase();return n===`default`?t:n===`local`||n===`system`?lp.instance:n===`utc`||n===`gmt`?Hp.utcInstance:Hp.parseSpecifier(n)||gp.create(e)}else if(wm(e))return Hp.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new Up(e)}var Gp={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},Kp={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},qp=Gp.hanidec.replace(/[\[|\]]/g,``).split(``);function Jp(e){let t=parseInt(e,10);if(isNaN(t)){t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(e[n].search(Gp.hanidec)!==-1)t+=qp.indexOf(e[n]);else for(let e in Kp){let[n,i]=Kp[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}var Yp=new Map;function Xp(){Yp.clear()}function Zp({numberingSystem:e},t=``){let n=e||`latn`,r=Yp.get(n);r===void 0&&(r=new Map,Yp.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${Gp[n]}${t}`),r.set(t,i)),i}var Qp=()=>Date.now(),$p=`system`,em=null,tm=null,nm=null,rm=60,im,am=null,om=class{static get now(){return Qp}static set now(e){Qp=e}static set defaultZone(e){$p=e}static get defaultZone(){return Wp($p,lp.instance)}static get defaultLocale(){return em}static set defaultLocale(e){em=e}static get defaultNumberingSystem(){return tm}static set defaultNumberingSystem(e){tm=e}static get defaultOutputCalendar(){return nm}static set defaultOutputCalendar(e){nm=e}static get defaultWeekSettings(){return am}static set defaultWeekSettings(e){am=Pm(e)}static get twoDigitCutoffYear(){return rm}static set twoDigitCutoffYear(e){rm=e%100}static get throwOnInvalid(){return im}static set throwOnInvalid(e){im=e}static resetCaches(){W.resetCache(),gp.resetCache(),z_.resetCache(),Xp()}},sm=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},cm=[0,31,59,90,120,151,181,212,243,273,304,334],lm=[0,31,60,91,121,152,182,213,244,274,305,335];function um(e,t){return new sm(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function dm(e,t,n){let r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let i=r.getUTCDay();return i===0?7:i}function fm(e,t,n){return n+(Hm(e)?lm:cm)[t-1]}function pm(e,t){let n=Hm(e)?lm:cm,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function mm(e,t){return(e-t+7)%7+1}function hm(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=fm(r,i,a),s=mm(dm(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=qm(l,t,n)):c>qm(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...eh(e)}}function gm(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=mm(dm(r,1,t),n),s=Um(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=Um(l)):c>s?(l=r+1,c-=Um(r)):l=r;let{month:u,day:d}=pm(l,c);return{year:l,month:u,day:d,...eh(e)}}function _m(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:fm(t,n,r),...eh(e)}}function vm(e){let{year:t,ordinal:n}=e,{month:r,day:i}=pm(t,n);return{year:t,month:r,day:i,...eh(e)}}function ym(e,t){if(!G(e.localWeekday)||!G(e.localWeekNumber)||!G(e.localWeekYear)){if(!G(e.weekday)||!G(e.weekNumber)||!G(e.weekYear))throw new Nf(`Cannot mix locale-based week fields with ISO-based week fields`);return G(e.localWeekday)||(e.weekday=e.localWeekday),G(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),G(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function bm(e,t=4,n=1){let r=Tm(e.weekYear),i=Fm(e.weekNumber,1,qm(e.weekYear,t,n)),a=Fm(e.weekday,1,7);return r?i?a?!1:um(`weekday`,e.weekday):um(`week`,e.weekNumber):um(`weekYear`,e.weekYear)}function xm(e){let t=Tm(e.year),n=Fm(e.ordinal,1,Um(e.year));return t?n?!1:um(`ordinal`,e.ordinal):um(`year`,e.year)}function Sm(e){let t=Tm(e.year),n=Fm(e.month,1,12),r=Fm(e.day,1,Wm(e.year,e.month));return t?n?r?!1:um(`day`,e.day):um(`month`,e.month):um(`year`,e.year)}function Cm(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=Fm(t,0,23)||t===24&&n===0&&r===0&&i===0,o=Fm(n,0,59),s=Fm(r,0,59),c=Fm(i,0,999);return a?o?s?c?!1:um(`millisecond`,i):um(`second`,r):um(`minute`,n):um(`hour`,t)}function G(e){return e===void 0}function wm(e){return typeof e==`number`}function Tm(e){return typeof e==`number`&&e%1==0}function Em(e){return typeof e==`string`}function Dm(e){return Object.prototype.toString.call(e)===`[object Date]`}function Om(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function km(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function Am(e){return Array.isArray(e)?e:[e]}function jm(e,t,n){if(e.length!==0)return e.reduce((e,r)=>{let i=[t(r),r];return e&&n(e[0],i[0])===e[0]?e:i},null)[1]}function Mm(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function Nm(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Pm(e){if(e==null)return null;if(typeof e!=`object`)throw new Ff(`Week settings must be an object`);if(!Fm(e.firstDay,1,7)||!Fm(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!Fm(e,1,7)))throw new Ff(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function Fm(e,t,n){return Tm(e)&&e>=t&&e<=n}function Im(e,t){return e-t*Math.floor(e/t)}function Lm(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function Rm(e){if(!(G(e)||e===null||e===``))return parseInt(e,10)}function zm(e){if(!(G(e)||e===null||e===``))return parseFloat(e)}function Bm(e){if(!(G(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function Vm(e,t,n=`round`){let r=10**t;switch(n){case`expand`:return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case`trunc`:return Math.trunc(e*r)/r;case`round`:return Math.round(e*r)/r;case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:throw RangeError(`Value rounding ${n} is out of range`)}}function Hm(e){return e%4==0&&(e%100!=0||e%400==0)}function Um(e){return Hm(e)?366:365}function Wm(e,t){let n=Im(t-1,12)+1,r=e+(t-n)/12;return n===2?Hm(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Gm(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Km(e,t,n){return-mm(dm(e,1,t),n)+t-1}function qm(e,t=4,n=1){let r=Km(e,t,n),i=Km(e+1,t,n);return(Um(e)-r+i)/7}function Jm(e){return e>99?e:e>om.twoDigitCutoffYear?1900+e:2e3+e}function Ym(e,t,n,r=null){let i=new Date(e),a={hourCycle:`h23`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};r&&(a.timeZone=r);let o={timeZoneName:t,...a},s=new Intl.DateTimeFormat(n,o).formatToParts(i).find(e=>e.type.toLowerCase()===`timezonename`);return s?s.value:null}function Xm(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);let r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function Zm(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new Ff(`Invalid unit value ${e}`);return t}function Qm(e,t){let n={};for(let r in e)if(Nm(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=Zm(i)}return n}function $m(e,t){let n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?`+`:`-`;switch(t){case`short`:return`${i}${Lm(n,2)}:${Lm(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${Lm(n,2)}${Lm(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function eh(e){return Mm(e,[`hour`,`minute`,`second`,`millisecond`])}var th=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],nh=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],rh=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`];function ih(e){switch(e){case`narrow`:return[...rh];case`short`:return[...nh];case`long`:return[...th];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,`12`];case`2-digit`:return[`01`,`02`,`03`,`04`,`05`,`06`,`07`,`08`,`09`,`10`,`11`,`12`];default:return null}}var ah=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],oh=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],sh=[`M`,`T`,`W`,`T`,`F`,`S`,`S`];function ch(e){switch(e){case`narrow`:return[...sh];case`short`:return[...oh];case`long`:return[...ah];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}var lh=[`AM`,`PM`],uh=[`Before Christ`,`Anno Domini`],dh=[`BC`,`AD`],fh=[`B`,`A`];function ph(e){switch(e){case`narrow`:return[...fh];case`short`:return[...dh];case`long`:return[...uh];default:return null}}function mh(e){return lh[e.hour<12?0:1]}function hh(e,t){return ch(t)[e.weekday-1]}function gh(e,t){return ih(t)[e.month-1]}function _h(e,t){return ph(t)[e.year<0?0:1]}function vh(e,t,n=`always`,r=!1){let i={years:[`year`,`yr.`],quarters:[`quarter`,`qtr.`],months:[`month`,`mo.`],weeks:[`week`,`wk.`],days:[`day`,`day`,`days`],hours:[`hour`,`hr.`],minutes:[`minute`,`min.`],seconds:[`second`,`sec.`]},a=[`hours`,`minutes`,`seconds`].indexOf(e)===-1;if(n===`auto`&&a){let n=e===`days`;switch(t){case 1:return n?`tomorrow`:`next ${i[e][0]}`;case-1:return n?`yesterday`:`last ${i[e][0]}`;case 0:return n?`today`:`this ${i[e][0]}`}}let o=Object.is(t,-0)||t<0,s=Math.abs(t),c=s===1,l=i[e],u=r?c?l[1]:l[2]||l[1]:c?i[e][0]:e;return o?`${s} ${u} ago`:`in ${s} ${u}`}function yh(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}var bh={D:zf,DD:Bf,DDD:Hf,DDDD:Uf,t:Wf,tt:Gf,ttt:Kf,tttt:qf,T:Jf,TT:Yf,TTT:Xf,TTTT:Zf,f:Qf,ff:ep,fff:rp,ffff:ap,F:$f,FF:tp,FFF:ip,FFFF:op},xh=class e{static create(t,n={}){return new e(t,n)}static parseFormat(e){let t=null,n=``,r=!1,i=[];for(let a=0;a<e.length;a++){let o=e.charAt(a);o===`'`?((n.length>0||r)&&i.push({literal:r||/^\s+$/.test(n),val:n===``?`'`:n}),t=null,n=``,r=!r):r||o===t?n+=o:(n.length>0&&i.push({literal:/^\s+$/.test(n),val:n}),n=o,t=o)}return n.length>0&&i.push({literal:r||/^\s+$/.test(n),val:n}),i}static macroTokenToFormatOpts(e){return bh[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return Lm(e,t);let r={...this.opts};return t>0&&(r.padTo=t),n&&(r.signDisplay=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(t,n){let r=this.loc.listingMode()===`en`,i=this.loc.outputCalendar&&this.loc.outputCalendar!==`gregory`,a=(e,n)=>this.loc.extract(t,e,n),o=e=>t.isOffsetFixed&&t.offset===0&&e.allowZ?`Z`:t.isValid?t.zone.formatOffset(t.ts,e.format):``,s=()=>r?mh(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?gh(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?hh(t,e):a(n?{weekday:e}:{weekday:e,month:`long`,day:`numeric`},`weekday`),u=n=>{let r=e.macroTokenToFormatOpts(n);return r?this.formatWithSystemDefault(t,r):n},d=e=>r?_h(t,e):a({era:e},`era`);return yh(e.parseFormat(n),e=>{switch(e){case`S`:return this.num(t.millisecond);case`u`:case`SSS`:return this.num(t.millisecond,3);case`s`:return this.num(t.second);case`ss`:return this.num(t.second,2);case`uu`:return this.num(Math.floor(t.millisecond/10),2);case`uuu`:return this.num(Math.floor(t.millisecond/100));case`m`:return this.num(t.minute);case`mm`:return this.num(t.minute,2);case`h`:return this.num(t.hour%12==0?12:t.hour%12);case`hh`:return this.num(t.hour%12==0?12:t.hour%12,2);case`H`:return this.num(t.hour);case`HH`:return this.num(t.hour,2);case`Z`:return o({format:`narrow`,allowZ:this.opts.allowZ});case`ZZ`:return o({format:`short`,allowZ:this.opts.allowZ});case`ZZZ`:return o({format:`techie`,allowZ:this.opts.allowZ});case`ZZZZ`:return t.zone.offsetName(t.ts,{format:`short`,locale:this.loc.locale});case`ZZZZZ`:return t.zone.offsetName(t.ts,{format:`long`,locale:this.loc.locale});case`z`:return t.zoneName;case`a`:return s();case`d`:return i?a({day:`numeric`},`day`):this.num(t.day);case`dd`:return i?a({day:`2-digit`},`day`):this.num(t.day,2);case`c`:return this.num(t.weekday);case`ccc`:return l(`short`,!0);case`cccc`:return l(`long`,!0);case`ccccc`:return l(`narrow`,!0);case`E`:return this.num(t.weekday);case`EEE`:return l(`short`,!1);case`EEEE`:return l(`long`,!1);case`EEEEE`:return l(`narrow`,!1);case`L`:return i?a({month:`numeric`,day:`numeric`},`month`):this.num(t.month);case`LL`:return i?a({month:`2-digit`,day:`numeric`},`month`):this.num(t.month,2);case`LLL`:return c(`short`,!0);case`LLLL`:return c(`long`,!0);case`LLLLL`:return c(`narrow`,!0);case`M`:return i?a({month:`numeric`},`month`):this.num(t.month);case`MM`:return i?a({month:`2-digit`},`month`):this.num(t.month,2);case`MMM`:return c(`short`,!1);case`MMMM`:return c(`long`,!1);case`MMMMM`:return c(`narrow`,!1);case`y`:return i?a({year:`numeric`},`year`):this.num(t.year);case`yy`:return i?a({year:`2-digit`},`year`):this.num(t.year.toString().slice(-2),2);case`yyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,4);case`yyyyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,6);case`G`:return d(`short`);case`GG`:return d(`long`);case`GGGGG`:return d(`narrow`);case`kk`:return this.num(t.weekYear.toString().slice(-2),2);case`kkkk`:return this.num(t.weekYear,4);case`W`:return this.num(t.weekNumber);case`WW`:return this.num(t.weekNumber,2);case`n`:return this.num(t.localWeekNumber);case`nn`:return this.num(t.localWeekNumber,2);case`ii`:return this.num(t.localWeekYear.toString().slice(-2),2);case`iiii`:return this.num(t.localWeekYear,4);case`o`:return this.num(t.ordinal);case`ooo`:return this.num(t.ordinal,3);case`q`:return this.num(t.quarter);case`qq`:return this.num(t.quarter,2);case`X`:return this.num(Math.floor(t.ts/1e3));case`x`:return this.num(t.ts);default:return u(e)}})}formatDurationFromString(t,n){let r=this.opts.signMode===`negativeLargestOnly`?-1:1,i=e=>{switch(e[0]){case`S`:return`milliseconds`;case`s`:return`seconds`;case`m`:return`minutes`;case`h`:return`hours`;case`d`:return`days`;case`w`:return`weeks`;case`M`:return`months`;case`y`:return`years`;default:return null}},a=(e,t)=>n=>{let a=i(n);if(a){let i=t.isNegativeDuration&&a!==t.largestUnit?r:1,o;return o=this.opts.signMode===`negativeLargestOnly`&&a!==t.largestUnit?`never`:this.opts.signMode===`all`?`always`:`auto`,this.num(e.get(a)*i,n.length,o)}else return n},o=e.parseFormat(n),s=o.reduce((e,{literal:t,val:n})=>t?e:e.concat(n),[]),c=t.shiftTo(...s.map(i).filter(e=>e));return yh(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},Sh=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Ch(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function wh(...e){return t=>e.reduce(([e,n,r],i)=>{let[a,o,s]=i(t,r);return[{...e,...a},o||n,s]},[{},null,1]).slice(0,2)}function Th(e,...t){if(e==null)return[null,null];for(let[n,r]of t){let t=n.exec(e);if(t)return r(t)}return[null,null]}function Eh(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=Rm(t[n+i]);return[r,null,n+i]}}var Dh=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Oh=`(?:${Dh.source}?(?:\\[(${Sh.source})\\])?)?`,kh=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ah=RegExp(`${kh.source}${Oh}`),jh=RegExp(`(?:[Tt]${Ah.source})?`),Mh=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Nh=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Ph=/(\d{4})-?(\d{3})/,Fh=Eh(`weekYear`,`weekNumber`,`weekDay`),Ih=Eh(`year`,`ordinal`),Lh=/(\d{4})-(\d\d)-(\d\d)/,Rh=RegExp(`${kh.source} ?(?:${Dh.source}|(${Sh.source}))?`),zh=RegExp(`(?: ${Rh.source})?`);function Bh(e,t,n){let r=e[t];return G(r)?n:Rm(r)}function Vh(e,t){return[{year:Bh(e,t),month:Bh(e,t+1,1),day:Bh(e,t+2,1)},null,t+3]}function Hh(e,t){return[{hours:Bh(e,t,0),minutes:Bh(e,t+1,0),seconds:Bh(e,t+2,0),milliseconds:Bm(e[t+3])},null,t+4]}function Uh(e,t){let n=!e[t]&&!e[t+1],r=Xm(e[t+1],e[t+2]);return[{},n?null:Hp.instance(r),t+3]}function Wh(e,t){return[{},e[t]?gp.create(e[t]):null,t+1]}var Gh=RegExp(`^T?${kh.source}$`),Kh=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function qh(e){let[t,n,r,i,a,o,s,c,l]=e,u=t[0]===`-`,d=c&&c[0]===`-`,f=(e,t=!1)=>e!==void 0&&(t||e&&u)?-e:e;return[{years:f(zm(n)),months:f(zm(r)),weeks:f(zm(i)),days:f(zm(a)),hours:f(zm(o)),minutes:f(zm(s)),seconds:f(zm(c),c===`-0`),milliseconds:f(Bm(l),d)}]}var Jh={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Yh(e,t,n,r,i,a,o){let s={year:t.length===2?Jm(Rm(t)):Rm(t),month:nh.indexOf(n)+1,day:Rm(r),hour:Rm(i),minute:Rm(a)};return o&&(s.second=Rm(o)),e&&(s.weekday=e.length>3?ah.indexOf(e)+1:oh.indexOf(e)+1),s}var Xh=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Zh(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=Yh(t,i,r,n,a,o,s),p;return p=c?Jh[c]:l?0:Xm(u,d),[f,new Hp(p)]}function Qh(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}var $h=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,eg=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,tg=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function ng(e){let[,t,n,r,i,a,o,s]=e;return[Yh(t,i,r,n,a,o,s),Hp.utcInstance]}function rg(e){let[,t,n,r,i,a,o,s]=e;return[Yh(t,s,n,r,i,a,o),Hp.utcInstance]}var ig=Ch(Mh,jh),ag=Ch(Nh,jh),og=Ch(Ph,jh),sg=Ch(Ah),cg=wh(Vh,Hh,Uh,Wh),lg=wh(Fh,Hh,Uh,Wh),ug=wh(Ih,Hh,Uh,Wh),dg=wh(Hh,Uh,Wh);function fg(e){return Th(e,[ig,cg],[ag,lg],[og,ug],[sg,dg])}function pg(e){return Th(Qh(e),[Xh,Zh])}function mg(e){return Th(e,[$h,ng],[eg,ng],[tg,rg])}function hg(e){return Th(e,[Kh,qh])}var gg=wh(Hh);function _g(e){return Th(e,[Gh,gg])}var vg=Ch(Lh,zh),yg=Ch(Rh),bg=wh(Hh,Uh,Wh);function xg(e){return Th(e,[vg,cg],[yg,bg])}var Sg=`Invalid Duration`,Cg={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},wg={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...Cg},Tg=146097/400,Eg=146097/4800,Dg={years:{quarters:4,months:12,weeks:Tg/7,days:Tg,hours:Tg*24,minutes:Tg*24*60,seconds:Tg*24*60*60,milliseconds:Tg*24*60*60*1e3},quarters:{months:3,weeks:Tg/28,days:Tg/4,hours:Tg*24/4,minutes:Tg*24*60/4,seconds:Tg*24*60*60/4,milliseconds:Tg*24*60*60*1e3/4},months:{weeks:Eg/7,days:Eg,hours:Eg*24,minutes:Eg*24*60,seconds:Eg*24*60*60,milliseconds:Eg*24*60*60*1e3},...Cg},Og=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],kg=Og.slice(0).reverse();function Ag(e,t,n=!1){return new Pg({values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix})}function jg(e,t){let n=t.milliseconds??0;for(let r of kg.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function Mg(e,t){let n=jg(e,t)<0?-1:1;Og.reduceRight((r,i)=>{if(G(t[i]))return r;if(r){let a=t[r]*n,o=e[i][r],s=Math.floor(a/o);t[i]+=s*n,t[r]-=s*o*n}return i},null),Og.reduce((n,r)=>{if(G(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function Ng(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}var Pg=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?Dg:wg;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||W.create(),this.conversionAccuracy=t?`longterm`:`casual`,this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(t,n){return e.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(typeof t!=`object`||!t)throw new Ff(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:Qm(t,e.normalizeUnit),loc:W.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(wm(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new Ff(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=hg(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){let[r]=_g(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new Ff(`need to specify a reason the Duration is invalid`);let r=t instanceof sm?t:new sm(t,n);if(om.throwOnInvalid)throw new Mf(r);return new e({invalid:r})}static normalizeUnit(e){let t={year:`years`,years:`years`,quarter:`quarters`,quarters:`quarters`,month:`months`,months:`months`,week:`weeks`,weeks:`weeks`,day:`days`,days:`days`,hour:`hours`,hours:`hours`,minute:`minutes`,minutes:`minutes`,second:`seconds`,seconds:`seconds`,millisecond:`milliseconds`,milliseconds:`milliseconds`}[e&&e.toLowerCase()];if(!t)throw new Pf(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?xh.create(this.loc,n).formatDurationFromString(this,e):Sg}toHuman(e={}){if(!this.isValid)return Sg;let t=e.showZeros!==!1,n=Og.map(n=>{let r=this.values[n];return G(r)||r===0&&!t?null:this.loc.numberFormatter({style:`unit`,unitDisplay:`long`,...e,unit:n.slice(0,-1)}).format(r)}).filter(e=>e);return this.loc.listFormatter({type:`conjunction`,style:e.listStyle||`narrow`,...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e=`P`;return this.years!==0&&(e+=this.years+`Y`),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+`M`),this.weeks!==0&&(e+=this.weeks+`W`),this.days!==0&&(e+=this.days+`D`),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+=`T`),this.hours!==0&&(e+=this.hours+`H`),this.minutes!==0&&(e+=this.minutes+`M`),(this.seconds!==0||this.milliseconds!==0)&&(e+=Vm(this.seconds+this.milliseconds/1e3,3)+`S`),e===`P`&&(e+=`T0S`),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:`extended`,...e,includeOffset:!1},z_.fromMillis(t,{zone:`UTC`}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?jg(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t),r={};for(let e of Og)(Nm(n.values,e)||Nm(this.values,e))&&(r[e]=n.get(e)+this.get(e));return Ag(this,{values:r},!0)}minus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let n of Object.keys(this.values))t[n]=Zm(e(this.values[n],n));return Ag(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...Qm(t,e.normalizeUnit)};return Ag(this,{values:n})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:r}={}){let i={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:r,conversionAccuracy:n};return Ag(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return Mg(this.matrix,e),Ag(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=Ng(this.normalize().shiftToAll().toObject());return Ag(this,{values:e},!0)}shiftTo(...t){if(!this.isValid||t.length===0)return this;t=t.map(t=>e.normalizeUnit(t));let n={},r={},i=this.toObject(),a;for(let e of Og)if(t.indexOf(e)>=0){a=e;let t=0;for(let n in r)t+=this.matrix[n][e]*r[n],r[n]=0;wm(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else wm(i[e])&&(r[e]=i[e]);for(let e in r)r[e]!==0&&(n[a]+=e===a?r[e]:r[e]/this.matrix[a][e]);return Mg(this.matrix,n),Ag(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo(`years`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return Ag(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=Ng(this.values);return Ag(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(e,t){return e===void 0||e===0?t===void 0||t===0:e===t}for(let n of Og)if(!t(this.values[n],e.values[n]))return!1;return!0}},Fg=`Invalid Interval`;function Ig(e,t){return!e||!e.isValid?Lg.invalid(`missing or invalid start`):!t||!t.isValid?Lg.invalid(`missing or invalid end`):t<e?Lg.invalid(`end before start`,`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null}var Lg=class e{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(t,n=null){if(!t)throw new Ff(`need to specify a reason the Interval is invalid`);let r=t instanceof sm?t:new sm(t,n);if(om.throwOnInvalid)throw new jf(r);return new e({invalid:r})}static fromDateTimes(t,n){let r=B_(t),i=B_(n);return Ig(r,i)??new e({start:r,end:i})}static after(t,n){let r=Pg.fromDurationLike(n),i=B_(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=Pg.fromDurationLike(n),i=B_(t);return e.fromDateTimes(i.minus(r),i)}static fromISO(t,n){let[r,i]=(t||``).split(`/`,2);if(r&&i){let t,a;try{t=z_.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=z_.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=Pg.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=Pg.fromISO(r,n);if(t.isValid)return e.before(o,t)}}return e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e=`milliseconds`){return this.isValid?this.toDuration(e).get(e):NaN}count(e=`milliseconds`,t){if(!this.isValid)return NaN;let n=this.start.startOf(e,t),r;return r=t?.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,r=r.startOf(e,t),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:t,end:n}={}){return this.isValid?e.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];let n=t.map(B_).filter(e=>this.contains(e)).sort((e,t)=>e.toMillis()-t.toMillis()),r=[],{s:i}=this,a=0;for(;i<this.e;){let t=n[a]||this.e,o=+t>+this.e?this.e:t;r.push(e.fromDateTimes(i,o)),i=o,a+=1}return r}splitBy(t){let n=Pg.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as(`milliseconds`)===0)return[];let{s:r}=this,i=1,a,o=[];for(;r<this.e;){let t=this.start.plus(n.mapUnits(e=>e*i));a=+t>+this.e?this.e:t,o.push(e.fromDateTimes(r,a)),r=a,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(t){if(!this.isValid)return this;let n=this.s>t.s?this.s:t.s,r=this.e<t.e?this.e:t.e;return n>=r?null:e.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;let n=this.s<t.s?this.s:t.s,r=this.e>t.e?this.e:t.e;return e.fromDateTimes(n,r)}static merge(e){let[t,n]=e.sort((e,t)=>e.s-t.s).reduce(([e,t],n)=>t?t.overlaps(n)||t.abutsStart(n)?[e,t.union(n)]:[e.concat([t]),n]:[e,n],[[],null]);return n&&t.push(n),t}static xor(t){let n=null,r=0,i=[],a=t.map(e=>[{time:e.s,type:`s`},{time:e.e,type:`e`}]),o=Array.prototype.concat(...a).sort((e,t)=>e.time-t.time);for(let t of o)r+=t.type===`s`?1:-1,r===1?n=t.time:(n&&+n!=+t.time&&i.push(e.fromDateTimes(n,t.time)),n=null);return e.merge(i)}difference(...t){return e.xor([this].concat(t)).map(e=>this.intersection(e)).filter(e=>e&&!e.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Fg}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=zf,t={}){return this.isValid?xh.create(this.s.loc.clone(t),e).formatInterval(this):Fg}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Fg}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Fg}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Fg}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Fg}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Pg.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},Rg=class{static hasDST(e=om.defaultZone){let t=z_.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return gp.isValidZone(e)}static normalizeZone(e){return Wp(e,om.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||W.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||W.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||W.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||W.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return W.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return W.create(t,null,`gregory`).eras(e)}static features(){return{relative:Om(),localeWeek:km()}}};function zg(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(Pg.fromMillis(r).as(`days`))}function Bg(e,t,n){let r=[[`years`,(e,t)=>t.year-e.year],[`quarters`,(e,t)=>t.quarter-e.quarter+(t.year-e.year)*4],[`months`,(e,t)=>t.month-e.month+(t.year-e.year)*12],[`weeks`,(e,t)=>{let n=zg(e,t);return(n-n%7)/7}],[`days`,zg]],i={},a=e,o,s;for(let[c,l]of r)n.indexOf(c)>=0&&(o=c,i[c]=l(e,t),s=a.plus(i),s>t?(i[c]--,e=a.plus(i),e>t&&(s=e,i[c]--,e=a.plus(i))):e=s);return[e,i,s,o]}function Vg(e,t,n,r){let[i,a,o,s]=Bg(e,t,n),c=t-i,l=n.filter(e=>[`hours`,`minutes`,`seconds`,`milliseconds`].indexOf(e)>=0);l.length===0&&(o<t&&(o=i.plus({[s]:1})),o!==i&&(a[s]=(a[s]||0)+c/(o-i)));let u=Pg.fromObject(a,r);return l.length>0?Pg.fromMillis(c,r).shiftTo(...l).plus(u):u}var Hg=`missing Intl.DateTimeFormat.formatToParts support`;function K(e,t=e=>e){return{regex:e,deser:([e])=>t(Jp(e))}}var Ug=`[ \xA0]`,Wg=new RegExp(Ug,`g`);function Gg(e){return e.replace(/\./g,`\\.?`).replace(Wg,Ug)}function Kg(e){return e.replace(/\./g,``).replace(Wg,` `).toLowerCase()}function qg(e,t){return e===null?null:{regex:RegExp(e.map(Gg).join(`|`)),deser:([n])=>e.findIndex(e=>Kg(n)===Kg(e))+t}}function Jg(e,t){return{regex:e,deser:([,e,t])=>Xm(e,t),groups:t}}function Yg(e){return{regex:e,deser:([e])=>e}}function Xg(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function Zg(e,t){let n=Zp(t),r=Zp(t,`{2}`),i=Zp(t,`{3}`),a=Zp(t,`{4}`),o=Zp(t,`{6}`),s=Zp(t,`{1,2}`),c=Zp(t,`{1,3}`),l=Zp(t,`{1,6}`),u=Zp(t,`{1,9}`),d=Zp(t,`{2,4}`),f=Zp(t,`{4,6}`),p=e=>({regex:RegExp(Xg(e.val)),deser:([e])=>e,literal:!0}),m=(m=>{if(e.literal)return p(m);switch(m.val){case`G`:return qg(t.eras(`short`),0);case`GG`:return qg(t.eras(`long`),0);case`y`:return K(l);case`yy`:return K(d,Jm);case`yyyy`:return K(a);case`yyyyy`:return K(f);case`yyyyyy`:return K(o);case`M`:return K(s);case`MM`:return K(r);case`MMM`:return qg(t.months(`short`,!0),1);case`MMMM`:return qg(t.months(`long`,!0),1);case`L`:return K(s);case`LL`:return K(r);case`LLL`:return qg(t.months(`short`,!1),1);case`LLLL`:return qg(t.months(`long`,!1),1);case`d`:return K(s);case`dd`:return K(r);case`o`:return K(c);case`ooo`:return K(i);case`HH`:return K(r);case`H`:return K(s);case`hh`:return K(r);case`h`:return K(s);case`mm`:return K(r);case`m`:return K(s);case`q`:return K(s);case`qq`:return K(r);case`s`:return K(s);case`ss`:return K(r);case`S`:return K(c);case`SSS`:return K(i);case`u`:return Yg(u);case`uu`:return Yg(s);case`uuu`:return K(n);case`a`:return qg(t.meridiems(),0);case`kkkk`:return K(a);case`kk`:return K(d,Jm);case`W`:return K(s);case`WW`:return K(r);case`E`:case`c`:return K(n);case`EEE`:return qg(t.weekdays(`short`,!1),1);case`EEEE`:return qg(t.weekdays(`long`,!1),1);case`ccc`:return qg(t.weekdays(`short`,!0),1);case`cccc`:return qg(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return Jg(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return Jg(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return Yg(/[a-z_+-/]{1,256}?/i);case` `:return Yg(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:Hg};return m.token=e,m}var Qg={year:{"2-digit":`yy`,numeric:`yyyyy`},month:{numeric:`M`,"2-digit":`MM`,short:`MMM`,long:`MMMM`},day:{numeric:`d`,"2-digit":`dd`},weekday:{short:`EEE`,long:`EEEE`},dayperiod:`a`,dayPeriod:`a`,hour12:{numeric:`h`,"2-digit":`hh`},hour24:{numeric:`H`,"2-digit":`HH`},minute:{numeric:`m`,"2-digit":`mm`},second:{numeric:`s`,"2-digit":`ss`},timeZoneName:{long:`ZZZZZ`,short:`ZZZ`}};function $g(e,t,n){let{type:r,value:i}=e;if(r===`literal`){let e=/^\s+$/.test(i);return{literal:!e,val:e?` `:i}}let a=t[r],o=r;r===`hour`&&(o=t.hour12==null?t.hourCycle==null?n.hour12?`hour12`:`hour24`:t.hourCycle===`h11`||t.hourCycle===`h12`?`hour12`:`hour24`:t.hour12?`hour12`:`hour24`);let s=Qg[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function e_(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function t_(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(Nm(n,i)){let a=n[i],o=a.groups?a.groups+1:1;!a.literal&&a.token&&(e[a.token.val[0]]=a.deser(r.slice(t,t+o))),t+=o}return[r,e]}else return[r,{}]}function n_(e){let t=e=>{switch(e){case`S`:return`millisecond`;case`s`:return`second`;case`m`:return`minute`;case`h`:case`H`:return`hour`;case`d`:return`day`;case`o`:return`ordinal`;case`L`:case`M`:return`month`;case`y`:return`year`;case`E`:case`c`:return`weekday`;case`W`:return`weekNumber`;case`k`:return`weekYear`;case`q`:return`quarter`;default:return null}},n=null,r;return G(e.z)||(n=gp.create(e.z)),G(e.Z)||(n||=new Hp(e.Z),r=e.Z),G(e.q)||(e.M=(e.q-1)*3+1),G(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),G(e.u)||(e.S=Bm(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}var r_=null;function i_(){return r_||=z_.fromMillis(1555555555555),r_}function a_(e,t){if(e.literal)return e;let n=u_(xh.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function o_(e,t){return Array.prototype.concat(...e.map(e=>a_(e,t)))}var s_=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=o_(xh.parseFormat(t),e),this.units=this.tokens.map(t=>Zg(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=e_(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=t_(e,this.regex,this.handlers),[r,i,a]=n?n_(n):[null,null,void 0];if(Nm(n,`a`)&&Nm(n,`H`))throw new Nf(`Can't include meridiem when specifying 24-hour format`);return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:r,zone:i,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function c_(e,t,n){return new s_(e,n).explainFromTokens(t)}function l_(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=c_(e,t,n);return[r,i,a,o]}function u_(e,t){if(!e)return null;let n=xh.create(t,e).dtFormatter(i_()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>$g(t,e,i))}var d_=`Invalid DateTime`,f_=864e13;function p_(e){return new sm(`unsupported zone`,`the zone "${e.name}" is not supported`)}function m_(e){return e.weekData===null&&(e.weekData=hm(e.c)),e.weekData}function h_(e){return e.localWeekData===null&&(e.localWeekData=hm(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function g_(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new z_({...n,...t,old:n})}function __(e,t,n){let r=e-t*60*1e3,i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;let a=n.offset(r);return i===a?[r,i]:[e-Math.min(i,a)*60*1e3,Math.max(i,a)]}function v_(e,t){e+=t*60*1e3;let n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function y_(e,t,n){return __(Gm(e),t,n)}function b_(e,t){let n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,a={...e.c,year:r,month:i,day:Math.min(e.c.day,Wm(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=Pg.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as(`milliseconds`),[s,c]=__(Gm(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function x_(e,t,n,r,i,a){let{setZone:o,zone:s}=n;if(e&&Object.keys(e).length!==0||t){let r=t||s,i=z_.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return z_.invalid(new sm(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function S_(e,t,n=!0){return e.isValid?xh.create(W.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function C_(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=Lm(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=Lm(e.c.month),n===`month`)return i;i+=`-`}else if(i+=Lm(e.c.month),n===`month`)return i;return i+=Lm(e.c.day),i}function w_(e,t,n,r,i,a,o){let s=!n||e.c.millisecond!==0||e.c.second!==0,c=``;switch(o){case`day`:case`month`:case`year`:break;default:if(c+=Lm(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=Lm(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=Lm(e.c.second))}else{if(c+=Lm(e.c.minute),o===`minute`)break;s&&(c+=Lm(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=Lm(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=Lm(Math.trunc(-e.o/60)),c+=`:`,c+=Lm(Math.trunc(-e.o%60))):(c+=`+`,c+=Lm(Math.trunc(e.o/60)),c+=`:`,c+=Lm(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}var T_={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},E_={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},D_={ordinal:1,hour:0,minute:0,second:0,millisecond:0},O_=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],k_=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],A_=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`];function j_(e){let t={year:`year`,years:`year`,month:`month`,months:`month`,day:`day`,days:`day`,hour:`hour`,hours:`hour`,minute:`minute`,minutes:`minute`,quarter:`quarter`,quarters:`quarter`,second:`second`,seconds:`second`,millisecond:`millisecond`,milliseconds:`millisecond`,weekday:`weekday`,weekdays:`weekday`,weeknumber:`weekNumber`,weeksnumber:`weekNumber`,weeknumbers:`weekNumber`,weekyear:`weekYear`,weekyears:`weekYear`,ordinal:`ordinal`}[e.toLowerCase()];if(!t)throw new Pf(e);return t}function M_(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return j_(e)}}function N_(e){if(L_===void 0&&(L_=om.now()),e.type!==`iana`)return e.offset(L_);let t=e.name,n=R_.get(t);return n===void 0&&(n=e.offset(L_),R_.set(t,n)),n}function P_(e,t){let n=Wp(t.zone,om.defaultZone);if(!n.isValid)return z_.invalid(p_(n));let r=W.fromObject(t),i,a;if(G(e.year))i=om.now();else{for(let t of O_)G(e[t])&&(e[t]=T_[t]);let t=Sm(e)||Cm(e);if(t)return z_.invalid(t);let r=N_(n);[i,a]=y_(e,r,n)}return new z_({ts:i,zone:n,loc:r,o:a})}function F_(e,t,n){let r=G(n.round)?!0:n.round,i=G(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=Vm(e,r||n.calendary?0:2,n.calendary?`round`:i),t.loc.clone(n).relFormatter(n).format(e,a)),o=r=>n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r);if(n.unit)return a(o(n.unit),n.unit);for(let e of n.units){let t=o(e);if(Math.abs(t)>=1)return a(t,e)}return a(e>t?-0:0,n.units[n.units.length-1])}function I_(e){let t={},n;return e.length>0&&typeof e[e.length-1]==`object`?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}var L_,R_=new Map,z_=class e{constructor(e){let t=e.zone||om.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new sm(`invalid input`):null)||(t.isValid?null:p_(t));this.ts=G(e.ts)?om.now():e.ts;let r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[r,i]=[e.old.c,e.old.o];else{let a=wm(e.o)&&!e.old?e.o:t.offset(this.ts);r=v_(this.ts,a),n=Number.isNaN(r.year)?new sm(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||W.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}static now(){return new e({})}static local(){let[e,t]=I_(arguments),[n,r,i,a,o,s,c]=t;return P_({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=I_(arguments),[n,r,i,a,o,s,c]=t;return e.zone=Hp.utcInstance,P_({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=Dm(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=Wp(n.zone,om.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:W.fromObject(n)}):e.invalid(p_(i))}static fromMillis(t,n={}){if(wm(t))return t<-f_||t>f_?e.invalid(`Timestamp out of range`):new e({ts:t,zone:Wp(n.zone,om.defaultZone),loc:W.fromObject(n)});throw new Ff(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(wm(t))return new e({ts:t*1e3,zone:Wp(n.zone,om.defaultZone),loc:W.fromObject(n)});throw new Ff(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=Wp(n.zone,om.defaultZone);if(!r.isValid)return e.invalid(p_(r));let i=W.fromObject(n),a=Qm(t,M_),{minDaysInFirstWeek:o,startOfWeek:s}=ym(a,i),c=om.now(),l=G(n.specificOffset)?r.offset(c):n.specificOffset,u=!G(a.ordinal),d=!G(a.year),f=!G(a.month)||!G(a.day),p=d||f,m=a.weekYear||a.weekNumber;if((p||u)&&m)throw new Nf(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(f&&u)throw new Nf(`Can't mix ordinal dates with month/day`);let h=m||a.weekday&&!p,ee,te,ne=v_(c,l);h?(ee=k_,te=E_,ne=hm(ne,o,s)):u?(ee=A_,te=D_,ne=_m(ne)):(ee=O_,te=T_);let re=!1;for(let e of ee){let t=a[e];G(t)?re?a[e]=te[e]:a[e]=ne[e]:re=!0}let ie=(h?bm(a,o,s):u?xm(a):Sm(a))||Cm(a);if(ie)return e.invalid(ie);let[ae,oe]=y_(h?gm(a,o,s):u?vm(a):a,l,r),se=new e({ts:ae,zone:r,o:oe,loc:i});return a.weekday&&p&&t.weekday!==se.weekday?e.invalid(`mismatched weekday`,`you can't specify both a weekday of ${a.weekday} and a date of ${se.toISO()}`):se.isValid?se:e.invalid(se.invalid)}static fromISO(e,t={}){let[n,r]=fg(e);return x_(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=pg(e);return x_(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=mg(e);return x_(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(G(t)||G(n))throw new Ff(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,s,c,l]=l_(W.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return l?e.invalid(l):x_(o,s,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return e.fromFormat(t,n,r)}static fromSQL(e,t={}){let[n,r]=xg(e);return x_(n,r,t,`SQL`,e)}static invalid(t,n=null){if(!t)throw new Ff(`need to specify a reason the DateTime is invalid`);let r=t instanceof sm?t:new sm(t,n);if(om.throwOnInvalid)throw new Af(r);return new e({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=u_(e,W.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return o_(xh.parseFormat(e),W.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){L_=void 0,R_.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?m_(this).weekYear:NaN}get weekNumber(){return this.isValid?m_(this).weekNumber:NaN}get weekday(){return this.isValid?m_(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?h_(this).weekday:NaN}get localWeekNumber(){return this.isValid?h_(this).weekNumber:NaN}get localWeekYear(){return this.isValid?h_(this).weekYear:NaN}get ordinal(){return this.isValid?_m(this.c).ordinal:NaN}get monthShort(){return this.isValid?Rg.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Rg.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Rg.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Rg.weekdays(`long`,{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:`short`,locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:`long`,locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,n=Gm(this.c),r=this.zone.offset(n-e),i=this.zone.offset(n+e),a=this.zone.offset(n-r*t),o=this.zone.offset(n-i*t);if(a===o)return[this];let s=n-a*t,c=n-o*t,l=v_(s,a),u=v_(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[g_(this,{ts:s}),g_(this,{ts:c})]:[this]}get isInLeapYear(){return Hm(this.year)}get daysInMonth(){return Wm(this.year,this.month)}get daysInYear(){return this.isValid?Um(this.year):NaN}get weeksInWeekYear(){return this.isValid?qm(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?qm(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=xh.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(Hp.instance(e),t)}toLocal(){return this.setZone(om.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Wp(t,om.defaultZone),t.equals(this.zone))return this;if(t.isValid){let e=this.ts;if(n||r){let n=t.offset(this.ts),r=this.toObject();[e]=y_(r,n,t)}return g_(this,{ts:e,zone:t})}else return e.invalid(p_(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return g_(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=Qm(e,M_),{minDaysInFirstWeek:n,startOfWeek:r}=ym(t,this.loc),i=!G(t.weekYear)||!G(t.weekNumber)||!G(t.weekday),a=!G(t.ordinal),o=!G(t.year),s=!G(t.month)||!G(t.day),c=o||s,l=t.weekYear||t.weekNumber;if((c||a)&&l)throw new Nf(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(s&&a)throw new Nf(`Can't mix ordinal dates with month/day`);let u;i?u=gm({...hm(this.c,n,r),...t},n,r):G(t.ordinal)?(u={...this.toObject(),...t},G(t.day)&&(u.day=Math.min(Wm(u.year,u.month),u.day))):u=vm({..._m(this.c),...t});let[d,f]=y_(u,this.o,this.zone);return g_(this,{ts:d,o:f})}plus(e){if(!this.isValid)return this;let t=Pg.fromDurationLike(e);return g_(this,b_(this,t))}minus(e){if(!this.isValid)return this;let t=Pg.fromDurationLike(e).negate();return g_(this,b_(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=Pg.normalizeUnit(e);switch(r){case`years`:n.month=1;case`quarters`:case`months`:n.day=1;case`weeks`:case`days`:n.hour=0;case`hours`:n.minute=0;case`minutes`:n.second=0;case`seconds`:n.millisecond=0;break}if(r===`weeks`)if(t){let e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(n.weekNumber=this.weekNumber-1),n.weekday=e}else n.weekday=1;return r===`quarters`&&(n.month=(Math.ceil(this.month/3)-1)*3+1),this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?xh.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):d_}toLocaleString(e=zf,t={}){return this.isValid?xh.create(this.loc.clone(t),e).formatDateTime(this):d_}toLocaleParts(e={}){return this.isValid?xh.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e=`extended`,suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:i=!1,precision:a=`milliseconds`}={}){if(!this.isValid)return null;a=j_(a);let o=e===`extended`,s=C_(this,o,a);return O_.indexOf(a)>=3&&(s+=`T`),s+=w_(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?C_(this,e===`extended`,j_(t)):null}toISOWeekDate(){return S_(this,`kkkk-'W'WW-c`)}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:i=!1,format:a=`extended`,precision:o=`milliseconds`}={}){return this.isValid?(o=j_(o),(r&&O_.indexOf(o)>=3?`T`:``)+w_(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return S_(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return S_(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?C_(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let r=`HH:mm:ss.SSS`;return(t||e)&&(n&&(r+=` `),t?r+=`z`:e&&(r+=`ZZ`)),S_(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():d_}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t=`milliseconds`,n={}){if(!this.isValid||!e.isValid)return Pg.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=Am(t).map(Pg.normalizeUnit),a=e.valueOf()>this.valueOf(),o=Vg(a?this:e,a?e:this,i,r);return a?o.negate():o}diffNow(t=`milliseconds`,n={}){return this.diff(e.now(),t,n)}until(e){return this.isValid?Lg.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;let r=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(t,n)<=r&&r<=i.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(t={}){if(!this.isValid)return null;let n=t.base||e.fromObject({},{zone:this.zone}),r=t.padding?this<n?-t.padding:t.padding:0,i=[`years`,`months`,`days`,`hours`,`minutes`,`seconds`],a=t.unit;return Array.isArray(t.unit)&&(i=t.unit,a=void 0),F_(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?F_(t.base||e.fromObject({},{zone:this.zone}),this,{...t,numeric:`auto`,units:[`years`,`months`,`days`],calendary:!0}):null}static min(...t){if(!t.every(e.isDateTime))throw new Ff(`min requires all arguments be DateTimes`);return jm(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new Ff(`max requires all arguments be DateTimes`);return jm(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return c_(W.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0}),e,t)}static fromStringExplain(t,n,r={}){return e.fromFormatExplain(t,n,r)}static buildFormatParser(e,t={}){let{locale:n=null,numberingSystem:r=null}=t;return new s_(W.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0}),e)}static fromFormatParser(t,n,r={}){if(G(t)||G(n))throw new Ff(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=W.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new Ff(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${n.locale}`);let{result:s,zone:c,specificOffset:l,invalidReason:u}=n.explainFromTokens(t);return u?e.invalid(u):x_(s,c,r,`format ${n.format}`,t,l)}static get DATE_SHORT(){return zf}static get DATE_MED(){return Bf}static get DATE_MED_WITH_WEEKDAY(){return Vf}static get DATE_FULL(){return Hf}static get DATE_HUGE(){return Uf}static get TIME_SIMPLE(){return Wf}static get TIME_WITH_SECONDS(){return Gf}static get TIME_WITH_SHORT_OFFSET(){return Kf}static get TIME_WITH_LONG_OFFSET(){return qf}static get TIME_24_SIMPLE(){return Jf}static get TIME_24_WITH_SECONDS(){return Yf}static get TIME_24_WITH_SHORT_OFFSET(){return Xf}static get TIME_24_WITH_LONG_OFFSET(){return Zf}static get DATETIME_SHORT(){return Qf}static get DATETIME_SHORT_WITH_SECONDS(){return $f}static get DATETIME_MED(){return ep}static get DATETIME_MED_WITH_SECONDS(){return tp}static get DATETIME_MED_WITH_WEEKDAY(){return np}static get DATETIME_FULL(){return rp}static get DATETIME_FULL_WITH_SECONDS(){return ip}static get DATETIME_HUGE(){return ap}static get DATETIME_HUGE_WITH_SECONDS(){return op}};function B_(e){if(z_.isDateTime(e))return e;if(e&&e.valueOf&&wm(e.valueOf()))return z_.fromJSDate(e);if(e&&typeof e==`object`)return z_.fromObject(e);throw new Ff(`Unknown datetime argument: ${e}, of type ${typeof e}`)}function V_(e){return eu(e)?e.expression.variable?.value?.toLowerCase()===`null`:e instanceof _d}function H_(e){return k(e)===``}function U_(e){return e instanceof ld}function W_(e){let t=Su(e);if(t!==null)return t;if(Yl(e)&&e instanceof L&&e.expression){let t=e.op?.value,n=Su(e.expression);if(n!==null)return t===`-`?-n:n}return null}function G_(e){if(e==null)return null;if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number(e);return isNaN(t)?null:t}if(typeof e==`boolean`)return e?1:0;let t=W_(e);if(t!==null)return t;let n=k(e);if(n!==void 0){let e=Number(n);if(!isNaN(e))return e}return null}function K_(e){if(e==null)return null;if(typeof e==`number`)return Number.isInteger(e)?e:null;if(typeof e==`string`){let t=Number(e);return isNaN(t)||!Number.isInteger(t)?null:t}if(typeof e==`boolean`)return e?1:0;let t=W_(e);if(t!==null)return Number.isInteger(t)?t:null;let n=k(e);if(n!==void 0){let e=Number(n);if(!isNaN(e)&&Number.isInteger(e))return e}return null}const q_=[`true`,`yes`,`y`,`t`,`1`],J_=[`false`,`no`,`n`,`f`,`0`];function Y_(e){if(e==null)return null;if(typeof e==`boolean`)return e;if(typeof e==`number`)return e===0?!1:e===1?!0:null;if(typeof e==`string`){let t=e.toLowerCase();return q_.includes(t)?!0:J_.includes(t)?!1:null}if(eu(e)){let t=e.expression.variable?.value?.toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1}let t=Su(e);if(t===0)return!1;if(t===1)return!0;let n=k(e)?.toLowerCase();if(n){if(q_.includes(n))return!0;if(J_.includes(n))return!1}return null}function X_(e){if(e==null)return null;if(typeof e==`string`)return e;let t=O(e);return t?_(t):k(e)??null}function Z_(e){if(e==null)return null;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return e.toString();let t=k(e)??null??G_(e)??Y_(e);return t===null?null:t.toString()}var Q_=[`yyyy-MM-dd`,`M/d/yyyy`,`d MMM yyyy`,`MMM d, yyyy`],$_=[`yyyy-MM-dd HH:mm:ss`,`yyyy-MM-dd HH:mm:ss.SSS`,`yyyy-MM-dd HH:mm:ss.SSSZZ`,`yyyy-MM-dd HH:mm:ssZZ`],ev=[`HH:mm:ss`,`HH:mm:ssZZ`,`HH:mm:ss.SSS`,`HH:mm:ss.SSSZZ`];function tv(e){if(e==null)return null;let t=typeof e==`string`?e:k(e)??null;if(t===null)return null;for(let e of ev){let n=z_.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISOTime({suppressMilliseconds:!0,includeOffset:r(n)})}for(let e of Q_){let n=z_.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISODate()}for(let e of $_){let n=z_.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)})}let n=z_.fromISO(t,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)});return null;function r(e){return e.zone.type!==`system`}}function nv(e,t){let n=e.type(t),r=e.default(t);return{name:e.name??``,pk:e.pk(t),unique:e.unique(t),increment:e.increment(t),notNull:e.nullable(t)===!1,dbdefault:r,typeName:n?.name??``}}function rv(e){return e.values.map(t=>{let n={};return e.columns.forEach((e,r)=>{n[e]=t[r]}),n})}function iv(e,t,n){return t.map((t,r)=>{let i=e[t]?.value;if(i==null&&n&&n[r]){let e=n[r];if(e?.dbdefault)return JSON.stringify(e.dbdefault.value)}return JSON.stringify(i)}).join(`|`)}function av(e,t,n){return t.some((t,r)=>{let i=e[t]?.value;return i==null&&n&&n[r]&&n[r]?.dbdefault?!1:i==null})}function ov(e){return e.increment||Df(e.typeName)}function sv(e,t,n){return e?`${e}.${t}.${n}`:`${t}.${n}`}function cv(e,t,n){return n.length===1?sv(e,t,n[0]):`(${n.map(n=>sv(e,t,n)).join(`, `)})`}function lv(e,t){return t.length===1?JSON.stringify(e[t[0]]?.value):`(${t.map(t=>JSON.stringify(e[t]?.value)).join(`, `)})`}function uv(e,t,n){let{token:r}=t,i=e.nodeAtPosition(r.filepath,r.start.offset)??e.parse.ast(r.filepath);return new Il(b.INVALID_RECORDS_FIELD,n,i)}var dv=e=>e>1?`Composite PK`:`PK`;function fv(e,t,n,r){if(jc(r.values))return[];let i=t.mergedColumns(e).map(t=>nv(t,e)),a=Nc(i,`name`),o=rv(r),s=_v(t,i,e),c=new Set(r.columns);return xc(s,i=>pv(e,t,n,i,o,c,a,r))}function pv(e,t,n,r,i,a,o,s){let c=t.schema(e),l=t.name??``,u=gv(n,r,a,o,c,l,s);if(!jc(u))return u;let d=ao(r.map(e=>o[e])),f=d.every(e=>e&&ov(e)),[p,m]=v(i,e=>av(e,r,d)),h=f?[]:mv(e,p,r,c,l),ee=hv(e,m,r,d,c,l);return[...h,...ee]}function mv(e,t,n,r,i){if(jc(t))return[];let a=`NULL in ${dv(n.length)}: ${cv(r,i,n)} cannot be NULL`;return xc(t,t=>n.map(n=>uv(e,t[n],a)))}function hv(e,t,n,r,i,a){return xc(lc(Ec(t,e=>iv(e,n,r)),e=>e.length>1),t=>{let r=dv(n.length),o=cv(i,a,n);return xc(t,t=>{let i=`Duplicate ${r}: ${o} = ${lv(t,n)}`;return n.map(n=>uv(e,t[n],i))})})}function gv(e,t,n,r,i,a,o){let s=nc(t,Array.from(n));if(jc(s))return[];let c=s.filter(e=>{let t=r[e];return!!(t&&!ov(t)&&!t.dbdefault)});if(jc(c))return[];let l=`${dv(c.length)}: Column ${cv(i,a,c)} is missing from record and has no default value`;return o.values.map(()=>new Il(b.INVALID_RECORDS_FIELD,l,e))}function _v(e,t,n){return[...t.filter(e=>e.pk).map(e=>[e.name]),...e.mergedIndexes(n).flatMap(e=>{let t=n.interpretMetadata(e,e.declaration.filepath).getValue();return Array.isArray(t)?t.filter(e=>e.pk).map(e=>e.columns.map(e=>e.value)):[]})]}var vv=e=>e>1?`Composite UNIQUE`:`UNIQUE`;function yv(e,t,n){if(jc(n.values))return[];let r=t.mergedColumns(e).map(t=>nv(t,e)),i=Nc(r,`name`),a=rv(n),o=t.schema(e),s=t.name??``;return xc(bv(t,r,e),t=>xv(e,a,t,ao(t.map(e=>i[e])),o,s))}function bv(e,t,n){return[...t.filter(e=>e.unique).map(e=>[e.name]),...e.mergedIndexes(n).flatMap(e=>{let t=n.interpretMetadata(e,e.declaration.filepath).getValue();return Array.isArray(t)?t.filter(e=>e.unique).map(e=>e.columns.map(e=>e.value)):[]})]}function xv(e,t,n,r,i,a){return xc(lc(Ec(t.filter(e=>!av(e,n,r)),e=>iv(e,n,r)),e=>e.length>1),t=>{let r=vv(n.length),o=cv(i,a,n);return xc(t,t=>{let i=`Duplicate ${r}: ${o} = ${lv(t,n)}`;return n.map(n=>uv(e,t[n],i))})})}function Sv(e,t,n,r){return xc(t,t=>Tv(e,t,n,r))}function Cv(e,t,n,r,i,a){if(!t.record||jc(t.record.values))return[];let o=rv(t.record),s=n.record?rv(n.record):[],c=new Set(s.map(e=>iv(e,i.fieldNames))),l=o.filter(e=>!av(e,r.fieldNames)).filter(e=>{let t=iv(e,r.fieldNames);return!c.has(t)}),u=t.tableSymbol.interpretedName(e,a),d=n.tableSymbol.interpretedName(e,a);return xc(l,t=>{let n=cv(u.schema,u.name,r.fieldNames),a=cv(d.schema,d.name,i.fieldNames),o=`FK violation: ${n} = ${lv(t,r.fieldNames)} does not exist in ${a}`;return r.fieldNames.map(n=>uv(e,t[n],o))})}function wv(e,t,n,r){let i=t.schemaName===`public`?null:t.schemaName;for(let a of e.values()){let{name:e,schema:o}=a.tableSymbol.interpretedName(n,r);if(e===t.tableName&&o===i)return a}}function Tv(e,t,n,r){if(!t.endpoints)return[];let[i,a]=t.endpoints,o=wv(n,i,e,r),s=wv(n,a,e,r);return!o||!s?[]:Ev(e,o,s,i,a,r)}function Ev(e,t,n,r,i,a){let o=r.relation,s=i.relation;return o===`1`&&s===`1`||o===`*`&&s===`*`?[...Cv(e,t,n,r,i,a),...Cv(e,n,t,i,r,a)]:o===`*`&&s===`1`?Cv(e,t,n,r,i,a):o===`1`&&s===`*`?Cv(e,n,t,i,r,a):[]}var Dv=class{constructor(e,t,n){this.errors=[],this.warnings=[],this.compiler=e,this.programSymbol=t,this.programNode=t.declaration,this.filepath=n,this.db={schemas:[],tables:[],notes:[],refs:[],enums:[],tableGroups:[],aliases:[],tablePartials:[],records:[],diagramViews:[],token:j(this.programNode),externals:{tables:[],enums:[],tableGroups:[],tablePartials:[],notes:[]}}}interpret(){return this.interpretAllSymbols(),this.interpretAllMetadata(),this.interpretAllAliases(),this.warnings.push(...this.validateRecords()),new n(this.db,this.errors,this.warnings)}interpretAllSymbols(){for(let e of this.programSymbol.declaration.declarations){let n=this.compiler.nodeSymbol(e).getFiltered(t);if(!n||n instanceof $u)continue;let r=this.compiler.interpretSymbol(n,this.filepath);if(r.hasValue(t))continue;this.errors.push(...r.getErrors()),this.warnings.push(...r.getWarnings());let i=r.getValue();i&&this.pushElement(n,i)}let e=new Set,n=(this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[]).filter(e=>e instanceof Fu);for(;n.length>0;){let r=n.shift(),i=this.compiler.symbolMembers(r).getFiltered(t)??[];for(let t of i){if(t instanceof Fu){n.push(t);continue}if(!(t instanceof $u))continue;let r=t.originalSymbol.intern();e.has(r)||(e.add(r),this.interpretUseSymbol(t))}}}interpretUseSymbol(e){let n=e.originalSymbol,r=this.compiler.interpretSymbol(n,this.filepath);if(!r.hasValue(t)){this.errors.push(...r.getErrors()),this.warnings.push(...r.getWarnings());let t=r.getValue();t&&this.pushElement(e,t)}let i=n instanceof Ru?n.interpretedName(this.compiler,n.filepath):{name:n.name??``,schema:null},a=n instanceof Ru?n.interpretedName(this.compiler,this.filepath):{name:e.name??n.name??``,schema:null},o={name:i.name,schemaName:i.schema,filepath:n.filepath,visibleNames:[{schemaName:a.schema,name:a.name}]};df(this.db,e,o)}interpretAllMetadata(){let e=this.compiler.symbolMetadata(this.programSymbol)??[],n=new Set,r=new Map;for(let t of e){if(!(t instanceof Ed))continue;let e=t.table(this.compiler);if(!e)continue;let n=e.originalSymbol.intern(),i=r.get(n);i?i.count++:r.set(n,{count:1,tableName:e.name??``})}for(let i of e){let e=this.compiler.interpretMetadata(i,this.filepath);if(e.hasValue(t))continue;this.errors.push(...e.getErrors()),this.warnings.push(...e.getWarnings());let a=e.getValue();if(a!==void 0)switch(i.kind){case bd.Ref:{let e=a,[t,r]=e.endpoints??[];if(t&&r){let e=[t.schemaName,t.tableName,t.fieldNames.join(`,`),r.schemaName,r.tableName,r.fieldNames.join(`,`)].join(`|`),a=[r.schemaName,r.tableName,r.fieldNames.join(`,`),t.schemaName,t.tableName,t.fieldNames.join(`,`)].join(`|`);if(n.has(e)||n.has(a)){this.errors.push(new x(b.SAME_ENDPOINT,`Ref with same endpoints already exists`,i.declaration));break}n.add(e)}this.db.refs.push(e);break}case bd.Records:if(i instanceof Ed){let e=i.table(this.compiler)?.originalSymbol.intern()??``,t=e?r.get(e):void 0;if(t&&t.count>1){this.errors.push(new x(b.DUPLICATE_RECORDS_FOR_TABLE,`Duplicate Records blocks for the same Table '${t.tableName}' - A Table can only have one Records block`,i.declaration));break}}this.db.records.push(a);break;case bd.Project:this.db.project=a;break;default:break}}}interpretAllAliases(){let e=this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[];for(let t of e){if(!(t instanceof Qu)||!t.isKind(M.Table))continue;let{name:e,schema:n}=t.originalSymbol.interpretedName(this.compiler,this.filepath),r={name:t.name,kind:Kd.Table,value:{tableName:e,schemaName:n}};this.db.aliases.push(r)}}validateRecords(){let e=[],n=new Map,r=this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[];for(let e of r){if(!(e instanceof Fu))continue;let r=this.compiler.symbolMembers(e).getFiltered(t)??[];for(let e of r){if(!e.isKind(M.Table))continue;let t=e.originalSymbol;if(!(t instanceof Ru))continue;let r=t.intern();n.has(r)||n.set(r,{tableSymbol:t,record:void 0,recordBlock:t.declaration})}}let i=this.compiler.symbolMetadata(this.programSymbol);for(let r of i){if(!(r instanceof Ed))continue;let i=r.table(this.compiler);if(!(i instanceof Ru))continue;let a=this.compiler.interpretMetadata(r,this.filepath);if(a.hasValue(t))continue;let o=a.getValue();if(!o)continue;e.push(...fv(this.compiler,i,r.declaration,o)),e.push(...yv(this.compiler,i,o));let s=i.originalSymbol.intern(),c=n.get(s);c?c.record=o:n.set(s,{tableSymbol:i,record:o,recordBlock:r.declaration})}let a=this.collectPartialRefs(n);return e.push(...Sv(this.compiler,[...this.db.refs,...a],n,this.filepath)),e}collectPartialRefs(e){let t=this.compiler.symbolMetadata(this.programSymbol).filter(e=>e instanceof Cd),n=[];for(let{tableSymbol:r}of e.values())for(let e of r.resolvedPartials(this.compiler))for(let i of t){if(i.leftTablePartial(this.compiler)?.originalSymbol!==e.originalSymbol)continue;let t=i.leftColumns(this.compiler),a=i.rightTable(this.compiler),o=i.rightColumns(this.compiler),s=i.op(this.compiler);if(!a||!s||t.length===0||o.length===0)continue;let c=r.mergedColumns(this.compiler);if(!t.some(e=>c.some(t=>t instanceof ed&&t.declaration===e.declaration)))continue;let l=Hd(s);if(!l)continue;let u=a instanceof Uu&&a.originalSymbol===e.originalSymbol?r:a,d=r.interpretedName(this.compiler,this.filepath),f=u.interpretedName(this.compiler,this.filepath),p={schemaName:d.schema,tableName:d.name,fieldNames:t.map(e=>e.name??``),relation:l[0],token:j(i.leftToken())},m={schemaName:f.schema,tableName:f.name,fieldNames:o.map(e=>e.name??``),relation:l[1],token:j(i.rightToken())};n.push({token:j(i.declaration),endpoints:[p,m]})}return n}pushElement(e,t){if(!Array.isArray(t))switch(e.kind){case M.Table:this.db.tables.push(t);break;case M.Enum:this.db.enums.push(t);break;case M.TableGroup:this.db.tableGroups.push(t);break;case M.TablePartial:this.db.tablePartials.push(t);break;case M.StickyNote:this.db.notes.push(t);break;case M.DiagramView:this.db.diagramViews.push(t);break;default:break}}};const Ov={nodeSymbol(t,r){return iu(r)?n.create(t.symbolFactory.create(Zu,{declaration:r,name:r.filepath.absolute},r.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(M.Program))return n.create(e);if(!(i.declaration instanceof nd))return n.create([]);let a=new Map;for(let e of r.reachableFiles(i.filepath)){let{schemaMembers:t}=r.usableMembers(e).getValue();for(let e of t)a.has(e.name)||a.set(e.name,e)}let o=a.get(Pl);if(!o)return n.create([...a.values()]);let s=r.symbolMembers(o).getFiltered(t)?.filter(e=>!e.isKind(M.Schema));return s?n.create([...a.values(),...s]):n.create([...a.values()])},bindNode(t,r){return iu(r)?new lf(r,t).resolve():n.create(e)},interpretSymbol(t,r,i){if(!(r instanceof Zu))return n.create(e);if(!(r.declaration instanceof nd))return n.create(void 0);if(!zd(t,r.declaration)){let e=t.reachableFiles(i).flatMap(e=>t.bindFile(e).getErrors());return n.create(void 0,e)}return new Dv(t,r,i).interpret()}};var kv=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof R)return[];let t=e.body.filter(e=>e instanceof F);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Av=class{constructor(e,t,n){this.declarationNode=t,this.compiler=e,this.filepath=n,this.project={enums:[],refs:[],tableGroups:[],tables:[],tablePartials:[]}}interpret(){this.project.token=j(this.declarationNode);let e=[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)];return new n(this.project,e)}interpretName(e){if(!e)return this.project.name=null,[];let{name:t}=Ou(e);return this.project.name=t,[]}interpretSubElement(e){let r=this.compiler.nodeSymbol(e).getFiltered(t);if(r){let e=this.compiler.interpretSymbol(r,this.filepath);if(!e.hasValue(t))return e}return n.create(void 0)}interpretBody(e){return e.body.flatMap(e=>{let t=e;switch(t.getElementKind()){case r.Table:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.tables?.push(e.getValue()),e.getErrors()}case r.TableGroup:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.tableGroups?.push(e.getValue()),e.getErrors()}case r.Enum:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.enums?.push(e.getValue()),e.getErrors()}case r.Note:{let e=t.body instanceof z?t.body.body[0]?.callee:t.body?.callee,n=e?k(e):void 0;return n&&(this.project.note={value:Du(n),token:j(t)}),[]}case r.TablePartial:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.tablePartials?.push(e.getValue()),e.getErrors()}default:return this.project[t.type.value.toLowerCase()]=k(t.body.callee),[]}})}};const jv={nodeMetadata(t,i){return E(i,r.Project)?n.create(new Dd(i)):n.create(e)},bindNode(t,i){return E(i,r.Project)?n.create(void 0,new kv(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return!(r instanceof Dd)||!(r.declaration instanceof F)?n.create(e):new Av(t,r.declaration,i).interpret()}};var Mv=class{constructor(e,t){this.compiler=e,this.declarationNode=t,this.boundColumns=new Map}bind(){let e=[];return this.declarationNode.name&&e.push(...this.bindRecordsName(this.declarationNode.name)),this.declarationNode.body instanceof z&&e.push(...this.bindBody(this.declarationNode.body)),e}bindRecordsName(e){return this.declarationNode.parent instanceof nd?this.bindTopLevelName(e):this.bindInsideTableName(e)}bindTopLevelName(e){let n=Cu(e);if(!n)return[];let r=n.variables.pop(),i=n.variables;if(!r)return[];let a=this.compiler.nodeReferee(r).getErrors();if(a.length>0)return a;let o=this.compiler.nodeReferee(r).getFiltered(t);if(!o)return[];let s=gu(o.declaration)??`<invalid name>`,c=i.flatMap(e=>this.compiler.nodeReferee(e).getErrors());for(let e of n.args){let n=wu(e)??`<unnamed>`,r=this.compiler.nodeReferee(e).getFiltered(t);if(!r){c.push(new x(b.BINDING_ERROR,`Column '${n}' does not exist in Table '${s}'`,e));continue}let i=this.boundColumns.get(r);i&&(c.push(new x(b.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS,`Column '${n}' is referenced more than once in a Records for Table '${s}'`,i)),c.push(new x(b.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS,`Column '${n}' is referenced more than once in a Records for Table '${s}'`,e))),this.boundColumns.set(r,e)}return c}bindInsideTableName(e){let n=this.declarationNode.parent;if(!(n instanceof F)||!n.isKind(r.Table)||!this.compiler.nodeSymbol(n).getFiltered(t)||!Zl(e))return[];let i=gu(n)??`<invalid name>`,a=[];for(let n of e.elementList){let e=wu(n)??`<unnamed>`;if(!this.compiler.nodeReferee(n).getFiltered(t)){a.push(new x(b.BINDING_ERROR,`Column '${e}' does not exist in Table '${i}'`,n));continue}}return a}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindDataRow(e);let t=e.body.filter(e=>e instanceof R),n=e.body.filter(e=>e instanceof F);return[...this.bindDataRows(t),...this.bindSubElements(n)]}bindDataRows(e){return e.flatMap(e=>this.bindDataRow(e))}bindDataRow(e){return e.callee?(e.callee instanceof dd?e.callee.elementList:[e.callee]).flatMap(Bd).flatMap(e=>{let t=e.variables.pop(),n=e.variables.pop();return!t||!n?[]:[...e.variables.flatMap(e=>this.compiler.nodeReferee(e).getErrors()),...n?this.compiler.nodeReferee(n).getErrors():[],...this.compiler.nodeReferee(t).getErrors()]}):[]}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Nv=class{constructor(e,t,n){this.compiler=e,this.metadata=t,this.element=t.declaration,this.filepath=n}interpret(){let e=[],t=[],r=Pv(this.element,this.compiler,this.filepath);if(!r||r.columns.length===0)return new n(void 0,e);let i=[];for(let n of this.element.body.body){let a=Fv(n,r.columns,this.compiler);e.push(...a.getErrors()),t.push(...a.getWarnings());let o=a.getValue();o.row&&i.push(o.row)}let a=j(this.element);return new n({schemaName:r.schemaName,tableName:r.tableName,columns:r.columns.map(e=>e.name??``),values:i,token:a},e,t)}};function Pv(e,n,i){let a=e.name,o=e.parent;if(o instanceof F&&o.isKind(r.Table)){let e=n.nodeSymbol(o).getFiltered(t);if(!(e instanceof Ru))return;let r=e.mergedColumns(n),s=e.interpretedName(n,i),c=s.schema,l=s.name;return a?{schemaName:c,tableName:l,columns:a.elementList.flatMap(e=>r.find(t=>t.name===A(e))||[])}:{schemaName:c,tableName:l,columns:r}}let s=Cu(a);if(!s)return;let c=s.variables.map(e=>e.expression.variable?.value??``),l=c.at(-1)??``,u=c.length>1?c.slice(0,-1).join(`.`):void 0,d=n.parseFile(e.filepath).getValue().ast,f=n.nodeSymbol(d).getFiltered(t);if(!f)return;let p;if(u){let e=n.lookupMembers(f,M.Schema,u);e&&(p=n.lookupMembers(e,M.Table,l))}if(p||=n.lookupMembers(f,M.Table,l),!p)return;let m=p.originalSymbol;if(!(m instanceof Ru))return;let h=m.mergedColumns(n),ee=s.args.map(e=>h.find(t=>t.name===A(e))).filter(Boolean),te=m.interpretedName(n,i);return{schemaName:te.schema,tableName:te.name,columns:ee}}function Fv(e,t,r){let i=[],a=[],o={},s=e.callee instanceof dd?e.callee.elementList:[e.callee];if(s.length!==t.length)return i.push(new x(b.INVALID_RECORDS_FIELD,`Expected ${t.length} values but got ${s.length}`,e)),new n({row:null,columnNodes:{}},i,a);let c=[];for(let e=0;e<t.length;e++){let n=s[e],l=t[e];o[l.name??``]=n;let u=Lv(n,l,r);i.push(...u.getErrors()),a.push(...u.getWarnings());let d=u.getValue();c.push(d??{value:null,type:`expression`,token:j(n)})}return new n({row:c,columnNodes:o},i,a)}function Iv(e){return e instanceof ld&&e.value?.value||``}function Lv(e,t,r){let i=j(e),a=t.type(r),o=(a?.name??``).split(`(`)[0],s=!!a?.enumSymbol,c=t.increment(r),l=t.nullable(r)===!1,u=t.default(r),d=t.name??``,f=Of(o,s),p=Z_(e),m=p===null?Iv(e):p,h=p===null?`expression`:f;if(e instanceof ld)return new n({value:e.value?.value||``,type:`expression`,token:i},[],[]);if(V_(e)||H_(e)&&!wf(o)){let t=u&&u.value.toString().toLowerCase()!==`null`,r=Df(o);return l&&!t&&!c&&!r?new n({value:null,type:f,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`NULL not allowed for non-nullable column '${d}' without default and increment`,e)]):new n({value:null,type:f,token:i},[],[])}if(s){let a=t.type(r)?.enumSymbol,o=a?a.members(r).filter(e=>e.isKind(M.EnumField)).map(e=>e.name).filter(Boolean):[],s=k(e);return s===void 0&&(s=w(e)?e.expression.variable.value:void 0),o.includes(s)?new n({value:s,type:f,token:i},[],[]):new n({value:s,type:f,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`Invalid enum value for column '${d}'`,e)])}if(bf(o)||xf(o)||Df(o)){let t=W_(e);if(t===null)return new n({value:m,type:h,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`Invalid numeric value for column '${d}'`,e)]);if(bf(o)&&!Number.isInteger(t))return new n({value:Math.floor(t),type:f,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`Invalid integer value ${t} for column '${d}': expected integer, got decimal`,e)]);let r=xf(o)&&a?.args?.length?{precision:Number(a.args[0]),scale:a.args.length>=2?Number(a.args[1]):0}:void 0;if(xf(o)&&r){let{precision:a,scale:o}=r,s=t.toString().split(`.`),c=s[0].replace(/^-/,``),l=s[1]||``,u=c.length+l.length,p=l.length;if(u>a)return new n({value:t,type:f,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`Numeric value ${t} for column '${d}' exceeds precision: expected at most ${a} total digits, got ${u}`,e)]);if(p>o)return new n({value:t,type:f,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`Numeric value ${t} for column '${d}' exceeds scale: expected at most ${o} decimal digits, got ${p}`,e)])}return new n({value:t,type:f,token:i},[],[])}if(Cf(o)){let t=Y_(e);return t===null?new n({value:m,type:h,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`Invalid boolean value for column '${d}'`,e)]):new n({value:t,type:f,token:i},[],[])}if(Ef(o)){let t=tv(e);return t===null?new n({value:m,type:h,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`Invalid datetime value for column '${d}', expected valid datetime format (e.g., 'YYYY-MM-DD', 'HH:MM:SS', 'YYYY-MM-DD HH:MM:SS', 'MM/DD/YYYY', 'D MMM YYYY', or 'MMM D, YYYY')`,e)]):new n({value:t,type:f,token:i},[],[])}if(wf(o)){let t=Z_(e);if(t===null)return new n({value:m,type:h,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`Invalid string value for column '${d}'`,e)]);let r=a?.args?.length?Number(a.args[0]):void 0;if(r&&!Number.isNaN(r)){let a=r,o=new TextEncoder().encode(t).length;if(o>a)return new n({value:t,type:f,token:i},[],[new Il(b.INVALID_RECORDS_FIELD,`String value for column '${d}' exceeds maximum length: expected at most ${a} bytes (UTF-8), got ${o} bytes`,e)])}return new n({value:t,type:`string`,token:i},[],[])}return new n({value:m,type:h,token:i},[],[])}const Rv={nodeMetadata(t,i){if(!E(i,r.Records))return n.create(e);let a=i.parent;if(a&&E(a,r.Table))return n.create(new Ed(i));let o=i.name;return o instanceof V&&o.callee?n.create(new Ed(i)):n.create(e)},nodeReferee(i,a){if(!w(a))return n.create(e);let o=a.parentOfKind(F);if(!o?.isKind(r.Records))return n.create(e);let s=i.parseFile(a.filepath).getValue().ast,c=i.nodeSymbol(s).getFiltered(t);if(!c)return n.create(void 0);let l=a.parentOfKind(ud);if(l?.parentNode===o)return zv(i,o,a);let u=a.parentOfKind(V);return u?.parentNode===o&&l?.parentNode===u?Bv(i,u,a):u?.parentNode===o&&u.callee?.containsEq(a)?Vv(i,c,a):Uv(i,c,a)},bindNode(t,i){return E(i,r.Records)?n.create(void 0,new Mv(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof Ed?r.declaration instanceof F?new Nv(t,r,i).interpret():n.create(void 0):n.create(e)}};function zv(e,i,a){let o=i.parent;if(o instanceof F&&o.isKind(r.Table)){let n=e.nodeSymbol(o).getFiltered(t);if(n)return Hv(e,n,a)}return new n(void 0)}function Bv(e,r,i){if(r.callee){let n;if(w(r.callee))n=e.nodeReferee(r.callee).getFiltered(t);else{let i=yu(r.callee);if(i&&i.length>0){let r=i[i.length-1];n=e.nodeReferee(r).getFiltered(t)}}if(n)return Hv(e,n,i)}return new n(void 0)}function Vv(e,t,r){if(!w(r))return new n(void 0);let i=wu(r)??``;if(!T(r.parentNode)){let a=e.lookupMembers(t,[M.Table,M.Schema],i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Table '${i}' does not exist in Schema 'public'`,r)])}let a=Vd(e,r);if(!a){let a=e.lookupMembers(t,[M.Table,M.Schema],i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Table,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}return new n(void 0)}function Hv(e,t,r){if(!w(r))return new n(void 0);let i=wu(r)??``,a=e.lookupMembers(t,M.Column,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Column '${i}' does not exist in Table 'public.${t.name}'`,r)])}function Uv(e,t,r){if(!w(r))return new n(void 0);let i=wu(r)??``;if(!T(r.parentNode))return new n(void 0);let a=Vd(e,r);if(a){if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Enum,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(M.Enum)){let t=e.lookupMembers(a,M.EnumField,i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(T(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,M.Enum,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}var Wv=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof nd)&&!this.declarationNode.parent?.isKind(r.Project)?[]:this.bindBody(this.declarationNode.body)}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=v(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(Bd).flatMap(e=>{let t=e.tupleElements.length?e.tupleElements:e.variables.pop(),n=e.variables.pop();return!t||!n?[]:(Array.isArray(t)||(t=[t]),[...e.variables,n,...t].flatMap(e=>this.compiler.nodeReferee(e).getErrors()))}):[])}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Gv=class{constructor(e,t,n){this.compiler=e,this.filepath=n,this.metadata=t,this.declarationNode=t.declaration,this.ref={}}interpret(){this.ref.token=j(this.declarationNode);let e=[...this.interpretName(),...this.interpretBody()];return n.create(this.ref,e)}interpretName(){if(!(this.declarationNode instanceof F))return[];let e=[],t=O(this.declarationNode.name)??[];return this.ref.name=t.pop()||null,t.length>1&&e.push(new x(b.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name)),this.ref.schemaName=t.join(`.`)||null,e}interpretBody(){let e=this.metadata.op(this.compiler),t=this.metadata.leftColumns(this.compiler),n=this.metadata.leftTable(this.compiler),r=this.metadata.rightColumns(this.compiler),i=this.metadata.rightTable(this.compiler);if(Jc(t,r).every(([e,t])=>e?.originalSymbol===t?.originalSymbol))return[new x(b.SAME_ENDPOINT,`Two endpoints are the same`,this.declarationNode)];let a=Hd(e),o=n?.interpretedName(this.compiler,this.filepath),s=i?.interpretedName(this.compiler,this.filepath),c=j(this.metadata.leftToken()),l=j(this.metadata.rightToken());if(this.ref.endpoints=this.declarationNode instanceof F?[{schemaName:o?.schema??null,tableName:o?.name??``,fieldNames:t.map(e=>e.name??``),relation:a[0],token:c},{schemaName:s?.schema??null,tableName:s?.name??``,fieldNames:r.map(e=>e.name??``),relation:a[1],token:l}]:[{schemaName:s?.schema??null,tableName:s?.name??``,fieldNames:r.map(e=>e.name??``),relation:a[1],token:l},{schemaName:o?.schema??null,tableName:o?.name??``,fieldNames:t.map(e=>e.name??``),relation:a[0],token:c}],!(this.declarationNode instanceof F))return[];let u=vu(this.declarationNode)[0];if(u.args[0]){let e=S(u.args[0]).getValue(),t=e.delete?.at(0)?.value;this.ref.onDelete=t instanceof od?hu(t):A(t);let n=e.update?.at(0)?.value;this.ref.onUpdate=n instanceof od?hu(n):A(n),this.ref.color=e.color?.length?ku(e.color?.at(0)?.value):void 0,this.ref.inactive=e.inactive?.length?!0:void 0}return[]}};function Kv(e){let t=e.parent;for(;t;){if(t instanceof F&&t.isKind(r.Ref))return t.body?.containsEq(e)??!1;t=t.parent}return!1}const qv={nodeReferee(r,i){if(!w(i)&&!T(i)||!Kv(i)||i.parentOfKind(I))return n.create(e);let a=r.parseFile(i.filepath).getValue().ast,o=r.nodeSymbol(a).getValue();return o===t?n.create(void 0):Yv(r,o,i)},nodeMetadata(t,a){if(E(a,r.Ref)){let t=vu(a)[0];if(!(t instanceof R)||!t.callee)return n.create(e);let r=t.callee;return!(r instanceof sd)||!r.op?n.create(e):n.create(new Sd(a))}if(a instanceof I){if(!(a.name instanceof od)||hu(a.name)?.toLowerCase()!==i.Ref)return n.create(e);let t=a.parent;return t instanceof F&&t.isKind(r.TablePartial)?n.create(new Cd(a)):n.create(new Sd(a))}return n.create(e)},bindNode(t,i){return E(i,r.Ref)?n.create(void 0,new Wv(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof Sd?new Gv(t,r,i).interpret():n.create(e)}};function Jv(e,n){let r=e.symbolMembers(n).getFiltered(t);if(r)return r.find(e=>e instanceof Fu&&e.isPublicSchema())}function Yv(e,r,i){if(!w(i))return new n(void 0);let a=wu(i)??``;if(!T(i.parentNode)){let r=i.parentNode;if(r&&T(r.parentNode)&&r.parentNode.rightExpression===r){let o=r.parentNode.leftExpression,s=T(o)?o.rightExpression??o:o,c=e.nodeReferee(s).getFiltered(t);if(c?.isKind(M.Table)){let r=e.lookupMembers(c,M.Column,a);if(r)return n.create(r);let o=c.declaration?e.nodeFullname(c.declaration).getFiltered(t)?.join(`.`)??c.name:c.name;return new n(void 0,[new x(b.BINDING_ERROR,`Column '${a}' does not exist in Table '${o}'`,i)])}}return n.create(void 0)}let o=Vd(e,i);if(o){if(o.isKind(M.Schema)){let t=e.lookupMembers(o,[M.Table,M.Schema],a);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}if(o.isKind(M.Table)){let r=e.lookupMembers(o,M.Column,a);return r?n.create(r):new n(void 0,[new x(b.BINDING_ERROR,`Column '${a}' does not exist in Table '${o.declaration?e.nodeFullname(o.declaration).getFiltered(t)?.join(`.`)??o.name:o.name}'`,i)])}return new n(void 0)}let s=i.parentNode;if(s.leftExpression===i){if(T(s.parentNode)&&s.parentNode.leftExpression===s){let t=e.lookupMembers(r,M.Schema,a);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}let t=Jv(e,r);if(t){let r=e.lookupMembers(t,M.Table,a);if(r)return n.create(r)}let o=e.lookupMembers(r,M.Table,a);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}return new n(void 0)}const Xv={visibleName(e,n){let r=n instanceof N?n:n.useSpecifierDeclaration instanceof id?n.useSpecifierDeclaration:n.declaration;if(r instanceof id&&n instanceof Pu&&r.getSymbolKind()!==n.kind&&(r=n.declaration),r)return e.nodeAlias(r).mapFiltered(e=>[e],t,void 0).getFiltered(t)||e.nodeFullname(r).getFiltered(t)}},Zv={nodeSymbol(r,i){if(!ru(i)||!i.name)return n.create(e);let a=i.getSymbolKind();if(a===void 0||a===M.Schema)return n.create(e);let o=r.nodeReferee(i.name).getFiltered(t);return o&&!o.canBeImported?n.create(e):n.create(r.symbolFactory.create($u,{useSpecifierDeclaration:i,declaration:o?.declaration,usedSymbol:o,kind:a,name:Xv.visibleName(r,i)?.at(-1)},i.filepath),o===void 0?[new x(b.BINDING_ERROR,`Failed to resolve the import of ${a} '${(O(i.name)||[]).map(_y).join(`.`)}'`,i)]:[])},symbolMembers(r,i){if(!(i instanceof $u))return n.create(e);let a=r.symbolMembers(i.originalSymbol).getFiltered(t);return n.create(a??[])},nodeReferee(r,i){if(!w(i)&&!tu(i))return n.create(e);let a=i.parentOfKind(id);if(!a)return n.create(e);let o=a.name===i||T(a.name)&&a.name.rightExpression===i?a.getSymbolKind():M.Schema;if(o===void 0)return n.create(void 0);let s=O(i.parentOfKind(sd)),c=A(i)??s?.at(-1);if(c===void 0)return n.create(void 0);let l=i.parentOfKind(rd);if(l?.importPath?.value===void 0)return n.create(void 0);let u=Al(i.filepath,l.importPath.value);if(!u)return n.create(void 0,[new x(b.BINDING_ERROR,`Import path must be relative, got '${l.importPath.value}'`,i)]);if(!r.layout.exists(u))return n.create(void 0,[new x(b.NONEXISTENT_MODULE,`${o} '${s?.join(`.`)??c}' does not exist in file ${u.toString()}. Does the file exist?`,i)]);let d=i.parentOfKind(sd)?.leftExpression;if(d&&d!==i){let e=r.nodeReferee(d).getFiltered(t);if(!e)return n.create(void 0);let a=r.lookupMembers(e,o,c);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Could not find ${o} '${c}'`,i)])}let f=Qv(r,u,c,o);return f?n.create(f):n.create(void 0,[new x(b.BINDING_ERROR,`${o} '${c}' does not exist in file ${u.toString()}`,i)])},bindNode(t,r){if(nu(r)){let e=[];if(r.importPath?.value){let n=Al(r.filepath,r.importPath.value);n?t.layout.exists(n)||e.push(new x(b.NONEXISTENT_MODULE,`Failed to resolve the non-existent file '${r.importPath.value}'`,r.importPath)):e.push(new x(b.BINDING_ERROR,`Import path must be relative, got '${r.importPath.value}'`,r.importPath))}if(r.specifiers){let n=t.bindNode(r.specifiers);e.push(...n.getErrors())}return new n(void 0,e)}return r instanceof ad?new n(void 0,r.specifiers.flatMap(e=>t.bindNode(e).getErrors())):ru(r)?r.name?new n(void 0,t.nodeReferee(r.name).getErrors()):new n(void 0):n.create(e)},interpretSymbol(r,i,a){if(!(i instanceof $u))return n.create(e);if(!i.usedSymbol)return n.create(void 0);let o=r.interpretSymbol(i.usedSymbol,a);if(o.hasValue(t))return n.create(void 0);let s=o.getValue();if(!s||Array.isArray(s))return o;let c=i.name;return c&&`name`in s?n.create({...s,name:c}):n.create(s)}};function Qv(e,n,r,i,a=new Set){if(!n||a.has(n.intern()))return;a.add(n.intern());let o=e.usableMembers(n).getFiltered(t);if(!o)return;let s=o.nonSchemaMembers.find(e=>e.name===r&&e.isKind(i));if(s)return s;let c=o.schemaMembers.find(e=>e.name===r);if(c?.isKind(M.Schema))return c;for(let t of o.reuses.selective)if(O(t.alias??t.name)?.at(-1)===r){let o=t.parentOfKind(rd);if(o?.importPath?.value){let s=Qv(e,Al(n,o.importPath.value),O(t.name)?.at(-1)??r,i,a);if(s)return s}}for(let{importPath:t}of o.reuses.wildcard){let n=Qv(e,t,r,i,a);if(n)return n}}function $v(e){if(e instanceof kl){let{ast:n}=this.parseFile(e).getValue(),r=this.nodeSymbol(n).getFiltered(t);return this.usableMembers(r)}let r=e.filepath,i=ty(this,r),{nonSchemaMembers:a,schemaMembers:o}=e instanceof Zu?ny(this,e,i):ry(this,e,i);return new n({nonSchemaMembers:a,schemaMembers:o,reuses:{selective:i.selectiveReuses,wildcard:i.wildcardReuses},uses:{selective:i.selectiveUses,wildcard:i.wildcardUses}},i.parseResult.getErrors(),i.parseResult.getWarnings())}function ey(e,n,r){let i=n.qualifiedName,a;if(a=r instanceof id?Xv.visibleName(e,r):e.nodeFullname(r).getFiltered(t),!a)return{kind:`none`};let o=r instanceof id&&r.getSymbolKind()===M.Schema?a:a.length<=1?[Pl]:a.slice(0,-1);return o.length<i.length||!i.every((e,t)=>e===o[t])?{kind:`none`}:o.length===i.length?{kind:`direct`}:{kind:`child`,schemaName:o[i.length]}}function ty(e,t){let n=e.parseFile(t),{ast:r}=n.getValue(),i=[],a=[],o=[],s=[];for(let e of r.body){if(!(e instanceof rd)||!e.specifiers||!e.importPath)continue;let n=Al(t,e.importPath.value);n&&(e.isReuse?e.specifiers instanceof md?i.push({importPath:n,node:e.specifiers}):a.push(...e.specifiers.specifiers):e.specifiers instanceof md?o.push({importPath:n,node:e.specifiers}):s.push(...e.specifiers.specifiers))}return{ast:r,parseResult:n,selectiveReuses:a,wildcardReuses:i,selectiveUses:s,wildcardUses:o}}function ny(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=n.filepath,c=new Map([[Pl,e.symbolFactory.create(Fu,{name:Pl},s)]]);for(let n of i.declarations){let r=e.nodeFullname(n).getFiltered(t)||[],i=r.length<=1?Pl:r[0];c.has(i)||c.set(i,e.symbolFactory.create(Fu,{name:i},s))}iy(e,[...a,...o],c,s);for(let t of e.reachableFiles(s))for(let n of oy(e,t))c.has(n)||c.set(n,e.symbolFactory.create(Fu,{name:n},s));let l=[...c.values()],u=[],d=l.find(e=>e.isPublicSchema());if(d){let n=e.usableMembers(d).getFiltered(t);n&&u.push(...n.nonSchemaMembers)}return{nonSchemaMembers:u,schemaMembers:l}}function ry(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=[],c=new Map;for(let r of i.body){if(!(r instanceof F))continue;let i=ey(e,n,r),a=e.nodeAlias(r).getFiltered(t),o=e.nodeSymbol(r).getFiltered(t);if(a!==void 0&&n.isPublicSchema()&&o&&s.push(e.symbolFactory.create(Qu,{kind:o.kind,declaration:r,aliasedSymbol:o,name:a},n.filepath)),i.kind!==`none`)if(i.kind===`direct`){let n=e.nodeSymbol(r).getFiltered(t);if(!n)continue;s.push(n)}else c.has(i.schemaName)||c.set(i.schemaName,e.symbolFactory.create(Fu,{name:i.schemaName,parent:n},n.filepath))}ay(e,[...a,...o],n,c);let l=n.qualifiedName;for(let t of e.reachableFiles(n.filepath))for(let r of sy(e,t,l))c.has(r)||c.set(r,e.symbolFactory.create(Fu,{name:r,parent:n},n.filepath));return{nonSchemaMembers:s,schemaMembers:[...c.values()]}}function iy(e,t,n,r){for(let i of t){if(i.getSymbolKind()!==M.Schema)continue;let t=Xv.visibleName(e,i)?.at(0);t!==void 0&&!n.has(t)&&n.set(t,e.symbolFactory.create(Fu,{name:t},r))}}function ay(e,t,n,r){let i=n.qualifiedName;for(let a of t){if(a.getSymbolKind()!==M.Schema)continue;let t=Xv.visibleName(e,a);if(!t||t.length<=i.length||!i.every((e,n)=>e===t[n]))continue;let o=t[i.length];o&&!r.has(o)&&r.set(o,e.symbolFactory.create(Fu,{name:o,parent:n},n.filepath))}}function oy(e,n){let{ast:r}=e.parseFile(n).getValue(),i=[];for(let n of r.declarations){let r=e.nodeFullname(n).getFiltered(t)||[],a=r.length<=1?Pl:r[0];i.push(a)}let a=ty(e,n);for(let t of[...a.selectiveUses,...a.selectiveReuses]){if(t.getSymbolKind()!==M.Schema)continue;let n=Xv.visibleName(e,t)?.at(0);n!==void 0&&i.push(n)}return i}function sy(e,n,r){let{ast:i}=e.parseFile(n).getValue(),a=[];for(let n of i.declarations){let i=e.nodeFullname(n).getFiltered(t)||[],o=i.length<=1?[Pl]:i.slice(0,-1);o.length>r.length&&r.every((e,t)=>e===o[t])&&a.push(o[r.length])}let o=ty(e,n);for(let t of[...o.selectiveUses,...o.selectiveReuses]){if(t.getSymbolKind()!==M.Schema)continue;let n=Xv.visibleName(e,t);!n||n.length<=r.length||r.every((e,t)=>e===n[t])&&a.push(n[r.length])}return a}var cy=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=v(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return(e=>e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];if(_(n)instanceof B){let e=S(_(n)).getValue();t.push(...e.ref?.flatMap(e=>e.value?this.bindInlineRef(e.value):[])||[]),t.push(...e.default?.flatMap(e=>e.value?this.tryToBindEnumFieldRef(e.value):[])||[]),n.pop()}return n[1]&&this.tryToBindColumnType(n[1]),t}))(e.filter(e=>!Gl(e.callee)))}tryToBindColumnType(e){let t=bu(e);if(!t)return;let n=t.variables.pop();n&&this.compiler.nodeReferee(n).getErrors()}tryToBindEnumFieldRef(e){if(C(e))return[];if(w(e)){let t=e.expression.variable?.value?.toLowerCase();if(t&&jl.includes(t))return[]}let t=bu(e);if(!t){if(T(e)){let t=e,n=[];return t.leftExpression&&n.push(...this.compiler.nodeReferee(t.leftExpression).getErrors()),t.rightExpression&&n.push(...this.compiler.nodeReferee(t.rightExpression).getErrors()),n}return[]}let n=t.variables.pop(),r=t.variables.pop();if(!n||!r)return[];let i=[],a=t.variables;for(let e of a)i.push(...this.compiler.nodeReferee(e).getErrors());return i.push(...this.compiler.nodeReferee(r).getErrors()),i.push(...this.compiler.nodeReferee(n).getErrors()),i}bindInlineRef(e){return Bd(e).flatMap(e=>{let t=e.variables.pop(),n=e.variables.pop();if(!t)return[];let r=e.variables;if(n){let e=[];for(let t of r)e.push(...this.compiler.nodeReferee(t).getErrors());return e.push(...this.compiler.nodeReferee(n).getErrors()),e.push(...this.compiler.nodeReferee(t).getErrors()),e}return this.compiler.nodeReferee(t).getErrors()})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},ly=class{constructor(e,t,n,r){this.compiler=e,this.declarationNode=t,this.symbol=n,this.filepath=r,this.table={name:void 0,schemaName:void 0,alias:null,fields:[],token:void 0,indexes:[],partials:[],checks:[]},this.pkColumns=[]}interpret(){this.table.token=this.symbol?.token??j(this.declarationNode);let e=[];if(this.symbol){let{name:e,schema:t}=this.symbol.interpretedName(this.compiler,this.filepath);this.table.name=e,this.table.schemaName=t}else e.push(...this.interpretName(this.declarationNode.name));let t=[...e,...this.interpretAlias(this.declarationNode.alias),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.table.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1},filepath:this.declarationNode.filepath},pk:!0}),this.pkColumns.forEach(e=>{e.pk=!1})),n.create(this.table,t)}interpretName(e){let{name:t,schemaName:n}=Ou(e);return n.length>1?(this.table.name=t,this.table.schemaName=n.join(`.`),[new x(b.UNSUPPORTED,`Nested schema is not supported`,e)]):(this.table.name=t,this.table.schemaName=n.length?n[0]:null,[])}interpretAlias(e){if(!e)return[];let t=wu(e);return t&&(this.table.alias=t),[]}interpretSettingList(e){let t=S(e).getValue();this.table.headerColor=t[i.HeaderColor]?.length?ku(t[i.HeaderColor]?.at(0)?.value):void 0;let[n]=t[i.Note]||[];return this.table.note=n&&{value:Du(k(n?.value)),token:j(n)},[]}interpretBody(e){let[t,n]=v(e.body,e=>e instanceof R);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.table.note={value:Du(k(e.body instanceof z?e.body.body[0].callee:e.body.callee)),token:j(e)},[];case r.Indexes:return this.interpretIndexes(e);case r.Checks:return this.interpretChecks(e);case r.Records:return[];default:return[]}})}interpretInjection(e,n){let r=[],i={order:n,token:j(e)};i.name=A(e.expression)||``;let a=e.expression?this.compiler.nodeReferee(e.expression).getFiltered(t):void 0,o=this.compiler.parseFile(this.filepath).getValue().ast,s=this.compiler.nodeSymbol(o).getFiltered(t);if(a&&!s.inNestedSchema(this.compiler,a)){let n=this.compiler.nodeSymbol(this.declarationNode).getFiltered(t),o=n?(this.compiler.symbolUses(n).getFiltered(t)??[]).find(e=>e.filepath.equals(this.filepath)):void 0;r.push(new x(b.UNSUPPORTED,`TablePartial ${i.name} from '${a.filepath}' should be imported. Currently, importing a table that uses a table partial requires that table partial to also be in scope.`,o?.useSpecifierDeclaration??e))}return this.table.partials.push(i),r}interpretFields(e){let n=this.symbol??this.compiler.nodeSymbol(this.declarationNode).getFiltered(t),r=(n?this.compiler.symbolMembers(n).getFiltered(t)??[]:[]).filter(e=>e.isKind(M.Column)).length?[]:[new x(b.EMPTY_TABLE,`A Table must have at least one column`,this.declarationNode)],i=e.flatMap((e,t)=>Gl(e.callee)?this.interpretInjection(e.callee,t):this.interpretColumn(e));return[...r,...i]}interpretColumn(e){let n=[],r={},a=this.compiler.nodeSymbol(e).getFiltered(t);r.name=wu(e.callee),r.token=j(e);let o=ju(this.compiler,e.args[0]);r.type=o.getValue(),n.push(...o.getErrors()),r.pk=a?.pk(this.compiler)||!1,r.unique=a?.unique(this.compiler)||!1,r.increment=a?.increment(this.compiler)||void 0;let s=a?.nullable(this.compiler);r.not_null=s===void 0?void 0:!s,r.dbdefault=a?.default(this.compiler),r.note=a?.note(this.compiler);let c=this.compiler.nodeSettings(e).getFiltered(t)??{},l=this.compiler.parseFile(this.filepath).getValue().ast,u=this.compiler.nodeSymbol(l).getFiltered(t);return r.inline_refs=(c[i.Ref]||[]).flatMap(e=>{let r=this.compiler.nodeMetadata(e).getFiltered(t);if(!r)return[];let i=r.owners(this.compiler);if(u&&i.length>0&&!i.some(e=>e===u))return[];let a=this.compiler.interpretMetadata(r,this.filepath);if(a.hasValue(t))return[];n.push(...a.getErrors());let o=a.getValue();if(!o?.endpoints?.[0])return[];let s=o.endpoints[0],c=r.op(this.compiler);return c?{schemaName:s.schemaName,tableName:s.tableName,fieldNames:s.fieldNames,relation:c,token:s.token}:[]}),r.checks=(c[i.Check]||[]).map(e=>({token:j(e),expression:e.value.value.value})),this.table.fields.push(r),r.pk&&this.pkColumns.push(r),n}interpretIndexes(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.table.indexes.push(...i):i&&this.table.indexes.push(i),r.getErrors()}interpretChecks(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.table.checks.push(...i):i&&this.table.checks.push(i),r.getErrors()}};const uy={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`Table '${e}' already exists in schema '${t}'`,n)},getColumnDuplicateError(e,t){return new x(b.DUPLICATE_COLUMN_NAME,`Duplicate column '${e}'`,t)},getPartialInjectionDuplicateError(e,t){return new x(b.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${e}'`,t)}},dy={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return E(a,r.Table)?new n(i.symbolFactory.create(Ru,{declaration:a,name:o},a.filepath)):D(a,r.Table)?Gl(a.callee)?new n(i.symbolFactory.create(Wu,{declaration:a,name:o},a.filepath)):new n(i.symbolFactory.create(zu,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(M.Table))return n.create(e);let a=i.declaration;if(!(a instanceof F))return new n([]);let o=vu(a),s=[],c=[];for(let e of o){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(s.push(i),c.push(...n.getErrors()))}let l=new Map;for(let e of s){if(!e.isKind(M.Column,M.PartialInjection)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof F&&e.declaration.name?e.declaration.name:e.declaration,r=l.get(t);r?e.isKind(M.Column)?(c.push(uy.getColumnDuplicateError(e.name,r)),c.push(uy.getColumnDuplicateError(e.name,n))):(c.push(uy.getPartialInjectionDuplicateError(e.name,r)),c.push(uy.getPartialInjectionDuplicateError(e.name,n))):l.set(t,n)}}let u=[];for(let e=0;e<s.length;e++){let n=s[e];if(!(n.declaration instanceof R)||!Gl(n.declaration.callee))continue;let i=n.declaration.callee.expression,o=A(i);if(i===void 0||o===void 0)continue;let l=r.nodeReferee(i).getFiltered(t);if(!l){c.push(new x(b.BINDING_ERROR,`TablePartial '${o}' does not exist in Schema 'public'`,i||a));continue}let d=r.symbolMembers(l).getFiltered(t);if(d){let t=d.flatMap(e=>{if(!e.declaration)return[];let t=e.name;return t===void 0?e:r.symbolFactory.create(ed,{kind:M.Column,injectionDeclaration:n.declaration,declaration:e.declaration,name:t},a.filepath)});u.push({index:e,partialMembers:t})}}for(let e=u.length-1;e>=0;e--){let{index:t,partialMembers:n}=u[e];s.splice(t,0,...n)}let d=new Set(s.filter(e=>e.isKind(M.Column)&&!(e instanceof ed)).map(e=>e.name));return new n(Uc([...s.filter(e=>!(e instanceof ed&&d.has(e.name)))].reverse(),e=>e.isKind(M.Column)?e.name:e).reverse(),c)},nodeReferee(a,o){if(!au(o,r.Table))return n.create(e);let s=a.parseFile(o.filepath).getValue().ast,c=a.nodeSymbol(s).getValue();return c===t?n.create(void 0):w(o)&&o.parentNode instanceof L&&o.parentNode.op?.value===`~`?fy(a,c,o):ou(o,1)?py(a,c,o):cu(o,i.Ref)?my(a,c,o):ou(o,0)?n.create(e):hy(a,c,o)},bindNode(i,a){if(!E(a,r.Table))return n.create(e);let o=new cy(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,r,i){return r instanceof Ru?r.declaration instanceof F?new ly(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function fy(e,r,i){let a=A(i)??``,o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof Fu&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,M.TablePartial,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,M.TablePartial,a);return s?n.create(s):new n(void 0,[new x(b.BINDING_ERROR,`TablePartial '${a}' does not exist in Schema 'public'`,i)])}function py(e,t,r){if(!w(r))return new n(void 0);let i=wu(r)??``;if(!T(r.parentNode))return n.create(e.lookupMembers(t,M.Enum,i));let a=Vd(e,r);if(a){if(a.isKind(M.Schema)){let t=pu(r),o=e.lookupMembers(a,t?M.Enum:M.Schema,i);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,t?`Enum '${i}' does not exist in Schema 'public'`:`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}if(r.parentNode.leftExpression===r){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function my(e,i,a){if(!w(a))return new n(void 0);let o=wu(a)??``;if(!T(a.parentNode)){let s=a.parent,c=s instanceof F&&s.isKind(r.Table)?e.nodeSymbol(s).getFiltered(t):void 0;if(c){let t=e.lookupMembers(c,M.Column,o);if(t)return n.create(t)}let l=e.lookupMembers(i,M.Column,o);return l?n.create(l):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${c?.name??``}'`,a)])}let s=Vd(e,a);if(s){if(s.isKind(M.Schema)){let t=e.lookupMembers(s,[M.Table,M.Schema],o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(M.Table)){let t=e.lookupMembers(s,M.Column,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${s.name}'`,a)])}return new n(void 0)}let c=a.parentNode;if(c.leftExpression===a){if(T(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,M.Schema,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,M.Table,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function hy(e,t,r){if(!w(r))return new n(void 0);let i=wu(r)??``;if(!T(r.parentNode))return jl.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,M.Enum,i));let a=Vd(e,r);if(a){if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Enum,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(M.Enum)){let t=e.lookupMembers(a,M.EnumField,i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(T(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,M.Enum,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function gy(e){return e?e.split(``).every(e=>Ll(e)||Rl(e))&&!Rl(e[0]):!1}function _y(e){return gy(e)?e:`"${yy(e)}"`}function vy(e){let t=``,n=0,r={n:`
5
- `,t:` `,r:`\r`,b:`\b`,f:`\f`,v:`\v`,0:`\0`,"\\":`\\`,'"':`"`,"'":`'`,"`":"`"};for(;n<e.length;)if(e[n]===`\\`&&n+1<e.length){let i=e[n+1];if(i===`u`&&n+5<e.length){let r=e.slice(n+2,n+6);if(/^[0-9a-fA-F]{4}$/.test(r)){t+=String.fromCharCode(parseInt(r,16)),n+=6;continue}}i in r?(t+=r[i],n+=2):(t+=i,n+=2)}else t+=e[n],n++;return t}function yy(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n];switch(r){case`\\`:t+=`\\\\`;break;case`"`:t+=`\\"`;break;case`'`:t+=`\\'`;break;case`
6
- `:t+=`\\n`;break;case` `:t+=`\\t`;break;case`\r`:t+=`\\r`;break;case`\b`:t+=`\\b`;break;case`\f`:t+=`\\f`;break;case`\v`:t+=`\\v`;break;case`\0`:t+=`\\0`;break;default:t+=r}}return t}function by(e){if(e==null)return`null`;if(typeof e==`boolean`)return e?`true`:`false`;if(typeof e==`number`)return String(e);if(typeof e==`string`)return`'${yy(e)}'`;let{value:t,type:n}=e;if(t==null||Cf(n)&&typeof t==`string`&&t.toLowerCase()===`null`)return`null`;if(n===`expression`)return typeof t==`string`&&t.toLowerCase().trim()===`null`?`null`:`\`${t}\``;if(Cf(n)){let e=Y_(t);return e===null?`\`${t}\``:e?`true`:`false`}if(Sf(n)){let e=G_(t);return e===null?`\`${t}\``:String(e)}if(Ef(n)){let e=tv(t);return e===null?`\`${t}\``:`'${yy(e)}'`}let r=Z_(t);return r===null?`\`${t}\``:`'${yy(r)}'`}function xy(e){return(e.match(/"(?:[^"\\]|\\.)*"|[^."]+/g)||[]).map(e=>e.startsWith(`"`)&&e.endsWith(`"`)?vy(e.slice(1,-1)):e.trim()).filter(e=>e.length>0)}function Sy(e,t){let n=new Set,r=[];for(let i of t)for(let t of e.reachableFiles(i))n.has(t.intern())||(n.add(t.intern()),r.push(t));return r}function Cy(e){let r=[],i=[],a=[];e.bindProject();for(let n of e.parseProject().values()){i.push(...n.getErrors()),a.push(...n.getWarnings());let o=e.nodeSymbol(n.getValue().ast).getFiltered(t);if(!o)continue;let s=e.symbolMembers(o);i.push(...s.getErrors()),a.push(...s.getWarnings());for(let n of s.getFiltered(t)??[])if(r.push(n),n instanceof Fu&&n.isKind(M.Schema)){let o=e.symbolMembers(n);i.push(...o.getErrors()),a.push(...o.getWarnings()),r.push(...o.getFiltered(t)??[])}}return new n(r,i,a)}var wy=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=v(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(Bd).flatMap(e=>{let n=e.variables.pop();if(!n)return[];let r=this.compiler.nodeReferee(n),i=r.getFiltered(t);return i instanceof $u?[...r.getErrors(),new x(b.BINDING_ERROR,`TableGroup cannot reference imported table '${i.name}'`,n)]:r.getErrors()}):[])}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Ty=class{constructor(e,t,n){this.compiler=e,this.symbol=t,this.declarationNode=t.declaration,this.filepath=n,this.tableGroup={tables:[]}}interpret(){let e=[];return this.tableGroup.token=j(this.declarationNode),e.push(...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)),n.create(this.tableGroup,e)}interpretName(e){let t=[],{name:n,schemaName:r}=Ou(e);return r.length>=2&&(this.tableGroup.name=n,this.tableGroup.schemaName=r.join(`.`),t.push(new x(b.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name))),this.tableGroup.name=n,this.tableGroup.schemaName=r[0]||null,t}interpretBody(e){let[t,n]=v(e.body,e=>e instanceof R);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:this.tableGroup.note={value:Du(k(e.body instanceof z?e.body.body[0].callee:e.body.callee)),token:j(e)};break;default:break}return[]})}interpretFields(e){let n=[];return this.tableGroup.tables=e.map(e=>{let r=e.callee?this.compiler.nodeReferee(e.callee).getFiltered(t):void 0;if(r?.isKind(M.Table)){let{name:e,schema:t}=r.interpretedName(this.compiler,this.filepath);return{name:e,schemaName:t}}let i=O(e.callee);return i.length>2&&n.push(new x(b.UNSUPPORTED,`Nested schema is not supported`,e)),{name:i.pop(),schemaName:i.join(`.`)||null}}),n}interpretSettingList(e){let t=S(e).getValue();this.tableGroup.color=t.color?.length?ku(t.color?.at(0)?.value):void 0;let[n]=t.note||[];return this.tableGroup.note=n&&{value:Du(k(n?.value)),token:j(n)},[]}};const Ey={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`TableGroup '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new x(b.DUPLICATE_NAME,`Duplicate TableGroupField '${e}'`,t)}},Dy={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t),s=o?.at(-1);return E(a,r.TableGroup)?new n(i.symbolFactory.create(Bu,{declaration:a,name:s},a.filepath)):D(a,r.TableGroup)?new n(i.symbolFactory.create(Vu,{declaration:a,name:o?.map(_y).join(`.`)},a.filepath)):n.create(e)},symbolMembers(r,i){if(i.isKind(M.TableGroup)){let e=i.declaration;if(!(e instanceof F))return new n([]);let a=vu(e),o=[],s=[];for(let e of a){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(o.push(i),s.push(...n.getErrors()))}let c=new Map;for(let e of o){if(!e.isKind(M.TableGroupField)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof F&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(Ey.getFieldDuplicateError(e.name,r)),s.push(Ey.getFieldDuplicateError(e.name,n))):c.set(t,n)}}return new n(o,s)}return i.isKind(M.TableGroupField)?new n([]):n.create(e)},nodeReferee(i,a){if(!w(a)||!au(a,r.TableGroup)||a.parent&&su(a))return n.create(e);let o=i.parseFile(a.filepath).getValue().ast,s=i.nodeSymbol(o).getValue();return s===t?n.create(void 0):Oy(i,s,a)},bindNode(i,a){if(!E(a,r.TableGroup))return n.create(e);let o=new wy(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,i,a){let o=i.declaration;return!E(o,r.TableGroup)||!(i instanceof Bu)?n.create(e):zd(t,o)?new Ty(t,i,a).interpret():n.create(void 0)}};function Oy(e,r,i){let a=wu(i)??``;if(!T(i.parentNode)){let o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof Fu&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,M.Table,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,M.Table,a);return s?n.create(s):new n(void 0,[new x(b.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}let o=Vd(e,i);if(o){if(o.isKind(M.Schema)){let t=e.lookupMembers(o,[M.Table,M.Schema],a);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}return new n(void 0)}let s=e.lookupMembers(r,M.Schema,a);return s?n.create(s):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}var ky=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=v(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];if(_(n)instanceof B){let e=S(_(n)).getValue();t.push(...e.ref?.flatMap(e=>e.value?this.bindInlineRef(e.value):[])||[]),n.pop()}return n[1]&&this.tryToBindColumnType(n[1]),t})}tryToBindColumnType(e){let t=bu(e);if(!t)return[];let n=t.variables.pop();return n?this.compiler.nodeReferee(n).getErrors():[]}bindInlineRef(e){return Bd(e).flatMap(e=>{let t=e.variables.pop(),n=e.variables.pop();if(!t)return[];if(n){let r=[],i=e.variables;for(let e of i)r.push(...this.compiler.nodeReferee(e).getErrors());let a=this.compiler.nodeReferee(n);return r.push(...a.getErrors()),a.getValue()&&r.push(...this.compiler.nodeReferee(t).getErrors()),r}return this.compiler.nodeReferee(t).getErrors()})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Ay=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.symbol=t,this.filepath=n,this.tablePartial={name:void 0,fields:[],token:void 0,indexes:[],checks:[]},this.pkColumns=[]}interpret(){this.tablePartial.token=this.symbol?.token??j(this.declarationNode),this.symbol?this.tablePartial.name=this.symbol.interpretedName(this.compiler,this.filepath).name:this.interpretName(this.declarationNode.name);let e=[...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.tablePartial.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),pk:!0,token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1},filepath:this.declarationNode.filepath}}),this.pkColumns.forEach(e=>{e.pk=!1})),new n(this.tablePartial,e)}interpretName(e){let{name:t}=Ou(e);return this.tablePartial.name=t,[]}interpretSettingList(e){let t=S(e).getValue(),n=hc(t[i.HeaderColor]);this.tablePartial.headerColor=n?ku(n.value):void 0;let[r]=t[i.Note]||[];return this.tablePartial.note=r&&{value:Du(k(r?.value)),token:j(r)},[]}interpretBody(e){let[t,n]=v(e.body,e=>e instanceof R);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.tablePartial.note={value:Du(k(e.body instanceof z?e.body.body[0].callee:e.body.callee)),token:j(e)},[];case r.Indexes:return this.interpretIndexes(e);case r.Checks:return this.interpretChecks(e);default:return[]}})}interpretFields(e){return e.flatMap(e=>this.interpretColumn(e))}interpretColumn(e){let n=[],r={},a=this.compiler.nodeSymbol(e).getFiltered(t);r.name=wu(e.callee)??``,r.token=j(e);let o=ju(this.compiler,e.args[0]);r.type=o.getValue(),n.push(...o.getErrors()),r.pk=a?.pk(this.compiler)||void 0,r.unique=a?.unique(this.compiler)||void 0,r.increment=a?.increment(this.compiler)||void 0;let s=a?.nullable(this.compiler);r.not_null=s===void 0?void 0:!s,r.dbdefault=a?.default(this.compiler),r.note=a?.note(this.compiler);let c=this.compiler.nodeSettings(e).getFiltered(t)??{},l=this.compiler.parseFile(this.filepath).getValue().ast,u=this.compiler.nodeSymbol(l).getFiltered(t);return r.inline_refs=(c[i.Ref]||[]).flatMap(e=>{let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!(n instanceof Cd))return[];let r=n.owners(this.compiler);if(u&&r.length>0&&!r.some(e=>e===u))return[];let i=n.op(this.compiler);if(!i)return[];let a=n.rightTable(this.compiler),o=n.rightColumns(this.compiler);if(!a||o.length===0)return[];let s=a.interpretedName(this.compiler,this.filepath);return{schemaName:s.schema,tableName:s.name,fieldNames:o.map(e=>e.name??``),relation:i,token:j(n.rightToken())}}),r.checks=(c[i.Check]||[]).map(e=>({token:j(e),expression:e.value.value.value})),this.tablePartial.fields?.push(r),r.pk&&this.pkColumns.push(r),n}interpretIndexes(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.tablePartial.indexes?.push(...i):i&&this.tablePartial.indexes?.push(i),r.getErrors()}interpretChecks(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.tablePartial.checks?.push(...i):i&&this.tablePartial.checks?.push(i),r.getErrors()}};const jy={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`TablePartial '${e}' already exists in schema '${t}'`,n)}},My={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return E(a,r.TablePartial)?new n(i.symbolFactory.create(Uu,{declaration:a,name:o},a.filepath)):D(a,r.TablePartial)?new n(i.symbolFactory.create(zu,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(i,a){if(a.isKind(M.TablePartial)){let e=a.declaration;if(!(e instanceof F))return new n([]);let r=vu(e),o=[],s=[];for(let e of r){let n=i.nodeSymbol(e),r=n.getFiltered(t);r&&(o.push(r),s.push(...n.getErrors()))}let c=new Map;for(let e of o){if(!e.isKind(M.Column)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration instanceof F&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(uy.getColumnDuplicateError(t,r)),s.push(uy.getColumnDuplicateError(t,n))):c.set(t,n)}}return new n(o,s)}return a.isKind(M.Column)&&E(a.declaration?.parent,r.TablePartial)?new n([]):n.create(e)},nodeReferee(a,o){if(!w(o)&&!T(o)||!au(o,r.TablePartial))return n.create(e);let s=a.parseFile(o.filepath).getValue().ast,c=a.nodeSymbol(s).getValue();return c===t?n.create(void 0):ou(o,1)?Ny(a,c,o):cu(o,i.Ref)?Py(a,c,o):Fy(a,c,o)},bindNode(i,a){if(!E(a,r.TablePartial))return n.create(e);let o=new ky(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,r,i){return r instanceof Uu?r.declaration instanceof F?new Ay(t,r,i).interpret():n.create(void 0):n.create(e)}};function Ny(e,t,r){if(!w(r))return new n(void 0);let i=wu(r)??``;if(!T(r.parentNode))return n.create(e.lookupMembers(t,M.Enum,i));let a=Vd(e,r);if(a){if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Enum,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}return new n(void 0)}if(r.parentNode.leftExpression===r){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function Py(e,i,a){if(!w(a))return new n(void 0);let o=wu(a)??``;if(!T(a.parentNode)){let s=a.parent;if(s instanceof F&&s.isKind(r.TablePartial)){let r=e.nodeSymbol(s).getFiltered(t);if(r){let t=e.lookupMembers(r,M.Column,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist in TablePartial '${r.name}'`,a)])}}let c=e.lookupMembers(i,M.Column,o);return c?n.create(c):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist`,a)])}let s=Vd(e,a);if(s){if(s.isKind(M.Schema)){let t=e.lookupMembers(s,[M.Table,M.Schema],o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(M.Table)){let t=e.lookupMembers(s,M.Column,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${s.name}'`,a)])}return new n(void 0)}let c=a.parentNode;if(c.leftExpression===a){if(T(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,M.Schema,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,M.Table,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function Fy(e,t,r){if(!w(r))return new n(void 0);let i=wu(r)??``;if(!T(r.parentNode))return jl.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,M.Enum,i));let a=Vd(e,r);if(a){if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Enum,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(M.Enum)){let t=e.lookupMembers(a,M.EnumField,i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(T(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,M.Enum,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}const Iy={symbolMembers(r,i){if(!i.isKind(M.Schema)||!(i instanceof Fu))return n.create(e);let a=i.qualifiedName,o=r.usableMembers(i).getFiltered(t);if(!o)return n.create([]);let s=[...o.nonSchemaMembers],c=new Map(o.schemaMembers.map(e=>[e.name,e])),l=[];for(let e of o.reuses.selective){let n=Ry(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...zy(r,i,e))}for(let{importPath:e,node:t}of o.reuses.wildcard)s.push(...Vy(r,i,e,t,c));for(let e of o.uses.selective){let n=Ry(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...zy(r,i,e))}for(let{importPath:e,node:t}of o.uses.wildcard)s.push(...Vy(r,i,e,t,c));s.push(...c.values());let u=[...s];{let e=s.filter(e=>e.isKind(M.TableGroup));if(!i.isPublicSchema()){let n=r.usableMembers(i.filepath).getFiltered(t)?.schemaMembers.find(e=>e.isPublicSchema());if(n){let i=r.symbolMembers(n).getFiltered(t);i&&e.push(...i.filter(e=>e.isKind(M.TableGroup)))}}for(let t of e)u.push(...Uy(r,i,t))}let d=new Set,f=u.filter(e=>{if(e instanceof $u&&e.isKind(M.Schema))return!1;let t=`${e.originalSymbol.intern()}:${e.name??``}`;return d.has(t)?!1:(d.add(t),!0)}),p=new Map;for(let e of f){let t=`${e.kind}:${e.name}`;if(p.get(t)){if(e.isKind(M.Schema))continue;let t=e instanceof $u?e.useSpecifierDeclaration??e.declaration:e.declaration instanceof F&&e.declaration.name?e.declaration.name:e.declaration;t&&e.name!==void 0&&l.push(Ly(e.kind,e.name,a.join(`.`),t))}else p.set(t,e)}return new n(f,l)}};function Ly(e,t,n,r){switch(e){case M.Table:return uy.getDuplicateError(t,n,r);case M.Enum:return tf.getDuplicateError(t,n,r);case M.TablePartial:return jy.getDuplicateError(t,n,r);case M.TableGroup:return Ey.getDuplicateError(t,n,r);case M.DiagramView:return qd.getDuplicateError(t,n,r);default:return new x(b.DUPLICATE_NAME,`Duplicate ${e} '${t}' in schema '${n}'`,r)}}function Ry(e,r,i,a){let o=ey(e,r,i);if(o.kind===`none`)return n.create(void 0);if(o.kind===`direct`){let r=e.nodeSymbol(i);return r.hasValue(t)?n.create(void 0):r}return a.has(o.schemaName)||a.set(o.schemaName,e.symbolFactory.create(Fu,{name:o.schemaName,parent:r},r.filepath)),n.create(void 0)}function zy(e,n,r,i=new Set){if(r.getSymbolKind()!==M.Schema||!r.name)return[];let a=e.nodeReferee(r.name).getFiltered(t);if(!a||!a.isKind(M.Schema))return[];let o=Xv.visibleName(e,r),s=n.qualifiedName;return!o||o.length!==s.length||!o.every((e,t)=>e===s[t])?[]:By(e,n,r,a,i)}function By(e,n,r,i,a){let o=i.intern();if(a.has(o))return[];a.add(o);let s=e.usableMembers(i).getFiltered(t);if(!s)return[];let c=s.nonSchemaMembers.filter(e=>e.canBeImported).map(t=>e.symbolFactory.create($u,{kind:t.kind,declaration:t.originalSymbol.declaration,usedSymbol:t.originalSymbol,useSpecifierDeclaration:r,name:t.name},n.filepath));for(let t of[...c])t.isKind(M.TableGroup)&&c.push(...Uy(e,n,t));for(let i of s.reuses.selective)if(c.push(...zy(e,n,i,a)),ey(e,n,i).kind===`direct`){let a=e.nodeSymbol(i).getFiltered(t);a&&a.canBeImported&&c.push(e.symbolFactory.create($u,{kind:a.kind,declaration:a.originalSymbol.declaration,usedSymbol:a.originalSymbol,useSpecifierDeclaration:r,name:a.name},n.filepath))}for(let{importPath:t}of s.reuses.wildcard){let i=Hy(e,t,n.qualifiedName);i&&c.push(...By(e,n,r,i,a))}return c}function Vy(e,n,r,i,a,o=new Set){if(o.has(r))return[];o.add(r);let s=Hy(e,r,n.qualifiedName);if(!s)return[];let c=e.usableMembers(s).getFiltered(t);if(!c)return[];let l=c.nonSchemaMembers.filter(e=>e.canBeImported).map(t=>e.symbolFactory.create($u,{kind:t.kind,declaration:t.declaration,usedSymbol:t,useSpecifierDeclaration:i,name:t.name},n.filepath));for(let t of c.schemaMembers)a.has(t.name)||a.set(t.name,e.symbolFactory.create(Fu,{name:t.name},n.filepath));let{reuses:{selective:u,wildcard:d}}=c;for(let r of u){let i=Ry(e,n,r,a).getFiltered(t);i&&l.push(i),l.push(...zy(e,n,r))}for(let{importPath:t}of d)l.push(...Vy(e,n,t,i,a,o));return l}function Hy(e,n,r){if(r.length===0)return;let i=e.usableMembers(n).getFiltered(t);if(!i)return;let{schemaMembers:a}=i,o,s=[...r];for(;s.length>0;){let t=s.shift();if(o=a.find(e=>e.name===t),!o)return;let n=e.usableMembers(o).getValue();({schemaMembers:a}=n)}return o}function Uy(e,n,r){if(!r.isKind(M.TableGroup)||!(r instanceof $u))return[];let i=r.originalSymbol,a=e.symbolMembers(i).getFiltered(t);if(!a)return[];let o=n.qualifiedName,s=[];for(let t of a){if(!t.isKind(M.TableGroupField)||!t.declaration)continue;let n=t.declaration.callee;if(!n)continue;let i=O(n);if(!i||i.length===0)continue;let a=i.length<=1?[Pl]:i.slice(0,-1);if(a.length!==o.length||!o.every((e,t)=>e===a[t]))continue;let c=t.declaration.filepath,l=Wy(e,c,i);l&&s.push(e.symbolFactory.create($u,{kind:M.Table,declaration:l.declaration,usedSymbol:l,useSpecifierDeclaration:void 0,name:l.name},r.filepath))}return s}function Wy(e,n,r){if(r.length===1){let i=e.usableMembers(n).getFiltered(t);return i?i.nonSchemaMembers.find(e=>e.isKind(M.Table)&&e.name===r[0]):void 0}let i=r[0],a=r[r.length-1],o=e.usableMembers(n).getFiltered(t);if(!o)return;let s=o.schemaMembers.find(e=>e.name===i);if(!s)return;let c=e.usableMembers(s).getFiltered(t);if(c)return c.nonSchemaMembers.find(e=>e.isKind(M.Table)&&e.name===a)}var Gy=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.bindBody(this.declarationNode.body)}bindBody(e){if(!e||e instanceof R)return[];let t=e.body.filter(e=>e instanceof F);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Ky=class{constructor(e,t,n){this.compiler=e,this.symbol=t,this.declarationNode=t.declaration,this.filepath=n,this.note={name:void 0,content:void 0,token:void 0}}interpret(){this.note.token=j(this.declarationNode);let e=[...this.interpretName(),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return n.create(this.note,e)}interpretName(){let{name:e}=this.symbol.interpretedName(this.compiler,this.filepath);return this.note.name=e,[]}interpretSettingList(e){let t=S(e).getValue();return this.note.headerColor=t.headercolor?.length?ku(t.headercolor?.at(0)?.value):void 0,[]}interpretBody(e){let[t,n]=v(e.body,e=>e instanceof R);return t.length!==1||n.length>0?[new x(b.INVALID_NOTE,`Invalid note syntax`,e)]:[...this.interpretNote(t[0])]}interpretNote(e){let t=na(e,`callee.expression.literal.value`,``);return this.note.content=Du(t),[]}};const qy={nodeSymbol(i,a){return!E(a,r.Note)||!(a.parentNode instanceof nd)?n.create(e):new n(i.symbolFactory.create(Hu,{declaration:a,name:i.nodeFullname(a).getFiltered(t)?.at(-1)},a.filepath))},symbolMembers(t,r){return r.isKind(M.StickyNote)?new n([]):n.create(e)},bindNode(t,i){return E(i,r.Note)?n.create(void 0,new Gy(t,i).bind()):n.create(e)},interpretSymbol(t,r,i){return r instanceof Hu?r.declaration instanceof F?new Ky(t,r,i).interpret():n.create(void 0):n.create(e)}},Jy=[dy,nf,Rv,of,Md,qv,jv,Dy,My,qy,Zv,Iy,Jd,Ov];function Yy(t,...r){for(let i of Jy){let a=i[t];if(a){let t=a(...r);if(t instanceof n&&!t.hasValue(e))return t}}return n.create(e)}function Xy(r){let i=Yy(`nodeSymbol`,this,r);return i.hasValue(e)?n.create(t):i}function Zy(r){let i=Yy(`symbolMembers`,this,r);return i.hasValue(e)?n.create(t):i}function Qy(r){let i=Yy(`nodeReferee`,this,r);return i.hasValue(e)?n.create(t):i}function $y(r){let i=Yy(`bindNode`,this,r);return i.hasValue(e)?n.create(t):i}function eb(r){let i=Yy(`nodeMetadata`,this,r);return i.hasValue(e)?n.create(t):i}function tb(r,i){let a=Yy(`interpretSymbol`,this,r,i);return a.hasValue(e)?n.create(t):a}function nb(r,i){let a=Yy(`interpretMetadata`,this,r,i);return a.hasValue(e)?n.create(t):a}var rb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=new x(b.INVALID_CHECKS_CONTEXT,`A Checks can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof nd?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new x(b.UNEXPECTED_NAME,`A Checks shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A Checks must have a complex body`,e)];let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];return _(n)instanceof B&&t.push(...this.validateFieldSetting(n.pop())),(n.length>1||!(n[0]instanceof ld))&&t.push(new x(b.INVALID_CHECKS_FIELD,`A check field must be a function expression`,e)),t})}validateFieldSetting(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`name`:t.length>1&&t.forEach(t=>n.push(new x(b.DUPLICATE_CHECK_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{C(t.value)||n.push(new x(b.INVALID_CHECK_SETTING_VALUE,`'${e}' must be a string`,t))});break;default:t.forEach(t=>n.push(new x(b.UNKNOWN_CHECK_SETTING,`Unknown check setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const ib={validateNode(t,i){if(!E(i,r.Checks))return n.create(e);let a=new rb(t,i);return n.create(void 0,a.validate())},nodeFullname(t,i){return E(i,r.Checks)?i.name?new n(void 0,[new x(b.UNEXPECTED_NAME,`A Checks shouldn't have a name`,i.name)]):new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Checks)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Checks)?i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}};var ab=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F&&this.declarationNode.parent.isKind(r.Project)?[]:[new x(b.INVALID_CUSTOM_CONTEXT,`A Custom element can only appear in a Project`,this.declarationNode)]}validateName(e){return e?[new x(b.UNEXPECTED_NAME,`A Custom element shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_NAME,`A Custom element shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`A Custom element shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof z)return[new x(b.UNEXPECTED_COMPLEX_BODY,`A Custom element can only have an inline field`,e)];let t=[];return C(e.callee)||t.push(new x(b.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e)),e.args.length>0&&t.push(...e.args.map(e=>new x(b.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e))),t}};function ob(e){return e instanceof F&&!!e.type?.value}const sb={validateNode(t,r){if(!ob(r))return n.create(e);let i=new ab(t,r);return n.create(void 0,i.validate())},nodeFullname(t,r){return ob(r)?r.name?new n(void 0,[new x(b.UNEXPECTED_NAME,`A custom field shouldn't have a name`,r.name)]):new n(void 0):n.create(e)},nodeAlias(t,r){return ob(r)?r.alias?new n(void 0,[new x(b.UNEXPECTED_NAME,`A custom field shouldn't have an alias`,r.alias)]):new n(void 0):n.create(e)},nodeSettings(t,r){return ob(r)?r.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A custom field shouldn't have a setting list`,r.attributeList)]):new n({}):n.create(e)}};var cb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){let e=[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList)],t=this.validateBody(this.declarationNode.body);return e.push(...t.errors),{errors:e,warnings:t.warnings}}validateContext(){return this.declarationNode.parent instanceof F?[new x(b.INVALID_DIAGRAMVIEW_CONTEXT,`DiagramView must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?Ul(e)?[]:[new x(b.INVALID_NAME,`A DiagramView name must be a single identifier`,e)]:[new x(b.NAME_NOT_FOUND,`A DiagramView must have a name`,this.declarationNode)]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A DiagramView shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let e of Object.keys(r))n.push(...r[e].map(t=>new x(b.UNEXPECTED_SETTINGS,`Unknown '${e}' setting for DiagramView`,t)));return n}validateBody(e){if(!e)return{errors:[],warnings:[]};if(e instanceof R)return{errors:[new x(b.UNEXPECTED_SIMPLE_BODY,`A DiagramView's body must be a block`,e)],warnings:[]};let[t,n]=v(e.body,e=>e instanceof R),r=this.validateSubElements(n);return{errors:[...this.validateFields(t),...r.errors],warnings:r.warnings}}validateFields(e){return e.flatMap(e=>$l(e.callee)?e.args.length>0?e.args.map(e=>new x(b.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)):[]:[new x(b.INVALID_DIAGRAMVIEW_FIELD,`Fields are not allowed at DiagramView level. Use Tables, Notes, TableGroups, or Schemas blocks instead.`,e)])}validateSubElements(e){let t=[],n=[],r=[`tables`,`notes`,`tablegroups`,`schemas`];for(let i of e){if(!i.type)continue;let e=i.type.value.toLowerCase();if(!r.includes(e)){t.push(new x(b.INVALID_DIAGRAMVIEW_FIELD,`Unknown block type "${i.type.value}" in DiagramView. Allowed: Tables, Notes, TableGroups, Schemas`,i));continue}let a=this.validateSubBlock(i);t.push(...a.errors),n.push(...a.warnings)}return{errors:t,warnings:n}}validateSubBlock(e){let t=[],n=[];if(Wl(e))return t.push(new x(b.UNEXPECTED_SIMPLE_BODY,`${e.type?.value} body must be a block`,e.bodyColon)),{errors:t,warnings:n};if(!e.body||!(e.body instanceof z))return{errors:t,warnings:n};let r=e.body,i=r.body.some(e=>e instanceof R&&$l(e.callee)),a=r.body.some(e=>e instanceof R&&!$l(e.callee));return i&&a&&n.push(new Il(b.INVALID_DIAGRAMVIEW_FIELD,`Wildcard (*) combined with specific items in ${e.type?.value} block. Specific items will be ignored.`,e)),t.push(...this.validateSubBlockFields(e)),{errors:t,warnings:n}}validateSubBlockFields(e){let t=[];if(!e.body||!(e.body instanceof z))return t;let n=e.body.body.filter(e=>e instanceof R);for(let e of n)$l(e.callee)||(e.args.length>0||!O(e.callee))&&t.push(...e.args.map(e=>new x(b.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)));return t}};const lb={validateNode(t,i){if(!E(i,r.DiagramView))return n.create(e);let{errors:a,warnings:o}=new cb(t,i).validate();return n.create(void 0,a,o)},nodeFullname(t,i){if(E(i,r.DiagramView)){if(!i.name)return new n(void 0,[new x(b.NAME_NOT_FOUND,`A DiagramView must have a name`,i)]);let e=O(i.name);return e?new n(e):new n(void 0)}else if(D(i,r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewSchemas,r.DiagramViewTableGroups)){let e=O(i.callee);return e?(e.length===1&&D(i,r.DiagramViewTables)&&e.unshift(Pl),new n(e)):new n(void 0)}return new n(e)},nodeAlias(t,i){return E(i,r.DiagramView)?new n(void 0):n.create(e)}};var ub=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new x(b.INVALID_PROJECT_CONTEXT,`An Enum can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof md?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as an Enum name`,e)]:Vl(e)?[]:[new x(b.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,e)]:[new x(b.NAME_NOT_FOUND,`An Enum must have a name`,this.declarationNode)]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return this.validateFields([e]);let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new x(b.EMPTY_ENUM,`An Enum must have at least one element`,this.declarationNode)];let t=[];for(let n of e){n.callee&&!w(n.callee)&&t.push(new x(b.INVALID_ENUM_ELEMENT_NAME,`An enum field must be an identifier or a quoted identifier`,n.callee));let e=[...n.args];_(e)instanceof B?(t.push(...this.validateFieldSettings(_(e))),e.pop()):e[0]instanceof B&&(t.push(...this.validateFieldSettings(e[0])),e.shift()),e.length>0&&t.push(...e.map(e=>new x(b.INVALID_ENUM_ELEMENT,`An Enum must have only a field and optionally a setting list`,e)))}return t}validateFieldSettings(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let e in r){let t=r[e];if(t)switch(e){case i.Note:t.length>1&&t.forEach(e=>n.push(new x(b.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{C(e.value)||n.push(new x(b.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))});break;default:t.forEach(t=>n.push(new x(b.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const db={validateNode(t,i){return E(i,r.Enum)?n.create(void 0,new ub(t,i).validate()):n.create(e)},nodeFullname(t,i){if(E(i,r.Enum)){if(!i.name)return new n(void 0,[new x(b.NAME_NOT_FOUND,`An Enum must have a name`,i)]);if(!Vl(i.name))return new n(void 0,[new x(b.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,i.name)]);let e=O(i.name);return e?.length===1&&e.unshift(Pl),new n(e)}if(D(i,r.Enum)){let e=A(i.callee);return new n(e===void 0?void 0:[e])}return n.create(e)},nodeAlias(t,i){return E(i,r.Enum)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,i.alias)]):new n(void 0):D(i,r.Enum)?new n(void 0):n.create(e)},nodeSettings(t,a){if(E(a,r.Enum))return a.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,a.attributeList)]):new n({});if(D(a,r.Enum)){let e=[...a.args],t;if(_(e)instanceof B?t=_(e):e[0]instanceof B&&(t=e[0]),!t)return new n({});let r=S(t),o=r.getErrors(),s=r.getValue(),c={};for(let[e,t]of Object.entries(s))switch(e){case i.Note:t.length>1&&t.forEach(e=>o.push(new x(b.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{C(e.value)||o.push(new x(b.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new x(b.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}};var fb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=new x(b.INVALID_INDEXES_CONTEXT,`An Indexes can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof nd?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new x(b.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return[new x(b.UNEXPECTED_SIMPLE_BODY,`An Indexes must have a complex body`,e)];let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];return _(n)instanceof B&&t.push(...this.validateFieldSetting(n.pop())),n.forEach(e=>{for(;e instanceof V;)e.argumentList&&xu(e.argumentList)===void 0&&t.push(new x(b.INVALID_INDEXES_FIELD,`An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such`,e.argumentList)),e=e.callee;xu(e)===void 0&&t.push(new x(b.INVALID_INDEXES_FIELD,`An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such`,e))}),t})}validateFieldSetting(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`note`:case`name`:t.length>1&&t.forEach(t=>n.push(new x(b.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{C(t.value)||n.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))});break;case`unique`:case`pk`:t.length>1&&t.forEach(t=>n.push(new x(b.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&n.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))});break;case`type`:t.length>1&&t.forEach(e=>n.push(new x(b.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{w(e.value)||n.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))});break;default:t.forEach(t=>n.push(new x(b.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const pb={validateNode(t,i){return E(i,r.Indexes)?n.create(void 0,new fb(t,i).validate()):n.create(e)},nodeFullname(t,i){return E(i,r.Indexes)?i.name?new n(void 0,[new x(b.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,i.name)]):new n(void 0):D(i,r.Indexes)?new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Indexes)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,i.alias)]):new n(void 0):D(i,r.Indexes)?new n(void 0):n.create(e)},nodeSettings(t,a){if(E(a,r.Indexes))return a.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,a.attributeList)]):new n({});if(D(a,r.Indexes)){let e=[a.callee,...a.args],t;if(_(e)instanceof B&&(t=_(e)),!t)return new n({});let r=S(t),o=r.getErrors(),s=r.getValue(),c={};for(let[e,t]of Object.entries(s))switch(e){case i.Note:case i.Name:t.length>1&&t.forEach(t=>o.push(new x(b.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{C(t.value)||o.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))}),c[e]=t;break;case i.Unique:case i.PK:t.length>1&&t.forEach(t=>o.push(new x(b.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&o.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))}),c[e]=t;break;case i.Type:t.length>1&&t.forEach(e=>o.push(new x(b.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{w(e.value)||o.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new x(b.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}};var mb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=this.declarationNode.parent;return!(e instanceof nd)&&!(e instanceof F&&e.isKind(r.Table,r.TableGroup,r.TablePartial,r.Project))?[new x(b.INVALID_NOTE_CONTEXT,`A Note can only appear inside a Table, a TableGroup, a TablePartial or a Project. Sticky note can only appear at the global scope.`,this.declarationNode)]:[]}validateName(e){return this.compiler.nodeFullname(this.declarationNode).getErrors()}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return this.validateFields([e]);let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=[];return e.length===0?[new x(b.EMPTY_NOTE,`A Note must have a content`,this.declarationNode)]:(e.length>1&&e.slice(1).forEach(e=>t.push(new x(b.NOTE_CONTENT_REDEFINED,`A Note can only contain one string`,e))),C(e[0].callee)||t.push(new x(b.INVALID_NOTE,`A Note content must be a quoted string`,e[0])),e[0].args.length>0&&t.push(...e[0].args.map(e=>new x(b.INVALID_NOTE,`A Note can only contain one quoted string`,e))),t)}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const hb={validateNode(t,i){return E(i,r.Note)?n.create(void 0,new mb(t,i).validate()):n.create(e)},nodeFullname(t,i){if(!E(i,r.Note))return n.create(e);if(!(i.parent instanceof nd))return i.name?new n(void 0,[new x(b.UNEXPECTED_NAME,`A Note shouldn't have a name`,i.name)]):new n(void 0);if(!i.name)return new n(void 0,[new x(b.INVALID_NAME,`Sticky note must have a name`,i)]);if(i.name instanceof md)return new n(void 0,[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Note name`,i.name)]);let a=O(i.name);return a===void 0?new n(void 0,[new x(b.INVALID_NAME,`Invalid name for sticky note `,i)]):new n(a)},nodeAlias(t,i){return E(i,r.Note)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Note)?i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}};var gb=class{constructor(e,t){this.ast=t,this.compiler=e}validate(){let e=[],t=[];for(let n of this.ast.body){let r=this.compiler.validateNode(n);e.push(...r.getErrors()),t.push(...r.getWarnings())}return new n(this.ast,e,t)}};const _b={validateNode(t,r){return iu(r)?n.create(void 0,new gb(t,r).validate().getErrors()):n.create(e)},nodeFullname(t,r){return iu(r)?new n(void 0):n.create(e)},nodeAlias(t,r){return iu(r)?new n(void 0):n.create(e)},nodeSettings(t,r){return iu(r)?new n({}):n.create(e)}};var vb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name).getErrors(),...this.validateAlias(this.declarationNode.alias).getErrors(),...this.validateSettingList(this.declarationNode.attributeList).getErrors(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new x(b.INVALID_PROJECT_CONTEXT,`A Project can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?Ul(e)?new n(O(e)):new n(void 0,[new x(b.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,e)]):new n(void 0)}validateAlias(e){return e?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,e)]):new n(void 0)}validateSettingList(e){return e?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,e)]):new n({})}validateBody(e){if(!e)return[];if(e instanceof R)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A Project's body must be a block`,e)];let[t,n]=v(e.body,e=>e instanceof R);return[...t.map(e=>new x(b.INVALID_PROJECT_FIELD,`A Project can not have inline fields`,e)),...this.validateSubElements(n)]}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const yb={validateNode(t,i){return E(i,r.Project)?n.create(void 0,new vb(t,i).validate()):n.create(e)},nodeFullname(t,i){return E(i,r.Project)?i.name?Ul(i.name)?new n(O(i.name)):new n(void 0,[new x(b.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):D(i,r.Project)?new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Project)&&i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,i.alias)]):D(i,r.Project)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Project)?i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,i.attributeList)]):new n({}):D(i,r.Project)?new n({}):n.create(e)}};var bb=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=this.declarationNode.parent;return e instanceof nd||e instanceof F&&e.isKind(r.Table)?[]:[new x(b.INVALID_RECORDS_CONTEXT,`Records can only appear at top-level or inside a Table`,this.declarationNode)]}validateName(e){return e instanceof md?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,e)]:this.declarationNode.parent instanceof nd?this.validateTopLevelName(e):this.validateInsideTableName(e)}validateTopLevelName(e){if(!(e instanceof V))return[new x(b.INVALID_RECORDS_NAME,`Records at top-level must have a name in the form of table(col1, col2, ...) or schema.table(col1, col2, ...)`,e||this.declarationNode.type||this.declarationNode)];let t=[];return(!e.callee||!Vl(e.callee))&&t.push(new x(b.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,e.callee||e)),(!e.argumentList||!Zl(e.argumentList))&&t.push(new x(b.INVALID_RECORDS_NAME,`Records column list must be simple column names`,e.argumentList||e)),t}validateInsideTableName(e){return e&&!Zl(e)?[new x(b.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`Records cannot have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return this.validateDataRow(e);let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateDataRows(t),...this.validateSubElements(n)]}validateDataRows(e){return e.flatMap(e=>this.validateDataRow(e))}validateDataRow(e){let t=[];if(!e.callee||e.args.length>0)return t.push(new x(b.INVALID_RECORDS_FIELD,`Invalid record row structure`,e)),t;if(e.callee instanceof dd)for(let n of e.callee.elementList)this.isValidRecordValue(n)||t.push(new x(b.INVALID_RECORDS_FIELD,`Records can only contain simple values (literals, null, true, false, or enum references). Complex expressions are not allowed.`,n));else this.isValidRecordValue(e.callee)||t.push(new x(b.INVALID_RECORDS_FIELD,`Records can only contain simple values (literals, null, true, false, or enum references). Complex expressions are not allowed.`,e.callee));return t}isValidRecordValue(e){if(e instanceof _d||Yl(e)||C(e)||e instanceof ld)return!0;if(w(e)){let t=e.expression.variable.value.toLowerCase();return jl.includes(t)}if(T(e)){let t=O(e);return t!==void 0&&t.length>0}return!1}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const xb={validateNode(t,i){return E(i,r.Records)?n.create(void 0,new bb(t,i).validate()):n.create(e)},nodeFullname(i,a){if(E(a,r.Records)){if(a.name instanceof md)return new n(void 0,[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,a.name)]);if(a.parent instanceof nd){if(!(a.name instanceof V))return new n(void 0,[new x(b.INVALID_RECORDS_NAME,`Records at top-level must have a name in the form of table(col1, col2, ...) or schema.table(col1, col2, ...)`,a.name||a.type||a)]);let e=[];(!a.name.callee||!Vl(a.name.callee))&&e.push(new x(b.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,a.name.callee||a.name)),(!a.name.argumentList||!Zl(a.name.argumentList))&&e.push(new x(b.INVALID_RECORDS_NAME,`Records column list must be simple column names`,a.name.argumentList||a.name));let t=O(a.name.callee);return t?.length===1&&t.unshift(Pl),new n(t,e)}else{let e=a.parent&&i.nodeFullname(a.parent).getFiltered(t);return a.name&&!Zl(a.name)?new n(e,[new x(b.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,a.name)]):new n(e)}}return D(a,r.Records)?new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Records)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`Records cannot have an alias`,i.alias)]):new n(void 0):D(i,r.Records)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Records)?i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,i.attributeList)]):new n({}):D(i,r.Records)?new n({}):n.create(e)}};var Sb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof nd?[]:[new x(b.INVALID_REF_CONTEXT,`A Ref must appear top-level`,this.declarationNode)]}validateName(e){return e?e instanceof md?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Ref name`,e)]:Ul(e)?[]:[new x(b.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return this.validateFields([e]);let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new x(b.EMPTY_REF,`A Ref must have at least one field`,this.declarationNode)];let t=[];return e.length>1&&t.push(...e.slice(1).map(e=>new x(b.REF_REDEFINED,`A Ref can only contain one binary relationship`,e))),e.forEach(e=>{if(e.callee&&!lu(e.callee)&&t.push(new x(b.INVALID_REF_FIELD,`A Ref field must be a binary relationship`,e.callee)),e.callee&&lu(e.callee)){let n=bu(e.callee.leftExpression)??{variables:[],tupleElements:[]},r=n.variables.length+Math.min(n.tupleElements.length,1),i=bu(e.callee.rightExpression)??{variables:[],tupleElements:[]},a=i.variables.length+Math.min(i.tupleElements.length,1);r<2&&t.push(new x(b.INVALID_REF_FIELD,`Invalid column reference`,e.callee.leftExpression||e.callee)),a<2&&t.push(new x(b.INVALID_REF_FIELD,`Invalid column reference`,e.callee.rightExpression||e.callee))}e.callee&&!uu(e.callee)&&t.push(new x(b.UNEQUAL_FIELDS_BINARY_REF,`Unequal fields in ref endpoints`,e.callee));let n=[...e.args];if(_(n)instanceof B){let e=this.validateFieldSettings(_(n));t.push(...e),n.pop()}else n[0]instanceof B&&(t.push(...this.validateFieldSettings(n[0])),n.shift());n.length>0&&t.push(...n.map(e=>new x(b.INVALID_REF_FIELD,`A Ref field should only have a single binary relationship`,e)))}),t}validateFieldSettings(e){return wb(e).getErrors()}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};function Cb(e){if(!(w(e)&&e.expression.variable.kind!==y.QUOTED_STRING)&&!(e instanceof od))return!1;let t;if(t=e instanceof od?hu(e)||``:e.expression.variable.value,t)switch(t.toLowerCase()){case`cascade`:case`no action`:case`set null`:case`set default`:case`restrict`:return!0;default:return!1}return!1}function wb(e){let t=S(e),r=t.getErrors(),a=t.getValue(),o={};for(let[e,t]of Object.entries(a))switch(e){case i.Delete:case i.Update:t.length>1&&t.forEach(t=>r.push(new x(b.DUPLICATE_REF_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{Cb(t.value)||r.push(new x(b.INVALID_REF_SETTING_VALUE,`'${e}' can only have values "cascade", "no action", "set null", "set default" or "restrict"`,t))}),o[e]=t;break;case i.Color:t.length>1&&r.push(...t.map(e=>new x(b.DUPLICATE_REF_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{ql(e.value)||r.push(new x(b.INVALID_REF_SETTING_VALUE,`'color' must be a color literal`,e))}),o[e]=t;break;case i.Inactive:t.length>1&&r.push(...t.map(e=>new x(b.DUPLICATE_REF_SETTING,`'inactive' can only appear once`,e))),t.forEach(e=>{e.value&&r.push(new x(b.INVALID_REF_SETTING_VALUE,`'inactive' cannot have a value`,e))}),o[e]=t;break;default:t.forEach(t=>r.push(new x(b.UNKNOWN_REF_SETTING,`Unknown ref setting '${e}'`,t)))}return new n(o,r)}const Tb={validateNode(t,i){return E(i,r.Ref)?n.create(void 0,new Sb(t,i).validate()):n.create(e)},nodeFullname(t,i){return E(i,r.Ref)?i.name?Ul(i.name)?new n(O(i.name)):new n(void 0,[new x(b.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):D(i,r.Ref)?new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Ref)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,i.alias)]):new n(void 0):D(i,r.Ref)?new n(void 0):n.create(e)},nodeSettings(t,i){if(E(i,r.Ref))return i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,i.attributeList)]):new n({});if(D(i,r.Ref)){let e=[...i.args],t;return _(e)instanceof B?t=_(e):e[0]instanceof B&&(t=e[0]),t?wb(t):new n({})}return n.create(e)}};var Eb=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new x(b.INVALID_TABLE_CONTEXT,`Table must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof vd?[new x(b.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,e)]:e instanceof md?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Table name`,e)]:Vl(e)?[]:[new x(b.INVALID_NAME,`A Table name must be of the form <table> or <schema>.<table>`,e)]:[new x(b.NAME_NOT_FOUND,`A Table must have a name`,this.declarationNode)]}validateAlias(e){return e?Hl(e)?[]:[new x(b.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,e)]:[]}validateSettingList(e){let t=S(e),n=t.getErrors();return Cc(t.getValue(),(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{ql(e.value)||n.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'headercolor' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{C(e.value)||n.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new x(b.UNKNOWN_TABLE_SETTING,`Unknown '${t}' setting`,e)))}}),n}validateBody(e){if(!e)return[];if(e instanceof R)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A Table's body must be a block`,e)];let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=e=>{let t=[];if(!e.callee)return[];e.args.length===0&&t.push(new x(b.INVALID_COLUMN,`A column must have a type`,e.callee)),w(e.callee)||t.push(new x(b.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!Ql(e.args[0])&&t.push(new x(b.INVALID_COLUMN_TYPE,`Invalid column type`,e.args[0]));let n=e.args.slice(1);return t.push(...this.validateFieldSetting(n)),t},n=e=>{let t=[];return e.callee?(Gl(e.callee)||t.push(new x(b.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection should be of the form ~<table-partial>`,e.callee)),e.args.length&&t.push(...e.args.map(e=>new x(b.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection does not have any trailing attributes`,e))),t):[]};return e.flatMap(e=>e.callee instanceof L&&e.callee.op?.value===`~`?n(e):t(e))}validateFieldSetting(e){if(!e.slice(0,-1).every(eu)||!e.slice(-1).every(e=>eu(e)||e instanceof B))return e.map(e=>new x(b.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e));if(e.length===0)return[];let t;_(e)instanceof B&&(t=e.pop());let n=S(t),r=n.getErrors(),a=n.getValue();e.forEach(e=>{let t=(A(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){r.push(new x(b.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}a[t]===void 0?a[t]=[e]:a[t].push(e)});let o=a[i.PK]||[],s=a[i.PrimaryKey]||[];return o.length>=1&&s.length>=1&&r.push(...[...o,...s].map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Cc(a,(e,t)=>{switch(t){case i.Note:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{C(e.value)||r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'note' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Xl(e.value)||r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'ref' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'primary key' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'pk' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'not null' can only appear once`,e)));let t=a[i.Null]||[];e.length>=1&&t.length>=1&&r.push(...[...e,...t].map(e=>new x(b.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'not null' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'null' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'unique' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'increment' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{Jl(e.value)||r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'default' must be an enum value, a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof ld||r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>r.push(new x(b.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),r}validateSubElements(e){let t=e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[]),n=e.filter(e=>e.isKind(r.Note));return n.length>1&&t.push(...n.map(e=>new x(b.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function Db(e){let t=S(e),r=t.getErrors(),a=t.getValue();return Cc(a,(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{ql(e.value)||r.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'headercolor' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{C(e.value)||r.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:r.push(...e.map(e=>new x(b.UNKNOWN_TABLE_SETTING,`Unknown '${t}' setting`,e)))}}),new n(a,r)}function Ob(e){if(!e.slice(0,-1).every(eu)||!e.slice(-1).every(e=>eu(e)||e instanceof B))return new n({},e.map(e=>new x(b.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e)));if(e.length===0)return new n({});let t;_(e)instanceof B&&(t=e.pop());let r=S(t),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(A(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new x(b.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}o[t]===void 0?o[t]=[e]:o[t].push(e)});let s=o[i.PK]||[],c=o[i.PrimaryKey]||[];return s.length>=1&&c.length>=1&&a.push(...[...s,...c].map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Cc(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{C(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'note' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Xl(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'ref' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'primary key' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'pk' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'not null' can only appear once`,e)));let t=o[i.Null]||[];e.length>=1&&t.length>=1&&a.push(...[...e,...t].map(e=>new x(b.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'not null' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'null' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'unique' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'increment' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{Jl(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'default' must be an enum value, a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof ld||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>a.push(new x(b.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),new n(o,a)}const kb={validateNode(t,i){return E(i,r.Table)?n.create(void 0,new Eb(t,i).validate()):n.create(e)},nodeFullname(t,i){if(E(i,r.Table)){if(!i.name)return new n(void 0,[new x(b.NAME_NOT_FOUND,`A Table must have a name`,i)]);if(i.name instanceof vd)return new n(void 0,[new x(b.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,i.name)]);let e=O(i.name);return e?.length===1&&e.unshift(Pl),new n(e)}if(D(i,r.Table)){if(Gl(i.callee)){let e=A(i.callee.expression);return new n(e?[e]:void 0)}let e=A(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return E(i,r.Table)?i.alias?Hl(i.alias)?new n(A(i.alias)):new n(void 0,[new x(b.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,i.alias)]):new n(void 0):D(i,r.Table)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Table)?i.attributeList?Db(i.attributeList):new n({}):D(i,r.Table)?Ob(i.args.slice(1)):n.create(e)}};var Ab=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new x(b.INVALID_TABLEGROUP_CONTEXT,`TableGroup must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof md?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a TableGroup name`,e)]:Ul(e)?[]:[new x(b.INVALID_NAME,`A TableGroup name must be a single identifier`,e)]:[new x(b.NAME_NOT_FOUND,`A TableGroup must have a name`,this.declarationNode)]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`color`:t.length>1&&n.push(...t.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{ql(e.value)||n.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'color' must be a color literal`,e.value||e.name))});break;case`note`:t.length>1&&n.push(...t.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),t.filter(e=>!C(e.value)).forEach(e=>{n.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:n.push(...t.map(t=>new x(b.UNKNOWN_TABLE_SETTING,`Unknown '${e}' setting`,t)));break}return n}validateBody(e){if(!e)return[];if(e instanceof R)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A TableGroup's body must be a block`,e)];let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{let t=[];return e.callee&&O(e.callee)===void 0&&t.push(new x(b.INVALID_TABLEGROUP_FIELD,`A TableGroup field must be of the form <table> or <schema>.<table>`,e.callee)),e.args.length>0&&t.push(...e.args.map(e=>new x(b.INVALID_TABLEGROUP_FIELD,`A TableGroup field should only have a single Table name`,e))),t})}validateSubElements(e){let t=e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[]),n=e.filter(e=>e.isKind(r.Note));return n.length>1&&t.push(...n.map(e=>new x(b.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function jb(e){let t=S(e),r=t.getErrors(),i=t.getValue(),a={};for(let[e,t]of Object.entries(i))switch(e){case`color`:t.length>1&&r.push(...t.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{ql(e.value)||r.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'color' must be a color literal`,e.value||e.name))}),a[e]=t;break;case`note`:t.length>1&&r.push(...t.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),t.filter(e=>!C(e.value)).forEach(e=>{r.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))}),a[e]=t;break;default:r.push(...t.map(t=>new x(b.UNKNOWN_TABLE_SETTING,`Unknown '${e}' setting`,t)));break}return new n(a,r)}const Mb={validateNode(t,i){return E(i,r.TableGroup)?n.create(void 0,new Ab(t,i).validate()):n.create(e)},nodeFullname(t,i){if(E(i,r.TableGroup))return i.name?Ul(i.name)?new n(O(i.name)):new n(void 0,[new x(b.INVALID_NAME,`A TableGroup name must be a single identifier`,i.name)]):new n(void 0,[new x(b.NAME_NOT_FOUND,`A TableGroup must have a name`,i)]);if(D(i,r.TableGroup)){let e=O(i.callee);return e?.length===1&&e.unshift(Pl),new n(e)}return n.create(e)},nodeAlias(t,i){return E(i,r.TableGroup)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,i.alias)]):new n(void 0):D(i,r.TableGroup)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.TableGroup)?jb(i.attributeList):D(i,r.TableGroup)?new n({}):n.create(e)}};var Nb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new x(b.INVALID_TABLE_PARTIAL_CONTEXT,`TablePartial must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof md?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a TablePartial name`,e)]:Ul(e)?[]:[new x(b.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,e)]:[new x(b.NAME_NOT_FOUND,`A TablePartial must have a name`,this.declarationNode)]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=S(e),n=t.getErrors();return Cc(t.getValue(),(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{ql(e.value)||n.push(new x(b.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{C(e.value)||n.push(new x(b.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new x(b.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),n}validateBody(e){if(!e)return[];if(e instanceof R)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A TablePartial's body must be a block`,e)];let[t,n]=v(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[];e.args.length===0&&t.push(new x(b.INVALID_COLUMN,`A column must have a type`,e.callee)),w(e.callee)||t.push(new x(b.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!Ql(e.args[0])&&t.push(new x(b.INVALID_COLUMN_TYPE,`Invalid column type`,e.args[0]));let n=e.args.slice(1);return t.push(...this.validateFieldSetting(n)),t})}validateFieldSetting(e){let t=_(e);if(!e.slice(0,-1).every(eu)||!(eu(t)||t instanceof B))return e.map(e=>new x(b.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e));if(e.length===0)return[];let n;_(e)instanceof B&&(n=e.pop());let r=S(n),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(A(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new x(b.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}o[t]===void 0?o[t]=[e]:o[t].push(e)});let s=o[i.PK]||[],c=o[i.PrimaryKey]||[];return s.length>=1&&c.length>=1&&a.push(...[...s,...c].map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Cc(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{C(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Xl(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e)));let n=o[i.Null]||[];e.length>=1&&n.length>=1&&a.push(...[...e,...n].map(e=>new x(b.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Jl(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof ld||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>a.push(new x(b.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),a}validateSubElements(e){let t=e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[]),n=e.filter(e=>e.isKind(r.Note));return n.length>1&&t.push(...n.map(e=>new x(b.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function Pb(e){let t=S(e),r=t.getErrors(),a=t.getValue();return Cc(a,(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{ql(e.value)||r.push(new x(b.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{C(e.value)||r.push(new x(b.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:r.push(...e.map(e=>new x(b.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),new n(a,r)}function Fb(e){let t=_(e);if(e.length>0&&(!e.slice(0,-1).every(eu)||!(eu(t)||t instanceof B)))return new n({},e.map(e=>new x(b.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e)));if(e.length===0)return new n({});let r;_(e)instanceof B&&(r=e.pop());let a=S(r),o=a.getErrors(),s=a.getValue();e.forEach(e=>{let t=(A(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){o.push(new x(b.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}s[t]===void 0?s[t]=[e]:s[t].push(e)});let c=s[i.PK]||[],l=s[i.PrimaryKey]||[];return c.length>=1&&l.length>=1&&o.push(...[...c,...l].map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Cc(s,(e,t)=>{switch(t){case i.Note:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{C(e.value)||o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Xl(e.value)||o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e)));let n=s[i.Null]||[];e.length>=1&&n.length>=1&&o.push(...[...e,...n].map(e=>new x(b.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Jl(e.value)||o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof ld||o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>o.push(new x(b.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),new n(s,o)}const Ib={validateNode(t,i){return E(i,r.TablePartial)?n.create(void 0,new Nb(t,i).validate()):n.create(e)},nodeFullname(t,i){if(E(i,r.TablePartial))return i.name?Ul(i.name)?new n(O(i.name)):new n(void 0,[new x(b.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,i.name)]):new n(void 0,[new x(b.NAME_NOT_FOUND,`A TablePartial must have a name`,i)]);if(D(i,r.TablePartial)){let e=A(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return E(i,r.TablePartial)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,i.alias)]):new n(A(i.alias)):D(i,r.TablePartial)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.TablePartial)?Pb(i.attributeList):D(i,r.TablePartial)?Fb(i.args.slice(1)):n.create(e)}};var Lb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateBody()]}validateContext(){return this.declarationNode.parent instanceof nd?[]:[new x(b.INVALID_USE_CONTEXT,`'use' must appear at the top level`,this.declarationNode)]}validateBody(){let e=[];if(this.declarationNode.importPath&&!kl.isRelative(this.declarationNode.importPath.value)&&e.push(new x(b.INVALID_USE_SPECIFIER_NAME,`Import path must be a relative path (starting with './' or '../')`,this.declarationNode.importPath)),this.declarationNode.specifiers instanceof md)return[];for(let t of this.declarationNode.specifiers?.specifiers||[])e.push(...this.validateSpecifier(t));return e}validateSpecifier(e){let t=[];return e.importKind===void 0?t.push(new x(b.INVALID_USE_SPECIFIER_KIND,`A use specifier must have a type (e.g. table, enum)`,e)):e.isKind(...Object.values(Mu))||t.push(new x(b.INVALID_USE_SPECIFIER_KIND,`'${e.importKind.value}' is not a valid specifier type`,e.importKind)),[...t,...this.compiler.nodeFullname(e).getErrors(),...this.compiler.nodeAlias(e).getErrors()]}};const Rb={validateNode(t,r){return r instanceof rd?n.create(void 0,new Lb(t,r).validate()):n.create(e)},nodeFullname(t,r){if(!ru(r))return n.create(e);let i=O(r.name);return!i||i.length===0?n.create(void 0,[new x(b.INVALID_NAME,`Use specifiers must have a valid name (simple name or schema-qualified name)`,r)]):r.isKind(Mu.TableGroup)&&i.length>1?n.create(i,[new x(b.INVALID_USE_SPECIFIER_NAME,`A TableGroup name must be a simple name`,r)]):r.isKind(Mu.TablePartial)&&i.length>1?n.create(i,[new x(b.INVALID_USE_SPECIFIER_NAME,`A TablePartial name must be a simple name`,r)]):r.isKind(Mu.Note)&&i.length>1?n.create(i,[new x(b.INVALID_USE_SPECIFIER_NAME,`A Sticky note name must be a simple name`,r)]):(i.length===1&&!r.isKind(Mu.Schema)&&i.unshift(Pl),new n(i))},nodeAlias(t,r){return ru(r)?r.alias?Hl(r.alias)?new n(A(r.alias)):new n(void 0,[new x(b.INVALID_ALIAS,`Use aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,r.alias)]):new n(void 0):n.create(e)},nodeSettings(t,r){return r instanceof rd?n.create({}):n.create(e)}},zb=[kb,db,xb,pb,ib,Tb,yb,Mb,Ib,hb,lb,_b,Rb,sb];function Bb(t,...r){for(let n of zb){let i=n[t];if(i){let t=i(...r);if(!t.hasValue(e))return t}}return n.create(e)}function Vb(r){let i=Bb(`validateNode`,this,r);return i.hasValue(e)?n.create(t):i}function Hb(r){let i=Bb(`nodeSettings`,this,r);return i.hasValue(e)?n.create(t):i}function Ub(r){let i=Bb(`nodeFullname`,this,r);return i.hasValue(e)?n.create(t):i}function Wb(r){let i=Bb(`nodeAlias`,this,r);return i.hasValue(e)?n.create(t):i}var Gb=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Kb=typeof document<`u`&&document.location&&document.location.hash.indexOf(`pseudo=true`)>=0;function qb(e,t){let n;return n=t.length===0?e:e.replace(/\{(\d+)\}/g,(e,n)=>{let r=t[n[0]],i=e;return typeof r==`string`?i=r:(typeof r==`number`||typeof r==`boolean`||r==null)&&(i=String(r)),i}),Kb&&(n=`[`+n.replace(/[aouei]/g,`$&$&`)+`]`),n}function Jb(e,t,...n){return qb(t,n)}function Yb(e){}var Xb;const Zb=`en`;var Qb=!1,$b=!1,ex=!1,tx=!1,nx=!1,rx=!1,ix=!1,ax=void 0,ox=`en`,sx=void 0;const cx=typeof self==`object`?self:typeof global==`object`?global:{};var lx=void 0;cx.vscode!==void 0&&cx.vscode.process!==void 0?lx=cx.vscode.process:typeof process<`u`&&(lx=process);var ux=typeof(Xb=lx?.versions)?.electron==`string`&&lx?.type===`renderer`;if(typeof navigator==`object`&&!ux)sx=navigator.userAgent,Qb=sx.indexOf(`Windows`)>=0,$b=sx.indexOf(`Macintosh`)>=0,(sx.indexOf(`Macintosh`)>=0||sx.indexOf(`iPad`)>=0||sx.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,ex=sx.indexOf(`Linux`)>=0,sx?.indexOf(`Mobi`),nx=!0,ax=(Jb({key:`ensureLoaderPluginIsLoaded`,comment:[`{Locked}`]},`_`),`en`),navigator.language;else if(typeof lx==`object`){Qb=lx.platform===`win32`,$b=lx.platform===`darwin`,ex=lx.platform===`linux`,ex&&lx.env.SNAP&&lx.env.SNAP_REVISION,lx.env.CI||lx.env.BUILD_ARTIFACTSTAGINGDIRECTORY;let e=lx.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);t.availableLanguages[`*`],t.locale,t.osLocale,t._translationsConfigFile}catch{}}else console.error(`Unable to resolve platform.`);const dx=Qb,fx=$b,px=nx&&typeof cx.importScripts==`function`,mx=sx,hx=typeof cx.postMessage==`function`&&!cx.importScripts,gx=(()=>{if(hx){let e=[];cx.addEventListener(`message`,t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let n=0,r=e.length;n<r;n++){let r=e[n];if(r.id===t.data.vscodeScheduleAsyncWork){e.splice(n,1),r.callback();return}}});let t=0;return n=>{let r=++t;e.push({id:r,callback:n}),cx.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})(),_x=!!(mx&&mx.indexOf(`Chrome`)>=0),vx=!!(mx&&mx.indexOf(`Firefox`)>=0),yx=!!(!_x&&mx&&mx.indexOf(`Safari`)>=0),bx=!!(mx&&mx.indexOf(`Edg/`)>=0),xx=!!(mx&&mx.indexOf(`Android`)>=0);var Sx;if(cx.vscode!==void 0&&cx.vscode.process!==void 0){let e=cx.vscode.process;Sx={get platform(){return e.platform},get arch(){return e.arch},get env(){return e.env},cwd(){return e.cwd()}}}else Sx=typeof process<`u`?{get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:{get platform(){return dx?`win32`:fx?`darwin`:`linux`},get arch(){},get env(){return{}},cwd(){return`/`}};const Cx=Sx.cwd,wx=Sx.env,Tx=Sx.platform;var Ex=65,Dx=97,Ox=90,kx=122,Ax=46,jx=47,Mx=92,Nx=58,Px=63,Fx=class extends Error{constructor(e,t,n){let r;typeof t==`string`&&t.indexOf(`not `)===0?(r=`must not be`,t=t.replace(/^not /,``)):r=`must be`;let i=`The "${e}" ${e.indexOf(`.`)===-1?`argument`:`property`} ${r} of type ${t}`;i+=`. Received type ${typeof n}`,super(i),this.code=`ERR_INVALID_ARG_TYPE`}};function Ix(e,t){if(typeof e!=`object`||!e)throw new Fx(t,`Object`,e)}function Lx(e,t){if(typeof e!=`string`)throw new Fx(t,`string`,e)}var Rx=Tx===`win32`;function q(e){return e===jx||e===Mx}function zx(e){return e===jx}function Bx(e){return e>=Ex&&e<=Ox||e>=Dx&&e<=kx}function Vx(e,t,n,r){let i=``,a=0,o=-1,s=0,c=0;for(let l=0;l<=e.length;++l){if(l<e.length)c=e.charCodeAt(l);else if(r(c))break;else c=jx;if(r(c)){if(!(o===l-1||s===1))if(s===2){if(i.length<2||a!==2||i.charCodeAt(i.length-1)!==Ax||i.charCodeAt(i.length-2)!==Ax){if(i.length>2){let e=i.lastIndexOf(n);e===-1?(i=``,a=0):(i=i.slice(0,e),a=i.length-1-i.lastIndexOf(n)),o=l,s=0;continue}else if(i.length!==0){i=``,a=0,o=l,s=0;continue}}t&&(i+=i.length>0?`${n}..`:`..`,a=2)}else i.length>0?i+=`${n}${e.slice(o+1,l)}`:i=e.slice(o+1,l),a=l-o-1;o=l,s=0}else c===Ax&&s!==-1?++s:s=-1}return i}function Hx(e,t){Ix(t,`pathObject`);let n=t.dir||t.root,r=t.base||`${t.name||``}${t.ext||``}`;return n?n===t.root?`${n}${r}`:`${n}${e}${r}`:r}const Ux={resolve(...e){let t=``,n=``,r=!1;for(let i=e.length-1;i>=-1;i--){let a;if(i>=0){if(a=e[i],Lx(a,`path`),a.length===0)continue}else t.length===0?a=Cx():(a=wx[`=${t}`]||Cx(),(a===void 0||a.slice(0,2).toLowerCase()!==t.toLowerCase()&&a.charCodeAt(2)===Mx)&&(a=`${t}\\`));let o=a.length,s=0,c=``,l=!1,u=a.charCodeAt(0);if(o===1)q(u)&&(s=1,l=!0);else if(q(u))if(l=!0,q(a.charCodeAt(1))){let e=2,t=e;for(;e<o&&!q(a.charCodeAt(e));)e++;if(e<o&&e!==t){let n=a.slice(t,e);for(t=e;e<o&&q(a.charCodeAt(e));)e++;if(e<o&&e!==t){for(t=e;e<o&&!q(a.charCodeAt(e));)e++;(e===o||e!==t)&&(c=`\\\\${n}\\${a.slice(t,e)}`,s=e)}}}else s=1;else Bx(u)&&a.charCodeAt(1)===Nx&&(c=a.slice(0,2),s=2,o>2&&q(a.charCodeAt(2))&&(l=!0,s=3));if(c.length>0)if(t.length>0){if(c.toLowerCase()!==t.toLowerCase())continue}else t=c;if(r){if(t.length>0)break}else if(n=`${a.slice(s)}\\${n}`,r=l,l&&t.length>0)break}return n=Vx(n,!r,`\\`,q),r?`${t}\\${n}`:`${t}${n}`||`.`},normalize(e){Lx(e,`path`);let t=e.length;if(t===0)return`.`;let n=0,r,i=!1,a=e.charCodeAt(0);if(t===1)return zx(a)?`\\`:e;if(q(a))if(i=!0,q(e.charCodeAt(1))){let i=2,a=i;for(;i<t&&!q(e.charCodeAt(i));)i++;if(i<t&&i!==a){let o=e.slice(a,i);for(a=i;i<t&&q(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&!q(e.charCodeAt(i));)i++;if(i===t)return`\\\\${o}\\${e.slice(a)}\\`;i!==a&&(r=`\\\\${o}\\${e.slice(a,i)}`,n=i)}}}else n=1;else Bx(a)&&e.charCodeAt(1)===Nx&&(r=e.slice(0,2),n=2,t>2&&q(e.charCodeAt(2))&&(i=!0,n=3));let o=n<t?Vx(e.slice(n),!i,`\\`,q):``;return o.length===0&&!i&&(o=`.`),o.length>0&&q(e.charCodeAt(t-1))&&(o+=`\\`),r===void 0?i?`\\${o}`:o:i?`${r}\\${o}`:`${r}${o}`},isAbsolute(e){Lx(e,`path`);let t=e.length;if(t===0)return!1;let n=e.charCodeAt(0);return q(n)||t>2&&Bx(n)&&e.charCodeAt(1)===Nx&&q(e.charCodeAt(2))},join(...e){if(e.length===0)return`.`;let t,n;for(let r=0;r<e.length;++r){let i=e[r];Lx(i,`path`),i.length>0&&(t===void 0?t=n=i:t+=`\\${i}`)}if(t===void 0)return`.`;let r=!0,i=0;if(typeof n==`string`&&q(n.charCodeAt(0))){++i;let e=n.length;e>1&&q(n.charCodeAt(1))&&(++i,e>2&&(q(n.charCodeAt(2))?++i:r=!1))}if(r){for(;i<t.length&&q(t.charCodeAt(i));)i++;i>=2&&(t=`\\${t.slice(i)}`)}return Ux.normalize(t)},relative(e,t){if(Lx(e,`from`),Lx(t,`to`),e===t)return``;let n=Ux.resolve(e),r=Ux.resolve(t);if(n===r||(e=n.toLowerCase(),t=r.toLowerCase(),e===t))return``;let i=0;for(;i<e.length&&e.charCodeAt(i)===Mx;)i++;let a=e.length;for(;a-1>i&&e.charCodeAt(a-1)===Mx;)a--;let o=a-i,s=0;for(;s<t.length&&t.charCodeAt(s)===Mx;)s++;let c=t.length;for(;c-1>s&&t.charCodeAt(c-1)===Mx;)c--;let l=c-s,u=o<l?o:l,d=-1,f=0;for(;f<u;f++){let n=e.charCodeAt(i+f);if(n!==t.charCodeAt(s+f))break;n===Mx&&(d=f)}if(f!==u){if(d===-1)return r}else{if(l>u){if(t.charCodeAt(s+f)===Mx)return r.slice(s+f+1);if(f===2)return r.slice(s+f)}o>u&&(e.charCodeAt(i+f)===Mx?d=f:f===2&&(d=3)),d===-1&&(d=0)}let p=``;for(f=i+d+1;f<=a;++f)(f===a||e.charCodeAt(f)===Mx)&&(p+=p.length===0?`..`:`\\..`);return s+=d,p.length>0?`${p}${r.slice(s,c)}`:(r.charCodeAt(s)===Mx&&++s,r.slice(s,c))},toNamespacedPath(e){if(typeof e!=`string`||e.length===0)return e;let t=Ux.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===Mx){if(t.charCodeAt(1)===Mx){let e=t.charCodeAt(2);if(e!==Px&&e!==Ax)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Bx(t.charCodeAt(0))&&t.charCodeAt(1)===Nx&&t.charCodeAt(2)===Mx)return`\\\\?\\${t}`;return e},dirname(e){Lx(e,`path`);let t=e.length;if(t===0)return`.`;let n=-1,r=0,i=e.charCodeAt(0);if(t===1)return q(i)?e:`.`;if(q(i)){if(n=r=1,q(e.charCodeAt(1))){let i=2,a=i;for(;i<t&&!q(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&q(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&!q(e.charCodeAt(i));)i++;if(i===t)return e;i!==a&&(n=r=i+1)}}}}else Bx(i)&&e.charCodeAt(1)===Nx&&(n=t>2&&q(e.charCodeAt(2))?3:2,r=n);let a=-1,o=!0;for(let n=t-1;n>=r;--n)if(q(e.charCodeAt(n))){if(!o){a=n;break}}else o=!1;if(a===-1){if(n===-1)return`.`;a=n}return e.slice(0,a)},basename(e,t){t!==void 0&&Lx(t,`ext`),Lx(e,`path`);let n=0,r=-1,i=!0,a;if(e.length>=2&&Bx(e.charCodeAt(0))&&e.charCodeAt(1)===Nx&&(n=2),t!==void 0&&t.length>0&&t.length<=e.length){if(t===e)return``;let o=t.length-1,s=-1;for(a=e.length-1;a>=n;--a){let c=e.charCodeAt(a);if(q(c)){if(!i){n=a+1;break}}else s===-1&&(i=!1,s=a+1),o>=0&&(c===t.charCodeAt(o)?--o===-1&&(r=a):(o=-1,r=s))}return n===r?r=s:r===-1&&(r=e.length),e.slice(n,r)}for(a=e.length-1;a>=n;--a)if(q(e.charCodeAt(a))){if(!i){n=a+1;break}}else r===-1&&(i=!1,r=a+1);return r===-1?``:e.slice(n,r)},extname(e){Lx(e,`path`);let t=0,n=-1,r=0,i=-1,a=!0,o=0;e.length>=2&&e.charCodeAt(1)===Nx&&Bx(e.charCodeAt(0))&&(t=r=2);for(let s=e.length-1;s>=t;--s){let t=e.charCodeAt(s);if(q(t)){if(!a){r=s+1;break}continue}i===-1&&(a=!1,i=s+1),t===Ax?n===-1?n=s:o!==1&&(o=1):n!==-1&&(o=-1)}return n===-1||i===-1||o===0||o===1&&n===i-1&&n===r+1?``:e.slice(n,i)},format:Hx.bind(null,`\\`),parse(e){Lx(e,`path`);let t={root:``,dir:``,base:``,ext:``,name:``};if(e.length===0)return t;let n=e.length,r=0,i=e.charCodeAt(0);if(n===1)return q(i)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(q(i)){if(r=1,q(e.charCodeAt(1))){let t=2,i=t;for(;t<n&&!q(e.charCodeAt(t));)t++;if(t<n&&t!==i){for(i=t;t<n&&q(e.charCodeAt(t));)t++;if(t<n&&t!==i){for(i=t;t<n&&!q(e.charCodeAt(t));)t++;t===n?r=t:t!==i&&(r=t+1)}}}}else if(Bx(i)&&e.charCodeAt(1)===Nx){if(n<=2)return t.root=t.dir=e,t;if(r=2,q(e.charCodeAt(2))){if(n===3)return t.root=t.dir=e,t;r=3}}r>0&&(t.root=e.slice(0,r));let a=-1,o=r,s=-1,c=!0,l=e.length-1,u=0;for(;l>=r;--l){if(i=e.charCodeAt(l),q(i)){if(!c){o=l+1;break}continue}s===-1&&(c=!1,s=l+1),i===Ax?a===-1?a=l:u!==1&&(u=1):a!==-1&&(u=-1)}return s!==-1&&(a===-1||u===0||u===1&&a===s-1&&a===o+1?t.base=t.name=e.slice(o,s):(t.name=e.slice(o,a),t.base=e.slice(o,s),t.ext=e.slice(a,s))),o>0&&o!==r?t.dir=e.slice(0,o-1):t.dir=t.root,t},sep:`\\`,delimiter:`;`,win32:null,posix:null};var Wx=(()=>{if(Rx){let e=/\\/g;return()=>{let t=Cx().replace(e,`/`);return t.slice(t.indexOf(`/`))}}return()=>Cx()})();const Gx={resolve(...e){let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:Wx();Lx(i,`path`),i.length!==0&&(t=`${i}/${t}`,n=i.charCodeAt(0)===jx)}return t=Vx(t,!n,`/`,zx),n?`/${t}`:t.length>0?t:`.`},normalize(e){if(Lx(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===jx,n=e.charCodeAt(e.length-1)===jx;return e=Vx(e,!t,`/`,zx),e.length===0?t?`/`:n?`./`:`.`:(n&&(e+=`/`),t?`/${e}`:e)},isAbsolute(e){return Lx(e,`path`),e.length>0&&e.charCodeAt(0)===jx},join(...e){if(e.length===0)return`.`;let t;for(let n=0;n<e.length;++n){let r=e[n];Lx(r,`path`),r.length>0&&(t===void 0?t=r:t+=`/${r}`)}return t===void 0?`.`:Gx.normalize(t)},relative(e,t){if(Lx(e,`from`),Lx(t,`to`),e===t||(e=Gx.resolve(e),t=Gx.resolve(t),e===t))return``;let n=e.length,r=n-1,i=t.length-1,a=r<i?r:i,o=-1,s=0;for(;s<a;s++){let n=e.charCodeAt(1+s);if(n!==t.charCodeAt(1+s))break;n===jx&&(o=s)}if(s===a)if(i>a){if(t.charCodeAt(1+s)===jx)return t.slice(1+s+1);if(s===0)return t.slice(1+s)}else r>a&&(e.charCodeAt(1+s)===jx?o=s:s===0&&(o=0));let c=``;for(s=1+o+1;s<=n;++s)(s===n||e.charCodeAt(s)===jx)&&(c+=c.length===0?`..`:`/..`);return`${c}${t.slice(1+o)}`},toNamespacedPath(e){return e},dirname(e){if(Lx(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===jx,n=-1,r=!0;for(let t=e.length-1;t>=1;--t)if(e.charCodeAt(t)===jx){if(!r){n=t;break}}else r=!1;return n===-1?t?`/`:`.`:t&&n===1?`//`:e.slice(0,n)},basename(e,t){t!==void 0&&Lx(t,`ext`),Lx(e,`path`);let n=0,r=-1,i=!0,a;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t===e)return``;let o=t.length-1,s=-1;for(a=e.length-1;a>=0;--a){let c=e.charCodeAt(a);if(c===jx){if(!i){n=a+1;break}}else s===-1&&(i=!1,s=a+1),o>=0&&(c===t.charCodeAt(o)?--o===-1&&(r=a):(o=-1,r=s))}return n===r?r=s:r===-1&&(r=e.length),e.slice(n,r)}for(a=e.length-1;a>=0;--a)if(e.charCodeAt(a)===jx){if(!i){n=a+1;break}}else r===-1&&(i=!1,r=a+1);return r===-1?``:e.slice(n,r)},extname(e){Lx(e,`path`);let t=-1,n=0,r=-1,i=!0,a=0;for(let o=e.length-1;o>=0;--o){let s=e.charCodeAt(o);if(s===jx){if(!i){n=o+1;break}continue}r===-1&&(i=!1,r=o+1),s===Ax?t===-1?t=o:a!==1&&(a=1):t!==-1&&(a=-1)}return t===-1||r===-1||a===0||a===1&&t===r-1&&t===n+1?``:e.slice(t,r)},format:Hx.bind(null,`/`),parse(e){Lx(e,`path`);let t={root:``,dir:``,base:``,ext:``,name:``};if(e.length===0)return t;let n=e.charCodeAt(0)===jx,r;n?(t.root=`/`,r=1):r=0;let i=-1,a=0,o=-1,s=!0,c=e.length-1,l=0;for(;c>=r;--c){let t=e.charCodeAt(c);if(t===jx){if(!s){a=c+1;break}continue}o===-1&&(s=!1,o=c+1),t===Ax?i===-1?i=c:l!==1&&(l=1):i!==-1&&(l=-1)}if(o!==-1){let r=a===0&&n?1:a;i===-1||l===0||l===1&&i===o-1&&i===a+1?t.base=t.name=e.slice(r,o):(t.name=e.slice(r,i),t.base=e.slice(r,o),t.ext=e.slice(i,o))}return a>0?t.dir=e.slice(0,a-1):n&&(t.dir=`/`),t},sep:`/`,delimiter:`:`,win32:null,posix:null};Gx.win32=Ux.win32=Ux,Gx.posix=Ux.posix=Gx;const Kx=Rx?Ux.normalize:Gx.normalize,qx=Rx?Ux.resolve:Gx.resolve,Jx=Rx?Ux.relative:Gx.relative,Yx=Rx?Ux.dirname:Gx.dirname,Xx=Rx?Ux.basename:Gx.basename,Zx=Rx?Ux.extname:Gx.extname,Qx=Rx?Ux.sep:Gx.sep;var $x=/^\w[\w\d+.-]*$/,eS=/^\//,tS=/^\/\//;function nS(e,t){if(!e.scheme&&t)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!$x.test(e.scheme))throw Error(`[UriError]: Scheme contains illegal characters.`);if(e.path){if(e.authority){if(!eS.test(e.path))throw Error(`[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character`)}else if(tS.test(e.path))throw Error(`[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")`)}}function rS(e,t){return!e&&!t?`file`:e}function iS(e,t){switch(e){case`https`:case`http`:case`file`:t?t[0]!==aS&&(t=aS+t):t=aS;break}return t}var J=``,aS=`/`,oS=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,sS=class e{static isUri(t){return t instanceof e?!0:t?typeof t.authority==`string`&&typeof t.fragment==`string`&&typeof t.path==`string`&&typeof t.query==`string`&&typeof t.scheme==`string`&&typeof t.fsPath==`string`&&typeof t.with==`function`&&typeof t.toString==`function`:!1}constructor(e,t,n,r,i,a=!1){typeof e==`object`?(this.scheme=e.scheme||J,this.authority=e.authority||J,this.path=e.path||J,this.query=e.query||J,this.fragment=e.fragment||J):(this.scheme=rS(e,a),this.authority=t||J,this.path=iS(this.scheme,n||J),this.query=r||J,this.fragment=i||J,nS(this,a))}get fsPath(){return pS(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:a}=e;return t===void 0?t=this.scheme:t===null&&(t=J),n===void 0?n=this.authority:n===null&&(n=J),r===void 0?r=this.path:r===null&&(r=J),i===void 0?i=this.query:i===null&&(i=J),a===void 0?a=this.fragment:a===null&&(a=J),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&a===this.fragment?this:new lS(t,n,r,i,a)}static parse(e,t=!1){let n=oS.exec(e);return n?new lS(n[2]||J,_S(n[4]||J),_S(n[5]||J),_S(n[7]||J),_S(n[9]||J),t):new lS(J,J,J,J,J)}static file(e){let t=J;if(dx&&(e=e.replace(/\\/g,aS)),e[0]===aS&&e[1]===aS){let n=e.indexOf(aS,2);n===-1?(t=e.substring(2),e=aS):(t=e.substring(2,n),e=e.substring(n)||aS)}return new lS(`file`,t,e,J,J)}static from(e,t){return new lS(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(t,...n){if(!t.path)throw Error(`[UriError]: cannot call joinPath on URI without path`);let r;return r=dx&&t.scheme===`file`?e.file(Ux.join(pS(t,!0),...n)).path:Gx.join(t.path,...n),t.with({path:r})}toString(e=!1){return mS(this,e)}toJSON(){return this}static revive(t){if(t){if(t instanceof e)return t;{let e=new lS(t);return e._formatted=t.external??null,e._fsPath=t._sep===cS?t.fsPath??null:null,e}}else return t}},cS=dx?1:void 0,lS=class extends sS{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||=pS(this,!1),this._fsPath}toString(e=!1){return e?mS(this,!0):(this._formatted||=mS(this,!1),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=cS),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}},uS={58:`%3A`,47:`%2F`,63:`%3F`,35:`%23`,91:`%5B`,93:`%5D`,64:`%40`,33:`%21`,36:`%24`,38:`%26`,39:`%27`,40:`%28`,41:`%29`,42:`%2A`,43:`%2B`,44:`%2C`,59:`%3B`,61:`%3D`,32:`%20`};function dS(e,t,n){let r,i=-1;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||o===45||o===46||o===95||o===126||t&&o===47||n&&o===91||n&&o===93||n&&o===58)i!==-1&&(r+=encodeURIComponent(e.substring(i,a)),i=-1),r!==void 0&&(r+=e.charAt(a));else{r===void 0&&(r=e.substr(0,a));let t=uS[o];t===void 0?i===-1&&(i=a):(i!==-1&&(r+=encodeURIComponent(e.substring(i,a)),i=-1),r+=t)}}return i!==-1&&(r+=encodeURIComponent(e.substring(i))),r===void 0?e:r}function fS(e){let t;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);r===35||r===63?(t===void 0&&(t=e.substr(0,n)),t+=uS[r]):t!==void 0&&(t+=e[n])}return t===void 0?e:t}function pS(e,t){let n;return n=e.authority&&e.path.length>1&&e.scheme===`file`?`//${e.authority}${e.path}`:e.path.charCodeAt(0)===47&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&e.path.charCodeAt(2)===58?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,dx&&(n=n.replace(/\//g,`\\`)),n}function mS(e,t){let n=t?fS:dS,r=``,{scheme:i,authority:a,path:o,query:s,fragment:c}=e;if(i&&(r+=i,r+=`:`),(a||i===`file`)&&(r+=aS,r+=aS),a){let e=a.indexOf(`@`);if(e!==-1){let t=a.substr(0,e);a=a.substr(e+1),e=t.lastIndexOf(`:`),e===-1?r+=n(t,!1,!1):(r+=n(t.substr(0,e),!1,!1),r+=`:`,r+=n(t.substr(e+1),!1,!0)),r+=`@`}a=a.toLowerCase(),e=a.lastIndexOf(`:`),e===-1?r+=n(a,!1,!0):(r+=n(a.substr(0,e),!1,!0),r+=a.substr(e))}if(o){if(o.length>=3&&o.charCodeAt(0)===47&&o.charCodeAt(2)===58){let e=o.charCodeAt(1);e>=65&&e<=90&&(o=`/${String.fromCharCode(e+32)}:${o.substr(3)}`)}else if(o.length>=2&&o.charCodeAt(1)===58){let e=o.charCodeAt(0);e>=65&&e<=90&&(o=`${String.fromCharCode(e+32)}:${o.substr(2)}`)}r+=n(o,!0,!1)}return s&&(r+=`?`,r+=n(s,!1,!1)),c&&(r+=`#`,r+=t?c:dS(c,!1,!1)),r}function hS(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+hS(e.substr(3)):e}}var gS=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function _S(e){return e.match(gS)?e.replace(gS,e=>hS(e)):e}let Y=function(e){return e[e.Function=1]=`Function`,e[e.Constructor=2]=`Constructor`,e[e.Field=3]=`Field`,e[e.Variable=4]=`Variable`,e[e.Class=5]=`Class`,e[e.Struct=6]=`Struct`,e[e.Interface=7]=`Interface`,e[e.Module=8]=`Module`,e[e.Property=9]=`Property`,e[e.Event=10]=`Event`,e[e.Operator=11]=`Operator`,e[e.Unit=12]=`Unit`,e[e.Value=13]=`Value`,e[e.Constant=14]=`Constant`,e[e.Enum=15]=`Enum`,e[e.EnumMember=16]=`EnumMember`,e[e.Keyword=17]=`Keyword`,e[e.Text=18]=`Text`,e[e.Color=19]=`Color`,e[e.File=20]=`File`,e[e.Reference=21]=`Reference`,e[e.Customcolor=22]=`Customcolor`,e[e.Folder=23]=`Folder`,e[e.TypeParameter=24]=`TypeParameter`,e[e.User=25]=`User`,e[e.Issue=26]=`Issue`,e[e.Snippet=27]=`Snippet`,e}({}),X=function(e){return e[e.None=0]=`None`,e[e.KeepWhitespace=1]=`KeepWhitespace`,e[e.InsertAsSnippet=4]=`InsertAsSnippet`,e}({}),vS=function(e){return e[e.Hint=1]=`Hint`,e[e.Info=2]=`Info`,e[e.Warning=4]=`Warning`,e[e.Error=8]=`Error`,e}({});function yS(e,t){return e.getOffsetAt(t)}function bS(e,t){let{startPos:n,endPos:r}=t;return{startLineNumber:n.line+1,startColumn:n.column+1,endLineNumber:r.line+1,endColumn:r.column+1}}var xS=class{constructor(e){this.compiler=e}provideDefinition(e,n){let{uri:r}=e,i=kl.fromUri(String(e.uri)),a=yS(e,n),o=[...this.compiler.container.stack(i,a)];for(;o.length!==0;){let e=o.pop();if(!e)continue;let n=this.compiler.nodeReferee(e).getFiltered(t);if(!n)continue;let i;if(n.declaration&&[P.PRIMARY_EXPRESSION,P.VARIABLE].includes(e.kind)&&({declaration:i}=n),i){let{startPos:e,endPos:t}=i,n=r;return r&&i.filepath&&(n=sS.parse(i.filepath.toUri({protocol:r.scheme}))),[{range:{startColumn:e.column+1,startLineNumber:e.line+1,endColumn:t.column+1,endLineNumber:t.line+1},uri:n}]}}return[]}},SS=class{constructor(e){this.compiler=e}provideDiagnostics(e){return[...this.provideErrors(e),...this.provideWarnings(e)]}provideErrors(e){return e?this.compiler.parse.errors(e).map(e=>this.createDiagnostic(e,`error`)):this.compiler.interpretProject().getErrors().map(e=>this.createDiagnostic(e,`error`))}provideWarnings(e){return e?this.compiler.parse.warnings(e).map(e=>this.createDiagnostic(e,`warning`)):this.compiler.interpretProject().getWarnings().map(e=>this.createDiagnostic(e,`warning`))}provideMarkers(e){return this.provideDiagnostics(e).filter(t=>t.filepath.equals(e)).map(e=>({severity:this.getSeverityValue(e.type),message:e.text,startLineNumber:e.startRow,startColumn:e.startColumn,endLineNumber:e.endRow,endColumn:e.endColumn,code:e.code?String(e.code):void 0}))}createDiagnostic(e,t){let n=e.nodeOrToken,r=n.startPos,i=n.endPos;return{type:t,text:e.diagnostic,startRow:r.line+1,startColumn:r.column+1,endRow:i.line+1,endColumn:i.column+1,code:e.code,filepath:e.filepath}}getSeverityValue(e){return e===`error`?vS.Error:vS.Warning}},CS=class{constructor(e){this.compiler=e}provideReferences(e,n){let{uri:r}=e,i=kl.fromUri(String(r)),a=yS(e,n);this.compiler.bindProject();let o=[...this.compiler.container.stack(i,a)];for(;o.length!==0;){let e=o.pop();if(e&&[P.ELEMENT_DECLARATION,P.FUNCTION_APPLICATION,P.PRIMARY_EXPRESSION].includes(e?.kind)){let n=this.compiler.nodeSymbol(e).getFiltered(t)??this.compiler.nodeReferee(e).getFiltered(t),i=n?this.compiler.symbolReferences(n):void 0;if(i&&i.length>0)return i.map(e=>{let t=r;return r&&e.filepath&&(t=sS.parse(e.filepath.toUri({protocol:r.scheme}))),{range:{startColumn:e.startPos.column+1,startLineNumber:e.startPos.line+1,endColumn:e.endPos.column+1,endLineNumber:e.endPos.line+1},uri:t}})}}return[]}};function wS(e,t){return e>=t.start&&e<t.end}function TS(e,t){let n=t.bodyColon?.start??t.body?.start;return n===void 0?e>=t.start&&e<=t.end:e>=t.start&&e<n}function ES(e,t){let n=[],r=e.parseFile(t).getValue()?.ast;if(!r)return n;for(let e of r.uses){let t=e.importPath?.value??``,r=[];if(e.specifiers instanceof ad)for(let t of e.specifiers.specifiers){let e,n;if(t.name?(e=t.importKind?.value,n=A(t.name)):t.importKind&&(n=t.importKind.value??void 0),n){let i=t.alias?A(t.alias):void 0;r.push({kind:e,name:n,alias:i})}}else e.specifiers instanceof md&&r.push({name:`*`});r.length===0&&!(e.specifiers instanceof md)||n.push({startOffset:e.fullStart,endOffset:e.fullEnd,sourceFile:t,specifiers:r,node:e})}return n}function DS(e,t,n,r,i,a){let o=ES(e,i),s=r.relativeTo(i.dirname).replace(/\.dbml$/,``),c=o.findIndex(e=>e.sourceFile===s),l=`${n} ${t}`;if(c!==-1){let e=o[c];return e.specifiers.some(e=>e.name===t)?{topInsert:``}:{topInsert:OS(Vc([...e.specifiers.filter(e=>e.name!==`*`).map(e=>`${e.kind??n} ${e.name}${e.alias?` as ${e.alias}`:``}`),l]),s,`
7
- `),removeRange:kS(a,e.startOffset,e.endOffset)}}return{topInsert:OS([l],s,`
8
- `)}}function OS(e,t,n){return`use {${n}${e.map(e=>` ${e}`).join(n)}${n}} from '${t}'${n}${n}`}function kS(e,t,n){let r=e.lastIndexOf(`
4
+ `)}function Au(e){let t=D(e);return!t||t.length===0?{schemaName:[],name:``}:{name:t[t.length-1],schemaName:t.slice(0,-1)}}function ju(e){if(e instanceof _d&&e.expression instanceof md&&e.expression.literal?.kind===_.COLOR_LITERAL)return e.expression.literal.value;if(nu(e)&&k(e)?.toLowerCase()===`none`)return Pl}function Mu(e){if(e){if(S(e)){let t=O(e);if(t!==void 0)return{value:t,type:`string`}}if(Zl(e))return{type:`number`,value:Ou(e)};if(nu(e))return{value:e.expression.variable.value.toLowerCase(),type:`boolean`};if(e instanceof ud&&e.value)return{value:e.value.value,type:`expression`};if(ru(e)){let t=xu(e)?.at(-1),n=t?k(t):void 0;if(n!==void 0)return{value:n,type:`string`}}}}function Nu(e,t){let r=``,i=null;if(t instanceof V){if(i=(t.argumentList?.elementList??[]).map(e=>Zl(e)?Du(e):S(e)?O(e):k(e)).join(`,`),r=`(${i})`,!t.callee)return new n({schemaName:null,type_name:``,args:i});t=t.callee}for(;t instanceof V||t instanceof yd;)if(t instanceof V){if(r=`(${(t.argumentList?.elementList??[]).map(e=>Zl(e)?Du(e):S(e)?O(e):k(e)).join(`,`)})${r}`,!t.callee)break;t=t.callee}else if(t instanceof yd){if(r=`${`[${(t.indexer?.elementList??[]).map(e=>e?.name?.expression?.literal?.value??``).join(`,`)}]`}${r}`,!t.array)break;t=t.array}let{name:a,schemaName:o}=Au(t);return o.length>1?new n({schemaName:o[0]??null,type_name:`${a}${r}`,args:i},[new b(y.UNSUPPORTED,`Nested schema is not supported`,t)]):new n({schemaName:o.length===0?null:o[0],type_name:`${a}${r}`,args:i})}let j=function(e){return e.Schema=`Schema`,e.Table=`Table`,e.Column=`Column`,e.TableGroup=`TableGroup`,e.TableGroupField=`TableGroup field`,e.Enum=`Enum`,e.EnumField=`Enum field`,e.StickyNote=`Note`,e.TablePartial=`TablePartial`,e.PartialInjection=`PartialInjection`,e.DiagramView=`DiagramView`,e.DiagramViewTopLevelWildcard=`DiagramView top-level wildcard`,e.DiagramViewTable=`DiagramView table`,e.DiagramViewTableGroup=`DiagramView tablegroup`,e.DiagramViewNote=`DiagramView note`,e.DiagramViewSchema=`DiagramView schema`,e.Program=`Program`,e}({});const Pu={Table:j.Table,Enum:j.Enum,TableGroup:j.TableGroup,TablePartial:j.TablePartial,Note:j.StickyNote,Schema:j.Schema};var Fu=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},Iu=class{constructor({kind:e,declaration:t,name:n},r,i){this.id=r,this.kind=e,this.declaration=t,this.filepath=i,this.name=n}get originalFilepath(){return this.originalSymbol.filepath}intern(){return`symbol@${this.filepath.intern()}:${this.id}`}isKind(...e){return e.includes(this.kind)}canonicalName(e,t){return e.canonicalName(t,this).getValue()}interpretedName(e,t){if(!t)return{schema:null,name:this.name??``};let n=this.canonicalName(e,t);return n?{schema:n.schema===`public`?null:n.schema,name:n.name}:{schema:null,name:this.name??``}}settings(e){if(this.declaration)return e.nodeSettings(this.declaration).getFiltered(t)}get token(){if(this.declaration)return A(this.declaration)}references(e){return e.symbolReferences(this)}metadata(e){return e.symbolMetadata(this)}members(e){let n=e.symbolMembers(this);return n.hasValue(t)?[]:n.getValue()}},Lu=class e extends Iu{constructor({name:e,parent:t},n,r){super({kind:j.Schema},n,r),this.name=e??``,this.parent=t}get canBeImported(){return!0}get originalSymbol(){return this}get qualifiedName(){return this.parent?[...this.parent.qualifiedName,this.name]:[this.name]}isPublicSchema(){return this.qualifiedName.join(`.`)===v}inNestedSchema(t,n){let r=this.members(t);if(r.some(e=>e.originalSymbol===n.originalSymbol))return!0;for(let i of r)if(i instanceof e&&i.inNestedSchema(t,n))return!0;return!1}},Ru=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.Enum,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},zu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.EnumField,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}note(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(!n?.note?.length)return;let r=n.note[0],i=r?.value;if(!i)return;let a=ku(O(i));if(a)return{value:a,token:A(r)}}},Bu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.Table,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}schema(e){let t=this.canonicalName(e,this.filepath);return t?t.schema===`public`?null:t.schema:null}columns(e){return this.mergedColumns(e).filter(e=>!(e instanceof nd))}mergedColumns(e){return this.members(e).filter(e=>e.isKind(j.Column))}partialInjections(e){return this.members(e).filter(e=>e.isKind(j.PartialInjection))}note(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(!n?.note?.length)return;let r=n.note[0],i=r?.value;if(!i)return;let a=ku(O(i));if(a)return{value:a,token:A(r)}}headercolor(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.[i.HeaderColor]?.length?ju(n[i.HeaderColor].at(0)?.value):void 0}refs(e){return this.metadata(e).filter(e=>e.kind===xd.Ref)}checks(e){return this.metadata(e).filter(e=>e.kind===xd.TableChecks)}indexes(e){return this.metadata(e).filter(e=>e.kind===xd.Indexes)}records(e){return this.metadata(e).filter(e=>e.kind===xd.Records)}resolvedPartials(e){return this.partialInjections(e).flatMap(n=>{if(!(n.declaration instanceof R)||!ql(n.declaration.callee))return[];let r=n.declaration.callee.expression;if(!r)return[];let i=e.nodeReferee(r).getFiltered(t);return i?[i]:[]})}mergedIndexes(e){let t=this.indexes(e),n=this.resolvedPartials(e).flatMap(t=>t.metadata(e).filter(e=>e.kind===xd.Indexes));return[...t,...n]}mergedChecks(e){let t=this.checks(e),n=this.resolvedPartials(e).flatMap(t=>t.metadata(e).filter(e=>e.kind===xd.TableChecks));return[...t,...n]}mergedHeadercolor(e){let n=this.headercolor(e);for(let r of this.resolvedPartials(e)){if(!r.declaration)continue;let a=e.nodeSettings(r.declaration).getFiltered(t);a?.[i.HeaderColor]?.length&&(n=ju(a[i.HeaderColor].at(0)?.value))}return n}mergedNote(e){let n=n=>{if(!n.declaration)return;let r=e.nodeSettings(n.declaration).getFiltered(t);if(!r?.note?.length)return;let i=r.note[0],a=i?.value;if(!a)return;let o=ku(O(a));if(o)return{value:o,token:A(i)}},r=n(this);for(let t of this.resolvedPartials(e)){let e=n(t);e&&(r=e)}return r}},Vu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.Column,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}pk(e){if(!this.declaration)return!1;let n=e.nodeSettings(this.declaration).getFiltered(t);return!!(n?.[i.PK]?.length||n?.[i.PrimaryKey]?.length)}unique(e){return this.declaration?!!e.nodeSettings(this.declaration).getFiltered(t)?.[i.Unique]?.length:!1}nullable(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(n?.[i.NotNull]?.length)return!1;if(n?.[i.Null]?.length)return!0}increment(e){return this.declaration?!!e.nodeSettings(this.declaration).getFiltered(t)?.[i.Increment]?.length:!1}default(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t)?.[i.Default]?.at(0)?.value;if(n)return Mu(n)}type(e){if(!(this.declaration instanceof R))return;let n=Nu(e,this.declaration.args[0]).getValue();if(!n)return;let r=n.args?n.args.split(`,`).map(e=>{let t=Number(e);return Number.isNaN(t)?e:t}):void 0,i=[],a=/\[([^\]]*)\]/g,o,s=n.type_name;for(;(o=a.exec(s))!==null;){let e=o[1];if(e===``)i.push(void 0);else{let t=Number(e);i.push(Number.isNaN(t)?e:t)}}let c=s.replace(/\[[^\]]*\]/g,``),l=e.nodeReferee(this.declaration.args[0]).getFiltered(t);return{name:c,enumSymbol:l instanceof Ru?l:void 0,args:r?.length?r:void 0,schema:n.schemaName??void 0,array:i.length?i:void 0}}checks(e){return this.metadata(e).filter(e=>e.kind===xd.TableChecks)}note(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(!n?.note?.length)return;let r=n.note[0],i=r?.value;if(!i)return;let a=ku(O(i));if(a)return{value:a,token:A(r)}}},Hu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.TableGroup,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}fields(e){return this.members(e).filter(e=>e.isKind(j.TableGroupField))}color(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.color?.length?ju(n.color.at(0)?.value):void 0}note(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);if(!n?.note?.length)return;let r=n.note[0],i=r?.value;if(!i)return;let a=ku(O(i));if(a)return{value:a,token:A(r)}}},Uu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.TableGroupField,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Wu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.StickyNote,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Gu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.TablePartial,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Ku=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.PartialInjection,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},qu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.DiagramView,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Ju=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.DiagramViewTopLevelWildcard,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Yu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.DiagramViewTable,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Xu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.DiagramViewTableGroup,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Zu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.DiagramViewNote,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Qu=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.DiagramViewSchema,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},$u=class extends Iu{constructor({declaration:e,name:t},n,r){super({kind:j.Program,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}inNestedSchema(e,t){let n=this.members(e);if(n.some(e=>e.originalSymbol===t.originalSymbol))return!0;for(let r of n)if(r instanceof Lu&&r.inNestedSchema(e,t))return!0;return!1}},ed=class extends Iu{constructor({kind:e,declaration:t,aliasedSymbol:n,name:r},i,a){super({kind:e,declaration:t,name:r},i,a),this.aliasedSymbol=n}get canBeImported(){return this.aliasedSymbol.canBeImported}get originalSymbol(){return this.aliasedSymbol.originalSymbol}},td=class extends Iu{constructor({kind:e,declaration:t,useSpecifierDeclaration:n,usedSymbol:r,name:i},a,o){super({kind:e,declaration:t,name:i},a,o),this.useSpecifierDeclaration=n,this.usedSymbol=r}get canBeImported(){let e=this.useSpecifierDeclaration?.parentOfKind(id);return!e||e.isReuse}get originalSymbol(){return this.usedSymbol?this.usedSymbol.originalSymbol:this}},nd=class extends Vu{constructor({declaration:e,name:t,injectionDeclaration:n},r,i){super({declaration:e,name:t},r,i),this.injectionDeclaration=n,this.name=t}},rd=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},M=class{constructor(e,t,n,r){this.id=e,this.kind=t,this.filepath=n;let i=r.find(e=>e!==void 0&&!Number.isNaN(e.start));i?(this.startPos=i.startPos,this.fullStart=i instanceof el?al(i):i.fullStart):(this.startPos={offset:NaN,column:NaN,line:NaN},this.fullStart=NaN);let a=[...r].reverse().find(e=>e!==void 0&&!Number.isNaN(e.end));a?(this.endPos=a.endPos,this.fullEnd=a instanceof el?il(a):a.fullEnd):(this.endPos={offset:NaN,column:NaN,line:NaN},this.fullEnd=NaN),this.start=this.startPos.offset,this.end=this.endPos.offset}intern(){return`node@${this.filepath.intern()}:${this.id}`}get parent(){let e=this.parentNode;for(;e;){if(e instanceof F||e instanceof P)return e;e=e.parentNode}}parentOfKind(e){let t=this;for(;t;){if(t instanceof e)return t;t=t.parentNode}}strictlyContains(e){if(typeof e==`number`)return this.start<e&&this.end>e;let{start:t,end:n}=e,r=this.start<t,i=r||this.start===t,a=this.end>n,o=a||this.end===n;return r&&o||i&&a}containsEq(e){if(typeof e==`number`)return this.start<=e&&this.end>=e;let{start:t,end:n}=e;return this.start<=t&&this.end>=n}};let N=function(e){return e.PROGRAM=`<program>`,e.ELEMENT_DECLARATION=`<element-declaration>`,e.USE_DECLARATION=`<use-declaration>`,e.USE_SPECIFIER=`<use-specifier>`,e.USE_SPECIFIER_LIST=`<use-specifier-list>`,e.ATTRIBUTE=`<attribute>`,e.IDENTIFIER_STREAM=`<identifier-stream>`,e.LITERAL=`<literal>`,e.VARIABLE=`<variable>`,e.PREFIX_EXPRESSION=`<prefix-expression>`,e.INFIX_EXPRESSION=`<infix-expression>`,e.POSTFIX_EXPRESSION=`<postfix-expression>`,e.FUNCTION_EXPRESSION=`<function-expression>`,e.FUNCTION_APPLICATION=`<function-application>`,e.BLOCK_EXPRESSION=`<block-expression>`,e.LIST_EXPRESSION=`<list-expression>`,e.TUPLE_EXPRESSION=`<tuple-expression>`,e.CALL_EXPRESSION=`<call-expression>`,e.PRIMARY_EXPRESSION=`<primary-expression>`,e.GROUP_EXPRESSION=`<group-expression>`,e.COMMA_EXPRESSION=`<comma-expression>`,e.EMPTY=`<dummy>`,e.ARRAY=`<array>`,e.WILDCARD=`<wildcard>`,e}({});var P=class extends M{constructor({body:e=[],eof:t,source:n},r,i){super(r,N.PROGRAM,i,[...e,t]),this.source=n,this.body=e,this.eof=t}get declarations(){return this.body.filter(e=>e.kind===N.ELEMENT_DECLARATION)}get uses(){return this.body.filter(e=>e.kind===N.USE_DECLARATION)}},id=class extends M{constructor({useKeyword:e,specifiers:t,fromKeyword:n,importPath:r},i,a){super(i,N.USE_DECLARATION,a,[e,t,n,r]),this.useKeyword=e,this.specifiers=t,this.fromKeyword=n,this.importPath=r}get isReuse(){return ul(this.useKeyword)}},ad=class extends M{constructor({importKind:e,name:t,asKeyword:n,alias:r},i,a){super(i,N.USE_SPECIFIER,a,[e,t,n,r]),this.importKind=e,this.name=t,this.asKeyword=n,this.alias=r}isKind(...e){return this.importKind?.value!==void 0&&e.map(e=>e.toLowerCase()).includes(this.importKind.value.toLowerCase())}getSymbolKind(){let e=this.importKind?.value?.toLowerCase();if(e!==void 0)return Object.values(j).find(t=>t.toLowerCase()===e)}},od=class extends M{constructor({openBrace:e,specifiers:t=[],closeBrace:n},r,i){super(r,N.USE_SPECIFIER_LIST,i,[e,...t,n]),this.openBrace=e,this.specifiers=t,this.closeBrace=n}},F=class e extends M{constructor({type:t,name:n,as:r,alias:i,attributeList:a,bodyColon:o,body:s},c,l){if(super(c,N.ELEMENT_DECLARATION,l,[t,n,r,i,a,o,s]),s&&o&&!(s instanceof R||s instanceof e))throw Error(`If an element has a simple body, it must be a function application node`);this.type=t,this.name=n,this.as=r,this.alias=i,this.attributeList=a,this.bodyColon=o,this.body=s}isKind(...e){return e.some(e=>this.type?.value.toLowerCase()===e)}getElementKind(){return Object.values(r).find(e=>this.isKind(e))}},sd=class extends M{constructor({identifiers:e=[]},t,n){super(t,N.IDENTIFIER_STREAM,n,e||[]),this.identifiers=e}},I=class extends M{constructor({name:e,colon:t,value:n},r,i){super(r,N.ATTRIBUTE,i,[e,t,n]),this.name=e,this.value=n,this.colon=t}},L=class extends M{constructor({op:e,expression:t},n,r){super(n,N.PREFIX_EXPRESSION,r,[e,t]),this.op=e,this.expression=t}},cd=class extends M{constructor({op:e,leftExpression:t,rightExpression:n},r,i){super(r,N.INFIX_EXPRESSION,i,[t,e,n]),this.op=e,this.leftExpression=t,this.rightExpression=n}},ld=class extends M{constructor({op:e,expression:t},n,r){super(n,N.POSTFIX_EXPRESSION,r,[t,e]),this.op=e,this.expression=t}},ud=class extends M{constructor({value:e},t,n){super(t,N.FUNCTION_EXPRESSION,n,[e]),this.value=e}},R=class extends M{constructor({callee:e,args:t=[]},n,r){super(n,N.FUNCTION_APPLICATION,r,[e,...t]),this.callee=e,this.args=t}},z=class extends M{constructor({blockOpenBrace:e,body:t=[],blockCloseBrace:n},r,i){super(r,N.BLOCK_EXPRESSION,i,[e,...t,n]),this.blockOpenBrace=e,this.body=t,this.blockCloseBrace=n}},B=class extends M{constructor({listOpenBracket:e,elementList:t=[],commaList:n=[],listCloseBracket:r},i,a){super(i,N.LIST_EXPRESSION,a,[e,...bd(t,n),r]),this.listOpenBracket=e,this.elementList=t,this.commaList=n,this.listCloseBracket=r}},dd=class extends M{constructor({tupleOpenParen:e,elementList:t=[],commaList:n=[],tupleCloseParen:r},i,a){super(i,N.TUPLE_EXPRESSION,a,[e,...bd(t,n),r]),this.tupleOpenParen=e,this.elementList=t,this.commaList=n,this.tupleCloseParen=r}},fd=class extends M{constructor({elementList:e=[],commaList:t=[]},n,r){super(n,N.COMMA_EXPRESSION,r,[...bd(e,t)]),this.elementList=e,this.commaList=t}},pd=class extends dd{constructor({groupOpenParen:e,expression:t,groupCloseParen:n},r,i){super({tupleOpenParen:e,elementList:t&&[t],commaList:[],tupleCloseParen:n},r,i),this.kind=N.GROUP_EXPRESSION}},V=class extends M{constructor({callee:e,argumentList:t},n,r){super(n,N.CALL_EXPRESSION,r,[e,t]),this.callee=e,this.argumentList=t}},md=class extends M{constructor({literal:e},t,n){super(t,N.LITERAL,n,[e]),this.literal=e}},hd=class extends M{constructor({token:e},t,n){super(t,N.WILDCARD,n,[e]),this.token=e}},gd=class extends M{constructor({variable:e},t,n){super(t,N.VARIABLE,n,[e]),this.variable=e}},_d=class extends M{constructor({expression:e},t,n){super(t,N.PRIMARY_EXPRESSION,n,[e]),this.expression=e}},vd=class extends M{constructor({prevToken:e},t,n){let r=el.create(_.SPACE,n,e.endPos,e.endPos,` `,!1);super(t,N.EMPTY,n,[r])}},yd=class extends M{constructor({expression:e,indexer:t},n,r){super(n,N.ARRAY,r,[e,t]),this.array=e,this.indexer=t}};function bd(e,t){if(!e||e.length===0)return t||[];if(!t||t.length===0)return e||[];let[n]=e,[r]=t;return(n.start<r.start?pa(Xc(e,t)):pa(Xc(t,e))).filter(e=>e!==null)}let xd=function(e){return e.Ref=`ref`,e.PartialRef=`partial ref`,e.TableChecks=`table checks`,e.Indexes=`indexes`,e.Records=`records`,e.Project=`project`,e}({});var Sd=class e{static#e=this.id=0;constructor(t){this.declaration=t,this.id=++e.id}intern(){return`metadata@${this.declaration.filepath.intern()}:${this.id}`}},Cd=class extends Sd{constructor(e){super(e),this.kind=xd.Ref}container(e){let n=this.declaration.parentOfKind(F);if(n?.isKind(r.Table))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(this.declaration instanceof F){let t=bu(this.declaration)[0];if(!(t instanceof R))return[];let n=t.callee;return n instanceof cd?kd(e,n.leftExpression):[]}if(this.declaration instanceof I){let n=this.declaration.parentOfKind(R);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}return[]}rightColumns(e){if(this.declaration instanceof F){let t=bu(this.declaration)[0];if(!(t instanceof R))return[];let n=t.callee;return n instanceof cd?kd(e,n.rightExpression):[]}if(this.declaration instanceof I){let t=this.declaration.value;return t instanceof L?kd(e,t.expression):[]}return[]}leftTable(e){if(this.declaration instanceof F){let t=bu(this.declaration)[0];if(!(t instanceof R))return;let n=t.callee;return n instanceof cd?Ad(e,n.leftExpression):void 0}if(this.declaration instanceof I)return this.container(e)}rightTable(e){if(this.declaration instanceof F){let t=bu(this.declaration)[0];if(!(t instanceof R))return;let n=t.callee;return n instanceof cd?Ad(e,n.rightExpression):void 0}if(this.declaration instanceof I){let t=this.declaration.value;return t instanceof L?Ad(e,t.expression)??this.container(e):void 0}}op(e){if(this.declaration instanceof F){let e=bu(this.declaration)[0];if(!(e instanceof R))return;let t=e.callee;return t instanceof cd?t.op?.value:void 0}if(this.declaration instanceof I){let e=this.declaration.value;return e instanceof L?e.op?.value:void 0}}active(e){if(!(this.declaration instanceof F))return!0;let n=bu(this.declaration)[0];return n?!e.nodeSettings(n).getFiltered(t)?.[i.Inactive]?.length:!0}leftToken(){if(this.declaration instanceof F){let e=bu(this.declaration)[0];if(e instanceof R){let t=e.callee;if(t instanceof cd&&t.leftExpression)return t.leftExpression}}if(this.declaration instanceof I){let e=this.declaration.parentOfKind(R);if(e)return e}return this.declaration}rightToken(){if(this.declaration instanceof F){let e=bu(this.declaration)[0];if(e instanceof R){let t=e.callee;if(t instanceof cd&&t.rightExpression)return t.rightExpression}}return this.declaration instanceof I,this.declaration}owners(e){let n=this.leftTable(e),r=this.rightTable(e);if(!n||!r)return[];let i=this.declaration.filepath;return e.reachableFiles().flatMap(n=>e.nodeSymbol(e.parseFile(n).getValue().ast).getFiltered(t)||[]).filter(t=>e.reachableFiles(t.filepath).some(e=>e.equals(i))&&t.inNestedSchema(e,n)&&t.inNestedSchema(e,r))}},wd=class extends Sd{constructor(e){super(e),this.kind=xd.PartialRef}container(e){let n=this.declaration.parentOfKind(F);if(n?.isKind(r.TablePartial))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(!(this.declaration instanceof I))return[];let n=this.declaration.parentOfKind(R);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}rightColumns(e){if(!(this.declaration instanceof I))return[];let t=this.declaration.value;return t instanceof L?kd(e,t.expression):[]}leftTablePartial(e){if(this.declaration instanceof I)return this.container(e)}rightTable(e){if(!(this.declaration instanceof I))return;let t=this.declaration.value;if(t instanceof L)return Ad(e,t.expression)??this.container(e)}op(e){if(!(this.declaration instanceof I))return;let t=this.declaration.value;if(t instanceof L)return t.op?.value}leftToken(){if(this.declaration instanceof I){let e=this.declaration.parentOfKind(R);if(e)return e}return this.declaration}rightToken(){return this.declaration instanceof I,this.declaration}owners(e){let n=this.leftTablePartial(e),r=this.rightTable(e);return!n||!r?[]:e.reachableFiles().flatMap(n=>e.nodeSymbol(e.parseFile(n).getValue().ast).getFiltered(t)||[]).filter(t=>t.inNestedSchema(e,n)&&t.inNestedSchema(e,r))}},Td=class extends Sd{constructor(e){super(e),this.kind=xd.TableChecks,this.ownerTable=e.parentNode?.parentOfKind(F)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},Ed=class extends Sd{constructor(e){super(e),this.kind=xd.Indexes,this.ownerTable=e.parentNode?.parentOfKind(F)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},Dd=class extends Sd{constructor(e){super(e),this.kind=xd.Records}table(e){let n=this.declaration,i=n.parent;if(i instanceof F&&i.isKind(r.Table))return e.nodeSymbol(i).getFiltered(t);let a=n.name;if(!(a instanceof V))return;let o=Tu(a);if(!o)return;let s=o.variables.at(-1);if(s)return e.nodeReferee(s).getFiltered(t)?.originalSymbol}owners(e){let n=this.table(e);return n?e.reachableFiles().flatMap(n=>e.nodeSymbol(e.parseFile(n).getValue().ast).getFiltered(t)||[]).filter(t=>t.inNestedSchema(e,n)):[]}},Od=class extends Sd{constructor(e){super(e),this.kind=xd.Project}owners(e){let n=this.declaration.filepath,r=e.parseFile(n).getValue().ast,i=e.nodeSymbol(r).getFiltered(t);return i?[i]:[]}};function kd(e,n){if(!n)return[];let r=Su(n);return r?(r.tupleElements.length>0?r.tupleElements:r.variables.at(-1)?[r.variables.at(-1)]:[]).flatMap(n=>{let r=e.nodeReferee(n).getFiltered(t);return r?[r]:[]}):[]}function Ad(e,n){if(!n)return;let r=Su(n);if(!r)return;let i=r.tupleElements.length>0?r.variables.at(-1):r.variables.at(-2);if(i)return e.nodeReferee(i).getFiltered(t)}var jd=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return[]}},Md=class{constructor(e,t){this.compiler=e,this.declarationNode=t}interpret(){let e=this.declarationNode.body;return e instanceof z?new n(e.body.flatMap(e=>{if(!(e instanceof R))return[];let t=A(e),n=e.callee instanceof ud?e.callee.value?.value??``:``,r,a=e.args.find(e=>e instanceof B);return a&&(r=O(x(a).getValue()[i.Name]?.at(0)?.value)),{expression:n,name:r,token:t}})):new n([])}};const Nd={nodeMetadata(t,i){if(T(i,r.Checks)){let t=i.parent;return!t||!T(t,r.Table)&&!T(t,r.TablePartial)?n.create(e):n.create(new Td(i))}return n.create(e)},bindNode(t,i){return T(i,r.Checks)?n.create(void 0,new jd(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===xd.TableChecks?r.declaration instanceof F?new Md(t,r.declaration).interpret():n.create(void 0):n.create(e)}};function Pd(e,t,n){let r=t,i=e;if(i instanceof V&&i.argumentList&&(r=[i.argumentList,...r],i=i.callee),!i||!nu(i)||r.length===0)return;let a=[...r],o=gu(i),s=a.pop();if(!(s instanceof z))return;let c=h(a)instanceof B?a.pop():void 0;if(a.length===3){let e=gu(a[1]);return!e||!sl(e)?void 0:n.create(F,{type:o,name:a[0],as:e,alias:a[2],attributeList:c,body:s})}if(a.length===1)return n.create(F,{type:o,name:a[0],attributeList:c,body:s});if(a.length===0)return n.create(F,{type:o,attributeList:c,body:s})}function H(e){e&&(e instanceof el?Fd(e):Id(e))}function Fd(e){e.kind!==_.EOF&&(e.isInvalid=!0)}function Id(e){if(e instanceof F)H(e.type),H(e.name),H(e.as),H(e.alias),H(e.bodyColon),H(e.attributeList),H(e.body);else if(e instanceof sd)e.identifiers.forEach(H);else if(e instanceof I)H(e.name),H(e.colon),H(e.value);else if(e instanceof L)H(e.op),H(e.expression);else if(e instanceof cd)H(e.leftExpression),H(e.op),H(e.rightExpression);else if(e instanceof ld)H(e.op),H(e.expression);else if(e instanceof z)H(e.blockOpenBrace),e.body.forEach(H),H(e.blockCloseBrace);else if(e instanceof B)H(e.listOpenBracket),e.commaList.forEach(H),e.elementList.forEach(H),H(e.listCloseBracket);else if(e instanceof dd)H(e.tupleOpenParen),e.commaList.forEach(H),e.elementList.forEach(H),H(e.tupleCloseParen);else if(e instanceof fd)e.commaList.forEach(H),e.elementList.forEach(H);else if(e instanceof V)H(e.callee),H(e.argumentList);else if(e instanceof R)H(e.callee),e.args.forEach(H);else if(e instanceof _d)H(e.expression);else if(e instanceof ud)H(e.value);else if(e instanceof gd)H(e.variable);else if(e instanceof md)H(e.literal);else if(e instanceof pd)throw Error(`This case is handled by the TupleExpressionNode case`);else if(e instanceof yd)H(e.array),H(e.indexer);else if(e instanceof P)e.body.forEach(H),H(e.eof);else if(!(e instanceof vd))if(e instanceof id)H(e.useKeyword),H(e.specifiers),H(e.fromKeyword),H(e.importPath);else if(e instanceof od)H(e.openBrace),e.specifiers.forEach(H),H(e.closeBrace);else if(e instanceof ad)H(e.importKind),H(e.name),H(e.asKeyword),H(e.alias);else if(e instanceof hd)H(e.token);else throw Error(`Unreachable case in markInvalidNode`)}function Ld(...e){return e.filter(e=>e!==void 0)}function Rd(e){if(e instanceof P)return Ld(...e.body,e.eof);if(e instanceof F)return Ld(e.type,e.name,e.as,e.alias,e.attributeList,e.bodyColon,e.body);if(e instanceof I)return Ld(e.name,e.colon,e.value);if(e instanceof sd)return e.identifiers;if(e instanceof md)return e.literal?[e.literal]:[];if(e instanceof gd)return Ld(e.variable);if(e instanceof L)return Ld(e.op,e.expression);if(e instanceof cd)return Ld(e.leftExpression,e.op,e.rightExpression);if(e instanceof ld)return Ld(e.expression,e.op);if(e instanceof ud)return Ld(e.value);if(e instanceof R)return Ld(e.callee,...e.args);if(e instanceof z)return Ld(e.blockOpenBrace,...e.body,e.blockCloseBrace);if(e instanceof B)return Ld(e.listOpenBracket,...zd(e.elementList,e.commaList),e.listCloseBracket);if(e instanceof dd)return Ld(e.tupleOpenParen,...zd(e.elementList,e.commaList),e.tupleCloseParen);if(e instanceof fd)return Ld(...zd(e.elementList,e.commaList));if(e instanceof V)return Ld(e.callee,e.argumentList);if(e instanceof _d)return Ld(e.expression);if(e instanceof yd)return Ld(e.array,e.indexer);if(e instanceof vd)return[];if(e instanceof id)return Ld(e.useKeyword,e.specifiers,e.fromKeyword,e.importPath);if(e instanceof od)return Ld(e.openBrace,...e.specifiers,e.closeBrace);if(e instanceof ad)return Ld(e.importKind,e.name,e.asKeyword,e.alias);if(e instanceof hd)return Ld(e.token);throw e instanceof pd?Error(`This case is already handled by TupleExpressionNode`):Error(`Unreachable - no other possible cases`)}function zd(e,t){let n=[],r=Math.min(e.length,t.length);for(let i=0;i<r;i+=1)n.push(e[i],t[i]);return n.push(...e.slice(r),...t.slice(r)),n}function Bd(e,t){return e.reachableFiles(t.filepath).every(t=>e.bindFile(t).getErrors().length===0)}function Vd(e){if(!e)return[];if(C(e))return[{variables:[e],tupleElements:[]}];if(e instanceof cd){let t=Su(e);return t?[t]:[...Vd(e.leftExpression),...Vd(e.rightExpression)]}if(e instanceof L||e instanceof ld)return Vd(e.expression);if(e instanceof dd){let t=Su(e);return t?[t]:e.elementList.flatMap(Vd)}return[]}function Hd(e,n){let r=n.parentNode;if(!r||!w(r)||r.rightExpression!==n)return;let i=r.leftExpression;for(;w(i);)i=i.rightExpression;return e.nodeReferee(i).getFiltered(t)??void 0}function Ud(e){switch(e){case`<`:return[`1`,`*`];case`<>`:return[`*`,`*`];case`>`:return[`*`,`1`];case`-`:return[`1`,`1`];default:return}}var Wd=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){let[,t]=g(e.body,e=>e instanceof R);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>!e.type||!(e.body instanceof z)?[]:e.isKind(r.DiagramViewTables)?this.bindTableReferences(e.body):e.isKind(r.DiagramViewNotes)?this.bindNoteReferences(e.body):e.isKind(r.DiagramViewTableGroups)?this.bindTableGroupReferences(e.body):e.isKind(r.DiagramViewSchemas)?this.bindSchemaReferences(e.body):[])}bindTableReferences(e){let[t]=g(e.body,e=>e instanceof R);return t.flatMap(e=>!e.callee||tu(e.callee)?[]:[e.callee,...e.args].flatMap(Vd).flatMap(e=>{let t=e.variables.pop();if(!t)return[];let n=e.variables.pop();return[...n?this.compiler.nodeReferee(n).getErrors():[],...this.compiler.nodeReferee(t).getErrors()]}))}bindNoteReferences(e){let[t]=g(e.body,e=>e instanceof R);return t.flatMap(e=>!e.callee||tu(e.callee)?[]:Vd(e.callee).flatMap(e=>{let t=e.variables.pop();return t?this.compiler.nodeReferee(t).getErrors():[]}))}bindTableGroupReferences(e){let[t]=g(e.body,e=>e instanceof R);return t.flatMap(e=>!e.callee||tu(e.callee)?[]:Vd(e.callee).flatMap(e=>{let t=e.variables.pop();return t?this.compiler.nodeReferee(t).getErrors():[]}))}bindSchemaReferences(e){let[t]=g(e.body,e=>e instanceof R);return t.flatMap(e=>!e.callee||tu(e.callee)?[]:Vd(e.callee).flatMap(e=>e.variables.flatMap(e=>this.compiler.nodeReferee(e).getErrors())))}},Gd=class{constructor(e,t,n,r){this.diagramViewWildcards=new Set,this.diagramViewExplicitlySet=new Set,this.compiler=e,this.declarationNode=t,this.symbol=n,this.filepath=r??t.filepath,this.diagramView={visibleEntities:{tables:null,stickyNotes:null,tableGroups:null,schemas:null}}}interpret(){let e=[];this.diagramView.token=this.symbol.token;let{name:t,schema:r}=this.symbol.interpretedName(this.compiler,this.filepath);return this.diagramView.name=t,this.diagramView.schemaName=r,this.declarationNode.body instanceof z&&e.push(...this.interpretBody(this.declarationNode.body)),this.expandDiagramViewWildcards(),new n(this.diagramView,e)}interpretBody(e){if(e.body.length===1){let t=e.body[0];if(t instanceof R&&tu(t.callee))return this.diagramView.visibleEntities={tables:[],stickyNotes:[],tableGroups:[],schemas:[]},this.diagramViewWildcards=new Set([`tables`,`stickyNotes`,`tableGroups`,`schemas`]),this.diagramViewExplicitlySet=new Set([`tables`,`stickyNotes`,`tableGroups`,`schemas`]),[]}let[t]=g(e.body,e=>e instanceof F),n=new Set;for(let e of t){let t=e.type?.value.toLowerCase();t&&n.add(t),e.body instanceof z&&this.interpretSubBlock(e.body,t)}let i=this.diagramView.visibleEntities;return(n.has(`tables`)&&i.tables!==null||n.has(`tablegroups`)&&i.tableGroups!==null||n.has(`schemas`)&&i.schemas!==null)&&(n.has(`tables`)||(i.tables=[]),n.has(`tablegroups`)||(i.tableGroups=[]),n.has(`schemas`)||(i.schemas=[])),n.has(r.DiagramViewTables)&&this.diagramViewExplicitlySet.add(`tables`),n.has(r.DiagramViewTableGroups)&&this.diagramViewExplicitlySet.add(`tableGroups`),n.has(r.DiagramViewSchemas)&&this.diagramViewExplicitlySet.add(`schemas`),n.has(r.DiagramViewNotes)&&this.diagramViewExplicitlySet.add(`stickyNotes`),[]}interpretSubBlock(e,n){if(!n)return;if(e.body.some(e=>e instanceof R&&tu(e.callee))){let e=this.diagramViewWildcards;switch(n){case r.DiagramViewTables:this.diagramView.visibleEntities.tables=[],e.add(`tables`);break;case r.DiagramViewNotes:this.diagramView.visibleEntities.stickyNotes=[],e.add(`stickyNotes`);break;case r.DiagramViewTableGroups:this.diagramView.visibleEntities.tableGroups=[],e.add(`tableGroups`);break;case r.DiagramViewSchemas:this.diagramView.visibleEntities.schemas=[],e.add(`schemas`);break}return}if(e.body.length===0)return;let i=[];for(let n of e.body){if(!(n instanceof R))continue;let e=n.callee&&mu(n.callee),r=e&&this.compiler.nodeReferee(e).getFiltered(t);if(r?.declaration instanceof F){let e=D(r.declaration.name)??[];if(e.length>0){let t=e[e.length-1],n=e.length>1?e.slice(0,-1).join(`.`):v;i.push({name:t,schemaName:n});continue}}let a=D(n.callee)??[];if(a.length===0)continue;let o=a[a.length-1],s=a.length>1?a[0]:v;i.push({name:o,schemaName:s})}switch(n){case r.DiagramViewTables:this.diagramView.visibleEntities.tables=i.length>0?i:null;break;case r.DiagramViewNotes:this.diagramView.visibleEntities.stickyNotes=i.length>0?i.map(e=>({name:e.name})):null;break;case r.DiagramViewTableGroups:this.diagramView.visibleEntities.tableGroups=i.length>0?i.map(e=>({name:e.name})):null;break;case r.DiagramViewSchemas:this.diagramView.visibleEntities.schemas=i.length>0?i.map(e=>({name:e.name})):null;break}}expandDiagramViewWildcards(){let e=this.diagramView.visibleEntities,t=this.diagramViewWildcards;if(!(!t||!e)){if(t.has(`tables`)||t.has(`schemas`)){e.tables=[],e.tableGroups=[],e.schemas=[];return}t.has(`tableGroups`)&&e.tableGroups&&e.tableGroups.length===0&&(e.tableGroups=this.getAllTableGroupNames())}}getAllTableGroupNames(){let e=this.compiler.parseFile(this.declarationNode.filepath).getValue().ast,n=this.compiler.nodeSymbol(e).getFiltered(t);if(!n)return[];let r=this.compiler.symbolMembers(n).getFiltered(t);return r?Gc(r.filter(e=>e.isKind(j.TableGroup)),e=>e.originalSymbol.intern()).flatMap(e=>e.name===void 0?[]:{name:e.name}):[]}};function Kd(e){return e==null?e:Array.isArray(e)?e.map(String).join(`\0`):typeof e==`object`&&`intern`in e?e.intern():e}let qd=function(e){return e.Table=`table`,e}({});const Jd={getDuplicateError(e,t,n){return new b(y.DUPLICATE_NAME,`DiagramView '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t,n){return new b(y.DUPLICATE_DIAGRAMVIEW_FIELD,`Duplicate ${t} ${e}`,n)}},Yd={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return T(a,r.DiagramView)?new n(i.symbolFactory.create(qu,{declaration:a,name:o},a.filepath)):E(a,r.DiagramView)&&a instanceof hd?new n(i.symbolFactory.create(Ju,{declaration:a,name:o},a.filepath)):E(a,r.DiagramViewNotes)?new n(i.symbolFactory.create(Zu,{declaration:a,name:o},a.filepath)):E(a,r.DiagramViewTables)?new n(i.symbolFactory.create(Yu,{declaration:a,name:o},a.filepath)):E(a,r.DiagramViewTableGroups)?new n(i.symbolFactory.create(Xu,{declaration:a,name:o},a.filepath)):E(a,r.DiagramViewSchemas)?new n(i.symbolFactory.create(Qu,{declaration:a,name:o},a.filepath)):n.create(e)},nodeReferee(i,a){if(a.parent&&lu(a))return n.create(e);let o=Xd(a);if(!o)return n.create(e);let s=i.parseFile(a.filepath).getValue().ast,c=i.nodeSymbol(s).getFiltered(t);return c?o.isKind(r.DiagramViewTables)?Zd(i,c,a):o.isKind(r.DiagramViewNotes)?Qd(i,c,a,j.StickyNote):o.isKind(r.DiagramViewTableGroups)?Qd(i,c,a,j.TableGroup):o.isKind(r.DiagramViewSchemas)?$d(i,c,a):n.create(e):n.create(void 0)},symbolMembers(i,a){if(!a.isKind(j.DiagramView))return n.create(e);if(!a.declaration)return n.create([]);let o=a.declaration;if(!T(o,r.DiagramView))return n.create([]);let s=[],c=[];for(let e of bu(o))if(e instanceof R){let n=i.nodeSymbol(e).getFiltered(t);n&&c.push(n)}else e instanceof F&&c.push(...bu(e).flatMap(e=>i.nodeSymbol(e).getFiltered(t)??[]));let l=new Map;for(let e of c){if(!e.isKind(j.DiagramViewSchema,j.DiagramViewTableGroup,j.DiagramViewTable,j.DiagramViewNote)||!e.declaration)continue;let n=(i.nodeFullname(e.declaration).getFiltered(t)||[]).map(vy).join(`.`),r=`${e.kind}:${n}`;if(n!==void 0){let t=e.declaration,i=l.get(r);i?(s.push(Jd.getFieldDuplicateError(n,e.kind,i)),s.push(Jd.getFieldDuplicateError(n,e.kind,t))):l.set(r,t)}}return n.create(c,s)},bindNode(i,a){if(!T(a,r.DiagramView))return n.create(e);let o=new Wd(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,r,i){return r instanceof qu?r.declaration instanceof F?new Gd(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function Xd(e){let t=e.parentOfKind(R);if(!t)return;let n=t.parentNode;if(!(n instanceof z))return;let i=n.parentNode;if(!(i instanceof F)||!i.isKind(r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewTableGroups,r.DiagramViewSchemas))return;let a=i.parentNode;if(!(a instanceof z))return;let o=a.parentNode;if(!(!(o instanceof F)||!o.isKind(r.DiagramView)))return i}function Zd(e,r,i){let a=Eu(i);if(a===void 0)return n.create(void 0);if(w(i.parentNode)){let t=Hd(e,i);if(t){if(t.isKind(j.Schema)){let r=hu(i),o=e.lookupMembers(t,r?j.Table:j.Schema,a);return o?n.create(o):new n(void 0,[new b(y.BINDING_ERROR,`Could not find ${r?`table`:`schema`} '${a}'`,i)])}return new n(void 0)}let o=e.lookupMembers(r,j.Schema,a);return o?n.create(o):new n(void 0,[new b(y.BINDING_ERROR,`Could not find schema '${a}'`,i)])}let o=e.symbolMembers(r).getFiltered(t)||[];for(let e of o){let t=e.name;if(e.isKind(j.Table)&&a===t)return n.create(e)}let s=e.lookupMembers(r,j.Table,a);return s?n.create(s):new n(void 0,[new b(y.BINDING_ERROR,`Could not find table '${a}'`,i)])}function Qd(e,t,r,i){let a=Eu(r);if(a===void 0)return n.create(void 0);let o=e.lookupMembers(t,i,a);return o?n.create(o):new n(void 0,[new b(y.BINDING_ERROR,`Could not find ${i===j.StickyNote?`note`:`tablegroup`} '${a}'`,r)])}function $d(e,t,r){let i=Eu(r);if(i===void 0)return n.create(void 0);let a=e.lookupMembers(t,j.Schema,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Could not find schema '${i}'`,r)])}var ef=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof R)return[];let t=e.body.filter(e=>e instanceof F);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},tf=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.symbol=t,this.filepath=n,this.enum={values:[]}}interpret(){this.enum.token=A(this.declarationNode);let e=[...this.interpretName(),...this.interpretBody(this.declarationNode.body)];return n.create(this.enum,e)}interpretName(){let{name:e,schema:t}=this.symbol.interpretedName(this.compiler,this.filepath);return this.enum.name=e,this.enum.schemaName=t,[]}interpretBody(e){return e.body.flatMap(e=>{let t=e,n={};n.token=A(t),n.name=k(t.callee);let r=x(t.args[0]).getValue().note?.at(0);return n.note=r&&{value:ku(O(r.value)),token:A(r)},this.enum.values.push(n),[]})}};const nf={getDuplicateError(e,t,n){return new b(y.DUPLICATE_NAME,`Enum '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new b(y.DUPLICATE_COLUMN_NAME,`Duplicate enum field '${e}'`,t)}},rf={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return T(a,r.Enum)?new n(i.symbolFactory.create(Ru,{declaration:a,name:o},a.filepath)):E(a,r.Enum)?new n(i.symbolFactory.create(zu,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(j.Enum))return n.create(e);let a=i.declaration;if(!(a instanceof F))return new n([]);let o=bu(a),s=[],c=[];for(let e of o){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(s.push(i),c.push(...n.getErrors()))}let l=new Map;for(let e of s){if(!e.isKind(j.EnumField)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration,r=l.get(t);r?(c.push(nf.getFieldDuplicateError(t,r)),c.push(nf.getFieldDuplicateError(t,n))):l.set(t,n)}}return new n(s,c)},bindNode(i,a){if(!T(a,r.Enum))return n.create(e);let o=new ef(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,r,i){return r instanceof Ru?new tf(t,r,i).interpret():n.create(e)}};var af=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof F)||!this.declarationNode.parent.isKind(r.Table)&&!this.declarationNode.parent.isKind(r.TablePartial)||!(this.declarationNode.body instanceof z)?[]:this.bindBody(this.declarationNode.body)}get ownerContainerKind(){return this.declarationNode.parent.isKind(r.TablePartial)?`TablePartial`:`Table`}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=g(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let n=D(this.declarationNode.parent.name)?.join(`.`)??`<unnamed>`;return[e.callee,...e.args].flatMap(Vd).flatMap(e=>e.variables.length>1?[]:e.variables.length?e.variables[0]:e.tupleElements).flatMap(e=>{let r=Eu(e);if(r===void 0)return[];let i=this.compiler.nodeReferee(e);return!i.getValue()||i.hasValue(t)?new b(y.BINDING_ERROR,`No column named '${r}' inside ${this.ownerContainerKind} '${n}'`,e):[]})})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},of=class{constructor(e,t){this.compiler=e,this.node=t}interpret(){let e=this.node.body;return e instanceof z?new n(e.body.flatMap(e=>{if(!(e instanceof R)||!e.callee)return[];let n=[],r=A(e),a=[e.callee,...e.args],o,s,c,l,u;h(a)instanceof B&&a.pop();let d=this.compiler.nodeSettings(e).getFiltered(t);if(d){o=!!d[i.PK]?.length||void 0,s=!!d[i.Unique]?.length||void 0,c=O(d[i.Name]?.at(0)?.value);let e=d[i.Note]?.at(0);if(e){let t=O(e.value);t!==void 0&&(l={value:t,token:A(e)})}u=k(d[i.Type]?.at(0)?.value)}let f=a.flatMap(e=>{if(!(e instanceof V))return e;let t=[],n=e;for(;n instanceof V&&(n.argumentList&&t.push(n.argumentList),n.callee);)n=n.callee;return t.push(n),t});for(let e of f){let t=Cu(e);if(t){for(let e of t.functional)n.push({value:e.value?.value??``,type:`expression`,token:A(e)});for(let e of t.nonFunctional)n.push({value:Eu(e)??``,type:`column`,token:A(e)})}}return[{columns:n,pk:o,unique:s,name:c,note:l,type:u,token:r}]})):new n([])}};const sf={nodeMetadata(t,i){if(!T(i,r.Indexes))return n.create(e);let a=i.parent;return!a||!T(a,r.Table)&&!T(a,r.TablePartial)?n.create(e):n.create(new Ed(i))},nodeReferee(i,a){if(!C(a)||lu(a))return n.create(e);let o=a;for(;o&&!T(o,r.Indexes);)o=o.parent;if(!o)return n.create(e);let s=o.parent;if(!s||!T(s,r.Table)&&!T(s,r.TablePartial))return n.create(e);let c=i.nodeSymbol(s).getFiltered(t);if(!c)return new n(void 0);let l=C(a)?a.expression.variable?.value??``:``,u=i.lookupMembers(c,j.Column,l);if(u)return n.create(u);let d=T(s,r.TablePartial)?`TablePartial`:`Table`;return new n(void 0,[new b(y.BINDING_ERROR,`Column '${l}' does not exist in ${d} 'public.${c.name}'`,a)])},bindNode(t,i){return T(i,r.Indexes)?n.create(void 0,new af(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===xd.Indexes?r.declaration instanceof F?new of(t,r.declaration).interpret():n.create(void 0):n.create(e)}};function cf(e,n){let r=xu(n);if(!r||r.length===0)return;let i=r[r.length-1];if(i instanceof dd){let n=[];for(let r of i.elementList){let i=e.nodeReferee(r).getFiltered(t);if(!i)return;n.push(i.originalSymbol)}return n}let a=r[r.length-1];if(!a||a instanceof dd)return;let o=e.nodeReferee(a).getFiltered(t);if(o)return[o.originalSymbol]}function lf(e,t,n,r){let i=e.map(e=>e.intern()).sort().join(`,`),a=t.map(e=>e.intern()).sort().join(`,`);if(i===a)return[new b(y.SAME_ENDPOINT,`Two endpoints are the same`,n)];let o=i<a?`${i}-${a}`:`${a}-${i}`,s=r.get(o);return s?[new b(y.CIRCULAR_REF,`References with same endpoints exist`,n),new b(y.CIRCULAR_REF,`References with same endpoints exist`,s)]:(r.set(o,n),[])}var uf=class{constructor(e,t){this.compiler=t,this.ast=e}resolve(){let e=[],i=this.compiler.reachableFiles(this.ast.filepath);for(let n of i){let{ast:i}=this.compiler.parseFile(n).getFiltered(t)||{ast:void 0};if(!i)continue;let a=i.body.filter(e=>e instanceof F&&e.isKind(r.Project));a.length>1&&a.forEach(t=>e.push(new b(y.PROJECT_REDEFINED,`Only one project can exist`,t)));for(let t of i.body)if(t instanceof F&&t.type){let n=t;e.push(...this.compiler.bindNode(n).getErrors())}else e.push(...this.compiler.bindNode(t).getErrors())}let a=this.compiler.nodeSymbol(this.ast).getFiltered(t);return a&&e.push(...df(this.compiler,a)),e.push(...this.checkDuplicateRefs()),e.push(...this.checkTableGroups()),new n(void 0,e)}checkDuplicateRefs(){let e=[],n=new Map,i=this.compiler.reachableFiles(this.ast.filepath);for(let a of i){let i=this.compiler.parseFile(a).getFiltered(t);if(!i)continue;let{ast:o}=i;for(let t of o.body){if(!(t instanceof F)||!t.type)continue;let i=t;T(i,r.Ref)&&e.push(...this.checkStandaloneRefs(i,n)),T(i,r.Table)&&e.push(...this.checkInlineRefs(i,n)),T(i,r.TablePartial)&&e.push(...this.checkTablePartialSelfRefs(i))}}return e}checkStandaloneRefs(e,t){let n=[];for(let r of bu(e)){if(!(r instanceof R)||!r.callee||!du(r.callee))continue;let i=r.callee;if(!i.leftExpression||!i.rightExpression)continue;let a=cf(this.compiler,i.leftExpression),o=cf(this.compiler,i.rightExpression);!a||!o||n.push(...lf(a,o,e,t))}return n}checkInlineRefs(e,n){let r=[];for(let a of bu(e)){if(!(a instanceof R)||!a.callee)continue;let e=this.compiler.nodeSymbol(a).getFiltered(t);if(!e)continue;let o=this.compiler.nodeSettings(a).getFiltered(t);if(!o)continue;let s=o[i.Ref];if(!(!s||s.length===0))for(let t of s){let i=t.value;if(!(i instanceof L)||!i.op||!Jl(i.op.value)||!i.expression)continue;let a=cf(this.compiler,i.expression);if(!a)continue;let o=[e.originalSymbol];r.push(...lf(o,a,t,n))}}return r}checkTablePartialSelfRefs(e){let n=[];for(let r of bu(e)){if(!(r instanceof R)||!r.callee)continue;let e=k(r.callee);if(!e)continue;let a=this.compiler.nodeSettings(r).getFiltered(t);if(!a)continue;let o=a[i.Ref];if(!(!o||o.length===0))for(let t of o){let r=t.value;r instanceof L&&(!r.op||!Jl(r.op.value)||r.expression&&C(r.expression)&&r.expression.expression.variable?.value===e&&n.push(new b(y.SAME_ENDPOINT,`Two endpoints are the same`,t)))}}return n}checkTableGroups(){let e=[],n=new Map,i=this.compiler.reachableFiles(this.ast.filepath);for(let a of i){let i=this.compiler.parseFile(a).getFiltered(t);if(!i)continue;let{ast:o}=i;for(let i of o.body){if(!(i instanceof F)||!i.type)continue;let a=i;if(!T(a,r.TableGroup))continue;let o=a.name?D(a.name):void 0,s=o?o.join(`.`):`<unknown>`,c=bu(a);for(let r of c){if(!(r instanceof R)||!r.callee)continue;let i=xu(r.callee);if(!i||i.length===0)continue;let a=i[i.length-1],o=this.compiler.nodeReferee(a).getFiltered(t)?.originalSymbol;if(!o)continue;let c=n.get(o.id);if(c){let t=D(r.callee),n=t?t.join(`.`):`<unknown>`;e.push(new b(y.TABLE_REAPPEAR_IN_TABLEGROUP,`Table "${n}" already appears in group "${c.groupName}"`,r))}else n.set(o.id,{groupName:s,node:r})}}}return e}};function df(e,n,r=new Set){if(r.has(n.id))return[];r.add(n.id);let i=e.symbolMembers(n),a=[...i.getErrors()],o=i.getFiltered(t);if(!o)return a;for(let t of o)t instanceof Lu&&a.push(...df(e,t,r));return a}function ff(e,t,n){t.isKind(j.Table)?e.externals.tables.push(n):t.isKind(j.Enum)?e.externals.enums.push(n):t.isKind(j.TableGroup)?e.externals.tableGroups.push(n):t.isKind(j.TablePartial)?e.externals.tablePartials.push(n):t.isKind(j.StickyNote)&&e.externals.notes.push(n)}var pf={mysql:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`,`mediumint`]),postgres:new Set([`int`,`integer`,`smallint`,`bigint`,`serial`,`bigserial`,`smallserial`]),mssql:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`]),oracle:new Set([`int`,`integer`,`smallint`]),snowflake:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`])},mf={mysql:new Set([`decimal`,`numeric`,`float`,`double`,`real`]),postgres:new Set([`decimal`,`numeric`,`real`,`float`,`double precision`]),mssql:new Set([`decimal`,`numeric`,`real`,`float`]),oracle:new Set([`number`,`decimal`,`numeric`,`float`,`real`]),snowflake:new Set([`number`,`decimal`,`numeric`,`float`,`double`,`real`])},hf={mysql:new Set([`bool`,`boolean`,`bit`]),postgres:new Set([`bool`,`boolean`]),mssql:new Set([`bit`]),oracle:new Set([]),snowflake:new Set([`boolean`])},gf={mysql:new Set([`varchar`,`char`,`text`,`tinytext`,`mediumtext`,`longtext`,`string`]),postgres:new Set([`varchar`,`char`,`character`,`character varying`,`text`,`string`]),mssql:new Set([`varchar`,`char`,`nvarchar`,`nchar`,`text`,`ntext`,`string`]),oracle:new Set([`varchar`,`varchar2`,`char`,`nvarchar2`,`nchar`,`string`]),snowflake:new Set([`varchar`,`char`,`text`,`string`])},_f={mysql:new Set([`binary`,`varbinary`,`blob`,`tinyblob`,`mediumblob`,`longblob`]),postgres:new Set([`bytea`]),mssql:new Set([`binary`,`varbinary`]),oracle:new Set([`blob`,`raw`]),snowflake:new Set([`binary`,`varbinary`])},vf={mysql:new Set([`date`,`datetime`,`timestamp`,`time`]),postgres:new Set([`date`,`timestamp`,`timestamptz`,`timestamp with time zone`,`timestamp without time zone`,`time`,`timetz`,`time with time zone`,`time without time zone`]),mssql:new Set([`date`,`datetime`,`datetime2`,`smalldatetime`,`time`]),oracle:new Set([`date`,`timestamp`,`timestamp with time zone`,`timestamp with local time zone`]),snowflake:new Set([`date`,`datetime`,`timestamp`,`time`])},yf={mysql:new Set([]),postgres:new Set([`serial`,`smallserial`,`bigserial`]),mssql:new Set([]),oracle:new Set([]),snowflake:new Set([])};function bf(e){return e.toLowerCase().trim().replace(/\s+/g,` `)}function xf(e,t){let n=bf(e);return t?pf[t].has(n):Object.values(pf).some(e=>e.has(n))}function Sf(e,t){let n=bf(e);return t?mf[t].has(n):Object.values(mf).some(e=>e.has(n))}function Cf(e,t){return xf(e,t)||Sf(e,t)}function wf(e,t){let n=bf(e);return t?hf[t].has(n):Object.values(hf).some(e=>e.has(n))}function Tf(e,t){let n=bf(e);return t?gf[t].has(n):Object.values(gf).some(e=>e.has(n))}function Ef(e,t){let n=bf(e);return t?_f[t].has(n):Object.values(_f).some(e=>e.has(n))}function Df(e,t){let n=bf(e);return t?vf[t].has(n):Object.values(vf).some(e=>e.has(n))}function Of(e,t){let n=bf(e);return t?yf[t].has(n):Object.values(yf).some(e=>e.has(n))}function kf(e,t){if(t)return`string`;if(xf(e))return`integer`;if(Sf(e))return`real`;if(wf(e))return`bool`;if(Tf(e))return`string`;let n=bf(e);return n===`date`?`date`:n===`time`||n===`timetz`||n===`time with time zone`||n===`time without time zone`?`time`:Df(e)?`datetime`:e}var Af=class extends Error{},jf=class extends Af{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Mf=class extends Af{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Nf=class extends Af{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Pf=class extends Af{},Ff=class extends Af{constructor(e){super(`Invalid unit ${e}`)}},If=class extends Af{},Lf=class extends Af{constructor(){super(`Zone is an abstract class`)}},U=`numeric`,Rf=`short`,zf=`long`,Bf={year:U,month:U,day:U},Vf={year:U,month:Rf,day:U},Hf={year:U,month:Rf,day:U,weekday:Rf},Uf={year:U,month:zf,day:U},Wf={year:U,month:zf,day:U,weekday:zf},Gf={hour:U,minute:U},Kf={hour:U,minute:U,second:U},qf={hour:U,minute:U,second:U,timeZoneName:Rf},Jf={hour:U,minute:U,second:U,timeZoneName:zf},Yf={hour:U,minute:U,hourCycle:`h23`},Xf={hour:U,minute:U,second:U,hourCycle:`h23`},Zf={hour:U,minute:U,second:U,hourCycle:`h23`,timeZoneName:Rf},Qf={hour:U,minute:U,second:U,hourCycle:`h23`,timeZoneName:zf},$f={year:U,month:U,day:U,hour:U,minute:U},ep={year:U,month:U,day:U,hour:U,minute:U,second:U},tp={year:U,month:Rf,day:U,hour:U,minute:U},np={year:U,month:Rf,day:U,hour:U,minute:U,second:U},rp={year:U,month:Rf,day:U,weekday:Rf,hour:U,minute:U},ip={year:U,month:zf,day:U,hour:U,minute:U,timeZoneName:Rf},ap={year:U,month:zf,day:U,hour:U,minute:U,second:U,timeZoneName:Rf},op={year:U,month:zf,day:U,weekday:zf,hour:U,minute:U,timeZoneName:zf},sp={year:U,month:zf,day:U,weekday:zf,hour:U,minute:U,second:U,timeZoneName:zf},cp=class{get type(){throw new Lf}get name(){throw new Lf}get ianaName(){return this.name}get isUniversal(){throw new Lf}offsetName(e,t){throw new Lf}formatOffset(e,t){throw new Lf}offset(e){throw new Lf}equals(e){throw new Lf}get isValid(){throw new Lf}},lp=null,up=class e extends cp{static get instance(){return lp===null&&(lp=new e),lp}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Xm(e,t,n)}formatOffset(e,t){return eh(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},dp=new Map;function fp(e){let t=dp.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,era:`short`}),dp.set(e,t)),t}var pp={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function mp(e,t){let n=e.format(t).replace(/\u200E/g,``),[,r,i,a,o,s,c,l]=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n);return[a,r,i,o,s,c,l]}function hp(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=pp[t];t===`era`?r[a]=i:G(a)||(r[a]=parseInt(i,10))}return r}var gp=new Map,_p=class e extends cp{static create(t){let n=gp.get(t);return n===void 0&&gp.set(t,n=new e(t)),n}static resetCache(){gp.clear(),dp.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e}).format(),!0}catch{return!1}}constructor(t){super(),this.zoneName=t,this.valid=e.isValidZone(t)}get type(){return`iana`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Xm(e,t,n,this.name)}formatOffset(e,t){return eh(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=fp(this.name),[r,i,a,o,s,c,l]=n.formatToParts?hp(n,t):mp(n,t);o===`BC`&&(r=-Math.abs(r)+1);let u=Km({year:r,month:i,day:a,hour:s===24?0:s,minute:c,second:l,millisecond:0}),d=+t,f=d%1e3;return d-=f>=0?f:1e3+f,(u-d)/(60*1e3)}equals(e){return e.type===`iana`&&e.name===this.name}get isValid(){return this.valid}},vp={};function yp(e,t={}){let n=JSON.stringify([e,t]),r=vp[n];return r||(r=new Intl.ListFormat(e,t),vp[n]=r),r}var bp=new Map;function xp(e,t={}){let n=JSON.stringify([e,t]),r=bp.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),bp.set(n,r)),r}var Sp=new Map;function Cp(e,t={}){let n=JSON.stringify([e,t]),r=Sp.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),Sp.set(n,r)),r}var wp=new Map;function Tp(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=wp.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),wp.set(i,a)),a}var Ep=null;function Dp(){return Ep||(Ep=new Intl.DateTimeFormat().resolvedOptions().locale,Ep)}var Op=new Map;function kp(e){let t=Op.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),Op.set(e,t)),t}var Ap=new Map;function jp(e){let t=Ap.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...Vp,...t}),Ap.set(e,t)}return t}function Mp(e){let t=e.indexOf(`-x-`);t!==-1&&(e=e.substring(0,t));let n=e.indexOf(`-u-`);if(n===-1)return[e];{let t,r;try{t=xp(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=xp(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function Np(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function Pp(e){let t=[];for(let n=1;n<=12;n++){let r=B_.utc(2009,n,1);t.push(e(r))}return t}function Fp(e){let t=[];for(let n=1;n<=7;n++){let r=B_.utc(2016,11,13+n);t.push(e(r))}return t}function Ip(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function Lp(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||kp(e.locale).numberingSystem===`latn`}var Rp=class{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:r,floor:i,...a}=n;if(!t||Object.keys(a).length>0){let t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=Cp(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return Rm(this.floor?Math.floor(e):Hm(e,3),this.padTo)}},zp=class{constructor(e,t,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type===`fixed`){let t=-1*(e.offset/60),n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;e.offset!==0&&_p.create(n).valid?(r=n,this.dt=e):(r=`UTC`,this.dt=e.offset===0?e:e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type===`system`?this.dt=e:e.zone.type===`iana`?(this.dt=e,r=e.zone.name):(r=`UTC`,this.dt=e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone);let i={...this.opts};i.timeZone=i.timeZone||r,this.dtf=xp(t,i)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(``):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(e=>{if(e.type===`timeZoneName`){let t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}else return e}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},Bp=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&km()&&(this.rtf=Tp(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):yh(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Vp={firstDay:1,minimalDays:4,weekend:[6,7]},W=class e{static fromOpts(t){return e.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,a=!1){let o=t||sm.defaultLocale;return new e(o||(a?`en-US`:Dp()),n||sm.defaultNumberingSystem,r||sm.defaultOutputCalendar,Fm(i)||sm.defaultWeekSettings,o)}static resetCache(){Ep=null,bp.clear(),Sp.clear(),wp.clear(),Op.clear(),Ap.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return e.create(t,n,r,i)}constructor(e,t,n,r,i){let[a,o,s]=Mp(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=Np(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached??=Lp(this),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem===`latn`)&&(this.outputCalendar===null||this.outputCalendar===`gregory`);return e&&t?`en`:`intl`}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:e.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,Fm(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return Ip(this,e,ah,()=>{let n=this.intl===`ja`||this.intl.startsWith(`ja-`);t&=!n;let r=t?{month:e,day:`numeric`}:{month:e},i=t?`format`:`standalone`;if(!this.monthsCache[i][e]){let t=n?e=>this.dtFormatter(e,r).format():e=>this.extract(e,r,`month`);this.monthsCache[i][e]=Pp(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return Ip(this,e,lh,()=>{let n=t?{weekday:e,year:`numeric`,month:`long`,day:`numeric`}:{weekday:e},r=t?`format`:`standalone`;return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=Fp(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return Ip(this,void 0,()=>uh,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[B_.utc(2016,11,13,9),B_.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return Ip(this,e,mh,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[B_.utc(-40,1,1),B_.utc(2017,1,1)].map(e=>this.extract(e,t,`era`))),this.eraCache[e]})}extract(e,t,n){let r=this.dtFormatter(e,t).formatToParts().find(e=>e.type.toLowerCase()===n);return r?r.value:null}numberFormatter(e={}){return new Rp(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new zp(e,this.intl,t)}relFormatter(e={}){return new Bp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return yp(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||kp(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:Am()?jp(this.locale):Vp}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Hp=null,Up=class e extends cp{static get utcInstance(){return Hp===null&&(Hp=new e(0)),Hp}static instance(t){return t===0?e.utcInstance:new e(t)}static parseSpecifier(t){if(t){let n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new e(Zm(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${eh(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${eh(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return eh(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type===`fixed`&&e.fixed===this.fixed}get isValid(){return!0}},Wp=class extends cp{constructor(e){super(),this.zoneName=e}get type(){return`invalid`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return``}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Gp(e,t){if(G(e)||e===null)return t;if(e instanceof cp)return e;if(Dm(e)){let n=e.toLowerCase();return n===`default`?t:n===`local`||n===`system`?up.instance:n===`utc`||n===`gmt`?Up.utcInstance:Up.parseSpecifier(n)||_p.create(e)}else if(Tm(e))return Up.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new Wp(e)}var Kp={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},qp={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Jp=Kp.hanidec.replace(/[\[|\]]/g,``).split(``);function Yp(e){let t=parseInt(e,10);if(isNaN(t)){t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(e[n].search(Kp.hanidec)!==-1)t+=Jp.indexOf(e[n]);else for(let e in qp){let[n,i]=qp[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}var Xp=new Map;function Zp(){Xp.clear()}function Qp({numberingSystem:e},t=``){let n=e||`latn`,r=Xp.get(n);r===void 0&&(r=new Map,Xp.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${Kp[n]}${t}`),r.set(t,i)),i}var $p=()=>Date.now(),em=`system`,tm=null,nm=null,rm=null,im=60,am,om=null,sm=class{static get now(){return $p}static set now(e){$p=e}static set defaultZone(e){em=e}static get defaultZone(){return Gp(em,up.instance)}static get defaultLocale(){return tm}static set defaultLocale(e){tm=e}static get defaultNumberingSystem(){return nm}static set defaultNumberingSystem(e){nm=e}static get defaultOutputCalendar(){return rm}static set defaultOutputCalendar(e){rm=e}static get defaultWeekSettings(){return om}static set defaultWeekSettings(e){om=Fm(e)}static get twoDigitCutoffYear(){return im}static set twoDigitCutoffYear(e){im=e%100}static get throwOnInvalid(){return am}static set throwOnInvalid(e){am=e}static resetCaches(){W.resetCache(),_p.resetCache(),B_.resetCache(),Zp()}},cm=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},lm=[0,31,59,90,120,151,181,212,243,273,304,334],um=[0,31,60,91,121,152,182,213,244,274,305,335];function dm(e,t){return new cm(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function fm(e,t,n){let r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let i=r.getUTCDay();return i===0?7:i}function pm(e,t,n){return n+(Um(e)?um:lm)[t-1]}function mm(e,t){let n=Um(e)?um:lm,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function hm(e,t){return(e-t+7)%7+1}function gm(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=pm(r,i,a),s=hm(fm(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=Jm(l,t,n)):c>Jm(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...th(e)}}function _m(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=hm(fm(r,1,t),n),s=Wm(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=Wm(l)):c>s?(l=r+1,c-=Wm(r)):l=r;let{month:u,day:d}=mm(l,c);return{year:l,month:u,day:d,...th(e)}}function vm(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:pm(t,n,r),...th(e)}}function ym(e){let{year:t,ordinal:n}=e,{month:r,day:i}=mm(t,n);return{year:t,month:r,day:i,...th(e)}}function bm(e,t){if(!G(e.localWeekday)||!G(e.localWeekNumber)||!G(e.localWeekYear)){if(!G(e.weekday)||!G(e.weekNumber)||!G(e.weekYear))throw new Pf(`Cannot mix locale-based week fields with ISO-based week fields`);return G(e.localWeekday)||(e.weekday=e.localWeekday),G(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),G(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function xm(e,t=4,n=1){let r=Em(e.weekYear),i=Im(e.weekNumber,1,Jm(e.weekYear,t,n)),a=Im(e.weekday,1,7);return r?i?a?!1:dm(`weekday`,e.weekday):dm(`week`,e.weekNumber):dm(`weekYear`,e.weekYear)}function Sm(e){let t=Em(e.year),n=Im(e.ordinal,1,Wm(e.year));return t?n?!1:dm(`ordinal`,e.ordinal):dm(`year`,e.year)}function Cm(e){let t=Em(e.year),n=Im(e.month,1,12),r=Im(e.day,1,Gm(e.year,e.month));return t?n?r?!1:dm(`day`,e.day):dm(`month`,e.month):dm(`year`,e.year)}function wm(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=Im(t,0,23)||t===24&&n===0&&r===0&&i===0,o=Im(n,0,59),s=Im(r,0,59),c=Im(i,0,999);return a?o?s?c?!1:dm(`millisecond`,i):dm(`second`,r):dm(`minute`,n):dm(`hour`,t)}function G(e){return e===void 0}function Tm(e){return typeof e==`number`}function Em(e){return typeof e==`number`&&e%1==0}function Dm(e){return typeof e==`string`}function Om(e){return Object.prototype.toString.call(e)===`[object Date]`}function km(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function Am(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function jm(e){return Array.isArray(e)?e:[e]}function Mm(e,t,n){if(e.length!==0)return e.reduce((e,r)=>{let i=[t(r),r];return e&&n(e[0],i[0])===e[0]?e:i},null)[1]}function Nm(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function Pm(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Fm(e){if(e==null)return null;if(typeof e!=`object`)throw new If(`Week settings must be an object`);if(!Im(e.firstDay,1,7)||!Im(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!Im(e,1,7)))throw new If(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function Im(e,t,n){return Em(e)&&e>=t&&e<=n}function Lm(e,t){return e-t*Math.floor(e/t)}function Rm(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function zm(e){if(!(G(e)||e===null||e===``))return parseInt(e,10)}function Bm(e){if(!(G(e)||e===null||e===``))return parseFloat(e)}function Vm(e){if(!(G(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function Hm(e,t,n=`round`){let r=10**t;switch(n){case`expand`:return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case`trunc`:return Math.trunc(e*r)/r;case`round`:return Math.round(e*r)/r;case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:throw RangeError(`Value rounding ${n} is out of range`)}}function Um(e){return e%4==0&&(e%100!=0||e%400==0)}function Wm(e){return Um(e)?366:365}function Gm(e,t){let n=Lm(t-1,12)+1,r=e+(t-n)/12;return n===2?Um(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Km(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function qm(e,t,n){return-hm(fm(e,1,t),n)+t-1}function Jm(e,t=4,n=1){let r=qm(e,t,n),i=qm(e+1,t,n);return(Wm(e)-r+i)/7}function Ym(e){return e>99?e:e>sm.twoDigitCutoffYear?1900+e:2e3+e}function Xm(e,t,n,r=null){let i=new Date(e),a={hourCycle:`h23`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};r&&(a.timeZone=r);let o={timeZoneName:t,...a},s=new Intl.DateTimeFormat(n,o).formatToParts(i).find(e=>e.type.toLowerCase()===`timezonename`);return s?s.value:null}function Zm(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);let r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function Qm(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new If(`Invalid unit value ${e}`);return t}function $m(e,t){let n={};for(let r in e)if(Pm(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=Qm(i)}return n}function eh(e,t){let n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?`+`:`-`;switch(t){case`short`:return`${i}${Rm(n,2)}:${Rm(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${Rm(n,2)}${Rm(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function th(e){return Nm(e,[`hour`,`minute`,`second`,`millisecond`])}var nh=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],rh=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],ih=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`];function ah(e){switch(e){case`narrow`:return[...ih];case`short`:return[...rh];case`long`:return[...nh];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,`12`];case`2-digit`:return[`01`,`02`,`03`,`04`,`05`,`06`,`07`,`08`,`09`,`10`,`11`,`12`];default:return null}}var oh=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],sh=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],ch=[`M`,`T`,`W`,`T`,`F`,`S`,`S`];function lh(e){switch(e){case`narrow`:return[...ch];case`short`:return[...sh];case`long`:return[...oh];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}var uh=[`AM`,`PM`],dh=[`Before Christ`,`Anno Domini`],fh=[`BC`,`AD`],ph=[`B`,`A`];function mh(e){switch(e){case`narrow`:return[...ph];case`short`:return[...fh];case`long`:return[...dh];default:return null}}function hh(e){return uh[e.hour<12?0:1]}function gh(e,t){return lh(t)[e.weekday-1]}function _h(e,t){return ah(t)[e.month-1]}function vh(e,t){return mh(t)[e.year<0?0:1]}function yh(e,t,n=`always`,r=!1){let i={years:[`year`,`yr.`],quarters:[`quarter`,`qtr.`],months:[`month`,`mo.`],weeks:[`week`,`wk.`],days:[`day`,`day`,`days`],hours:[`hour`,`hr.`],minutes:[`minute`,`min.`],seconds:[`second`,`sec.`]},a=[`hours`,`minutes`,`seconds`].indexOf(e)===-1;if(n===`auto`&&a){let n=e===`days`;switch(t){case 1:return n?`tomorrow`:`next ${i[e][0]}`;case-1:return n?`yesterday`:`last ${i[e][0]}`;case 0:return n?`today`:`this ${i[e][0]}`}}let o=Object.is(t,-0)||t<0,s=Math.abs(t),c=s===1,l=i[e],u=r?c?l[1]:l[2]||l[1]:c?i[e][0]:e;return o?`${s} ${u} ago`:`in ${s} ${u}`}function bh(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}var xh={D:Bf,DD:Vf,DDD:Uf,DDDD:Wf,t:Gf,tt:Kf,ttt:qf,tttt:Jf,T:Yf,TT:Xf,TTT:Zf,TTTT:Qf,f:$f,ff:tp,fff:ip,ffff:op,F:ep,FF:np,FFF:ap,FFFF:sp},Sh=class e{static create(t,n={}){return new e(t,n)}static parseFormat(e){let t=null,n=``,r=!1,i=[];for(let a=0;a<e.length;a++){let o=e.charAt(a);o===`'`?((n.length>0||r)&&i.push({literal:r||/^\s+$/.test(n),val:n===``?`'`:n}),t=null,n=``,r=!r):r||o===t?n+=o:(n.length>0&&i.push({literal:/^\s+$/.test(n),val:n}),n=o,t=o)}return n.length>0&&i.push({literal:r||/^\s+$/.test(n),val:n}),i}static macroTokenToFormatOpts(e){return xh[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return Rm(e,t);let r={...this.opts};return t>0&&(r.padTo=t),n&&(r.signDisplay=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(t,n){let r=this.loc.listingMode()===`en`,i=this.loc.outputCalendar&&this.loc.outputCalendar!==`gregory`,a=(e,n)=>this.loc.extract(t,e,n),o=e=>t.isOffsetFixed&&t.offset===0&&e.allowZ?`Z`:t.isValid?t.zone.formatOffset(t.ts,e.format):``,s=()=>r?hh(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?_h(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?gh(t,e):a(n?{weekday:e}:{weekday:e,month:`long`,day:`numeric`},`weekday`),u=n=>{let r=e.macroTokenToFormatOpts(n);return r?this.formatWithSystemDefault(t,r):n},d=e=>r?vh(t,e):a({era:e},`era`);return bh(e.parseFormat(n),e=>{switch(e){case`S`:return this.num(t.millisecond);case`u`:case`SSS`:return this.num(t.millisecond,3);case`s`:return this.num(t.second);case`ss`:return this.num(t.second,2);case`uu`:return this.num(Math.floor(t.millisecond/10),2);case`uuu`:return this.num(Math.floor(t.millisecond/100));case`m`:return this.num(t.minute);case`mm`:return this.num(t.minute,2);case`h`:return this.num(t.hour%12==0?12:t.hour%12);case`hh`:return this.num(t.hour%12==0?12:t.hour%12,2);case`H`:return this.num(t.hour);case`HH`:return this.num(t.hour,2);case`Z`:return o({format:`narrow`,allowZ:this.opts.allowZ});case`ZZ`:return o({format:`short`,allowZ:this.opts.allowZ});case`ZZZ`:return o({format:`techie`,allowZ:this.opts.allowZ});case`ZZZZ`:return t.zone.offsetName(t.ts,{format:`short`,locale:this.loc.locale});case`ZZZZZ`:return t.zone.offsetName(t.ts,{format:`long`,locale:this.loc.locale});case`z`:return t.zoneName;case`a`:return s();case`d`:return i?a({day:`numeric`},`day`):this.num(t.day);case`dd`:return i?a({day:`2-digit`},`day`):this.num(t.day,2);case`c`:return this.num(t.weekday);case`ccc`:return l(`short`,!0);case`cccc`:return l(`long`,!0);case`ccccc`:return l(`narrow`,!0);case`E`:return this.num(t.weekday);case`EEE`:return l(`short`,!1);case`EEEE`:return l(`long`,!1);case`EEEEE`:return l(`narrow`,!1);case`L`:return i?a({month:`numeric`,day:`numeric`},`month`):this.num(t.month);case`LL`:return i?a({month:`2-digit`,day:`numeric`},`month`):this.num(t.month,2);case`LLL`:return c(`short`,!0);case`LLLL`:return c(`long`,!0);case`LLLLL`:return c(`narrow`,!0);case`M`:return i?a({month:`numeric`},`month`):this.num(t.month);case`MM`:return i?a({month:`2-digit`},`month`):this.num(t.month,2);case`MMM`:return c(`short`,!1);case`MMMM`:return c(`long`,!1);case`MMMMM`:return c(`narrow`,!1);case`y`:return i?a({year:`numeric`},`year`):this.num(t.year);case`yy`:return i?a({year:`2-digit`},`year`):this.num(t.year.toString().slice(-2),2);case`yyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,4);case`yyyyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,6);case`G`:return d(`short`);case`GG`:return d(`long`);case`GGGGG`:return d(`narrow`);case`kk`:return this.num(t.weekYear.toString().slice(-2),2);case`kkkk`:return this.num(t.weekYear,4);case`W`:return this.num(t.weekNumber);case`WW`:return this.num(t.weekNumber,2);case`n`:return this.num(t.localWeekNumber);case`nn`:return this.num(t.localWeekNumber,2);case`ii`:return this.num(t.localWeekYear.toString().slice(-2),2);case`iiii`:return this.num(t.localWeekYear,4);case`o`:return this.num(t.ordinal);case`ooo`:return this.num(t.ordinal,3);case`q`:return this.num(t.quarter);case`qq`:return this.num(t.quarter,2);case`X`:return this.num(Math.floor(t.ts/1e3));case`x`:return this.num(t.ts);default:return u(e)}})}formatDurationFromString(t,n){let r=this.opts.signMode===`negativeLargestOnly`?-1:1,i=e=>{switch(e[0]){case`S`:return`milliseconds`;case`s`:return`seconds`;case`m`:return`minutes`;case`h`:return`hours`;case`d`:return`days`;case`w`:return`weeks`;case`M`:return`months`;case`y`:return`years`;default:return null}},a=(e,t)=>n=>{let a=i(n);if(a){let i=t.isNegativeDuration&&a!==t.largestUnit?r:1,o;return o=this.opts.signMode===`negativeLargestOnly`&&a!==t.largestUnit?`never`:this.opts.signMode===`all`?`always`:`auto`,this.num(e.get(a)*i,n.length,o)}else return n},o=e.parseFormat(n),s=o.reduce((e,{literal:t,val:n})=>t?e:e.concat(n),[]),c=t.shiftTo(...s.map(i).filter(e=>e));return bh(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},Ch=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function wh(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function Th(...e){return t=>e.reduce(([e,n,r],i)=>{let[a,o,s]=i(t,r);return[{...e,...a},o||n,s]},[{},null,1]).slice(0,2)}function Eh(e,...t){if(e==null)return[null,null];for(let[n,r]of t){let t=n.exec(e);if(t)return r(t)}return[null,null]}function Dh(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=zm(t[n+i]);return[r,null,n+i]}}var Oh=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,kh=`(?:${Oh.source}?(?:\\[(${Ch.source})\\])?)?`,Ah=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,jh=RegExp(`${Ah.source}${kh}`),Mh=RegExp(`(?:[Tt]${jh.source})?`),Nh=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Ph=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Fh=/(\d{4})-?(\d{3})/,Ih=Dh(`weekYear`,`weekNumber`,`weekDay`),Lh=Dh(`year`,`ordinal`),Rh=/(\d{4})-(\d\d)-(\d\d)/,zh=RegExp(`${Ah.source} ?(?:${Oh.source}|(${Ch.source}))?`),Bh=RegExp(`(?: ${zh.source})?`);function Vh(e,t,n){let r=e[t];return G(r)?n:zm(r)}function Hh(e,t){return[{year:Vh(e,t),month:Vh(e,t+1,1),day:Vh(e,t+2,1)},null,t+3]}function Uh(e,t){return[{hours:Vh(e,t,0),minutes:Vh(e,t+1,0),seconds:Vh(e,t+2,0),milliseconds:Vm(e[t+3])},null,t+4]}function Wh(e,t){let n=!e[t]&&!e[t+1],r=Zm(e[t+1],e[t+2]);return[{},n?null:Up.instance(r),t+3]}function Gh(e,t){return[{},e[t]?_p.create(e[t]):null,t+1]}var Kh=RegExp(`^T?${Ah.source}$`),qh=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Jh(e){let[t,n,r,i,a,o,s,c,l]=e,u=t[0]===`-`,d=c&&c[0]===`-`,f=(e,t=!1)=>e!==void 0&&(t||e&&u)?-e:e;return[{years:f(Bm(n)),months:f(Bm(r)),weeks:f(Bm(i)),days:f(Bm(a)),hours:f(Bm(o)),minutes:f(Bm(s)),seconds:f(Bm(c),c===`-0`),milliseconds:f(Vm(l),d)}]}var Yh={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Xh(e,t,n,r,i,a,o){let s={year:t.length===2?Ym(zm(t)):zm(t),month:rh.indexOf(n)+1,day:zm(r),hour:zm(i),minute:zm(a)};return o&&(s.second=zm(o)),e&&(s.weekday=e.length>3?oh.indexOf(e)+1:sh.indexOf(e)+1),s}var Zh=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Qh(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=Xh(t,i,r,n,a,o,s),p;return p=c?Yh[c]:l?0:Zm(u,d),[f,new Up(p)]}function $h(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}var eg=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,tg=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,ng=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function rg(e){let[,t,n,r,i,a,o,s]=e;return[Xh(t,i,r,n,a,o,s),Up.utcInstance]}function ig(e){let[,t,n,r,i,a,o,s]=e;return[Xh(t,s,n,r,i,a,o),Up.utcInstance]}var ag=wh(Nh,Mh),og=wh(Ph,Mh),sg=wh(Fh,Mh),cg=wh(jh),lg=Th(Hh,Uh,Wh,Gh),ug=Th(Ih,Uh,Wh,Gh),dg=Th(Lh,Uh,Wh,Gh),fg=Th(Uh,Wh,Gh);function pg(e){return Eh(e,[ag,lg],[og,ug],[sg,dg],[cg,fg])}function mg(e){return Eh($h(e),[Zh,Qh])}function hg(e){return Eh(e,[eg,rg],[tg,rg],[ng,ig])}function gg(e){return Eh(e,[qh,Jh])}var _g=Th(Uh);function vg(e){return Eh(e,[Kh,_g])}var yg=wh(Rh,Bh),bg=wh(zh),xg=Th(Uh,Wh,Gh);function Sg(e){return Eh(e,[yg,lg],[bg,xg])}var Cg=`Invalid Duration`,wg={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Tg={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...wg},Eg=146097/400,Dg=146097/4800,Og={years:{quarters:4,months:12,weeks:Eg/7,days:Eg,hours:Eg*24,minutes:Eg*24*60,seconds:Eg*24*60*60,milliseconds:Eg*24*60*60*1e3},quarters:{months:3,weeks:Eg/28,days:Eg/4,hours:Eg*24/4,minutes:Eg*24*60/4,seconds:Eg*24*60*60/4,milliseconds:Eg*24*60*60*1e3/4},months:{weeks:Dg/7,days:Dg,hours:Dg*24,minutes:Dg*24*60,seconds:Dg*24*60*60,milliseconds:Dg*24*60*60*1e3},...wg},kg=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],Ag=kg.slice(0).reverse();function jg(e,t,n=!1){return new Fg({values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix})}function Mg(e,t){let n=t.milliseconds??0;for(let r of Ag.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function Ng(e,t){let n=Mg(e,t)<0?-1:1;kg.reduceRight((r,i)=>{if(G(t[i]))return r;if(r){let a=t[r]*n,o=e[i][r],s=Math.floor(a/o);t[i]+=s*n,t[r]-=s*o*n}return i},null),kg.reduce((n,r)=>{if(G(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function Pg(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}var Fg=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?Og:Tg;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||W.create(),this.conversionAccuracy=t?`longterm`:`casual`,this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(t,n){return e.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(typeof t!=`object`||!t)throw new If(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:$m(t,e.normalizeUnit),loc:W.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(Tm(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new If(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=gg(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){let[r]=vg(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new If(`need to specify a reason the Duration is invalid`);let r=t instanceof cm?t:new cm(t,n);if(sm.throwOnInvalid)throw new Nf(r);return new e({invalid:r})}static normalizeUnit(e){let t={year:`years`,years:`years`,quarter:`quarters`,quarters:`quarters`,month:`months`,months:`months`,week:`weeks`,weeks:`weeks`,day:`days`,days:`days`,hour:`hours`,hours:`hours`,minute:`minutes`,minutes:`minutes`,second:`seconds`,seconds:`seconds`,millisecond:`milliseconds`,milliseconds:`milliseconds`}[e&&e.toLowerCase()];if(!t)throw new Ff(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?Sh.create(this.loc,n).formatDurationFromString(this,e):Cg}toHuman(e={}){if(!this.isValid)return Cg;let t=e.showZeros!==!1,n=kg.map(n=>{let r=this.values[n];return G(r)||r===0&&!t?null:this.loc.numberFormatter({style:`unit`,unitDisplay:`long`,...e,unit:n.slice(0,-1)}).format(r)}).filter(e=>e);return this.loc.listFormatter({type:`conjunction`,style:e.listStyle||`narrow`,...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e=`P`;return this.years!==0&&(e+=this.years+`Y`),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+`M`),this.weeks!==0&&(e+=this.weeks+`W`),this.days!==0&&(e+=this.days+`D`),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+=`T`),this.hours!==0&&(e+=this.hours+`H`),this.minutes!==0&&(e+=this.minutes+`M`),(this.seconds!==0||this.milliseconds!==0)&&(e+=Hm(this.seconds+this.milliseconds/1e3,3)+`S`),e===`P`&&(e+=`T0S`),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:`extended`,...e,includeOffset:!1},B_.fromMillis(t,{zone:`UTC`}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Mg(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t),r={};for(let e of kg)(Pm(n.values,e)||Pm(this.values,e))&&(r[e]=n.get(e)+this.get(e));return jg(this,{values:r},!0)}minus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let n of Object.keys(this.values))t[n]=Qm(e(this.values[n],n));return jg(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...$m(t,e.normalizeUnit)};return jg(this,{values:n})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:r}={}){let i={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:r,conversionAccuracy:n};return jg(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return Ng(this.matrix,e),jg(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=Pg(this.normalize().shiftToAll().toObject());return jg(this,{values:e},!0)}shiftTo(...t){if(!this.isValid||t.length===0)return this;t=t.map(t=>e.normalizeUnit(t));let n={},r={},i=this.toObject(),a;for(let e of kg)if(t.indexOf(e)>=0){a=e;let t=0;for(let n in r)t+=this.matrix[n][e]*r[n],r[n]=0;Tm(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else Tm(i[e])&&(r[e]=i[e]);for(let e in r)r[e]!==0&&(n[a]+=e===a?r[e]:r[e]/this.matrix[a][e]);return Ng(this.matrix,n),jg(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo(`years`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return jg(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=Pg(this.values);return jg(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(e,t){return e===void 0||e===0?t===void 0||t===0:e===t}for(let n of kg)if(!t(this.values[n],e.values[n]))return!1;return!0}},Ig=`Invalid Interval`;function Lg(e,t){return!e||!e.isValid?Rg.invalid(`missing or invalid start`):!t||!t.isValid?Rg.invalid(`missing or invalid end`):t<e?Rg.invalid(`end before start`,`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null}var Rg=class e{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(t,n=null){if(!t)throw new If(`need to specify a reason the Interval is invalid`);let r=t instanceof cm?t:new cm(t,n);if(sm.throwOnInvalid)throw new Mf(r);return new e({invalid:r})}static fromDateTimes(t,n){let r=V_(t),i=V_(n);return Lg(r,i)??new e({start:r,end:i})}static after(t,n){let r=Fg.fromDurationLike(n),i=V_(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=Fg.fromDurationLike(n),i=V_(t);return e.fromDateTimes(i.minus(r),i)}static fromISO(t,n){let[r,i]=(t||``).split(`/`,2);if(r&&i){let t,a;try{t=B_.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=B_.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=Fg.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=Fg.fromISO(r,n);if(t.isValid)return e.before(o,t)}}return e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e=`milliseconds`){return this.isValid?this.toDuration(e).get(e):NaN}count(e=`milliseconds`,t){if(!this.isValid)return NaN;let n=this.start.startOf(e,t),r;return r=t?.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,r=r.startOf(e,t),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:t,end:n}={}){return this.isValid?e.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];let n=t.map(V_).filter(e=>this.contains(e)).sort((e,t)=>e.toMillis()-t.toMillis()),r=[],{s:i}=this,a=0;for(;i<this.e;){let t=n[a]||this.e,o=+t>+this.e?this.e:t;r.push(e.fromDateTimes(i,o)),i=o,a+=1}return r}splitBy(t){let n=Fg.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as(`milliseconds`)===0)return[];let{s:r}=this,i=1,a,o=[];for(;r<this.e;){let t=this.start.plus(n.mapUnits(e=>e*i));a=+t>+this.e?this.e:t,o.push(e.fromDateTimes(r,a)),r=a,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(t){if(!this.isValid)return this;let n=this.s>t.s?this.s:t.s,r=this.e<t.e?this.e:t.e;return n>=r?null:e.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;let n=this.s<t.s?this.s:t.s,r=this.e>t.e?this.e:t.e;return e.fromDateTimes(n,r)}static merge(e){let[t,n]=e.sort((e,t)=>e.s-t.s).reduce(([e,t],n)=>t?t.overlaps(n)||t.abutsStart(n)?[e,t.union(n)]:[e.concat([t]),n]:[e,n],[[],null]);return n&&t.push(n),t}static xor(t){let n=null,r=0,i=[],a=t.map(e=>[{time:e.s,type:`s`},{time:e.e,type:`e`}]),o=Array.prototype.concat(...a).sort((e,t)=>e.time-t.time);for(let t of o)r+=t.type===`s`?1:-1,r===1?n=t.time:(n&&+n!=+t.time&&i.push(e.fromDateTimes(n,t.time)),n=null);return e.merge(i)}difference(...t){return e.xor([this].concat(t)).map(e=>this.intersection(e)).filter(e=>e&&!e.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Ig}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Bf,t={}){return this.isValid?Sh.create(this.s.loc.clone(t),e).formatInterval(this):Ig}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Ig}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Ig}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Ig}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Ig}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Fg.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},zg=class{static hasDST(e=sm.defaultZone){let t=B_.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return _p.isValidZone(e)}static normalizeZone(e){return Gp(e,sm.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||W.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||W.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||W.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||W.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return W.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return W.create(t,null,`gregory`).eras(e)}static features(){return{relative:km(),localeWeek:Am()}}};function Bg(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(Fg.fromMillis(r).as(`days`))}function Vg(e,t,n){let r=[[`years`,(e,t)=>t.year-e.year],[`quarters`,(e,t)=>t.quarter-e.quarter+(t.year-e.year)*4],[`months`,(e,t)=>t.month-e.month+(t.year-e.year)*12],[`weeks`,(e,t)=>{let n=Bg(e,t);return(n-n%7)/7}],[`days`,Bg]],i={},a=e,o,s;for(let[c,l]of r)n.indexOf(c)>=0&&(o=c,i[c]=l(e,t),s=a.plus(i),s>t?(i[c]--,e=a.plus(i),e>t&&(s=e,i[c]--,e=a.plus(i))):e=s);return[e,i,s,o]}function Hg(e,t,n,r){let[i,a,o,s]=Vg(e,t,n),c=t-i,l=n.filter(e=>[`hours`,`minutes`,`seconds`,`milliseconds`].indexOf(e)>=0);l.length===0&&(o<t&&(o=i.plus({[s]:1})),o!==i&&(a[s]=(a[s]||0)+c/(o-i)));let u=Fg.fromObject(a,r);return l.length>0?Fg.fromMillis(c,r).shiftTo(...l).plus(u):u}var Ug=`missing Intl.DateTimeFormat.formatToParts support`;function K(e,t=e=>e){return{regex:e,deser:([e])=>t(Yp(e))}}var Wg=`[ \xA0]`,Gg=new RegExp(Wg,`g`);function Kg(e){return e.replace(/\./g,`\\.?`).replace(Gg,Wg)}function qg(e){return e.replace(/\./g,``).replace(Gg,` `).toLowerCase()}function Jg(e,t){return e===null?null:{regex:RegExp(e.map(Kg).join(`|`)),deser:([n])=>e.findIndex(e=>qg(n)===qg(e))+t}}function Yg(e,t){return{regex:e,deser:([,e,t])=>Zm(e,t),groups:t}}function Xg(e){return{regex:e,deser:([e])=>e}}function Zg(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function Qg(e,t){let n=Qp(t),r=Qp(t,`{2}`),i=Qp(t,`{3}`),a=Qp(t,`{4}`),o=Qp(t,`{6}`),s=Qp(t,`{1,2}`),c=Qp(t,`{1,3}`),l=Qp(t,`{1,6}`),u=Qp(t,`{1,9}`),d=Qp(t,`{2,4}`),f=Qp(t,`{4,6}`),p=e=>({regex:RegExp(Zg(e.val)),deser:([e])=>e,literal:!0}),m=(m=>{if(e.literal)return p(m);switch(m.val){case`G`:return Jg(t.eras(`short`),0);case`GG`:return Jg(t.eras(`long`),0);case`y`:return K(l);case`yy`:return K(d,Ym);case`yyyy`:return K(a);case`yyyyy`:return K(f);case`yyyyyy`:return K(o);case`M`:return K(s);case`MM`:return K(r);case`MMM`:return Jg(t.months(`short`,!0),1);case`MMMM`:return Jg(t.months(`long`,!0),1);case`L`:return K(s);case`LL`:return K(r);case`LLL`:return Jg(t.months(`short`,!1),1);case`LLLL`:return Jg(t.months(`long`,!1),1);case`d`:return K(s);case`dd`:return K(r);case`o`:return K(c);case`ooo`:return K(i);case`HH`:return K(r);case`H`:return K(s);case`hh`:return K(r);case`h`:return K(s);case`mm`:return K(r);case`m`:return K(s);case`q`:return K(s);case`qq`:return K(r);case`s`:return K(s);case`ss`:return K(r);case`S`:return K(c);case`SSS`:return K(i);case`u`:return Xg(u);case`uu`:return Xg(s);case`uuu`:return K(n);case`a`:return Jg(t.meridiems(),0);case`kkkk`:return K(a);case`kk`:return K(d,Ym);case`W`:return K(s);case`WW`:return K(r);case`E`:case`c`:return K(n);case`EEE`:return Jg(t.weekdays(`short`,!1),1);case`EEEE`:return Jg(t.weekdays(`long`,!1),1);case`ccc`:return Jg(t.weekdays(`short`,!0),1);case`cccc`:return Jg(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return Yg(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return Yg(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return Xg(/[a-z_+-/]{1,256}?/i);case` `:return Xg(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:Ug};return m.token=e,m}var $g={year:{"2-digit":`yy`,numeric:`yyyyy`},month:{numeric:`M`,"2-digit":`MM`,short:`MMM`,long:`MMMM`},day:{numeric:`d`,"2-digit":`dd`},weekday:{short:`EEE`,long:`EEEE`},dayperiod:`a`,dayPeriod:`a`,hour12:{numeric:`h`,"2-digit":`hh`},hour24:{numeric:`H`,"2-digit":`HH`},minute:{numeric:`m`,"2-digit":`mm`},second:{numeric:`s`,"2-digit":`ss`},timeZoneName:{long:`ZZZZZ`,short:`ZZZ`}};function e_(e,t,n){let{type:r,value:i}=e;if(r===`literal`){let e=/^\s+$/.test(i);return{literal:!e,val:e?` `:i}}let a=t[r],o=r;r===`hour`&&(o=t.hour12==null?t.hourCycle==null?n.hour12?`hour12`:`hour24`:t.hourCycle===`h11`||t.hourCycle===`h12`?`hour12`:`hour24`:t.hour12?`hour12`:`hour24`);let s=$g[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function t_(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function n_(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(Pm(n,i)){let a=n[i],o=a.groups?a.groups+1:1;!a.literal&&a.token&&(e[a.token.val[0]]=a.deser(r.slice(t,t+o))),t+=o}return[r,e]}else return[r,{}]}function r_(e){let t=e=>{switch(e){case`S`:return`millisecond`;case`s`:return`second`;case`m`:return`minute`;case`h`:case`H`:return`hour`;case`d`:return`day`;case`o`:return`ordinal`;case`L`:case`M`:return`month`;case`y`:return`year`;case`E`:case`c`:return`weekday`;case`W`:return`weekNumber`;case`k`:return`weekYear`;case`q`:return`quarter`;default:return null}},n=null,r;return G(e.z)||(n=_p.create(e.z)),G(e.Z)||(n||=new Up(e.Z),r=e.Z),G(e.q)||(e.M=(e.q-1)*3+1),G(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),G(e.u)||(e.S=Vm(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}var i_=null;function a_(){return i_||=B_.fromMillis(1555555555555),i_}function o_(e,t){if(e.literal)return e;let n=d_(Sh.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function s_(e,t){return Array.prototype.concat(...e.map(e=>o_(e,t)))}var c_=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=s_(Sh.parseFormat(t),e),this.units=this.tokens.map(t=>Qg(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=t_(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=n_(e,this.regex,this.handlers),[r,i,a]=n?r_(n):[null,null,void 0];if(Pm(n,`a`)&&Pm(n,`H`))throw new Pf(`Can't include meridiem when specifying 24-hour format`);return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:r,zone:i,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function l_(e,t,n){return new c_(e,n).explainFromTokens(t)}function u_(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=l_(e,t,n);return[r,i,a,o]}function d_(e,t){if(!e)return null;let n=Sh.create(t,e).dtFormatter(a_()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>e_(t,e,i))}var f_=`Invalid DateTime`,p_=864e13;function m_(e){return new cm(`unsupported zone`,`the zone "${e.name}" is not supported`)}function h_(e){return e.weekData===null&&(e.weekData=gm(e.c)),e.weekData}function g_(e){return e.localWeekData===null&&(e.localWeekData=gm(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function __(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new B_({...n,...t,old:n})}function v_(e,t,n){let r=e-t*60*1e3,i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;let a=n.offset(r);return i===a?[r,i]:[e-Math.min(i,a)*60*1e3,Math.max(i,a)]}function y_(e,t){e+=t*60*1e3;let n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function b_(e,t,n){return v_(Km(e),t,n)}function x_(e,t){let n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,a={...e.c,year:r,month:i,day:Math.min(e.c.day,Gm(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=Fg.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as(`milliseconds`),[s,c]=v_(Km(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function S_(e,t,n,r,i,a){let{setZone:o,zone:s}=n;if(e&&Object.keys(e).length!==0||t){let r=t||s,i=B_.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return B_.invalid(new cm(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function C_(e,t,n=!0){return e.isValid?Sh.create(W.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function w_(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=Rm(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=Rm(e.c.month),n===`month`)return i;i+=`-`}else if(i+=Rm(e.c.month),n===`month`)return i;return i+=Rm(e.c.day),i}function T_(e,t,n,r,i,a,o){let s=!n||e.c.millisecond!==0||e.c.second!==0,c=``;switch(o){case`day`:case`month`:case`year`:break;default:if(c+=Rm(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=Rm(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=Rm(e.c.second))}else{if(c+=Rm(e.c.minute),o===`minute`)break;s&&(c+=Rm(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=Rm(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=Rm(Math.trunc(-e.o/60)),c+=`:`,c+=Rm(Math.trunc(-e.o%60))):(c+=`+`,c+=Rm(Math.trunc(e.o/60)),c+=`:`,c+=Rm(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}var E_={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},D_={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},O_={ordinal:1,hour:0,minute:0,second:0,millisecond:0},k_=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],A_=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],j_=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`];function M_(e){let t={year:`year`,years:`year`,month:`month`,months:`month`,day:`day`,days:`day`,hour:`hour`,hours:`hour`,minute:`minute`,minutes:`minute`,quarter:`quarter`,quarters:`quarter`,second:`second`,seconds:`second`,millisecond:`millisecond`,milliseconds:`millisecond`,weekday:`weekday`,weekdays:`weekday`,weeknumber:`weekNumber`,weeksnumber:`weekNumber`,weeknumbers:`weekNumber`,weekyear:`weekYear`,weekyears:`weekYear`,ordinal:`ordinal`}[e.toLowerCase()];if(!t)throw new Ff(e);return t}function N_(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return M_(e)}}function P_(e){if(R_===void 0&&(R_=sm.now()),e.type!==`iana`)return e.offset(R_);let t=e.name,n=z_.get(t);return n===void 0&&(n=e.offset(R_),z_.set(t,n)),n}function F_(e,t){let n=Gp(t.zone,sm.defaultZone);if(!n.isValid)return B_.invalid(m_(n));let r=W.fromObject(t),i,a;if(G(e.year))i=sm.now();else{for(let t of k_)G(e[t])&&(e[t]=E_[t]);let t=Cm(e)||wm(e);if(t)return B_.invalid(t);let r=P_(n);[i,a]=b_(e,r,n)}return new B_({ts:i,zone:n,loc:r,o:a})}function I_(e,t,n){let r=G(n.round)?!0:n.round,i=G(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=Hm(e,r||n.calendary?0:2,n.calendary?`round`:i),t.loc.clone(n).relFormatter(n).format(e,a)),o=r=>n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r);if(n.unit)return a(o(n.unit),n.unit);for(let e of n.units){let t=o(e);if(Math.abs(t)>=1)return a(t,e)}return a(e>t?-0:0,n.units[n.units.length-1])}function L_(e){let t={},n;return e.length>0&&typeof e[e.length-1]==`object`?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}var R_,z_=new Map,B_=class e{constructor(e){let t=e.zone||sm.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new cm(`invalid input`):null)||(t.isValid?null:m_(t));this.ts=G(e.ts)?sm.now():e.ts;let r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[r,i]=[e.old.c,e.old.o];else{let a=Tm(e.o)&&!e.old?e.o:t.offset(this.ts);r=y_(this.ts,a),n=Number.isNaN(r.year)?new cm(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||W.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}static now(){return new e({})}static local(){let[e,t]=L_(arguments),[n,r,i,a,o,s,c]=t;return F_({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=L_(arguments),[n,r,i,a,o,s,c]=t;return e.zone=Up.utcInstance,F_({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=Om(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=Gp(n.zone,sm.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:W.fromObject(n)}):e.invalid(m_(i))}static fromMillis(t,n={}){if(Tm(t))return t<-p_||t>p_?e.invalid(`Timestamp out of range`):new e({ts:t,zone:Gp(n.zone,sm.defaultZone),loc:W.fromObject(n)});throw new If(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(Tm(t))return new e({ts:t*1e3,zone:Gp(n.zone,sm.defaultZone),loc:W.fromObject(n)});throw new If(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=Gp(n.zone,sm.defaultZone);if(!r.isValid)return e.invalid(m_(r));let i=W.fromObject(n),a=$m(t,N_),{minDaysInFirstWeek:o,startOfWeek:s}=bm(a,i),c=sm.now(),l=G(n.specificOffset)?r.offset(c):n.specificOffset,u=!G(a.ordinal),d=!G(a.year),f=!G(a.month)||!G(a.day),p=d||f,m=a.weekYear||a.weekNumber;if((p||u)&&m)throw new Pf(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(f&&u)throw new Pf(`Can't mix ordinal dates with month/day`);let ee=m||a.weekday&&!p,te,ne,re=y_(c,l);ee?(te=A_,ne=D_,re=gm(re,o,s)):u?(te=j_,ne=O_,re=vm(re)):(te=k_,ne=E_);let ie=!1;for(let e of te){let t=a[e];G(t)?ie?a[e]=ne[e]:a[e]=re[e]:ie=!0}let ae=(ee?xm(a,o,s):u?Sm(a):Cm(a))||wm(a);if(ae)return e.invalid(ae);let[oe,se]=b_(ee?_m(a,o,s):u?ym(a):a,l,r),ce=new e({ts:oe,zone:r,o:se,loc:i});return a.weekday&&p&&t.weekday!==ce.weekday?e.invalid(`mismatched weekday`,`you can't specify both a weekday of ${a.weekday} and a date of ${ce.toISO()}`):ce.isValid?ce:e.invalid(ce.invalid)}static fromISO(e,t={}){let[n,r]=pg(e);return S_(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=mg(e);return S_(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=hg(e);return S_(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(G(t)||G(n))throw new If(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,s,c,l]=u_(W.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return l?e.invalid(l):S_(o,s,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return e.fromFormat(t,n,r)}static fromSQL(e,t={}){let[n,r]=Sg(e);return S_(n,r,t,`SQL`,e)}static invalid(t,n=null){if(!t)throw new If(`need to specify a reason the DateTime is invalid`);let r=t instanceof cm?t:new cm(t,n);if(sm.throwOnInvalid)throw new jf(r);return new e({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=d_(e,W.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return s_(Sh.parseFormat(e),W.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){R_=void 0,z_.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?h_(this).weekYear:NaN}get weekNumber(){return this.isValid?h_(this).weekNumber:NaN}get weekday(){return this.isValid?h_(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?g_(this).weekday:NaN}get localWeekNumber(){return this.isValid?g_(this).weekNumber:NaN}get localWeekYear(){return this.isValid?g_(this).weekYear:NaN}get ordinal(){return this.isValid?vm(this.c).ordinal:NaN}get monthShort(){return this.isValid?zg.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?zg.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?zg.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?zg.weekdays(`long`,{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:`short`,locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:`long`,locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,n=Km(this.c),r=this.zone.offset(n-e),i=this.zone.offset(n+e),a=this.zone.offset(n-r*t),o=this.zone.offset(n-i*t);if(a===o)return[this];let s=n-a*t,c=n-o*t,l=y_(s,a),u=y_(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[__(this,{ts:s}),__(this,{ts:c})]:[this]}get isInLeapYear(){return Um(this.year)}get daysInMonth(){return Gm(this.year,this.month)}get daysInYear(){return this.isValid?Wm(this.year):NaN}get weeksInWeekYear(){return this.isValid?Jm(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Jm(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=Sh.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(Up.instance(e),t)}toLocal(){return this.setZone(sm.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Gp(t,sm.defaultZone),t.equals(this.zone))return this;if(t.isValid){let e=this.ts;if(n||r){let n=t.offset(this.ts),r=this.toObject();[e]=b_(r,n,t)}return __(this,{ts:e,zone:t})}else return e.invalid(m_(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return __(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=$m(e,N_),{minDaysInFirstWeek:n,startOfWeek:r}=bm(t,this.loc),i=!G(t.weekYear)||!G(t.weekNumber)||!G(t.weekday),a=!G(t.ordinal),o=!G(t.year),s=!G(t.month)||!G(t.day),c=o||s,l=t.weekYear||t.weekNumber;if((c||a)&&l)throw new Pf(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(s&&a)throw new Pf(`Can't mix ordinal dates with month/day`);let u;i?u=_m({...gm(this.c,n,r),...t},n,r):G(t.ordinal)?(u={...this.toObject(),...t},G(t.day)&&(u.day=Math.min(Gm(u.year,u.month),u.day))):u=ym({...vm(this.c),...t});let[d,f]=b_(u,this.o,this.zone);return __(this,{ts:d,o:f})}plus(e){if(!this.isValid)return this;let t=Fg.fromDurationLike(e);return __(this,x_(this,t))}minus(e){if(!this.isValid)return this;let t=Fg.fromDurationLike(e).negate();return __(this,x_(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=Fg.normalizeUnit(e);switch(r){case`years`:n.month=1;case`quarters`:case`months`:n.day=1;case`weeks`:case`days`:n.hour=0;case`hours`:n.minute=0;case`minutes`:n.second=0;case`seconds`:n.millisecond=0;break}if(r===`weeks`)if(t){let e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(n.weekNumber=this.weekNumber-1),n.weekday=e}else n.weekday=1;return r===`quarters`&&(n.month=(Math.ceil(this.month/3)-1)*3+1),this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?Sh.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):f_}toLocaleString(e=Bf,t={}){return this.isValid?Sh.create(this.loc.clone(t),e).formatDateTime(this):f_}toLocaleParts(e={}){return this.isValid?Sh.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e=`extended`,suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:i=!1,precision:a=`milliseconds`}={}){if(!this.isValid)return null;a=M_(a);let o=e===`extended`,s=w_(this,o,a);return k_.indexOf(a)>=3&&(s+=`T`),s+=T_(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?w_(this,e===`extended`,M_(t)):null}toISOWeekDate(){return C_(this,`kkkk-'W'WW-c`)}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:i=!1,format:a=`extended`,precision:o=`milliseconds`}={}){return this.isValid?(o=M_(o),(r&&k_.indexOf(o)>=3?`T`:``)+T_(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return C_(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return C_(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?w_(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let r=`HH:mm:ss.SSS`;return(t||e)&&(n&&(r+=` `),t?r+=`z`:e&&(r+=`ZZ`)),C_(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():f_}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t=`milliseconds`,n={}){if(!this.isValid||!e.isValid)return Fg.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=jm(t).map(Fg.normalizeUnit),a=e.valueOf()>this.valueOf(),o=Hg(a?this:e,a?e:this,i,r);return a?o.negate():o}diffNow(t=`milliseconds`,n={}){return this.diff(e.now(),t,n)}until(e){return this.isValid?Rg.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;let r=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(t,n)<=r&&r<=i.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(t={}){if(!this.isValid)return null;let n=t.base||e.fromObject({},{zone:this.zone}),r=t.padding?this<n?-t.padding:t.padding:0,i=[`years`,`months`,`days`,`hours`,`minutes`,`seconds`],a=t.unit;return Array.isArray(t.unit)&&(i=t.unit,a=void 0),I_(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?I_(t.base||e.fromObject({},{zone:this.zone}),this,{...t,numeric:`auto`,units:[`years`,`months`,`days`],calendary:!0}):null}static min(...t){if(!t.every(e.isDateTime))throw new If(`min requires all arguments be DateTimes`);return Mm(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new If(`max requires all arguments be DateTimes`);return Mm(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return l_(W.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0}),e,t)}static fromStringExplain(t,n,r={}){return e.fromFormatExplain(t,n,r)}static buildFormatParser(e,t={}){let{locale:n=null,numberingSystem:r=null}=t;return new c_(W.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0}),e)}static fromFormatParser(t,n,r={}){if(G(t)||G(n))throw new If(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=W.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new If(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${n.locale}`);let{result:s,zone:c,specificOffset:l,invalidReason:u}=n.explainFromTokens(t);return u?e.invalid(u):S_(s,c,r,`format ${n.format}`,t,l)}static get DATE_SHORT(){return Bf}static get DATE_MED(){return Vf}static get DATE_MED_WITH_WEEKDAY(){return Hf}static get DATE_FULL(){return Uf}static get DATE_HUGE(){return Wf}static get TIME_SIMPLE(){return Gf}static get TIME_WITH_SECONDS(){return Kf}static get TIME_WITH_SHORT_OFFSET(){return qf}static get TIME_WITH_LONG_OFFSET(){return Jf}static get TIME_24_SIMPLE(){return Yf}static get TIME_24_WITH_SECONDS(){return Xf}static get TIME_24_WITH_SHORT_OFFSET(){return Zf}static get TIME_24_WITH_LONG_OFFSET(){return Qf}static get DATETIME_SHORT(){return $f}static get DATETIME_SHORT_WITH_SECONDS(){return ep}static get DATETIME_MED(){return tp}static get DATETIME_MED_WITH_SECONDS(){return np}static get DATETIME_MED_WITH_WEEKDAY(){return rp}static get DATETIME_FULL(){return ip}static get DATETIME_FULL_WITH_SECONDS(){return ap}static get DATETIME_HUGE(){return op}static get DATETIME_HUGE_WITH_SECONDS(){return sp}};function V_(e){if(B_.isDateTime(e))return e;if(e&&e.valueOf&&Tm(e.valueOf()))return B_.fromJSDate(e);if(e&&typeof e==`object`)return B_.fromObject(e);throw new If(`Unknown datetime argument: ${e}, of type ${typeof e}`)}function H_(e){return nu(e)?e.expression.variable?.value?.toLowerCase()===`null`:e instanceof vd}function U_(e){return O(e)===``}function W_(e){return e instanceof ud}function G_(e){let t=wu(e);if(t!==null)return t;if(Zl(e)&&e instanceof L&&e.expression){let t=e.op?.value,n=wu(e.expression);if(n!==null)return t===`-`?-n:n}return null}function K_(e){if(e==null)return null;if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number(e);return isNaN(t)?null:t}if(typeof e==`boolean`)return e?1:0;let t=G_(e);if(t!==null)return t;let n=O(e);if(n!==void 0){let e=Number(n);if(!isNaN(e))return e}return null}function q_(e){if(e==null)return null;if(typeof e==`number`)return Number.isInteger(e)?e:null;if(typeof e==`string`){let t=Number(e);return isNaN(t)||!Number.isInteger(t)?null:t}if(typeof e==`boolean`)return e?1:0;let t=G_(e);if(t!==null)return Number.isInteger(t)?t:null;let n=O(e);if(n!==void 0){let e=Number(n);if(!isNaN(e)&&Number.isInteger(e))return e}return null}const J_=[`true`,`yes`,`y`,`t`,`1`],Y_=[`false`,`no`,`n`,`f`,`0`];function X_(e){if(e==null)return null;if(typeof e==`boolean`)return e;if(typeof e==`number`)return e===0?!1:e===1?!0:null;if(typeof e==`string`){let t=e.toLowerCase();return J_.includes(t)?!0:Y_.includes(t)?!1:null}if(nu(e)){let t=e.expression.variable?.value?.toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1}let t=wu(e);if(t===0)return!1;if(t===1)return!0;let n=O(e)?.toLowerCase();if(n){if(J_.includes(n))return!0;if(Y_.includes(n))return!1}return null}function Z_(e){if(e==null)return null;if(typeof e==`string`)return e;let t=D(e);return t?h(t):O(e)??null}function Q_(e){if(e==null)return null;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return e.toString();let t=O(e)??null??K_(e)??X_(e);return t===null?null:t.toString()}var $_=[`yyyy-MM-dd`,`M/d/yyyy`,`d MMM yyyy`,`MMM d, yyyy`],ev=[`yyyy-MM-dd HH:mm:ss`,`yyyy-MM-dd HH:mm:ss.SSS`,`yyyy-MM-dd HH:mm:ss.SSSZZ`,`yyyy-MM-dd HH:mm:ssZZ`],tv=[`HH:mm:ss`,`HH:mm:ssZZ`,`HH:mm:ss.SSS`,`HH:mm:ss.SSSZZ`];function nv(e){if(e==null)return null;let t=typeof e==`string`?e:O(e)??null;if(t===null)return null;for(let e of tv){let n=B_.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISOTime({suppressMilliseconds:!0,includeOffset:r(n)})}for(let e of $_){let n=B_.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISODate()}for(let e of ev){let n=B_.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)})}let n=B_.fromISO(t,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)});return null;function r(e){return e.zone.type!==`system`}}function rv(e,t){let n=e.type(t),r=e.default(t);return{name:e.name??``,pk:e.pk(t),unique:e.unique(t),increment:e.increment(t),notNull:e.nullable(t)===!1,dbdefault:r,typeName:n?.name??``}}function iv(e){return e.values.map(t=>{let n={};return e.columns.forEach((e,r)=>{n[e]=t[r]}),n})}function av(e,t,n){return t.map((t,r)=>{let i=e[t]?.value;if(i==null&&n&&n[r]){let e=n[r];if(e?.dbdefault)return JSON.stringify(e.dbdefault.value)}return JSON.stringify(i)}).join(`|`)}function ov(e,t,n){return t.some((t,r)=>{let i=e[t]?.value;return i==null&&n&&n[r]&&n[r]?.dbdefault?!1:i==null})}function sv(e){return e.increment||Of(e.typeName)}function cv(e,t,n){return e?`${e}.${t}.${n}`:`${t}.${n}`}function lv(e,t,n){return n.length===1?cv(e,t,n[0]):`(${n.map(n=>cv(e,t,n)).join(`, `)})`}function uv(e,t){return t.length===1?JSON.stringify(e[t[0]]?.value):`(${t.map(t=>JSON.stringify(e[t]?.value)).join(`, `)})`}function dv(e,t,n){let{token:r}=t,i=e.nodeAtPosition(r.filepath,r.start.offset)??e.parse.ast(r.filepath);return new Rl(y.INVALID_RECORDS_FIELD,n,i)}var fv=e=>e>1?`Composite PK`:`PK`;function pv(e,t,n,r){if(Nc(r.values))return[];let i=t.mergedColumns(e).map(t=>rv(t,e)),a=Fc(i,`name`),o=iv(r),s=vv(t,i,e),c=new Set(r.columns);return Cc(s,i=>mv(e,t,n,i,o,c,a,r))}function mv(e,t,n,r,i,a,o,s){let c=t.schema(e),l=t.name??``,u=_v(n,r,a,o,c,l,s);if(!Nc(u))return u;let d=so(r.map(e=>o[e])),f=d.every(e=>e&&sv(e)),[p,m]=g(i,e=>ov(e,r,d)),ee=f?[]:hv(e,p,r,c,l),te=gv(e,m,r,d,c,l);return[...ee,...te]}function hv(e,t,n,r,i){if(Nc(t))return[];let a=`NULL in ${fv(n.length)}: ${lv(r,i,n)} cannot be NULL`;return Cc(t,t=>n.map(n=>dv(e,t[n],a)))}function gv(e,t,n,r,i,a){return Cc(dc(Oc(t,e=>av(e,n,r)),e=>e.length>1),t=>{let r=fv(n.length),o=lv(i,a,n);return Cc(t,t=>{let i=`Duplicate ${r}: ${o} = ${uv(t,n)}`;return n.map(n=>dv(e,t[n],i))})})}function _v(e,t,n,r,i,a,o){let s=ic(t,Array.from(n));if(Nc(s))return[];let c=s.filter(e=>{let t=r[e];return!!(t&&!sv(t)&&!t.dbdefault)});if(Nc(c))return[];let l=`${fv(c.length)}: Column ${lv(i,a,c)} is missing from record and has no default value`;return o.values.map(()=>new Rl(y.INVALID_RECORDS_FIELD,l,e))}function vv(e,t,n){return[...t.filter(e=>e.pk).map(e=>[e.name]),...e.mergedIndexes(n).flatMap(e=>{let t=n.interpretMetadata(e,e.declaration.filepath).getValue();return Array.isArray(t)?t.filter(e=>e.pk).map(e=>e.columns.map(e=>e.value)):[]})]}var yv=e=>e>1?`Composite UNIQUE`:`UNIQUE`;function bv(e,t,n){if(Nc(n.values))return[];let r=t.mergedColumns(e).map(t=>rv(t,e)),i=Fc(r,`name`),a=iv(n),o=t.schema(e),s=t.name??``;return Cc(xv(t,r,e),t=>Sv(e,a,t,so(t.map(e=>i[e])),o,s))}function xv(e,t,n){return[...t.filter(e=>e.unique).map(e=>[e.name]),...e.mergedIndexes(n).flatMap(e=>{let t=n.interpretMetadata(e,e.declaration.filepath).getValue();return Array.isArray(t)?t.filter(e=>e.unique).map(e=>e.columns.map(e=>e.value)):[]})]}function Sv(e,t,n,r,i,a){return Cc(dc(Oc(t.filter(e=>!ov(e,n,r)),e=>av(e,n,r)),e=>e.length>1),t=>{let r=yv(n.length),o=lv(i,a,n);return Cc(t,t=>{let i=`Duplicate ${r}: ${o} = ${uv(t,n)}`;return n.map(n=>dv(e,t[n],i))})})}function Cv(e,t,n,r){return Cc(t,t=>Ev(e,t,n,r))}function wv(e,t,n,r,i,a){if(!t.record||Nc(t.record.values))return[];let o=iv(t.record),s=n.record?iv(n.record):[],c=new Set(s.map(e=>av(e,i.fieldNames))),l=o.filter(e=>!ov(e,r.fieldNames)).filter(e=>{let t=av(e,r.fieldNames);return!c.has(t)}),u=t.tableSymbol.interpretedName(e,a),d=n.tableSymbol.interpretedName(e,a);return Cc(l,t=>{let n=lv(u.schema,u.name,r.fieldNames),a=lv(d.schema,d.name,i.fieldNames),o=`FK violation: ${n} = ${uv(t,r.fieldNames)} does not exist in ${a}`;return r.fieldNames.map(n=>dv(e,t[n],o))})}function Tv(e,t,n,r){let i=t.schemaName===`public`?null:t.schemaName;for(let a of e.values()){let{name:e,schema:o}=a.tableSymbol.interpretedName(n,r);if(e===t.tableName&&o===i)return a}}function Ev(e,t,n,r){if(!t.endpoints)return[];let[i,a]=t.endpoints,o=Tv(n,i,e,r),s=Tv(n,a,e,r);return!o||!s?[]:Dv(e,o,s,i,a,r)}function Dv(e,t,n,r,i,a){let o=r.relation,s=i.relation;return o===`1`&&s===`1`||o===`*`&&s===`*`?[...wv(e,t,n,r,i,a),...wv(e,n,t,i,r,a)]:o===`*`&&s===`1`?wv(e,t,n,r,i,a):o===`1`&&s===`*`?wv(e,n,t,i,r,a):[]}var Ov=class{constructor(e,t,n){this.errors=[],this.warnings=[],this.compiler=e,this.programSymbol=t,this.programNode=t.declaration,this.filepath=n,this.db={schemas:[],tables:[],notes:[],refs:[],enums:[],tableGroups:[],aliases:[],tablePartials:[],records:[],diagramViews:[],token:A(this.programNode),externals:{tables:[],enums:[],tableGroups:[],tablePartials:[],notes:[]}}}interpret(){return this.interpretAllSymbols(),this.interpretAllMetadata(),this.interpretAllAliases(),this.warnings.push(...this.validateRecords()),new n(this.db,this.errors,this.warnings)}interpretAllSymbols(){for(let e of this.programSymbol.declaration.declarations){let n=this.compiler.nodeSymbol(e).getFiltered(t);if(!n||n instanceof td)continue;let r=this.compiler.interpretSymbol(n,this.filepath);if(r.hasValue(t))continue;this.errors.push(...r.getErrors()),this.warnings.push(...r.getWarnings());let i=r.getValue();i&&this.pushElement(n,i)}let e=new Set,n=(this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[]).filter(e=>e instanceof Lu);for(;n.length>0;){let r=n.shift(),i=this.compiler.symbolMembers(r).getFiltered(t)??[];for(let t of i){if(t instanceof Lu){n.push(t);continue}if(!(t instanceof td))continue;let r=t.originalSymbol.intern();e.has(r)||(e.add(r),this.interpretUseSymbol(t))}}}interpretUseSymbol(e){let n=e.originalSymbol,r=this.compiler.interpretSymbol(n,this.filepath);if(!r.hasValue(t)){this.errors.push(...r.getErrors()),this.warnings.push(...r.getWarnings());let t=r.getValue();t&&this.pushElement(e,t)}let i=n instanceof Bu?n.interpretedName(this.compiler,n.filepath):{name:n.name??``,schema:null},a=n instanceof Bu?n.interpretedName(this.compiler,this.filepath):{name:e.name??n.name??``,schema:null},o={name:i.name,schemaName:i.schema,filepath:n.filepath,visibleNames:[{schemaName:a.schema,name:a.name}]};ff(this.db,e,o)}interpretAllMetadata(){let e=this.compiler.symbolMetadata(this.programSymbol)??[],n=new Set,r=new Map;for(let t of e){if(!(t instanceof Dd))continue;let e=t.table(this.compiler);if(!e)continue;let n=e.originalSymbol.intern(),i=r.get(n);i?i.count++:r.set(n,{count:1,tableName:e.name??``})}for(let i of e){let e=this.compiler.interpretMetadata(i,this.filepath);if(e.hasValue(t))continue;this.errors.push(...e.getErrors()),this.warnings.push(...e.getWarnings());let a=e.getValue();if(a!==void 0)switch(i.kind){case xd.Ref:{let e=a,[t,r]=e.endpoints??[];if(t&&r){let e=[t.schemaName,t.tableName,t.fieldNames.join(`,`),r.schemaName,r.tableName,r.fieldNames.join(`,`)].join(`|`),a=[r.schemaName,r.tableName,r.fieldNames.join(`,`),t.schemaName,t.tableName,t.fieldNames.join(`,`)].join(`|`);if(n.has(e)||n.has(a)){this.errors.push(new b(y.SAME_ENDPOINT,`Ref with same endpoints already exists`,i.declaration));break}n.add(e)}this.db.refs.push(e);break}case xd.Records:if(i instanceof Dd){let e=i.table(this.compiler)?.originalSymbol.intern()??``,t=e?r.get(e):void 0;if(t&&t.count>1){this.errors.push(new b(y.DUPLICATE_RECORDS_FOR_TABLE,`Duplicate Records blocks for the same Table '${t.tableName}' - A Table can only have one Records block`,i.declaration));break}}this.db.records.push(a);break;case xd.Project:this.db.project=a;break;default:break}}}interpretAllAliases(){let e=this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[];for(let t of e){if(!(t instanceof ed)||!t.isKind(j.Table))continue;let{name:e,schema:n}=t.originalSymbol.interpretedName(this.compiler,this.filepath),r={name:t.name,kind:qd.Table,value:{tableName:e,schemaName:n}};this.db.aliases.push(r)}}validateRecords(){let e=[],n=new Map,r=this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[];for(let e of r){if(!(e instanceof Lu))continue;let r=this.compiler.symbolMembers(e).getFiltered(t)??[];for(let e of r){if(!e.isKind(j.Table))continue;let t=e.originalSymbol;if(!(t instanceof Bu))continue;let r=t.intern();n.has(r)||n.set(r,{tableSymbol:t,record:void 0,recordBlock:t.declaration})}}let i=this.compiler.symbolMetadata(this.programSymbol);for(let r of i){if(!(r instanceof Dd))continue;let i=r.table(this.compiler);if(!(i instanceof Bu))continue;let a=this.compiler.interpretMetadata(r,this.filepath);if(a.hasValue(t))continue;let o=a.getValue();if(!o)continue;e.push(...pv(this.compiler,i,r.declaration,o)),e.push(...bv(this.compiler,i,o));let s=i.originalSymbol.intern(),c=n.get(s);c?c.record=o:n.set(s,{tableSymbol:i,record:o,recordBlock:r.declaration})}let a=this.collectPartialRefs(n);return e.push(...Cv(this.compiler,[...this.db.refs,...a],n,this.filepath)),e}collectPartialRefs(e){let t=this.compiler.symbolMetadata(this.programSymbol).filter(e=>e instanceof wd),n=[];for(let{tableSymbol:r}of e.values())for(let e of r.resolvedPartials(this.compiler))for(let i of t){if(i.leftTablePartial(this.compiler)?.originalSymbol!==e.originalSymbol)continue;let t=i.leftColumns(this.compiler),a=i.rightTable(this.compiler),o=i.rightColumns(this.compiler),s=i.op(this.compiler);if(!a||!s||t.length===0||o.length===0)continue;let c=r.mergedColumns(this.compiler);if(!t.some(e=>c.some(t=>t instanceof nd&&t.declaration===e.declaration)))continue;let l=Ud(s);if(!l)continue;let u=a instanceof Gu&&a.originalSymbol===e.originalSymbol?r:a,d=r.interpretedName(this.compiler,this.filepath),f=u.interpretedName(this.compiler,this.filepath),p={schemaName:d.schema,tableName:d.name,fieldNames:t.map(e=>e.name??``),relation:l[0],token:A(i.leftToken())},m={schemaName:f.schema,tableName:f.name,fieldNames:o.map(e=>e.name??``),relation:l[1],token:A(i.rightToken())};n.push({token:A(i.declaration),endpoints:[p,m]})}return n}pushElement(e,t){if(!Array.isArray(t))switch(e.kind){case j.Table:this.db.tables.push(t);break;case j.Enum:this.db.enums.push(t);break;case j.TableGroup:this.db.tableGroups.push(t);break;case j.TablePartial:this.db.tablePartials.push(t);break;case j.StickyNote:this.db.notes.push(t);break;case j.DiagramView:this.db.diagramViews.push(t);break;default:break}}};const kv={nodeSymbol(t,r){return ou(r)?n.create(t.symbolFactory.create($u,{declaration:r,name:r.filepath.absolute},r.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(j.Program))return n.create(e);if(!(i.declaration instanceof P))return n.create([]);let a=new Map;for(let e of r.reachableFiles(i.filepath)){let{schemaMembers:t}=r.usableMembers(e).getValue();for(let e of t)a.has(e.name)||a.set(e.name,e)}let o=a.get(v);if(!o)return n.create([...a.values()]);let s=r.symbolMembers(o).getFiltered(t)?.filter(e=>!e.isKind(j.Schema));return s?n.create([...a.values(),...s]):n.create([...a.values()])},bindNode(t,r){return ou(r)?new uf(r,t).resolve():n.create(e)},interpretSymbol(t,r,i){if(!(r instanceof $u))return n.create(e);if(!(r.declaration instanceof P))return n.create(void 0);if(!Bd(t,r.declaration)){let e=t.reachableFiles(i).flatMap(e=>t.bindFile(e).getErrors());return n.create(void 0,e)}return new Ov(t,r,i).interpret()}};var Av=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof R)return[];let t=e.body.filter(e=>e instanceof F);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},jv=class{constructor(e,t,n){this.declarationNode=t,this.compiler=e,this.filepath=n,this.project={enums:[],refs:[],tableGroups:[],tables:[],tablePartials:[]}}interpret(){this.project.token=A(this.declarationNode);let e=[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)];return new n(this.project,e)}interpretName(e){if(!e)return this.project.name=null,[];let{name:t}=Au(e);return this.project.name=t,[]}interpretSubElement(e){let r=this.compiler.nodeSymbol(e).getFiltered(t);if(r){let e=this.compiler.interpretSymbol(r,this.filepath);if(!e.hasValue(t))return e}return n.create(void 0)}interpretBody(e){return e.body.flatMap(e=>{let t=e;switch(t.getElementKind()){case r.Table:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.tables?.push(e.getValue()),e.getErrors()}case r.TableGroup:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.tableGroups?.push(e.getValue()),e.getErrors()}case r.Enum:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.enums?.push(e.getValue()),e.getErrors()}case r.Note:{let e=t.body instanceof z?t.body.body[0]?.callee:t.body?.callee,n=e?O(e):void 0;return n&&(this.project.note={value:ku(n),token:A(t)}),[]}case r.TablePartial:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.tablePartials?.push(e.getValue()),e.getErrors()}default:return this.project[t.type.value.toLowerCase()]=O(t.body.callee),[]}})}};const Mv={nodeMetadata(t,i){return T(i,r.Project)?n.create(new Od(i)):n.create(e)},bindNode(t,i){return T(i,r.Project)?n.create(void 0,new Av(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return!(r instanceof Od)||!(r.declaration instanceof F)?n.create(e):new jv(t,r.declaration,i).interpret()}};var Nv=class{constructor(e,t){this.compiler=e,this.declarationNode=t,this.boundColumns=new Map}bind(){let e=[];return this.declarationNode.name&&e.push(...this.bindRecordsName(this.declarationNode.name)),this.declarationNode.body instanceof z&&e.push(...this.bindBody(this.declarationNode.body)),e}bindRecordsName(e){return this.declarationNode.parent instanceof P?this.bindTopLevelName(e):this.bindInsideTableName(e)}bindTopLevelName(e){let n=Tu(e);if(!n)return[];let r=n.variables.pop(),i=n.variables;if(!r)return[];let a=this.compiler.nodeReferee(r).getErrors();if(a.length>0)return a;let o=this.compiler.nodeReferee(r).getFiltered(t);if(!o)return[];let s=vu(o.declaration)??`<invalid name>`,c=i.flatMap(e=>this.compiler.nodeReferee(e).getErrors());for(let e of n.args){let n=Eu(e)??`<unnamed>`,r=this.compiler.nodeReferee(e).getFiltered(t);if(!r){c.push(new b(y.BINDING_ERROR,`Column '${n}' does not exist in Table '${s}'`,e));continue}let i=this.boundColumns.get(r);i&&(c.push(new b(y.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS,`Column '${n}' is referenced more than once in a Records for Table '${s}'`,i)),c.push(new b(y.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS,`Column '${n}' is referenced more than once in a Records for Table '${s}'`,e))),this.boundColumns.set(r,e)}return c}bindInsideTableName(e){let n=this.declarationNode.parent;if(!(n instanceof F)||!n.isKind(r.Table)||!this.compiler.nodeSymbol(n).getFiltered(t)||!$l(e))return[];let i=vu(n)??`<invalid name>`,a=[];for(let n of e.elementList){let e=Eu(n)??`<unnamed>`;if(!this.compiler.nodeReferee(n).getFiltered(t)){a.push(new b(y.BINDING_ERROR,`Column '${e}' does not exist in Table '${i}'`,n));continue}}return a}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindDataRow(e);let t=e.body.filter(e=>e instanceof R),n=e.body.filter(e=>e instanceof F);return[...this.bindDataRows(t),...this.bindSubElements(n)]}bindDataRows(e){return e.flatMap(e=>this.bindDataRow(e))}bindDataRow(e){return e.callee?(e.callee instanceof fd?e.callee.elementList:[e.callee]).flatMap(Vd).flatMap(e=>{let t=e.variables.pop(),n=e.variables.pop();return!t||!n?[]:[...e.variables.flatMap(e=>this.compiler.nodeReferee(e).getErrors()),...n?this.compiler.nodeReferee(n).getErrors():[],...this.compiler.nodeReferee(t).getErrors()]}):[]}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Pv=class{constructor(e,t,n){this.compiler=e,this.metadata=t,this.element=t.declaration,this.filepath=n}interpret(){let e=[],t=[],r=Fv(this.element,this.compiler,this.filepath);if(!r||r.columns.length===0)return new n(void 0,e);let i=[];for(let n of this.element.body.body){let a=Iv(n,r.columns,this.compiler);e.push(...a.getErrors()),t.push(...a.getWarnings());let o=a.getValue();o.row&&i.push(o.row)}let a=A(this.element);return new n({schemaName:r.schemaName,tableName:r.tableName,columns:r.columns.map(e=>e.name??``),values:i,token:a},e,t)}};function Fv(e,n,i){let a=e.name,o=e.parent;if(o instanceof F&&o.isKind(r.Table)){let e=n.nodeSymbol(o).getFiltered(t);if(!(e instanceof Bu))return;let r=e.mergedColumns(n),s=e.interpretedName(n,i),c=s.schema,l=s.name;return a?{schemaName:c,tableName:l,columns:a.elementList.flatMap(e=>r.find(t=>t.name===k(e))||[])}:{schemaName:c,tableName:l,columns:r}}let s=Tu(a);if(!s)return;let c=s.variables.map(e=>e.expression.variable?.value??``),l=c.at(-1)??``,u=c.length>1?c.slice(0,-1).join(`.`):void 0,d=n.parseFile(e.filepath).getValue().ast,f=n.nodeSymbol(d).getFiltered(t);if(!f)return;let p;if(u){let e=n.lookupMembers(f,j.Schema,u);e&&(p=n.lookupMembers(e,j.Table,l))}if(p||=n.lookupMembers(f,j.Table,l),!p)return;let m=p.originalSymbol;if(!(m instanceof Bu))return;let ee=m.mergedColumns(n),te=s.args.map(e=>ee.find(t=>t.name===k(e))).filter(Boolean),ne=m.interpretedName(n,i);return{schemaName:ne.schema,tableName:ne.name,columns:te}}function Iv(e,t,r){let i=[],a=[],o={},s=e.callee instanceof fd?e.callee.elementList:[e.callee];if(s.length!==t.length)return i.push(new b(y.INVALID_RECORDS_FIELD,`Expected ${t.length} values but got ${s.length}`,e)),new n({row:null,columnNodes:{}},i,a);let c=[];for(let e=0;e<t.length;e++){let n=s[e],l=t[e];o[l.name??``]=n;let u=Rv(n,l,r);i.push(...u.getErrors()),a.push(...u.getWarnings());let d=u.getValue();c.push(d??{value:null,type:`expression`,token:A(n)})}return new n({row:c,columnNodes:o},i,a)}function Lv(e){return e instanceof ud&&e.value?.value||``}function Rv(e,t,r){let i=A(e),a=t.type(r),o=(a?.name??``).split(`(`)[0],s=!!a?.enumSymbol,c=t.increment(r),l=t.nullable(r)===!1,u=t.default(r),d=t.name??``,f=kf(o,s),p=Q_(e),m=p===null?Lv(e):p,ee=p===null?`expression`:f;if(e instanceof ud)return new n({value:e.value?.value||``,type:`expression`,token:i},[],[]);if(H_(e)||U_(e)&&!Tf(o)){let t=u&&u.value.toString().toLowerCase()!==`null`,r=Of(o);return l&&!t&&!c&&!r?new n({value:null,type:f,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`NULL not allowed for non-nullable column '${d}' without default and increment`,e)]):new n({value:null,type:f,token:i},[],[])}if(s){let a=t.type(r)?.enumSymbol,o=a?a.members(r).filter(e=>e.isKind(j.EnumField)).map(e=>e.name).filter(Boolean):[],s=O(e);return s===void 0&&(s=C(e)?e.expression.variable.value:void 0),o.includes(s)?new n({value:s,type:f,token:i},[],[]):new n({value:s,type:f,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`Invalid enum value for column '${d}'`,e)])}if(xf(o)||Sf(o)||Of(o)){let t=G_(e);if(t===null)return new n({value:m,type:ee,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`Invalid numeric value for column '${d}'`,e)]);if(xf(o)&&!Number.isInteger(t))return new n({value:Math.floor(t),type:f,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`Invalid integer value ${t} for column '${d}': expected integer, got decimal`,e)]);let r=Sf(o)&&a?.args?.length?{precision:Number(a.args[0]),scale:a.args.length>=2?Number(a.args[1]):0}:void 0;if(Sf(o)&&r){let{precision:a,scale:o}=r,s=t.toString().split(`.`),c=s[0].replace(/^-/,``),l=s[1]||``,u=c.length+l.length,p=l.length;if(u>a)return new n({value:t,type:f,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`Numeric value ${t} for column '${d}' exceeds precision: expected at most ${a} total digits, got ${u}`,e)]);if(p>o)return new n({value:t,type:f,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`Numeric value ${t} for column '${d}' exceeds scale: expected at most ${o} decimal digits, got ${p}`,e)])}return new n({value:t,type:f,token:i},[],[])}if(wf(o)){let t=X_(e);return t===null?new n({value:m,type:ee,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`Invalid boolean value for column '${d}'`,e)]):new n({value:t,type:f,token:i},[],[])}if(Df(o)){let t=nv(e);return t===null?new n({value:m,type:ee,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`Invalid datetime value for column '${d}', expected valid datetime format (e.g., 'YYYY-MM-DD', 'HH:MM:SS', 'YYYY-MM-DD HH:MM:SS', 'MM/DD/YYYY', 'D MMM YYYY', or 'MMM D, YYYY')`,e)]):new n({value:t,type:f,token:i},[],[])}if(Tf(o)){let t=Q_(e);if(t===null)return new n({value:m,type:ee,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`Invalid string value for column '${d}'`,e)]);let r=a?.args?.length?Number(a.args[0]):void 0;if(r&&!Number.isNaN(r)){let a=r,o=new TextEncoder().encode(t).length;if(o>a)return new n({value:t,type:f,token:i},[],[new Rl(y.INVALID_RECORDS_FIELD,`String value for column '${d}' exceeds maximum length: expected at most ${a} bytes (UTF-8), got ${o} bytes`,e)])}return new n({value:t,type:`string`,token:i},[],[])}return new n({value:m,type:ee,token:i},[],[])}const zv={nodeMetadata(t,i){if(!T(i,r.Records))return n.create(e);let a=i.parent;if(a&&T(a,r.Table))return n.create(new Dd(i));let o=i.name;return o instanceof V&&o.callee?n.create(new Dd(i)):n.create(e)},nodeReferee(i,a){if(!C(a))return n.create(e);let o=a.parentOfKind(F);if(!o?.isKind(r.Records))return n.create(e);let s=i.parseFile(a.filepath).getValue().ast,c=i.nodeSymbol(s).getFiltered(t);if(!c)return n.create(void 0);let l=a.parentOfKind(dd);if(l?.parentNode===o)return Bv(i,o,a);let u=a.parentOfKind(V);return u?.parentNode===o&&l?.parentNode===u?Vv(i,u,a):u?.parentNode===o&&u.callee?.containsEq(a)?Hv(i,c,a):Wv(i,c,a)},bindNode(t,i){return T(i,r.Records)?n.create(void 0,new Nv(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof Dd?r.declaration instanceof F?new Pv(t,r,i).interpret():n.create(void 0):n.create(e)}};function Bv(e,i,a){let o=i.parent;if(o instanceof F&&o.isKind(r.Table)){let n=e.nodeSymbol(o).getFiltered(t);if(n)return Uv(e,n,a)}return new n(void 0)}function Vv(e,r,i){if(r.callee){let n;if(C(r.callee))n=e.nodeReferee(r.callee).getFiltered(t);else{let i=xu(r.callee);if(i&&i.length>0){let r=i[i.length-1];n=e.nodeReferee(r).getFiltered(t)}}if(n)return Uv(e,n,i)}return new n(void 0)}function Hv(e,t,r){if(!C(r))return new n(void 0);let i=Eu(r)??``;if(!w(r.parentNode)){let a=e.lookupMembers(t,[j.Table,j.Schema],i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Table '${i}' does not exist in Schema 'public'`,r)])}let a=Hd(e,r);if(!a){let a=e.lookupMembers(t,[j.Table,j.Schema],i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}if(a.isKind(j.Schema)){let t=e.lookupMembers(a,[j.Table,j.Schema],i);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}return new n(void 0)}function Uv(e,t,r){if(!C(r))return new n(void 0);let i=Eu(r)??``,a=e.lookupMembers(t,j.Column,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Column '${i}' does not exist in Table 'public.${t.name}'`,r)])}function Wv(e,t,r){if(!C(r))return new n(void 0);let i=Eu(r)??``;if(!w(r.parentNode))return new n(void 0);let a=Hd(e,r);if(a){if(a.isKind(j.Schema)){let t=e.lookupMembers(a,[j.Enum,j.Schema],i);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(j.Enum)){let t=e.lookupMembers(a,j.EnumField,i);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(w(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,j.Schema,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,j.Enum,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}var Gv=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof P)&&!this.declarationNode.parent?.isKind(r.Project)?[]:this.bindBody(this.declarationNode.body)}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=g(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(Vd).flatMap(e=>{let t=e.tupleElements.length?e.tupleElements:e.variables.pop(),n=e.variables.pop();return!t||!n?[]:(Array.isArray(t)||(t=[t]),[...e.variables,n,...t].flatMap(e=>this.compiler.nodeReferee(e).getErrors()))}):[])}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Kv=class{constructor(e,t,n){this.compiler=e,this.filepath=n,this.metadata=t,this.declarationNode=t.declaration,this.ref={}}interpret(){this.ref.token=A(this.declarationNode);let e=[...this.interpretName(),...this.interpretBody()];return n.create(this.ref,e)}interpretName(){if(!(this.declarationNode instanceof F))return[];let e=[],t=D(this.declarationNode.name)??[];return this.ref.name=t.pop()||null,t.length>1&&e.push(new b(y.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name)),this.ref.schemaName=t.join(`.`)||null,e}interpretBody(){let e=this.metadata.op(this.compiler),t=this.metadata.leftColumns(this.compiler),n=this.metadata.leftTable(this.compiler),r=this.metadata.rightColumns(this.compiler),i=this.metadata.rightTable(this.compiler);if(Xc(t,r).every(([e,t])=>e?.originalSymbol===t?.originalSymbol))return[new b(y.SAME_ENDPOINT,`Two endpoints are the same`,this.declarationNode)];let a=Ud(e),o=n?.interpretedName(this.compiler,this.filepath),s=i?.interpretedName(this.compiler,this.filepath),c=A(this.metadata.leftToken()),l=A(this.metadata.rightToken());if(this.ref.endpoints=this.declarationNode instanceof F?[{schemaName:o?.schema??null,tableName:o?.name??``,fieldNames:t.map(e=>e.name??``),relation:a[0],token:c},{schemaName:s?.schema??null,tableName:s?.name??``,fieldNames:r.map(e=>e.name??``),relation:a[1],token:l}]:[{schemaName:s?.schema??null,tableName:s?.name??``,fieldNames:r.map(e=>e.name??``),relation:a[1],token:l},{schemaName:o?.schema??null,tableName:o?.name??``,fieldNames:t.map(e=>e.name??``),relation:a[0],token:c}],!(this.declarationNode instanceof F))return[];let u=bu(this.declarationNode)[0];if(u.args[0]){let e=x(u.args[0]).getValue(),t=e.delete?.at(0)?.value;this.ref.onDelete=t instanceof sd?_u(t):k(t);let n=e.update?.at(0)?.value;this.ref.onUpdate=n instanceof sd?_u(n):k(n),this.ref.color=e.color?.length?ju(e.color?.at(0)?.value):void 0,this.ref.inactive=e.inactive?.length?!0:void 0}return[]}};function qv(e){let t=e.parent;for(;t;){if(t instanceof F&&t.isKind(r.Ref))return t.body?.containsEq(e)??!1;t=t.parent}return!1}const Jv={nodeReferee(r,i){if(!C(i)&&!w(i)||!qv(i)||i.parentOfKind(I))return n.create(e);let a=r.parseFile(i.filepath).getValue().ast,o=r.nodeSymbol(a).getValue();return o===t?n.create(void 0):Xv(r,o,i)},nodeMetadata(t,a){if(T(a,r.Ref)){let t=bu(a)[0];if(!(t instanceof R)||!t.callee)return n.create(e);let r=t.callee;return!(r instanceof cd)||!r.op?n.create(e):n.create(new Cd(a))}if(a instanceof I){if(!(a.name instanceof sd)||_u(a.name)?.toLowerCase()!==i.Ref)return n.create(e);let t=a.parent;return t instanceof F&&t.isKind(r.TablePartial)?n.create(new wd(a)):n.create(new Cd(a))}return n.create(e)},bindNode(t,i){return T(i,r.Ref)?n.create(void 0,new Gv(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof Cd?new Kv(t,r,i).interpret():n.create(e)}};function Yv(e,n){let r=e.symbolMembers(n).getFiltered(t);if(r)return r.find(e=>e instanceof Lu&&e.isPublicSchema())}function Xv(e,r,i){if(!C(i))return new n(void 0);let a=Eu(i)??``;if(!w(i.parentNode)){let r=i.parentNode;if(r&&w(r.parentNode)&&r.parentNode.rightExpression===r){let o=r.parentNode.leftExpression,s=w(o)?o.rightExpression??o:o,c=e.nodeReferee(s).getFiltered(t);if(c?.isKind(j.Table)){let r=e.lookupMembers(c,j.Column,a);if(r)return n.create(r);let o=c.declaration?e.nodeFullname(c.declaration).getFiltered(t)?.join(`.`)??c.name:c.name;return new n(void 0,[new b(y.BINDING_ERROR,`Column '${a}' does not exist in Table '${o}'`,i)])}}return n.create(void 0)}let o=Hd(e,i);if(o){if(o.isKind(j.Schema)){let t=e.lookupMembers(o,[j.Table,j.Schema],a);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}if(o.isKind(j.Table)){let r=e.lookupMembers(o,j.Column,a);return r?n.create(r):new n(void 0,[new b(y.BINDING_ERROR,`Column '${a}' does not exist in Table '${o.declaration?e.nodeFullname(o.declaration).getFiltered(t)?.join(`.`)??o.name:o.name}'`,i)])}return new n(void 0)}let s=i.parentNode;if(s.leftExpression===i){if(w(s.parentNode)&&s.parentNode.leftExpression===s){let t=e.lookupMembers(r,j.Schema,a);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}let t=Yv(e,r);if(t){let r=e.lookupMembers(t,j.Table,a);if(r)return n.create(r)}let o=e.lookupMembers(r,j.Table,a);return o?n.create(o):new n(void 0,[new b(y.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}return new n(void 0)}const Zv={visibleName(e,n){let r=n instanceof M?n:n.useSpecifierDeclaration instanceof ad?n.useSpecifierDeclaration:n.declaration;if(r instanceof ad&&n instanceof Iu&&r.getSymbolKind()!==n.kind&&(r=n.declaration),r)return e.nodeAlias(r).mapFiltered(e=>[e],t,void 0).getFiltered(t)||e.nodeFullname(r).getFiltered(t)}},Qv={nodeSymbol(r,i){if(!au(i)||!i.name)return n.create(e);let a=i.getSymbolKind();if(a===void 0||a===j.Schema)return n.create(e);let o=r.nodeReferee(i.name).getFiltered(t);return o&&!o.canBeImported?n.create(e):n.create(r.symbolFactory.create(td,{useSpecifierDeclaration:i,declaration:o?.declaration,usedSymbol:o,kind:a,name:Zv.visibleName(r,i)?.at(-1)},i.filepath),o===void 0?[new b(y.BINDING_ERROR,`Failed to resolve the import of ${a} '${(D(i.name)||[]).map(vy).join(`.`)}'`,i)]:[])},symbolMembers(r,i){if(!(i instanceof td))return n.create(e);let a=r.symbolMembers(i.originalSymbol).getFiltered(t);return n.create(a??[])},nodeReferee(r,i){if(!C(i)&&!ru(i))return n.create(e);let a=i.parentOfKind(ad);if(!a)return n.create(e);let o=a.name===i||w(a.name)&&a.name.rightExpression===i?a.getSymbolKind():j.Schema;if(o===void 0)return n.create(void 0);let s=D(i.parentOfKind(cd)),c=k(i)??s?.at(-1);if(c===void 0)return n.create(void 0);let l=i.parentOfKind(id);if(l?.importPath?.value===void 0)return n.create(void 0);let u=Ml(i.filepath,l.importPath.value);if(!u)return n.create(void 0,[new b(y.BINDING_ERROR,`Import path must be relative, got '${l.importPath.value}'`,i)]);if(!r.layout.exists(u))return n.create(void 0,[new b(y.NONEXISTENT_MODULE,`${o} '${s?.join(`.`)??c}' does not exist in file ${u.toString()}. Does the file exist?`,i)]);let d=i.parentOfKind(cd)?.leftExpression;if(d&&d!==i){let e=r.nodeReferee(d).getFiltered(t);if(!e)return n.create(void 0);let a=r.lookupMembers(e,o,c);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Could not find ${o} '${c}'`,i)])}let f=$v(r,u,c,o);return f?n.create(f):n.create(void 0,[new b(y.BINDING_ERROR,`${o} '${c}' does not exist in file ${u.toString()}`,i)])},bindNode(t,r){if(iu(r)){let e=[];if(r.importPath?.value){let n=Ml(r.filepath,r.importPath.value);n?t.layout.exists(n)||e.push(new b(y.NONEXISTENT_MODULE,`Failed to resolve the non-existent file '${r.importPath.value}'`,r.importPath)):e.push(new b(y.BINDING_ERROR,`Import path must be relative, got '${r.importPath.value}'`,r.importPath))}if(r.specifiers){let n=t.bindNode(r.specifiers);e.push(...n.getErrors())}return new n(void 0,e)}return r instanceof od?new n(void 0,r.specifiers.flatMap(e=>t.bindNode(e).getErrors())):au(r)?r.name?new n(void 0,t.nodeReferee(r.name).getErrors()):new n(void 0):n.create(e)},interpretSymbol(r,i,a){if(!(i instanceof td))return n.create(e);if(!i.usedSymbol)return n.create(void 0);let o=r.interpretSymbol(i.usedSymbol,a);if(o.hasValue(t))return n.create(void 0);let s=o.getValue();if(!s||Array.isArray(s))return o;let c=i.name;return c&&`name`in s?n.create({...s,name:c}):n.create(s)}};function $v(e,n,r,i,a=new Set){if(!n||a.has(n.intern()))return;a.add(n.intern());let o=e.usableMembers(n).getFiltered(t);if(!o)return;let s=o.nonSchemaMembers.find(e=>e.name===r&&e.isKind(i));if(s)return s;let c=o.schemaMembers.find(e=>e.name===r);if(c?.isKind(j.Schema))return c;for(let t of o.reuses.selective)if(D(t.alias??t.name)?.at(-1)===r){let o=t.parentOfKind(id);if(o?.importPath?.value){let s=$v(e,Ml(n,o.importPath.value),D(t.name)?.at(-1)??r,i,a);if(s)return s}}for(let{importPath:t}of o.reuses.wildcard){let n=$v(e,t,r,i,a);if(n)return n}}function ey(e){if(e instanceof jl){let{ast:n}=this.parseFile(e).getValue(),r=this.nodeSymbol(n).getFiltered(t);return this.usableMembers(r)}let r=e.filepath,i=ny(this,r),{nonSchemaMembers:a,schemaMembers:o}=e instanceof $u?ry(this,e,i):iy(this,e,i);return new n({nonSchemaMembers:a,schemaMembers:o,reuses:{selective:i.selectiveReuses,wildcard:i.wildcardReuses},uses:{selective:i.selectiveUses,wildcard:i.wildcardUses}},i.parseResult.getErrors(),i.parseResult.getWarnings())}function ty(e,n,r){let i=n.qualifiedName,a;if(a=r instanceof ad?Zv.visibleName(e,r):e.nodeFullname(r).getFiltered(t),!a)return{kind:`none`};let o=r instanceof ad&&r.getSymbolKind()===j.Schema?a:a.length<=1?[v]:a.slice(0,-1);return o.length<i.length||!i.every((e,t)=>e===o[t])?{kind:`none`}:o.length===i.length?{kind:`direct`}:{kind:`child`,schemaName:o[i.length]}}function ny(e,t){let n=e.parseFile(t),{ast:r}=n.getValue(),i=[],a=[],o=[],s=[];for(let e of r.body){if(!(e instanceof id)||!e.specifiers||!e.importPath)continue;let n=Ml(t,e.importPath.value);n&&(e.isReuse?e.specifiers instanceof hd?i.push({importPath:n,node:e.specifiers}):a.push(...e.specifiers.specifiers):e.specifiers instanceof hd?o.push({importPath:n,node:e.specifiers}):s.push(...e.specifiers.specifiers))}return{ast:r,parseResult:n,selectiveReuses:a,wildcardReuses:i,selectiveUses:s,wildcardUses:o}}function ry(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=n.filepath,c=new Map([[v,e.symbolFactory.create(Lu,{name:v},s)]]);for(let n of i.declarations){let r=e.nodeFullname(n).getFiltered(t)||[],i=r.length<=1?v:r[0];c.has(i)||c.set(i,e.symbolFactory.create(Lu,{name:i},s))}ay(e,[...a,...o],c,s);for(let t of e.reachableFiles(s))for(let n of sy(e,t))c.has(n)||c.set(n,e.symbolFactory.create(Lu,{name:n},s));let l=[...c.values()],u=[],d=l.find(e=>e.isPublicSchema());if(d){let n=e.usableMembers(d).getFiltered(t);n&&u.push(...n.nonSchemaMembers)}return{nonSchemaMembers:u,schemaMembers:l}}function iy(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=[],c=new Map;for(let r of i.body){if(!(r instanceof F))continue;let i=ty(e,n,r),a=e.nodeAlias(r).getFiltered(t),o=e.nodeSymbol(r).getFiltered(t);if(a!==void 0&&n.isPublicSchema()&&o&&s.push(e.symbolFactory.create(ed,{kind:o.kind,declaration:r,aliasedSymbol:o,name:a},n.filepath)),i.kind!==`none`)if(i.kind===`direct`){let n=e.nodeSymbol(r).getFiltered(t);if(!n)continue;s.push(n)}else c.has(i.schemaName)||c.set(i.schemaName,e.symbolFactory.create(Lu,{name:i.schemaName,parent:n},n.filepath))}oy(e,[...a,...o],n,c);let l=n.qualifiedName;for(let t of e.reachableFiles(n.filepath))for(let r of cy(e,t,l))c.has(r)||c.set(r,e.symbolFactory.create(Lu,{name:r,parent:n},n.filepath));return{nonSchemaMembers:s,schemaMembers:[...c.values()]}}function ay(e,t,n,r){for(let i of t){if(i.getSymbolKind()!==j.Schema)continue;let t=Zv.visibleName(e,i)?.at(0);t!==void 0&&!n.has(t)&&n.set(t,e.symbolFactory.create(Lu,{name:t},r))}}function oy(e,t,n,r){let i=n.qualifiedName;for(let a of t){if(a.getSymbolKind()!==j.Schema)continue;let t=Zv.visibleName(e,a);if(!t||t.length<=i.length||!i.every((e,n)=>e===t[n]))continue;let o=t[i.length];o&&!r.has(o)&&r.set(o,e.symbolFactory.create(Lu,{name:o,parent:n},n.filepath))}}function sy(e,n){let{ast:r}=e.parseFile(n).getValue(),i=[];for(let n of r.declarations){let r=e.nodeFullname(n).getFiltered(t)||[],a=r.length<=1?v:r[0];i.push(a)}let a=ny(e,n);for(let t of[...a.selectiveUses,...a.selectiveReuses]){if(t.getSymbolKind()!==j.Schema)continue;let n=Zv.visibleName(e,t)?.at(0);n!==void 0&&i.push(n)}return i}function cy(e,n,r){let{ast:i}=e.parseFile(n).getValue(),a=[];for(let n of i.declarations){let i=e.nodeFullname(n).getFiltered(t)||[],o=i.length<=1?[v]:i.slice(0,-1);o.length>r.length&&r.every((e,t)=>e===o[t])&&a.push(o[r.length])}let o=ny(e,n);for(let t of[...o.selectiveUses,...o.selectiveReuses]){if(t.getSymbolKind()!==j.Schema)continue;let n=Zv.visibleName(e,t);!n||n.length<=r.length||r.every((e,t)=>e===n[t])&&a.push(n[r.length])}return a}var ly=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=g(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return(e=>e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];if(h(n)instanceof B){let e=x(h(n)).getValue();t.push(...e.ref?.flatMap(e=>e.value?this.bindInlineRef(e.value):[])||[]),t.push(...e.default?.flatMap(e=>e.value?this.tryToBindEnumFieldRef(e.value):[])||[]),n.pop()}return n[1]&&this.tryToBindColumnType(n[1]),t}))(e.filter(e=>!ql(e.callee)))}tryToBindColumnType(e){let t=Su(e);if(!t)return;let n=t.variables.pop();n&&this.compiler.nodeReferee(n).getErrors()}tryToBindEnumFieldRef(e){if(S(e))return[];if(C(e)){let t=e.expression.variable?.value?.toLowerCase();if(t&&Nl.includes(t))return[]}let t=Su(e);if(!t){if(w(e)){let t=e,n=[];return t.leftExpression&&n.push(...this.compiler.nodeReferee(t.leftExpression).getErrors()),t.rightExpression&&n.push(...this.compiler.nodeReferee(t.rightExpression).getErrors()),n}return[]}let n=t.variables.pop(),r=t.variables.pop();if(!n||!r)return[];let i=[],a=t.variables;for(let e of a)i.push(...this.compiler.nodeReferee(e).getErrors());return i.push(...this.compiler.nodeReferee(r).getErrors()),i.push(...this.compiler.nodeReferee(n).getErrors()),i}bindInlineRef(e){return Vd(e).flatMap(e=>{let t=e.variables.pop(),n=e.variables.pop();if(!t)return[];let r=e.variables;if(n){let e=[];for(let t of r)e.push(...this.compiler.nodeReferee(t).getErrors());return e.push(...this.compiler.nodeReferee(n).getErrors()),e.push(...this.compiler.nodeReferee(t).getErrors()),e}return this.compiler.nodeReferee(t).getErrors()})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},uy=class{constructor(e,t,n,r){this.compiler=e,this.declarationNode=t,this.symbol=n,this.filepath=r,this.table={name:void 0,schemaName:void 0,alias:null,fields:[],token:void 0,indexes:[],partials:[],checks:[]},this.pkColumns=[]}interpret(){this.table.token=this.symbol?.token??A(this.declarationNode);let e=[];if(this.symbol){let{name:e,schema:t}=this.symbol.interpretedName(this.compiler,this.filepath);this.table.name=e,this.table.schemaName=t}else e.push(...this.interpretName(this.declarationNode.name));let t=[...e,...this.interpretAlias(this.declarationNode.alias),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.table.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1},filepath:this.declarationNode.filepath},pk:!0}),this.pkColumns.forEach(e=>{e.pk=!1})),n.create(this.table,t)}interpretName(e){let{name:t,schemaName:n}=Au(e);return n.length>1?(this.table.name=t,this.table.schemaName=n.join(`.`),[new b(y.UNSUPPORTED,`Nested schema is not supported`,e)]):(this.table.name=t,this.table.schemaName=n.length?n[0]:null,[])}interpretAlias(e){if(!e)return[];let t=Eu(e);return t&&(this.table.alias=t),[]}interpretSettingList(e){let t=x(e).getValue();this.table.headerColor=t[i.HeaderColor]?.length?ju(t[i.HeaderColor]?.at(0)?.value):void 0;let[n]=t[i.Note]||[];return this.table.note=n&&{value:ku(O(n?.value)),token:A(n)},[]}interpretBody(e){let[t,n]=g(e.body,e=>e instanceof R);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.table.note={value:ku(O(e.body instanceof z?e.body.body[0].callee:e.body.callee)),token:A(e)},[];case r.Indexes:return this.interpretIndexes(e);case r.Checks:return this.interpretChecks(e);case r.Records:return[];default:return[]}})}interpretInjection(e,n){let r=[],i={order:n,token:A(e)};i.name=k(e.expression)||``;let a=e.expression?this.compiler.nodeReferee(e.expression).getFiltered(t):void 0,o=this.compiler.parseFile(this.filepath).getValue().ast,s=this.compiler.nodeSymbol(o).getFiltered(t);if(a&&!s.inNestedSchema(this.compiler,a)){let n=this.compiler.nodeSymbol(this.declarationNode).getFiltered(t),o=n?(this.compiler.symbolUses(n).getFiltered(t)??[]).find(e=>e.filepath.equals(this.filepath)):void 0;r.push(new b(y.UNSUPPORTED,`TablePartial ${i.name} from '${a.filepath}' should be imported. Currently, importing a table that uses a table partial requires that table partial to also be in scope.`,o?.useSpecifierDeclaration??e))}return this.table.partials.push(i),r}interpretFields(e){let n=this.symbol??this.compiler.nodeSymbol(this.declarationNode).getFiltered(t),r=(n?this.compiler.symbolMembers(n).getFiltered(t)??[]:[]).filter(e=>e.isKind(j.Column)).length?[]:[new b(y.EMPTY_TABLE,`A Table must have at least one column`,this.declarationNode)],i=e.flatMap((e,t)=>ql(e.callee)?this.interpretInjection(e.callee,t):this.interpretColumn(e));return[...r,...i]}interpretColumn(e){let n=[],r={},a=this.compiler.nodeSymbol(e).getFiltered(t);r.name=Eu(e.callee),r.token=A(e);let o=Nu(this.compiler,e.args[0]);r.type=o.getValue(),n.push(...o.getErrors()),r.pk=a?.pk(this.compiler)||!1,r.unique=a?.unique(this.compiler)||!1,r.increment=a?.increment(this.compiler)||void 0;let s=a?.nullable(this.compiler);r.not_null=s===void 0?void 0:!s,r.dbdefault=a?.default(this.compiler),r.note=a?.note(this.compiler);let c=this.compiler.nodeSettings(e).getFiltered(t)??{},l=this.compiler.parseFile(this.filepath).getValue().ast,u=this.compiler.nodeSymbol(l).getFiltered(t);return r.inline_refs=(c[i.Ref]||[]).flatMap(e=>{let r=this.compiler.nodeMetadata(e).getFiltered(t);if(!r)return[];let i=r.owners(this.compiler);if(u&&i.length>0&&!i.some(e=>e===u))return[];let a=this.compiler.interpretMetadata(r,this.filepath);if(a.hasValue(t))return[];n.push(...a.getErrors());let o=a.getValue();if(!o?.endpoints?.[0])return[];let s=o.endpoints[0],c=r.op(this.compiler);return c?{schemaName:s.schemaName,tableName:s.tableName,fieldNames:s.fieldNames,relation:c,token:s.token}:[]}),r.checks=(c[i.Check]||[]).map(e=>({token:A(e),expression:e.value.value.value})),this.table.fields.push(r),r.pk&&this.pkColumns.push(r),n}interpretIndexes(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.table.indexes.push(...i):i&&this.table.indexes.push(i),r.getErrors()}interpretChecks(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.table.checks.push(...i):i&&this.table.checks.push(i),r.getErrors()}};const dy={getDuplicateError(e,t,n){return new b(y.DUPLICATE_NAME,`Table '${e}' already exists in schema '${t}'`,n)},getColumnDuplicateError(e,t){return new b(y.DUPLICATE_COLUMN_NAME,`Duplicate column '${e}'`,t)},getPartialInjectionDuplicateError(e,t){return new b(y.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${e}'`,t)}},fy={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return T(a,r.Table)?new n(i.symbolFactory.create(Bu,{declaration:a,name:o},a.filepath)):E(a,r.Table)?ql(a.callee)?new n(i.symbolFactory.create(Ku,{declaration:a,name:o},a.filepath)):new n(i.symbolFactory.create(Vu,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(j.Table))return n.create(e);let a=i.declaration;if(!(a instanceof F))return new n([]);let o=bu(a),s=[],c=[];for(let e of o){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(s.push(i),c.push(...n.getErrors()))}let l=new Map;for(let e of s){if(!e.isKind(j.Column,j.PartialInjection)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof F&&e.declaration.name?e.declaration.name:e.declaration,r=l.get(t);r?e.isKind(j.Column)?(c.push(dy.getColumnDuplicateError(e.name,r)),c.push(dy.getColumnDuplicateError(e.name,n))):(c.push(dy.getPartialInjectionDuplicateError(e.name,r)),c.push(dy.getPartialInjectionDuplicateError(e.name,n))):l.set(t,n)}}let u=[];for(let e=0;e<s.length;e++){let n=s[e];if(!(n.declaration instanceof R)||!ql(n.declaration.callee))continue;let i=n.declaration.callee.expression,o=k(i);if(i===void 0||o===void 0)continue;let l=r.nodeReferee(i).getFiltered(t);if(!l){c.push(new b(y.BINDING_ERROR,`TablePartial '${o}' does not exist in Schema 'public'`,i||a));continue}let d=r.symbolMembers(l).getFiltered(t);if(d){let t=d.flatMap(e=>{if(!e.declaration)return[];let t=e.name;return t===void 0?e:r.symbolFactory.create(nd,{kind:j.Column,injectionDeclaration:n.declaration,declaration:e.declaration,name:t},a.filepath)});u.push({index:e,partialMembers:t})}}for(let e=u.length-1;e>=0;e--){let{index:t,partialMembers:n}=u[e];s.splice(t,0,...n)}let d=new Set(s.filter(e=>e.isKind(j.Column)&&!(e instanceof nd)).map(e=>e.name));return new n(Gc([...s.filter(e=>!(e instanceof nd&&d.has(e.name)))].reverse(),e=>e.isKind(j.Column)?e.name:e).reverse(),c)},nodeReferee(a,o){if(!su(o,r.Table))return n.create(e);let s=a.parseFile(o.filepath).getValue().ast,c=a.nodeSymbol(s).getValue();return c===t?n.create(void 0):C(o)&&o.parentNode instanceof L&&o.parentNode.op?.value===`~`?py(a,c,o):cu(o,1)?my(a,c,o):uu(o,i.Ref)?hy(a,c,o):cu(o,0)?n.create(e):gy(a,c,o)},bindNode(i,a){if(!T(a,r.Table))return n.create(e);let o=new ly(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,r,i){return r instanceof Bu?r.declaration instanceof F?new uy(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function py(e,r,i){let a=k(i)??``,o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof Lu&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,j.TablePartial,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,j.TablePartial,a);return s?n.create(s):new n(void 0,[new b(y.BINDING_ERROR,`TablePartial '${a}' does not exist in Schema 'public'`,i)])}function my(e,t,r){if(!C(r))return new n(void 0);let i=Eu(r)??``;if(!w(r.parentNode))return n.create(e.lookupMembers(t,j.Enum,i));let a=Hd(e,r);if(a){if(a.isKind(j.Schema)){let t=hu(r),o=e.lookupMembers(a,t?j.Enum:j.Schema,i);return o?n.create(o):new n(void 0,[new b(y.BINDING_ERROR,t?`Enum '${i}' does not exist in Schema 'public'`:`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}if(r.parentNode.leftExpression===r){let a=e.lookupMembers(t,j.Schema,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function hy(e,i,a){if(!C(a))return new n(void 0);let o=Eu(a)??``;if(!w(a.parentNode)){let s=a.parent,c=s instanceof F&&s.isKind(r.Table)?e.nodeSymbol(s).getFiltered(t):void 0;if(c){let t=e.lookupMembers(c,j.Column,o);if(t)return n.create(t)}let l=e.lookupMembers(i,j.Column,o);return l?n.create(l):new n(void 0,[new b(y.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${c?.name??``}'`,a)])}let s=Hd(e,a);if(s){if(s.isKind(j.Schema)){let t=e.lookupMembers(s,[j.Table,j.Schema],o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(j.Table)){let t=e.lookupMembers(s,j.Column,o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${s.name}'`,a)])}return new n(void 0)}let c=a.parentNode;if(c.leftExpression===a){if(w(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,j.Schema,o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,j.Table,o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function gy(e,t,r){if(!C(r))return new n(void 0);let i=Eu(r)??``;if(!w(r.parentNode))return Nl.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,j.Enum,i));let a=Hd(e,r);if(a){if(a.isKind(j.Schema)){let t=e.lookupMembers(a,[j.Enum,j.Schema],i);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(j.Enum)){let t=e.lookupMembers(a,j.EnumField,i);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(w(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,j.Schema,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,j.Enum,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function _y(e){return e?e.split(``).every(e=>zl(e)||Bl(e))&&!Bl(e[0]):!1}function vy(e){return _y(e)?e:`"${by(e)}"`}function yy(e){let t=``,n=0,r={n:`
5
+ `,t:` `,r:`\r`,b:`\b`,f:`\f`,v:`\v`,0:`\0`,"\\":`\\`,'"':`"`,"'":`'`,"`":"`"};for(;n<e.length;)if(e[n]===`\\`&&n+1<e.length){let i=e[n+1];if(i===`u`&&n+5<e.length){let r=e.slice(n+2,n+6);if(/^[0-9a-fA-F]{4}$/.test(r)){t+=String.fromCharCode(parseInt(r,16)),n+=6;continue}}i in r?(t+=r[i],n+=2):(t+=i,n+=2)}else t+=e[n],n++;return t}function by(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n];switch(r){case`\\`:t+=`\\\\`;break;case`"`:t+=`\\"`;break;case`'`:t+=`\\'`;break;case`
6
+ `:t+=`\\n`;break;case` `:t+=`\\t`;break;case`\r`:t+=`\\r`;break;case`\b`:t+=`\\b`;break;case`\f`:t+=`\\f`;break;case`\v`:t+=`\\v`;break;case`\0`:t+=`\\0`;break;default:t+=r}}return t}function xy(e){if(e==null)return`null`;if(typeof e==`boolean`)return e?`true`:`false`;if(typeof e==`number`)return String(e);if(typeof e==`string`)return`'${by(e)}'`;let{value:t,type:n}=e;if(t==null||wf(n)&&typeof t==`string`&&t.toLowerCase()===`null`)return`null`;if(n===`expression`)return typeof t==`string`&&t.toLowerCase().trim()===`null`?`null`:`\`${t}\``;if(wf(n)){let e=X_(t);return e===null?`\`${t}\``:e?`true`:`false`}if(Cf(n)){let e=K_(t);return e===null?`\`${t}\``:String(e)}if(Df(n)){let e=nv(t);return e===null?`\`${t}\``:`'${by(e)}'`}let r=Q_(t);return r===null?`\`${t}\``:`'${by(r)}'`}function Sy(e){return(e.match(/"(?:[^"\\]|\\.)*"|[^."]+/g)||[]).map(e=>e.startsWith(`"`)&&e.endsWith(`"`)?yy(e.slice(1,-1)):e.trim()).filter(e=>e.length>0)}function Cy(e,t){let n=new Set,r=[];for(let i of t)for(let t of e.reachableFiles(i))n.has(t.intern())||(n.add(t.intern()),r.push(t));return r}function wy(e){let r=[],i=[],a=[];e.bindProject();for(let n of e.parseProject().values()){i.push(...n.getErrors()),a.push(...n.getWarnings());let o=e.nodeSymbol(n.getValue().ast).getFiltered(t);if(!o)continue;let s=e.symbolMembers(o);i.push(...s.getErrors()),a.push(...s.getWarnings());for(let n of s.getFiltered(t)??[])if(r.push(n),n instanceof Lu&&n.isKind(j.Schema)){let o=e.symbolMembers(n);i.push(...o.getErrors()),a.push(...o.getWarnings()),r.push(...o.getFiltered(t)??[])}}return new n(r,i,a)}var Ty=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=g(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(Vd).flatMap(e=>{let n=e.variables.pop();if(!n)return[];let r=this.compiler.nodeReferee(n),i=r.getFiltered(t);return i instanceof td?[...r.getErrors(),new b(y.BINDING_ERROR,`TableGroup cannot reference imported table '${i.name}'`,n)]:r.getErrors()}):[])}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Ey=class{constructor(e,t,n){this.compiler=e,this.symbol=t,this.declarationNode=t.declaration,this.filepath=n,this.tableGroup={tables:[]}}interpret(){let e=[];return this.tableGroup.token=A(this.declarationNode),e.push(...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)),n.create(this.tableGroup,e)}interpretName(e){let t=[],{name:n,schemaName:r}=Au(e);return r.length>=2&&(this.tableGroup.name=n,this.tableGroup.schemaName=r.join(`.`),t.push(new b(y.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name))),this.tableGroup.name=n,this.tableGroup.schemaName=r[0]||null,t}interpretBody(e){let[t,n]=g(e.body,e=>e instanceof R);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:this.tableGroup.note={value:ku(O(e.body instanceof z?e.body.body[0].callee:e.body.callee)),token:A(e)};break;default:break}return[]})}interpretFields(e){let n=[];return this.tableGroup.tables=e.map(e=>{let r=e.callee?this.compiler.nodeReferee(e.callee).getFiltered(t):void 0;if(r?.isKind(j.Table)){let{name:e,schema:t}=r.interpretedName(this.compiler,this.filepath);return{name:e,schemaName:t}}let i=D(e.callee);return i.length>2&&n.push(new b(y.UNSUPPORTED,`Nested schema is not supported`,e)),{name:i.pop(),schemaName:i.join(`.`)||null}}),n}interpretSettingList(e){let t=x(e).getValue();this.tableGroup.color=t.color?.length?ju(t.color?.at(0)?.value):void 0;let[n]=t.note||[];return this.tableGroup.note=n&&{value:ku(O(n?.value)),token:A(n)},[]}};const Dy={getDuplicateError(e,t,n){return new b(y.DUPLICATE_NAME,`TableGroup '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new b(y.DUPLICATE_NAME,`Duplicate TableGroupField '${e}'`,t)}},Oy={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t),s=o?.at(-1);return T(a,r.TableGroup)?new n(i.symbolFactory.create(Hu,{declaration:a,name:s},a.filepath)):E(a,r.TableGroup)?new n(i.symbolFactory.create(Uu,{declaration:a,name:o?.map(vy).join(`.`)},a.filepath)):n.create(e)},symbolMembers(r,i){if(i.isKind(j.TableGroup)){let e=i.declaration;if(!(e instanceof F))return new n([]);let a=bu(e),o=[],s=[];for(let e of a){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(o.push(i),s.push(...n.getErrors()))}let c=new Map;for(let e of o){if(!e.isKind(j.TableGroupField)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof F&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(Dy.getFieldDuplicateError(e.name,r)),s.push(Dy.getFieldDuplicateError(e.name,n))):c.set(t,n)}}return new n(o,s)}return i.isKind(j.TableGroupField)?new n([]):n.create(e)},nodeReferee(i,a){if(!C(a)||!su(a,r.TableGroup)||a.parent&&lu(a))return n.create(e);let o=i.parseFile(a.filepath).getValue().ast,s=i.nodeSymbol(o).getValue();return s===t?n.create(void 0):ky(i,s,a)},bindNode(i,a){if(!T(a,r.TableGroup))return n.create(e);let o=new Ty(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,i,a){let o=i.declaration;return!T(o,r.TableGroup)||!(i instanceof Hu)?n.create(e):Bd(t,o)?new Ey(t,i,a).interpret():n.create(void 0)}};function ky(e,r,i){let a=Eu(i)??``;if(!w(i.parentNode)){let o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof Lu&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,j.Table,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,j.Table,a);return s?n.create(s):new n(void 0,[new b(y.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}let o=Hd(e,i);if(o){if(o.isKind(j.Schema)){let t=e.lookupMembers(o,[j.Table,j.Schema],a);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}return new n(void 0)}let s=e.lookupMembers(r,j.Schema,a);return s?n.create(s):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}var Ay=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof z?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof R)return this.bindFields([e]);let[t,n]=g(e.body,e=>e instanceof R);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];if(h(n)instanceof B){let e=x(h(n)).getValue();t.push(...e.ref?.flatMap(e=>e.value?this.bindInlineRef(e.value):[])||[]),n.pop()}return n[1]&&this.tryToBindColumnType(n[1]),t})}tryToBindColumnType(e){let t=Su(e);if(!t)return[];let n=t.variables.pop();return n?this.compiler.nodeReferee(n).getErrors():[]}bindInlineRef(e){return Vd(e).flatMap(e=>{let t=e.variables.pop(),n=e.variables.pop();if(!t)return[];if(n){let r=[],i=e.variables;for(let e of i)r.push(...this.compiler.nodeReferee(e).getErrors());let a=this.compiler.nodeReferee(n);return r.push(...a.getErrors()),a.getValue()&&r.push(...this.compiler.nodeReferee(t).getErrors()),r}return this.compiler.nodeReferee(t).getErrors()})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},jy=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.symbol=t,this.filepath=n,this.tablePartial={name:void 0,fields:[],token:void 0,indexes:[],checks:[]},this.pkColumns=[]}interpret(){this.tablePartial.token=this.symbol?.token??A(this.declarationNode),this.symbol?this.tablePartial.name=this.symbol.interpretedName(this.compiler,this.filepath).name:this.interpretName(this.declarationNode.name);let e=[...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.tablePartial.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),pk:!0,token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1},filepath:this.declarationNode.filepath}}),this.pkColumns.forEach(e=>{e.pk=!1})),new n(this.tablePartial,e)}interpretName(e){let{name:t}=Au(e);return this.tablePartial.name=t,[]}interpretSettingList(e){let t=x(e).getValue(),n=_c(t[i.HeaderColor]);this.tablePartial.headerColor=n?ju(n.value):void 0;let[r]=t[i.Note]||[];return this.tablePartial.note=r&&{value:ku(O(r?.value)),token:A(r)},[]}interpretBody(e){let[t,n]=g(e.body,e=>e instanceof R);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.tablePartial.note={value:ku(O(e.body instanceof z?e.body.body[0].callee:e.body.callee)),token:A(e)},[];case r.Indexes:return this.interpretIndexes(e);case r.Checks:return this.interpretChecks(e);default:return[]}})}interpretFields(e){return e.flatMap(e=>this.interpretColumn(e))}interpretColumn(e){let n=[],r={},a=this.compiler.nodeSymbol(e).getFiltered(t);r.name=Eu(e.callee)??``,r.token=A(e);let o=Nu(this.compiler,e.args[0]);r.type=o.getValue(),n.push(...o.getErrors()),r.pk=a?.pk(this.compiler)||void 0,r.unique=a?.unique(this.compiler)||void 0,r.increment=a?.increment(this.compiler)||void 0;let s=a?.nullable(this.compiler);r.not_null=s===void 0?void 0:!s,r.dbdefault=a?.default(this.compiler),r.note=a?.note(this.compiler);let c=this.compiler.nodeSettings(e).getFiltered(t)??{},l=this.compiler.parseFile(this.filepath).getValue().ast,u=this.compiler.nodeSymbol(l).getFiltered(t);return r.inline_refs=(c[i.Ref]||[]).flatMap(e=>{let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!(n instanceof wd))return[];let r=n.owners(this.compiler);if(u&&r.length>0&&!r.some(e=>e===u))return[];let i=n.op(this.compiler);if(!i)return[];let a=n.rightTable(this.compiler),o=n.rightColumns(this.compiler);if(!a||o.length===0)return[];let s=a.interpretedName(this.compiler,this.filepath);return{schemaName:s.schema,tableName:s.name,fieldNames:o.map(e=>e.name??``),relation:i,token:A(n.rightToken())}}),r.checks=(c[i.Check]||[]).map(e=>({token:A(e),expression:e.value.value.value})),this.tablePartial.fields?.push(r),r.pk&&this.pkColumns.push(r),n}interpretIndexes(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.tablePartial.indexes?.push(...i):i&&this.tablePartial.indexes?.push(i),r.getErrors()}interpretChecks(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.tablePartial.checks?.push(...i):i&&this.tablePartial.checks?.push(i),r.getErrors()}};const My={getDuplicateError(e,t,n){return new b(y.DUPLICATE_NAME,`TablePartial '${e}' already exists in schema '${t}'`,n)}},Ny={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return T(a,r.TablePartial)?new n(i.symbolFactory.create(Gu,{declaration:a,name:o},a.filepath)):E(a,r.TablePartial)?new n(i.symbolFactory.create(Vu,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(i,a){if(a.isKind(j.TablePartial)){let e=a.declaration;if(!(e instanceof F))return new n([]);let r=bu(e),o=[],s=[];for(let e of r){let n=i.nodeSymbol(e),r=n.getFiltered(t);r&&(o.push(r),s.push(...n.getErrors()))}let c=new Map;for(let e of o){if(!e.isKind(j.Column)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration instanceof F&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(dy.getColumnDuplicateError(t,r)),s.push(dy.getColumnDuplicateError(t,n))):c.set(t,n)}}return new n(o,s)}return a.isKind(j.Column)&&T(a.declaration?.parent,r.TablePartial)?new n([]):n.create(e)},nodeReferee(a,o){if(!C(o)&&!w(o)||!su(o,r.TablePartial))return n.create(e);let s=a.parseFile(o.filepath).getValue().ast,c=a.nodeSymbol(s).getValue();return c===t?n.create(void 0):cu(o,1)?Py(a,c,o):uu(o,i.Ref)?Fy(a,c,o):Iy(a,c,o)},bindNode(i,a){if(!T(a,r.TablePartial))return n.create(e);let o=new Ay(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,r,i){return r instanceof Gu?r.declaration instanceof F?new jy(t,r,i).interpret():n.create(void 0):n.create(e)}};function Py(e,t,r){if(!C(r))return new n(void 0);let i=Eu(r)??``;if(!w(r.parentNode))return n.create(e.lookupMembers(t,j.Enum,i));let a=Hd(e,r);if(a){if(a.isKind(j.Schema)){let t=e.lookupMembers(a,[j.Enum,j.Schema],i);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}return new n(void 0)}if(r.parentNode.leftExpression===r){let a=e.lookupMembers(t,j.Schema,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function Fy(e,i,a){if(!C(a))return new n(void 0);let o=Eu(a)??``;if(!w(a.parentNode)){let s=a.parent;if(s instanceof F&&s.isKind(r.TablePartial)){let r=e.nodeSymbol(s).getFiltered(t);if(r){let t=e.lookupMembers(r,j.Column,o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Column '${o}' does not exist in TablePartial '${r.name}'`,a)])}}let c=e.lookupMembers(i,j.Column,o);return c?n.create(c):new n(void 0,[new b(y.BINDING_ERROR,`Column '${o}' does not exist`,a)])}let s=Hd(e,a);if(s){if(s.isKind(j.Schema)){let t=e.lookupMembers(s,[j.Table,j.Schema],o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(j.Table)){let t=e.lookupMembers(s,j.Column,o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${s.name}'`,a)])}return new n(void 0)}let c=a.parentNode;if(c.leftExpression===a){if(w(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,j.Schema,o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,j.Table,o);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function Iy(e,t,r){if(!C(r))return new n(void 0);let i=Eu(r)??``;if(!w(r.parentNode))return Nl.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,j.Enum,i));let a=Hd(e,r);if(a){if(a.isKind(j.Schema)){let t=e.lookupMembers(a,[j.Enum,j.Schema],i);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(j.Enum)){let t=e.lookupMembers(a,j.EnumField,i);return t?n.create(t):new n(void 0,[new b(y.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(w(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,j.Schema,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,j.Enum,i);return a?n.create(a):new n(void 0,[new b(y.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}const Ly={symbolMembers(r,i){if(!i.isKind(j.Schema)||!(i instanceof Lu))return n.create(e);let a=i.qualifiedName,o=r.usableMembers(i).getFiltered(t);if(!o)return n.create([]);let s=[...o.nonSchemaMembers],c=new Map(o.schemaMembers.map(e=>[e.name,e])),l=[];for(let e of o.reuses.selective){let n=zy(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...By(r,i,e))}for(let{importPath:e,node:t}of o.reuses.wildcard)s.push(...Hy(r,i,e,t,c));for(let e of o.uses.selective){let n=zy(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...By(r,i,e))}for(let{importPath:e,node:t}of o.uses.wildcard)s.push(...Hy(r,i,e,t,c));s.push(...c.values());let u=[...s];{let e=s.filter(e=>e.isKind(j.TableGroup));if(!i.isPublicSchema()){let n=r.usableMembers(i.filepath).getFiltered(t)?.schemaMembers.find(e=>e.isPublicSchema());if(n){let i=r.symbolMembers(n).getFiltered(t);i&&e.push(...i.filter(e=>e.isKind(j.TableGroup)))}}for(let t of e)u.push(...Wy(r,i,t))}let d=new Set,f=u.filter(e=>{if(e instanceof td&&e.isKind(j.Schema))return!1;let t=`${e.originalSymbol.intern()}:${e.name??``}`;return d.has(t)?!1:(d.add(t),!0)}),p=new Map;for(let e of f){let t=`${e.kind}:${e.name}`;if(p.get(t)){if(e.isKind(j.Schema))continue;let t=e instanceof td?e.useSpecifierDeclaration??e.declaration:e.declaration instanceof F&&e.declaration.name?e.declaration.name:e.declaration;t&&e.name!==void 0&&l.push(Ry(e.kind,e.name,a.join(`.`),t))}else p.set(t,e)}return new n(f,l)}};function Ry(e,t,n,r){switch(e){case j.Table:return dy.getDuplicateError(t,n,r);case j.Enum:return nf.getDuplicateError(t,n,r);case j.TablePartial:return My.getDuplicateError(t,n,r);case j.TableGroup:return Dy.getDuplicateError(t,n,r);case j.DiagramView:return Jd.getDuplicateError(t,n,r);default:return new b(y.DUPLICATE_NAME,`Duplicate ${e} '${t}' in schema '${n}'`,r)}}function zy(e,r,i,a){let o=ty(e,r,i);if(o.kind===`none`)return n.create(void 0);if(o.kind===`direct`){let r=e.nodeSymbol(i);return r.hasValue(t)?n.create(void 0):r}return a.has(o.schemaName)||a.set(o.schemaName,e.symbolFactory.create(Lu,{name:o.schemaName,parent:r},r.filepath)),n.create(void 0)}function By(e,n,r,i=new Set){if(r.getSymbolKind()!==j.Schema||!r.name)return[];let a=e.nodeReferee(r.name).getFiltered(t);if(!a||!a.isKind(j.Schema))return[];let o=Zv.visibleName(e,r),s=n.qualifiedName;return!o||o.length!==s.length||!o.every((e,t)=>e===s[t])?[]:Vy(e,n,r,a,i)}function Vy(e,n,r,i,a){let o=i.intern();if(a.has(o))return[];a.add(o);let s=e.usableMembers(i).getFiltered(t);if(!s)return[];let c=s.nonSchemaMembers.filter(e=>e.canBeImported).map(t=>e.symbolFactory.create(td,{kind:t.kind,declaration:t.originalSymbol.declaration,usedSymbol:t.originalSymbol,useSpecifierDeclaration:r,name:t.name},n.filepath));for(let t of[...c])t.isKind(j.TableGroup)&&c.push(...Wy(e,n,t));for(let i of s.reuses.selective)if(c.push(...By(e,n,i,a)),ty(e,n,i).kind===`direct`){let a=e.nodeSymbol(i).getFiltered(t);a&&a.canBeImported&&c.push(e.symbolFactory.create(td,{kind:a.kind,declaration:a.originalSymbol.declaration,usedSymbol:a.originalSymbol,useSpecifierDeclaration:r,name:a.name},n.filepath))}for(let{importPath:t}of s.reuses.wildcard){let i=Uy(e,t,n.qualifiedName);i&&c.push(...Vy(e,n,r,i,a))}return c}function Hy(e,n,r,i,a,o=new Set){if(o.has(r))return[];o.add(r);let s=Uy(e,r,n.qualifiedName);if(!s)return[];let c=e.usableMembers(s).getFiltered(t);if(!c)return[];let l=c.nonSchemaMembers.filter(e=>e.canBeImported).map(t=>e.symbolFactory.create(td,{kind:t.kind,declaration:t.declaration,usedSymbol:t,useSpecifierDeclaration:i,name:t.name},n.filepath));for(let t of c.schemaMembers)a.has(t.name)||a.set(t.name,e.symbolFactory.create(Lu,{name:t.name},n.filepath));let{reuses:{selective:u,wildcard:d}}=c;for(let r of u){let i=zy(e,n,r,a).getFiltered(t);i&&l.push(i),l.push(...By(e,n,r))}for(let{importPath:t}of d)l.push(...Hy(e,n,t,i,a,o));return l}function Uy(e,n,r){if(r.length===0)return;let i=e.usableMembers(n).getFiltered(t);if(!i)return;let{schemaMembers:a}=i,o,s=[...r];for(;s.length>0;){let t=s.shift();if(o=a.find(e=>e.name===t),!o)return;let n=e.usableMembers(o).getValue();({schemaMembers:a}=n)}return o}function Wy(e,n,r){if(!r.isKind(j.TableGroup)||!(r instanceof td))return[];let i=r.originalSymbol,a=e.symbolMembers(i).getFiltered(t);if(!a)return[];let o=n.qualifiedName,s=[];for(let t of a){if(!t.isKind(j.TableGroupField)||!t.declaration)continue;let n=t.declaration.callee;if(!n)continue;let i=D(n);if(!i||i.length===0)continue;let a=i.length<=1?[v]:i.slice(0,-1);if(a.length!==o.length||!o.every((e,t)=>e===a[t]))continue;let c=t.declaration.filepath,l=Gy(e,c,i);l&&s.push(e.symbolFactory.create(td,{kind:j.Table,declaration:l.declaration,usedSymbol:l,useSpecifierDeclaration:void 0,name:l.name},r.filepath))}return s}function Gy(e,n,r){if(r.length===1){let i=e.usableMembers(n).getFiltered(t);return i?i.nonSchemaMembers.find(e=>e.isKind(j.Table)&&e.name===r[0]):void 0}let i=r[0],a=r[r.length-1],o=e.usableMembers(n).getFiltered(t);if(!o)return;let s=o.schemaMembers.find(e=>e.name===i);if(!s)return;let c=e.usableMembers(s).getFiltered(t);if(c)return c.nonSchemaMembers.find(e=>e.isKind(j.Table)&&e.name===a)}var Ky=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.bindBody(this.declarationNode.body)}bindBody(e){if(!e||e instanceof R)return[];let t=e.body.filter(e=>e instanceof F);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},qy=class{constructor(e,t,n){this.compiler=e,this.symbol=t,this.declarationNode=t.declaration,this.filepath=n,this.note={name:void 0,content:void 0,token:void 0}}interpret(){this.note.token=A(this.declarationNode);let e=[...this.interpretName(),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return n.create(this.note,e)}interpretName(){let{name:e}=this.symbol.interpretedName(this.compiler,this.filepath);return this.note.name=e,[]}interpretSettingList(e){let t=x(e).getValue();return t.color?.length&&(this.note.color=ju(t.color.at(0)?.value)),[]}interpretBody(e){let[t,n]=g(e.body,e=>e instanceof R);return t.length!==1||n.length>0?[new b(y.INVALID_NOTE,`Invalid note syntax`,e)]:[...this.interpretNote(t[0])]}interpretNote(e){let t=O(e.callee)??``;return this.note.content=ku(t),[]}};const Jy={nodeSymbol(i,a){return!T(a,r.Note)||!(a.parentNode instanceof P)?n.create(e):new n(i.symbolFactory.create(Wu,{declaration:a,name:i.nodeFullname(a).getFiltered(t)?.at(-1)},a.filepath))},symbolMembers(t,r){return r.isKind(j.StickyNote)?new n([]):n.create(e)},bindNode(t,i){return T(i,r.Note)?n.create(void 0,new Ky(t,i).bind()):n.create(e)},interpretSymbol(t,r,i){return r instanceof Wu?r.declaration instanceof F?new qy(t,r,i).interpret():n.create(void 0):n.create(e)}},Yy=[fy,rf,zv,sf,Nd,Jv,Mv,Oy,Ny,Jy,Qv,Ly,Yd,kv];function Xy(t,...r){for(let i of Yy){let a=i[t];if(a){let t=a(...r);if(t instanceof n&&!t.hasValue(e))return t}}return n.create(e)}function Zy(r){let i=Xy(`nodeSymbol`,this,r);return i.hasValue(e)?n.create(t):i}function Qy(r){let i=Xy(`symbolMembers`,this,r);return i.hasValue(e)?n.create(t):i}function $y(r){let i=Xy(`nodeReferee`,this,r);return i.hasValue(e)?n.create(t):i}function eb(r){let i=Xy(`bindNode`,this,r);return i.hasValue(e)?n.create(t):i}function tb(r){let i=Xy(`nodeMetadata`,this,r);return i.hasValue(e)?n.create(t):i}function nb(r,i){let a=Xy(`interpretSymbol`,this,r,i);return a.hasValue(e)?n.create(t):a}function rb(r,i){let a=Xy(`interpretMetadata`,this,r,i);return a.hasValue(e)?n.create(t):a}var ib=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=new b(y.INVALID_CHECKS_CONTEXT,`A Checks can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof P?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new b(y.UNEXPECTED_NAME,`A Checks shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new b(y.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return[new b(y.UNEXPECTED_SIMPLE_BODY,`A Checks must have a complex body`,e)];let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];return h(n)instanceof B&&t.push(...this.validateFieldSetting(n.pop())),(n.length>1||!(n[0]instanceof ud))&&t.push(new b(y.INVALID_CHECKS_FIELD,`A check field must be a function expression`,e)),t})}validateFieldSetting(e){let t=x(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`name`:t.length>1&&t.forEach(t=>n.push(new b(y.DUPLICATE_CHECK_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{S(t.value)||n.push(new b(y.INVALID_CHECK_SETTING_VALUE,`'${e}' must be a string`,t))});break;default:t.forEach(t=>n.push(new b(y.UNKNOWN_CHECK_SETTING,`Unknown check setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const ab={validateNode(t,i){if(!T(i,r.Checks))return n.create(e);let a=new ib(t,i);return n.create(void 0,a.validate())},nodeFullname(t,i){return T(i,r.Checks)?i.name?new n(void 0,[new b(y.UNEXPECTED_NAME,`A Checks shouldn't have a name`,i.name)]):new n(void 0):n.create(e)},nodeAlias(t,i){return T(i,r.Checks)?i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return T(i,r.Checks)?i.attributeList?new n({},[new b(y.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}};var ob=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F&&this.declarationNode.parent.isKind(r.Project)?[]:[new b(y.INVALID_CUSTOM_CONTEXT,`A Custom element can only appear in a Project`,this.declarationNode)]}validateName(e){return e?[new b(y.UNEXPECTED_NAME,`A Custom element shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new b(y.UNEXPECTED_NAME,`A Custom element shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new b(y.UNEXPECTED_SETTINGS,`A Custom element shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof z)return[new b(y.UNEXPECTED_COMPLEX_BODY,`A Custom element can only have an inline field`,e)];let t=[];return S(e.callee)||t.push(new b(y.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e)),e.args.length>0&&t.push(...e.args.map(e=>new b(y.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e))),t}};function sb(e){return e instanceof F&&!!e.type?.value}const cb={validateNode(t,r){if(!sb(r))return n.create(e);let i=new ob(t,r);return n.create(void 0,i.validate())},nodeFullname(t,r){return sb(r)?r.name?new n(void 0,[new b(y.UNEXPECTED_NAME,`A custom field shouldn't have a name`,r.name)]):new n(void 0):n.create(e)},nodeAlias(t,r){return sb(r)?r.alias?new n(void 0,[new b(y.UNEXPECTED_NAME,`A custom field shouldn't have an alias`,r.alias)]):new n(void 0):n.create(e)},nodeSettings(t,r){return sb(r)?r.attributeList?new n({},[new b(y.UNEXPECTED_SETTINGS,`A custom field shouldn't have a setting list`,r.attributeList)]):new n({}):n.create(e)}};var lb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){let e=[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList)],t=this.validateBody(this.declarationNode.body);return e.push(...t.errors),{errors:e,warnings:t.warnings}}validateContext(){return this.declarationNode.parent instanceof F?[new b(y.INVALID_DIAGRAMVIEW_CONTEXT,`DiagramView must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?Gl(e)?[]:[new b(y.INVALID_NAME,`A DiagramView name must be a single identifier`,e)]:[new b(y.NAME_NOT_FOUND,`A DiagramView must have a name`,this.declarationNode)]}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`A DiagramView shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=x(e),n=t.getErrors(),r=t.getValue();for(let e of Object.keys(r))n.push(...r[e].map(t=>new b(y.UNEXPECTED_SETTINGS,`Unknown '${e}' setting for DiagramView`,t)));return n}validateBody(e){if(!e)return{errors:[],warnings:[]};if(e instanceof R)return{errors:[new b(y.UNEXPECTED_SIMPLE_BODY,`A DiagramView's body must be a block`,e)],warnings:[]};let[t,n]=g(e.body,e=>e instanceof R),r=this.validateSubElements(n);return{errors:[...this.validateFields(t),...r.errors],warnings:r.warnings}}validateFields(e){return e.flatMap(e=>tu(e.callee)?e.args.length>0?e.args.map(e=>new b(y.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)):[]:[new b(y.INVALID_DIAGRAMVIEW_FIELD,`Fields are not allowed at DiagramView level. Use Tables, Notes, TableGroups, or Schemas blocks instead.`,e)])}validateSubElements(e){let t=[],n=[],r=[`tables`,`notes`,`tablegroups`,`schemas`];for(let i of e){if(!i.type)continue;let e=i.type.value.toLowerCase();if(!r.includes(e)){t.push(new b(y.INVALID_DIAGRAMVIEW_FIELD,`Unknown block type "${i.type.value}" in DiagramView. Allowed: Tables, Notes, TableGroups, Schemas`,i));continue}let a=this.validateSubBlock(i);t.push(...a.errors),n.push(...a.warnings)}return{errors:t,warnings:n}}validateSubBlock(e){let t=[],n=[];if(Kl(e))return t.push(new b(y.UNEXPECTED_SIMPLE_BODY,`${e.type?.value} body must be a block`,e.bodyColon)),{errors:t,warnings:n};if(!e.body||!(e.body instanceof z))return{errors:t,warnings:n};let r=e.body,i=r.body.some(e=>e instanceof R&&tu(e.callee)),a=r.body.some(e=>e instanceof R&&!tu(e.callee));return i&&a&&n.push(new Rl(y.INVALID_DIAGRAMVIEW_FIELD,`Wildcard (*) combined with specific items in ${e.type?.value} block. Specific items will be ignored.`,e)),t.push(...this.validateSubBlockFields(e)),{errors:t,warnings:n}}validateSubBlockFields(e){let t=[];if(!e.body||!(e.body instanceof z))return t;let n=e.body.body.filter(e=>e instanceof R);for(let e of n)tu(e.callee)||(e.args.length>0||!D(e.callee))&&t.push(...e.args.map(e=>new b(y.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)));return t}};const ub={validateNode(t,i){if(!T(i,r.DiagramView))return n.create(e);let{errors:a,warnings:o}=new lb(t,i).validate();return n.create(void 0,a,o)},nodeFullname(t,i){if(T(i,r.DiagramView)){if(!i.name)return new n(void 0,[new b(y.NAME_NOT_FOUND,`A DiagramView must have a name`,i)]);let e=D(i.name);return e?new n(e):new n(void 0)}else if(E(i,r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewSchemas,r.DiagramViewTableGroups)){let e=D(i.callee);return e?(e.length===1&&E(i,r.DiagramViewTables)&&e.unshift(v),new n(e)):new n(void 0)}return new n(e)},nodeAlias(t,i){return T(i,r.DiagramView)?new n(void 0):n.create(e)}};var db=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new b(y.INVALID_PROJECT_CONTEXT,`An Enum can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof hd?[new b(y.INVALID_NAME,`Wildcard (*) is not allowed as an Enum name`,e)]:Ul(e)?[]:[new b(y.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,e)]:[new b(y.NAME_NOT_FOUND,`An Enum must have a name`,this.declarationNode)]}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new b(y.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return this.validateFields([e]);let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new b(y.EMPTY_ENUM,`An Enum must have at least one element`,this.declarationNode)];let t=[];for(let n of e){n.callee&&!C(n.callee)&&t.push(new b(y.INVALID_ENUM_ELEMENT_NAME,`An enum field must be an identifier or a quoted identifier`,n.callee));let e=[...n.args];h(e)instanceof B?(t.push(...this.validateFieldSettings(h(e))),e.pop()):e[0]instanceof B&&(t.push(...this.validateFieldSettings(e[0])),e.shift()),e.length>0&&t.push(...e.map(e=>new b(y.INVALID_ENUM_ELEMENT,`An Enum must have only a field and optionally a setting list`,e)))}return t}validateFieldSettings(e){let t=x(e),n=t.getErrors(),r=t.getValue();for(let e in r){let t=r[e];if(t)switch(e){case i.Note:t.length>1&&t.forEach(e=>n.push(new b(y.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{S(e.value)||n.push(new b(y.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))});break;default:t.forEach(t=>n.push(new b(y.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const fb={validateNode(t,i){return T(i,r.Enum)?n.create(void 0,new db(t,i).validate()):n.create(e)},nodeFullname(t,i){if(T(i,r.Enum)){if(!i.name)return new n(void 0,[new b(y.NAME_NOT_FOUND,`An Enum must have a name`,i)]);if(!Ul(i.name))return new n(void 0,[new b(y.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,i.name)]);let e=D(i.name);return e?.length===1&&e.unshift(v),new n(e)}if(E(i,r.Enum)){let e=k(i.callee);return new n(e===void 0?void 0:[e])}return n.create(e)},nodeAlias(t,i){return T(i,r.Enum)?i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,i.alias)]):new n(void 0):E(i,r.Enum)?new n(void 0):n.create(e)},nodeSettings(t,a){if(T(a,r.Enum))return a.attributeList?new n({},[new b(y.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,a.attributeList)]):new n({});if(E(a,r.Enum)){let e=[...a.args],t;if(h(e)instanceof B?t=h(e):e[0]instanceof B&&(t=e[0]),!t)return new n({});let r=x(t),o=r.getErrors(),s=r.getValue(),c={};for(let[e,t]of Object.entries(s))switch(e){case i.Note:t.length>1&&t.forEach(e=>o.push(new b(y.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{S(e.value)||o.push(new b(y.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new b(y.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}};var pb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=new b(y.INVALID_INDEXES_CONTEXT,`An Indexes can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof P?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new b(y.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new b(y.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return[new b(y.UNEXPECTED_SIMPLE_BODY,`An Indexes must have a complex body`,e)];let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];return h(n)instanceof B&&t.push(...this.validateFieldSetting(n.pop())),n.forEach(e=>{for(;e instanceof V;)e.argumentList&&Cu(e.argumentList)===void 0&&t.push(new b(y.INVALID_INDEXES_FIELD,`An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such`,e.argumentList)),e=e.callee;Cu(e)===void 0&&t.push(new b(y.INVALID_INDEXES_FIELD,`An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such`,e))}),t})}validateFieldSetting(e){let t=x(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`note`:case`name`:t.length>1&&t.forEach(t=>n.push(new b(y.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{S(t.value)||n.push(new b(y.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))});break;case`unique`:case`pk`:t.length>1&&t.forEach(t=>n.push(new b(y.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&n.push(new b(y.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))});break;case`type`:t.length>1&&t.forEach(e=>n.push(new b(y.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{C(e.value)||n.push(new b(y.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))});break;default:t.forEach(t=>n.push(new b(y.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const mb={validateNode(t,i){return T(i,r.Indexes)?n.create(void 0,new pb(t,i).validate()):n.create(e)},nodeFullname(t,i){return T(i,r.Indexes)?i.name?new n(void 0,[new b(y.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,i.name)]):new n(void 0):E(i,r.Indexes)?new n(void 0):n.create(e)},nodeAlias(t,i){return T(i,r.Indexes)?i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,i.alias)]):new n(void 0):E(i,r.Indexes)?new n(void 0):n.create(e)},nodeSettings(t,a){if(T(a,r.Indexes))return a.attributeList?new n({},[new b(y.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,a.attributeList)]):new n({});if(E(a,r.Indexes)){let e=[a.callee,...a.args],t;if(h(e)instanceof B&&(t=h(e)),!t)return new n({});let r=x(t),o=r.getErrors(),s=r.getValue(),c={};for(let[e,t]of Object.entries(s))switch(e){case i.Note:case i.Name:t.length>1&&t.forEach(t=>o.push(new b(y.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{S(t.value)||o.push(new b(y.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))}),c[e]=t;break;case i.Unique:case i.PK:t.length>1&&t.forEach(t=>o.push(new b(y.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&o.push(new b(y.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))}),c[e]=t;break;case i.Type:t.length>1&&t.forEach(e=>o.push(new b(y.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{C(e.value)||o.push(new b(y.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new b(y.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}};var hb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=this.declarationNode.parent;return!(e instanceof P)&&!(e instanceof F&&e.isKind(r.Table,r.TableGroup,r.TablePartial,r.Project))?[new b(y.INVALID_NOTE_CONTEXT,`A Note can only appear inside a Table, a TableGroup, a TablePartial or a Project. Sticky note can only appear at the global scope.`,this.declarationNode)]:[]}validateName(e){return this.compiler.nodeFullname(this.declarationNode).getErrors()}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,e)]:[]}isStickyNote(){return this.declarationNode.parent instanceof P}validateSettingList(e){if(!e)return[];if(!this.isStickyNote())return[new b(y.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,e)];let t=x(e),n=t.getErrors();return Tc(t.getValue(),(e,t)=>{switch(t){case i.Color:e.length>1&&n.push(...e.map(e=>new b(y.DUPLICATE_NOTE_SETTING,`'color' can only appear once`,e))),e.forEach(e=>{let t=nu(e.value)&&e.value.expression.variable.value.toLowerCase()===`none`;!Yl(e.value)&&!t&&n.push(new b(y.INVALID_NOTE_SETTING_VALUE,`'color' must be a color literal or 'none'`,e.value||e.name))});break;default:n.push(...e.map(e=>new b(y.UNKNOWN_NOTE_SETTING,`Unknown '${t}' setting`,e)))}}),n}validateBody(e){if(!e)return[];if(e instanceof R)return this.validateFields([e]);let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=[];return e.length===0?[new b(y.EMPTY_NOTE,`A Note must have a content`,this.declarationNode)]:(e.length>1&&e.slice(1).forEach(e=>t.push(new b(y.NOTE_CONTENT_REDEFINED,`A Note can only contain one string`,e))),S(e[0].callee)||t.push(new b(y.INVALID_NOTE,`A Note content must be a quoted string`,e[0])),e[0].args.length>0&&t.push(...e[0].args.map(e=>new b(y.INVALID_NOTE,`A Note can only contain one quoted string`,e))),t)}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const gb={validateNode(t,i){return T(i,r.Note)?n.create(void 0,new hb(t,i).validate()):n.create(e)},nodeFullname(t,i){if(!T(i,r.Note))return n.create(e);if(!(i.parent instanceof P))return i.name?new n(void 0,[new b(y.UNEXPECTED_NAME,`A Note shouldn't have a name`,i.name)]):new n(void 0);if(!i.name)return new n(void 0,[new b(y.INVALID_NAME,`Sticky note must have a name`,i)]);if(i.name instanceof hd)return new n(void 0,[new b(y.INVALID_NAME,`Wildcard (*) is not allowed as a Note name`,i.name)]);let a=D(i.name);return a===void 0?new n(void 0,[new b(y.INVALID_NAME,`Invalid name for sticky note `,i)]):new n(a)},nodeAlias(t,i){return T(i,r.Note)?i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return T(i,r.Note)?i.attributeList?new n({},[new b(y.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}};var _b=class{constructor(e,t){this.ast=t,this.compiler=e}validate(){let e=[],t=[];for(let n of this.ast.body){let r=this.compiler.validateNode(n);e.push(...r.getErrors()),t.push(...r.getWarnings())}return new n(this.ast,e,t)}};const vb={validateNode(t,r){return ou(r)?n.create(void 0,new _b(t,r).validate().getErrors()):n.create(e)},nodeFullname(t,r){return ou(r)?new n(void 0):n.create(e)},nodeAlias(t,r){return ou(r)?new n(void 0):n.create(e)},nodeSettings(t,r){return ou(r)?new n({}):n.create(e)}};var yb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name).getErrors(),...this.validateAlias(this.declarationNode.alias).getErrors(),...this.validateSettingList(this.declarationNode.attributeList).getErrors(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new b(y.INVALID_PROJECT_CONTEXT,`A Project can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?Gl(e)?new n(D(e)):new n(void 0,[new b(y.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,e)]):new n(void 0)}validateAlias(e){return e?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,e)]):new n(void 0)}validateSettingList(e){return e?new n({},[new b(y.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,e)]):new n({})}validateBody(e){if(!e)return[];if(e instanceof R)return[new b(y.UNEXPECTED_SIMPLE_BODY,`A Project's body must be a block`,e)];let[t,n]=g(e.body,e=>e instanceof R);return[...t.map(e=>new b(y.INVALID_PROJECT_FIELD,`A Project can not have inline fields`,e)),...this.validateSubElements(n)]}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const bb={validateNode(t,i){return T(i,r.Project)?n.create(void 0,new yb(t,i).validate()):n.create(e)},nodeFullname(t,i){return T(i,r.Project)?i.name?Gl(i.name)?new n(D(i.name)):new n(void 0,[new b(y.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):E(i,r.Project)?new n(void 0):n.create(e)},nodeAlias(t,i){return T(i,r.Project)&&i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,i.alias)]):E(i,r.Project)?new n(void 0):n.create(e)},nodeSettings(t,i){return T(i,r.Project)?i.attributeList?new n({},[new b(y.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,i.attributeList)]):new n({}):E(i,r.Project)?new n({}):n.create(e)}};var xb=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=this.declarationNode.parent;return e instanceof P||e instanceof F&&e.isKind(r.Table)?[]:[new b(y.INVALID_RECORDS_CONTEXT,`Records can only appear at top-level or inside a Table`,this.declarationNode)]}validateName(e){return e instanceof hd?[new b(y.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,e)]:this.declarationNode.parent instanceof P?this.validateTopLevelName(e):this.validateInsideTableName(e)}validateTopLevelName(e){if(!(e instanceof V))return[new b(y.INVALID_RECORDS_NAME,`Records at top-level must have a name in the form of table(col1, col2, ...) or schema.table(col1, col2, ...)`,e||this.declarationNode.type||this.declarationNode)];let t=[];return(!e.callee||!Ul(e.callee))&&t.push(new b(y.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,e.callee||e)),(!e.argumentList||!$l(e.argumentList))&&t.push(new b(y.INVALID_RECORDS_NAME,`Records column list must be simple column names`,e.argumentList||e)),t}validateInsideTableName(e){return e&&!$l(e)?[new b(y.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,e)]:[]}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`Records cannot have an alias`,e)]:[]}validateSettingList(e){return e?[new b(y.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return this.validateDataRow(e);let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateDataRows(t),...this.validateSubElements(n)]}validateDataRows(e){return e.flatMap(e=>this.validateDataRow(e))}validateDataRow(e){let t=[];if(!e.callee||e.args.length>0)return t.push(new b(y.INVALID_RECORDS_FIELD,`Invalid record row structure`,e)),t;if(e.callee instanceof fd)for(let n of e.callee.elementList)this.isValidRecordValue(n)||t.push(new b(y.INVALID_RECORDS_FIELD,`Records can only contain simple values (literals, null, true, false, or enum references). Complex expressions are not allowed.`,n));else this.isValidRecordValue(e.callee)||t.push(new b(y.INVALID_RECORDS_FIELD,`Records can only contain simple values (literals, null, true, false, or enum references). Complex expressions are not allowed.`,e.callee));return t}isValidRecordValue(e){if(e instanceof vd||Zl(e)||S(e)||e instanceof ud)return!0;if(C(e)){let t=e.expression.variable.value.toLowerCase();return Nl.includes(t)}if(w(e)){let t=D(e);return t!==void 0&&t.length>0}return!1}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};const Sb={validateNode(t,i){return T(i,r.Records)?n.create(void 0,new xb(t,i).validate()):n.create(e)},nodeFullname(i,a){if(T(a,r.Records)){if(a.name instanceof hd)return new n(void 0,[new b(y.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,a.name)]);if(a.parent instanceof P){if(!(a.name instanceof V))return new n(void 0,[new b(y.INVALID_RECORDS_NAME,`Records at top-level must have a name in the form of table(col1, col2, ...) or schema.table(col1, col2, ...)`,a.name||a.type||a)]);let e=[];(!a.name.callee||!Ul(a.name.callee))&&e.push(new b(y.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,a.name.callee||a.name)),(!a.name.argumentList||!$l(a.name.argumentList))&&e.push(new b(y.INVALID_RECORDS_NAME,`Records column list must be simple column names`,a.name.argumentList||a.name));let t=D(a.name.callee);return t?.length===1&&t.unshift(v),new n(t,e)}else{let e=a.parent&&i.nodeFullname(a.parent).getFiltered(t);return a.name&&!$l(a.name)?new n(e,[new b(y.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,a.name)]):new n(e)}}return E(a,r.Records)?new n(void 0):n.create(e)},nodeAlias(t,i){return T(i,r.Records)?i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`Records cannot have an alias`,i.alias)]):new n(void 0):E(i,r.Records)?new n(void 0):n.create(e)},nodeSettings(t,i){return T(i,r.Records)?i.attributeList?new n({},[new b(y.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,i.attributeList)]):new n({}):E(i,r.Records)?new n({}):n.create(e)}};var Cb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[]:[new b(y.INVALID_REF_CONTEXT,`A Ref must appear top-level`,this.declarationNode)]}validateName(e){return e?e instanceof hd?[new b(y.INVALID_NAME,`Wildcard (*) is not allowed as a Ref name`,e)]:Gl(e)?[]:[new b(y.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,e)]:[]}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new b(y.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return this.validateFields([e]);let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new b(y.EMPTY_REF,`A Ref must have at least one field`,this.declarationNode)];let t=[];return e.length>1&&t.push(...e.slice(1).map(e=>new b(y.REF_REDEFINED,`A Ref can only contain one binary relationship`,e))),e.forEach(e=>{if(e.callee&&!du(e.callee)&&t.push(new b(y.INVALID_REF_FIELD,`A Ref field must be a binary relationship`,e.callee)),e.callee&&du(e.callee)){let n=Su(e.callee.leftExpression)??{variables:[],tupleElements:[]},r=n.variables.length+Math.min(n.tupleElements.length,1),i=Su(e.callee.rightExpression)??{variables:[],tupleElements:[]},a=i.variables.length+Math.min(i.tupleElements.length,1);r<2&&t.push(new b(y.INVALID_REF_FIELD,`Invalid column reference`,e.callee.leftExpression||e.callee)),a<2&&t.push(new b(y.INVALID_REF_FIELD,`Invalid column reference`,e.callee.rightExpression||e.callee))}e.callee&&!fu(e.callee)&&t.push(new b(y.UNEQUAL_FIELDS_BINARY_REF,`Unequal fields in ref endpoints`,e.callee));let n=[...e.args];if(h(n)instanceof B){let e=this.validateFieldSettings(h(n));t.push(...e),n.pop()}else n[0]instanceof B&&(t.push(...this.validateFieldSettings(n[0])),n.shift());n.length>0&&t.push(...n.map(e=>new b(y.INVALID_REF_FIELD,`A Ref field should only have a single binary relationship`,e)))}),t}validateFieldSettings(e){return Tb(e).getErrors()}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};function wb(e){if(!(C(e)&&e.expression.variable.kind!==_.QUOTED_STRING)&&!(e instanceof sd))return!1;let t;if(t=e instanceof sd?_u(e)||``:e.expression.variable.value,t)switch(t.toLowerCase()){case`cascade`:case`no action`:case`set null`:case`set default`:case`restrict`:return!0;default:return!1}return!1}function Tb(e){let t=x(e),r=t.getErrors(),a=t.getValue(),o={};for(let[e,t]of Object.entries(a))switch(e){case i.Delete:case i.Update:t.length>1&&t.forEach(t=>r.push(new b(y.DUPLICATE_REF_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{wb(t.value)||r.push(new b(y.INVALID_REF_SETTING_VALUE,`'${e}' can only have values "cascade", "no action", "set null", "set default" or "restrict"`,t))}),o[e]=t;break;case i.Color:t.length>1&&r.push(...t.map(e=>new b(y.DUPLICATE_REF_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{Yl(e.value)||r.push(new b(y.INVALID_REF_SETTING_VALUE,`'color' must be a color literal`,e))}),o[e]=t;break;case i.Inactive:t.length>1&&r.push(...t.map(e=>new b(y.DUPLICATE_REF_SETTING,`'inactive' can only appear once`,e))),t.forEach(e=>{e.value&&r.push(new b(y.INVALID_REF_SETTING_VALUE,`'inactive' cannot have a value`,e))}),o[e]=t;break;default:t.forEach(t=>r.push(new b(y.UNKNOWN_REF_SETTING,`Unknown ref setting '${e}'`,t)))}return new n(o,r)}const Eb={validateNode(t,i){return T(i,r.Ref)?n.create(void 0,new Cb(t,i).validate()):n.create(e)},nodeFullname(t,i){return T(i,r.Ref)?i.name?Gl(i.name)?new n(D(i.name)):new n(void 0,[new b(y.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):E(i,r.Ref)?new n(void 0):n.create(e)},nodeAlias(t,i){return T(i,r.Ref)?i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,i.alias)]):new n(void 0):E(i,r.Ref)?new n(void 0):n.create(e)},nodeSettings(t,i){if(T(i,r.Ref))return i.attributeList?new n({},[new b(y.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,i.attributeList)]):new n({});if(E(i,r.Ref)){let e=[...i.args],t;return h(e)instanceof B?t=h(e):e[0]instanceof B&&(t=e[0]),t?Tb(t):new n({})}return n.create(e)}};var Db=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new b(y.INVALID_TABLE_CONTEXT,`Table must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof yd?[new b(y.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,e)]:e instanceof hd?[new b(y.INVALID_NAME,`Wildcard (*) is not allowed as a Table name`,e)]:Ul(e)?[]:[new b(y.INVALID_NAME,`A Table name must be of the form <table> or <schema>.<table>`,e)]:[new b(y.NAME_NOT_FOUND,`A Table must have a name`,this.declarationNode)]}validateAlias(e){return e?Wl(e)?[]:[new b(y.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,e)]:[]}validateSettingList(e){let t=x(e),n=t.getErrors();return Tc(t.getValue(),(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&n.push(...e.map(e=>new b(y.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{Yl(e.value)||n.push(new b(y.INVALID_TABLE_SETTING_VALUE,`'headercolor' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&n.push(...e.map(e=>new b(y.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{S(e.value)||n.push(new b(y.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new b(y.UNKNOWN_TABLE_SETTING,`Unknown '${t}' setting`,e)))}}),n}validateBody(e){if(!e)return[];if(e instanceof R)return[new b(y.UNEXPECTED_SIMPLE_BODY,`A Table's body must be a block`,e)];let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=e=>{let t=[];if(!e.callee)return[];e.args.length===0&&t.push(new b(y.INVALID_COLUMN,`A column must have a type`,e.callee)),C(e.callee)||t.push(new b(y.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!eu(e.args[0])&&t.push(new b(y.INVALID_COLUMN_TYPE,`Invalid column type`,e.args[0]));let n=e.args.slice(1);return t.push(...this.validateFieldSetting(n)),t},n=e=>{let t=[];return e.callee?(ql(e.callee)||t.push(new b(y.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection should be of the form ~<table-partial>`,e.callee)),e.args.length&&t.push(...e.args.map(e=>new b(y.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection does not have any trailing attributes`,e))),t):[]};return e.flatMap(e=>e.callee instanceof L&&e.callee.op?.value===`~`?n(e):t(e))}validateFieldSetting(e){if(!e.slice(0,-1).every(nu)||!e.slice(-1).every(e=>nu(e)||e instanceof B))return e.map(e=>new b(y.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e));if(e.length===0)return[];let t;h(e)instanceof B&&(t=e.pop());let n=x(t),r=n.getErrors(),a=n.getValue();e.forEach(e=>{let t=(k(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){r.push(new b(y.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}a[t]===void 0?a[t]=[e]:a[t].push(e)});let o=a[i.PK]||[],s=a[i.PrimaryKey]||[];return o.length>=1&&s.length>=1&&r.push(...[...o,...s].map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Tc(a,(e,t)=>{switch(t){case i.Note:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{S(e.value)||r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'note' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Ql(e.value)||r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'ref' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'primary key' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'pk' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'not null' can only appear once`,e)));let t=a[i.Null]||[];e.length>=1&&t.length>=1&&r.push(...[...e,...t].map(e=>new b(y.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'not null' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'null' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'unique' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'increment' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{Xl(e.value)||r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'default' must be an enum value, a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof ud||r.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>r.push(new b(y.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),r}validateSubElements(e){let t=e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[]),n=e.filter(e=>e.isKind(r.Note));return n.length>1&&t.push(...n.map(e=>new b(y.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function Ob(e){let t=x(e),r=t.getErrors(),a=t.getValue();return Tc(a,(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{Yl(e.value)||r.push(new b(y.INVALID_TABLE_SETTING_VALUE,`'headercolor' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{S(e.value)||r.push(new b(y.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:r.push(...e.map(e=>new b(y.UNKNOWN_TABLE_SETTING,`Unknown '${t}' setting`,e)))}}),new n(a,r)}function kb(e){if(!e.slice(0,-1).every(nu)||!e.slice(-1).every(e=>nu(e)||e instanceof B))return new n({},e.map(e=>new b(y.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e)));if(e.length===0)return new n({});let t;h(e)instanceof B&&(t=e.pop());let r=x(t),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(k(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new b(y.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}o[t]===void 0?o[t]=[e]:o[t].push(e)});let s=o[i.PK]||[],c=o[i.PrimaryKey]||[];return s.length>=1&&c.length>=1&&a.push(...[...s,...c].map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Tc(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{S(e.value)||a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'note' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Ql(e.value)||a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'ref' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'primary key' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'pk' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'not null' can only appear once`,e)));let t=o[i.Null]||[];e.length>=1&&t.length>=1&&a.push(...[...e,...t].map(e=>new b(y.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'not null' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'null' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'unique' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'increment' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{Xl(e.value)||a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'default' must be an enum value, a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof ud||a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>a.push(new b(y.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),new n(o,a)}const Ab={validateNode(t,i){return T(i,r.Table)?n.create(void 0,new Db(t,i).validate()):n.create(e)},nodeFullname(t,i){if(T(i,r.Table)){if(!i.name)return new n(void 0,[new b(y.NAME_NOT_FOUND,`A Table must have a name`,i)]);if(i.name instanceof yd)return new n(void 0,[new b(y.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,i.name)]);let e=D(i.name);return e?.length===1&&e.unshift(v),new n(e)}if(E(i,r.Table)){if(ql(i.callee)){let e=k(i.callee.expression);return new n(e?[e]:void 0)}let e=k(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return T(i,r.Table)?i.alias?Wl(i.alias)?new n(k(i.alias)):new n(void 0,[new b(y.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,i.alias)]):new n(void 0):E(i,r.Table)?new n(void 0):n.create(e)},nodeSettings(t,i){return T(i,r.Table)?i.attributeList?Ob(i.attributeList):new n({}):E(i,r.Table)?kb(i.args.slice(1)):n.create(e)}};var jb=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new b(y.INVALID_TABLEGROUP_CONTEXT,`TableGroup must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof hd?[new b(y.INVALID_NAME,`Wildcard (*) is not allowed as a TableGroup name`,e)]:Gl(e)?[]:[new b(y.INVALID_NAME,`A TableGroup name must be a single identifier`,e)]:[new b(y.NAME_NOT_FOUND,`A TableGroup must have a name`,this.declarationNode)]}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=x(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`color`:t.length>1&&n.push(...t.map(e=>new b(y.DUPLICATE_TABLE_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{Yl(e.value)||n.push(new b(y.INVALID_TABLE_SETTING_VALUE,`'color' must be a color literal`,e.value||e.name))});break;case`note`:t.length>1&&n.push(...t.map(e=>new b(y.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),t.filter(e=>!S(e.value)).forEach(e=>{n.push(new b(y.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:n.push(...t.map(t=>new b(y.UNKNOWN_TABLE_SETTING,`Unknown '${e}' setting`,t)));break}return n}validateBody(e){if(!e)return[];if(e instanceof R)return[new b(y.UNEXPECTED_SIMPLE_BODY,`A TableGroup's body must be a block`,e)];let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{let t=[];return e.callee&&D(e.callee)===void 0&&t.push(new b(y.INVALID_TABLEGROUP_FIELD,`A TableGroup field must be of the form <table> or <schema>.<table>`,e.callee)),e.args.length>0&&t.push(...e.args.map(e=>new b(y.INVALID_TABLEGROUP_FIELD,`A TableGroup field should only have a single Table name`,e))),t})}validateSubElements(e){let t=e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[]),n=e.filter(e=>e.isKind(r.Note));return n.length>1&&t.push(...n.map(e=>new b(y.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function Mb(e){let t=x(e),r=t.getErrors(),i=t.getValue(),a={};for(let[e,t]of Object.entries(i))switch(e){case`color`:t.length>1&&r.push(...t.map(e=>new b(y.DUPLICATE_TABLE_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{Yl(e.value)||r.push(new b(y.INVALID_TABLE_SETTING_VALUE,`'color' must be a color literal`,e.value||e.name))}),a[e]=t;break;case`note`:t.length>1&&r.push(...t.map(e=>new b(y.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),t.filter(e=>!S(e.value)).forEach(e=>{r.push(new b(y.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))}),a[e]=t;break;default:r.push(...t.map(t=>new b(y.UNKNOWN_TABLE_SETTING,`Unknown '${e}' setting`,t)));break}return new n(a,r)}const Nb={validateNode(t,i){return T(i,r.TableGroup)?n.create(void 0,new jb(t,i).validate()):n.create(e)},nodeFullname(t,i){if(T(i,r.TableGroup))return i.name?Gl(i.name)?new n(D(i.name)):new n(void 0,[new b(y.INVALID_NAME,`A TableGroup name must be a single identifier`,i.name)]):new n(void 0,[new b(y.NAME_NOT_FOUND,`A TableGroup must have a name`,i)]);if(E(i,r.TableGroup)){let e=D(i.callee);return e?.length===1&&e.unshift(v),new n(e)}return n.create(e)},nodeAlias(t,i){return T(i,r.TableGroup)?i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,i.alias)]):new n(void 0):E(i,r.TableGroup)?new n(void 0):n.create(e)},nodeSettings(t,i){return T(i,r.TableGroup)?Mb(i.attributeList):E(i,r.TableGroup)?new n({}):n.create(e)}};var Pb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof F?[new b(y.INVALID_TABLE_PARTIAL_CONTEXT,`TablePartial must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof hd?[new b(y.INVALID_NAME,`Wildcard (*) is not allowed as a TablePartial name`,e)]:Gl(e)?[]:[new b(y.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,e)]:[new b(y.NAME_NOT_FOUND,`A TablePartial must have a name`,this.declarationNode)]}validateAlias(e){return e?[new b(y.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=x(e),n=t.getErrors();return Tc(t.getValue(),(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&n.push(...e.map(e=>new b(y.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Yl(e.value)||n.push(new b(y.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&n.push(...e.map(e=>new b(y.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{S(e.value)||n.push(new b(y.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new b(y.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),n}validateBody(e){if(!e)return[];if(e instanceof R)return[new b(y.UNEXPECTED_SIMPLE_BODY,`A TablePartial's body must be a block`,e)];let[t,n]=g(e.body,e=>e instanceof R);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[];e.args.length===0&&t.push(new b(y.INVALID_COLUMN,`A column must have a type`,e.callee)),C(e.callee)||t.push(new b(y.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!eu(e.args[0])&&t.push(new b(y.INVALID_COLUMN_TYPE,`Invalid column type`,e.args[0]));let n=e.args.slice(1);return t.push(...this.validateFieldSetting(n)),t})}validateFieldSetting(e){let t=h(e);if(!e.slice(0,-1).every(nu)||!(nu(t)||t instanceof B))return e.map(e=>new b(y.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e));if(e.length===0)return[];let n;h(e)instanceof B&&(n=e.pop());let r=x(n),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(k(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new b(y.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}o[t]===void 0?o[t]=[e]:o[t].push(e)});let s=o[i.PK]||[],c=o[i.PrimaryKey]||[];return s.length>=1&&c.length>=1&&a.push(...[...s,...c].map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Tc(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{S(e.value)||a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Ql(e.value)||a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e)));let n=o[i.Null]||[];e.length>=1&&n.length>=1&&a.push(...[...e,...n].map(e=>new b(y.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&a.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Xl(e.value)||a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof ud||a.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>a.push(new b(y.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),a}validateSubElements(e){let t=e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[]),n=e.filter(e=>e.isKind(r.Note));return n.length>1&&t.push(...n.map(e=>new b(y.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function Fb(e){let t=x(e),r=t.getErrors(),a=t.getValue();return Tc(a,(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Yl(e.value)||r.push(new b(y.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&r.push(...e.map(e=>new b(y.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{S(e.value)||r.push(new b(y.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:r.push(...e.map(e=>new b(y.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),new n(a,r)}function Ib(e){let t=h(e);if(e.length>0&&(!e.slice(0,-1).every(nu)||!(nu(t)||t instanceof B)))return new n({},e.map(e=>new b(y.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e)));if(e.length===0)return new n({});let r;h(e)instanceof B&&(r=e.pop());let a=x(r),o=a.getErrors(),s=a.getValue();e.forEach(e=>{let t=(k(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){o.push(new b(y.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}s[t]===void 0?s[t]=[e]:s[t].push(e)});let c=s[i.PK]||[],l=s[i.PrimaryKey]||[];return c.length>=1&&l.length>=1&&o.push(...[...c,...l].map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Tc(s,(e,t)=>{switch(t){case i.Note:e.length>1&&o.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{S(e.value)||o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Ql(e.value)||o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&o.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&o.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&o.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e)));let n=s[i.Null]||[];e.length>=1&&n.length>=1&&o.push(...[...e,...n].map(e=>new b(y.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&o.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&o.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&o.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof I&&e.value!==void 0&&o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&o.push(...e.map(e=>new b(y.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Xl(e.value)||o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof ud||o.push(new b(y.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>o.push(new b(y.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),new n(s,o)}const Lb={validateNode(t,i){return T(i,r.TablePartial)?n.create(void 0,new Pb(t,i).validate()):n.create(e)},nodeFullname(t,i){if(T(i,r.TablePartial))return i.name?Gl(i.name)?new n(D(i.name)):new n(void 0,[new b(y.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,i.name)]):new n(void 0,[new b(y.NAME_NOT_FOUND,`A TablePartial must have a name`,i)]);if(E(i,r.TablePartial)){let e=k(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return T(i,r.TablePartial)?i.alias?new n(void 0,[new b(y.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,i.alias)]):new n(k(i.alias)):E(i,r.TablePartial)?new n(void 0):n.create(e)},nodeSettings(t,i){return T(i,r.TablePartial)?Fb(i.attributeList):E(i,r.TablePartial)?Ib(i.args.slice(1)):n.create(e)}};var Rb=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateBody()]}validateContext(){return this.declarationNode.parent instanceof P?[]:[new b(y.INVALID_USE_CONTEXT,`'use' must appear at the top level`,this.declarationNode)]}validateBody(){let e=[];if(this.declarationNode.importPath&&!jl.isRelative(this.declarationNode.importPath.value)&&e.push(new b(y.INVALID_USE_SPECIFIER_NAME,`Import path must be a relative path (starting with './' or '../')`,this.declarationNode.importPath)),this.declarationNode.specifiers instanceof hd)return[];for(let t of this.declarationNode.specifiers?.specifiers||[])e.push(...this.validateSpecifier(t));return e}validateSpecifier(e){let t=[];return e.importKind===void 0?t.push(new b(y.INVALID_USE_SPECIFIER_KIND,`A use specifier must have a type (e.g. table, enum)`,e)):e.isKind(...Object.values(Pu))||t.push(new b(y.INVALID_USE_SPECIFIER_KIND,`'${e.importKind.value}' is not a valid specifier type`,e.importKind)),[...t,...this.compiler.nodeFullname(e).getErrors(),...this.compiler.nodeAlias(e).getErrors()]}};const zb={validateNode(t,r){return r instanceof id?n.create(void 0,new Rb(t,r).validate()):n.create(e)},nodeFullname(t,r){if(!au(r))return n.create(e);let i=D(r.name);return!i||i.length===0?n.create(void 0,[new b(y.INVALID_NAME,`Use specifiers must have a valid name (simple name or schema-qualified name)`,r)]):r.isKind(Pu.TableGroup)&&i.length>1?n.create(i,[new b(y.INVALID_USE_SPECIFIER_NAME,`A TableGroup name must be a simple name`,r)]):r.isKind(Pu.TablePartial)&&i.length>1?n.create(i,[new b(y.INVALID_USE_SPECIFIER_NAME,`A TablePartial name must be a simple name`,r)]):r.isKind(Pu.Note)&&i.length>1?n.create(i,[new b(y.INVALID_USE_SPECIFIER_NAME,`A Sticky note name must be a simple name`,r)]):(i.length===1&&!r.isKind(Pu.Schema)&&i.unshift(v),new n(i))},nodeAlias(t,r){return au(r)?r.alias?Wl(r.alias)?new n(k(r.alias)):new n(void 0,[new b(y.INVALID_ALIAS,`Use aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,r.alias)]):new n(void 0):n.create(e)},nodeSettings(t,r){return r instanceof id?n.create({}):n.create(e)}},Bb=[Ab,fb,Sb,mb,ab,Eb,bb,Nb,Lb,gb,ub,vb,zb,cb];function Vb(t,...r){for(let n of Bb){let i=n[t];if(i){let t=i(...r);if(!t.hasValue(e))return t}}return n.create(e)}function Hb(r){let i=Vb(`validateNode`,this,r);return i.hasValue(e)?n.create(t):i}function Ub(r){let i=Vb(`nodeSettings`,this,r);return i.hasValue(e)?n.create(t):i}function Wb(r){let i=Vb(`nodeFullname`,this,r);return i.hasValue(e)?n.create(t):i}function Gb(r){let i=Vb(`nodeAlias`,this,r);return i.hasValue(e)?n.create(t):i}var Kb=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},qb=typeof document<`u`&&document.location&&document.location.hash.indexOf(`pseudo=true`)>=0;function Jb(e,t){let n;return n=t.length===0?e:e.replace(/\{(\d+)\}/g,(e,n)=>{let r=t[n[0]],i=e;return typeof r==`string`?i=r:(typeof r==`number`||typeof r==`boolean`||r==null)&&(i=String(r)),i}),qb&&(n=`[`+n.replace(/[aouei]/g,`$&$&`)+`]`),n}function Yb(e,t,...n){return Jb(t,n)}function Xb(e){}var Zb;const Qb=`en`;var $b=!1,ex=!1,tx=!1,nx=!1,rx=!1,ix=!1,ax=!1,ox=void 0,sx=`en`,cx=void 0;const lx=typeof self==`object`?self:typeof global==`object`?global:{};var ux=void 0;lx.vscode!==void 0&&lx.vscode.process!==void 0?ux=lx.vscode.process:typeof process<`u`&&(ux=process);var dx=typeof(Zb=ux?.versions)?.electron==`string`&&ux?.type===`renderer`;if(typeof navigator==`object`&&!dx)cx=navigator.userAgent,$b=cx.indexOf(`Windows`)>=0,ex=cx.indexOf(`Macintosh`)>=0,(cx.indexOf(`Macintosh`)>=0||cx.indexOf(`iPad`)>=0||cx.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,tx=cx.indexOf(`Linux`)>=0,cx?.indexOf(`Mobi`),rx=!0,ox=(Yb({key:`ensureLoaderPluginIsLoaded`,comment:[`{Locked}`]},`_`),`en`),navigator.language;else if(typeof ux==`object`){$b=ux.platform===`win32`,ex=ux.platform===`darwin`,tx=ux.platform===`linux`,tx&&ux.env.SNAP&&ux.env.SNAP_REVISION,ux.env.CI||ux.env.BUILD_ARTIFACTSTAGINGDIRECTORY;let e=ux.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);t.availableLanguages[`*`],t.locale,t.osLocale,t._translationsConfigFile}catch{}}else console.error(`Unable to resolve platform.`);const fx=$b,px=ex,mx=rx&&typeof lx.importScripts==`function`,hx=cx,gx=typeof lx.postMessage==`function`&&!lx.importScripts,_x=(()=>{if(gx){let e=[];lx.addEventListener(`message`,t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let n=0,r=e.length;n<r;n++){let r=e[n];if(r.id===t.data.vscodeScheduleAsyncWork){e.splice(n,1),r.callback();return}}});let t=0;return n=>{let r=++t;e.push({id:r,callback:n}),lx.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})(),vx=!!(hx&&hx.indexOf(`Chrome`)>=0),yx=!!(hx&&hx.indexOf(`Firefox`)>=0),bx=!!(!vx&&hx&&hx.indexOf(`Safari`)>=0),xx=!!(hx&&hx.indexOf(`Edg/`)>=0),Sx=!!(hx&&hx.indexOf(`Android`)>=0);var Cx;if(lx.vscode!==void 0&&lx.vscode.process!==void 0){let e=lx.vscode.process;Cx={get platform(){return e.platform},get arch(){return e.arch},get env(){return e.env},cwd(){return e.cwd()}}}else Cx=typeof process<`u`?{get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:{get platform(){return fx?`win32`:px?`darwin`:`linux`},get arch(){},get env(){return{}},cwd(){return`/`}};const wx=Cx.cwd,Tx=Cx.env,Ex=Cx.platform;var Dx=65,Ox=97,kx=90,Ax=122,jx=46,Mx=47,Nx=92,Px=58,Fx=63,Ix=class extends Error{constructor(e,t,n){let r;typeof t==`string`&&t.indexOf(`not `)===0?(r=`must not be`,t=t.replace(/^not /,``)):r=`must be`;let i=`The "${e}" ${e.indexOf(`.`)===-1?`argument`:`property`} ${r} of type ${t}`;i+=`. Received type ${typeof n}`,super(i),this.code=`ERR_INVALID_ARG_TYPE`}};function Lx(e,t){if(typeof e!=`object`||!e)throw new Ix(t,`Object`,e)}function Rx(e,t){if(typeof e!=`string`)throw new Ix(t,`string`,e)}var zx=Ex===`win32`;function q(e){return e===Mx||e===Nx}function Bx(e){return e===Mx}function Vx(e){return e>=Dx&&e<=kx||e>=Ox&&e<=Ax}function Hx(e,t,n,r){let i=``,a=0,o=-1,s=0,c=0;for(let l=0;l<=e.length;++l){if(l<e.length)c=e.charCodeAt(l);else if(r(c))break;else c=Mx;if(r(c)){if(!(o===l-1||s===1))if(s===2){if(i.length<2||a!==2||i.charCodeAt(i.length-1)!==jx||i.charCodeAt(i.length-2)!==jx){if(i.length>2){let e=i.lastIndexOf(n);e===-1?(i=``,a=0):(i=i.slice(0,e),a=i.length-1-i.lastIndexOf(n)),o=l,s=0;continue}else if(i.length!==0){i=``,a=0,o=l,s=0;continue}}t&&(i+=i.length>0?`${n}..`:`..`,a=2)}else i.length>0?i+=`${n}${e.slice(o+1,l)}`:i=e.slice(o+1,l),a=l-o-1;o=l,s=0}else c===jx&&s!==-1?++s:s=-1}return i}function Ux(e,t){Lx(t,`pathObject`);let n=t.dir||t.root,r=t.base||`${t.name||``}${t.ext||``}`;return n?n===t.root?`${n}${r}`:`${n}${e}${r}`:r}const Wx={resolve(...e){let t=``,n=``,r=!1;for(let i=e.length-1;i>=-1;i--){let a;if(i>=0){if(a=e[i],Rx(a,`path`),a.length===0)continue}else t.length===0?a=wx():(a=Tx[`=${t}`]||wx(),(a===void 0||a.slice(0,2).toLowerCase()!==t.toLowerCase()&&a.charCodeAt(2)===Nx)&&(a=`${t}\\`));let o=a.length,s=0,c=``,l=!1,u=a.charCodeAt(0);if(o===1)q(u)&&(s=1,l=!0);else if(q(u))if(l=!0,q(a.charCodeAt(1))){let e=2,t=e;for(;e<o&&!q(a.charCodeAt(e));)e++;if(e<o&&e!==t){let n=a.slice(t,e);for(t=e;e<o&&q(a.charCodeAt(e));)e++;if(e<o&&e!==t){for(t=e;e<o&&!q(a.charCodeAt(e));)e++;(e===o||e!==t)&&(c=`\\\\${n}\\${a.slice(t,e)}`,s=e)}}}else s=1;else Vx(u)&&a.charCodeAt(1)===Px&&(c=a.slice(0,2),s=2,o>2&&q(a.charCodeAt(2))&&(l=!0,s=3));if(c.length>0)if(t.length>0){if(c.toLowerCase()!==t.toLowerCase())continue}else t=c;if(r){if(t.length>0)break}else if(n=`${a.slice(s)}\\${n}`,r=l,l&&t.length>0)break}return n=Hx(n,!r,`\\`,q),r?`${t}\\${n}`:`${t}${n}`||`.`},normalize(e){Rx(e,`path`);let t=e.length;if(t===0)return`.`;let n=0,r,i=!1,a=e.charCodeAt(0);if(t===1)return Bx(a)?`\\`:e;if(q(a))if(i=!0,q(e.charCodeAt(1))){let i=2,a=i;for(;i<t&&!q(e.charCodeAt(i));)i++;if(i<t&&i!==a){let o=e.slice(a,i);for(a=i;i<t&&q(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&!q(e.charCodeAt(i));)i++;if(i===t)return`\\\\${o}\\${e.slice(a)}\\`;i!==a&&(r=`\\\\${o}\\${e.slice(a,i)}`,n=i)}}}else n=1;else Vx(a)&&e.charCodeAt(1)===Px&&(r=e.slice(0,2),n=2,t>2&&q(e.charCodeAt(2))&&(i=!0,n=3));let o=n<t?Hx(e.slice(n),!i,`\\`,q):``;return o.length===0&&!i&&(o=`.`),o.length>0&&q(e.charCodeAt(t-1))&&(o+=`\\`),r===void 0?i?`\\${o}`:o:i?`${r}\\${o}`:`${r}${o}`},isAbsolute(e){Rx(e,`path`);let t=e.length;if(t===0)return!1;let n=e.charCodeAt(0);return q(n)||t>2&&Vx(n)&&e.charCodeAt(1)===Px&&q(e.charCodeAt(2))},join(...e){if(e.length===0)return`.`;let t,n;for(let r=0;r<e.length;++r){let i=e[r];Rx(i,`path`),i.length>0&&(t===void 0?t=n=i:t+=`\\${i}`)}if(t===void 0)return`.`;let r=!0,i=0;if(typeof n==`string`&&q(n.charCodeAt(0))){++i;let e=n.length;e>1&&q(n.charCodeAt(1))&&(++i,e>2&&(q(n.charCodeAt(2))?++i:r=!1))}if(r){for(;i<t.length&&q(t.charCodeAt(i));)i++;i>=2&&(t=`\\${t.slice(i)}`)}return Wx.normalize(t)},relative(e,t){if(Rx(e,`from`),Rx(t,`to`),e===t)return``;let n=Wx.resolve(e),r=Wx.resolve(t);if(n===r||(e=n.toLowerCase(),t=r.toLowerCase(),e===t))return``;let i=0;for(;i<e.length&&e.charCodeAt(i)===Nx;)i++;let a=e.length;for(;a-1>i&&e.charCodeAt(a-1)===Nx;)a--;let o=a-i,s=0;for(;s<t.length&&t.charCodeAt(s)===Nx;)s++;let c=t.length;for(;c-1>s&&t.charCodeAt(c-1)===Nx;)c--;let l=c-s,u=o<l?o:l,d=-1,f=0;for(;f<u;f++){let n=e.charCodeAt(i+f);if(n!==t.charCodeAt(s+f))break;n===Nx&&(d=f)}if(f!==u){if(d===-1)return r}else{if(l>u){if(t.charCodeAt(s+f)===Nx)return r.slice(s+f+1);if(f===2)return r.slice(s+f)}o>u&&(e.charCodeAt(i+f)===Nx?d=f:f===2&&(d=3)),d===-1&&(d=0)}let p=``;for(f=i+d+1;f<=a;++f)(f===a||e.charCodeAt(f)===Nx)&&(p+=p.length===0?`..`:`\\..`);return s+=d,p.length>0?`${p}${r.slice(s,c)}`:(r.charCodeAt(s)===Nx&&++s,r.slice(s,c))},toNamespacedPath(e){if(typeof e!=`string`||e.length===0)return e;let t=Wx.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===Nx){if(t.charCodeAt(1)===Nx){let e=t.charCodeAt(2);if(e!==Fx&&e!==jx)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Vx(t.charCodeAt(0))&&t.charCodeAt(1)===Px&&t.charCodeAt(2)===Nx)return`\\\\?\\${t}`;return e},dirname(e){Rx(e,`path`);let t=e.length;if(t===0)return`.`;let n=-1,r=0,i=e.charCodeAt(0);if(t===1)return q(i)?e:`.`;if(q(i)){if(n=r=1,q(e.charCodeAt(1))){let i=2,a=i;for(;i<t&&!q(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&q(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&!q(e.charCodeAt(i));)i++;if(i===t)return e;i!==a&&(n=r=i+1)}}}}else Vx(i)&&e.charCodeAt(1)===Px&&(n=t>2&&q(e.charCodeAt(2))?3:2,r=n);let a=-1,o=!0;for(let n=t-1;n>=r;--n)if(q(e.charCodeAt(n))){if(!o){a=n;break}}else o=!1;if(a===-1){if(n===-1)return`.`;a=n}return e.slice(0,a)},basename(e,t){t!==void 0&&Rx(t,`ext`),Rx(e,`path`);let n=0,r=-1,i=!0,a;if(e.length>=2&&Vx(e.charCodeAt(0))&&e.charCodeAt(1)===Px&&(n=2),t!==void 0&&t.length>0&&t.length<=e.length){if(t===e)return``;let o=t.length-1,s=-1;for(a=e.length-1;a>=n;--a){let c=e.charCodeAt(a);if(q(c)){if(!i){n=a+1;break}}else s===-1&&(i=!1,s=a+1),o>=0&&(c===t.charCodeAt(o)?--o===-1&&(r=a):(o=-1,r=s))}return n===r?r=s:r===-1&&(r=e.length),e.slice(n,r)}for(a=e.length-1;a>=n;--a)if(q(e.charCodeAt(a))){if(!i){n=a+1;break}}else r===-1&&(i=!1,r=a+1);return r===-1?``:e.slice(n,r)},extname(e){Rx(e,`path`);let t=0,n=-1,r=0,i=-1,a=!0,o=0;e.length>=2&&e.charCodeAt(1)===Px&&Vx(e.charCodeAt(0))&&(t=r=2);for(let s=e.length-1;s>=t;--s){let t=e.charCodeAt(s);if(q(t)){if(!a){r=s+1;break}continue}i===-1&&(a=!1,i=s+1),t===jx?n===-1?n=s:o!==1&&(o=1):n!==-1&&(o=-1)}return n===-1||i===-1||o===0||o===1&&n===i-1&&n===r+1?``:e.slice(n,i)},format:Ux.bind(null,`\\`),parse(e){Rx(e,`path`);let t={root:``,dir:``,base:``,ext:``,name:``};if(e.length===0)return t;let n=e.length,r=0,i=e.charCodeAt(0);if(n===1)return q(i)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(q(i)){if(r=1,q(e.charCodeAt(1))){let t=2,i=t;for(;t<n&&!q(e.charCodeAt(t));)t++;if(t<n&&t!==i){for(i=t;t<n&&q(e.charCodeAt(t));)t++;if(t<n&&t!==i){for(i=t;t<n&&!q(e.charCodeAt(t));)t++;t===n?r=t:t!==i&&(r=t+1)}}}}else if(Vx(i)&&e.charCodeAt(1)===Px){if(n<=2)return t.root=t.dir=e,t;if(r=2,q(e.charCodeAt(2))){if(n===3)return t.root=t.dir=e,t;r=3}}r>0&&(t.root=e.slice(0,r));let a=-1,o=r,s=-1,c=!0,l=e.length-1,u=0;for(;l>=r;--l){if(i=e.charCodeAt(l),q(i)){if(!c){o=l+1;break}continue}s===-1&&(c=!1,s=l+1),i===jx?a===-1?a=l:u!==1&&(u=1):a!==-1&&(u=-1)}return s!==-1&&(a===-1||u===0||u===1&&a===s-1&&a===o+1?t.base=t.name=e.slice(o,s):(t.name=e.slice(o,a),t.base=e.slice(o,s),t.ext=e.slice(a,s))),o>0&&o!==r?t.dir=e.slice(0,o-1):t.dir=t.root,t},sep:`\\`,delimiter:`;`,win32:null,posix:null};var Gx=(()=>{if(zx){let e=/\\/g;return()=>{let t=wx().replace(e,`/`);return t.slice(t.indexOf(`/`))}}return()=>wx()})();const Kx={resolve(...e){let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:Gx();Rx(i,`path`),i.length!==0&&(t=`${i}/${t}`,n=i.charCodeAt(0)===Mx)}return t=Hx(t,!n,`/`,Bx),n?`/${t}`:t.length>0?t:`.`},normalize(e){if(Rx(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===Mx,n=e.charCodeAt(e.length-1)===Mx;return e=Hx(e,!t,`/`,Bx),e.length===0?t?`/`:n?`./`:`.`:(n&&(e+=`/`),t?`/${e}`:e)},isAbsolute(e){return Rx(e,`path`),e.length>0&&e.charCodeAt(0)===Mx},join(...e){if(e.length===0)return`.`;let t;for(let n=0;n<e.length;++n){let r=e[n];Rx(r,`path`),r.length>0&&(t===void 0?t=r:t+=`/${r}`)}return t===void 0?`.`:Kx.normalize(t)},relative(e,t){if(Rx(e,`from`),Rx(t,`to`),e===t||(e=Kx.resolve(e),t=Kx.resolve(t),e===t))return``;let n=e.length,r=n-1,i=t.length-1,a=r<i?r:i,o=-1,s=0;for(;s<a;s++){let n=e.charCodeAt(1+s);if(n!==t.charCodeAt(1+s))break;n===Mx&&(o=s)}if(s===a)if(i>a){if(t.charCodeAt(1+s)===Mx)return t.slice(1+s+1);if(s===0)return t.slice(1+s)}else r>a&&(e.charCodeAt(1+s)===Mx?o=s:s===0&&(o=0));let c=``;for(s=1+o+1;s<=n;++s)(s===n||e.charCodeAt(s)===Mx)&&(c+=c.length===0?`..`:`/..`);return`${c}${t.slice(1+o)}`},toNamespacedPath(e){return e},dirname(e){if(Rx(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===Mx,n=-1,r=!0;for(let t=e.length-1;t>=1;--t)if(e.charCodeAt(t)===Mx){if(!r){n=t;break}}else r=!1;return n===-1?t?`/`:`.`:t&&n===1?`//`:e.slice(0,n)},basename(e,t){t!==void 0&&Rx(t,`ext`),Rx(e,`path`);let n=0,r=-1,i=!0,a;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t===e)return``;let o=t.length-1,s=-1;for(a=e.length-1;a>=0;--a){let c=e.charCodeAt(a);if(c===Mx){if(!i){n=a+1;break}}else s===-1&&(i=!1,s=a+1),o>=0&&(c===t.charCodeAt(o)?--o===-1&&(r=a):(o=-1,r=s))}return n===r?r=s:r===-1&&(r=e.length),e.slice(n,r)}for(a=e.length-1;a>=0;--a)if(e.charCodeAt(a)===Mx){if(!i){n=a+1;break}}else r===-1&&(i=!1,r=a+1);return r===-1?``:e.slice(n,r)},extname(e){Rx(e,`path`);let t=-1,n=0,r=-1,i=!0,a=0;for(let o=e.length-1;o>=0;--o){let s=e.charCodeAt(o);if(s===Mx){if(!i){n=o+1;break}continue}r===-1&&(i=!1,r=o+1),s===jx?t===-1?t=o:a!==1&&(a=1):t!==-1&&(a=-1)}return t===-1||r===-1||a===0||a===1&&t===r-1&&t===n+1?``:e.slice(t,r)},format:Ux.bind(null,`/`),parse(e){Rx(e,`path`);let t={root:``,dir:``,base:``,ext:``,name:``};if(e.length===0)return t;let n=e.charCodeAt(0)===Mx,r;n?(t.root=`/`,r=1):r=0;let i=-1,a=0,o=-1,s=!0,c=e.length-1,l=0;for(;c>=r;--c){let t=e.charCodeAt(c);if(t===Mx){if(!s){a=c+1;break}continue}o===-1&&(s=!1,o=c+1),t===jx?i===-1?i=c:l!==1&&(l=1):i!==-1&&(l=-1)}if(o!==-1){let r=a===0&&n?1:a;i===-1||l===0||l===1&&i===o-1&&i===a+1?t.base=t.name=e.slice(r,o):(t.name=e.slice(r,i),t.base=e.slice(r,o),t.ext=e.slice(i,o))}return a>0?t.dir=e.slice(0,a-1):n&&(t.dir=`/`),t},sep:`/`,delimiter:`:`,win32:null,posix:null};Kx.win32=Wx.win32=Wx,Kx.posix=Wx.posix=Kx;const qx=zx?Wx.normalize:Kx.normalize,Jx=zx?Wx.resolve:Kx.resolve,Yx=zx?Wx.relative:Kx.relative,Xx=zx?Wx.dirname:Kx.dirname,Zx=zx?Wx.basename:Kx.basename,Qx=zx?Wx.extname:Kx.extname,$x=zx?Wx.sep:Kx.sep;var eS=/^\w[\w\d+.-]*$/,tS=/^\//,nS=/^\/\//;function rS(e,t){if(!e.scheme&&t)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!eS.test(e.scheme))throw Error(`[UriError]: Scheme contains illegal characters.`);if(e.path){if(e.authority){if(!tS.test(e.path))throw Error(`[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character`)}else if(nS.test(e.path))throw Error(`[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")`)}}function iS(e,t){return!e&&!t?`file`:e}function aS(e,t){switch(e){case`https`:case`http`:case`file`:t?t[0]!==oS&&(t=oS+t):t=oS;break}return t}var J=``,oS=`/`,sS=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,cS=class e{static isUri(t){return t instanceof e?!0:t?typeof t.authority==`string`&&typeof t.fragment==`string`&&typeof t.path==`string`&&typeof t.query==`string`&&typeof t.scheme==`string`&&typeof t.fsPath==`string`&&typeof t.with==`function`&&typeof t.toString==`function`:!1}constructor(e,t,n,r,i,a=!1){typeof e==`object`?(this.scheme=e.scheme||J,this.authority=e.authority||J,this.path=e.path||J,this.query=e.query||J,this.fragment=e.fragment||J):(this.scheme=iS(e,a),this.authority=t||J,this.path=aS(this.scheme,n||J),this.query=r||J,this.fragment=i||J,rS(this,a))}get fsPath(){return mS(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:a}=e;return t===void 0?t=this.scheme:t===null&&(t=J),n===void 0?n=this.authority:n===null&&(n=J),r===void 0?r=this.path:r===null&&(r=J),i===void 0?i=this.query:i===null&&(i=J),a===void 0?a=this.fragment:a===null&&(a=J),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&a===this.fragment?this:new uS(t,n,r,i,a)}static parse(e,t=!1){let n=sS.exec(e);return n?new uS(n[2]||J,vS(n[4]||J),vS(n[5]||J),vS(n[7]||J),vS(n[9]||J),t):new uS(J,J,J,J,J)}static file(e){let t=J;if(fx&&(e=e.replace(/\\/g,oS)),e[0]===oS&&e[1]===oS){let n=e.indexOf(oS,2);n===-1?(t=e.substring(2),e=oS):(t=e.substring(2,n),e=e.substring(n)||oS)}return new uS(`file`,t,e,J,J)}static from(e,t){return new uS(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(t,...n){if(!t.path)throw Error(`[UriError]: cannot call joinPath on URI without path`);let r;return r=fx&&t.scheme===`file`?e.file(Wx.join(mS(t,!0),...n)).path:Kx.join(t.path,...n),t.with({path:r})}toString(e=!1){return hS(this,e)}toJSON(){return this}static revive(t){if(t){if(t instanceof e)return t;{let e=new uS(t);return e._formatted=t.external??null,e._fsPath=t._sep===lS?t.fsPath??null:null,e}}else return t}},lS=fx?1:void 0,uS=class extends cS{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||=mS(this,!1),this._fsPath}toString(e=!1){return e?hS(this,!0):(this._formatted||=hS(this,!1),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=lS),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}},dS={58:`%3A`,47:`%2F`,63:`%3F`,35:`%23`,91:`%5B`,93:`%5D`,64:`%40`,33:`%21`,36:`%24`,38:`%26`,39:`%27`,40:`%28`,41:`%29`,42:`%2A`,43:`%2B`,44:`%2C`,59:`%3B`,61:`%3D`,32:`%20`};function fS(e,t,n){let r,i=-1;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||o===45||o===46||o===95||o===126||t&&o===47||n&&o===91||n&&o===93||n&&o===58)i!==-1&&(r+=encodeURIComponent(e.substring(i,a)),i=-1),r!==void 0&&(r+=e.charAt(a));else{r===void 0&&(r=e.substr(0,a));let t=dS[o];t===void 0?i===-1&&(i=a):(i!==-1&&(r+=encodeURIComponent(e.substring(i,a)),i=-1),r+=t)}}return i!==-1&&(r+=encodeURIComponent(e.substring(i))),r===void 0?e:r}function pS(e){let t;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);r===35||r===63?(t===void 0&&(t=e.substr(0,n)),t+=dS[r]):t!==void 0&&(t+=e[n])}return t===void 0?e:t}function mS(e,t){let n;return n=e.authority&&e.path.length>1&&e.scheme===`file`?`//${e.authority}${e.path}`:e.path.charCodeAt(0)===47&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&e.path.charCodeAt(2)===58?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,fx&&(n=n.replace(/\//g,`\\`)),n}function hS(e,t){let n=t?pS:fS,r=``,{scheme:i,authority:a,path:o,query:s,fragment:c}=e;if(i&&(r+=i,r+=`:`),(a||i===`file`)&&(r+=oS,r+=oS),a){let e=a.indexOf(`@`);if(e!==-1){let t=a.substr(0,e);a=a.substr(e+1),e=t.lastIndexOf(`:`),e===-1?r+=n(t,!1,!1):(r+=n(t.substr(0,e),!1,!1),r+=`:`,r+=n(t.substr(e+1),!1,!0)),r+=`@`}a=a.toLowerCase(),e=a.lastIndexOf(`:`),e===-1?r+=n(a,!1,!0):(r+=n(a.substr(0,e),!1,!0),r+=a.substr(e))}if(o){if(o.length>=3&&o.charCodeAt(0)===47&&o.charCodeAt(2)===58){let e=o.charCodeAt(1);e>=65&&e<=90&&(o=`/${String.fromCharCode(e+32)}:${o.substr(3)}`)}else if(o.length>=2&&o.charCodeAt(1)===58){let e=o.charCodeAt(0);e>=65&&e<=90&&(o=`${String.fromCharCode(e+32)}:${o.substr(2)}`)}r+=n(o,!0,!1)}return s&&(r+=`?`,r+=n(s,!1,!1)),c&&(r+=`#`,r+=t?c:fS(c,!1,!1)),r}function gS(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+gS(e.substr(3)):e}}var _S=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function vS(e){return e.match(_S)?e.replace(_S,e=>gS(e)):e}let Y=function(e){return e[e.Function=1]=`Function`,e[e.Constructor=2]=`Constructor`,e[e.Field=3]=`Field`,e[e.Variable=4]=`Variable`,e[e.Class=5]=`Class`,e[e.Struct=6]=`Struct`,e[e.Interface=7]=`Interface`,e[e.Module=8]=`Module`,e[e.Property=9]=`Property`,e[e.Event=10]=`Event`,e[e.Operator=11]=`Operator`,e[e.Unit=12]=`Unit`,e[e.Value=13]=`Value`,e[e.Constant=14]=`Constant`,e[e.Enum=15]=`Enum`,e[e.EnumMember=16]=`EnumMember`,e[e.Keyword=17]=`Keyword`,e[e.Text=18]=`Text`,e[e.Color=19]=`Color`,e[e.File=20]=`File`,e[e.Reference=21]=`Reference`,e[e.Customcolor=22]=`Customcolor`,e[e.Folder=23]=`Folder`,e[e.TypeParameter=24]=`TypeParameter`,e[e.User=25]=`User`,e[e.Issue=26]=`Issue`,e[e.Snippet=27]=`Snippet`,e}({}),X=function(e){return e[e.None=0]=`None`,e[e.KeepWhitespace=1]=`KeepWhitespace`,e[e.InsertAsSnippet=4]=`InsertAsSnippet`,e}({}),yS=function(e){return e[e.Hint=1]=`Hint`,e[e.Info=2]=`Info`,e[e.Warning=4]=`Warning`,e[e.Error=8]=`Error`,e}({});function bS(e,t){return e.getOffsetAt(t)}function xS(e,t){let{startPos:n,endPos:r}=t;return{startLineNumber:n.line+1,startColumn:n.column+1,endLineNumber:r.line+1,endColumn:r.column+1}}var SS=class{constructor(e){this.compiler=e}provideDefinition(e,n){let{uri:r}=e,i=jl.fromUri(String(e.uri)),a=bS(e,n),o=[...this.compiler.container.stack(i,a)];for(;o.length!==0;){let e=o.pop();if(!e)continue;let n=this.compiler.nodeReferee(e).getFiltered(t);if(!n)continue;let i;if(n.declaration&&[N.PRIMARY_EXPRESSION,N.VARIABLE].includes(e.kind)&&({declaration:i}=n),i){let{startPos:e,endPos:t}=i,n=r;return r&&i.filepath&&(n=cS.parse(i.filepath.toUri({protocol:r.scheme}))),[{range:{startColumn:e.column+1,startLineNumber:e.line+1,endColumn:t.column+1,endLineNumber:t.line+1},uri:n}]}}return[]}},CS=class{constructor(e){this.compiler=e}provideDiagnostics(e){return[...this.provideErrors(e),...this.provideWarnings(e)]}provideErrors(e){return e?this.compiler.parse.errors(e).map(e=>this.createDiagnostic(e,`error`)):this.compiler.interpretProject().getErrors().map(e=>this.createDiagnostic(e,`error`))}provideWarnings(e){return e?this.compiler.parse.warnings(e).map(e=>this.createDiagnostic(e,`warning`)):this.compiler.interpretProject().getWarnings().map(e=>this.createDiagnostic(e,`warning`))}provideMarkers(e){return this.provideDiagnostics(e).filter(t=>t.filepath.equals(e)).map(e=>({severity:this.getSeverityValue(e.type),message:e.text,startLineNumber:e.startRow,startColumn:e.startColumn,endLineNumber:e.endRow,endColumn:e.endColumn,code:e.code?String(e.code):void 0}))}createDiagnostic(e,t){let n=e.nodeOrToken,r=n.startPos,i=n.endPos;return{type:t,text:e.diagnostic,startRow:r.line+1,startColumn:r.column+1,endRow:i.line+1,endColumn:i.column+1,code:e.code,filepath:e.filepath}}getSeverityValue(e){return e===`error`?yS.Error:yS.Warning}},wS=class{constructor(e){this.compiler=e}provideReferences(e,n){let{uri:r}=e,i=jl.fromUri(String(r)),a=bS(e,n);this.compiler.bindProject();let o=[...this.compiler.container.stack(i,a)];for(;o.length!==0;){let e=o.pop();if(e&&[N.ELEMENT_DECLARATION,N.FUNCTION_APPLICATION,N.PRIMARY_EXPRESSION].includes(e?.kind)){let n=this.compiler.nodeSymbol(e).getFiltered(t)??this.compiler.nodeReferee(e).getFiltered(t),i=n?this.compiler.symbolReferences(n):void 0;if(i&&i.length>0)return i.map(e=>{let t=r;return r&&e.filepath&&(t=cS.parse(e.filepath.toUri({protocol:r.scheme}))),{range:{startColumn:e.startPos.column+1,startLineNumber:e.startPos.line+1,endColumn:e.endPos.column+1,endLineNumber:e.endPos.line+1},uri:t}})}}return[]}};function TS(e,t){return e>=t.start&&e<t.end}function ES(e,t){let n=t.bodyColon?.start??t.body?.start;return n===void 0?e>=t.start&&e<=t.end:e>=t.start&&e<n}function DS(e,t){let n=[],r=e.parseFile(t).getValue()?.ast;if(!r)return n;for(let e of r.uses){let t=e.importPath?.value??``,r=[];if(e.specifiers instanceof od)for(let t of e.specifiers.specifiers){let e,n;if(t.name?(e=t.importKind?.value,n=k(t.name)):t.importKind&&(n=t.importKind.value??void 0),n){let i=t.alias?k(t.alias):void 0;r.push({kind:e,name:n,alias:i})}}else e.specifiers instanceof hd&&r.push({name:`*`});r.length===0&&!(e.specifiers instanceof hd)||n.push({startOffset:e.fullStart,endOffset:e.fullEnd,sourceFile:t,specifiers:r,node:e})}return n}function OS(e,t,n,r,i,a){let o=DS(e,i),s=r.relativeTo(i.dirname).replace(/\.dbml$/,``),c=o.findIndex(e=>e.sourceFile===s),l=`${n} ${t}`;if(c!==-1){let e=o[c];return e.specifiers.some(e=>e.name===t)?{topInsert:``}:{topInsert:kS(Uc([...e.specifiers.filter(e=>e.name!==`*`).map(e=>`${e.kind??n} ${e.name}${e.alias?` as ${e.alias}`:``}`),l]),s,`
7
+ `),removeRange:AS(a,e.startOffset,e.endOffset)}}return{topInsert:kS([l],s,`
8
+ `)}}function kS(e,t,n){return`use {${n}${e.map(e=>` ${e}`).join(n)}${n}} from '${t}'${n}${n}`}function AS(e,t,n){let r=e.lastIndexOf(`
9
9
  `,t-1)+1,i=n;for(;i<e.length&&(e[i]===` `||e[i]===` `);)i++;return i<e.length&&e[i]===`\r`&&i++,i<e.length&&e[i]===`
10
- `&&i++,{startOffset:r,endOffset:i}}function AS(e){switch(e){case M.Schema:return Y.Module;case M.Table:case M.TablePartial:return Y.Class;case M.Column:case M.TableGroupField:return Y.Field;case M.Enum:return Y.Enum;case M.EnumField:return Y.EnumMember;case M.TableGroup:return Y.Struct;default:return Y.Text}}function jS(e,t){if(!e||tl(e))return!1;for(let n of e.trailingTrivia){if(n.start>t)break;if(n.kind===y.NEWLINE&&n.end<=t)return!1}return!0}function Z(){return{suggestions:[]}}function MS(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:` ${e.insertText}`}))}}function NS(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:e.quoted?e.insertText:_y(e.insertText??``),quoted:!0}))}}function PS(e,t=`, `){let n=e.suggestions.map(e=>typeof e.label==`string`?e.label:e.label.label).join(t);return n?{...e,suggestions:[{label:`* (all)`,insertText:n,insertTextRules:X.KeepWhitespace,kind:Y.Snippet,sortText:`00`,range:void 0},...e.suggestions]}:e}function FS(e,n,r){let i=[],a=new Set,o=e.layout.getSource(r)??``;for(let s of e.layout.getEntrypoints()){if(s.equals(r))continue;let c=e.usableMembers(s).getFiltered(t);if(c)for(let t of[...c.nonSchemaMembers,...c.schemaMembers]){if(!n.includes(t.kind))continue;let c=t.name;!c||a.has(c)||(a.add(c),i.push(IS(e,c,t.kind,s,r,o)))}}return i}function IS(e,t,n,r,i,a){let o=DS(e,t,n,r,i,a),s=[];if(o.topInsert&&s.push({range:{startLineNumber:1,startColumn:1,endLineNumber:1,endColumn:1},text:o.topInsert}),o.removeRange){let e=LS(a,o.removeRange.startOffset),t=LS(a,o.removeRange.endOffset);s.push({range:{startLineNumber:e.line,startColumn:e.column,endLineNumber:t.line,endColumn:t.column},text:``})}return{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:AS(n),detail:`from ${r.basename}`,sortText:`zzz_${AS(n).toString().padStart(2,`0`)}_${t}`,range:void 0,additionalTextEdits:s}}function LS(e,t){let n=1,r=1;for(let i=0;i<t&&i<e.length;i++)e[i]===`
11
- `?(n++,r=1):r++;return{line:n,column:r}}function RS(e,t,n,i,a){let o=e.container.element(i,a);return!(o instanceof F)||!o.isKind(r.Records)||!(o.body instanceof z)||!o.body||!wS(a,o.body)||t.getLineContent(n.lineNumber).trim()!==``?null:o.parent instanceof nd?zS(e,o):BS(e,o)}function zS(e,n){if(!(n.name instanceof V))return Z();let r=n.name.argumentList?.elementList||[],i=r.map(n=>e.nodeReferee(n).getFiltered(t));if(!i||i.length===0)return Z();let a=r.flatMap((t,n)=>{let r=i[n];if(!(r instanceof zu||r instanceof ed))return[];let{name:a}=r.canonicalName(e,t.filepath),{name:o}=r.type(e);return{name:a,type:o}});return a.length===0?Z():{suggestions:[{label:`Record row snippet`,insertText:a.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:X.InsertAsSnippet,kind:Y.Snippet,range:void 0}]}}function BS(e,n){let r=n.parent;if(!(r instanceof F))return Z();let i=e.nodeSymbol(r).getFiltered(t);if(!(i instanceof Ru))return Z();let a;if(n.name instanceof ud){let r=n.name.elementList,i=r.map(n=>e.nodeReferee(n).getFiltered(t)).filter(e=>e!==void 0);a=r.flatMap((t,n)=>{let r=i[n];if(!(r instanceof zu||r instanceof ed))return[];let{name:a}=r.canonicalName(e,t.filepath),{name:o}=r.type(e);return{name:a,type:o}})}else{let t=i.mergedColumns(e).flatMap(t=>{let{name:n}=t.canonicalName(e,t.filepath),{name:r}=t.type(e);return{name:n,type:r}});if(!t)return Z();a=t}return a.length===0?Z():{suggestions:[{label:`Record row snippet`,insertText:a.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:X.InsertAsSnippet,kind:Y.Snippet,range:void 0}]}}function VS(e,t,n,r,i){let a=e.parse.ast(t);for(let o of a.body)if(o instanceof rd&&n>=o.start&&n<=o.fullEnd)return HS(e,t,n,o,i,r);return null}function HS(e,t,n,r,i,a){if(r.importPath&&wS(n,r.importPath))return qS(e,t,r.importPath,i,r);if(r.importPath&&n>=r.importPath.end)return Z();if(r.fromKeyword&&n>r.fromKeyword.end)return qS(e,t,void 0,i,r);if(r.specifiers instanceof ad){if(!r.specifiers.openBrace){let e=KS();return jS(r.useKeyword,n)?MS(e):e}return US(e,t,n,r.specifiers,r.importPath,a)}if(r.specifiers instanceof md)return Z();let o=KS();return jS(r.useKeyword,n)?MS(o):o}function US(e,t,n,r,i,a){for(let o of r.specifiers){let r=!Number.isNaN(o.start)&&n>=o.start&&n<=o.end,s=a===o.importKind||a===o.asKeyword;if(r||s){if(o.importKind&&n>o.importKind.end){let n=o.getSymbolKind();if(n!==void 0&&n!==M.Schema)return GS(e,t,i,n)}return WS()}}return WS()}function WS(){return{suggestions:Object.keys(Mu).map(e=>({label:e.toLowerCase(),insertText:`${e.toLowerCase()} `,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}}function GS(e,n,r,i){if(!r)return Z();let a=Al(n,r.value);if(!a)return Z();let o=e.usableMembers(a).getFiltered(t);if(!o)return Z();let s=new Set;for(let n of o.schemaMembers){let r=e.symbolMembers(n).getFiltered(t)??[];for(let e of r){if(e.kind!==i||e instanceof $u&&!e.canBeImported)continue;let t=e.name;t&&(n.isPublicSchema()?s.add(t):s.add(`${n.name}.${t}`))}}return{suggestions:[...s].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:AS(i),range:void 0}))}}function KS(){return{suggestions:[{label:`* from`,detail:`import all`,insertText:"* from '${1:./path}'",insertTextRules:X.InsertAsSnippet,kind:Y.Snippet,range:void 0},{label:`{ } from`,detail:`import named`,insertText:"{ ${1:type} ${2:name} } from '${3:./path}'",insertTextRules:X.InsertAsSnippet,kind:Y.Snippet,range:void 0}]}}function qS(e,t,n,r,i){let a=t.dirname,o=n?n.value:`./`,s=n===void 0,c;if(n){let e=bS(r,n);c={startLineNumber:e.startLineNumber,startColumn:e.startColumn+1,endLineNumber:e.endLineNumber,endColumn:e.endColumn-1}}let l=new Map,u=new Map,d=Uc(e.layout.getEntrypoints().flatMap(t=>[...e.reachableFiles(t)]),e=>e.intern());for(let n of d){if(n.equals(t))continue;let r=n.relativeTo(a);if(r.endsWith(`.dbml`)&&(r=r.slice(0,-5)),r.startsWith(`.`)||(r=`./${r}`),o&&!r.startsWith(o))continue;let d=`${o}${r.slice(o.length).split(`/`)[0]}`,f=kl.resolve(a,d),p=e.layout.isDirectory(f);if(YS(e,n,JS(i))&&u.set(d,!0),l.has(d))continue;let m=s?`'${d}'`:d;l.set(d,{label:d,insertText:m,insertTextRules:X.KeepWhitespace,kind:p?Y.Folder:Y.File,sortText:`${p?`2`:`3`}${d}`,range:c})}for(let[e,t]of l)u.get(e)&&(t.sortText=`${t.kind===Y.File?`0`:`1`}${e}`,t.detail=`best match`);return{suggestions:[...l.values()]}}function JS(e){let t=e.specifiers;return t instanceof ad?t.specifiers.flatMap(e=>{let t=A(e.name),n=e.importKind?.value.toLowerCase();return!t||!n?[]:[{name:t,kind:n}]}):[]}function YS(e,n,r){if(r.length===0)return!1;let i=e.usableMembers(n).getFiltered(t);return i?r.every(({name:e,kind:t})=>i.nonSchemaMembers.some(n=>n.kind===t&&n.name===e)):!1}var XS=class{constructor(e,t={}){this.compiler=e,this.triggerCharacters=t.triggerCharacters??[]}provideCompletionItems(e,t){let n=kl.fromUri(String(e.uri)),r=yS(e,t),i=RS(this.compiler,e,t,n,r);if(i!==null)return i;let a=this.compiler.token.flatStream(n),{token:o,index:s}=this.compiler.container.token(n,r),c=s===void 0?a[0]:a[s+1];if([...o?.trailingTrivia||[],...o?.leadingTrivia||[],...c?.leadingTrivia||[]].find(e=>il(e)&&wS(r,e)))return Z();if(s===void 0)return lC();let l=VS(this.compiler,n,r,o,e);if(l!==null)return l;if([y.STRING_LITERAL,y.QUOTED_STRING].includes(o.kind)&&wS(r,o))return Z();let u=this.compiler.container.element(n,r);if(this.compiler.container.scopeKind(n,r)===Q.TOPLEVEL||u instanceof F&&u.type&&u.type.start<=r&&u.type.end>=r)return lC();let d=[...this.compiler.container.stack(n,r)].reverse();for(let e of d)if(e instanceof L)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return QS(this.compiler,n,r,e);case`~`:return ZS(this.compiler,n,r);default:}else if(e instanceof sd)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return QS(this.compiler,n,r,e);case`.`:return sC(this.compiler,n,r,e);default:}else if(e instanceof I)return rC(this.compiler,n,r,e);else if(e instanceof B)return rC(this.compiler,n,r,e);else if(e instanceof ud)return tC(this.compiler,n,r,e);else if(e instanceof dd)return nC(this.compiler,n,r);else if(e instanceof V)return hC(this.compiler,n,r,e);else if(e instanceof R)return cC(this.compiler,n,r,e);else if(e instanceof F){if(TS(r,e))return mC(this.compiler,n,r,e);if(e.bodyColon&&r>=e.bodyColon.end||e.body&&wS(r,e.body))return cC(this.compiler,n,r,void 0)}return Z()}};function ZS(e,t,n){return eC(e,t,n,e.parse.ast(t),[M.TablePartial])}function QS(e,t,n,r){let i=e.container.scopeKind(t,n);if([Q.REF,Q.TABLE,Q.TABLEPARTIAL].includes(i)){let i=eC(e,t,n,e.container.element(t,n),[M.Table,M.Schema,M.Column]);return jS(r.op,n)?MS(i):i}return Z()}function $S(e,n,r){let i=e.symbolMembers(n).getFiltered(t);return i?NS({suggestions:i.filter(e=>r.includes(e.kind)).filter(e=>!(e instanceof Fu&&e.isPublicSchema())).flatMap(e=>{let t=e.name;if(t===void 0)return[];let r=e.originalFilepath,i=r&&!r.equals(n.filepath)?`from ${r.basename}`:`this file`;return{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:AS(e.kind),sortText:AS(e.kind).toString().padStart(2,`0`),detail:i,range:void 0}}).filter(e=>e.label!==``)}):Z()}function eC(e,n,r,i,a){if(i===void 0)return Z();let o=i,s={suggestions:[]},c;for(;o;){o instanceof nd&&(c=o);let n=e.nodeSymbol(o).getFiltered(t);if(n){let t=$S(e,n,a).suggestions,r=e=>{switch(e){case Y.Field:return 0;case Y.Module:return 1;case Y.Class:return 2;default:return 3}};t.sort((e,t)=>r(e.kind)-r(t.kind)),s.suggestions.push(...t)}o=o instanceof F?o.parent:void 0}if(c?.filepath){let t=c.filepath,n=new Set(s.suggestions.map(e=>typeof e.label==`string`?e.label:e.label.label));for(let r of FS(e,a,t)){let e=typeof r.label==`string`?r.label:r.label.label;n.has(e)||(n.add(e),s.suggestions.push(r))}}return NS(s)}function tC(e,n,i,a){let o=e.container.scopeKind(n,i),s=e.container.element(n,i),c=[...e.container.stack(n,i)];for(let t of c)if(t instanceof V&&t.argumentList===a)return hC(e,n,i,t);if(s instanceof F&&s.isKind(r.Records)&&!(s.name instanceof V)&&TS(i,s)){let n=s.parent?e.nodeSymbol(s.parent).getFiltered(t):void 0,r=s.name?e.nodeReferee(s.name).getFiltered(t):void 0,i=n||r;if(i){let t=$S(e,i,[M.Column]);return _u(a)?PS(t):t}}switch(o){case Q.INDEXES:return yC(e,n,i);case Q.REF:for(;c.length>0;){let t=c.pop();if(t instanceof sd&&t.op?.value===`.`)return sC(e,n,i,t)}return pC(e,n,i);default:break}return Z()}function nC(e,t,n){return e.container.scopeKind(t,n)===Q.RECORDS?eC(e,t,n,e.container.element(t,n),[M.Schema,M.Enum,M.EnumField]):Z()}function rC(e,t,n,r){let{token:i}=e.container.token(t,n);if([y.COMMA,y.LBRACKET].includes(i?.kind)){let r=iC(e,t,n);return i?.kind===y.COMMA&&jS(i,n)?MS(r):r}if(r.name&&r.name.start<=n&&r.name.end>=n)return iC(e,t,n);if(r.name instanceof od){let a=aC(e,t,n,hu(r.name)??``);return i?.kind===y.COLON&&jS(i,n)?MS(a):a}return Z()}function iC(e,t,n){let r=e.container.element(t,n);if(r instanceof nd)return Z();let a=e.container.scopeKind(t,n);if(r.body&&!wS(n,r.body)){let e;switch(a){case Q.TABLE:case Q.TABLEPARTIAL:e=[i.HeaderColor,i.Note];break;case Q.TABLEGROUP:e=[i.Color,i.Note];break;default:e=[]}return{suggestions:e.map(e=>({label:e,insertText:`${e}: `,kind:Y.Field,insertTextRules:X.KeepWhitespace,range:void 0}))}}switch(a){case Q.TABLE:case Q.TABLEPARTIAL:return{suggestions:[...[i.PK,i.PrimaryKey,i.Null,i.NotNull,i.Increment,i.Unique].map(e=>({label:e,insertText:e,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0})),...[i.Ref,i.Default,i.Note,i.Check].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))]};case Q.ENUM:return{suggestions:[...[i.Note].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))]};case Q.INDEXES:return{suggestions:[...[i.Unique,i.PK].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Property,range:void 0})),...[i.Note,i.Name,i.Type].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))]};case Q.REF:return{suggestions:[{label:i.Inactive,insertText:i.Inactive,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0},...[i.Update,i.Delete,i.Color].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))]};case Q.CHECKS:return{suggestions:[i.Name].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))};default:break}return Z()}function aC(e,t,n,r){switch(r?.toLowerCase()){case`update`:case`delete`:return{suggestions:[`cascade`,`set default`,`set null`,`restrict`].map(e=>({label:e,insertText:e,kind:Y.Value,insertTextRules:X.KeepWhitespace,range:void 0}))};case`type`:return{suggestions:[`btree`,`hash`].map(e=>({label:e,insertText:`${e}`,kind:Y.Value,insertTextRules:X.KeepWhitespace,range:void 0}))};case`default`:return eC(e,t,n,e.container.element(t,n),[M.Schema,M.Enum]);default:break}return Z()}function oC(e,n,r){if(!r)return[];let i=[],a=r;for(;a;){let n=e.nodeSymbol(a).getFiltered(t);if(n){let r=e.symbolMembers(n).getFiltered(t);i.push(...r||[])}a=a instanceof F?a.parent:void 0}for(let e of n){let t=i.filter(t=>t.name===e);if(t.length===0)return[];i=t}return i}function sC(e,n,r,i){let a=yu(i)??[];return a.pop(),a.some(e=>!w(e))?Z():NS({suggestions:oC(e,a.map(e=>A(e)),e.container.element(n,r)).flatMap(n=>e.symbolMembers(n).getFiltered(t)||[]).flatMap(e=>{let t=e.name;return t===void 0?[]:{label:t,insertText:t,kind:AS(e.kind),range:void 0}})})}function cC(e,t,n,i){switch(e.container.scopeKind(t,n)){case Q.TABLE:case Q.TABLEPARTIAL:return dC(e,t,n,i);case Q.PROJECT:return fC(e,t,n,i);case Q.INDEXES:return _C(e,t,n);case Q.ENUM:return uC(e,t,n,i);case Q.REF:{let r=pC(e,t,n);return e.container.token(t,n).token?.kind===y.COLON&&jS(e.container.token(t,n).token,n)?MS(r):r}case Q.TABLEGROUP:return gC(e,t);case Q.DIAGRAMVIEW:return SC();case Q.CUSTOM:{let i=e.container.element(t,n);if(i instanceof F){let a=i.parentNode,o=a instanceof z?a.parentNode:void 0;if(o instanceof F&&o.isKind(r.DiagramView))return CC(e,t,n,i)}return Z()}default:return Z()}}function lC(){return{suggestions:[`Table`,`TableGroup`,`Enum`,`Project`,`Ref`,`TablePartial`,`Records`,`DiagramView`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}}function uC(e,t,n,r){return r?.callee&&bC(n,r)===1?eC(e,t,n,e.container.element(t,n),[M.Schema,M.Table,M.Column]):Z()}function dC(e,t,n,r){let i=[`Note`,`indexes`,`checks`,`Records`];if(!r?.callee)return{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))};let a=bC(n,r);return a===0?{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}:a===1?vC(e,t,n):Z()}function fC(e,t,n,r){return!r?.callee||bC(n,r)===0?{suggestions:[`Table`,`TableGroup`,`Enum`,`Note`,`Ref`,`TablePartial`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}:Z()}function pC(e,t,n){return eC(e,t,n,e.container.element(t,n),[M.Schema,M.Table,M.Column])}function mC(e,t,n,i){return i.isKind(r.Records)?eC(e,t,n,i.parent,[M.Schema,M.Table]):Z()}function hC(e,n,i,a){let o=e.container.element(n,i),s=a.callee&&wS(i,a.callee),c=a.argumentList&&wS(i,a.argumentList);if(o instanceof F&&o.isKind(r.Records)&&TS(i,o)){if(s)return eC(e,n,i,o.parent,[M.Schema,M.Table]);if(!c)return Z();let r=a.callee;if(!r)return Z();let l=yu(r)??[r],u=l[l.length-1],d=u?e.nodeReferee(u).getFiltered(t):void 0;if(!d)return Z();let f=$S(e,d,[M.Column]),{argumentList:p}=a;return!p||!_u(p)?f:PS(f)}let l=[...e.container.stack(n,i)];for(let o of l){if(!c||!(o instanceof R)||o.callee!==a||(A(a.callee)??``).toLowerCase()!==r.Records)continue;let s=e.nodeSymbol(e.container.element(n,i)).getFiltered(t);if(!s)return Z();let l=$S(e,s,[M.Column]),{argumentList:u}=a;return!u||!_u(u)?l:PS(l)}return Z()}function gC(e,t){return{suggestions:[...NS({suggestions:(e.parse.publicSymbolTable(t)??[]).flatMap(e=>{if(e.kind!==M.Table&&e.kind!==M.Schema)return[];let t=e.name;return t===void 0||e instanceof Fu&&e.isPublicSchema()?[]:{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:AS(e.kind),range:void 0}})}).suggestions,...[`Note`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))]}}function _C(e,t,n){return yC(e,t,n)}function vC(e,t,n){return{suggestions:[...`integer.int.tinyint.smallint.mediumint.bigint.bit.bool.binary.varbinary.logical.char.nchar.varchar.varchar2.nvarchar.nvarchar2.binary_float.binary_double.float.double.decimal.dec.real.money.smallmoney.enum.tinyblob.tinytext.blob.text.mediumblob.mediumtext.longblob.longtext.ntext.set.inet6.uuid.image.date.time.datetime.datetime2.timestamp.year.smalldatetime.datetimeoffset.XML.sql_variant.uniqueidentifier.CURSOR.BFILE.CLOB.NCLOB.RAW`.split(`.`).map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.TypeParameter,sortText:Y.TypeParameter.toString().padStart(2,`0`),range:void 0})),...eC(e,t,n,e.container.element(t,n),[M.Enum,M.Schema]).suggestions]}}function yC(e,n,r){let i=e.container.element(n,r)?.parent,a=i?e.nodeSymbol(i).getFiltered(t):void 0;if(!a||!a?.isKind(M.Table))return Z();let o=e.symbolMembers(a).getFiltered(t);return o?NS({suggestions:o.flatMap(n=>{let r=n.declaration?e.nodeFullname(n.declaration):void 0,i=r&&!r.hasValue(t)?r.getValue()?.at(-1):void 0;return i?{label:i,insertText:i,insertTextRules:X.KeepWhitespace,kind:AS(M.Column),range:void 0}:[]})}):Z()}function bC(e,t){if(!t.callee)return-1;let n=[t.callee,...t.args],r=n.findIndex(t=>e<=t.end);return r===-1?n.length:r}var xC={label:`*`,insertText:`*`,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0};function SC(){return{suggestions:[...[`Tables`,`TableGroups`,`Notes`,`Schemas`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0})),xC]}}function CC(e,t,n,i){switch(i.getElementKind()){case r.DiagramViewTables:return{suggestions:[xC,...eC(e,t,n,e.parse.ast(t),[M.Table,M.Schema]).suggestions]};case r.DiagramViewTableGroups:return{suggestions:[xC,...eC(e,t,n,e.parse.ast(t),[M.TableGroup]).suggestions]};case r.DiagramViewSchemas:return{suggestions:[xC,{label:Pl,insertText:Pl,insertTextRules:X.KeepWhitespace,kind:Y.Module,range:void 0},...eC(e,t,n,e.parse.ast(t),[M.Schema]).suggestions]};case r.DiagramViewNotes:return{suggestions:[xC,...eC(e,t,n,e.parse.ast(t),[M.StickyNote]).suggestions]};default:return Z()}}const wC={comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`},{open:"`",close:"`"}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`},{open:"`",close:"`"}],indentationRules:{increaseIndentPattern:/^(.*\{[^}]*|\s*[{[].*)$/,decreaseIndentPattern:/^(.*\}.*|\s*[}\]].*)$/}};var TC={tokenPostfix:`.dbml`,brackets:[{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`{`,close:`}`,token:`delimiter.curly`}],decls:[`project`,`tablegroup`,`table`,`enum`,`ref`,`note`,`tablepartial`,`records`,`checks`,`diagramview`,`use`,`reuse`,`from`],dataTypes:`TINYINT.SMALLINT.MEDIUMINT.INT.INTEGER.BIGINT.FLOAT.DOUBLE.DECIMAL.DEC.BIT.BOOL.REAL.MONEY.BINARY_FLOAT.BINARY_DOUBLE.smallmoney.ENUM.CHAR.BINARY.VARCHAR.VARBINARY.TINYBLOB.TINYTEXT.BLOB.TEXT.MEDIUMBLOB.MEDIUMTEXT.LONGBLOB.LONGTEXT.SET.INET6.UUID.NVARCHAR.NCHAR.NTEXT.IMAGE.VARCHAR2.NVARCHAR2.DATE.TIME.DATETIME.DATETIME2.TIMESTAMP.YEAR.smalldatetime.datetimeoffset.XML.sql_variant.uniqueidentifier.CURSOR.BFILE.CLOB.NCLOB.RAW`.split(`.`),settings:[`indexes`,`ref`,`note`,`headercolor`,`pk`,`null`,`increment`,`unique`,`default`,`note`,`primary`,`key`,`name`,`as`,`color`,`check`,`tables`,`tablegroups`,`notes`,`schemas`,`inactive`],symbols:/[=><!~?:&|+\-/^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,newline:/[\r\n]/,digits:/\d+(_+\d+)*/,idtf:/[\p{L}0-9_]+/u,ignoreCase:!0,unicode:!0,tokenizer:{root:[[/[{}[\]()]/,`@bracket`],[/[,.:]/,`delimiter`],{include:`@numbers`},{include:`common`}],common:[{include:`@whitespace`},[/[<>~-]/,`operators`],[/\*/,`keyword.wildcard`],[/("[^"\\]*(?:\\.[^"\\]*)*")(\s+)(@idtf(?:\.@idtf*)*)/,[`string`,``,`keyword`]],[/"([^"\\]|\\.)*$/,``],[/'([^'\\]|\\.)*$/,``],[/"/,`string`,`@string_double`],[/'/,`string`,`@string_single`],[/`/,`string`,`@string_backtick`],[/(@idtf)(\s+)(@idtf(?:\.@idtf)*)/,{cases:{"$1@decls":[`keyword`,``,`identifier`],"$1==not":{cases:{"$3==null":[`keyword`,``,`keyword`],"@default":[`identifier`,``,`identifier`]}},"@default":[`identifier`,``,`keyword`]}}],[/@idtf/,{cases:{"@dataTypes":`keyword`,"@decls":`keyword`,"@settings":`keyword`,"@default":`identifier`}}]],numbers:[[/0[xX][0-9a-fA-F]*/,`number`],[/[$][+-]*\d*(\.\d*)?/,`number`],[/((\d+(\.\d*)?)|(\.\d+))([eE][-+]?\d+)?/,`number`],[/#([0-9A-F]{3}){1,2}/,`number.hex`]],string_double:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],string_single:[[/[^\\']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/'/,`string`,`@pop`]],string_backtick:[[/[^\\`$]+/,`string`],[/@escapes/,`string.escape`],[/`/,`string`,`@pop`]],endTripleQuotesString:[[/\\'/,`string`],[/(.*[^\\])?(\\\\)*'''/,`string`,`@popall`],[/.*$/,`string`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`],[/'''(.*[^\\])?(\\\\)*'''/,`string`],[/'''.*$/,`string`,`@endTripleQuotesString`]],comment:[[/[^/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[/*]/,`comment`]]}};function EC(e,t){let n=this.token.flatStream(e),{index:r,token:i}=this.container.token(e,t),a=r===void 0?-1:pc(n,e=>!e.isInvalid,r);if(a===-1)return[this.parse.ast(e)];let o=n[a].start,s=this.parse.ast(e),c=[s];for(;;){let e=Ld(s).find(e=>wS(o,e));if(e===void 0||e instanceof Qc)break;c.push(e),s=e}if(i?.kind===y.COLON)return c;for(;c.length>0;){let n=!1,r=_(c);if(r instanceof R){let i=this.getSource(e)||``;for(let e=r.end;e<t;e+=1)i[e]===`
12
- `&&(c.pop(),n=!0)}else r instanceof L||r instanceof sd?this.container.token(e,t).token!==r.op&&(c.pop(),n=!0):r instanceof B?r.listCloseBracket&&r.end<=t&&(c.pop(),n=!0):r instanceof ud?r.tupleCloseParen&&r.end<=t&&(c.pop(),n=!0):r instanceof dd?r.end<=t&&(c.pop(),n=!0):r instanceof z?r.blockCloseBrace&&r.end<=t&&(c.pop(),n=!0):r instanceof od||r.end<t&&(c.pop(),n=!0);if(n){let e=_(c);e instanceof F&&e.end<=t&&c.pop()}if(!n)break}return c}function DC(e,t){let n=this.token.flatStream(e).findIndex(e=>e.start>=t);return n===void 0||n<=0?{token:void 0,index:void 0}:{token:this.token.flatStream(e)[n-1],index:n-1}}function OC(e,t){let n=this.container.stack(e,t);for(let e=n.length-1;e>=0;--e)if(n[e]instanceof F)return n[e];return this.parse.ast(e)}function kC(e,n){let r=this.container.element(e,n);if(!r)return;let i=this.nodeSymbol(r);if(i.hasValue(t))return;let a=this.symbolMembers(i.getValue());if(!a.hasValue(t))return a.getValue()}let Q=function(e){return e[e.TABLE=0]=`TABLE`,e[e.ENUM=1]=`ENUM`,e[e.TABLEGROUP=2]=`TABLEGROUP`,e[e.INDEXES=3]=`INDEXES`,e[e.NOTE=4]=`NOTE`,e[e.REF=5]=`REF`,e[e.PROJECT=6]=`PROJECT`,e[e.CUSTOM=7]=`CUSTOM`,e[e.TOPLEVEL=8]=`TOPLEVEL`,e[e.TABLEPARTIAL=9]=`TABLEPARTIAL`,e[e.CHECKS=10]=`CHECKS`,e[e.RECORDS=11]=`RECORDS`,e[e.DIAGRAMVIEW=12]=`DIAGRAMVIEW`,e}({});function AC(e,t){let n=this.container.element(e,t);if(n instanceof nd)return Q.TOPLEVEL;switch(n.type?.value.toLowerCase()){case`table`:return Q.TABLE;case`enum`:return Q.ENUM;case`ref`:return Q.REF;case`tablegroup`:return Q.TABLEGROUP;case`indexes`:return Q.INDEXES;case`note`:return Q.NOTE;case`project`:return Q.PROJECT;case`tablepartial`:return Q.TABLEPARTIAL;case`checks`:return Q.CHECKS;case`records`:return Q.RECORDS;case`diagramview`:return Q.DIAGRAMVIEW;default:return Q.CUSTOM}}function jC(e,t){let r=t.originalSymbol;if(r.filepath.equals(e))return n.create(NC(this,r));let i=[...this.symbolUses(r).getValue(),...this.symbolAliases(r).getValue()].filter(t=>t.filepath.equals(e));for(let e of i){let t=e.name;if(!t)continue;if(t!==r.name)return n.create({schema:``,name:t});let i=MC(this,e);if(i.length>0)return n.create({schema:i.join(`.`),name:t});let a=NC(this,r);return a?n.create({...a,name:t}):n.create({schema:Pl,name:t})}return n.create(NC(this,r))}function MC(e,t){let n=[],r=t;for(;r;){let t=e.symbolParent(r).find(e=>e instanceof Fu&&e.isKind(M.Schema));if(!t||t.isPublicSchema())break;n.unshift(t.name??``),r=t}return n}function NC(e,n){if(!n.declaration)return n.name?{schema:Pl,name:n.name}:void 0;let r=e.nodeFullname(n.declaration).getFiltered(t);if(!r||r.length===0)return n.name?{schema:Pl,name:n.name}:void 0;let i=r[r.length-1];return{schema:r.length>1?r.slice(0,-1).join(`.`):Pl,name:i}}function PC(e){let{ast:t}=this.parseFile(e).getValue(),n=[],r=new Set;for(let i of t.body){if(!(i instanceof rd)||!i.importPath)continue;let t=Al(e,i.importPath.value);!t||r.has(t.absolute)||(r.add(t.absolute),n.push(t))}return n}function FC(e,t){let n=new Set,r=[],i=[...t],a=0;for(;a<i.length;){let t=i[a++],o=t.intern();if(!n.has(o)){n.add(o),r.push(t);for(let n of e.fileDependencies(t))i.push(n)}}return r}function IC(e){return FC(this,e?[e]:this.layout.getEntrypoints())}function LC(e){return this.bindFile(e),this.parseFile(e).getValue().ast}function RC(e){return this.interpretFile(e).getErrors()}function zC(e){return this.interpretFile(e).getWarnings()}function BC(e){return this.parseFile(e).getValue().tokens}function VC(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.interpretSymbol(r,e).getFiltered(t)}function HC(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.symbolMembers(r).getFiltered(t)}function UC(e){return this.parseFile(e).getValue().tokens.flatMap(e=>[...e.leadingInvalid,e,...e.trailingInvalid])}function WC(e){return this.parseFile(e).getValue().tokens.filter(ll)}function GC(e,t){let n=this.parse.ast(e);for(;;){let e=Ld(n).find(e=>wS(t,e));if(e===void 0)return n;if(e instanceof Qc)return e;n=e}}function KC(e){let t=this.validateFile(e),r=this.parseFile(e).getValue().ast,i=this.bindNode(r).map(()=>void 0);return new n(void 0,[...t.getErrors(),...i.getErrors()],[...t.getWarnings(),...i.getWarnings()])}function qC(){let e=Sy(this,this.layout.getEntrypoints()),t=new Map;for(let n of e){let e=this.bindFile(n);t.set(n.absolute,e)}return t}function JC(e){let{ast:r}=this.parseFile(e).getValue(),i=this.nodeSymbol(r).getFiltered(t);return i?this.interpretSymbol(i,e).map(e=>e===t||!e?void 0:e):n.create(void 0)}function YC(){let e=[],r=[],i=new Set,a=[];for(let e of this.layout.getEntrypoints())for(let t of this.reachableFiles(e)){let e=t.intern();i.has(e)||(i.add(e),a.push(t))}let o=new Map;for(let i of a){let a=this.parseFile(i);e.push(...a.getErrors()),r.push(...a.getWarnings());let s=this.bindFile(i);e.push(...s.getErrors()),r.push(...s.getWarnings());let{ast:c}=a.getValue(),l=this.nodeSymbol(c).getFiltered(t),u=l?this.interpretSymbol(l,i):n.create(t),d=u.getFiltered(t);d&&o.set(i.absolute,d),e.push(...u.getErrors()),r.push(...u.getWarnings())}let s={};for(let[e,t]of o)s[e]=t;return new n({files:s},e,r)}function XC(e){return this.parseFile(e).chain(({ast:e})=>this.validateNode(e).map(()=>void 0))}var ZC=class{constructor(e,t){this.start={offset:0,line:0,column:0},this.current={offset:0,line:0,column:0},this.tokens=[],this.errors=[],this.text=e,this.filepath=t}isAtEnd(){return this.current.offset>=this.text.length}advance(){let e=this.peek();return this.current={...this.current},e===`
13
- `?(this.current.line+=1,this.current.column=0):this.current.column+=1,this.current.offset+=1,e}peek(e=0){if(!(this.current.offset+e>=this.text.length))return this.text[this.current.offset+e]}check(e){for(let t=0;t<e.length;t+=1)if(e[t]!==this.peek(t))return!1;return!0}match(e){return this.check(e)?(e.split(``).forEach(()=>this.advance()),!0):!1}addToken(e,t=!1){this.tokens.push(this.createToken(e,t))}createToken(e,t=!1){return Qc.create(e,this.filepath,this.start,this.current,this.text.substring(this.start.offset,this.current.offset),t)}lex(){return this.scanTokens(),this.tokens.push(Qc.create(y.EOF,this.filepath,this.start,this.current,``,!1)),this.gatherTrivia(),this.gatherInvalid(),new n(this.tokens,this.errors)}scanTokens(){for(;!this.isAtEnd();){let e=this.advance();switch(e){case` `:this.addToken(y.SPACE);break;case`\r`:break;case`
14
- `:this.addToken(y.NEWLINE);break;case` `:this.addToken(y.TAB);break;case`,`:this.addToken(y.COMMA);break;case`(`:this.addToken(y.LPAREN);break;case`)`:this.addToken(y.RPAREN);break;case`[`:this.addToken(y.LBRACKET);break;case`]`:this.addToken(y.RBRACKET);break;case`{`:this.addToken(y.LBRACE);break;case`}`:this.addToken(y.RBRACE);break;case`;`:this.addToken(y.SEMICOLON);break;case`:`:this.addToken(y.COLON);break;case`'`:this.match(`''`)?this.multilineStringLiteral():this.singleLineStringLiteral();break;case`"`:this.quotedVariable();break;case"`":this.functionExpression();break;case`#`:this.colorLiteral();break;case`/`:this.match(`/`)?this.singleLineComment():this.match(`*`)?this.multilineComment():this.operator(e);break;case`*`:this.addToken(y.WILDCARD);break;default:if(Xc(e)){this.operator(e);break}if(Ll(e)){this.identifier();break}if(Rl(e)){this.numericLiteralOrIdentifier();break}this.addToken(y.OP,!0),this.errors.push(new x(b.UNKNOWN_SYMBOL,`Unexpected token '${e}'`,this.createToken(y.OP,!0)));break}this.start={...this.current}}}gatherTrivia(){let e=!0,t=[],n,r=[];for(let i of this.tokens)Yc(i)?(t.push(i),i.kind===y.NEWLINE&&n&&(n.trailingTrivia=t,e=!0,n=void 0,t=[])):(e?i.leadingTrivia=t:n.trailingTrivia=t,r.push(i),t=[],n=i,e=!1);this.tokens=r}gatherInvalid(){let e,t=[],n=[];for(e=0;e<this.tokens.length&&ll(this.tokens[e]);e+=1)n.push(this.tokens[e]);let r=this.tokens[e];for(r.leadingInvalid=[...n,...r.leadingInvalid];e<this.tokens.length;e+=1){let n=this.tokens[e];ll(n)?r.trailingInvalid.push(n):(r=n,t.push(n))}this.tokens=t}consumeUntil(e,t,{allowNewline:n,allowEof:r,raw:i,consumeStopSequence:a=!0}){let o=``;for(;!this.isAtEnd()&&(n||!this.check(`
15
- `))&&!this.check(t);)this.peek()===`\\`&&!i?(this.advance(),o+=this.escapedString()):o+=this.advance();if(this.isAtEnd()&&!r){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new x(b.UNEXPECTED_EOF,`EOF reached while parsing`,t));return}if(this.check(`
16
- `)&&!n){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new x(b.UNEXPECTED_NEWLINE,`Invalid newline encountered while parsing`,t));return}a&&this.match(t),this.tokens.push(Qc.create(e,this.filepath,this.start,this.current,o,!1))}singleLineStringLiteral(){this.consumeUntil(y.STRING_LITERAL,`'`,{allowNewline:!1,allowEof:!1,raw:!1})}multilineStringLiteral(){this.consumeUntil(y.STRING_LITERAL,`'''`,{allowNewline:!0,allowEof:!1,raw:!1})}functionExpression(){this.consumeUntil(y.FUNCTION_EXPRESSION,"`",{allowNewline:!0,allowEof:!1,raw:!0})}quotedVariable(){this.consumeUntil(y.QUOTED_STRING,`"`,{allowNewline:!1,allowEof:!1,raw:!1})}singleLineComment(){this.consumeUntil(y.SINGLE_LINE_COMMENT,`
17
- `,{allowNewline:!0,allowEof:!0,raw:!0,consumeStopSequence:!1})}multilineComment(){this.consumeUntil(y.MULTILINE_COMMENT,`*/`,{allowNewline:!0,allowEof:!1,raw:!0})}identifier(){for(;!this.isAtEnd()&&Bl(this.peek());)this.advance();this.addToken(y.IDENTIFIER)}operator(e){switch(e){case`<`:[`>`,`=`].includes(this.peek())&&this.advance();break;case`>`:this.peek()===`=`&&this.advance();break;case`=`:this.peek()===`=`&&this.advance();break;case`!`:this.peek()===`=`&&this.advance();break;default:break}this.addToken(y.OP)}numericLiteralOrIdentifier(){let e=0;if(this.isAtEnd())return this.addToken(y.NUMERIC_LITERAL);for(;!this.isAtEnd();){let t=this.check(`.`);if(e+=t?1:0,e>1)break;if(this.check(`e`)||this.check(`E`)){let e=this.peek(1),t=e===`+`||e===`-`,n=t?this.peek(2):e;if(n&&Rl(n)){for(this.advance(),t&&this.advance();!this.isAtEnd()&&Rl(this.peek());)this.advance();if(this.isAtEnd()||!Bl(this.peek()))return this.addToken(y.NUMERIC_LITERAL);break}break}if(!t&&this.current.offset===this.text.length-1)return this.advance(),this.addToken(y.NUMERIC_LITERAL);if(!t&&!Bl(this.peek()))return this.addToken(y.NUMERIC_LITERAL);if(!t&&!Rl(this.peek()))break;this.advance()}if(e>0){for(;!this.isAtEnd()&&(this.check(`.`)||Bl(this.peek()));)this.advance();let e=this.createToken(y.NUMERIC_LITERAL,!0);this.tokens.push(e),this.errors.push(new x(b.UNKNOWN_TOKEN,`Invalid number`,e))}else{for(;!this.isAtEnd()&&Bl(this.peek());)this.advance();let e=this.createToken(y.IDENTIFIER,!1);this.tokens.push(e)}}colorLiteral(){for(;!this.isAtEnd()&&Bl(this.peek());)this.advance();this.addToken(y.COLOR_LITERAL)}escapedString(){let e={column:this.current.column-1,offset:this.current.offset-1,line:this.current.line};if(this.isAtEnd())return`\\`;switch(this.advance()){case`\r`:return this.check(`
10
+ `&&i++,{startOffset:r,endOffset:i}}function jS(e){switch(e){case j.Schema:return Y.Module;case j.Table:case j.TablePartial:return Y.Class;case j.Column:case j.TableGroupField:return Y.Field;case j.Enum:return Y.Enum;case j.EnumField:return Y.EnumMember;case j.TableGroup:return Y.Struct;default:return Y.Text}}function MS(e,t){if(!e||rl(e))return!1;for(let n of e.trailingTrivia){if(n.start>t)break;if(n.kind===_.NEWLINE&&n.end<=t)return!1}return!0}function Z(){return{suggestions:[]}}function NS(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:` ${e.insertText}`}))}}function PS(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:e.quoted?e.insertText:vy(e.insertText??``),quoted:!0}))}}function FS(e,t=`, `){let n=e.suggestions.map(e=>typeof e.label==`string`?e.label:e.label.label).join(t);return n?{...e,suggestions:[{label:`* (all)`,insertText:n,insertTextRules:X.KeepWhitespace,kind:Y.Snippet,sortText:`00`,range:void 0},...e.suggestions]}:e}function IS(e,n,r){let i=[],a=new Set,o=e.layout.getSource(r)??``;for(let s of e.layout.getEntrypoints()){if(s.equals(r))continue;let c=e.usableMembers(s).getFiltered(t);if(c)for(let t of[...c.nonSchemaMembers,...c.schemaMembers]){if(!n.includes(t.kind))continue;let c=t.name;!c||a.has(c)||(a.add(c),i.push(LS(e,c,t.kind,s,r,o)))}}return i}function LS(e,t,n,r,i,a){let o=OS(e,t,n,r,i,a),s=[];if(o.topInsert&&s.push({range:{startLineNumber:1,startColumn:1,endLineNumber:1,endColumn:1},text:o.topInsert}),o.removeRange){let e=RS(a,o.removeRange.startOffset),t=RS(a,o.removeRange.endOffset);s.push({range:{startLineNumber:e.line,startColumn:e.column,endLineNumber:t.line,endColumn:t.column},text:``})}return{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:jS(n),detail:`from ${r.basename}`,sortText:`zzz_${jS(n).toString().padStart(2,`0`)}_${t}`,range:void 0,additionalTextEdits:s}}function RS(e,t){let n=1,r=1;for(let i=0;i<t&&i<e.length;i++)e[i]===`
11
+ `?(n++,r=1):r++;return{line:n,column:r}}function zS(e,t,n,i,a){let o=e.container.element(i,a);return!(o instanceof F)||!o.isKind(r.Records)||!(o.body instanceof z)||!o.body||!TS(a,o.body)||t.getLineContent(n.lineNumber).trim()!==``?null:o.parent instanceof P?BS(e,o):VS(e,o)}function BS(e,n){if(!(n.name instanceof V))return Z();let r=n.name.argumentList?.elementList||[],i=r.map(n=>e.nodeReferee(n).getFiltered(t));if(!i||i.length===0)return Z();let a=r.flatMap((t,n)=>{let r=i[n];if(!(r instanceof Vu||r instanceof nd))return[];let{name:a}=r.canonicalName(e,t.filepath),{name:o}=r.type(e);return{name:a,type:o}});return a.length===0?Z():{suggestions:[{label:`Record row snippet`,insertText:a.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:X.InsertAsSnippet,kind:Y.Snippet,range:void 0}]}}function VS(e,n){let r=n.parent;if(!(r instanceof F))return Z();let i=e.nodeSymbol(r).getFiltered(t);if(!(i instanceof Bu))return Z();let a;if(n.name instanceof dd){let r=n.name.elementList,i=r.map(n=>e.nodeReferee(n).getFiltered(t)).filter(e=>e!==void 0);a=r.flatMap((t,n)=>{let r=i[n];if(!(r instanceof Vu||r instanceof nd))return[];let{name:a}=r.canonicalName(e,t.filepath),{name:o}=r.type(e);return{name:a,type:o}})}else{let t=i.mergedColumns(e).flatMap(t=>{let{name:n}=t.canonicalName(e,t.filepath),{name:r}=t.type(e);return{name:n,type:r}});if(!t)return Z();a=t}return a.length===0?Z():{suggestions:[{label:`Record row snippet`,insertText:a.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:X.InsertAsSnippet,kind:Y.Snippet,range:void 0}]}}function HS(e,t,n,r,i){let a=e.parse.ast(t);for(let o of a.body)if(o instanceof id&&n>=o.start&&n<=o.fullEnd)return US(e,t,n,o,i,r);return null}function US(e,t,n,r,i,a){if(r.importPath&&TS(n,r.importPath))return JS(e,t,r.importPath,i,r);if(r.importPath&&n>=r.importPath.end)return Z();if(r.fromKeyword&&n>r.fromKeyword.end)return JS(e,t,void 0,i,r);if(r.specifiers instanceof od){if(!r.specifiers.openBrace){let e=qS();return MS(r.useKeyword,n)?NS(e):e}return WS(e,t,n,r.specifiers,r.importPath,a)}if(r.specifiers instanceof hd)return Z();let o=qS();return MS(r.useKeyword,n)?NS(o):o}function WS(e,t,n,r,i,a){for(let o of r.specifiers){let r=!Number.isNaN(o.start)&&n>=o.start&&n<=o.end,s=a===o.importKind||a===o.asKeyword;if(r||s){if(o.importKind&&n>o.importKind.end){let n=o.getSymbolKind();if(n!==void 0&&n!==j.Schema)return KS(e,t,i,n)}return GS()}}return GS()}function GS(){return{suggestions:Object.keys(Pu).map(e=>({label:e.toLowerCase(),insertText:`${e.toLowerCase()} `,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}}function KS(e,n,r,i){if(!r)return Z();let a=Ml(n,r.value);if(!a)return Z();let o=e.usableMembers(a).getFiltered(t);if(!o)return Z();let s=new Set;for(let n of o.schemaMembers){let r=e.symbolMembers(n).getFiltered(t)??[];for(let e of r){if(e.kind!==i||e instanceof td&&!e.canBeImported)continue;let t=e.name;t&&(n.isPublicSchema()?s.add(t):s.add(`${n.name}.${t}`))}}return{suggestions:[...s].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:jS(i),range:void 0}))}}function qS(){return{suggestions:[{label:`* from`,detail:`import all`,insertText:"* from '${1:./path}'",insertTextRules:X.InsertAsSnippet,kind:Y.Snippet,range:void 0},{label:`{ } from`,detail:`import named`,insertText:"{ ${1:type} ${2:name} } from '${3:./path}'",insertTextRules:X.InsertAsSnippet,kind:Y.Snippet,range:void 0}]}}function JS(e,t,n,r,i){let a=t.dirname,o=n?n.value:`./`,s=n===void 0,c;if(n){let e=xS(r,n);c={startLineNumber:e.startLineNumber,startColumn:e.startColumn+1,endLineNumber:e.endLineNumber,endColumn:e.endColumn-1}}let l=new Map,u=new Map,d=Gc(e.layout.getEntrypoints().flatMap(t=>[...e.reachableFiles(t)]),e=>e.intern());for(let n of d){if(n.equals(t))continue;let r=n.relativeTo(a);if(r.endsWith(`.dbml`)&&(r=r.slice(0,-5)),r.startsWith(`.`)||(r=`./${r}`),o&&!r.startsWith(o))continue;let d=`${o}${r.slice(o.length).split(`/`)[0]}`,f=jl.resolve(a,d),p=e.layout.isDirectory(f);if(XS(e,n,YS(i))&&u.set(d,!0),l.has(d))continue;let m=s?`'${d}'`:d;l.set(d,{label:d,insertText:m,insertTextRules:X.KeepWhitespace,kind:p?Y.Folder:Y.File,sortText:`${p?`2`:`3`}${d}`,range:c})}for(let[e,t]of l)u.get(e)&&(t.sortText=`${t.kind===Y.File?`0`:`1`}${e}`,t.detail=`best match`);return{suggestions:[...l.values()]}}function YS(e){let t=e.specifiers;return t instanceof od?t.specifiers.flatMap(e=>{let t=k(e.name),n=e.importKind?.value.toLowerCase();return!t||!n?[]:[{name:t,kind:n}]}):[]}function XS(e,n,r){if(r.length===0)return!1;let i=e.usableMembers(n).getFiltered(t);return i?r.every(({name:e,kind:t})=>i.nonSchemaMembers.some(n=>n.kind===t&&n.name===e)):!1}var ZS=class{constructor(e,t={}){this.compiler=e,this.triggerCharacters=t.triggerCharacters??[]}provideCompletionItems(e,t){let n=jl.fromUri(String(e.uri)),r=bS(e,t),i=zS(this.compiler,e,t,n,r);if(i!==null)return i;let a=this.compiler.token.flatStream(n),{token:o,index:s}=this.compiler.container.token(n,r),c=s===void 0?a[0]:a[s+1];if([...o?.trailingTrivia||[],...o?.leadingTrivia||[],...c?.leadingTrivia||[]].find(e=>ol(e)&&TS(r,e)))return Z();if(s===void 0)return uC();let l=HS(this.compiler,n,r,o,e);if(l!==null)return l;if([_.STRING_LITERAL,_.QUOTED_STRING].includes(o.kind)&&TS(r,o))return Z();let u=this.compiler.container.element(n,r);if(this.compiler.container.scopeKind(n,r)===Q.TOPLEVEL||u instanceof F&&u.type&&u.type.start<=r&&u.type.end>=r)return uC();let d=[...this.compiler.container.stack(n,r)].reverse();for(let e of d)if(e instanceof L)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return $S(this.compiler,n,r,e);case`~`:return QS(this.compiler,n,r);default:}else if(e instanceof cd)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return $S(this.compiler,n,r,e);case`.`:return cC(this.compiler,n,r,e);default:}else if(e instanceof I)return iC(this.compiler,n,r,e);else if(e instanceof B)return iC(this.compiler,n,r,e);else if(e instanceof dd)return nC(this.compiler,n,r,e);else if(e instanceof fd)return rC(this.compiler,n,r);else if(e instanceof V)return gC(this.compiler,n,r,e);else if(e instanceof R)return lC(this.compiler,n,r,e);else if(e instanceof F){if(ES(r,e))return hC(this.compiler,n,r,e);if(e.bodyColon&&r>=e.bodyColon.end||e.body&&TS(r,e.body))return lC(this.compiler,n,r,void 0)}return Z()}};function QS(e,t,n){return tC(e,t,n,e.parse.ast(t),[j.TablePartial])}function $S(e,t,n,r){let i=e.container.scopeKind(t,n);if([Q.REF,Q.TABLE,Q.TABLEPARTIAL].includes(i)){let i=tC(e,t,n,e.container.element(t,n),[j.Table,j.Schema,j.Column]);return MS(r.op,n)?NS(i):i}return Z()}function eC(e,n,r){let i=e.symbolMembers(n).getFiltered(t);return i?PS({suggestions:i.filter(e=>r.includes(e.kind)).filter(e=>!(e instanceof Lu&&e.isPublicSchema())).flatMap(e=>{let t=e.name;if(t===void 0)return[];let r=e.originalFilepath,i=r&&!r.equals(n.filepath)?`from ${r.basename}`:`this file`;return{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:jS(e.kind),sortText:jS(e.kind).toString().padStart(2,`0`),detail:i,range:void 0}}).filter(e=>e.label!==``)}):Z()}function tC(e,n,r,i,a){if(i===void 0)return Z();let o=i,s={suggestions:[]},c;for(;o;){o instanceof P&&(c=o);let n=e.nodeSymbol(o).getFiltered(t);if(n){let t=eC(e,n,a).suggestions,r=e=>{switch(e){case Y.Field:return 0;case Y.Module:return 1;case Y.Class:return 2;default:return 3}};t.sort((e,t)=>r(e.kind)-r(t.kind)),s.suggestions.push(...t)}o=o instanceof F?o.parent:void 0}if(c?.filepath){let t=c.filepath,n=new Set(s.suggestions.map(e=>typeof e.label==`string`?e.label:e.label.label));for(let r of IS(e,a,t)){let e=typeof r.label==`string`?r.label:r.label.label;n.has(e)||(n.add(e),s.suggestions.push(r))}}return PS(s)}function nC(e,n,i,a){let o=e.container.scopeKind(n,i),s=e.container.element(n,i),c=[...e.container.stack(n,i)];for(let t of c)if(t instanceof V&&t.argumentList===a)return gC(e,n,i,t);if(s instanceof F&&s.isKind(r.Records)&&!(s.name instanceof V)&&ES(i,s)){let n=s.parent?e.nodeSymbol(s.parent).getFiltered(t):void 0,r=s.name?e.nodeReferee(s.name).getFiltered(t):void 0,i=n||r;if(i){let t=eC(e,i,[j.Column]);return yu(a)?FS(t):t}}switch(o){case Q.INDEXES:return bC(e,n,i);case Q.REF:for(;c.length>0;){let t=c.pop();if(t instanceof cd&&t.op?.value===`.`)return cC(e,n,i,t)}return mC(e,n,i);default:break}return Z()}function rC(e,t,n){return e.container.scopeKind(t,n)===Q.RECORDS?tC(e,t,n,e.container.element(t,n),[j.Schema,j.Enum,j.EnumField]):Z()}function iC(e,t,n,r){let{token:i}=e.container.token(t,n);if([_.COMMA,_.LBRACKET].includes(i?.kind)){let r=aC(e,t,n);return i?.kind===_.COMMA&&MS(i,n)?NS(r):r}if(r.name&&r.name.start<=n&&r.name.end>=n)return aC(e,t,n);if(r.name instanceof sd){let a=oC(e,t,n,_u(r.name)??``);return i?.kind===_.COLON&&MS(i,n)?NS(a):a}return Z()}function aC(e,t,n){let r=e.container.element(t,n);if(r instanceof P)return Z();let a=e.container.scopeKind(t,n);if(r.body&&!TS(n,r.body)){let e;switch(a){case Q.TABLE:case Q.TABLEPARTIAL:e=[i.HeaderColor,i.Note];break;case Q.TABLEGROUP:e=[i.Color,i.Note];break;case Q.NOTE:e=[i.Color];break;default:e=[]}return{suggestions:e.map(e=>({label:e,insertText:`${e}: `,kind:Y.Field,insertTextRules:X.KeepWhitespace,range:void 0}))}}switch(a){case Q.TABLE:case Q.TABLEPARTIAL:return{suggestions:[...[i.PK,i.PrimaryKey,i.Null,i.NotNull,i.Increment,i.Unique].map(e=>({label:e,insertText:e,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0})),...[i.Ref,i.Default,i.Note,i.Check].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))]};case Q.ENUM:return{suggestions:[...[i.Note].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))]};case Q.INDEXES:return{suggestions:[...[i.Unique,i.PK].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Property,range:void 0})),...[i.Note,i.Name,i.Type].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))]};case Q.REF:return{suggestions:[{label:i.Inactive,insertText:i.Inactive,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0},...[i.Update,i.Delete,i.Color].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))]};case Q.CHECKS:return{suggestions:[i.Name].map(e=>({label:e,insertText:`${e}: `,kind:Y.Property,insertTextRules:X.KeepWhitespace,range:void 0}))};default:break}return Z()}function oC(e,t,n,r){switch(r?.toLowerCase()){case`update`:case`delete`:return{suggestions:[`cascade`,`set default`,`set null`,`restrict`].map(e=>({label:e,insertText:e,kind:Y.Value,insertTextRules:X.KeepWhitespace,range:void 0}))};case`type`:return{suggestions:[`btree`,`hash`].map(e=>({label:e,insertText:`${e}`,kind:Y.Value,insertTextRules:X.KeepWhitespace,range:void 0}))};case`color`:if(e.container.scopeKind(t,n)===Q.NOTE)return{suggestions:[Pl].map(e=>({label:e,insertText:e,kind:Y.Value,insertTextRules:X.KeepWhitespace,range:void 0}))};break;case`default`:return tC(e,t,n,e.container.element(t,n),[j.Schema,j.Enum]);default:break}return Z()}function sC(e,n,r){if(!r)return[];let i=[],a=r;for(;a;){let n=e.nodeSymbol(a).getFiltered(t);if(n){let r=e.symbolMembers(n).getFiltered(t);i.push(...r||[])}a=a instanceof F?a.parent:void 0}for(let e of n){let t=i.filter(t=>t.name===e);if(t.length===0)return[];i=t}return i}function cC(e,n,r,i){let a=xu(i)??[];return a.pop(),a.some(e=>!C(e))?Z():PS({suggestions:sC(e,a.map(e=>k(e)),e.container.element(n,r)).flatMap(n=>e.symbolMembers(n).getFiltered(t)||[]).flatMap(e=>{let t=e.name;return t===void 0?[]:{label:t,insertText:t,kind:jS(e.kind),range:void 0}})})}function lC(e,t,n,i){switch(e.container.scopeKind(t,n)){case Q.TABLE:case Q.TABLEPARTIAL:return fC(e,t,n,i);case Q.PROJECT:return pC(e,t,n,i);case Q.INDEXES:return vC(e,t,n);case Q.ENUM:return dC(e,t,n,i);case Q.REF:{let r=mC(e,t,n);return e.container.token(t,n).token?.kind===_.COLON&&MS(e.container.token(t,n).token,n)?NS(r):r}case Q.TABLEGROUP:return _C(e,t);case Q.DIAGRAMVIEW:return CC();case Q.CUSTOM:{let i=e.container.element(t,n);if(i instanceof F){let a=i.parentNode,o=a instanceof z?a.parentNode:void 0;if(o instanceof F&&o.isKind(r.DiagramView))return wC(e,t,n,i)}return Z()}default:return Z()}}function uC(){return{suggestions:[`Table`,`TableGroup`,`Enum`,`Project`,`Ref`,`TablePartial`,`Records`,`DiagramView`,`Note`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}}function dC(e,t,n,r){return r?.callee&&xC(n,r)===1?tC(e,t,n,e.container.element(t,n),[j.Schema,j.Table,j.Column]):Z()}function fC(e,t,n,r){let i=[`Note`,`indexes`,`checks`,`Records`];if(!r?.callee)return{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))};let a=xC(n,r);return a===0?{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}:a===1?yC(e,t,n):Z()}function pC(e,t,n,r){return!r?.callee||xC(n,r)===0?{suggestions:[`Table`,`TableGroup`,`Enum`,`Note`,`Ref`,`TablePartial`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}:Z()}function mC(e,t,n){return tC(e,t,n,e.container.element(t,n),[j.Schema,j.Table,j.Column])}function hC(e,t,n,i){return i.isKind(r.Records)?tC(e,t,n,i.parent,[j.Schema,j.Table]):Z()}function gC(e,n,i,a){let o=e.container.element(n,i),s=a.callee&&TS(i,a.callee),c=a.argumentList&&TS(i,a.argumentList);if(o instanceof F&&o.isKind(r.Records)&&ES(i,o)){if(s)return tC(e,n,i,o.parent,[j.Schema,j.Table]);if(!c)return Z();let r=a.callee;if(!r)return Z();let l=xu(r)??[r],u=l[l.length-1],d=u?e.nodeReferee(u).getFiltered(t):void 0;if(!d)return Z();let f=eC(e,d,[j.Column]),{argumentList:p}=a;return!p||!yu(p)?f:FS(f)}let l=[...e.container.stack(n,i)];for(let o of l){if(!c||!(o instanceof R)||o.callee!==a||(k(a.callee)??``).toLowerCase()!==r.Records)continue;let s=e.nodeSymbol(e.container.element(n,i)).getFiltered(t);if(!s)return Z();let l=eC(e,s,[j.Column]),{argumentList:u}=a;return!u||!yu(u)?l:FS(l)}return Z()}function _C(e,t){return{suggestions:[...PS({suggestions:(e.parse.publicSymbolTable(t)??[]).flatMap(e=>{if(e.kind!==j.Table&&e.kind!==j.Schema)return[];let t=e.name;return t===void 0||e instanceof Lu&&e.isPublicSchema()?[]:{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:jS(e.kind),range:void 0}})}).suggestions,...[`Note`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))]}}function vC(e,t,n){return bC(e,t,n)}function yC(e,t,n){return{suggestions:[...`integer.int.tinyint.smallint.mediumint.bigint.bit.bool.binary.varbinary.logical.char.nchar.varchar.varchar2.nvarchar.nvarchar2.binary_float.binary_double.float.double.decimal.dec.real.money.smallmoney.enum.tinyblob.tinytext.blob.text.mediumblob.mediumtext.longblob.longtext.ntext.set.inet6.uuid.image.date.time.datetime.datetime2.timestamp.year.smalldatetime.datetimeoffset.XML.sql_variant.uniqueidentifier.CURSOR.BFILE.CLOB.NCLOB.RAW`.split(`.`).map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.TypeParameter,sortText:Y.TypeParameter.toString().padStart(2,`0`),range:void 0})),...tC(e,t,n,e.container.element(t,n),[j.Enum,j.Schema]).suggestions]}}function bC(e,n,r){let i=e.container.element(n,r)?.parent,a=i?e.nodeSymbol(i).getFiltered(t):void 0;if(!a||!a?.isKind(j.Table))return Z();let o=e.symbolMembers(a).getFiltered(t);return o?PS({suggestions:o.flatMap(n=>{let r=n.declaration?e.nodeFullname(n.declaration):void 0,i=r&&!r.hasValue(t)?r.getValue()?.at(-1):void 0;return i?{label:i,insertText:i,insertTextRules:X.KeepWhitespace,kind:jS(j.Column),range:void 0}:[]})}):Z()}function xC(e,t){if(!t.callee)return-1;let n=[t.callee,...t.args],r=n.findIndex(t=>e<=t.end);return r===-1?n.length:r}var SC={label:`*`,insertText:`*`,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0};function CC(){return{suggestions:[...[`Tables`,`TableGroups`,`Notes`,`Schemas`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0})),SC]}}function wC(e,t,n,i){switch(i.getElementKind()){case r.DiagramViewTables:return{suggestions:[SC,...tC(e,t,n,e.parse.ast(t),[j.Table,j.Schema]).suggestions]};case r.DiagramViewTableGroups:return{suggestions:[SC,...tC(e,t,n,e.parse.ast(t),[j.TableGroup]).suggestions]};case r.DiagramViewSchemas:return{suggestions:[SC,{label:v,insertText:v,insertTextRules:X.KeepWhitespace,kind:Y.Module,range:void 0},...tC(e,t,n,e.parse.ast(t),[j.Schema]).suggestions]};case r.DiagramViewNotes:return{suggestions:[SC,...tC(e,t,n,e.parse.ast(t),[j.StickyNote]).suggestions]};default:return Z()}}const TC={comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`},{open:"`",close:"`"}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`},{open:"`",close:"`"}],indentationRules:{increaseIndentPattern:/^(.*\{[^}]*|\s*[{[].*)$/,decreaseIndentPattern:/^(.*\}.*|\s*[}\]].*)$/}};var EC={tokenPostfix:`.dbml`,brackets:[{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`{`,close:`}`,token:`delimiter.curly`}],decls:[`project`,`tablegroup`,`table`,`enum`,`ref`,`note`,`tablepartial`,`records`,`checks`,`diagramview`,`use`,`reuse`,`from`],dataTypes:`TINYINT.SMALLINT.MEDIUMINT.INT.INTEGER.BIGINT.FLOAT.DOUBLE.DECIMAL.DEC.BIT.BOOL.REAL.MONEY.BINARY_FLOAT.BINARY_DOUBLE.smallmoney.ENUM.CHAR.BINARY.VARCHAR.VARBINARY.TINYBLOB.TINYTEXT.BLOB.TEXT.MEDIUMBLOB.MEDIUMTEXT.LONGBLOB.LONGTEXT.SET.INET6.UUID.NVARCHAR.NCHAR.NTEXT.IMAGE.VARCHAR2.NVARCHAR2.DATE.TIME.DATETIME.DATETIME2.TIMESTAMP.YEAR.smalldatetime.datetimeoffset.XML.sql_variant.uniqueidentifier.CURSOR.BFILE.CLOB.NCLOB.RAW`.split(`.`),settings:[`indexes`,`ref`,`note`,`headercolor`,`pk`,`null`,`increment`,`unique`,`default`,`note`,`primary`,`key`,`name`,`as`,`color`,`none`,`check`,`tables`,`tablegroups`,`notes`,`schemas`,`inactive`],symbols:/[=><!~?:&|+\-/^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,newline:/[\r\n]/,digits:/\d+(_+\d+)*/,idtf:/[\p{L}0-9_]+/u,ignoreCase:!0,unicode:!0,tokenizer:{root:[[/[{}[\]()]/,`@bracket`],[/[,.:]/,`delimiter`],{include:`@numbers`},{include:`common`}],common:[{include:`@whitespace`},[/[<>~-]/,`operators`],[/\*/,`keyword.wildcard`],[/("[^"\\]*(?:\\.[^"\\]*)*")(\s+)(@idtf(?:\.@idtf*)*)/,[`string`,``,`keyword`]],[/"([^"\\]|\\.)*$/,``],[/'([^'\\]|\\.)*$/,``],[/"/,`string`,`@string_double`],[/'/,`string`,`@string_single`],[/`/,`string`,`@string_backtick`],[/(@idtf)(\s+)(@idtf(?:\.@idtf)*)/,{cases:{"$1@decls":[`keyword`,``,`identifier`],"$1==not":{cases:{"$3==null":[`keyword`,``,`keyword`],"@default":[`identifier`,``,`identifier`]}},"@default":[`identifier`,``,`keyword`]}}],[/@idtf/,{cases:{"@dataTypes":`keyword`,"@decls":`keyword`,"@settings":`keyword`,"@default":`identifier`}}]],numbers:[[/0[xX][0-9a-fA-F]*/,`number`],[/[$][+-]*\d*(\.\d*)?/,`number`],[/((\d+(\.\d*)?)|(\.\d+))([eE][-+]?\d+)?/,`number`],[/#([0-9A-F]{3}){1,2}/,`number.hex`]],string_double:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],string_single:[[/[^\\']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/'/,`string`,`@pop`]],string_backtick:[[/[^\\`$]+/,`string`],[/@escapes/,`string.escape`],[/`/,`string`,`@pop`]],endTripleQuotesString:[[/\\'/,`string`],[/(.*[^\\])?(\\\\)*'''/,`string`,`@popall`],[/.*$/,`string`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`],[/'''(.*[^\\])?(\\\\)*'''/,`string`],[/'''.*$/,`string`,`@endTripleQuotesString`]],comment:[[/[^/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[/*]/,`comment`]]}};function DC(e,t){let n=this.token.flatStream(e),{index:r,token:i}=this.container.token(e,t),a=r===void 0?-1:hc(n,e=>!e.isInvalid,r);if(a===-1)return[this.parse.ast(e)];let o=n[a].start,s=this.parse.ast(e),c=[s];for(;;){let e=Rd(s).find(e=>TS(o,e));if(e===void 0||e instanceof el)break;c.push(e),s=e}if(i?.kind===_.COLON)return c;for(;c.length>0;){let n=!1,r=h(c);if(r instanceof R){let i=this.getSource(e)||``;for(let e=r.end;e<t;e+=1)i[e]===`
12
+ `&&(c.pop(),n=!0)}else r instanceof L||r instanceof cd?this.container.token(e,t).token!==r.op&&(c.pop(),n=!0):r instanceof B?r.listCloseBracket&&r.end<=t&&(c.pop(),n=!0):r instanceof dd?r.tupleCloseParen&&r.end<=t&&(c.pop(),n=!0):r instanceof fd?r.end<=t&&(c.pop(),n=!0):r instanceof z?r.blockCloseBrace&&r.end<=t&&(c.pop(),n=!0):r instanceof sd||r.end<t&&(c.pop(),n=!0);if(n){let e=h(c);e instanceof F&&e.end<=t&&c.pop()}if(!n)break}return c}function OC(e,t){let n=this.token.flatStream(e).findIndex(e=>e.start>=t);return n===void 0||n<=0?{token:void 0,index:void 0}:{token:this.token.flatStream(e)[n-1],index:n-1}}function kC(e,t){let n=this.container.stack(e,t);for(let e=n.length-1;e>=0;--e)if(n[e]instanceof F)return n[e];return this.parse.ast(e)}function AC(e,n){let r=this.container.element(e,n);if(!r)return;let i=this.nodeSymbol(r);if(i.hasValue(t))return;let a=this.symbolMembers(i.getValue());if(!a.hasValue(t))return a.getValue()}let Q=function(e){return e[e.TABLE=0]=`TABLE`,e[e.ENUM=1]=`ENUM`,e[e.TABLEGROUP=2]=`TABLEGROUP`,e[e.INDEXES=3]=`INDEXES`,e[e.NOTE=4]=`NOTE`,e[e.REF=5]=`REF`,e[e.PROJECT=6]=`PROJECT`,e[e.CUSTOM=7]=`CUSTOM`,e[e.TOPLEVEL=8]=`TOPLEVEL`,e[e.TABLEPARTIAL=9]=`TABLEPARTIAL`,e[e.CHECKS=10]=`CHECKS`,e[e.RECORDS=11]=`RECORDS`,e[e.DIAGRAMVIEW=12]=`DIAGRAMVIEW`,e}({});function jC(e,t){let n=this.container.element(e,t);if(n instanceof P)return Q.TOPLEVEL;switch(n.type?.value.toLowerCase()){case`table`:return Q.TABLE;case`enum`:return Q.ENUM;case`ref`:return Q.REF;case`tablegroup`:return Q.TABLEGROUP;case`indexes`:return Q.INDEXES;case`note`:return Q.NOTE;case`project`:return Q.PROJECT;case`tablepartial`:return Q.TABLEPARTIAL;case`checks`:return Q.CHECKS;case`records`:return Q.RECORDS;case`diagramview`:return Q.DIAGRAMVIEW;default:return Q.CUSTOM}}function MC(e,t){let r=t.originalSymbol;if(r.filepath.equals(e))return n.create(PC(this,r));let i=[...this.symbolUses(r).getValue(),...this.symbolAliases(r).getValue()].filter(t=>t.filepath.equals(e));for(let e of i){let t=e.name;if(!t)continue;if(t!==r.name)return n.create({schema:``,name:t});let i=NC(this,e);if(i.length>0)return n.create({schema:i.join(`.`),name:t});let a=PC(this,r);return a?n.create({...a,name:t}):n.create({schema:v,name:t})}return n.create(PC(this,r))}function NC(e,t){let n=[],r=t;for(;r;){let t=e.symbolParent(r).find(e=>e instanceof Lu&&e.isKind(j.Schema));if(!t||t.isPublicSchema())break;n.unshift(t.name??``),r=t}return n}function PC(e,n){if(!n.declaration)return n.name?{schema:v,name:n.name}:void 0;let r=e.nodeFullname(n.declaration).getFiltered(t);if(!r||r.length===0)return n.name?{schema:v,name:n.name}:void 0;let i=r[r.length-1];return{schema:r.length>1?r.slice(0,-1).join(`.`):v,name:i}}function FC(e){let{ast:t}=this.parseFile(e).getValue(),n=[],r=new Set;for(let i of t.body){if(!(i instanceof id)||!i.importPath)continue;let t=Ml(e,i.importPath.value);!t||r.has(t.absolute)||(r.add(t.absolute),n.push(t))}return n}function IC(e,t){let n=new Set,r=[],i=[...t],a=0;for(;a<i.length;){let t=i[a++],o=t.intern();if(!n.has(o)){n.add(o),r.push(t);for(let n of e.fileDependencies(t))i.push(n)}}return r}function LC(e){return IC(this,e?[e]:this.layout.getEntrypoints())}function RC(e){return this.bindFile(e),this.parseFile(e).getValue().ast}function zC(e){return this.interpretFile(e).getErrors()}function BC(e){return this.interpretFile(e).getWarnings()}function VC(e){return this.parseFile(e).getValue().tokens}function HC(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.interpretSymbol(r,e).getFiltered(t)}function UC(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.symbolMembers(r).getFiltered(t)}function WC(e){return this.parseFile(e).getValue().tokens.flatMap(e=>[...e.leadingInvalid,e,...e.trailingInvalid])}function GC(e){return this.parseFile(e).getValue().tokens.filter(dl)}function KC(e,t){let n=this.parse.ast(e);for(;;){let e=Rd(n).find(e=>TS(t,e));if(e===void 0)return n;if(e instanceof el)return e;n=e}}function qC(e){let t=this.validateFile(e),r=this.parseFile(e).getValue().ast,i=this.bindNode(r).map(()=>void 0);return new n(void 0,[...t.getErrors(),...i.getErrors()],[...t.getWarnings(),...i.getWarnings()])}function JC(){let e=Cy(this,this.layout.getEntrypoints()),t=new Map;for(let n of e){let e=this.bindFile(n);t.set(n.absolute,e)}return t}function YC(e){let{ast:r}=this.parseFile(e).getValue(),i=this.nodeSymbol(r).getFiltered(t);return i?this.interpretSymbol(i,e).map(e=>e===t||!e?void 0:e):n.create(void 0)}function XC(){let e=[],r=[],i=new Set,a=[];for(let e of this.layout.getEntrypoints())for(let t of this.reachableFiles(e)){let e=t.intern();i.has(e)||(i.add(e),a.push(t))}let o=new Map;for(let i of a){let a=this.parseFile(i);e.push(...a.getErrors()),r.push(...a.getWarnings());let s=this.bindFile(i);e.push(...s.getErrors()),r.push(...s.getWarnings());let{ast:c}=a.getValue(),l=this.nodeSymbol(c).getFiltered(t),u=l?this.interpretSymbol(l,i):n.create(t),d=u.getFiltered(t);d&&o.set(i.absolute,d),e.push(...u.getErrors()),r.push(...u.getWarnings())}let s={};for(let[e,t]of o)s[e]=t;return new n({files:s},e,r)}function ZC(e){return this.parseFile(e).chain(({ast:e})=>this.validateNode(e).map(()=>void 0))}var QC=class{constructor(e,t){this.start={offset:0,line:0,column:0},this.current={offset:0,line:0,column:0},this.tokens=[],this.errors=[],this.text=e,this.filepath=t}isAtEnd(){return this.current.offset>=this.text.length}advance(){let e=this.peek();return this.current={...this.current},e===`
13
+ `?(this.current.line+=1,this.current.column=0):this.current.column+=1,this.current.offset+=1,e}peek(e=0){if(!(this.current.offset+e>=this.text.length))return this.text[this.current.offset+e]}check(e){for(let t=0;t<e.length;t+=1)if(e[t]!==this.peek(t))return!1;return!0}match(e){return this.check(e)?(e.split(``).forEach(()=>this.advance()),!0):!1}addToken(e,t=!1){this.tokens.push(this.createToken(e,t))}createToken(e,t=!1){return el.create(e,this.filepath,this.start,this.current,this.text.substring(this.start.offset,this.current.offset),t)}lex(){return this.scanTokens(),this.tokens.push(el.create(_.EOF,this.filepath,this.start,this.current,``,!1)),this.gatherTrivia(),this.gatherInvalid(),new n(this.tokens,this.errors)}scanTokens(){for(;!this.isAtEnd();){let e=this.advance();switch(e){case` `:this.addToken(_.SPACE);break;case`\r`:break;case`
14
+ `:this.addToken(_.NEWLINE);break;case` `:this.addToken(_.TAB);break;case`,`:this.addToken(_.COMMA);break;case`(`:this.addToken(_.LPAREN);break;case`)`:this.addToken(_.RPAREN);break;case`[`:this.addToken(_.LBRACKET);break;case`]`:this.addToken(_.RBRACKET);break;case`{`:this.addToken(_.LBRACE);break;case`}`:this.addToken(_.RBRACE);break;case`;`:this.addToken(_.SEMICOLON);break;case`:`:this.addToken(_.COLON);break;case`'`:this.match(`''`)?this.multilineStringLiteral():this.singleLineStringLiteral();break;case`"`:this.quotedVariable();break;case"`":this.functionExpression();break;case`#`:this.colorLiteral();break;case`/`:this.match(`/`)?this.singleLineComment():this.match(`*`)?this.multilineComment():this.operator(e);break;case`*`:this.addToken(_.WILDCARD);break;default:if(Qc(e)){this.operator(e);break}if(zl(e)){this.identifier();break}if(Bl(e)){this.numericLiteralOrIdentifier();break}this.addToken(_.OP,!0),this.errors.push(new b(y.UNKNOWN_SYMBOL,`Unexpected token '${e}'`,this.createToken(_.OP,!0)));break}this.start={...this.current}}}gatherTrivia(){let e=!0,t=[],n,r=[];for(let i of this.tokens)Zc(i)?(t.push(i),i.kind===_.NEWLINE&&n&&(n.trailingTrivia=t,e=!0,n=void 0,t=[])):(e?i.leadingTrivia=t:n.trailingTrivia=t,r.push(i),t=[],n=i,e=!1);this.tokens=r}gatherInvalid(){let e,t=[],n=[];for(e=0;e<this.tokens.length&&dl(this.tokens[e]);e+=1)n.push(this.tokens[e]);let r=this.tokens[e];for(r.leadingInvalid=[...n,...r.leadingInvalid];e<this.tokens.length;e+=1){let n=this.tokens[e];dl(n)?r.trailingInvalid.push(n):(r=n,t.push(n))}this.tokens=t}consumeUntil(e,t,{allowNewline:n,allowEof:r,raw:i,consumeStopSequence:a=!0}){let o=``;for(;!this.isAtEnd()&&(n||!this.check(`
15
+ `))&&!this.check(t);)this.peek()===`\\`&&!i?(this.advance(),o+=this.escapedString()):o+=this.advance();if(this.isAtEnd()&&!r){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new b(y.UNEXPECTED_EOF,`EOF reached while parsing`,t));return}if(this.check(`
16
+ `)&&!n){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new b(y.UNEXPECTED_NEWLINE,`Invalid newline encountered while parsing`,t));return}a&&this.match(t),this.tokens.push(el.create(e,this.filepath,this.start,this.current,o,!1))}singleLineStringLiteral(){this.consumeUntil(_.STRING_LITERAL,`'`,{allowNewline:!1,allowEof:!1,raw:!1})}multilineStringLiteral(){this.consumeUntil(_.STRING_LITERAL,`'''`,{allowNewline:!0,allowEof:!1,raw:!1})}functionExpression(){this.consumeUntil(_.FUNCTION_EXPRESSION,"`",{allowNewline:!0,allowEof:!1,raw:!0})}quotedVariable(){this.consumeUntil(_.QUOTED_STRING,`"`,{allowNewline:!1,allowEof:!1,raw:!1})}singleLineComment(){this.consumeUntil(_.SINGLE_LINE_COMMENT,`
17
+ `,{allowNewline:!0,allowEof:!0,raw:!0,consumeStopSequence:!1})}multilineComment(){this.consumeUntil(_.MULTILINE_COMMENT,`*/`,{allowNewline:!0,allowEof:!1,raw:!0})}identifier(){for(;!this.isAtEnd()&&Hl(this.peek());)this.advance();this.addToken(_.IDENTIFIER)}operator(e){switch(e){case`<`:[`>`,`=`].includes(this.peek())&&this.advance();break;case`>`:this.peek()===`=`&&this.advance();break;case`=`:this.peek()===`=`&&this.advance();break;case`!`:this.peek()===`=`&&this.advance();break;default:break}this.addToken(_.OP)}numericLiteralOrIdentifier(){let e=0;if(this.isAtEnd())return this.addToken(_.NUMERIC_LITERAL);for(;!this.isAtEnd();){let t=this.check(`.`);if(e+=t?1:0,e>1)break;if(this.check(`e`)||this.check(`E`)){let e=this.peek(1),t=e===`+`||e===`-`,n=t?this.peek(2):e;if(n&&Bl(n)){for(this.advance(),t&&this.advance();!this.isAtEnd()&&Bl(this.peek());)this.advance();if(this.isAtEnd()||!Hl(this.peek()))return this.addToken(_.NUMERIC_LITERAL);break}break}if(!t&&this.current.offset===this.text.length-1)return this.advance(),this.addToken(_.NUMERIC_LITERAL);if(!t&&!Hl(this.peek()))return this.addToken(_.NUMERIC_LITERAL);if(!t&&!Bl(this.peek()))break;this.advance()}if(e>0){for(;!this.isAtEnd()&&(this.check(`.`)||Hl(this.peek()));)this.advance();let e=this.createToken(_.NUMERIC_LITERAL,!0);this.tokens.push(e),this.errors.push(new b(y.UNKNOWN_TOKEN,`Invalid number`,e))}else{for(;!this.isAtEnd()&&Hl(this.peek());)this.advance();let e=this.createToken(_.IDENTIFIER,!1);this.tokens.push(e)}}colorLiteral(){for(;!this.isAtEnd()&&Hl(this.peek());)this.advance();this.addToken(_.COLOR_LITERAL)}escapedString(){let e={column:this.current.column-1,offset:this.current.offset-1,line:this.current.line};if(this.isAtEnd())return`\\`;switch(this.advance()){case`\r`:return this.check(`
18
18
  `)&&this.advance(),``;case`
19
19
  `:return``;case`t`:return` `;case`n`:return`
20
- `;case`\\`:return`\\`;case`r`:return`\r`;case`'`:return`'`;case`"`:return`"`;case"`":return"`";case`0`:return`\0`;case`b`:return`\b`;case`v`:return`\v`;case`f`:return`\f`;case` `:return`\\ `;case`u`:{let t=``;for(let n=0;n<=3;n+=1){if(this.isAtEnd()||!Bl(this.peek()))return this.errors.push(new x(b.INVALID_ESCAPE_SEQUENCE,`Invalid unicode escape sequence '\\u${t}', only unicode escape sequences of the form '\\uHHHH' where H is a hexadecimal number are allowed`,Qc.create(y.STRING_LITERAL,this.filepath,e,this.current,`\\u${t}`,!0))),`\\u${t}`;t+=this.advance()}return String.fromCharCode(parseInt(t,16))}default:return this.text[this.current.offset-1]}}};let QC=function(e){return e[e.ListExpression=0]=`ListExpression`,e[e.GroupExpression=1]=`GroupExpression`,e[e.BlockExpression=2]=`BlockExpression`,e}({});var $C=class{constructor(){this.stack=[],this.numberOfNestedLParens=0,this.numberOfNestedLBrackets=0,this.numberOfNestedLBraces=0}push(e){this.stack.push(e),e===QC.ListExpression&&(this.numberOfNestedLBrackets+=1),e===QC.GroupExpression&&(this.numberOfNestedLParens+=1),e===QC.BlockExpression&&(this.numberOfNestedLBraces+=1)}pop(){let e=this.stack.pop();return e===QC.ListExpression&&--this.numberOfNestedLBrackets,e===QC.GroupExpression&&--this.numberOfNestedLParens,e===QC.BlockExpression&&--this.numberOfNestedLBraces,e}top(){return _(this.stack)}isWithinGroupExpressionContext(){return this.numberOfNestedLParens>0}isWithinListExpressionContext(){return this.numberOfNestedLBrackets>0}isWithinBlockExpressionContext(){return this.numberOfNestedLBraces>0}withContextDo(e,t){return()=>{this.push(e);try{return t()}finally{this.pop()}}}findHandlerContext(e,t){if(!(this.numberOfNestedLBraces<=0&&this.numberOfNestedLBrackets<=0&&this.numberOfNestedLParens<=0))for(let n=t;n<e.length-1;n+=1)switch(e[n].kind){case y.COMMA:if(this.isWithinGroupExpressionContext()||this.isWithinListExpressionContext())return[...this.stack].reverse().find(e=>[QC.GroupExpression,QC.ListExpression].includes(e));break;case y.RPAREN:if(this.isWithinGroupExpressionContext())return QC.GroupExpression;break;case y.RBRACE:if(this.isWithinBlockExpressionContext())return QC.BlockExpression;break;case y.RBRACKET:if(this.isWithinListExpressionContext())return QC.ListExpression;break;default:break}}},ew=class{constructor(e,t){this.generator=e,this.filepath=t}create(e,t){return new e(t,this.generator.nextId(),this.filepath)}},$=class{constructor(e,t,n){this.token=e,this.partialNode=t,this.handlerContext=n}},tw=class{constructor(e,t,n,r){this.current=0,this.errors=[],this.contextStack=new $C,this.useSpecifierList=this.contextStack.withContextDo(QC.BlockExpression,()=>{let e={specifiers:[]},t=()=>this.nodeFactory.create(ad,e);try{this.consume(`Expect an opening brace '{'`,y.LBRACE),e.openBrace=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeUseSpecifierList()}for(;!this.isAtEnd()&&!this.check(y.RBRACE);){try{e.specifiers.push(this.useSpecifier())}catch(n){if(!(n instanceof $))throw n;if(n.partialNode instanceof id&&e.specifiers.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeUseSpecifierList()}if(this.check(y.IDENTIFIER)&&sl(this.peek()))break;!$c(this.previous())&&!this.check(y.RBRACE)&&this.logError(this.peek(),b.MISSING_SPACES,`Expect a newline between use specifiers`)}try{this.consume(`Expect a closing brace '}'`,y.RBRACE),e.closeBrace=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeUseSpecifierList()}return t()}),this.synchronizeUseSpecifierList=()=>{if(!this.check(y.RBRACE))for(H(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(y.RBRACE)||this.check(y.STRING_LITERAL)||this.check(y.IDENTIFIER)&&sl(e)||el(this.previous(),e))break;H(e),this.advance()}},this.synchronizeProgram=()=>{let e=this.peek();e.kind===y.EOF?this.logError(e,b.UNEXPECTED_EOF,`Unexpected EOF`):H(this.advance())},this.synchronizeElementDeclarationName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(al(e)||this.check(y.COLON,y.LBRACE,y.LBRACKET))break;H(e),this.advance()}},this.synchronizeElementDeclarationAlias=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(y.COLON,y.LBRACE,y.LBRACKET))break;H(e),this.advance()}},this.blockExpression=this.contextStack.withContextDo(QC.BlockExpression,()=>{let e={body:[]},t=()=>this.nodeFactory.create(z,e);try{this.consume(`Expect an opening brace '{'`,y.LBRACE),e.blockOpenBrace=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeBlock()}for(;!this.isAtEnd()&&!this.check(y.RBRACE);)try{e.body.push(this.canBeField()?this.fieldDeclaration():this.expression())}catch(n){if(!(n instanceof $))throw n;if(e.body.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeBlock()}try{this.consume(`Expect a closing brace '}'`,y.RBRACE),e.blockCloseBrace=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeBlock()}return t()}),this.synchronizeBlock=()=>{if(!this.check(y.RBRACE))for(H(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(y.RBRACE)||el(this.previous(),e))break;H(e),this.advance()}},this.tupleExpression=this.contextStack.withContextDo(QC.GroupExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(fd,{groupOpenParen:e.tupleOpenParen,groupCloseParen:e.tupleCloseParen,expression:e.elementList[0]}),n=()=>this.nodeFactory.create(ud,e);try{this.consume(`Expect an opening parenthesis '('`,y.LPAREN),e.tupleOpenParen=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,n(),e.handlerContext);this.synchronizeTuple()}if(!this.isAtEnd()&&!this.check(y.RPAREN))try{e.elementList.push(this.normalExpression())}catch(n){if(!(n instanceof $))throw n;if(e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeTuple()}for(;!this.isAtEnd()&&!this.check(y.RPAREN);)try{this.consume(`Expect a comma ','`,y.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.normalExpression())}catch(t){if(!(t instanceof $))throw t;if(t.partialNode instanceof N&&e.elementList.push(t.partialNode),!this.canHandle(t))throw new $(t.token,n(),t.handlerContext);this.synchronizeTuple()}try{this.consume(`Expect a closing parenthesis ')'`,y.RPAREN),e.tupleCloseParen=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,n(),e.handlerContext);this.synchronizeTuple()}return e.elementList.length===1?t():n()}),this.synchronizeTuple=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(y.RPAREN,y.COMMA))break;H(e),this.advance()}},this.listExpression=this.contextStack.withContextDo(QC.ListExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(B,e);try{this.consume(`Expect an opening bracket '['`,y.LBRACKET),e.listOpenBracket=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeList()}if(!this.isAtEnd()&&!this.check(y.RBRACKET))try{e.elementList.push(this.attribute())}catch(n){if(!(n instanceof $))throw n;if(e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeList()}for(;!this.isAtEnd()&&!this.check(y.RBRACKET);)try{this.consume(`Expect a comma ','`,y.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.attribute())}catch(n){if(!(n instanceof $))throw n;if(n.partialNode instanceof N&&e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeList()}try{this.consume(`Expect a closing bracket ']'`,y.RBRACKET),e.listCloseBracket=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeList()}return t()}),this.synchronizeList=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(y.COMMA,y.RBRACKET))break;H(e),this.advance()}},this.synchronizeAttributeName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(y.COMMA,y.RBRACKET,y.COLON))break;H(e),this.advance()}},this.synchronizeAttributeValue=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(y.COMMA,y.RBRACKET))break;H(e),this.advance()}},this.source=e,this.tokens=t,this.nodeFactory=new ew(n,r),this.filepath=r}isAtEnd(){return this.current>=this.tokens.length||this.tokens[this.current].kind===y.EOF}advance(){return this.isAtEnd()?_(this.tokens):this.tokens[this.current++]}peek(e=0){return e+this.current>=this.tokens.length?_(this.tokens):this.tokens[this.current+e]}match(...e){let t=this.check(...e);return t&&this.advance(),t}check(...e){let t=this.peek();return e.includes(t.kind)}previous(){return this.tokens[this.current-1]}canHandle(e){return e.handlerContext===void 0||e.handlerContext===this.contextStack.top()}consume(e,...t){if(!this.match(...t))throw this.logError(this.peek(),b.UNEXPECTED_TOKEN,e),new $(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}discardUntil(e,...t){if(this.isAtEnd()||!this.check(...t)){for(H(this.peek()),this.logError(this.advance(),b.UNEXPECTED_TOKEN,e);!this.isAtEnd()&&!this.check(...t);)H(this.advance());return!this.isAtEnd()}return!0}gatherInvalid(){let e=[],t=[],n,r=0;for(;r<this.tokens.length&&this.tokens[r].isInvalid;r+=1)t.push(this.tokens[r]);for(n=this.tokens[r],n.leadingInvalid=[...t,...n.leadingInvalid],e.push(n),r+=1;r<this.tokens.length;r+=1){let t=this.tokens[r];t.isInvalid?n.trailingInvalid.push(t):(n=t,e.push(n))}this.tokens=e}parse(){let e=this.program(),t=this.advance(),r=this.nodeFactory.create(nd,{body:e,eof:t,source:this.source});return this.gatherInvalid(),this.assignParents(r),new n({ast:r,tokens:this.tokens},this.errors)}assignParents(e){Ld(e).forEach(t=>{t instanceof N&&(t.parentNode=e,this.assignParents(t))})}program(){let e=[];for(;!this.isAtEnd();)if(ol(this.peek())||cl(this.peek()))try{e.push(this.useDeclaration())}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof rd&&e.push(t.partialNode),this.synchronizeProgram()}else try{e.push(this.elementDeclaration())}catch(t){if(!(t instanceof $))throw t;e.push(t.partialNode),this.synchronizeProgram()}return e}useDeclaration(){let e={},t=()=>this.nodeFactory.create(rd,e);if(this.advance(),e.useKeyword=this.previous(),this.peek().kind===y.WILDCARD)this.advance(),e.specifiers=this.nodeFactory.create(md,{token:this.previous()});else try{e.specifiers=this.useSpecifierList()}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof ad&&(e.specifiers=t.partialNode)}let n=e.specifiers instanceof md?`'*'`:`specifier list`;return sl(this.peek())?e.fromKeyword=this.advance():this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect 'from' after ${n}`),this.match(y.STRING_LITERAL)?e.importPath=this.previous():this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect a string literal path`),t()}useSpecifier(){let e={},t=()=>this.nodeFactory.create(id,e);try{this.consume(`Expect an import kind specifier (e.g. table, enum)`,y.IDENTIFIER),e.importKind=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(this.check(y.IDENTIFIER,y.QUOTED_STRING))try{e.name=this.normalExpression()}catch(n){throw n instanceof $?(n.partialNode instanceof N&&(e.name=n.partialNode),new $(n.token,t(),n.handlerContext)):n}else e.importKind&&this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect an element name`);if(al(this.peek())){e.asKeyword=this.advance();try{if(!this.check(y.IDENTIFIER,y.QUOTED_STRING))throw this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect an alias name after 'as'`),new $(this.peek(),t(),this.contextStack.findHandlerContext(this.tokens,this.current));e.alias=this.normalExpression()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext)}}return t()}elementDeclaration(){let e={},t=()=>this.nodeFactory.create(F,e);try{this.consume(`Expect an identifier`,y.IDENTIFIER),e.type=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(!this.check(y.COLON,y.LBRACE,y.LBRACKET))try{e.name=this.normalExpression()}catch(n){if(!(n instanceof $))throw n;if(e.name=n.partialNode,!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeElementDeclarationName()}if(al(this.peek()))if(e.as=this.advance(),this.check(y.COLON,y.LBRACE,y.LBRACKET))this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect an alias`);else try{e.alias=this.normalExpression()}catch(n){if(!(n instanceof $))throw n;if(e.alias=n.partialNode,!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeElementDeclarationAlias()}try{e.attributeList=this.check(y.LBRACKET)?this.listExpression():void 0}catch(n){throw n instanceof $?(e.attributeList=n.partialNode,new $(n.token,t(),n.handlerContext)):n}if(!this.discardUntil(`Expect an opening brace '{' or a colon ':'`,y.LBRACE,y.COLON))return t();try{if(this.match(y.COLON)){e.bodyColon=this.previous();let t=this.expression();t instanceof F?(H(t),this.logError(t,b.UNEXPECTED_ELEMENT_DECLARATION,`An element's simple body must not be an element declaration`)):e.body=t}else e.body=this.blockExpression()}catch(n){throw n instanceof $?(e.body=n.partialNode,new $(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(F,e)}fieldDeclaration(){let e={},t=()=>this.nodeFactory.create(F,e);try{this.consume(`Expect an identifier`,y.IDENTIFIER),e.type=this.previous()}catch(n){throw n instanceof $?(e.type=n.partialNode,new $(n.token,t(),n.handlerContext)):n}try{this.consume(`Expect a colon ':'`,y.COLON),e.bodyColon=this.previous()}catch(n){throw n instanceof $?(e.bodyColon=n.partialNode,new $(n.token,t(),n.handlerContext)):n}try{let t=this.expression();t instanceof F?this.errors.push(new x(b.INVALID_ELEMENT_IN_SIMPLE_BODY,`Simple body cannot be an element declaration`,t)):e.body=t}catch(n){throw n instanceof $?(e.body=n.partialNode,new $(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(F,e)}expression(){let e={args:[]},t=()=>Nd(e.callee,e.args,this.nodeFactory)??this.nodeFactory.create(R,e);try{e.callee=this.commaExpression()}catch(n){throw n instanceof $?(e.callee=n.partialNode,new $(n.token,t(),n.handlerContext)):n}if(this.shouldStopFunctionApplication())return t();let n=e.callee;for(;!this.shouldStopFunctionApplication();){tl(this.previous())||this.logError(n,b.MISSING_SPACES,`Expect a following space`);try{n=this.commaExpression(),e.args.push(n)}catch(r){throw r instanceof $?(n=r.partialNode,e.args.push(n),new $(r.token,t(),r.handlerContext)):r}}return t()}shouldStopFunctionApplication(){if(this.isAtEnd()||$c(this.previous()))return!0;let e=this.peek().kind;return[y.RBRACE,y.RBRACKET,y.RPAREN,y.COMMA,y.COLON].includes(e)}commaExpression(){let e=this.check(y.COMMA)?this.nodeFactory.create(_d,{prevToken:this.previous()}):this.normalExpression();if(!this.check(y.COMMA))return e;let t={elementList:[e],commaList:[]};do{if(t.commaList.push(this.advance()),this.shouldStopCommaExpression()){t.elementList.push(this.nodeFactory.create(_d,{prevToken:this.previous()}));break}if(this.check(y.COMMA)){t.elementList.push(this.nodeFactory.create(_d,{prevToken:this.previous()}));continue}try{let e=this.normalExpression();t.elementList.push(e)}catch(e){throw e instanceof $?(e.partialNode&&t.elementList.push(e.partialNode),new $(e.token,this.nodeFactory.create(dd,t),e.handlerContext)):e}}while(!this.shouldStopCommaExpression()&&this.check(y.COMMA));return this.nodeFactory.create(dd,t)}shouldStopCommaExpression(){if(this.isAtEnd()||$c(this.previous()))return!0;let e=this.peek().kind;return[y.RBRACE,y.LBRACE,y.RBRACKET,y.LBRACKET,y.RPAREN,y.LPAREN,y.COLON].includes(e)}normalExpression(){return this.expression_bp(0)}expression_bp(e){let t=this.leftExpression_bp();for(;!this.isAtEnd();){let n=this.peek();if(n.kind===y.LPAREN){let{left:r}=sw(n);if(r<e||el(this.previous(),n)&&!this.contextStack.isWithinGroupExpressionContext()&&!this.contextStack.isWithinListExpressionContext())break;try{t=this.nodeFactory.create(V,{callee:t,argumentList:this.tupleExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(V,{callee:t,argumentList:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if(n.kind===y.LBRACKET){if(tl(this.previous()))break;try{t=this.nodeFactory.create(vd,{expression:t,indexer:this.listExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(vd,{expression:t,indexer:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if(Zc(n)){let r=n,i=sw(r);if(i.left!==null){if(i.left<=e)break;this.advance(),t=this.nodeFactory.create(cd,{expression:t,op:r})}else{let n=rw(r);if(n.left===null||n.left<=e)break;this.advance();try{t=this.nodeFactory.create(sd,{leftExpression:t,op:r,rightExpression:r.value===`.`?this.extractOperand():this.expression_bp(n.right)})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(sd,{leftExpression:t,op:r,rightExpression:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}}else break}return t}leftExpression_bp(){let e;if(Zc(this.peek())){let t={};t.op=this.peek();let n=aw(t.op);if(n.right===null)throw this.logError(t.op,b.UNKNOWN_PREFIX_OP,`Unexpected '${t.op.value}' in an expression`),new $(t.op,this.nodeFactory.create(_d,{prevToken:t.op}),this.contextStack.findHandlerContext(this.tokens,this.current));this.advance();try{t.expression=this.expression_bp(n.right)}catch(e){throw e instanceof $?(t.expression=e.partialNode,new $(e.token,this.nodeFactory.create(L,t),e.handlerContext)):e}e=this.nodeFactory.create(L,t)}else if(e=this.extractOperand(),e instanceof _d)throw new $(this.peek(),this.nodeFactory.create(_d,{prevToken:this.peek()}),this.contextStack.findHandlerContext(this.tokens,this.current));return e}extractOperand(){return this.check(y.WILDCARD)?this.wildcardExpression():this.check(y.NUMERIC_LITERAL,y.STRING_LITERAL,y.COLOR_LITERAL,y.QUOTED_STRING,y.IDENTIFIER)?this.primaryExpression():this.check(y.FUNCTION_EXPRESSION)?this.functionExpression():this.check(y.LBRACKET)?this.listExpression():this.check(y.LBRACE)?this.blockExpression():this.check(y.LPAREN)?this.tupleExpression():(this.peek().kind===y.EOF?this.logError(this.peek(),b.UNEXPECTED_EOF,`Unexpected EOF`):this.logError(this.peek(),b.INVALID_OPERAND,`Invalid start of operand "${this.peek().value}"`),this.nodeFactory.create(_d,{prevToken:this.previous()}))}functionExpression(){let e={};try{this.consume(`Expect a function expression`,y.FUNCTION_EXPRESSION),e.value=this.previous()}catch(t){throw t instanceof $?new $(t.token,this.nodeFactory.create(ld,e),t.handlerContext):t}return this.nodeFactory.create(ld,e)}wildcardExpression(){return this.advance(),this.nodeFactory.create(md,{token:this.previous()})}canBeField(){return this.peek().kind===y.IDENTIFIER&&this.peek(1).kind===y.COLON}primaryExpression(){if(this.match(y.COLOR_LITERAL,y.STRING_LITERAL,y.NUMERIC_LITERAL))return this.nodeFactory.create(gd,{expression:this.nodeFactory.create(pd,{literal:this.previous()})});if(this.match(y.QUOTED_STRING,y.IDENTIFIER))return this.nodeFactory.create(gd,{expression:this.nodeFactory.create(hd,{variable:this.previous()})});throw this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect a variable or literal`),new $(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}attribute(){let e={};if(this.check(y.COLON,y.RBRACKET,y.COMMA)){let t=this.peek();this.logError(t,b.EMPTY_ATTRIBUTE_NAME,`Expect a non-empty attribute name`),e.name=this.nodeFactory.create(od,{identifiers:[]})}else try{e.name=this.attributeName()}catch(t){if(!(t instanceof $))throw t;if(e.name=t.partialNode,!this.canHandle(t))throw new $(t.token,this.nodeFactory.create(I,e),t.handlerContext);this.synchronizeAttributeName()}return this.match(y.COLON)&&(e.colon=this.previous(),e.value=this.attributeValue()),this.nodeFactory.create(I,e)}attributeValue(){let e;try{e=this.peek().kind===y.IDENTIFIER&&this.peek(1).kind===y.IDENTIFIER?this.attributeName():this.normalExpression()}catch(t){if(!(t instanceof $)||!this.canHandle(t))throw t;e=t.partialNode,this.synchronizeAttributeValue()}return e}attributeName(){let e=[];if(this.peek().kind!==y.IDENTIFIER)return this.primaryExpression();for(;!this.isAtEnd()&&!this.check(y.COLON,y.COMMA,y.RBRACKET);)try{this.consume(`Expect an identifier`,y.IDENTIFIER),e.push(this.previous())}catch(t){throw t instanceof $?new $(t.token,this.nodeFactory.create(od,{identifiers:e}),t.handlerContext):t}return this.nodeFactory.create(od,{identifiers:e})}logError(e,t,n){this.errors.push(new x(t,n,e))}},nw={"+":{left:9,right:10},"-":{left:9,right:10},"/":{left:11,right:12},"%":{left:11,right:12},"<":{left:7,right:8},"<=":{left:7,right:8},">":{left:7,right:8},">=":{left:7,right:8},"<>":{left:7,right:8},"=":{left:2,right:3},"==":{left:4,right:5},"!=":{left:4,right:5},".":{left:16,right:17}};function rw(e){return nw[e.value]||{left:null,right:null}}var iw={"+":{left:null,right:15},"-":{left:null,right:15},"<":{left:null,right:15},">":{left:null,right:15},"<>":{left:null,right:15},"!":{left:null,right:15},"~":{left:null,right:15}};function aw(e){return iw[e.value]||{left:null,right:null}}var ow={"(":{left:14,right:null}};function sw(e){return ow[e.value]||{left:null,right:null}}function cw(e){let t=this.getSource(e);return new ZC(t??``,e).lex().chain(n=>new tw(t??``,n,this.nodeIdGenerator,e).parse()).map(({ast:t,tokens:n})=>({ast:t,tokens:n,path:e}))}function lw(){let e=Sy(this,this.layout.getEntrypoints()),t=new Map;for(let n of e){let e=this.parseFile(n);t.set(n.absolute,e)}return t}function uw(e,n,r){let i;if(e instanceof Pu)i=e;else{let n=this.nodeSymbol(e).getFiltered(t);if(!(n instanceof Pu))return;i=n}let a=Array.isArray(n)?n:[n],o=this.symbolMembers(i).getFiltered(t);if(o)return o.find(e=>a.length&&!e.isKind(...a)?!1:e instanceof $u?Xv.visibleName(this,e)?.at(-1)===r:e.name===r)}function dw(e){let t=e.originalSymbol;return Cy(this).map(n=>n.filter(n=>n instanceof Qu&&n.originalSymbol===t&&n!==e))}function fw(){let e=new Map,n=new Map,r=this.parseProject();this.bindProject();let i=new Set,a=(t,n)=>{if(i.has(n))return;i.add(n);let r=t.intern(),a=e.get(r);a||(a=[],e.set(r,a)),a.push(n);let o=t.originalSymbol;if(o!==t){let t=o.intern(),r=e.get(t);r||(r=[],e.set(t,r)),r.push(n)}},o=e=>{for(let t of e.owners(this)){let r=t.intern(),i=n.get(r);i||(i=[],n.set(r,i)),i.push(e)}};for(let e of r.values()){let n=e.getValue().ast,r=e=>{if(w(e)){let n=Qy.call(this,e).getFiltered(t);n&&a(n,e);return}if(e instanceof ud&&T(e.parentNode)&&e.parentNode.rightExpression===e){let n=e.parentNode.leftExpression;if(n){let e=fu(n);if(e){let n=Qy.call(this,e).getFiltered(t);n&&a(n,e)}}}let n=this.nodeMetadata(e).getFiltered(t);n&&o(n);for(let t of Ld(e))t instanceof N&&r(t)};r(n)}let s=new Map,c=new Set;function l(e,n){let r=n.intern();if(c.has(r))return;c.add(r);let i=e.symbolMembers(n).getFiltered(t);if(i)for(let t of i){let r=t.intern(),i=s.get(r);i||(i=[],s.set(r,i)),i.push(n),t instanceof Fu&&t.isKind(M.Schema)&&l(e,t)}}for(let e of r.values()){let n=e.getValue().ast,r=this.nodeSymbol(n).getFiltered(t);r&&l(this,r)}return{references:e,metadata:n,parents:s}}function pw(e){return this.resolutionIndex().parents.get(e.intern())??[]}function mw(e){return this.resolutionIndex().references.get(e.intern())??[]}function hw(e){return this.resolutionIndex().metadata.get(e.intern())??[]}function gw(e){let t=e.originalSymbol;return Cy(this).map(n=>n.filter(n=>n instanceof $u&&n.originalSymbol===t&&n!==e))}function _w(e,t,n=!1){let r=n?t:[...t].sort((e,t)=>t.start-e.start),i=e;for(let{start:e,end:t,newText:n}of r)i=i.substring(0,e)+n+i.substring(t);return i}function vw(e){if(typeof e!=`string`)return{schema:e.schema??`public`,table:e.table};let t=xy(e);if(t.length===0)return{schema:Pl,table:``};if(t.length===1)return{schema:Pl,table:t[0]};if(t.length===2)return{schema:t[0],table:t[1]};let n=t[t.length-1];return{schema:t.slice(0,-1).join(`.`),table:n}}function yw(e,n,r,i){let a=e.parseFile(n).getValue().ast,o=e.nodeSymbol(a).getFiltered(t);if(!o)return null;if(r===`public`)return e.lookupMembers(o,M.Table,i)??null;let s=e.lookupMembers(o,M.Schema,r);return s?e.lookupMembers(s,M.Table,i)??null:null}function bw(e){return e.startsWith(`"`)&&e.endsWith(`"`)&&e.length>=2?e.slice(1,-1):e}function xw(e,t){if(!e||!(e instanceof F))return!1;let n=e.name;return n?t.substring(n.start,n.end).includes(`"`):!1}function Sw(e,t,n){let r=!gy(t),i=!gy(e),a=n||r,o=n||i;return{schema:e,table:t,formattedSchema:o?`"${e}"`:e,formattedTable:a?`"${t}"`:t,shouldQuoteSchema:o,shouldQuoteTable:a}}function Cw(e,t,n,r,i,a){return n===i&&r===a?!1:yw(e,t,i,a)!==null}function ww(e,t,n){let r=e.start-1;for(;r>=0&&/\s/.test(n[r]);)r--;if(r<0||n[r]!==`.`)return null;for(r--;r>=0&&/\s/.test(n[r]);)r--;if(r<0)return null;let i,a;if(n[r]===`"`){for(a=r+1,r--;r>=0&&n[r]!==`"`;)r--;if(r<0)return null;i=r}else{for(a=r+1;r>=0&&/[a-zA-Z0-9_]/.test(n[r]);)r--;i=r+1}return bw(n.substring(i,a))===t?{start:i,end:e.end}:null}function Tw(e){return e.schema===`public`?e.formattedTable:`${e.formattedSchema}.${e.formattedTable}`}function Ew(e,t,n,r,i){let a=[],o=new Set,s=Tw(r);for(let r of e){if(bw(i.substring(r.start,r.end))!==n)continue;let e=ww(r,t,i)??{start:r.start,end:r.end},c=`${e.start}-${e.end}`;o.has(c)||(o.add(c),a.push({start:e.start,end:e.end,newText:s}))}return a}function Dw(e,n,r){let i=vw(n),a=vw(r),o=i.schema,s=i.table,c=a.schema,l=a.table,u=yw(this,e,o,s);if(!u||u instanceof Qu||Cw(this,e,o,s,c,l))return new Map;if(u instanceof $u&&u.useSpecifierDeclaration instanceof id&&u.useSpecifierDeclaration.alias){let n=u.useSpecifierDeclaration;if(this.nodeAlias(n).getFiltered(t)===s)return Ow(this,e,n,u,c,l)}return kw(this,u,o,s,c,l)}function Ow(e,t,n,r,i,a){let o=e.getSource(t)??``;if(!n.alias)return new Map;let s=Sw(i,a,o.substring(n.alias.start,n.alias.end).includes(`"`)),c=[];c.push({start:n.alias.start,end:n.alias.end,newText:s.formattedTable});let l=e.symbolReferences(r);for(let e of l)e.filepath.absolute===t.absolute&&e!==n.alias&&c.push({start:e.start,end:e.end,newText:s.formattedTable});return new Map([[t.absolute,_w(o,c)]])}function kw(e,t,n,r,i,a){let o=t.originalSymbol,s=o.declaration;if(!s||!(s instanceof F))return new Map;let c=s.filepath;if(!c)return new Map;let l=Sw(i,a,xw(s,e.getSource(c)??``)),u=new Map,d=(e,t)=>{let n=e.absolute,r=u.get(n);r||(r={fp:e,edits:[]},u.set(n,r)),r.edits.push(t)},f=s.name;f&&d(c,{start:f.start,end:f.end,newText:Tw(l)});let p=e.symbolReferences(o);for(let t of p){if(t===f)continue;let i=t.filepath,a=e.getSource(i)??``;for(let e of Ew([t],n,r,l,a))d(i,e)}let m=new Map;for(let{fp:t,edits:n}of u.values()){let r=e.getSource(t)??``;m.set(t.absolute,_w(r,n))}return m}function Aw(e){let t=[],n=new ZC(e,Fl).lex();if(n.getErrors().length>0)return t;let i=new tw(e,n.getValue(),new td,Fl).parse();if(i.getErrors().length>0)return t;let a=i.getValue().ast;for(let e of a.declarations)if(e.isKind(r.DiagramView)){let n=e.name?O(e.name)??[]:[],r=n.length>0?n[n.length-1]:``;t.push({name:r,startIndex:e.start,endIndex:e.end})}return t}function jw(e,t){let n=t.map(e=>{let t=_y(e.name);return e.schemaName===`public`?t:`${_y(e.schemaName)}.${t}`});e.push(` Tables {`),n.forEach(t=>e.push(` ${t}`)),e.push(` }`)}function Mw(e,t){e.push(` TableGroups {`),t.forEach(t=>e.push(` ${_y(t.name)}`)),e.push(` }`)}function Nw(e,t){e.push(` Schemas {`),t.forEach(t=>e.push(` ${_y(t.name)}`)),e.push(` }`)}function Pw(e,t){e.push(` Notes {`),t.forEach(t=>e.push(` ${_y(t.name)}`)),e.push(` }`)}function Fw(e,t){let n=`DiagramView ${_y(e)} {`;if(!t)return`${n}\n}`;let{tables:r,tableGroups:i,schemas:a,stickyNotes:o}=t,s=r===null,c=i===null,l=a===null;if(s&&c&&l&&o===null)return`${n}\n}`;if(s||c||l){let e=!s&&r.length>0,t=!c&&i.length>0,u=!l&&a.length>0;if(!(e||t||u)){if(o&&o.length>0){let e=[n];return Pw(e,o),e.push(`}`),e.join(`
21
- `)}return`${n}\n Notes { * }\n}`}let d=[n];return e&&jw(d,r),t&&Mw(d,i),u&&Nw(d,a),o&&o.length>0&&Pw(d,o),d.push(`}`),d.join(`
22
- `)}let u=r,d=i,f=a,p=u.length===0&&d.length===0&&f.length===0,m=o!=null&&o.length>0;if(p){if(m){let e=[n,` Tables { * }`];return Pw(e,o),e.push(`}`),e.join(`
23
- `)}return`${n}\n *\n}`}let h=[n];return u.length>0&&jw(h,u),d.length>0&&Mw(h,d),f.length>0&&Nw(h,f),m&&Pw(h,o),h.push(`}`),h.join(`
24
- `)}function Iw(e,t,n){let r=this.getSource(e)??``,i=n??Aw(r),a=[];for(let e of t){let t=Lw(r,e,i);a.push(...t)}return a.sort((e,t)=>t.start-e.start),{newDbml:_w(r,a,!0),edits:a}}function Lw(e,t,n){switch(t.operation){case`create`:return Rw(e,t,n);case`update`:return zw(e,t,n);case`delete`:return Bw(e,t,n);default:return[]}}function Rw(e,t,n){if(n.find(e=>e.name===t.name))return zw(e,t,n);let r=`
20
+ `;case`\\`:return`\\`;case`r`:return`\r`;case`'`:return`'`;case`"`:return`"`;case"`":return"`";case`0`:return`\0`;case`b`:return`\b`;case`v`:return`\v`;case`f`:return`\f`;case` `:return`\\ `;case`u`:{let t=``;for(let n=0;n<=3;n+=1){if(this.isAtEnd()||!Hl(this.peek()))return this.errors.push(new b(y.INVALID_ESCAPE_SEQUENCE,`Invalid unicode escape sequence '\\u${t}', only unicode escape sequences of the form '\\uHHHH' where H is a hexadecimal number are allowed`,el.create(_.STRING_LITERAL,this.filepath,e,this.current,`\\u${t}`,!0))),`\\u${t}`;t+=this.advance()}return String.fromCharCode(parseInt(t,16))}default:return this.text[this.current.offset-1]}}};let $C=function(e){return e[e.ListExpression=0]=`ListExpression`,e[e.GroupExpression=1]=`GroupExpression`,e[e.BlockExpression=2]=`BlockExpression`,e}({});var ew=class{constructor(){this.stack=[],this.numberOfNestedLParens=0,this.numberOfNestedLBrackets=0,this.numberOfNestedLBraces=0}push(e){this.stack.push(e),e===$C.ListExpression&&(this.numberOfNestedLBrackets+=1),e===$C.GroupExpression&&(this.numberOfNestedLParens+=1),e===$C.BlockExpression&&(this.numberOfNestedLBraces+=1)}pop(){let e=this.stack.pop();return e===$C.ListExpression&&--this.numberOfNestedLBrackets,e===$C.GroupExpression&&--this.numberOfNestedLParens,e===$C.BlockExpression&&--this.numberOfNestedLBraces,e}top(){return h(this.stack)}isWithinGroupExpressionContext(){return this.numberOfNestedLParens>0}isWithinListExpressionContext(){return this.numberOfNestedLBrackets>0}isWithinBlockExpressionContext(){return this.numberOfNestedLBraces>0}withContextDo(e,t){return()=>{this.push(e);try{return t()}finally{this.pop()}}}findHandlerContext(e,t){if(!(this.numberOfNestedLBraces<=0&&this.numberOfNestedLBrackets<=0&&this.numberOfNestedLParens<=0))for(let n=t;n<e.length-1;n+=1)switch(e[n].kind){case _.COMMA:if(this.isWithinGroupExpressionContext()||this.isWithinListExpressionContext())return[...this.stack].reverse().find(e=>[$C.GroupExpression,$C.ListExpression].includes(e));break;case _.RPAREN:if(this.isWithinGroupExpressionContext())return $C.GroupExpression;break;case _.RBRACE:if(this.isWithinBlockExpressionContext())return $C.BlockExpression;break;case _.RBRACKET:if(this.isWithinListExpressionContext())return $C.ListExpression;break;default:break}}},tw=class{constructor(e,t){this.generator=e,this.filepath=t}create(e,t){return new e(t,this.generator.nextId(),this.filepath)}},$=class{constructor(e,t,n){this.token=e,this.partialNode=t,this.handlerContext=n}},nw=class{constructor(e,t,n,r){this.current=0,this.errors=[],this.contextStack=new ew,this.useSpecifierList=this.contextStack.withContextDo($C.BlockExpression,()=>{let e={specifiers:[]},t=()=>this.nodeFactory.create(od,e);try{this.consume(`Expect an opening brace '{'`,_.LBRACE),e.openBrace=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeUseSpecifierList()}for(;!this.isAtEnd()&&!this.check(_.RBRACE);){try{e.specifiers.push(this.useSpecifier())}catch(n){if(!(n instanceof $))throw n;if(n.partialNode instanceof ad&&e.specifiers.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeUseSpecifierList()}if(this.check(_.IDENTIFIER)&&ll(this.peek()))break;!tl(this.previous())&&!this.check(_.RBRACE)&&this.logError(this.peek(),y.MISSING_SPACES,`Expect a newline between use specifiers`)}try{this.consume(`Expect a closing brace '}'`,_.RBRACE),e.closeBrace=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeUseSpecifierList()}return t()}),this.synchronizeUseSpecifierList=()=>{if(!this.check(_.RBRACE))for(H(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(_.RBRACE)||this.check(_.STRING_LITERAL)||this.check(_.IDENTIFIER)&&ll(e)||nl(this.previous(),e))break;H(e),this.advance()}},this.synchronizeProgram=()=>{let e=this.peek();e.kind===_.EOF?this.logError(e,y.UNEXPECTED_EOF,`Unexpected EOF`):H(this.advance())},this.synchronizeElementDeclarationName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(sl(e)||this.check(_.COLON,_.LBRACE,_.LBRACKET))break;H(e),this.advance()}},this.synchronizeElementDeclarationAlias=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(_.COLON,_.LBRACE,_.LBRACKET))break;H(e),this.advance()}},this.blockExpression=this.contextStack.withContextDo($C.BlockExpression,()=>{let e={body:[]},t=()=>this.nodeFactory.create(z,e);try{this.consume(`Expect an opening brace '{'`,_.LBRACE),e.blockOpenBrace=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeBlock()}for(;!this.isAtEnd()&&!this.check(_.RBRACE);)try{e.body.push(this.canBeField()?this.fieldDeclaration():this.expression())}catch(n){if(!(n instanceof $))throw n;if(e.body.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeBlock()}try{this.consume(`Expect a closing brace '}'`,_.RBRACE),e.blockCloseBrace=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeBlock()}return t()}),this.synchronizeBlock=()=>{if(!this.check(_.RBRACE))for(H(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(_.RBRACE)||nl(this.previous(),e))break;H(e),this.advance()}},this.tupleExpression=this.contextStack.withContextDo($C.GroupExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(pd,{groupOpenParen:e.tupleOpenParen,groupCloseParen:e.tupleCloseParen,expression:e.elementList[0]}),n=()=>this.nodeFactory.create(dd,e);try{this.consume(`Expect an opening parenthesis '('`,_.LPAREN),e.tupleOpenParen=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,n(),e.handlerContext);this.synchronizeTuple()}if(!this.isAtEnd()&&!this.check(_.RPAREN))try{e.elementList.push(this.normalExpression())}catch(n){if(!(n instanceof $))throw n;if(e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeTuple()}for(;!this.isAtEnd()&&!this.check(_.RPAREN);)try{this.consume(`Expect a comma ','`,_.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.normalExpression())}catch(t){if(!(t instanceof $))throw t;if(t.partialNode instanceof M&&e.elementList.push(t.partialNode),!this.canHandle(t))throw new $(t.token,n(),t.handlerContext);this.synchronizeTuple()}try{this.consume(`Expect a closing parenthesis ')'`,_.RPAREN),e.tupleCloseParen=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,n(),e.handlerContext);this.synchronizeTuple()}return e.elementList.length===1?t():n()}),this.synchronizeTuple=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(_.RPAREN,_.COMMA))break;H(e),this.advance()}},this.listExpression=this.contextStack.withContextDo($C.ListExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(B,e);try{this.consume(`Expect an opening bracket '['`,_.LBRACKET),e.listOpenBracket=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeList()}if(!this.isAtEnd()&&!this.check(_.RBRACKET))try{e.elementList.push(this.attribute())}catch(n){if(!(n instanceof $))throw n;if(e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeList()}for(;!this.isAtEnd()&&!this.check(_.RBRACKET);)try{this.consume(`Expect a comma ','`,_.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.attribute())}catch(n){if(!(n instanceof $))throw n;if(n.partialNode instanceof M&&e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeList()}try{this.consume(`Expect a closing bracket ']'`,_.RBRACKET),e.listCloseBracket=this.previous()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext);this.synchronizeList()}return t()}),this.synchronizeList=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(_.COMMA,_.RBRACKET))break;H(e),this.advance()}},this.synchronizeAttributeName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(_.COMMA,_.RBRACKET,_.COLON))break;H(e),this.advance()}},this.synchronizeAttributeValue=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(_.COMMA,_.RBRACKET))break;H(e),this.advance()}},this.source=e,this.tokens=t,this.nodeFactory=new tw(n,r),this.filepath=r}isAtEnd(){return this.current>=this.tokens.length||this.tokens[this.current].kind===_.EOF}advance(){return this.isAtEnd()?h(this.tokens):this.tokens[this.current++]}peek(e=0){return e+this.current>=this.tokens.length?h(this.tokens):this.tokens[this.current+e]}match(...e){let t=this.check(...e);return t&&this.advance(),t}check(...e){let t=this.peek();return e.includes(t.kind)}previous(){return this.tokens[this.current-1]}canHandle(e){return e.handlerContext===void 0||e.handlerContext===this.contextStack.top()}consume(e,...t){if(!this.match(...t))throw this.logError(this.peek(),y.UNEXPECTED_TOKEN,e),new $(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}discardUntil(e,...t){if(this.isAtEnd()||!this.check(...t)){for(H(this.peek()),this.logError(this.advance(),y.UNEXPECTED_TOKEN,e);!this.isAtEnd()&&!this.check(...t);)H(this.advance());return!this.isAtEnd()}return!0}gatherInvalid(){let e=[],t=[],n,r=0;for(;r<this.tokens.length&&this.tokens[r].isInvalid;r+=1)t.push(this.tokens[r]);for(n=this.tokens[r],n.leadingInvalid=[...t,...n.leadingInvalid],e.push(n),r+=1;r<this.tokens.length;r+=1){let t=this.tokens[r];t.isInvalid?n.trailingInvalid.push(t):(n=t,e.push(n))}this.tokens=e}parse(){let e=this.program(),t=this.advance(),r=this.nodeFactory.create(P,{body:e,eof:t,source:this.source});return this.gatherInvalid(),this.assignParents(r),new n({ast:r,tokens:this.tokens},this.errors)}assignParents(e){Rd(e).forEach(t=>{t instanceof M&&(t.parentNode=e,this.assignParents(t))})}program(){let e=[];for(;!this.isAtEnd();)if(cl(this.peek())||ul(this.peek()))try{e.push(this.useDeclaration())}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof id&&e.push(t.partialNode),this.synchronizeProgram()}else try{e.push(this.elementDeclaration())}catch(t){if(!(t instanceof $))throw t;e.push(t.partialNode),this.synchronizeProgram()}return e}useDeclaration(){let e={},t=()=>this.nodeFactory.create(id,e);if(this.advance(),e.useKeyword=this.previous(),this.peek().kind===_.WILDCARD)this.advance(),e.specifiers=this.nodeFactory.create(hd,{token:this.previous()});else try{e.specifiers=this.useSpecifierList()}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof od&&(e.specifiers=t.partialNode)}let n=e.specifiers instanceof hd?`'*'`:`specifier list`;return ll(this.peek())?e.fromKeyword=this.advance():this.logError(this.peek(),y.UNEXPECTED_TOKEN,`Expect 'from' after ${n}`),this.match(_.STRING_LITERAL)?e.importPath=this.previous():this.logError(this.peek(),y.UNEXPECTED_TOKEN,`Expect a string literal path`),t()}useSpecifier(){let e={},t=()=>this.nodeFactory.create(ad,e);try{this.consume(`Expect an import kind specifier (e.g. table, enum)`,_.IDENTIFIER),e.importKind=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(this.check(_.IDENTIFIER,_.QUOTED_STRING))try{e.name=this.normalExpression()}catch(n){throw n instanceof $?(n.partialNode instanceof M&&(e.name=n.partialNode),new $(n.token,t(),n.handlerContext)):n}else e.importKind&&this.logError(this.peek(),y.UNEXPECTED_TOKEN,`Expect an element name`);if(sl(this.peek())){e.asKeyword=this.advance();try{if(!this.check(_.IDENTIFIER,_.QUOTED_STRING))throw this.logError(this.peek(),y.UNEXPECTED_TOKEN,`Expect an alias name after 'as'`),new $(this.peek(),t(),this.contextStack.findHandlerContext(this.tokens,this.current));e.alias=this.normalExpression()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext)}}return t()}elementDeclaration(){let e={},t=()=>this.nodeFactory.create(F,e);try{this.consume(`Expect an identifier`,_.IDENTIFIER),e.type=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(!this.check(_.COLON,_.LBRACE,_.LBRACKET))try{e.name=this.normalExpression()}catch(n){if(!(n instanceof $))throw n;if(e.name=n.partialNode,!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeElementDeclarationName()}if(sl(this.peek()))if(e.as=this.advance(),this.check(_.COLON,_.LBRACE,_.LBRACKET))this.logError(this.peek(),y.UNEXPECTED_TOKEN,`Expect an alias`);else try{e.alias=this.normalExpression()}catch(n){if(!(n instanceof $))throw n;if(e.alias=n.partialNode,!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeElementDeclarationAlias()}try{e.attributeList=this.check(_.LBRACKET)?this.listExpression():void 0}catch(n){throw n instanceof $?(e.attributeList=n.partialNode,new $(n.token,t(),n.handlerContext)):n}if(!this.discardUntil(`Expect an opening brace '{' or a colon ':'`,_.LBRACE,_.COLON))return t();try{if(this.match(_.COLON)){e.bodyColon=this.previous();let t=this.expression();t instanceof F?(H(t),this.logError(t,y.UNEXPECTED_ELEMENT_DECLARATION,`An element's simple body must not be an element declaration`)):e.body=t}else e.body=this.blockExpression()}catch(n){throw n instanceof $?(e.body=n.partialNode,new $(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(F,e)}fieldDeclaration(){let e={},t=()=>this.nodeFactory.create(F,e);try{this.consume(`Expect an identifier`,_.IDENTIFIER),e.type=this.previous()}catch(n){throw n instanceof $?(e.type=n.partialNode,new $(n.token,t(),n.handlerContext)):n}try{this.consume(`Expect a colon ':'`,_.COLON),e.bodyColon=this.previous()}catch(n){throw n instanceof $?(e.bodyColon=n.partialNode,new $(n.token,t(),n.handlerContext)):n}try{let t=this.expression();t instanceof F?this.errors.push(new b(y.INVALID_ELEMENT_IN_SIMPLE_BODY,`Simple body cannot be an element declaration`,t)):e.body=t}catch(n){throw n instanceof $?(e.body=n.partialNode,new $(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(F,e)}expression(){let e={args:[]},t=()=>Pd(e.callee,e.args,this.nodeFactory)??this.nodeFactory.create(R,e);try{e.callee=this.commaExpression()}catch(n){throw n instanceof $?(e.callee=n.partialNode,new $(n.token,t(),n.handlerContext)):n}if(this.shouldStopFunctionApplication())return t();let n=e.callee;for(;!this.shouldStopFunctionApplication();){rl(this.previous())||this.logError(n,y.MISSING_SPACES,`Expect a following space`);try{n=this.commaExpression(),e.args.push(n)}catch(r){throw r instanceof $?(n=r.partialNode,e.args.push(n),new $(r.token,t(),r.handlerContext)):r}}return t()}shouldStopFunctionApplication(){if(this.isAtEnd()||tl(this.previous()))return!0;let e=this.peek().kind;return[_.RBRACE,_.RBRACKET,_.RPAREN,_.COMMA,_.COLON].includes(e)}commaExpression(){let e=this.check(_.COMMA)?this.nodeFactory.create(vd,{prevToken:this.previous()}):this.normalExpression();if(!this.check(_.COMMA))return e;let t={elementList:[e],commaList:[]};do{if(t.commaList.push(this.advance()),this.shouldStopCommaExpression()){t.elementList.push(this.nodeFactory.create(vd,{prevToken:this.previous()}));break}if(this.check(_.COMMA)){t.elementList.push(this.nodeFactory.create(vd,{prevToken:this.previous()}));continue}try{let e=this.normalExpression();t.elementList.push(e)}catch(e){throw e instanceof $?(e.partialNode&&t.elementList.push(e.partialNode),new $(e.token,this.nodeFactory.create(fd,t),e.handlerContext)):e}}while(!this.shouldStopCommaExpression()&&this.check(_.COMMA));return this.nodeFactory.create(fd,t)}shouldStopCommaExpression(){if(this.isAtEnd()||tl(this.previous()))return!0;let e=this.peek().kind;return[_.RBRACE,_.LBRACE,_.RBRACKET,_.LBRACKET,_.RPAREN,_.LPAREN,_.COLON].includes(e)}normalExpression(){return this.expression_bp(0)}expression_bp(e){let t=this.leftExpression_bp();for(;!this.isAtEnd();){let n=this.peek();if(n.kind===_.LPAREN){let{left:r}=cw(n);if(r<e||nl(this.previous(),n)&&!this.contextStack.isWithinGroupExpressionContext()&&!this.contextStack.isWithinListExpressionContext())break;try{t=this.nodeFactory.create(V,{callee:t,argumentList:this.tupleExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(V,{callee:t,argumentList:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if(n.kind===_.LBRACKET){if(rl(this.previous()))break;try{t=this.nodeFactory.create(yd,{expression:t,indexer:this.listExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(yd,{expression:t,indexer:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if($c(n)){let r=n,i=cw(r);if(i.left!==null){if(i.left<=e)break;this.advance(),t=this.nodeFactory.create(ld,{expression:t,op:r})}else{let n=iw(r);if(n.left===null||n.left<=e)break;this.advance();try{t=this.nodeFactory.create(cd,{leftExpression:t,op:r,rightExpression:r.value===`.`?this.extractOperand():this.expression_bp(n.right)})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(cd,{leftExpression:t,op:r,rightExpression:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}}else break}return t}leftExpression_bp(){let e;if($c(this.peek())){let t={};t.op=this.peek();let n=ow(t.op);if(n.right===null)throw this.logError(t.op,y.UNKNOWN_PREFIX_OP,`Unexpected '${t.op.value}' in an expression`),new $(t.op,this.nodeFactory.create(vd,{prevToken:t.op}),this.contextStack.findHandlerContext(this.tokens,this.current));this.advance();try{t.expression=this.expression_bp(n.right)}catch(e){throw e instanceof $?(t.expression=e.partialNode,new $(e.token,this.nodeFactory.create(L,t),e.handlerContext)):e}e=this.nodeFactory.create(L,t)}else if(e=this.extractOperand(),e instanceof vd)throw new $(this.peek(),this.nodeFactory.create(vd,{prevToken:this.peek()}),this.contextStack.findHandlerContext(this.tokens,this.current));return e}extractOperand(){return this.check(_.WILDCARD)?this.wildcardExpression():this.check(_.NUMERIC_LITERAL,_.STRING_LITERAL,_.COLOR_LITERAL,_.QUOTED_STRING,_.IDENTIFIER)?this.primaryExpression():this.check(_.FUNCTION_EXPRESSION)?this.functionExpression():this.check(_.LBRACKET)?this.listExpression():this.check(_.LBRACE)?this.blockExpression():this.check(_.LPAREN)?this.tupleExpression():(this.peek().kind===_.EOF?this.logError(this.peek(),y.UNEXPECTED_EOF,`Unexpected EOF`):this.logError(this.peek(),y.INVALID_OPERAND,`Invalid start of operand "${this.peek().value}"`),this.nodeFactory.create(vd,{prevToken:this.previous()}))}functionExpression(){let e={};try{this.consume(`Expect a function expression`,_.FUNCTION_EXPRESSION),e.value=this.previous()}catch(t){throw t instanceof $?new $(t.token,this.nodeFactory.create(ud,e),t.handlerContext):t}return this.nodeFactory.create(ud,e)}wildcardExpression(){return this.advance(),this.nodeFactory.create(hd,{token:this.previous()})}canBeField(){return this.peek().kind===_.IDENTIFIER&&this.peek(1).kind===_.COLON}primaryExpression(){if(this.match(_.COLOR_LITERAL,_.STRING_LITERAL,_.NUMERIC_LITERAL))return this.nodeFactory.create(_d,{expression:this.nodeFactory.create(md,{literal:this.previous()})});if(this.match(_.QUOTED_STRING,_.IDENTIFIER))return this.nodeFactory.create(_d,{expression:this.nodeFactory.create(gd,{variable:this.previous()})});throw this.logError(this.peek(),y.UNEXPECTED_TOKEN,`Expect a variable or literal`),new $(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}attribute(){let e={};if(this.check(_.COLON,_.RBRACKET,_.COMMA)){let t=this.peek();this.logError(t,y.EMPTY_ATTRIBUTE_NAME,`Expect a non-empty attribute name`),e.name=this.nodeFactory.create(sd,{identifiers:[]})}else try{e.name=this.attributeName()}catch(t){if(!(t instanceof $))throw t;if(e.name=t.partialNode,!this.canHandle(t))throw new $(t.token,this.nodeFactory.create(I,e),t.handlerContext);this.synchronizeAttributeName()}return this.match(_.COLON)&&(e.colon=this.previous(),e.value=this.attributeValue()),this.nodeFactory.create(I,e)}attributeValue(){let e;try{e=this.peek().kind===_.IDENTIFIER&&this.peek(1).kind===_.IDENTIFIER?this.attributeName():this.normalExpression()}catch(t){if(!(t instanceof $)||!this.canHandle(t))throw t;e=t.partialNode,this.synchronizeAttributeValue()}return e}attributeName(){let e=[];if(this.peek().kind!==_.IDENTIFIER)return this.primaryExpression();for(;!this.isAtEnd()&&!this.check(_.COLON,_.COMMA,_.RBRACKET);)try{this.consume(`Expect an identifier`,_.IDENTIFIER),e.push(this.previous())}catch(t){throw t instanceof $?new $(t.token,this.nodeFactory.create(sd,{identifiers:e}),t.handlerContext):t}return this.nodeFactory.create(sd,{identifiers:e})}logError(e,t,n){this.errors.push(new b(t,n,e))}},rw={"+":{left:9,right:10},"-":{left:9,right:10},"/":{left:11,right:12},"%":{left:11,right:12},"<":{left:7,right:8},"<=":{left:7,right:8},">":{left:7,right:8},">=":{left:7,right:8},"<>":{left:7,right:8},"=":{left:2,right:3},"==":{left:4,right:5},"!=":{left:4,right:5},".":{left:16,right:17}};function iw(e){return rw[e.value]||{left:null,right:null}}var aw={"+":{left:null,right:15},"-":{left:null,right:15},"<":{left:null,right:15},">":{left:null,right:15},"<>":{left:null,right:15},"!":{left:null,right:15},"~":{left:null,right:15}};function ow(e){return aw[e.value]||{left:null,right:null}}var sw={"(":{left:14,right:null}};function cw(e){return sw[e.value]||{left:null,right:null}}function lw(e){let t=this.getSource(e);return new QC(t??``,e).lex().chain(n=>new nw(t??``,n,this.nodeIdGenerator,e).parse()).map(({ast:t,tokens:n})=>({ast:t,tokens:n,path:e}))}function uw(){let e=Cy(this,this.layout.getEntrypoints()),t=new Map;for(let n of e){let e=this.parseFile(n);t.set(n.absolute,e)}return t}function dw(e,n,r){let i;if(e instanceof Iu)i=e;else{let n=this.nodeSymbol(e).getFiltered(t);if(!(n instanceof Iu))return;i=n}let a=Array.isArray(n)?n:[n],o=this.symbolMembers(i).getFiltered(t);if(o)return o.find(e=>a.length&&!e.isKind(...a)?!1:e instanceof td?Zv.visibleName(this,e)?.at(-1)===r:e.name===r)}function fw(e){let t=e.originalSymbol;return wy(this).map(n=>n.filter(n=>n instanceof ed&&n.originalSymbol===t&&n!==e))}function pw(){let e=new Map,n=new Map,r=this.parseProject();this.bindProject();let i=new Set,a=(t,n)=>{if(i.has(n))return;i.add(n);let r=t.intern(),a=e.get(r);a||(a=[],e.set(r,a)),a.push(n);let o=t.originalSymbol;if(o!==t){let t=o.intern(),r=e.get(t);r||(r=[],e.set(t,r)),r.push(n)}},o=e=>{for(let t of e.owners(this)){let r=t.intern(),i=n.get(r);i||(i=[],n.set(r,i)),i.push(e)}};for(let e of r.values()){let n=e.getValue().ast,r=e=>{if(C(e)){let n=$y.call(this,e).getFiltered(t);n&&a(n,e);return}if(e instanceof dd&&w(e.parentNode)&&e.parentNode.rightExpression===e){let n=e.parentNode.leftExpression;if(n){let e=mu(n);if(e){let n=$y.call(this,e).getFiltered(t);n&&a(n,e)}}}let n=this.nodeMetadata(e).getFiltered(t);n&&o(n);for(let t of Rd(e))t instanceof M&&r(t)};r(n)}let s=new Map,c=new Set;function l(e,n){let r=n.intern();if(c.has(r))return;c.add(r);let i=e.symbolMembers(n).getFiltered(t);if(i)for(let t of i){let r=t.intern(),i=s.get(r);i||(i=[],s.set(r,i)),i.push(n),t instanceof Lu&&t.isKind(j.Schema)&&l(e,t)}}for(let e of r.values()){let n=e.getValue().ast,r=this.nodeSymbol(n).getFiltered(t);r&&l(this,r)}return{references:e,metadata:n,parents:s}}function mw(e){return this.resolutionIndex().parents.get(e.intern())??[]}function hw(e){return this.resolutionIndex().references.get(e.intern())??[]}function gw(e){return this.resolutionIndex().metadata.get(e.intern())??[]}function _w(e){let t=e.originalSymbol;return wy(this).map(n=>n.filter(n=>n instanceof td&&n.originalSymbol===t&&n!==e))}function vw(e,t,n=!1){let r=n?t:[...t].sort((e,t)=>t.start-e.start),i=e;for(let{start:e,end:t,newText:n}of r)i=i.substring(0,e)+n+i.substring(t);return i}function yw(e){if(typeof e!=`string`)return{schema:e.schema??`public`,table:e.table};let t=Sy(e);if(t.length===0)return{schema:v,table:``};if(t.length===1)return{schema:v,table:t[0]};if(t.length===2)return{schema:t[0],table:t[1]};let n=t[t.length-1];return{schema:t.slice(0,-1).join(`.`),table:n}}function bw(e,n,r,i){let a=e.parseFile(n).getValue().ast,o=e.nodeSymbol(a).getFiltered(t);if(!o)return null;if(r===`public`)return e.lookupMembers(o,j.Table,i)??null;let s=e.lookupMembers(o,j.Schema,r);return s?e.lookupMembers(s,j.Table,i)??null:null}function xw(e){return e.startsWith(`"`)&&e.endsWith(`"`)&&e.length>=2?e.slice(1,-1):e}function Sw(e,t){if(!e||!(e instanceof F))return!1;let n=e.name;return n?t.substring(n.start,n.end).includes(`"`):!1}function Cw(e,t,n){let r=!_y(t),i=!_y(e),a=n||r,o=n||i;return{schema:e,table:t,formattedSchema:o?`"${e}"`:e,formattedTable:a?`"${t}"`:t,shouldQuoteSchema:o,shouldQuoteTable:a}}function ww(e,t,n,r,i,a){return n===i&&r===a?!1:bw(e,t,i,a)!==null}function Tw(e,t,n){let r=e.start-1;for(;r>=0&&/\s/.test(n[r]);)r--;if(r<0||n[r]!==`.`)return null;for(r--;r>=0&&/\s/.test(n[r]);)r--;if(r<0)return null;let i,a;if(n[r]===`"`){for(a=r+1,r--;r>=0&&n[r]!==`"`;)r--;if(r<0)return null;i=r}else{for(a=r+1;r>=0&&/[a-zA-Z0-9_]/.test(n[r]);)r--;i=r+1}return xw(n.substring(i,a))===t?{start:i,end:e.end}:null}function Ew(e){return e.schema===`public`?e.formattedTable:`${e.formattedSchema}.${e.formattedTable}`}function Dw(e,t,n,r,i){let a=[],o=new Set,s=Ew(r);for(let r of e){if(xw(i.substring(r.start,r.end))!==n)continue;let e=Tw(r,t,i)??{start:r.start,end:r.end},c=`${e.start}-${e.end}`;o.has(c)||(o.add(c),a.push({start:e.start,end:e.end,newText:s}))}return a}function Ow(e,n,r){let i=yw(n),a=yw(r),o=i.schema,s=i.table,c=a.schema,l=a.table,u=bw(this,e,o,s);if(!u||u instanceof ed||ww(this,e,o,s,c,l))return new Map;if(u instanceof td&&u.useSpecifierDeclaration instanceof ad&&u.useSpecifierDeclaration.alias){let n=u.useSpecifierDeclaration;if(this.nodeAlias(n).getFiltered(t)===s)return kw(this,e,n,u,c,l)}return Aw(this,u,o,s,c,l)}function kw(e,t,n,r,i,a){let o=e.getSource(t)??``;if(!n.alias)return new Map;let s=Cw(i,a,o.substring(n.alias.start,n.alias.end).includes(`"`)),c=[];c.push({start:n.alias.start,end:n.alias.end,newText:s.formattedTable});let l=e.symbolReferences(r);for(let e of l)e.filepath.absolute===t.absolute&&e!==n.alias&&c.push({start:e.start,end:e.end,newText:s.formattedTable});return new Map([[t.absolute,vw(o,c)]])}function Aw(e,t,n,r,i,a){let o=t.originalSymbol,s=o.declaration;if(!s||!(s instanceof F))return new Map;let c=s.filepath;if(!c)return new Map;let l=Cw(i,a,Sw(s,e.getSource(c)??``)),u=new Map,d=(e,t)=>{let n=e.absolute,r=u.get(n);r||(r={fp:e,edits:[]},u.set(n,r)),r.edits.push(t)},f=s.name;f&&d(c,{start:f.start,end:f.end,newText:Ew(l)});let p=e.symbolReferences(o);for(let t of p){if(t===f)continue;let i=t.filepath,a=e.getSource(i)??``;for(let e of Dw([t],n,r,l,a))d(i,e)}let m=new Map;for(let{fp:t,edits:n}of u.values()){let r=e.getSource(t)??``;m.set(t.absolute,vw(r,n))}return m}function jw(e){let t=[],n=new QC(e,Ll).lex();if(n.getErrors().length>0)return t;let i=new nw(e,n.getValue(),new rd,Ll).parse();if(i.getErrors().length>0)return t;let a=i.getValue().ast;for(let e of a.declarations)if(e.isKind(r.DiagramView)){let n=e.name?D(e.name)??[]:[],r=n.length>0?n[n.length-1]:``;t.push({name:r,startIndex:e.start,endIndex:e.end})}return t}function Mw(e,t,n){e.push(` ${t} {`),n.forEach(t=>e.push(` ${t}`)),e.push(` }`)}function Nw(e,t){e.push(` ${t} { * }`)}function Pw(e){return e==null?`null`:e.length===0?`empty`:`items`}function Fw(e,t){let n=`DiagramView ${vy(e)} {`,r=e=>vy(e.name),i=t?.tables?.map(e=>{let t=vy(e.name);return e.schemaName===`public`?t:`${vy(e.schemaName)}.${t}`})??[],a=t?.tableGroups?.map(r)??[],o=t?.schemas?.map(r)??[],s=t?.stickyNotes?.map(r)??[];if(!t)return`${n}\n}`;let c={tables:Pw(t.tables),tableGroups:Pw(t.tableGroups),schemas:Pw(t.schemas),stickyNotes:Pw(t.stickyNotes)};if(Object.values(c).every(e=>e===`null`))return`${n}\n}`;if(Object.values(c).every(e=>e===`empty`))return`${n}\n *\n}`;let l=c.tables===`items`||c.tableGroups===`items`||c.schemas===`items`,u=c.tables===`empty`&&c.tableGroups===`empty`&&c.schemas===`empty`,d=[n];return l?(c.tables===`items`&&Mw(d,`Tables`,i),c.tableGroups===`items`&&Mw(d,`TableGroups`,a),c.schemas===`items`&&Mw(d,`Schemas`,o)):u&&Nw(d,`Tables`),c.stickyNotes===`items`?Mw(d,`Notes`,s):c.stickyNotes===`empty`&&Nw(d,`Notes`),d.push(`}`),d.join(`
21
+ `)}function Iw(e,t,n){let r=this.getSource(e)??``,i=n??jw(r),a=[];for(let e of t){let t=Lw(r,e,i);a.push(...t)}return a.sort((e,t)=>t.start-e.start),{newDbml:vw(r,a,!0),edits:a}}function Lw(e,t,n){switch(t.operation){case`create`:return Rw(e,t,n);case`update`:return zw(e,t,n);case`delete`:return Bw(e,t,n);default:return[]}}function Rw(e,t,n){if(n.find(e=>e.name===t.name))return zw(e,t,n);let r=`
25
22
 
26
23
  `+Fw(t.name,t.visibleEntities)+`
27
24
  `;return[{start:e.length,end:e.length,newText:r}]}function zw(e,t,n){let r=n.find(e=>e.name===t.name);if(!r)return[];let i=[];if(t.newName||t.visibleEntities){let e=Fw(t.newName||t.name,t.visibleEntities);i.push({start:r.startIndex,end:r.endIndex,newText:e})}return i}function Bw(e,t,n){let r=n.find(e=>e.name===t.name);if(!r)return[];let i=r.startIndex,a=r.endIndex;for(;i>0&&e[i-1]===`
28
25
  `;){i--,i>0&&e[i-1]===`\r`&&i--;let t=e.lastIndexOf(`
29
26
  `,i-1)+1;if(e.substring(t,i).trim()!==``){i=r.startIndex,i>0&&e[i-1]===`
30
27
  `&&(i--,i>0&&e[i-1]===`\r`&&i--);break}}return a<e.length&&e[a]===`\r`&&a++,a<e.length&&e[a]===`
31
- `&&a++,[{start:i,end:a,newText:``}]}var Vw=Symbol(`COMPUTING`),Hw=class{constructor(e){this.layout=e,this.nodeIdGenerator=new td,this.symbolIdGenerator=new Nu,this.symbolFactory=new ul(this.symbolIdGenerator),this.sourceSnapshot=new Map,this.globalCache=new Map,this.localCache=new Map,this.parseFile=this.localQuery(cw),this.parseProject=this.globalQuery(lw),this.validateNode=this.localQuery(Vb),this.validateFile=this.localQuery(XC),this.nodeFullname=this.localQuery(Ub),this.nodeAlias=this.localQuery(Wb),this.nodeSettings=this.localQuery(Hb),this.canonicalName=this.globalQuery(jC),this.bindNode=this.globalQuery($y),this.bindFile=this.globalQuery(KC),this.bindProject=this.globalQuery(qC),this.interpretSymbol=this.globalQuery(tb),this.interpretMetadata=this.globalQuery(nb),this.interpretFile=this.globalQuery(JC),this.interpretProject=this.globalQuery(YC),this.nodeSymbol=this.globalQuery(Xy),this.nodeMetadata=this.globalQuery(eb),this.symbolMembers=this.globalQuery(Zy),this.lookupMembers=this.globalQuery(uw),this.nodeReferee=this.globalQuery(Qy),this.resolutionIndex=this.globalQuery(fw),this.symbolReferences=this.globalQuery(mw),this.symbolParent=this.globalQuery(pw),this.symbolMetadata=this.globalQuery(hw),this.symbolAliases=this.globalQuery(dw),this.symbolUses=this.globalQuery(gw),this.fileDependencies=this.localQuery(PC),this.reachableFiles=this.globalQuery(IC),this.usableMembers=this.globalQuery($v),this.nodeAtPosition=this.localQuery(GC),this.renameTable=Dw.bind(this),this.syncDiagramView=Iw.bind(this),this.token={invalidStream:this.localQuery(WC),flatStream:this.localQuery(UC)},this.parse={source:e=>this.getSource(e)||``,ast:(e=Fl)=>LC.call(this,e),errors:(e=Fl)=>RC.call(this,e),warnings:(e=Fl)=>zC.call(this,e),tokens:(e=Fl)=>BC.call(this,e),rawDb:(e=Fl)=>VC.call(this,e),publicSymbolTable:(e=Fl)=>HC.call(this,e)},this.container={stack:this.localQuery(EC),token:this.localQuery(DC),element:this.localQuery(OC),scope:this.localQuery(kC),scopeKind:this.localQuery(AC)}}getSource(e){return this.layout.getSource(e)}cleanStaleLocalCache(e){let t=this.layout.getSource(e),n=e.absolute;this.sourceSnapshot.has(n)&&this.sourceSnapshot.get(n)!==t&&(this.localCache.delete(e.intern()),this.globalCache.clear()),this.sourceSnapshot.set(n,t)}cleanStaleGlobalCache(){let e=this.layout.getEntrypoints(),t=!1;this.entrypointsSnapshot!==void 0&&(this.entrypointsSnapshot.length!==e.length||this.entrypointsSnapshot.some((t,n)=>t.absolute!==e[n].absolute))&&(t=!0),this.entrypointsSnapshot=e;for(let t of FC(this,e))this.cleanStaleLocalCache(t);t&&this.globalCache.clear()}globalQuery(e){let t=Symbol();return((...n)=>{this.cleanStaleGlobalCache(),this.globalCache.has(t)||this.globalCache.set(t,new Map);let r=n.map(e=>Gd(e)).join(`\0`),i=this.globalCache.get(t);if(i.has(r)){let t=i.get(r);if(t===Vw)throw Error(`Cycle detected in query: ${e.name}(${r})`);return t}i.set(r,Vw);try{let t=e.apply(this,n);return i.set(r,t),t}catch(e){throw i.delete(r),e}})}localQuery(e){let t=Symbol();return((...n)=>{let[r]=n,i=r instanceof N?r.filepath:r;this.cleanStaleLocalCache(i);let a=i.intern(),o=n.map(e=>Gd(e)).join(`\0`),s=this.localCache.get(a);s||(s=new Map,this.localCache.set(a,s));let c=s.get(t);if(c||(c=new Map,s.set(t,c)),c.has(o)){let t=c.get(o);if(t===Vw)throw Error(`Cycle detected in query: ${e.name}(${a}, ${o})`);return t}c.set(o,Vw);try{let t=e.apply(this,n);return c.set(o,t),t}catch(e){throw c.delete(o),e}})}findDiagramViewBlocks(e){return Aw(this.getSource(e)??``)}initMonacoServices(e){let t=e?.autocompletion?.triggerCharacters??[`.`,`,`,`[`,`(`,`:`,`>`,`<`,`-`,`~`,`'`,`"`,`/`,` `];return{definitionProvider:new xS(this),referenceProvider:new CS(this),autocompletionProvider:new XS(this,{triggerCharacters:t}),diagnosticsProvider:new SS(this)}}},Uw=class e{constructor(e={}){this.files=e instanceof Map?new Map(e):new Map(Object.entries(e))}setSource(e,t){this.files.set(e.absolute,t)}getSource(e){return this.files.get(e.absolute)??void 0}deleteSource(e){this.files.delete(e.absolute)}clearSource(){this.files.clear()}exists(e){return this.isFile(e)||this.isDirectory(e)}isFile(e){return this.files.has(e.absolute)}isDirectory(e){let t=e.absolute.endsWith(`/`)?e.absolute:`${e.absolute}/`;for(let e of this.files.keys())if(e.startsWith(t))return!0;return!1}listDirectory(e){let t=e?.absolute??`/`,n=t.endsWith(`/`)?t:t+`/`,r=new Set;for(let e of this.files.keys()){if(!e.startsWith(n))continue;let t=e.slice(n.length),i=t.indexOf(`/`);r.add(n+(i===-1?t:t.slice(0,i)))}return[...r].sort().map(kl.from)}getEntrypoints(){return[...this.files.keys()].map(kl.from).sort((e,t)=>e.absolute.localeCompare(t.absolute))}clone(){return new e(this.files)}};exports.ArrayNode=vd,exports.AttributeNode=I,exports.BlockExpressionNode=z,exports.CallExpressionNode=V,exports.CommaExpressionNode=dd,exports.CompileError=x,exports.CompileErrorCode=b,exports.Compiler=Hw,exports.CompletionItemInsertTextRule=X,exports.CompletionItemKind=Y,exports.DBMLCompletionItemProvider=XS,exports.DBMLDefinitionProvider=xS,exports.DBMLDiagnosticsProvider=SS,exports.DBMLReferencesProvider=CS,exports.DEFAULT_ENTRY=Fl,exports.ElementDeclarationNode=F,exports.ElementKind=r,exports.EmptyNode=_d,exports.FALSY_VALUES=J_,exports.Filepath=kl,exports.FunctionApplicationNode=R,exports.FunctionExpressionNode=ld,exports.GroupExpressionNode=fd,exports.IdentifierStreamNode=od,exports.InfixExpressionNode=sd,exports.ListExpressionNode=B,exports.LiteralNode=pd,exports.MarkerSeverity=vS,exports.MemoryProjectLayout=Uw,exports.PostfixExpressionNode=cd,exports.PrefixExpressionNode=L,exports.PrimaryExpressionNode=gd,exports.ProgramNode=nd,exports.ScopeKind=Q,exports.SymbolKind=M,exports.SyntaxNode=N,exports.SyntaxNodeIdGenerator=td,exports.SyntaxNodeKind=P,exports.SyntaxToken=Qc,exports.SyntaxTokenKind=y,exports.TRUTHY_VALUES=q_,exports.TupleExpressionNode=ud,exports.UNHANDLED=t,exports.Uri=sS,exports.UseDeclarationNode=rd,exports.UseSpecifierListNode=ad,exports.UseSpecifierNode=id,exports.VariableNode=hd,exports.WildcardNode=md,exports.addDoubleQuoteIfNeeded=_y,exports.dbmlLanguageConfig=wC,exports.dbmlMonarchTokensProvider=TC,exports.escapeString=yy,exports.extractNumericLiteral=Su,exports.extractSignedNumber=W_,exports.formatRecordValue=by,exports.getRecordValueType=Of,exports.isBinaryType=Tf,exports.isBooleanType=Cf,exports.isDateTimeType=Ef,exports.isEmptyStringLiteral=H_,exports.isFloatType=xf,exports.isFunctionExpression=U_,exports.isIntegerType=bf,exports.isNullish=V_,exports.isNumericType=Sf,exports.isOp=Xc,exports.isOpToken=Zc,exports.isSerialType=Df,exports.isStringType=wf,exports.isTriviaToken=Yc,exports.isValidIdentifier=gy,exports.normalizeTypeName=yf,exports.splitQualifiedIdentifier=xy,exports.tryExtractBoolean=Y_,exports.tryExtractDateTime=tv,exports.tryExtractEnum=X_,exports.tryExtractInteger=K_,exports.tryExtractNumeric=G_,exports.tryExtractString=Z_,exports.unescapeString=vy,exports.validateForeignKeys=Sv,exports.validatePrimaryKey=fv,exports.validateUnique=yv;
28
+ `&&a++,[{start:i,end:a,newText:``}]}var Vw=Symbol(`COMPUTING`),Hw=class{constructor(e){this.layout=e,this.nodeIdGenerator=new rd,this.symbolIdGenerator=new Fu,this.symbolFactory=new fl(this.symbolIdGenerator),this.sourceSnapshot=new Map,this.globalCache=new Map,this.localCache=new Map,this.parseFile=this.localQuery(lw),this.parseProject=this.globalQuery(uw),this.validateNode=this.localQuery(Hb),this.validateFile=this.localQuery(ZC),this.nodeFullname=this.localQuery(Wb),this.nodeAlias=this.localQuery(Gb),this.nodeSettings=this.localQuery(Ub),this.canonicalName=this.globalQuery(MC),this.bindNode=this.globalQuery(eb),this.bindFile=this.globalQuery(qC),this.bindProject=this.globalQuery(JC),this.interpretSymbol=this.globalQuery(nb),this.interpretMetadata=this.globalQuery(rb),this.interpretFile=this.globalQuery(YC),this.interpretProject=this.globalQuery(XC),this.nodeSymbol=this.globalQuery(Zy),this.nodeMetadata=this.globalQuery(tb),this.symbolMembers=this.globalQuery(Qy),this.lookupMembers=this.globalQuery(dw),this.nodeReferee=this.globalQuery($y),this.resolutionIndex=this.globalQuery(pw),this.symbolReferences=this.globalQuery(hw),this.symbolParent=this.globalQuery(mw),this.symbolMetadata=this.globalQuery(gw),this.symbolAliases=this.globalQuery(fw),this.symbolUses=this.globalQuery(_w),this.fileDependencies=this.localQuery(FC),this.reachableFiles=this.globalQuery(LC),this.usableMembers=this.globalQuery(ey),this.nodeAtPosition=this.localQuery(KC),this.renameTable=Ow.bind(this),this.syncDiagramView=Iw.bind(this),this.token={invalidStream:this.localQuery(GC),flatStream:this.localQuery(WC)},this.parse={source:e=>this.getSource(e)||``,ast:(e=Ll)=>RC.call(this,e),errors:(e=Ll)=>zC.call(this,e),warnings:(e=Ll)=>BC.call(this,e),tokens:(e=Ll)=>VC.call(this,e),rawDb:(e=Ll)=>HC.call(this,e),publicSymbolTable:(e=Ll)=>UC.call(this,e)},this.container={stack:this.localQuery(DC),token:this.localQuery(OC),element:this.localQuery(kC),scope:this.localQuery(AC),scopeKind:this.localQuery(jC)}}getSource(e){return this.layout.getSource(e)}cleanStaleLocalCache(e){let t=this.layout.getSource(e),n=e.absolute;this.sourceSnapshot.has(n)&&this.sourceSnapshot.get(n)!==t&&(this.localCache.delete(e.intern()),this.globalCache.clear()),this.sourceSnapshot.set(n,t)}cleanStaleGlobalCache(){let e=this.layout.getEntrypoints(),t=!1;this.entrypointsSnapshot!==void 0&&(this.entrypointsSnapshot.length!==e.length||this.entrypointsSnapshot.some((t,n)=>t.absolute!==e[n].absolute))&&(t=!0),this.entrypointsSnapshot=e;for(let t of IC(this,e))this.cleanStaleLocalCache(t);t&&this.globalCache.clear()}globalQuery(e){let t=Symbol();return((...n)=>{this.cleanStaleGlobalCache(),this.globalCache.has(t)||this.globalCache.set(t,new Map);let r=n.map(e=>Kd(e)).join(`\0`),i=this.globalCache.get(t);if(i.has(r)){let t=i.get(r);if(t===Vw)throw Error(`Cycle detected in query: ${e.name}(${r})`);return t}i.set(r,Vw);try{let t=e.apply(this,n);return i.set(r,t),t}catch(e){throw i.delete(r),e}})}localQuery(e){let t=Symbol();return((...n)=>{let[r]=n,i=r instanceof M?r.filepath:r;this.cleanStaleLocalCache(i);let a=i.intern(),o=n.map(e=>Kd(e)).join(`\0`),s=this.localCache.get(a);s||(s=new Map,this.localCache.set(a,s));let c=s.get(t);if(c||(c=new Map,s.set(t,c)),c.has(o)){let t=c.get(o);if(t===Vw)throw Error(`Cycle detected in query: ${e.name}(${a}, ${o})`);return t}c.set(o,Vw);try{let t=e.apply(this,n);return c.set(o,t),t}catch(e){throw c.delete(o),e}})}findDiagramViewBlocks(e){return jw(this.getSource(e)??``)}initMonacoServices(e){let t=e?.autocompletion?.triggerCharacters??[`.`,`,`,`[`,`(`,`:`,`>`,`<`,`-`,`~`,`'`,`"`,`/`,` `];return{definitionProvider:new SS(this),referenceProvider:new wS(this),autocompletionProvider:new ZS(this,{triggerCharacters:t}),diagnosticsProvider:new CS(this)}}},Uw=class e{constructor(e={}){this.files=e instanceof Map?new Map(e):new Map(Object.entries(e))}setSource(e,t){this.files.set(e.absolute,t)}getSource(e){return this.files.get(e.absolute)??void 0}deleteSource(e){this.files.delete(e.absolute)}clearSource(){this.files.clear()}exists(e){return this.isFile(e)||this.isDirectory(e)}isFile(e){return this.files.has(e.absolute)}isDirectory(e){let t=e.absolute.endsWith(`/`)?e.absolute:`${e.absolute}/`;for(let e of this.files.keys())if(e.startsWith(t))return!0;return!1}listDirectory(e){let t=e?.absolute??`/`,n=t.endsWith(`/`)?t:t+`/`,r=new Set;for(let e of this.files.keys()){if(!e.startsWith(n))continue;let t=e.slice(n.length),i=t.indexOf(`/`);r.add(n+(i===-1?t:t.slice(0,i)))}return[...r].sort().map(jl.from)}getEntrypoints(){return[...this.files.keys()].map(jl.from).sort((e,t)=>e.absolute.localeCompare(t.absolute))}clone(){return new e(this.files)}};exports.ArrayNode=yd,exports.AttributeNode=I,exports.BlockExpressionNode=z,exports.CallExpressionNode=V,exports.CommaExpressionNode=fd,exports.CompileError=b,exports.CompileErrorCode=y,exports.Compiler=Hw,exports.CompletionItemInsertTextRule=X,exports.CompletionItemKind=Y,exports.DBMLCompletionItemProvider=ZS,exports.DBMLDefinitionProvider=SS,exports.DBMLDiagnosticsProvider=CS,exports.DBMLReferencesProvider=wS,exports.DEFAULT_ENTRY=Ll,exports.ElementDeclarationNode=F,exports.ElementKind=r,exports.EmptyNode=vd,exports.FALSY_VALUES=Y_,exports.Filepath=jl,exports.FunctionApplicationNode=R,exports.FunctionExpressionNode=ud,exports.GroupExpressionNode=pd,exports.IdentifierStreamNode=sd,exports.InfixExpressionNode=cd,exports.ListExpressionNode=B,exports.LiteralNode=md,exports.MarkerSeverity=yS,exports.MemoryProjectLayout=Uw,exports.PostfixExpressionNode=ld,exports.PrefixExpressionNode=L,exports.PrimaryExpressionNode=_d,exports.ProgramNode=P,exports.ScopeKind=Q,exports.SymbolKind=j,exports.SyntaxNode=M,exports.SyntaxNodeIdGenerator=rd,exports.SyntaxNodeKind=N,exports.SyntaxToken=el,exports.SyntaxTokenKind=_,exports.TRUTHY_VALUES=J_,exports.TupleExpressionNode=dd,exports.UNHANDLED=t,exports.Uri=cS,exports.UseDeclarationNode=id,exports.UseSpecifierListNode=od,exports.UseSpecifierNode=ad,exports.VariableNode=gd,exports.WildcardNode=hd,exports.addDoubleQuoteIfNeeded=vy,exports.dbmlLanguageConfig=TC,exports.dbmlMonarchTokensProvider=EC,exports.escapeString=by,exports.extractNumericLiteral=wu,exports.extractSignedNumber=G_,exports.formatRecordValue=xy,exports.getRecordValueType=kf,exports.isBinaryType=Ef,exports.isBooleanType=wf,exports.isDateTimeType=Df,exports.isEmptyStringLiteral=U_,exports.isFloatType=Sf,exports.isFunctionExpression=W_,exports.isIntegerType=xf,exports.isNullish=H_,exports.isNumericType=Cf,exports.isOp=Qc,exports.isOpToken=$c,exports.isSerialType=Of,exports.isStringType=Tf,exports.isTriviaToken=Zc,exports.isValidIdentifier=_y,exports.normalizeTypeName=bf,exports.splitQualifiedIdentifier=Sy,exports.tryExtractBoolean=X_,exports.tryExtractDateTime=nv,exports.tryExtractEnum=Z_,exports.tryExtractInteger=q_,exports.tryExtractNumeric=K_,exports.tryExtractString=Q_,exports.unescapeString=yy,exports.validateForeignKeys=Cv,exports.validatePrimaryKey=pv,exports.validateUnique=bv;